<?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.8.1</version>
  <mincmsversion>1.11</mincmsversion>
	<help><![CDATA[PGRpdiBpZD0icGFnZV90YWJzIj4KICAgIDxkaXYgaWQ9ImdlbmVyYWwiPkdlbmVyYWw8L2Rpdj4KCTxkaXYgaWQ9ImZvcm1zIj5Gb3JtczwvZGl2PgoJPGRpdiBpZD0iZmllbGRzIj5GaWVsZHM8L2Rpdj4KCTxkaXYgaWQ9InRlbXBsYXRlX3ZhcmlhYmxlIj5UZW1wbGF0ZXMgYW5kIFZhcmlhYmxlczwvZGl2PgoJPGRpdiBpZD0iYWR2YW5jZWQiPkFkdmFuY2VkPC9kaXY+Cgk8ZGl2IGlkPSJzdHlsaW5nIj5TdHlsaW5nPC9kaXY+Cgk8ZGl2IGlkPSJjb25maWd1cmF0aW9uIj5Db25maWd1cmF0aW9uPC9kaXY+Cgk8ZGl2IGlkPSJhYm91dCI+QWJvdXQ8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgoKPGRpdiBpZD0icGFnZV9jb250ZW50Ij4KCTxkaXYgaWQ9ImdlbmVyYWxfYyI+CgkJPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CgkJPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZm9ybXMgKGluIGZhY3QsIGl0J3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoCgkJdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CgkJPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKCQlpbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQoJCXZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCgkJPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgoJCTxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgoJCUlmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UncmUKCQlyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+CgoJCTxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KCQk8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCgkJdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CgkJQ29uZmlndXJhdGlvbi48L3A+CgoJCTxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CgkJPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCgkJc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CgkJPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCgkJSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwoJCWludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQoJCWNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCgkJc2luZ2xlIHF1b3RlcyAoJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgk8L2Rpdj4KCQoJPCEtLSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgLS0+CgkKCTxkaXYgaWQ9ImZvcm1zX2MiPgoJCTxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgoJCTxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSdzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgoJCTxoND5NYWluPC9oND4KCQk8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSdsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgoJCTxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgoJCTxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KCQkKCQk8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KCQk8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJ3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CgkJPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgoJCQoJCTxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CgkJPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4KCQkKCQk8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CgkJPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgoJCQoJCTxoND5Gb3JtIFRlbXBsYXRlPC9oND4KCQk8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0ncyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgoJCTxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KCQk8cD5Vbmxlc3MgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CgkJCgkJPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0PgoJCTxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KCQk8cD5JZiB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UncmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuPC9wPgoJPC9kaXY+CgkKCTwhLS0gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrIC0tPgoJCgk8ZGl2IGlkPSJmaWVsZHNfYyI+CgkJPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KCQk8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KCQk8dWw+CgkJPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KCQk8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgoJCTxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgoJCTxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgoJCXN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQoJCWZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgoJCTwvdWw+CgkJPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKCQlidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgoJCWlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgoJCVRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwoJCXRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQncyBzYWZlIHRvIHVzZSBmb3IKCQllbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgoJCTxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKCQl0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwoJCXRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KCQk8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAoJCWVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCgkJc2VwYXJhdGVseSBtYXJrZWQgIlJlcXVpcmVkIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KCQk8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CgkJY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICJ2aWV3IHNvdXJjZSIgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgoJCXdyaXRlIHlvdXIgQ1NTLjwvcD4KCgkJPGg0PlN0YW5kYXJkIElucHV0czwvaDQ+CgkJPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCgkJZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgoJCTxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CgkJPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CgkJPGxpPkJ1dHRvbi4gVGhpcyBkb2Vucyd0IGRvIGFueXRoaW5nLCBidXQgeW91IGNhbiBob29rIGl0IGludG8gc29tZSBKYXZhc2NyaXB0LjwvbGk+CgkJPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQoJCWNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KCQk8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KCQk8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KCQlncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CgkJPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KCQlncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CgkJPGxpPlBhc3N3b3JkLiBUaGlzIGlzIGFuIGFzdGVyaXNrZWQtb3V0IHRleHQgZmllbGQsIHVzZWZ1bCBmb3IgcGFzc3dvcmRzLjwvbGk+CgkJPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24KCQl0byBzdWNjZWVkLjwvbGk+CgkJPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KCQk8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CgkJPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KCQk8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgoJCTxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KCQk8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgoJCTxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgoJCTxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CgkJPC91bD4KCgkJPGg0PkVtYWlsLXNwZWNpZmljIElucHV0czwvaDQ+CgkJPHVsPjxsaT5FbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CgkJPGxpPkVtYWlsICJGcm9tIE5hbWUiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KCQk8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICJTdWJqZWN0IiBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CgkJPC91bD4KCgkJPGg0PkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8L2g0PgoJCTx1bD4KCQk8bGk+UGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKCQlpbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgoJCTxsaT5GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CgkJPGxpPkZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CgkJPGxpPkhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgoJCTxsaT5TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91J3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CgkJPGxpPlN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgoJCTxsaT5Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KCQk8bGk+VW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgoJCTxsaT5Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CgkJPC91bD4KCgkJPGg0PkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpPC9oND4KCQk8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzIFwkcGFyYW1zWydmaWVsZF9uYW1lJ10sIGFuZCBhcyBcJHBhcmFtc1snZmllbGRfYWxpYXMnXSAoaWYgZGVmaW5lZCkuPC9saT4KCQk8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAiRGlyZWN0b3IiIHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKCQlmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKCQlhcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgoJCTxsaT4qRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4KCQk8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKCQlmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKCQlhcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgoJCTxsaT4qRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMuIFRoaXMgZmllbGQgaXMgYW4gZW1haWwgZGlzcG9zaXRpb24gdGhhdCBhbGxvd3MgZm9ybSBmaWVsZHMnIHVzZXIgaW5wdXQgdG8gc3BlY2lmeSB0aGUgRW1haWwgU3ViamVjdCwgIkZyb20gTmFtZSIsICJGcm9tIEFkZHJlc3MiLCBhbmQgRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcy48L2xpPgoJCTxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CgkJPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CgkJPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CgkJPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CgkJc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAib3V0cHV0IiBkaXJlY3RvcnkgdW5kZXIgdGhlCgkJbW9kdWxlJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KCQk8bGk+KldyaXRlIFJlc3VsdHMgdG8gYSBVbmlxdWUgRmxhdCBGaWxlIGZvciBlYWNoIHN1Ym1pc3Npb24uIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gdG8gYSB1bmlxdWUgdGV4dCBmaWxlIGZvciBlYWNoIGZvcm0gc3VibWlzc2lvbi4KCQlZb3UgY2FuIHNwZWNpZnkgYSBmaWxlbmFtZSBwYXR0ZXJuIHVzaW5nIHZhbHVlcyBmcm9tIGZvcm0gZmllbGRzLCBzZXQgaXRzIGZvcm1hdCwgYW5kIHNldCB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBmaWxlcyB3aWxsIGJlIHN0b3JlZC48L2xpPgoJCTxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgoJCTxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CgkJPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KCQk8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci48L2xpPgoJCTxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgTGlzdEl0RXh0ZW5kZWQuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGludG8gTGlzdEl0RXh0ZW5kZWQgb2JqZWN0IGFuZCBzYXZlcyBpdCBpbnRvIGRhdGFiYXNlLjwvbGk+CgkJPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4KCQk8L3VsPgoJPC9kaXY+CgkKCTwhLS0gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrIC0tPgoJCgk8ZGl2IGlkPSJ0ZW1wbGF0ZV92YXJpYWJsZV9jIj4KCQkKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJiMxMjM7JGZiX2hpZGRlbn0gYW5kICYjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPiRlbnRyeS0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPiRlbnRyeS0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD4kZW50cnktPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPiRlbnRyeS0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD4kZW50cnktPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD4kZW50cnktPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJ3MgaGVscCB0ZXh0PC90ZD48L3RyPgo8dHI+PHRkPiRlbnRyeS0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD4kZW50cnktPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPiRlbnRyeS0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4KPHRyPjx0ZD4kZW50cnktPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD4kZW50cnktPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJ3MgZGF0YSB0eXBlPC90ZD48L3RyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+JGVudHJ5LT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+JGVudHJ5LT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5CmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMzskbXlmaWVsZC0+dmFsdWV9ICkuCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPiR0b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD4kdGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+JHRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD4kY3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD4kZm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPiRmb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD4kaW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+JGluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+Cjx0cj48dGQ+JGZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+JHByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+JHN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KCgk8L2Rpdj4KCQoJPCEtLSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgLS0+CgkKCTxkaXYgaWQ9ImFkdmFuY2VkX2MiPgoJCTxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KCQk8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCgkJdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCgkJYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KCQk8cD57Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgoJCTxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAnZGVmYXVsdF92YWx1ZScuPC9wPgoJCTxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbid0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KCQlhbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgoJCTxwPntGb3JtQnVpbGRlciBmb3JtPSdteV9mb3JtJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSdkZWZhdWx0X3ZhbHVlJ308L3A+CgkJPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKCQlhbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4KCgkJPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KCQk8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlIiBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgoJCTxwPlRvIHRoZSByaWdodCwgeW91J2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPgoJCTxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91J3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgoJCTxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgIkNyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+CgoJCTxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+CgkJPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcgoJCXF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UKCQl3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4KCQk8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdAoJCWEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4KCQlUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249J2ZldXNlcmZvcm0nIGZvcm09J2Zvcm1fbmFtZSd9LjwvcD4KCQk8cD5Gb3IgZ3JlYXRlciBkYXRhIHNhZmV0eSwgeW91IGNhbiBlbmNyeXB0IHRoZSBzdG9yZWQgZm9ybXMgaW4gdGhlIGRhdGFiYXNlLiBZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4gbXljcnlwdCBsaWJyYXJ5IG9yIHRoZSBPcGVuU1NMIG1vZHVsZS4KCQlJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0CgkJZmlsZSB3aWxsIGJlIHVzZWQgYXMgdGhlIHBhc3NwaHJhc2UgZm9yIGVuY3J5cHRpbmcuPC9wPgoJCTxwPklmIHlvdSBlbmNyeXB0LCBiZSBhd2FyZSB0aGF0IHRoZSBmaWVsZHMgeW91IHVzZSBmb3Igc29ydGluZyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZW5jcnlwdGVkLiBZb3UgY2FuIGNob29zZSB0byBoYXNoIHRoZW07IHRoZSBjaGVhdCBoZXJlCgkJaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdAoJCWV4cG9zZXMgc29tZSBjbGVhcnRleHQsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLjwvcD4KCQk8cD48c3Ryb25nPkRJU0NMQUlNRVI8L3N0cm9uZz4uIFRoZSBlbmNyeXB0aW9uIG9mZmVyZWQgaGVyZSBzaG91bGQgYmUgY29uc2lkZXJlZCBqdXN0IG9uZSBtb3JlIGh1cmRsZSBmb3IgYSBoYWNrZXIsIG5vdCBhcyBhIGd1YXJhbnRlZSB0aGF0CgkJeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQKCQl0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLCBhbmQgZmluZCB0aGVpciB3YXkgdG8gdGhlIHBhc3NwaHJhc2UuIFRoaXMgd2lsbCBub3QgcHJvdGVjdCB5b3UgYWdhaW5zdCBhbiBlbmVteSB3aG8gaGFzIGZ1bGwgYWNjZXNzIHRvIHlvdXIKCQlzZXJ2ZXIsIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBQSFAsIGFuZCB0aGUgdGltZSB0byBwb2tlIGFyb3VuZC4gPGVtPjxzdHJvbmc+RG8gbm90PC9zdHJvbmc+IHVzZSB0aGlzIHRvIHByb3RlY3QgaGlnaC12YWx1ZSBpbmZvcm1hdGlvbiBzdWNoIGFzIGZpbmFuY2lhbCBkYXRhLAoJCXNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lCgkJY2FydGVsLjwvZW0+PC9wPgoJCQoJCTxoMz5Vc2luZyB3aXRoIFVzZXIgRGVmaW5lZCBUYWdzIChVRFRzKTwvaDM+CgkJPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPgoKCQk8dWw+CgkJPGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZAoJCVRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbJ2ZpZWxkX25hbWUnXSwgYW5kCgkJYXMgJHBhcmFtc1snZmllbGRfYWxpYXMnXSAoaWYgZGVmaW5lZCkuIEFzIHBlciBhIHN1Z2dlc3Rpb24sIGl0IGFsc28gcG9wdWxhdGVzIGFsbCBvZiB0aGUgU21hcnR5IHZhbHVlcyB0aGF0IHdvdWxkIGJlIHZpc2libGUgdG8gdGhlIFN1Ym1pc3Npb24gVGVtcGxhdGUgdG9vITwvbGk+CgkJPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgoJCTxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybSdzIGh1bWFuLXJlYWRhYmxlIHJlc3VsdHMuIFRoZSBVRFQgc2hvdWxkIGRvIHdoYXRldmVyCgkJdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQKCQl2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgoJCTxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKS4gVGhpcwoJCWlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQoJCW9mIHRoZSBmb3JtLjwvbGk+CgkJPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZQoJCWZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQKCQlldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KCQk8L3VsPgoJPC9kaXY+CgkKCTwhLS0gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrIC0tPgoJCgk8ZGl2IGlkPSJzdHlsaW5nX2MiPgoJCTxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgoJCTxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiAKCQlzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAiRm9ybUJ1aWxkZXIgRGVmYXVsdCIgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlCgkJdGhhdCB5b3UgdXNlIGZvciBwYWdlcyB0aGF0IGNvbnRhaW4geW91ciBmb3JtLjwvcD4gIAoJCTxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+Cgk8L2Rpdj4KCQoJPCEtLSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgLS0+CgkKCTxkaXYgaWQ9ImNvbmZpZ3VyYXRpb25fYyI+CgkJPGgzPkNvbmZpZ3VyYXRpb248L2gzPgoJCTxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KCQk8dWw+CgkJPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CgkJPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIG5vIGxvbmdlciBzZXQgYnkgZGVmYXVsdC4gQ2hlY2tpbmcgaXQgd2lsbCBoaWRlIHRoZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0aGF0IHdvdWxkIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgoJCTxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgoJCTxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KCQk8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CgkJPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgoJCTxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CgkJPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgoJCTwvdWw+CgkJCgkJPGgzPk1pc2NlbGxhbmVvdXMgTm90ZXM8L2gzPgoJCTx1bD4KICAgICAgPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4KCQkgIDxsaT5UaGUgRmlsZSBVcGxvYWQgZmllbGQgdHlwZSB3b24ndCByZXBvcHVsYXRlIG9uIGZvcm0gZmFpbHVyZSB0byB2YWxpZGF0ZS4gVGhpcyBpcyBub3QgYSBidWc6IGl0J3MgYSBzZWN1cml0eSBsaW1pdGF0aW9uIGFuZCBpdCdzIGVuZm9yY2VkIGJ5IHRoZSBicm93c2Vycy4gQXMgc3VjaCwgY3VycmVudGx5IGFuZCBpbiB0aGUgZm9yZXNlZWFibGUgSFRNTDUgZnV0dXJlIChhcyBpdCB3YXMgaW4gdGhlIHBhc3Qgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIE9wZXJhIGJyb3dzZXJzKSwgb25seSB0aGUgdXNlciBjYW4gcG9wdWxhdGUgYSBmaWxlIGlucHV0IGZpZWxkLiBJdCdzIG5vdCBwb3NzaWJsZSB0byAocmUpcG9wdWxhdGUgdGhlIGZpbGUgaW5wdXQgZmllbGQgZWl0aGVyIHdpdGggamF2YXNjcmlwdCBvciBieSBzZXR0aW5nIGEgZGVmYXVsdCB2YWx1ZSBhcyBpdCdzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXJzLjwvbGk+CgkJPC91bD4KCQk8aDM+S25vd24gSXNzdWVzPC9oMz4KCQk8dWw+CgkJPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSBVUkxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CgkJPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KCQk8L3VsPgoKCQk8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KCQk8b2w+CgkJPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUuMi40IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPgoJCTxsaT5GaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSdyZSBydW5uaW5nIENNUyAxLjExIG9yIGxhdGVyLjwvbGk+CgkJPGxpPlNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCgkJc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgoJCTxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KCQk8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KCQk8bGk+SnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KCQk8bGk+TWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCdzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+CgkJPGxpPkxhc3QgcmVzb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KCQk8L29sPiAKCQk8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KCQl0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQoJCXJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwoJCWF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CgkJPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CQoJPC9kaXY+CgkKCTwhLS0gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrIC0tPgoJCgk8ZGl2IGlkPSJhYm91dF9jIj4KCQk8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KCQk8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KCQk8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTIsIFRhcGlvIEzDtnl0dHkuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KCQk8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTQsIE1vcnRlbiBQb3Vsc2VuIFttb3J0ZW4gYXQgcG91bHNlbiBkb3Qgb3JnXS4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgoJCTxiciAvPgoJCTxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CgkJPGJyIC8+CgkJPHA+TWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlLCBidWcgcmVwb3J0cywgY2FzaCwgYW5kIGlkZWFzIHRvIEZvcm1CdWlsZGVyLiBBbW9uZyB0aGVtOjwvcD4KCQk8dWw+CgkJCTxsaT5GZXJuYW5kbyBNb3JnYWRvIC0gY29kZTwvbGk+CgkJCTxsaT5Sb2xmIFRqYXNzZW5zIC0gY29kZTwvbGk+CgkJCTxsaT5SeWFuIEZvc3RlciAtIGNvZGU8L2xpPgoJCQk8bGk+Sm9uYXRoYW4gU2NobWlkIC0gY29kZSwgaGVscHRleHQ8L2xpPgoJCQk8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1IiB0YXJnZXQ9Il9ibGFuayI+QmFsdGljIGluc3RpdHV0ZSBvZiBhZHZhbmNlZCB0ZWNobm9sb2d5PC9hPiAtIGNvZGUsIGZ1bmRpbmc8L2xpPgoJCQk8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+CgkJCTxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPgoJCQk8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgoJCQk8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4KCQkJPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+CgkJCTxsaT5QaW90cmFzIENpbW1wZXJtYW4gLSBjb2RlPC9saT4KCQkJPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+CgkJCTxsaT5NYXJjIEdlbGRvbiAtIGNvZGU8L2xpPgoJCQk8bGk+S2V2aW4gR3JhbmRvbiAtIGNvZGU8L2xpPgoJCQk8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4KCQkJPGxpPlBhdWwgTm9vbmUgLSBDU1MgYW5kIGlkZWFzPC9saT4KCQkJPGxpPlBydWUgUm93bGFuZCAtIGJ1ZyBmaXhlczwvbGk+CgkJCTxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPgoJCQk8bGk+QWRhbSBTaGF3LVZhcmRpIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgogICAgICA8bGk+SmVhbi1DbGF1ZGUgRXRpZW1ibGUgKGpjZTc2MzUwKTogdGVzdGluZyBhbmQgc3VnZ2VzdGlvbnM7PC9saT4KCQk8L3VsPgoJCTxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSSdsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+Cgk8L2Rpdj4KCgk8IS0tICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyAtLT48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNNU01haWxlciA9Jmd0OyAxLjczPC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZicnBfKj0ibnVsbCIgLSBHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcm1faWQ9Im51bGwiIC0gRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9ybT0ibnVsbCIgLSBGb3JtIE5hbWU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpZWxkX2lkPSJudWxsIiAtIEZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2YWx1ZV8qPSJudWxsIiAtIERlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlc3BvbnNlX2lkPSJudWxsIiAtIFJlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBNb3J0ZW4gUG91bHNlbiAmbHQ7bW9ydGVuQHBvdWxzZW4ub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDAuOC4xPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgogIDxsaT5WZXJzaW9uIDAuOC4xOgogICAgPHVsPgogICAgICA8bGk+Rml4ZWQgIzYzNTcgLSBEdXBsaWNhdGUgRm9ybSBBbGlhc2VzIEFsbG93ZWQ7PC9saT4KCSAgPGxpPkZpeGVkICM2NTM2IC0gIkphdmFzY3JpcHQgZm9yIGZpZWxkIiBub3QgaW5jbHVkZWQgaW4gaW5wdXQgZm9yICJWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyI7PC9saT4KCSAgPGxpPkZpeGVkICM2NjQwIC0gVGV4dEZpZWxkRXhwYW5kYWJsZTogaW5jb3JyZWN0IG91dHB1dCB3aGVuIG9ubHkgb25lIHZhbHVlOzwvbGk+CiAgICAgIDxsaT5GaXhlZCAjNzA2MyAtIFVEVCB2YWxpZGF0aW9uIGRvZXNuJ3Qgd29yayBwcm9wZXJseSB3aXRoIHN0YW5kYXJkIHZhbGlkYXRpb247PC9saT4KCSAgPGxpPkZpeGVkICM3ODg2IC0gQ2FsbCB0byBhIG1lbWJlciBmdW5jdGlvbiBUeXBlKCkgb24gYSBub24tb2JqZWN0IGF0IENhdGFsb2dlckl0ZW1zRmllbGQuY2xhc3MucGhwOjkwOzwvbGk+CgkgIDxsaT5GaXhlZCAjODY5MSAtIFVEVCB2YWxpZGF0aW9uIGRvZXNuJ3Qgd29yayBwcm9wZXJseSB3aXRoIHN0YW5kYXJkIHZhbGlkYXRpb247PC9saT4KCSAgPGxpPkZpeGVkICM5NjM3IC0gRmF0YWwgZXJyb3Igb24gRm9ybSB3aXRoIEVtYWlsIHJlc3VsdHMgZmllbGQgLSBPYmplY3Qgb2YgY2xhc3MgZmJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBjb3VsZCBub3QgYmUgY29udmVydGVkIHRvIHN0cmluZzs8L2xpPgoJICA8bGk+Rml4ZWQgIzk5NzYgLSBDaGVja2JveCBkb2VzIG5vdCBnZXQgYXV0byB0aWNrZWQgd2hlbiB1c2luZyB2YWx1ZV9mbGROVU1CRVIiIGFuZCAidmFsdWVfRklFTEROQU1FIjs8L2xpPgoJICA8bGk+Rml4ZWQgIzEwMjI5IC0gZml4ZXMgdmFsaWRhdGlvbiBvZiBlbWFpbHM7IGZpeGVzIHRoZSBhcHBlYXJhbmNlIG9mIGh0bWwgZW50aXRpZXMgaWYgdGhlIGZvcm0gZG9lc24ndCB2YWxpZGF0ZTs8L2xpPgoJICA8bGk+Rml4ZWQgIzEwMjYwIC0gVGV4dGFyZWEgY2xlYXIgZGVmYXVsdCBvbiBjbGljayAmJiB7c3RyaXB9IG5vdCB3b3JraW5nOzwvbGk+CSAgICAKCSAgPGxpPkZlYXR1cmUgUmVxdWVzdCAjMTAxMTcgLSBBZGQgZGlyZWN0aXZlIFJFUVVJUkVEIGluIG5IVE1MNTs8L2xpPgoJICA8bGk+RmVhdHVyZSBSZXF1ZXN0ICMxMDI2OCAtIEhUTUw1IHBsYWNlaG9sZGVyIGZvciAiKkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5Ijs8L2xpPgoJICA8bGk+Rml4ZWQgU2hvdyB0ZXh0ZmllbGQgaW4gQ2hlY2tib3hFeHRlbmRlZEZpZWxkIGNsYXNzOzwvbGk+CgkgIDxsaT5GaXhlcyB0byBEaXNwb3NpdGlvbkVtYWlsIHJlbGF0ZWQgd2l0aCB1cGxvYWRlZCBmaWxlcyBhbmQgYXR0YWNobWVudHMuIE5vdyB3ZSBjYW4gcHJvcGVybHkgc2VwYXJhdGUgdGhlIHBhdGgsIHRoZSB1cmwgYW5kIHRoZSBmaWxlbmFtZS4gUHJvYmFibHkgZml4ZXMgYSBidW5jaCBvZiBvbGQgaXNzdWVzOzwvbGk+CgkgIDxsaT5GaXhlcyBtdWx0aXBsZSBwYWdlcyB1cGxvYWRzOzwvbGk+CgkgIDxsaT5JbXByb3ZlbWVudHMgdG8gRGF0ZVBpY2tlciBhbmQgVGltZVBpY2tlcjs8L2xpPgoJICA8bGk+VGhlICJVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uIiBwcmVmZXJlbmNlIGlzIHJlbW92ZWQsIGVtYWlscyBqdXN0IGhhdmUgdG8gcGFzcyB2YWxpZGF0aW9uOzwvbGk+CgkgIDxsaT5Tb21lIHByZWZlcmVuY2VzIGFyZSBtb3ZlZCB0byB0aGUgcHJpdmF0ZSBjb25maWc7IG1pZ2h0IGJlIGRlZmluaXRlbHkgcmVtb3ZlZC9oYXJkY29kZWQgaW4gYSBmdXR1cmUgdmVyc2lvbjs8L2xpPgoJICA8bGk+VXBkYXRlcyBmb3IgSFRNTDU8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuODo8YnIgLz4KCTxwPkJlY2F1c2UgdGhlIDAuNy40IHJlbGVhc2Ugd2FzIHVuc3RhYmxlLCBhIG5ldyBncm91cCBvZiBkZXZlbG9wZXJzIHdlbnQgYmFjayB0byB0aGUgd29ya2luZyBjb2RlIG9mIDAuNy4zIGFuZCBzdGFydGVkIHdvcmtpbmcgZnJvbSB0aGVyZS4gRmlyc3QgcHJpb3JpdHk6IGEgc3RhYmxlIEZvcm1idWlsZGVyIHJlbGVhc2UhPC9wPgogICAgPHVsPgoJICAgIDxsaT5GaXhlZCAjNzQwOCAtIERlYnVnIGluZm9ybWF0aW9ucyBzaG93biBkdXJpbmcgdXBncmFkZTs8L2xpPgoJICAgIDxsaT5GaXhlZCAjNzQ1MCAtIGNvdW50cmllcyBXQVkgb3V0IG9mIGRhdGUgLSBjYXVzaW5nIGEgZmV3IHByb2JsZW1zIHdpdGggU2VyYmlhbiBjdXN0b21lcnM7PC9saT4KCSAgICA8bGk+Rml4ZWQgIzg1MTAgLSBXYXJuaW5nOiBJbGxlZ2FsIHN0cmluZyBvZmZzZXQgJ3NlbnQnOzwvbGk+CgkgICAgPGxpPkZpeGVkICM4ODkzIC0gVGV4dCBpbnB1dCAobXVsdGlwbGUpIGRlbGV0ZSBidXR0b247PC9saT4KCSAgICA8bGk+Rml4ZWQgIzkyOTYgLSBGaWVsZCBrZWVwcyBiZWluZyByZXF1aXJlZCBldmVuIGlmIHVuc2V0OzwvbGk+CgkgICAgPGxpPkZpeGVkICM5MzYwIC0gRm9ybWJ1aWxkZXIgZG9lc24ndCB1cGxvYWQgZmlsZXMgb24gbXVsdGkgcGFnZSBmb3Jtczs8L2xpPgoJICAgIDxsaT5GaXhlZCAjOTczOCAtIEhlbHB0ZXh0IEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzOzwvbGk+CgkJPGxpPkZpeGVkICM5NTExIC0gTWlzc2luZyBsYW5ndWFnZSBzdHJpbmc6IHZhbGlkYXRpb25fbGVuZ3RoOzwvbGk+CgkgICAgPGxpPkZpeGVkICM5NTEzIC0gVW5kZWZpbmVkIHZhcmlhYmxlL2luZGV4IG5vdGljZXMgaW4gYXBhY2hlIGxvZzs8L2xpPgoJICAgIDxsaT5GaXhlZCAjOTk1OSAtIFdoZW4gZW1haWwgZmllbGQgaXNuJ3QgcmVxdWlyZWQgdmFsaWRhdGlvbiBtYWtlcyBpdCByZXF1aXJlZDs8L2xpPgoJCTxsaT5GaXhlZCAjMTAyNTUgLSBGaWxlIHVwbG9hZCBkb2VzIG5vdCB3b3JrIHdoZW4gZm9ybSBpcyBpbmNvbXBsZXRlIG9yIGhhcyBlcnJvcnM6IHJlbW92ZWQgdGhlIDxzdHJvbmc+ZGVsZXRlPC9zdHJvbmc+IGNoZWNrYm94IGFuZCB0aGUgdGV4dCB3aXRoIHRoZSBmaWxlIG5hbWUgd2hlbiBmb3JtIHN1Ym1pc3Npb24gZmFpbHM7CgkJPHA+KDxzdHJvbmc+Tm90ZTogbm90IGEgYnVnIDxpPnBlciBzZTwvaT4sIGJ1dCBhbiBpbmNvbnNpc3RlbmN5OiB0aGUgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGRlZmF1bHQgdmFsdWUgZm9yIGZpbGUgdXBsb2FkIGZpZWxkcyBmb3Igc2VjdXJpdHkgcmVhc29ucy48L3N0cm9uZz4pPC9wPjwvbGk+CgkgICAgPGxpPkNvZGUgY2xlYW51cDs8L2xpPgoJICAgIDxsaT5GaXhlcyBmb3IgQ01TTVMgQ29yZSAyLjAgcmVsZWFzZTs8L2xpPgoJICAgIDxsaT5GaWVsZCB0YWJsZSB3aWR0aCBpcyBub3cgMTAwJTs8L2xpPgoJICAgIDxsaT5IZWxwIHRleHQgcmUtd3JpdHRlbiBhbmQgRW5nbGlzaCBvbmx5IG5vdzs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNy40OgogICAgPHVsPgogICAgICA8bGk+VGhpcyByZWxlYXNlIHdhcyBub3Qgc3RhYmxlIGFuZCB0aGVyZWZvcmUgd2l0aGRyYXduIGZyb20gdGhlIEZvcmdlOzwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMC43LjM6CiAgICA8dWw+CiAgICAgIDxsaT5Db21wYXRpYmlsaXR5IHJlbGVhc2UgZm9yIDEuMTE7PC9saT4KICAgICAgPGxpPkFkZGluZyBjYW5jZWwgYnV0dG9ucyB0byBmb3JtIGFuZCBmaWVsZCBpbnN0YW5jZXM7PC9saT4KICAgICAgPGxpPlJlbW92aW5nIHVnbHkgZ28gYmFjayBsaW5rOzwvbGk+CiAgICAgIDxsaT5FbnN1cmluZyB1c2FiaWxpdHkgaW4gUEhQIHN0cmljdCBtb2RlOzwvbGk+CiAgICAgIDxsaT5Tb21lIHRlbXBsYXRlIGZpeGVzOzwvbGk+CiAgICAgIDxsaT5OT1RFOiBUaGlzIGlzIG5vdCBmZWF0dXJlIG9yIGJ1ZyByZWxlYXNlLCB0aGlzIGlzIGNvbXBhdGliaWxpdHkgcmVsZWFzZSBhcyB3ZSBhaW4ndCB3b3JraW5nIHdpdGggYW55dGhpbmcgZWxzZSB0aGFuIG1haW50YWluaW5nIGNlcnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIHRoaXMgbW9kdWxlLiBTdGF5IHR1bmVkIGZvciBGb3JtQnVpbGRlcjIgd2l0aGluIHRoaXMgeWVhcjs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNy4yOgogICAgPHVsPgogICAgICA8bGk+TWFueSBidWcgZml4ZXM7PC9saT4KICAgICAgPGxpPkxhc3QgdmVyc2lvbiBvZiAwLnggc2VyaWVzOzwvbGk+CiAgICAgIDxsaT5GaXhpbmcgY29tcGFiaWxpdHkgd2l0aCAxLjEwLnggc2VyaWVzOzwvbGk+CiAgICAgIDxsaT5GaXhpbmcgcHJvYmxlbXMgd2l0aCBGb3JtIEJyb3dzZXI7PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjcuMSAtIChjYWxndXkxMDAwKToKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRoZSBzZWFyY2ggZm9yIGZpZWxkcyB0byBub3Qgc2hvdyBiYWNrdXAgZmlsZXMgZXRjOzwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIENNUyBWZXJzaW9uIGNvbXBhcmlzb247PC9saT4KICAgICAgPGxpPkFkZHMgYSBkaXNwb3NpdGlvbiB0byBhbGxvdyBzZWxlY3RpbmcgdXNlcnMgdG8gZW1haWwgYmFzZWQgb24gYW4gRkVVIHByb3BlcnR5LiAgIEFsc28gYXNzaWducyBzbWFydHkgdmFyaWFibGVzIHdpdGggaW5mbyBhYm91dCBtYXRjaGluZyB1c2Vzczs8L2xpPgogICAgPC91bD4KICA8L2xpPgoJPGxpPlZlcnNpb24gMC43OgoJCTx1bD4KCQkJPGxpPkZpeGVkIGEgYnVnIHdoaWNoIGNhdXNlZCB0aGUgRGF0ZSBTdWJtaXR0ZWQgc29ydGluZyBpbiBGb3JtIEJyb3dzZXIgdG8gYmUgaW5jb25zaXN0ZW50IGFjcm9zcyBwYWdlcyBhdCBmaXJzdDs8L2xpPgoJCQk8bGk+Rml4ZWQgYSBidWcgd2hpY2ggY2F1c2VkIGEgQ2hlY2tib3ggRmllbGQgdG8gYmUgdW5hYmxlIHRvIGJlIHJlcXVpcmVkLiBDaGVja2JveCBGaWVsZHMgY2FuIG5vdyBiZSBtYWRlIHJlcXVpcmVkOzwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU2MTA6IEZpbGUgVXBsb2FkIEZpZWxkIGFkdmFuY2VkIG9wdGlvbnMgbm93IHNhdmUgY29ycmVjdGx5OzwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU3MDI6IFdoZW4gdXNpbmcgdGhlICJGcm9udGVuZCBVc2VyIGJpbmRpbmciIGFkdmFuY2VkIG9wdGlvbiBvbiB0aGUgRm9ybUJyb3dzZXIgRGlzcG9zaXRpb24sIGNoZWNrYm94ZXMgY2FuIG5vdyBiZSBzYXZlZCBpbiB0aGUgInVuY2hlY2tlZCIgc3RhdGUuIFRoYW5rcyBNaWtlIEh1Z2hlc2RvbiE8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1NDIyOiBNdWx0aXBsZSBmb3JtcyB1c2luZyB0aGUgIkZyb250ZW5kIFVzZXIgYmluZGluZyIgYWR2YW5jZWQgb3B0aW9uIG9uIHRoZSBGb3JtQnJvd3NlciBEaXNwb3NpdGlvbiBub3cgY29ycmVjdGx5IGxvYWQgcHJldmlvdXNseSBzdWJtaXR0ZWQgZGF0YS4gVGhhbmtzIE1pa2UgSHVnaGVzZG9uITwvbGk+CgkJCTxsaT5BZGRlZDogTmV3IERpc3Bvc2l0aW9uIC0gRGlzcG9zaXRpb25VbmlxdWVGaWxlLiBXcml0ZSBmb3JtIHJlc3VsdHMgdG8gYSB1bmlxdWUgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb247PC9saT4KCQkJPGxpPkFkZGVkOiBUaW55TUNFIGludGVncmF0ZWQ7PC9saT4KCQkJPGxpPkFkZGVkOiBOZXcgRGlzcG9zaXRpb24gLSBEaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcy4gU2VuZCBmb3JtIHJlc3VsdHMgdmlhIGVtYWlsIHdpdGggZnJvbnRlbmQtdXNlci1zcGVjaWZpZWQgU3ViamVjdCwgIkZyb20gTmFtZSIsICJGcm9tIEFkZHJlc3MiLCBhbmQgRGVzdGluYXRpb24gQWRkcmVzczs8L2xpPgoJCQk8bGk+QWRkZWQ6IFJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHRvIFVuaXF1ZUludGVnZXJGaWVsZDs8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1NTU1LyM1NDUzOiBEb21pbmljYSAoRE0pIGlzIG5vdyBwcm9wZXJseSBzZWxlY3RhYmxlIGluIHRoZSBDb3VudHJ5IFBpY2tlciBGaWVsZDs8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM0MzA3OiBGaWxlcyB1cGxvYWRlZCBvbiBlYXJsaWVyIHBhZ2VzIG9mIGEgbXVsdGktcGFnZSBmb3JtIGFyZSBub3cgYXR0YWNoZWQgdG8gRW1haWwgRGlzcG9zaXRpb25zIG9uIGxhdGVyIHBhZ2VzOzwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzM2MDU6IERhdGVzIGFyZSBub3cgdHJhbnNsYXRlZCBpbiBFbWFpbCBEaXNwb3NpdGlvbnMuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjNTM1ODogRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgbm93IGNyZWF0ZXMgYSBjb3JyZWN0IGxhYmVsIGZvciBpdHMgaW5wdXQgZmllbGQ7PC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjMTgyMjogSGlkZGVuIEZpZWxkcyBjYW4gbm93IGJlIGVkaXRlZCBpbiBhbiBBZG1pbiBGb3JtIEJyb3dzZXI7PC9saT4KCQkJPGxpPkFkZGVkIEZlYXR1cmUgUmVxdWVzdCAjNTI3NzogQWxsb3cgRGlzcG9zaXRpb25Gb3JtQnJvd3NlciB0byBiZSBoaWRkZW47PC9saT4KCQkJPGxpPlNldmVyYWwgb3RoZXIgY2xlYW51cHMgYW5kIG1pbm9yIGZpeGVzOzwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjYuNC4KCQk8dWw+CgkJCTxsaT5CdWdzIGZpeGVzIGZvciBGaWVsZCBTb3J0aW5nLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkIGFuZCBTdGlra2kgZm9yIGZpeGluZyBpdCE8L2xpPgoJCQk8bGk+SW1wcm92ZW1lbnRzIEZpbGVVcGxvYWQgZmllbGQ6IG92ZXJ3cml0ZSBmbGFnLCBmaWxlIHJlbmFtaW5nLCBhbmQgaGlkaW5nIGZpbGVuYW1lIGluIG91dHB1dDs8L2xpPgoJCQk8bGk+QWRkaXRpb25hbCBwYXRjaGVzIGZyb20gUnlhbiBGb3N0ZXIgZm9yIERhdGVQaWNrZXI7PC9saT4KCQk8L3VsPgoJPC9saT4KICA8bGk+VmVyc2lvbiAwLjYuMzoKCSAgPHVsPgoJCSAgPGxpPlNlY3VyaXR5IHBhdGNoIGZvciBVcGxvYWQgZmllbGQgdHlwZTs8L2xpPgoJCSAgPGxpPk51bWVyb3VzIGJ1Z3MgZml4ZXMuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQ7PC9saT4KCQkgIDxsaT5OdW1lcm91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIGZvciB1c2Ugd2l0aCBGb3JtQnJvd3NlciB2MC4zLng7PC9saT4KCQkgIDxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIENvbXB1dGVkRmllbGQgdHlwZSB0byBhbGxvdyBtdWNoIG1vcmUgY29tcHV0YXRpb247PC9saT4KCQkgIDxsaT5WaWxraXMnIGZpeGVzIGZvciBsb2NhbGl6aW5nIENvdW50cnlQaWNrZXI7PC9saT4KCQkgIDxsaT5SeWFuIEZvc3RlcidzIHBhdGNoIGZvciByZS1vcmRlcmluZyBkYXRlIGlucHV0cyBvbiBEYXRlUGlja2VyOzwvbGk+CgkgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjYuMjoKCSAgPHVsPgoJCSAgPGxpPkEgbG90IG9mIHNtYWxsIGFuZCBiaWcgYnVncyBmaXhlcy4gVGhhbmtzIHRvIGV2ZXJ5b25lIHdobyByZXBvcnRlZDs8L2xpPgoJCSAgPGxpPkludHJvZHVjaW5nIGR5bmFtaWMgZmllbGQgbWFuYWdlbWVudDs8L2xpPgoJCSAgPGxpPk5ldyAiWWVhclB1bGxEb3duIiBmaWVsZCB0eXBlIGFkZGVkOzwvbGk+CgkJICA8bGk+Q29tcGF0aWJsZSB3aXRoIENNU01TIDEuNy4xIGFuZCBmdXJ0aGVyOzwvbGk+CgkJICA8bGk+QWRkZWQgalF1ZXJ5LiBQcm90b3R5cGUgcmVtb3ZlZCBjb21wbGV0ZWx5OzwvbGk+CgkJICA8bGk+QWRkZWQgc29tZSBzdHlsaW5nOzwvbGk+CgkgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjYuMToKCSAgPHVsPgoJCSAgPGxpPk51bWVyb3VzIEJ1ZyBmaXhlcy4gSWYgeW91ciBidWcgaXNuJ3QgZml4ZWQsIHBvc3QgaXQgaW4gdGhlIHRyYWNrZXIhPC9saT4KCQkgIDxsaT5OZXcgVmFsaWRhdGlvbiBVRFQgY29kZSBwcm92aWRlZCBieSBKZWZmIEJvc2NoOzwvbGk+CgkJICA8bGk+QWJpbGl0eSB0byByZWplY3QgYmxhbmsvb25seSBzcGFjZXMgZm9yIHJlcXVpcmVkIGZpZWxkczs8L2xpPgoJCSAgPGxpPk5ldyAiQ29tcGFueURpcmVjdG9yeSIiIEZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCSAgPGxpPkltcHJvdmVtZW50cyB0byBkZWZhdWx0IHZhbHVlIGNvZGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M7PC9saT4KCQkgIDxsaT5OZXcgIk1vZHVsZSBJbnRlcmZhY2UiIGZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M7PC9saT4KCQkgIDxsaT5OZXcgIlVzZXIgRGVmaW5lZCBUYWcgQ2FsbCIgZmllbGQgdHlwZTs8L2xpPgoJCSAgPGxpPkZpeCB0byBzdXBwb3J0IHN5bnRheCBoaWdobGlnaHRlcnMgZm9yIHRlbXBsYXRlcyBhbmQgSmF2YXNjcmlwdCBvbiBhZG1pbiBzaWRlOzwvbGk+CgkJICA8bGk+PC9saT4KCSAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNiAtIDMwIERlYyAwOTogQnVnIGZpeGVzLiBGaW5hbGx5IHJlbGVhc2luZyB0aGlzIHRoaW5nITwvbGk+CiAgPGxpPlZlcnNpb24gMC42YjI6CiAgICAgPHVsPgogICAgICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuIFRoYW5rcyBmb3IgYWxsIHdobyByZXBvcnRlZCBvbiBidWdzITwvbGk+CiAgICAgICAgPGxpPkFkZGVkIEZvcm0gRGlzcG9zaXRpb24gdG8gZG8gYW4gSFRUUCBHRVQgb3IgUE9TVCB0byBhbnkgYXJiaXRyYXJ5IFVSTCBmb3IgZm9ybSBoYW5kbGluZzs8L2xpPgogICAgICAgIDxsaT5BZGRlZCBjYXBhYmlsaXR5IChhbmQgZXhhbXBsZSBvZikgYWR2YW5jZWQgbXVsdGlwYWdlIGNvbnRhY3QgZm9ybSB3aGVyZSBhIHByZXZpb3VzIHJlc3BvbnNlIGdldHMgZGlzcGxheWVkIG9uIGEgc3Vic2VxdWVudCBwYWdlIGFzIHBlciB1cHRvZWxldmVuJ3MgRlI7PC9saT4KICAgICAgICA8bGk+Rml4IGZvciB0ZW1wbGF0ZSAkZmxkX1ggcmVtYXBwaW5nIG9uIFhNTCBpbXBvcnQ7PC9saT4KICAgICAgICA8bGk+RXh0ZW5kZWQgdG8gcHJvdmlkZSBET00vQ1NTIGlkIGF0dHJpYnV0ZXMgdG8gZmllbGRzOzwvbGk+CiAgICAgICAgPGxpPkNsZWFuZWQgdXAgYmFkIHVzZSBvZiByZWZlcmVuY2VzIGZvciBQSFAgNS54OzwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNmIxOgoJICA8dWw+CgkJICA8bGk+VXBkYXRlZCBkYXRhYmFzZSBjb2RlIHRvIGJlIENNU01TIDEuNy1jb21wYXRpYmxlOzwvbGk+CgkJICA8bGk+QWRkZWQgQnV0dG9uIGZpZWxkIHR5cGUuPC9saT4KCQkgIDxsaT5JbXBsZW1lbnRlZCBGb3JtQnJvd3NlciB2MC4zIERpc3Bvc2l0aW9uOzwvbGk+CgkJICA8bGk+TnVtZXJvdXMgY29kZSBmaXhlczs8L2xpPgoJICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjEyIC0gMyBTZXB0IDA5OiBOdW1lcm91cyB1c2VyLXN1Ym1pdHRlZCBmaXhlcy4gVGhhbmtzIHRvIENhbGd1eSBhbmQgU2ltb24gU2NoYXVmaTs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4xMSAtIDE5IEphbiAwOSAoY2FsZ3V5MTAwMCk6CiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBjYXBhYmlsaXR5IHRvIGNhbGwgYSBVRFQgYmVmb3JlIHRoZSBmb3JtIGlzIGRpc3BsYXllZDs8L2xpPgogICAgICA8bGk+TW92ZSBjaGFuZ2Vsb2cgdG8gYW4gZXh0ZXJuYWwgZmlsZTs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4xMDogMTIgSmFuIDA5LiBCdWcgZml4ZXMgdG8gcmVzdG9yZSBmdW5jdGlvbmFsaXR5IG9mIEZvcm1Ccm93c2VyOzwvbGk+CiAgPGxpPlZlcnNpb24gMC41Ljk6IEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uRmlsZSBjbGFzczs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS44OiBKYW4gMDkgKGNhbGd1eTEwMDApIC0gTWlub3IgY2hhbmdlIHRvIHRoZSBEaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yIGNsYXNzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC41Ljc6IEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgY2xhc3M7PC9saT4KICA8bGk+VmVyc2lvbiAwLjUuNjogMjMgRGVjIDA4LiBCdWcgZml4ZXM7PC9saT4KICA8bGk+VmVyc2lvbiAwLjUuNTogMSBPY3QgMDguIEJ1ZyBmaXhlcy4gQWRkZWQgbmV3IERpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkIHRvIHJlcGxhY2UgZGVmaWNpZW5jaWVzIHdpdGggRW1haWwgQWRkcmVzcyAnRnJvbScgRmllbGQgdHlwZTs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS40OiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCdzIG5ldyBcIkVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgQWdhaW4gRmllbGRcIi4gQWRkZWQgZGF0YWJhc2UgaW5kaWNlczs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4zOiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42OzwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjI6IDI1IE1heSAwOC4gQnVnZml4ZXMuIFJlbGVhc2UgaW4gcHJlcGFyYXRpb24gZm9yIHN1YnN0YW50aWFsIHJld29ya2luZyBmb3IgMC42OzwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjE6IDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZTs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNTogMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb247PC9saT4KICA8bGk+VmVyc2lvbiAwLjQuNDogMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkOzwvbGk+CiAgPGxpPlZlcnNpb24gMC40LjM6IDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9uczs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNC4yOiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC40LjE6IEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC40OgoJICA8dWw+CgkJICA8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE7PC9saT4KCQkgIDxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlOzwvbGk+CgkJICA8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTs8L2xpPgoJCSAgPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiBcIlRleHRGaWVsZCAoTXVsdGlwbGUpXCIgYW5kIFwiQ29tcHV0ZWQgRmllbGRcIjs8L2xpPgoJCSAgPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogXCJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93blwiIGFuZCBcIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnNcIihDYWxndXkpOzwvbGk+CgkJICA8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlczs8L2xpPgoJCSAgPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9XCJ2YWx1ZVwiIHN5bnRheCAoQ2FsZ3V5KTs8L2xpPgoJCSAgPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTs8L2xpPgoJICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMC4zOgogICAgIDx1bD4KICAgICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydDs8L2xpPgogICAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDs8L2xpPgogICAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJ3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzOzwvbGk+CiAgICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ7PC9saT4KICAgICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczs8L2xpPgogICAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzs8L2xpPgogICAgICAgIDxsaT5BZGRlZCBEcmFnJ24nRHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzOzwvbGk+CiAgICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uOzwvbGk+CiAgICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzs8L2xpPgogICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgICAgPHA+QmlnIHJlbGVhc2U6PC9wPgogICAgIDx1bD4KICAgICAgIDxsaT5BZGRlZCBcIkVtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzXCIgZGlzcG9zaXRpb247PC9saT4KICAgICAgIDxsaT5BZGRlZCBcIlRpbWVQaWNrZXJcIiBmaWVsZCB0eXBlLiBTcGxpdCBcIkxpbmtcIiBmaWVsZCBpbnRvIGEgXCJVc2VyLXN1cHBsaWVkIExpbmtcIiBmaWVsZCBhbmQgYSBcIlN0YXRpYyBMaW5rXCIgZmllbGQ7PC9saT4KICAgICAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnM7PC9saT4KICAgICAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzOzwvbGk+CiAgICAgICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zOzwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuMi4zCiAgICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjIuMgogICAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOjwvcD4KICAgICA8dWw+CiAgICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPgogICAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzOgogICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZAogICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuPC9wPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsOgogICAgICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGUuPC9wPgogICAgICAgIDwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cncyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTs8L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[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[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoaXNzZXQoJHBhcmFtc1snZmJycF9jYW5jZWwnXSkpIHsKCSRwYXJtc1snZm9ybV9pZCddID0gJHBhcmFtc1snZm9ybV9pZCddOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsICRwYXJtcyk7Cn0KCiR0aGlzLT5pbml0aWFsaXplKCk7CgokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcyx0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfYWVmX3VwZCddKSB8fCAoaXNzZXQoJHBhcmFtc1snZmJycF9hZWZfYWRkJ10pICYmICRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSAhPSAnJykpCgl7CgkvLyBzYXZlIHRoZSBmaWVsZC4KCSR0aGlzLT5Eb0FjdGlvbignYWRtaW5fc3RvcmVfZmllbGQnLCAkaWQsICRwYXJhbXMpOwoJcmV0dXJuOwoJfQplbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfYWVmX2FkZCddKSkKCXsKCS8vIHNob3VsZCBoYXZlIGdvdCBhIGZpZWxkIHR5cGUgZGVmaW5pdGlvbiwgc28gZ2l2ZSByZXN0IG9mIHRoZSBmaWVsZCBvcHRpb25zCgkvLyByZXNlcnZlIHRoaXMgc3BhY2UgZm9yIHNwZWNpYWwgb3BzIDopCgl9CmVsc2VpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9hZWZfb3B0YWRkJ10pKQoJewoJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gYWRkIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCSRhZWZpZWxkLT5Eb09wdGlvbkFkZCgkcGFyYW1zKTsKCX0KZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRkZWwnXSkpCgl7CgkvLyBjYWxsIHRoZSBmaWVsZCdzIG9wdGlvbiBkZWxldGUgbWV0aG9kLCB3aXRoIGFsbCBhdmFpbGFibGUgcGFyYW1ldGVycwoJJGFlZmllbGQtPkRvT3B0aW9uRGVsZXRlKCRwYXJhbXMpOwoJfQplbHNlCgl7CgkvLyBuZXcgZmllbGQsIG9yIGltcGxpY2l0IGFlZl9hZGQuCgkvLyBhZ2FpbiwgcmVzZXJ2aW5nIHRoZSBzcGFjZSBmb3IgZnV0dXJlIGVuZGVhdm9ycwoJfQoKZWNobyAkYWVmb3JtLT5BZGRFZGl0RmllbGQoJGlkLCAkYWVmaWVsZCwgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfZGlzcG9zZV9vbmx5J10pPyRwYXJhbXNbJ2ZicnBfZGlzcG9zZV9vbmx5J106MCksICRyZXR1cm5pZCwgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyR0aGlzLT5TaG93TWVzc2FnZSgkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSk6JycpOwoKIwojIEVPRgojCQkKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCmlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NldF9maWVsZF9sZXZlbCddKSkKCXsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkX2xldmVsJywkcGFyYW1zWydmYnJwX3NldF9maWVsZF9sZXZlbCddKTsKCX0KCiR0YWIgPSAkdGhpcy0+R2V0QWN0aXZlVGFiKCRwYXJhbXMpOwoKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddOicnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZm9ybS0+RGVsZXRlRmllbGQoJHBhcmFtc1snZmllbGRfaWQnXSk7CmVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdmaWVsZF9kZWxldGVkJykpOwoJCQojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZm9ybS0+RGVsZXRlKCk7CgokcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2RlbGV0ZWQnKTsKJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwoJCQojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_get_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAocHJlZ19tYXRjaCgnL1wudHBsJC8nLCRwYXJhbXNbJ2ZicnBfdGlkJ10pKQogICAgewogICAgJHRwbHN0ciA9IGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzLycuJHBhcmFtc1snZmJycF90aWQnXSk7CiAgICB9CmVsc2UKICAgIHsKICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCB2YWx1ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJCSJtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9PyBhbmQgbmFtZT0nZm9ybV90ZW1wbGF0ZSciOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWydmYnJwX3RpZCddKSk7CglpZiAoJGRicmVzdWx0ICE9PSBmYWxzZSAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkkdHBsc3RyID0gJHJvd1sndmFsdWUnXTsKCQl9CiAgICB9CgpAb2JfY2xlYW4oKTsKQG9iX2NsZWFuKCk7CmhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKaGVhZGVyKCdFeHBpcmVzOiAwJyk7CmhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CmhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwpoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsKaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkdHBsc3RyKSk7CmVjaG8gJHRwbHN0cjsKZXhpdDsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CgppZiAoJHZhbFswXSkKCXsKCQkkYWVmaWVsZC0+UG9zdEFkbWluU3VibWl0Q2xlYW51cCgpOwoJCSRhZWZpZWxkLT5TdG9yZSh0cnVlKTsKCQkkYWVmaWVsZC0+UG9zdEZpZWxkU2F2ZVByb2Nlc3MoJHBhcmFtcyk7CgkJJHBhcmFtc1snZmJycF9tZXNzYWdlJ109JHBhcmFtc1snZmJycF9vcCddOwoJCSR0aGlzLT5Eb0FjdGlvbignYWRtaW5fYWRkX2VkaXRfZm9ybScsICRpZCwgJHBhcmFtcyk7Cgl9CgllbHNlCgl7CgkJICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CgkJICRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddID0gJHZhbFsxXTsKCQkgZWNobyAkYWVmb3JtLT5BZGRFZGl0RmllbGQoJGlkLCAkYWVmaWVsZCwgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfZGlzcG9zZV9vbmx5J10pPyRwYXJhbXNbJ2ZicnBfZGlzcG9zZV9vbmx5J106MCksICRyZXR1cm5pZCwgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddOicnKTsKCX0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoaXNzZXQoJHBhcmFtc1snZmJycF9jYW5jZWwnXSkpCgl7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKCX0KCi8vIFN0b3JlIGRhdGEKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwokYWVmb3JtLT5TdG9yZSgpOwoKJHRhYiA9ICR0aGlzLT5HZXRBY3RpdmVUYWIoJHBhcmFtcyk7CgovLyBDaGVjayB3aGljaCBidXR0b24gd2FzIHByZXNzZWQKaWYgKCRwYXJhbXNbJ2ZicnBfc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3NhdmUnKSkKCXsKCQkkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSk7CgkJJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwoJfSBlbHNlIHsKCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGFiLCAkdGhpcy0+TGFuZygnZm9ybScsJHBhcmFtc1snZmJycF9mb3JtX29wJ10pKTsKCX0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRm9ybUJ1aWxkZXINCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc19vYmplY3QoQGNtc21zKCkpKSBleGl0Ow0KDQppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsNCg0KJGZiX2NvbmZpZyA9IGZiX2NvbmZpZzo6R2V0SW5zdGFuY2UoKTsNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydmYnJwX2hpZGVfZXJyb3JzJ10pPyRwYXJhbXNbJ2ZicnBfaGlkZV9lcnJvcnMnXTowKTsNCi8vJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsaXNzZXQoJHBhcmFtc1snZmJycF9zaG93X3ZlcnNpb24nXSk/JHBhcmFtc1snZmJycF9zaG93X3ZlcnNpb24nXTowKTsNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoDQoJCQkJCQkJCQkJCSdzaG93X3ZlcnNpb24nLA0KCQkJCQkJCQkJCQlpc3NldCgkZmJfY29uZmlnWydzaG93X3ZlcnNpb24nXSkgPw0KCQkJCQkJCQkJCQkkZmJfY29uZmlnWydzaG93X3ZlcnNpb24nXSA6IEZBTFNFDQoJCQkJCQkJCQkJKTsNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfcmVsYXhlZF9lbWFpbF9yZWdleCddKT8kcGFyYW1zWydmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnXTowKTsNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycsaXNzZXQoJHBhcmFtc1snZmJycF9yZXF1aXJlX2ZpZWxkbmFtZXMnXSk/JHBhcmFtc1snZmJycF9yZXF1aXJlX2ZpZWxkbmFtZXMnXTowKTsNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VuaXF1ZV9maWVsZG5hbWVzJyxpc3NldCgkcGFyYW1zWydmYnJwX3VuaXF1ZV9maWVsZG5hbWVzJ10pPyRwYXJhbXNbJ2ZicnBfdW5pcXVlX2ZpZWxkbmFtZXMnXTowKTsNCg0KLy8kdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW5hYmxlX2Zhc3RhZGQnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfZW5hYmxlX2Zhc3RhZGQnXSk/JHBhcmFtc1snZmJycF9lbmFibGVfZmFzdGFkZCddOjApOw0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgNCgkJCQkJCQkJCQkJJ2VuYWJsZV9mYXN0YWRkJywNCgkJCQkJCQkJCQkJaXNzZXQoJGZiX2NvbmZpZ1snZW5hYmxlX2Zhc3RhZGQnXSkgPw0KCQkJCQkJCQkJCQkkZmJfY29uZmlnWydlbmFibGVfZmFzdGFkZCddIDogVFJVRQ0KCQkJCQkJCQkJCSk7DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLGlzc2V0KCRwYXJhbXNbJ2ZicnBfZW5hYmxlX2FudGlzcGFtJ10pPyRwYXJhbXNbJ2ZicnBfZW5hYmxlX2FudGlzcGFtJ106MCk7DQovLyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJyxpc3NldCgkcGFyYW1zWydmYnJwX3Nob3dfZmllbGRpZHMnXSk/JHBhcmFtc1snZmJycF9zaG93X2ZpZWxkaWRzJ106MCk7DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKA0KCQkJCQkJCQkJCQknc2hvd19maWVsZGlkcycsDQoJCQkJCQkJCQkJCWlzc2V0KCRmYl9jb25maWdbJ3Nob3dfZmllbGRpZHMnXSkgPw0KCQkJCQkJCQkJCQkkZmJfY29uZmlnWydzaG93X2ZpZWxkaWRzJ10gOiBUUlVFDQoJCQkJCQkJCQkJKTsNCg0KLy8kdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGFsaWFzZXMnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2hvd19maWVsZGFsaWFzZXMnXSk/JHBhcmFtc1snZmJycF9zaG93X2ZpZWxkYWxpYXNlcyddOjApOw0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgNCgkJCQkJCQkJCQkJJ3Nob3dfZmllbGRhbGlhc2VzJywNCgkJCQkJCQkJCQkJaXNzZXQoJGZiX2NvbmZpZ1snc2hvd19maWVsZGFsaWFzZXMnXSkgPw0KCQkJCQkJCQkJCQkkZmJfY29uZmlnWydzaG93X2ZpZWxkYWxpYXNlcyddIDogVFJVRQ0KCQkJCQkJCQkJCSk7DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdibGFua19pbnZhbGlkJyxpc3NldCgkcGFyYW1zWydmYnJwX2JsYW5rX2ludmFsaWQnXSk/JHBhcmFtc1snZmJycF9ibGFua19pbnZhbGlkJ106MCk7DQoNCiRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCcpOw0KJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOw0KDQojDQojIEVPRg0KIw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJHNyY0luZGV4ID0gJGFlZm9ybS0+R2V0RmllbGRJbmRleEZyb21JZCgkcGFyYW1zWydmaWVsZF9pZCddKTsKCmlmICgkcGFyYW1zWydmYnJwX2RpciddID09ICd1cCcpCgl7CgkJJGRlc3RJbmRleCA9ICRzcmNJbmRleCAtIDE7Cgl9CiAgICBlbHNlCgl7CgkJJGRlc3RJbmRleCA9ICRzcmNJbmRleCArIDE7Cgl9CgkKJGFlZm9ybS0+U3dhcEZpZWxkc0J5SW5kZXgoJHNyY0luZGV4LCRkZXN0SW5kZXgpOwoKLy8gZm9yY2UgcmVsb2FkIG9mIGZvcm0sIHRoaXMgaXMga2luZGEgaGFja2lzaCBidXQgY2FudCB0aGluayBvZiBhbnl0aGluZyBlbHNlIDspCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJHRhYiA9ICR0aGlzLT5HZXRBY3RpdmVUYWIoJHBhcmFtcyk7CgplY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGFiLCAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSkpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5HZXRGaWVsZEJ5SWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CgppZiAoJGFlZmllbGQgIT09IGZhbHNlKQp7CgkkYWVmaWVsZC0+VG9nZ2xlUmVxdWlyZWQoKTsKCSRhZWZpZWxkLT5TdG9yZSgpOwoJaWYoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gJ1BPU1QnKSB7CgkJZXhpdDsKCX0KCSRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKfQoKJHRhYiA9ICR0aGlzLT5HZXRBY3RpdmVUYWIoJHBhcmFtcyk7CgplY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGFiLCAkdGhpcy0+TGFuZygnZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCcpKTsKCQkKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCgl7CgkJLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAoJCSRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKCX0KCiRpbmxpbmUgPSBmYWxzZTsKCmlmKCAoaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pKSAmJiBwcmVnX21hdGNoKCcvdChydWUpKnx5KHllcykqfDEvaScsJHBhcmFtc1snaW5saW5lJ10pKQoJewoJCSRpbmxpbmUgPSB0cnVlOwoJfQoKJGZicnBfY2FsbGNvdW50ID0gMDsKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsJHBhcmFtcyx0cnVlLHRydWUpOwoKJGZsZCA9ICRhZWZvcm0tPkdldEZvcm1Ccm93c2VyRmllbGQoKTsKCmlmICgkZmxkICE9PSBmYWxzZSAmJiAkZmxkLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpPT0nMScpCgl7CgkJJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJCWlmICgkZmV1ID09IGZhbHNlKQoJCQl7CgkJCWRlYnVnX2Rpc3BsYXkoIkZBSUxFRCB0byBpbnN0YW50aWF0ZSBGRVUhIik7CgkJCXJldHVybjsKCQkJfQoJCQkKCQlpZiAoJGZldS0+TG9nZ2VkSW5JZCgpID09PSBmYWxzZSkKCQkJewoJCQkJZWNobyAkdGhpcy0+TGFuZygncGxlYXNlX2xvZ2luJyk7CgkJCQlyZXR1cm47CgkJCX0KCX0KCmlmKCAhKCRpbmxpbmUgfHwgKCRhZWZvcm0tPkdldEF0dHIoJ2lubGluZScsJzAnKT09ICcxJykpKSAkaWQgPSAnY250bnQwMSc7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzJywwKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzJywwKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2hlYWRlcicsICRhZWZvcm0tPlJlbmRlckZvcm1IZWFkZXIoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9mb290ZXInLCRhZWZvcm0tPlJlbmRlckZvcm1Gb290ZXIoKSk7CgokZmluaXNoZWQgPSBmYWxzZTsKJGZpZWxkRXhwYW5kT3AgPSBmYWxzZTsKCmlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2NhbGxjb3VudCddKSApCgl7CgkJJGZicnBfY2FsbGNvdW50ID0gKGludCkkcGFyYW1zWydmYnJwX2NhbGxjb3VudCddOwoJfQoKZm9yZWFjaCgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKCXsKCQlpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycgfHwgc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCgkJCXsKCQkJCS8vIGV4cGFuZGluZyBvciBzaHJpbmtpbmcgYSBmaWVsZAoJCQkJJGZpZWxkRXhwYW5kT3AgPSB0cnVlOwoJCQl9Cgl9CgppZiAoICEkZmllbGRFeHBhbmRPcCAmJiAoKCRhZWZvcm0tPkdldFBhZ2VDb3VudCgpID4gMSAmJiAkYWVmb3JtLT5HZXRQYWdlTnVtYmVyKCkgPiAwKSB8fCAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpKSkKCXsKCQkvLyBWYWxpZGF0ZSBmb3JtCgkJJHJlcyA9ICRhZWZvcm0tPlZhbGlkYXRlKCk7CiAgICAKCQkvLyBXZSBoYXZlIHZhbGlkYXRlIGVycm9ycwoJCWlmICgkcmVzWzBdID09PSBmYWxzZSkKCQl7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycycsJHJlc1sxXSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnMnLDEpOwoKCQkJJGFlZm9ybS0+UGFnZUJhY2soKTsKCgkJCS8vIE5vIHZhbGlkYXRlIGVycm9ycywgcHJvY2VlZAoJCX0gZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pICYmICRwYXJhbXNbJ2ZicnBfZG9uZSddPT0xKSB7CiAgICAgIAoJCQkvLyBDaGVjayBjYXB0Y2hhLCBpZiBpbnN0YWxsZWQKCQkJJG9rID0gdHJ1ZTsKCQkJJGNhcHRjaGEgPSAkdGhpcy0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKCQkJCgkJCWlmICgkYWVmb3JtLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQoJCQl7CiAgICAgICAgI3RoaXMgc2hvdWxkIHdvcmsgd2l0aCBDYXB0Y2hhIDAuNC42IGFuZCBoaWdoZXIgKEpNKQogICAgICAgICRjcHRjbmVlZHNpbnB1dCA9IG1ldGhvZF9leGlzdHMoJGNhcHRjaGEsICdOZWVkc0lucHV0RmllbGQnKSA/ICRjYXB0Y2hhLT5OZWVkc0lucHV0RmllbGQoKSA6IHRydWU7ICAgICAgICAKICAgICAgICAkdG92YWxpZGF0ZSA9ICRjcHRjbmVlZHNpbnB1dCA/ICRwYXJhbXNbJ2ZicnBfY2FwdGNoYV9waHJhc2UnXSA6ICcnOwogICAgICAgICAgICAgICAgCgkJCQlpZiggISRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoJHRvdmFsaWRhdGUpICkKCQkJCXsKCQkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfZXJyb3InLCRhZWZvcm0tPkdldEF0dHIoJ2NhcHRjaGFfd3JvbmcnLCR0aGlzLT5MYW5nKCd3cm9uZ19jYXB0Y2hhJykpKTsKCgkJCQkJJGFlZm9ybS0+UGFnZUJhY2soKTsKCQkJCQkkb2sgPSBmYWxzZTsKCQkJCX0KICAgICAgICAKCQkJfQoJCQoJCQkvLyBBbGwgb2ssIGRpc3Bvc2UgZm9ybSBhbmQgbWFuYWdlIGZpbGV1cGxvYWRzCgkJCWlmICgkb2spCgkJCXsKCQkJCSRmaW5pc2hlZCA9IHRydWU7CgkJCQkkYWVmb3JtLT5tYW5hZ2VGaWxlVXBsb2FkcygpOwoJCQkJJHJlc3VsdHMgPSAkYWVmb3JtLT5EaXNwb3NlKCRyZXR1cm5pZCk7CgkJCX0KCQl9Cgl9CgppZiAoISAkZmluaXNoZWQpCgl7CgkJJHBhcm1zID0gYXJyYXkoKTsKCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwoJCSRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKCQkkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgoJCWlmIChpc3NldCgkcGFyYW1zWydmYl9mcm9tX2ZiJ10pKQoJCQl7CgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLAoJCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICd1c2VyX2VkaXRfcmVzcCcsICRyZXR1cm5pZCwgJ3Bvc3QnLAoJCQkJJ211bHRpcGFydC9mb3JtLWRhdGEnLCAKCQkJCSgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpLCAnJywKCQkJCWFycmF5KCdmYnJwX2NhbGxjb3VudCc9PiRmYnJwX2NhbGxjb3VudCsxKSkuCgkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdyZXNwb25zZV9pZCcsaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSk/JHBhcmFtc1sncmVzcG9uc2VfaWQnXTonLTEnKSk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLAoJCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAncG9zdCcsIAoJCQkJJ211bHRpcGFydC9mb3JtLWRhdGEnLCAKCQkJCSgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpLCAnJywKCQkJCWFycmF5KCdmYnJwX2NhbGxjb3VudCc9PiRmYnJwX2NhbGxjb3VudCsxKSkpOwoJCQl9CgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9kb25lJywwKTsKCX0KCWVsc2UKCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fZG9uZScsMSk7CgkJaWYgKCRyZXN1bHRzWzBdID09IHRydWUpCgkJCXsKCQkJCSRwYXJtcyA9IGFycmF5KCk7CgkJCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwoJCQkJJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwoJCQkJJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnLCRwYXJtcyk7CgoJCQkJJGFjdCA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9hY3Rpb24nLCd0ZXh0Jyk7CgkJCQlpZiAoJGFjdCA9PSAndGV4dCcpCgkJCQkJewoJCQkJCQkkbWVzc2FnZSA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9yZXNwb25zZScsJycpOwoKCQkJCQkJJGFlZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KHRydWUpOwoJCQkJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJG1lc3NhZ2UgKTsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCQkJCQllbHNlIGlmICgkYWN0ID09ICdyZWRpcicpCgkJCQkJewoJCQkJCQkkcmV0ID0gJGFlZm9ybS0+R2V0QXR0cigncmVkaXJlY3RfcGFnZScsJy0xJyk7CgkJCQkJCWlmICgkcmV0ICE9IC0xKQoJCQkJCQkJewoJCQkJCQkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkJCQkJCQkJcmV0dXJuOwoJCQkJCQkJfQoJCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRwYXJtcyA9IGFycmF5KCk7CgkJCQkkcGFyYW1zWydmYnJwX2Vycm9yJ109Jyc7CgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX3N1Ym1pc3Npb25fZXJyb3InLAoJCQkJJHRoaXMtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3InKSk7CgoJCQkJJHNob3cgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLCcxJyk7CgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCcsJHJlc3VsdHNbMV0pOwoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzJywkc2hvdyk7CgoJCQkJJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKCQkJCSRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKCQkJCSR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InLCRwYXJtcyk7CgkJCX0KCX0KCiR1ZHRvbmNlID0gJGFlZm9ybS0+R2V0QXR0cigncHJlZGlzcGxheV91ZHQnLCcnKTsKJHVkdGV2ZXJ5ID0gJGFlZm9ybS0+R2V0QXR0cigncHJlZGlzcGxheV9lYWNoX3VkdCcsJycpOwoKaWYgKCEkZmluaXNoZWQgJiYgKCghZW1wdHkoJHVkdG9uY2UpICYmICR1ZHRvbmNlICE9ICctMScpIHx8ICghZW1wdHkoJHVkdGV2ZXJ5KSAmJiAkdWR0ZXZlcnkgIT0gJy0xJykpKQoJewoJCSR1c2VydGFnb3BzID0gY21zbXMoKS0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKCQkkcGFybXMgPSAkcGFyYW1zOwoJCSRwYXJtc1snRk9STSddID0mICRhZWZvcm07CgoJCWlmKCBpc3NldCgkZmJycF9jYWxsY291bnQpICYmICRmYnJwX2NhbGxjb3VudCA9PSAwICYmICFlbXB0eSgkdWR0b25jZSkgJiYgIi0xIiAhPSAkdWR0b25jZSApCgkJCXsKCQkJCSR0bXAgPSAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoJHVkdG9uY2UsJHBhcm1zKTsKCQkJfQoJCQkKCQlpZighZW1wdHkoJHVkdGV2ZXJ5KSAmJiAiLTEiICE9ICR1ZHRldmVyeSkKCQkJewoJCQkJJHRtcCA9ICR1c2VydGFnb3BzLT5DYWxsVXNlclRhZygkdWR0ZXZlcnksJHBhcm1zKTsKCQkJfQoKCX0KCmVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRm9ybUJ1aWxkZXINCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0IC0gMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc19vYmplY3QoQGNtc21zKCkpKSBleGl0Ow0KDQokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOw0KJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KDQovLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXhpc3RlbnQgZm9ybXMuDQokZm9ybXMgPSAkdGhpcy0+R2V0Rm9ybXMoKTsNCiRudW1fZm9ybXMgPSBjb3VudCgkZm9ybXMpOw0KDQppZiggIWZvcm1idWlsZGVyX3V0aWxzOjppc19DTVMyKCkgKQ0KCXsNCgkJJHNtYXJ0eS0+YXNzaWduKA0KCQkJJ3RhYmhlYWRlcnMnLCAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkgDQoJCQkuICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zvcm1zJywgJHRoaXMtPkxhbmcoJ2Zvcm1zJykgKSANCgkJCS4gJHRoaXMtPlNldFRhYkhlYWRlcignY29uZmlnJywgJHRoaXMtPkxhbmcoJ2NvbmZpZ3VyYXRpb24nKSApDQoJCQkuICR0aGlzLT5FbmRUYWJIZWFkZXJzKCkNCgkJCS4gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpDQoJCQkpOw0KICAgICAgICAgICAgICAgICAgDQoJCSRzbWFydHktPmFzc2lnbignc3RhcnRfZm9ybXRhYicsICR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7DQoJCSRzbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlndGFiJywgJHRoaXMtPlN0YXJ0VGFiKCJjb25maWciKSk7DQoJCSRzbWFydHktPmFzc2lnbignZW5kX3RhYicsICR0aGlzLT5FbmRUYWIoKSk7DQoJCSRzbWFydHktPmFzc2lnbignZW5kX3RhYnMnLCAkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsNCgl9DQoNCiRzbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoDQoJJGlkLA0KCSdhZG1pbl91cGRhdGVfY29uZmlnJywNCgkkcmV0dXJuaWQNCgkpDQoJKTsgDQoNCiRzbWFydHktPmFzc2lnbignZnJtYmxkJywgJHRoaXMpOw0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX25hbWUnLCAkdGhpcy0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOw0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2FsaWFzJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2Zvcm1fYWxpYXMnKSk7DQoNCiRzbWFydHktPmFzc2lnbignbWVzc2FnZScsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKSA/ICRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddIDogJycpOw0KICANCiRmb3JtQXJyYXkgPSBhcnJheSgpOw0KJGN1cnJvdyA9ICJyb3cxIjsNCg0KZm9yZWFjaCAoJGZvcm1zIGFzICR0aGlzRm9ybSkNCgl7DQoJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsNCgkJJG9uZXNldC0+cm93Y2xhc3MgPSAkY3Vycm93Ow0KICANCgkJaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpKQ0KCQkJew0KCQkJCSRjb25mID0gJHRoaXMtPkdldENvbmZpZygpOw0KCQkJCSRvbmVzZXQtPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsDQoJCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsDQoJCQkJCSR0aGlzRm9ybVsnbmFtZSddLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzRm9ybVsnZm9ybV9pZCddKSk7DQoJCQkJJG9uZXNldC0+eG1sID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdleHBvcnR4bWwnLCcnLCI8aW1nIHNyYz1cIiIuJGNvbmZbJ3Jvb3RfdXJsJ10uIi9tb2R1bGVzLyIuJHRoaXMtPkdldE5hbWUoKS4iL2ltYWdlcy94bWxfcnNzLmdpZlwiIGNsYXNzPVwic3lzdGVtaWNvblwiIGFsdD1cIkV4cG9ydCBGb3JtIGFzIFhNTFwiIC8+IixhcnJheSgnZm9ybV9pZCc9PiR0aGlzRm9ybVsnZm9ybV9pZCddKSk7DQoJCQkJJG9uZXNldC0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsDQoJCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsDQoJCQkJJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksDQoJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pKTsNCgkJCQkkb25lc2V0LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLA0KCQkJCQknYWRtaW5fZGVsZXRlX2Zvcm0nLCAnJywNCgkJCQkkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksDQoJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pLA0KCQkJCSR0aGlzLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nLCR0aGlzRm9ybVsnbmFtZSddKSk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJG9uZXNldC0+bmFtZT0kdGhpc0Zvcm1bJ25hbWUnXTsNCgkJCQkkb25lc2V0LT5lZGl0bGluayA9ICcnOw0KCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsNCgkJCX0NCg0KCQkkb25lc2V0LT51c2FnZSA9ICR0aGlzRm9ybVsnYWxpYXMnXTsNCgkJYXJyYXlfcHVzaCgkZm9ybUFycmF5LCRvbmVzZXQpOw0KCQkoJGN1cnJvdyA9PSAicm93MSI/JGN1cnJvdz0icm93MiI6JGN1cnJvdz0icm93MSIpOw0KCX0NCg0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpKQ0KCXsNCgkJJHNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsDQoJCQknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLA0KCQkkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwnJywNCgkJCScnLCdzeXN0ZW1pY29uJyksIGFycmF5KCkpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdhZGRmb3JtJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsDQoJCQknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksDQoJCQlhcnJheSgpKSk7DQoJCSRzbWFydHktPmFzc2lnbignbWF5X2NvbmZpZycsMSk7DQoJfQkNCgllbHNlDQoJew0KCQkkc21hcnR5LT5hc3NpZ24oJ25vX3Blcm1pc3Npb24nLA0KCQkkdGhpcy0+TGFuZygnbGFja3Blcm1pc3Npb24nKSk7DQoJfQ0KDQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2hpZGVfZXJyb3JzJywkdGhpcy0+TGFuZygndGl0bGVfaGlkZV9lcnJvcnMnKSk7ICAgIA0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRlX2Vycm9ycycsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9oaWRlX2Vycm9ycycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsJzAnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9oaWRlX2Vycm9yc19sb25nJykpOw0KICANCi8vJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4JywkdGhpcy0+TGFuZygndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCcpKTsgICAgDQovLyRzbWFydHktPmFzc2lnbignaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4JywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJykpLiAkdGhpcy0+TGFuZygndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJykpOw0KICANCi8vJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9lbmFibGVfZmFzdGFkZCcsJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJykpOw0KLy8kc21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2VuYWJsZV9mYXN0YWRkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnKSk7ICAgIA0KICANCiRzbWFydHktPmFzc2lnbigndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJywkdGhpcy0+TGFuZygndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJykpOyAgICANCiRzbWFydHktPmFzc2lnbignaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX3JlcXVpcmVfZmllbGRuYW1lcycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnKSk7ICAgIA0KICANCiRzbWFydHktPmFzc2lnbigndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnLCR0aGlzLT5MYW5nKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lcycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfdW5pcXVlX2ZpZWxkbmFtZXMnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfdW5pcXVlX2ZpZWxkbmFtZXMnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZycpKTsgICAgDQogIA0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9lbmFibGVfYW50aXNwYW0nLCR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfYW50aXNwYW0nKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9hbnRpc3BhbScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9lbmFibGVfYW50aXNwYW0nLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJykpOw0KICANCi8vJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X2ZpZWxkaWRzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkcycpKTsNCi8vJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X2ZpZWxkaWRzJywNCi8vJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCdmYnJwX3Nob3dfZmllbGRpZHMnLDEsDQovLyR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZycpKTsNCiAgDQovLyRzbWFydHktPmFzc2lnbigndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcycpKTsNCi8vJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X2ZpZWxkYWxpYXNlcycsDQovLyR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwnZmJycF9zaG93X2ZpZWxkYWxpYXNlcycsMSwNCi8vJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRhbGlhc2VzJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnKSk7DQogIA0KLy8kc21hcnR5LT5hc3NpZ24oJ3RpdGxlX3Nob3dfdmVyc2lvbicsJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfdmVyc2lvbicpKTsNCi8vJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X3ZlcnNpb24nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfc2hvd192ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZycpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9ibGFua19pbnZhbGlkJywkdGhpcy0+TGFuZygndGl0bGVfYmxhbmtfaW52YWxpZCcpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYmxhbmtfaW52YWxpZCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLA0KCSdmYnJwX2JsYW5rX2ludmFsaWQnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYmxhbmtfaW52YWxpZCcsJzAnKSkuDQoJJHRoaXMtPkxhbmcoJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZycpKTsNCiAgICAgICAgIA0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkdGhpcy0+TGFuZygnc2F2ZScpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZF9jb25maWdmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiAgDQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3htbGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnaW1wb3J0eG1sJywgJHJldHVybmlkLCAncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHhtbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCd1cGxvYWQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRfeG1sZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQogIA0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF94bWxfdG9fdXBsb2FkJywkdGhpcy0+Q3JlYXRlSW5wdXRGaWxlKCRpZCwgJ2ZicnBfeG1sZmlsZScpKTsNCiRzbWFydHktPmFzc2lnbigndGl0bGVfeG1sX3RvX3VwbG9hZCcsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF90b191cGxvYWQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnLCR0aGlzLT5MYW5nKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF94bWxfdXBsb2FkX2Zvcm1uYW1lJywNCgkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZmJycF9pbXBvcnRfZm9ybW5hbWUnLCcnLDI1KSk7DQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJywkdGhpcy0+TGFuZygndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybWFsaWFzJywNCgkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZmJycF9pbXBvcnRfZm9ybWFsaWFzJywnJywyNSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbmZvX2xlYXZlZW1wdHknLCR0aGlzLT5MYW5nKCdoZWxwX2xlYXZlZW1wdHknKSk7DQokc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF94bWxfaW1wb3J0JywkdGhpcy0+TGFuZygndGl0bGVfaW1wb3J0X2xlZ2VuZCcpKTsNCiAgDQokc21hcnR5LT5hc3NpZ25fYnlfcmVmKCdmb3JtcycsICRmb3JtQXJyYXkpOw0KDQppZiggZm9ybWJ1aWxkZXJfdXRpbHM6OmlzX0NNUzIoKSApDQoJew0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkbWluTWFpbjIudHBsJyk7DQoJfQ0KCWVsc2UNCgl7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnQWRtaW5NYWluLnRwbCcpOw0KCX0gICAgDQoNCiMNCiMgRU9GDQojICANCj8+]]></data>
	</file>
	<file>
	  <filename>/action.exportxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCgl7CgkJLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAoJCSRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKCX0KCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7Cgokc3BlYyA9ICRhZWZvcm0tPkdldE5hbWUoKS4iLnhtbCI7CiRzcGVjID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXC5cLVxfXS8nLCdfJywkc3BlYyk7CiR4bWxzdHIgPSAkYWVmb3JtLT5FeHBvcnRYTUwoaXNzZXQoJHBhcmFtc1snZmJycF9leHBvcnRfdmFsdWVzJ10pP3RydWU6ZmFsc2UpOwoKQG9iX2NsZWFuKCk7CkBvYl9jbGVhbigpOwpoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CmhlYWRlcignRXhwaXJlczogMCcpOwpoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCcpOwpoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZDsgY2hhcnNldD11dGYtOCcpOwpoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR4bWxzdHIpKTsKaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0nIC4gJHNwZWMpOwplY2hvICR4bWxzdHI7CmV4aXQ7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.feuserform.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgokZmV1ID0gJiR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoKaWYgKCRmZXUgPT0gZmFsc2UgfHwgJGZldS0+TG9nZ2VkSW4oKSA9PSBmYWxzZSkKCXsKCQlyZXR1cm47Cgl9CgkKJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0JywkaWQsJHBhcmFtcywgJHJldHVybmlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.importxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9ICRfRklMRVNbJGlkLidmYnJwX3htbGZpbGUnXVsndG1wX25hbWUnXTsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJHJlcyA9ICRhZWZvcm0tPkltcG9ydFhNTCgkcGFyYW1zKTsKCmlmICgkcmVzKQoJewoJJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRlZCcpOwoJfQoJZWxzZQoJewoJJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRfZmFpbGVkJyk7Cgl9CgkKJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.validate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZiddKSB8fCAhaXNzZXQoJHBhcmFtc1snZmJycF9yJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmYnJwX2MnXSkpCgl7CgkJZWNobyAkdGhpcy0+TGFuZygndmFsaWRhdGlvbl9wYXJhbV9lcnJvcicpOwoJCXJldHVybiBmYWxzZTsKCX0KCiRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ109JHBhcmFtc1snZmJycF9yJ107CiRwYXJhbXNbJ2Zvcm1faWQnXT0kcGFyYW1zWydmYnJwX2YnXTsKJHBhcmFtc1snZmJycF91c2VyX2Zvcm1fdmFsaWRhdGUnXT10cnVlOwokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgppZiAoISRhZWZvcm0tPkNoZWNrUmVzcG9uc2UoJHBhcmFtc1snZmJycF9mJ10sICRwYXJhbXNbJ2ZicnBfciddLCAkcGFyYW1zWydmYnJwX2MnXSkpCgl7CgkJZWNobyAkdGhpcy0+TGFuZygndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvcicpOwoJCXJldHVybiBmYWxzZTsKCX0KCgovKiBTdGlra2kgcmVtb3ZlZDogT2xkIHN0dWZmLCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIEZvcm0uY2xhc3MucGhwIGFzd2VsbAplbHNlCnsKCS8vWyMyNzkyXSBEZWxldGVSZXNwb25zZSBpcyBuZXZlciBjYWxsZWQgb24gdmFsaWRhdGlvbjsKCS8vJGFlZm9ybS0+RGVsZXRlUmVzcG9uc2UoJHBhcmFtc1snZmJycF9yJ10pOwp9CiovCgokZmllbGRzID0gJGFlZm9ybS0+R2V0RmllbGRzKCk7CiRjb25maXJtYXRpb25GaWVsZCA9IC0xOwoKZm9yKCRpPTA7JGk8Y291bnQoJGZpZWxkcyk7JGkrKykKCXsKCQlpZiAoJGZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQkJewoJCQkkY29uZmlybWF0aW9uRmllbGQgPSAkaTsKCQkJYnJlYWs7CgkJCX0KCX0KCQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydmYnJwX3InXSk7CgkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKCWlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQoJCXsKCQkJJHJldCA9ICRmaWVsZHNbJGNvbmZpcm1hdGlvbkZpZWxkXS0+R2V0T3B0aW9uKCdyZWRpcmVjdF9wYWdlJywnLTEnKTsKCQkJaWYgKCRyZXQgIT0gLTEpCgkJCQl7CgkJCQkkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwoJCQkJfQoJCX0KCQllbHNlCgkJewoJCQllY2hvICJFcnJvciE6ICI7CgkJCWZvcmVhY2ggKCRyZXN1bHRzWzFdIGFzICR0aGlzUmVzKQoJCQkJewoJCQkJZWNobyAkdGhpc1JlcyAuICc8YnIgLz4nOwoJCQkJfQoJCX0KCX0KCWVsc2UKCXsKCQllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJyk7Cgl9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDAuOC4xOgogICAgPHVsPgogICAgICA8bGk+Rml4ZWQgIzYzNTcgLSBEdXBsaWNhdGUgRm9ybSBBbGlhc2VzIEFsbG93ZWQ7PC9saT4KCSAgPGxpPkZpeGVkICM2NTM2IC0gIkphdmFzY3JpcHQgZm9yIGZpZWxkIiBub3QgaW5jbHVkZWQgaW4gaW5wdXQgZm9yICJWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyI7PC9saT4KCSAgPGxpPkZpeGVkICM2NjQwIC0gVGV4dEZpZWxkRXhwYW5kYWJsZTogaW5jb3JyZWN0IG91dHB1dCB3aGVuIG9ubHkgb25lIHZhbHVlOzwvbGk+CiAgICAgIDxsaT5GaXhlZCAjNzA2MyAtIFVEVCB2YWxpZGF0aW9uIGRvZXNuJ3Qgd29yayBwcm9wZXJseSB3aXRoIHN0YW5kYXJkIHZhbGlkYXRpb247PC9saT4KCSAgPGxpPkZpeGVkICM3ODg2IC0gQ2FsbCB0byBhIG1lbWJlciBmdW5jdGlvbiBUeXBlKCkgb24gYSBub24tb2JqZWN0IGF0IENhdGFsb2dlckl0ZW1zRmllbGQuY2xhc3MucGhwOjkwOzwvbGk+CgkgIDxsaT5GaXhlZCAjODY5MSAtIFVEVCB2YWxpZGF0aW9uIGRvZXNuJ3Qgd29yayBwcm9wZXJseSB3aXRoIHN0YW5kYXJkIHZhbGlkYXRpb247PC9saT4KCSAgPGxpPkZpeGVkICM5NjM3IC0gRmF0YWwgZXJyb3Igb24gRm9ybSB3aXRoIEVtYWlsIHJlc3VsdHMgZmllbGQgLSBPYmplY3Qgb2YgY2xhc3MgZmJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBjb3VsZCBub3QgYmUgY29udmVydGVkIHRvIHN0cmluZzs8L2xpPgoJICA8bGk+Rml4ZWQgIzk5NzYgLSBDaGVja2JveCBkb2VzIG5vdCBnZXQgYXV0byB0aWNrZWQgd2hlbiB1c2luZyB2YWx1ZV9mbGROVU1CRVIiIGFuZCAidmFsdWVfRklFTEROQU1FIjs8L2xpPgoJICA8bGk+Rml4ZWQgIzEwMjI5IC0gZml4ZXMgdmFsaWRhdGlvbiBvZiBlbWFpbHM7IGZpeGVzIHRoZSBhcHBlYXJhbmNlIG9mIGh0bWwgZW50aXRpZXMgaWYgdGhlIGZvcm0gZG9lc24ndCB2YWxpZGF0ZTs8L2xpPgoJICA8bGk+Rml4ZWQgIzEwMjYwIC0gVGV4dGFyZWEgY2xlYXIgZGVmYXVsdCBvbiBjbGljayAmJiB7c3RyaXB9IG5vdCB3b3JraW5nOzwvbGk+CSAgICAKCSAgPGxpPkZlYXR1cmUgUmVxdWVzdCAjMTAxMTcgLSBBZGQgZGlyZWN0aXZlIFJFUVVJUkVEIGluIG5IVE1MNTs8L2xpPgoJICA8bGk+RmVhdHVyZSBSZXF1ZXN0ICMxMDI2OCAtIEhUTUw1IHBsYWNlaG9sZGVyIGZvciAiKkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5Ijs8L2xpPgoJICA8bGk+Rml4ZWQgU2hvdyB0ZXh0ZmllbGQgaW4gQ2hlY2tib3hFeHRlbmRlZEZpZWxkIGNsYXNzOzwvbGk+CgkgIDxsaT5GaXhlcyB0byBEaXNwb3NpdGlvbkVtYWlsIHJlbGF0ZWQgd2l0aCB1cGxvYWRlZCBmaWxlcyBhbmQgYXR0YWNobWVudHMuIE5vdyB3ZSBjYW4gcHJvcGVybHkgc2VwYXJhdGUgdGhlIHBhdGgsIHRoZSB1cmwgYW5kIHRoZSBmaWxlbmFtZS4gUHJvYmFibHkgZml4ZXMgYSBidW5jaCBvZiBvbGQgaXNzdWVzOzwvbGk+CgkgIDxsaT5GaXhlcyBtdWx0aXBsZSBwYWdlcyB1cGxvYWRzOzwvbGk+CgkgIDxsaT5JbXByb3ZlbWVudHMgdG8gRGF0ZVBpY2tlciBhbmQgVGltZVBpY2tlcjs8L2xpPgoJICA8bGk+VGhlICJVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uIiBwcmVmZXJlbmNlIGlzIHJlbW92ZWQsIGVtYWlscyBqdXN0IGhhdmUgdG8gcGFzcyB2YWxpZGF0aW9uOzwvbGk+CgkgIDxsaT5Tb21lIHByZWZlcmVuY2VzIGFyZSBtb3ZlZCB0byB0aGUgcHJpdmF0ZSBjb25maWc7IG1pZ2h0IGJlIGRlZmluaXRlbHkgcmVtb3ZlZC9oYXJkY29kZWQgaW4gYSBmdXR1cmUgdmVyc2lvbjs8L2xpPgoJICA8bGk+VXBkYXRlcyBmb3IgSFRNTDU8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuODo8YnIgLz4KCTxwPkJlY2F1c2UgdGhlIDAuNy40IHJlbGVhc2Ugd2FzIHVuc3RhYmxlLCBhIG5ldyBncm91cCBvZiBkZXZlbG9wZXJzIHdlbnQgYmFjayB0byB0aGUgd29ya2luZyBjb2RlIG9mIDAuNy4zIGFuZCBzdGFydGVkIHdvcmtpbmcgZnJvbSB0aGVyZS4gRmlyc3QgcHJpb3JpdHk6IGEgc3RhYmxlIEZvcm1idWlsZGVyIHJlbGVhc2UhPC9wPgogICAgPHVsPgoJICAgIDxsaT5GaXhlZCAjNzQwOCAtIERlYnVnIGluZm9ybWF0aW9ucyBzaG93biBkdXJpbmcgdXBncmFkZTs8L2xpPgoJICAgIDxsaT5GaXhlZCAjNzQ1MCAtIGNvdW50cmllcyBXQVkgb3V0IG9mIGRhdGUgLSBjYXVzaW5nIGEgZmV3IHByb2JsZW1zIHdpdGggU2VyYmlhbiBjdXN0b21lcnM7PC9saT4KCSAgICA8bGk+Rml4ZWQgIzg1MTAgLSBXYXJuaW5nOiBJbGxlZ2FsIHN0cmluZyBvZmZzZXQgJ3NlbnQnOzwvbGk+CgkgICAgPGxpPkZpeGVkICM4ODkzIC0gVGV4dCBpbnB1dCAobXVsdGlwbGUpIGRlbGV0ZSBidXR0b247PC9saT4KCSAgICA8bGk+Rml4ZWQgIzkyOTYgLSBGaWVsZCBrZWVwcyBiZWluZyByZXF1aXJlZCBldmVuIGlmIHVuc2V0OzwvbGk+CgkgICAgPGxpPkZpeGVkICM5MzYwIC0gRm9ybWJ1aWxkZXIgZG9lc24ndCB1cGxvYWQgZmlsZXMgb24gbXVsdGkgcGFnZSBmb3Jtczs8L2xpPgoJICAgIDxsaT5GaXhlZCAjOTczOCAtIEhlbHB0ZXh0IEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzOzwvbGk+CgkJPGxpPkZpeGVkICM5NTExIC0gTWlzc2luZyBsYW5ndWFnZSBzdHJpbmc6IHZhbGlkYXRpb25fbGVuZ3RoOzwvbGk+CgkgICAgPGxpPkZpeGVkICM5NTEzIC0gVW5kZWZpbmVkIHZhcmlhYmxlL2luZGV4IG5vdGljZXMgaW4gYXBhY2hlIGxvZzs8L2xpPgoJICAgIDxsaT5GaXhlZCAjOTk1OSAtIFdoZW4gZW1haWwgZmllbGQgaXNuJ3QgcmVxdWlyZWQgdmFsaWRhdGlvbiBtYWtlcyBpdCByZXF1aXJlZDs8L2xpPgoJCTxsaT5GaXhlZCAjMTAyNTUgLSBGaWxlIHVwbG9hZCBkb2VzIG5vdCB3b3JrIHdoZW4gZm9ybSBpcyBpbmNvbXBsZXRlIG9yIGhhcyBlcnJvcnM6IHJlbW92ZWQgdGhlIDxzdHJvbmc+ZGVsZXRlPC9zdHJvbmc+IGNoZWNrYm94IGFuZCB0aGUgdGV4dCB3aXRoIHRoZSBmaWxlIG5hbWUgd2hlbiBmb3JtIHN1Ym1pc3Npb24gZmFpbHM7CgkJPHA+KDxzdHJvbmc+Tm90ZTogbm90IGEgYnVnIDxpPnBlciBzZTwvaT4sIGJ1dCBhbiBpbmNvbnNpc3RlbmN5OiB0aGUgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGRlZmF1bHQgdmFsdWUgZm9yIGZpbGUgdXBsb2FkIGZpZWxkcyBmb3Igc2VjdXJpdHkgcmVhc29ucy48L3N0cm9uZz4pPC9wPjwvbGk+CgkgICAgPGxpPkNvZGUgY2xlYW51cDs8L2xpPgoJICAgIDxsaT5GaXhlcyBmb3IgQ01TTVMgQ29yZSAyLjAgcmVsZWFzZTs8L2xpPgoJICAgIDxsaT5GaWVsZCB0YWJsZSB3aWR0aCBpcyBub3cgMTAwJTs8L2xpPgoJICAgIDxsaT5IZWxwIHRleHQgcmUtd3JpdHRlbiBhbmQgRW5nbGlzaCBvbmx5IG5vdzs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNy40OgogICAgPHVsPgogICAgICA8bGk+VGhpcyByZWxlYXNlIHdhcyBub3Qgc3RhYmxlIGFuZCB0aGVyZWZvcmUgd2l0aGRyYXduIGZyb20gdGhlIEZvcmdlOzwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMC43LjM6CiAgICA8dWw+CiAgICAgIDxsaT5Db21wYXRpYmlsaXR5IHJlbGVhc2UgZm9yIDEuMTE7PC9saT4KICAgICAgPGxpPkFkZGluZyBjYW5jZWwgYnV0dG9ucyB0byBmb3JtIGFuZCBmaWVsZCBpbnN0YW5jZXM7PC9saT4KICAgICAgPGxpPlJlbW92aW5nIHVnbHkgZ28gYmFjayBsaW5rOzwvbGk+CiAgICAgIDxsaT5FbnN1cmluZyB1c2FiaWxpdHkgaW4gUEhQIHN0cmljdCBtb2RlOzwvbGk+CiAgICAgIDxsaT5Tb21lIHRlbXBsYXRlIGZpeGVzOzwvbGk+CiAgICAgIDxsaT5OT1RFOiBUaGlzIGlzIG5vdCBmZWF0dXJlIG9yIGJ1ZyByZWxlYXNlLCB0aGlzIGlzIGNvbXBhdGliaWxpdHkgcmVsZWFzZSBhcyB3ZSBhaW4ndCB3b3JraW5nIHdpdGggYW55dGhpbmcgZWxzZSB0aGFuIG1haW50YWluaW5nIGNlcnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIHRoaXMgbW9kdWxlLiBTdGF5IHR1bmVkIGZvciBGb3JtQnVpbGRlcjIgd2l0aGluIHRoaXMgeWVhcjs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNy4yOgogICAgPHVsPgogICAgICA8bGk+TWFueSBidWcgZml4ZXM7PC9saT4KICAgICAgPGxpPkxhc3QgdmVyc2lvbiBvZiAwLnggc2VyaWVzOzwvbGk+CiAgICAgIDxsaT5GaXhpbmcgY29tcGFiaWxpdHkgd2l0aCAxLjEwLnggc2VyaWVzOzwvbGk+CiAgICAgIDxsaT5GaXhpbmcgcHJvYmxlbXMgd2l0aCBGb3JtIEJyb3dzZXI7PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjcuMSAtIChjYWxndXkxMDAwKToKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRoZSBzZWFyY2ggZm9yIGZpZWxkcyB0byBub3Qgc2hvdyBiYWNrdXAgZmlsZXMgZXRjOzwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIENNUyBWZXJzaW9uIGNvbXBhcmlzb247PC9saT4KICAgICAgPGxpPkFkZHMgYSBkaXNwb3NpdGlvbiB0byBhbGxvdyBzZWxlY3RpbmcgdXNlcnMgdG8gZW1haWwgYmFzZWQgb24gYW4gRkVVIHByb3BlcnR5LiAgIEFsc28gYXNzaWducyBzbWFydHkgdmFyaWFibGVzIHdpdGggaW5mbyBhYm91dCBtYXRjaGluZyB1c2Vzczs8L2xpPgogICAgPC91bD4KICA8L2xpPgoJPGxpPlZlcnNpb24gMC43OgoJCTx1bD4KCQkJPGxpPkZpeGVkIGEgYnVnIHdoaWNoIGNhdXNlZCB0aGUgRGF0ZSBTdWJtaXR0ZWQgc29ydGluZyBpbiBGb3JtIEJyb3dzZXIgdG8gYmUgaW5jb25zaXN0ZW50IGFjcm9zcyBwYWdlcyBhdCBmaXJzdDs8L2xpPgoJCQk8bGk+Rml4ZWQgYSBidWcgd2hpY2ggY2F1c2VkIGEgQ2hlY2tib3ggRmllbGQgdG8gYmUgdW5hYmxlIHRvIGJlIHJlcXVpcmVkLiBDaGVja2JveCBGaWVsZHMgY2FuIG5vdyBiZSBtYWRlIHJlcXVpcmVkOzwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU2MTA6IEZpbGUgVXBsb2FkIEZpZWxkIGFkdmFuY2VkIG9wdGlvbnMgbm93IHNhdmUgY29ycmVjdGx5OzwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU3MDI6IFdoZW4gdXNpbmcgdGhlICJGcm9udGVuZCBVc2VyIGJpbmRpbmciIGFkdmFuY2VkIG9wdGlvbiBvbiB0aGUgRm9ybUJyb3dzZXIgRGlzcG9zaXRpb24sIGNoZWNrYm94ZXMgY2FuIG5vdyBiZSBzYXZlZCBpbiB0aGUgInVuY2hlY2tlZCIgc3RhdGUuIFRoYW5rcyBNaWtlIEh1Z2hlc2RvbiE8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1NDIyOiBNdWx0aXBsZSBmb3JtcyB1c2luZyB0aGUgIkZyb250ZW5kIFVzZXIgYmluZGluZyIgYWR2YW5jZWQgb3B0aW9uIG9uIHRoZSBGb3JtQnJvd3NlciBEaXNwb3NpdGlvbiBub3cgY29ycmVjdGx5IGxvYWQgcHJldmlvdXNseSBzdWJtaXR0ZWQgZGF0YS4gVGhhbmtzIE1pa2UgSHVnaGVzZG9uITwvbGk+CgkJCTxsaT5BZGRlZDogTmV3IERpc3Bvc2l0aW9uIC0gRGlzcG9zaXRpb25VbmlxdWVGaWxlLiBXcml0ZSBmb3JtIHJlc3VsdHMgdG8gYSB1bmlxdWUgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb247PC9saT4KCQkJPGxpPkFkZGVkOiBUaW55TUNFIGludGVncmF0ZWQ7PC9saT4KCQkJPGxpPkFkZGVkOiBOZXcgRGlzcG9zaXRpb24gLSBEaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcy4gU2VuZCBmb3JtIHJlc3VsdHMgdmlhIGVtYWlsIHdpdGggZnJvbnRlbmQtdXNlci1zcGVjaWZpZWQgU3ViamVjdCwgIkZyb20gTmFtZSIsICJGcm9tIEFkZHJlc3MiLCBhbmQgRGVzdGluYXRpb24gQWRkcmVzczs8L2xpPgoJCQk8bGk+QWRkZWQ6IFJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHRvIFVuaXF1ZUludGVnZXJGaWVsZDs8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1NTU1LyM1NDUzOiBEb21pbmljYSAoRE0pIGlzIG5vdyBwcm9wZXJseSBzZWxlY3RhYmxlIGluIHRoZSBDb3VudHJ5IFBpY2tlciBGaWVsZDs8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM0MzA3OiBGaWxlcyB1cGxvYWRlZCBvbiBlYXJsaWVyIHBhZ2VzIG9mIGEgbXVsdGktcGFnZSBmb3JtIGFyZSBub3cgYXR0YWNoZWQgdG8gRW1haWwgRGlzcG9zaXRpb25zIG9uIGxhdGVyIHBhZ2VzOzwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzM2MDU6IERhdGVzIGFyZSBub3cgdHJhbnNsYXRlZCBpbiBFbWFpbCBEaXNwb3NpdGlvbnMuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjNTM1ODogRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgbm93IGNyZWF0ZXMgYSBjb3JyZWN0IGxhYmVsIGZvciBpdHMgaW5wdXQgZmllbGQ7PC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjMTgyMjogSGlkZGVuIEZpZWxkcyBjYW4gbm93IGJlIGVkaXRlZCBpbiBhbiBBZG1pbiBGb3JtIEJyb3dzZXI7PC9saT4KCQkJPGxpPkFkZGVkIEZlYXR1cmUgUmVxdWVzdCAjNTI3NzogQWxsb3cgRGlzcG9zaXRpb25Gb3JtQnJvd3NlciB0byBiZSBoaWRkZW47PC9saT4KCQkJPGxpPlNldmVyYWwgb3RoZXIgY2xlYW51cHMgYW5kIG1pbm9yIGZpeGVzOzwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjYuNC4KCQk8dWw+CgkJCTxsaT5CdWdzIGZpeGVzIGZvciBGaWVsZCBTb3J0aW5nLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkIGFuZCBTdGlra2kgZm9yIGZpeGluZyBpdCE8L2xpPgoJCQk8bGk+SW1wcm92ZW1lbnRzIEZpbGVVcGxvYWQgZmllbGQ6IG92ZXJ3cml0ZSBmbGFnLCBmaWxlIHJlbmFtaW5nLCBhbmQgaGlkaW5nIGZpbGVuYW1lIGluIG91dHB1dDs8L2xpPgoJCQk8bGk+QWRkaXRpb25hbCBwYXRjaGVzIGZyb20gUnlhbiBGb3N0ZXIgZm9yIERhdGVQaWNrZXI7PC9saT4KCQk8L3VsPgoJPC9saT4KICA8bGk+VmVyc2lvbiAwLjYuMzoKCSAgPHVsPgoJCSAgPGxpPlNlY3VyaXR5IHBhdGNoIGZvciBVcGxvYWQgZmllbGQgdHlwZTs8L2xpPgoJCSAgPGxpPk51bWVyb3VzIGJ1Z3MgZml4ZXMuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQ7PC9saT4KCQkgIDxsaT5OdW1lcm91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIGZvciB1c2Ugd2l0aCBGb3JtQnJvd3NlciB2MC4zLng7PC9saT4KCQkgIDxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIENvbXB1dGVkRmllbGQgdHlwZSB0byBhbGxvdyBtdWNoIG1vcmUgY29tcHV0YXRpb247PC9saT4KCQkgIDxsaT5WaWxraXMnIGZpeGVzIGZvciBsb2NhbGl6aW5nIENvdW50cnlQaWNrZXI7PC9saT4KCQkgIDxsaT5SeWFuIEZvc3RlcidzIHBhdGNoIGZvciByZS1vcmRlcmluZyBkYXRlIGlucHV0cyBvbiBEYXRlUGlja2VyOzwvbGk+CgkgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjYuMjoKCSAgPHVsPgoJCSAgPGxpPkEgbG90IG9mIHNtYWxsIGFuZCBiaWcgYnVncyBmaXhlcy4gVGhhbmtzIHRvIGV2ZXJ5b25lIHdobyByZXBvcnRlZDs8L2xpPgoJCSAgPGxpPkludHJvZHVjaW5nIGR5bmFtaWMgZmllbGQgbWFuYWdlbWVudDs8L2xpPgoJCSAgPGxpPk5ldyAiWWVhclB1bGxEb3duIiBmaWVsZCB0eXBlIGFkZGVkOzwvbGk+CgkJICA8bGk+Q29tcGF0aWJsZSB3aXRoIENNU01TIDEuNy4xIGFuZCBmdXJ0aGVyOzwvbGk+CgkJICA8bGk+QWRkZWQgalF1ZXJ5LiBQcm90b3R5cGUgcmVtb3ZlZCBjb21wbGV0ZWx5OzwvbGk+CgkJICA8bGk+QWRkZWQgc29tZSBzdHlsaW5nOzwvbGk+CgkgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjYuMToKCSAgPHVsPgoJCSAgPGxpPk51bWVyb3VzIEJ1ZyBmaXhlcy4gSWYgeW91ciBidWcgaXNuJ3QgZml4ZWQsIHBvc3QgaXQgaW4gdGhlIHRyYWNrZXIhPC9saT4KCQkgIDxsaT5OZXcgVmFsaWRhdGlvbiBVRFQgY29kZSBwcm92aWRlZCBieSBKZWZmIEJvc2NoOzwvbGk+CgkJICA8bGk+QWJpbGl0eSB0byByZWplY3QgYmxhbmsvb25seSBzcGFjZXMgZm9yIHJlcXVpcmVkIGZpZWxkczs8L2xpPgoJCSAgPGxpPk5ldyAiQ29tcGFueURpcmVjdG9yeSIiIEZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCSAgPGxpPkltcHJvdmVtZW50cyB0byBkZWZhdWx0IHZhbHVlIGNvZGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M7PC9saT4KCQkgIDxsaT5OZXcgIk1vZHVsZSBJbnRlcmZhY2UiIGZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M7PC9saT4KCQkgIDxsaT5OZXcgIlVzZXIgRGVmaW5lZCBUYWcgQ2FsbCIgZmllbGQgdHlwZTs8L2xpPgoJCSAgPGxpPkZpeCB0byBzdXBwb3J0IHN5bnRheCBoaWdobGlnaHRlcnMgZm9yIHRlbXBsYXRlcyBhbmQgSmF2YXNjcmlwdCBvbiBhZG1pbiBzaWRlOzwvbGk+CgkJICA8bGk+PC9saT4KCSAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNiAtIDMwIERlYyAwOTogQnVnIGZpeGVzLiBGaW5hbGx5IHJlbGVhc2luZyB0aGlzIHRoaW5nITwvbGk+CiAgPGxpPlZlcnNpb24gMC42YjI6CiAgICAgPHVsPgogICAgICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuIFRoYW5rcyBmb3IgYWxsIHdobyByZXBvcnRlZCBvbiBidWdzITwvbGk+CiAgICAgICAgPGxpPkFkZGVkIEZvcm0gRGlzcG9zaXRpb24gdG8gZG8gYW4gSFRUUCBHRVQgb3IgUE9TVCB0byBhbnkgYXJiaXRyYXJ5IFVSTCBmb3IgZm9ybSBoYW5kbGluZzs8L2xpPgogICAgICAgIDxsaT5BZGRlZCBjYXBhYmlsaXR5IChhbmQgZXhhbXBsZSBvZikgYWR2YW5jZWQgbXVsdGlwYWdlIGNvbnRhY3QgZm9ybSB3aGVyZSBhIHByZXZpb3VzIHJlc3BvbnNlIGdldHMgZGlzcGxheWVkIG9uIGEgc3Vic2VxdWVudCBwYWdlIGFzIHBlciB1cHRvZWxldmVuJ3MgRlI7PC9saT4KICAgICAgICA8bGk+Rml4IGZvciB0ZW1wbGF0ZSAkZmxkX1ggcmVtYXBwaW5nIG9uIFhNTCBpbXBvcnQ7PC9saT4KICAgICAgICA8bGk+RXh0ZW5kZWQgdG8gcHJvdmlkZSBET00vQ1NTIGlkIGF0dHJpYnV0ZXMgdG8gZmllbGRzOzwvbGk+CiAgICAgICAgPGxpPkNsZWFuZWQgdXAgYmFkIHVzZSBvZiByZWZlcmVuY2VzIGZvciBQSFAgNS54OzwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNmIxOgoJICA8dWw+CgkJICA8bGk+VXBkYXRlZCBkYXRhYmFzZSBjb2RlIHRvIGJlIENNU01TIDEuNy1jb21wYXRpYmxlOzwvbGk+CgkJICA8bGk+QWRkZWQgQnV0dG9uIGZpZWxkIHR5cGUuPC9saT4KCQkgIDxsaT5JbXBsZW1lbnRlZCBGb3JtQnJvd3NlciB2MC4zIERpc3Bvc2l0aW9uOzwvbGk+CgkJICA8bGk+TnVtZXJvdXMgY29kZSBmaXhlczs8L2xpPgoJICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjEyIC0gMyBTZXB0IDA5OiBOdW1lcm91cyB1c2VyLXN1Ym1pdHRlZCBmaXhlcy4gVGhhbmtzIHRvIENhbGd1eSBhbmQgU2ltb24gU2NoYXVmaTs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4xMSAtIDE5IEphbiAwOSAoY2FsZ3V5MTAwMCk6CiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBjYXBhYmlsaXR5IHRvIGNhbGwgYSBVRFQgYmVmb3JlIHRoZSBmb3JtIGlzIGRpc3BsYXllZDs8L2xpPgogICAgICA8bGk+TW92ZSBjaGFuZ2Vsb2cgdG8gYW4gZXh0ZXJuYWwgZmlsZTs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4xMDogMTIgSmFuIDA5LiBCdWcgZml4ZXMgdG8gcmVzdG9yZSBmdW5jdGlvbmFsaXR5IG9mIEZvcm1Ccm93c2VyOzwvbGk+CiAgPGxpPlZlcnNpb24gMC41Ljk6IEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uRmlsZSBjbGFzczs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS44OiBKYW4gMDkgKGNhbGd1eTEwMDApIC0gTWlub3IgY2hhbmdlIHRvIHRoZSBEaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yIGNsYXNzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC41Ljc6IEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgY2xhc3M7PC9saT4KICA8bGk+VmVyc2lvbiAwLjUuNjogMjMgRGVjIDA4LiBCdWcgZml4ZXM7PC9saT4KICA8bGk+VmVyc2lvbiAwLjUuNTogMSBPY3QgMDguIEJ1ZyBmaXhlcy4gQWRkZWQgbmV3IERpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkIHRvIHJlcGxhY2UgZGVmaWNpZW5jaWVzIHdpdGggRW1haWwgQWRkcmVzcyAnRnJvbScgRmllbGQgdHlwZTs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS40OiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCdzIG5ldyBcIkVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgQWdhaW4gRmllbGRcIi4gQWRkZWQgZGF0YWJhc2UgaW5kaWNlczs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4zOiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42OzwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjI6IDI1IE1heSAwOC4gQnVnZml4ZXMuIFJlbGVhc2UgaW4gcHJlcGFyYXRpb24gZm9yIHN1YnN0YW50aWFsIHJld29ya2luZyBmb3IgMC42OzwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjE6IDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZTs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNTogMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb247PC9saT4KICA8bGk+VmVyc2lvbiAwLjQuNDogMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkOzwvbGk+CiAgPGxpPlZlcnNpb24gMC40LjM6IDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9uczs8L2xpPgogIDxsaT5WZXJzaW9uIDAuNC4yOiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC40LjE6IEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC40OgoJICA8dWw+CgkJICA8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE7PC9saT4KCQkgIDxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlOzwvbGk+CgkJICA8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTs8L2xpPgoJCSAgPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiBcIlRleHRGaWVsZCAoTXVsdGlwbGUpXCIgYW5kIFwiQ29tcHV0ZWQgRmllbGRcIjs8L2xpPgoJCSAgPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogXCJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93blwiIGFuZCBcIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnNcIihDYWxndXkpOzwvbGk+CgkJICA8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlczs8L2xpPgoJCSAgPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9XCJ2YWx1ZVwiIHN5bnRheCAoQ2FsZ3V5KTs8L2xpPgoJCSAgPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTs8L2xpPgoJICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMC4zOgogICAgIDx1bD4KICAgICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydDs8L2xpPgogICAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDs8L2xpPgogICAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJ3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzOzwvbGk+CiAgICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ7PC9saT4KICAgICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczs8L2xpPgogICAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzs8L2xpPgogICAgICAgIDxsaT5BZGRlZCBEcmFnJ24nRHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzOzwvbGk+CiAgICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uOzwvbGk+CiAgICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzs8L2xpPgogICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgICAgPHA+QmlnIHJlbGVhc2U6PC9wPgogICAgIDx1bD4KICAgICAgIDxsaT5BZGRlZCBcIkVtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzXCIgZGlzcG9zaXRpb247PC9saT4KICAgICAgIDxsaT5BZGRlZCBcIlRpbWVQaWNrZXJcIiBmaWVsZCB0eXBlLiBTcGxpdCBcIkxpbmtcIiBmaWVsZCBpbnRvIGEgXCJVc2VyLXN1cHBsaWVkIExpbmtcIiBmaWVsZCBhbmQgYSBcIlN0YXRpYyBMaW5rXCIgZmllbGQ7PC9saT4KICAgICAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnM7PC9saT4KICAgICAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzOzwvbGk+CiAgICAgICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zOzwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuMi4zCiAgICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAwLjIuMgogICAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOjwvcD4KICAgICA8dWw+CiAgICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPgogICAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzOgogICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZAogICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuPC9wPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsOgogICAgICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGUuPC9wPgogICAgICAgIDwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cncyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzOzwvbGk+CiAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTs8L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/ButtonField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOSBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDkgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkJ1dHRvbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJCdXR0b25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdCdXR0b25GaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkkY3NzaWQgPSAkdGhpcy0+R2V0Q1NTSWRUYWcoKTsKCiAgICAkcmV0ID0gJzxpbnB1dCB0eXBlPSJidXR0b24iIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJyAuCgkgICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJykuJyIgJy4kanMuJGNzc2lkLicvPic7CgkKCXJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfYnV0dG9uX3RleHQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF90ZXh0JywKCQkJCQkgICAgICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyksIDQwKSkpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CatalogerItemsField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qIA0KICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4NCiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyDQogICANCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQoqLw0KDQovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQ0KICogb3IgbW9yZSBpdGVtcyBmcm9tIHRoZSBjYXRhbG9nZXIgDQogKiB0aGUgaXRlbSBsaXN0IGlzIGZpbHRlcmVkIGJ5IGFuIGFycmF5DQogKiBvZiBvcHRpb25zIGFzIHNwZWNpZmllZCBpbiB0aGUgYWRtaW4uDQogKi8NCmNsYXNzIGZiQ2F0YWxvZ2VySXRlbXNGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsNCg0KICB2YXIgJG9wdGlvbkNvdW50Ow0KICB2YXIgJG9wdGlvbkFkZDsNCg0KICBmdW5jdGlvbiBmYkNhdGFsb2dlckl0ZW1zRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpDQogIHsNCiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsNCiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KICAgICR0aGlzLT5UeXBlID0gJ0NhdGFsb2dlckl0ZW1zRmllbGQnOw0KICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsNCiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7DQogICAgJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7DQogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7DQogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KA0KICAgICAgICAgICAgKTsNCiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsNCiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsNCiAgfQ0KDQoNCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpDQogIHsNCiAgICAkZ0NtcyA9IGNtc21zKCk7DQogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsNCiAgICAkY2F0YWxvZ2VyID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhdGFsb2dlcicpOw0KICAgIA0KICAgIGlmKCAhJGNhdGFsb2dlciApDQogICAgew0KCSAgICByZXR1cm4gJG1vZC0+TGFuZygnZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJyk7DQogICAgfQ0KICAgIA0KICAgICR0bXBfYXR0cnMgPSAkdGhpcy0+X2dldF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcygpOw0KICAgIA0KICAgICRsaW5lcyA9IChpbnQpJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCAnNScpOw0KICAgICRuYW1lcmVnZXggPSB0cmltKCR0aGlzLT5HZXRPcHRpb24oJ25hbWVyZWdleCcsICcnKSk7DQogICAgDQogICAgJHRtcF9hdHRycyA9IGFycmF5KCk7DQogICAgZm9yZWFjaCggJHRtcF9hdHRycyBhcyAkb25lICkNCiAgICB7DQoJICAgICRzYWZlYXR0ciA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnJywkb25lLT5hdHRyKSk7DQoJICAgICR2YWwgPSB0cmltKCR0aGlzLT5HZXRPcHRpb24oJ2F0dHJfJy4kc2FmZWF0dHIsJycpKTsNCgkgICAgaWYoIGVtcHR5KCR2YWwpICkgY29udGludWU7DQoJICAgICRvbmUtPmlucHV0ID0gJHZhbDsNCgkgICAgJGF0dHJzW10gPSAkb25lOw0KICAgIH0NCg0KICAgIC8vIHB1dCB0aGUgaGlkZGVuIGZpZWxkcyBpbnRvIHNtYXJ0eS4NCiAgICAkc21hcnR5X3ZhcnNfc2V0ID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2ZiX3NtYXJ0eV92YXJzX3NldCcpOw0KICAgIA0KICAgIGlmKCAhZW1wdHkoJHNtYXJ0eV92YXJzX3NldCkgKQ0KICAgIHsNCgkJICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQoJCSAgaWYoICEkc21hcnR5ICkgcmV0dXJuOw0KCQkgICR0aGVGaWVsZHMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOw0KCQkgIA0KCQkgIGZvcigkaSA9IDA7ICRpIDwgY291bnQoJHRoZUZpZWxkcyk7ICRpKysgKQ0KCQkgIHsNCgkJCSAgaWYoICR0aGVGaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSAhPSAnSGlkZGVuRmllbGQnICkgY29udGludWU7DQoJCQkgIA0KICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLCR0aGVGaWVsZHNbJGldLT5WYWx1ZSk7DQoJCQkgIA0KICAgICAgICBpZiggJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCkgIT0gJycgKQ0KICAgICAgICB7DQogICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLCR0aGVGaWVsZHNbJGldLT5WYWx1ZSk7DQogICAgICAgIH0NCgkJICB9DQoNCiAgICAgIGNtc191dGlsczo6c2V0X2FwcF9kYXRhKCdmYl9zbWFydHlfdmFyc19zZXQnLCAxKTsNCiAgICB9DQoNCiAgICAvLyBmb3IgZWFjaCBoaWVyYXJjaHkgaXRlbSAoZnJvbSB0aGUgcm9vdCBkb3duKQ0KICAgICRobSA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7DQogICAgJGFsbGNvbnRlbnQgPSAkaG0tPmdldEZsYXRMaXN0KCk7DQogICAgJHJlc3VsdHMgPSBhcnJheSgpOw0KICAgIGZvcmVhY2goICRhbGxjb250ZW50IGFzICRvbmVwYWdlICkNCiAgICAgIHsNCgkkY29udGVudCA9ICRvbmVwYWdlLT5HZXRDb250ZW50KCk7DQoNCgkvLyBpZiBpdCdzIG5vdCBhIGNhdGFsb2dlciBpdGVtIGNvbnRpbnVlDQoJaWYoICRjb250ZW50LT5UeXBlKCkgIT0gJ2NhdGFsb2dpdGVtJyApIGNvbnRpbnVlOw0KDQoJLy8gaWYgaXQncyBub3QgYWN0aXZlIG9yIHNob3duIGluIG1lbnUgY29udGludWUNCglpZiggISRjb250ZW50LT5BY3RpdmUoKSB8fCAhJGNvbnRlbnQtPlNob3dJbk1lbnUoKSApIGNvbnRpbnVlOw0KDQoJLy8gaWYgdGhlIG5hbWVyZWdleCBzdHJpbmcgaXMgbm90IGVtcHR5LCBhbmQgdGhlIG5hbWUgZG9lcyBub3QgbWF0Y2ggdGhlDQoJLy8gICAgcmVnZXgsIGNvbnRpbnVlDQoJaWYoICFlbXB0eSgkbmFtZXJlZ2V4ICkgJiYgIXByZWdfbWF0Y2goJy8nLiRuYW1lcmVnZXguJy8nLCRjb250ZW50LT5OYW1lKCkpICkNCgkgIHsNCgkgICAgY29udGludWU7DQoJICB9DQoNCgkvLyBmb3IgZWFjaCBhdHRyaWJ1dGUNCgkkcGFzc2VkID0gdHJ1ZTsNCgkkYXR0cnMgPSBhcnJheSgpOw0KCWZvcmVhY2goICRhdHRycyBhcyAkb25lYXR0ciApDQoJICB7DQoJICAgIC8vIHBhcnNlIHRoZSBmaWVsZCB2YWx1ZSB0aHJvdWdoIHNtYXJ0eT8NCgkgICAgJGV4cHIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkb25lYXR0ci0+aW5wdXQpOw0KCSAgICBpZiggZW1wdHkoJGV4cHIpICkgY29udGludWU7IC8vIG5vIGV4cHJlc3Npb24gZm9yIHRoaXMgZmllbGQuIHBhc3MNCgkgICAgDQoJICAgIC8vIGdldCB0aGUgdmFsdWUgZm9yIHRoaXMgYXR0cmlidXRlIGZvciB0aGlzIGNvbnRlbnQNCgkgICAgJGN1cnJlbnR2YWwgPSAkY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgkb25lYXR0ci0+YXR0cik7DQoJICAgIGlmKCBlbXB0eSgkY3VycmVudHZhbCkgKQ0KCSAgICAgIHsNCgkJLy8gbm8gdmFsdWUgZm9yIHRoaXMgZmllbGQsIGJ1dCB3ZSBoYXZlIGFuIGV4cHJlc3Npb24NCgkJLy8gdGhpcyBjYXRhbG9nIGl0ZW0gZmFpbHMuDQoJCSRwYXNzZWQgPSBmYWxzZTsNCgkJYnJlYWs7DQoJICAgICAgfQ0KDQoJICAgIGxpc3QoJHR5cGUsJGV4cHIpID0gZXhwbG9kZSgnOicsJGV4cHIsMik7DQoJICAgICR0eXBlID0gdHJpbSgkdHlwZSk7DQoJICAgICRleHByID0gdHJpbSgkZXhwcik7DQoNCgkgICAgJHJlcyA9IGZhbHNlOw0KCSAgICBzd2l0Y2goIHN0cnRvbG93ZXIoJHR5cGUpICkNCgkgICAgICB7DQoJICAgICAgY2FzZSAncmFuZ2UnOg0KCQkvLyBmb3IgcmFuZ2VzOg0KCQkvLyBncmFiIG1pbiBhbmQgbWF4IHZhbHVlcw0KCQlsaXN0KCRtaW52YWwsJG1heHZhbCkgPSBleHBsb2RlKCd0bycsJGV4cHIpOw0KCQkkbWludmFsID0gdHJpbSgkbWludmFsKTsgJG1heHZhbCA9IHRyaW0oJG1heHZhbCk7DQoJCS8vIGNoZWNrIGZvciBudW1lcmljDQoJCWlmKCAhaXNfbnVtZXJpYygkbWludmFsKSB8fCAhaXNfbnVtZXJpYygkbWF4dmFsKSApDQoJCSAgew0KCQkgICAgLy8gY2FuJ3QgdGVzdCByYW5nZXMgd2l0aCBub24gbnVtZXJpYyB2YWx1ZXMNCgkJICAgIC8vIHNvIGZhaWwNCgkJICAgICRwYXNzZWQgPSBmYWxzZTsNCgkJICAgIGJyZWFrOw0KCQkgIH0NCgkJaWYoICRtaW52YWwgPiAkbWF4dmFsICkNCgkJICB7DQoJCSAgICAkdG1wID0gJG1pbnZhbDsNCgkJICAgICRtaW52YWwgPSAkbWF4dmFsOw0KCQkgICAgJG1heHZhbCA9ICR0bXA7DQoJCSAgfQ0KCQkkcmVzID0gKCRjdXJyZW50dmFsID49ICRtaW52YWwgJiYgJGN1cnJlbnR2YWwgPD0gJG1heHZhbCApOw0KCQlicmVhazsNCg0KCSAgICAgIGNhc2UgJ211bHRpJzoNCgkJLy8gZm9yIG11bHRpDQoJCSR0bXAgPSBleHBsb2RlKCd8JywkZXhwcik7DQoJCSRyZXMgPSBpbl9hcnJheSgkY3VycmVudHZhbCwkdG1wKTsNCgkJYnJlYWs7DQoJICAgICAgfQ0KDQoJICAgIGlmKCAhJHJlcyApDQoJICAgICAgew0KCQkkcGFzc2VkID0gZmFsc2U7DQoJCWJyZWFrOw0KCSAgICAgIH0NCgkgIH0gLy8gZm9yZWFjaCBhdHRyDQoNCglpZiggJHBhc3NlZCApDQoJICB7DQoJICAgICRyZXN1bHRzWyRjb250ZW50LT5OYW1lKCldID0gJGNvbnRlbnQtPk5hbWUoKTsNCgkgIH0NCiAgICAgIH0gLy8gZm9yZWFjaCBjb250ZW50DQogICANCg0KICAgIC8vIEFsbCBkb25lLCBkbyB3ZSBoYXZlIHNvbWV0aGluZyB0byBkaXNwbGF5Pw0KICAgIGlmKCBjb3VudCgkcmVzdWx0cykgKSANCiAgICAgIHsNCgkkc2l6ZSA9IG1pbigkbGluZXMsY291bnQoJHJlc3VsdHMpKTsNCgkkc2l6ZSA9IG1pbig1MCwkc2l6ZSk7IC8vIG1heGltdW0gNTAgbGluZXMsIHRob3VnaCB0aGlzIGlzIHByb2JhYmx5IGJpZw0KDQoJJHZhbCA9IGFycmF5KCk7DQoJaWYoICR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgKQ0KCSAgew0KCSAgICAkdmFsID0gJHRoaXMtPlZhbHVlOw0KCSAgICBpZiggIWlzX2FycmF5KCAkdGhpcy0+VmFsdWUgKSApDQoJICAgICAgew0KCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsNCgkgICAgICB9DQoJICB9DQogICAkY3NzaWQgPSAkdGhpcy0+R2V0Q1NTSWRUYWcoKTsNCglyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHJlc3VsdHMsICR2YWwsDQoJCQkJCSAgICRzaXplLCAkY3NzaWQpOw0KICAgICAgfQ0KDQogICAgcmV0dXJuICcnOyAvLyBlcnJvcg0KICB9DQoNCg0KICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkNCiAgew0KICAgIC8vIHJldHVybiBhIHN0cmluZyBmb3IgZGlzcGxheWluZyBpbiB0aGUgb3B0aW9ucyBmaWVsZA0KICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQogICAgJGNhdGFsb2dlciA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsNCiAgICBpZiggISRjYXRhbG9nZXIgKQ0KICAgICAgew0KCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsNCiAgICAgIH0NCiAgICByZXR1cm4gJyc7DQogIH0NCgkNCg0KICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpDQogIHsNCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KDQogICAgJG1haW4gPSBhcnJheSgpOw0KICAgICRjYXRhbG9nZXIgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2F0YWxvZ2VyJyk7DQogICAgDQogICAgaWYoICEkY2F0YWxvZ2VyICkNCiAgICB7DQogICAgICAkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygnd2FybmluZycpLCRtb2QtPkxhbmcoJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZScpKTsNCiAgICAgICRtYWluW10gPSAkdG1wOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGdDbXMgPSBjbXNtcygpOw0KICAgICAgDQogICAgICAkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaGVpZ2h0JyksDQogICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwNCiAgICAgICAgICAgICAgICAgJ2ZicnBfb3B0X2xpbmVzJywNCiAgICAgICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCc1JyksMywzKS4NCiAgICAgICAgICAgICAnJm5ic3A7Jy4kbW9kLT5MYW5nKCdoZWxwX2ZpZWxkX2hlaWdodCcpKTsNCiAgICAgICRtYWluW10gPSAkdG1wOw0KDQogICAgICAkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbmFtZV9yZWdleCcpLA0KICAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsDQogICAgICAgICAgICAgICAgICdmcmJwX29wdF9uYW1lcmVnZXgnLA0KICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCduYW1lcmVnZXgnLCcnKSwNCiAgICAgICAgICAgICAgICAgMjUsMjUpLg0KICAgICAgICAgICAgICcmbmJzcDsnLiRtb2QtPkxhbmcoJ2hlbHBfbmFtZV9yZWdleCcpKTsNCiAgICAgICRtYWluW10gPSAkdG1wOw0KDQogICAgICAkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnKSwkbW9kLT5MYW5nKCdoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJykpOw0KICAgICAgJG1haW5bXSA9ICR0bXA7DQogICAgICANCiAgICAgICMkYXR0cnMgPSBhcnJheSgpOw0KICAgICAgJGF0dHJzID0gJHRoaXMtPl9nZXRfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMoKTsNCiAgICAgICAgICANCiAgICAgIGZvcmVhY2goICRhdHRycyBhcyAkb25lICkNCiAgICAgIHsNCiAgICAgICAgJHNhZmVhdHRyID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCcnLCRvbmUtPmF0dHIpKTsNCiAgICAgICAgaWYoICRvbmUtPmZpZWxkX3R5cGUgPT0gJ3RleHQnICkgY29udGludWU7DQogICAgICAgICR0bXAgPSBhcnJheSgkb25lLT5hdHRyLA0KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwNCiAgICAgICAgICAgICAgICAgICAnZmJycF9vcHRfYXR0cl8nLiRzYWZlYXR0ciwNCiAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdhdHRyXycuJHNhZmVhdHRyLCcnKSwNCiAgICAgICAgICAgICAgICAgICAzMCw4MCkpOw0KICAgICAgICAkbWFpbltdID0gJHRtcDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAkYWR2ID0gYXJyYXkoKTsNCiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7DQogIH0NCg0KDQogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpDQogIHsNCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOw0KICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkNCiAgICAgIHsNCgkkZmllbGRSZXQgPSBhcnJheSgpOw0KCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpDQoJICB7DQoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7DQoJICB9DQoJaWYgKCRhc19zdHJpbmcpDQoJICB7DQoJICAgIHJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdGhpcy0+VmFsdWUpOw0KCSAgfQ0KCWVsc2UNCgkgIHsNCgkgICAgcmV0dXJuIGFycmF5KCR0aGlzLT5WYWx1ZSk7DQoJICB9CQkJDQogICAgICB9DQogICAgZWxzZQ0KICAgICAgew0KCWlmICgkYXNfc3RyaW5nKQ0KCSAgew0KCSAgICByZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsNCgkgIH0NCgllbHNlDQoJICB7DQoJICAgIHJldHVybiBhcnJheSgkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsNCgkgIH0NCiAgICAgIH0NCgkNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzKCkNCiAgew0KICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQogICAgJGNhdGFsb2dlciA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsNCiAgICANCiAgICBpZiAoIWlzX29iamVjdCgkY2F0YWxvZ2VyKSkNCiAgICB7DQogICAgICByZXR1cm4gYXJyYXkoKTsNCiAgICB9DQogICAgDQogICAgIyBmb3Igc29tZSBvZGQgcmVhc29uIGNhdGFsb2dlciBpcyBnaXZpbmcgdXMgYW5kIGFycmF5IG9mIGFycmF5cyBvZiBvYmplY3RzICh0aGVzZSBiZWluZyB0aGUgYXR0cnMpDQogICAgIyBzbyB3ZSBmaXggaXQgaGVyZSBhbmQgaWYgYW55IGZ1cnRoZXIgY2hhbmdlcyBvY2N1ciB3ZSBqdXN0IGhhdmUgdG8gYWx0ZXIgb25lIG1ldGhvZA0KICAgICMgKEpNKQ0KICAgIA0KICAgICRhdHRyc19hcnJheSA9ICRjYXRhbG9nZXItPmdldFVzZXJBdHRyaWJ1dGVzKCk7DQogICAgJGF0dHJzID0gYXJyYXkoKTsNCiAgICANCiAgICBmb3JlYWNoKCRhdHRyc19hcnJheSBhcyAkb25lX2FycmF5KQ0KICAgIHsNCiAgICAgIGZvcmVhY2goJG9uZV9hcnJheSBhcyAkb25lKQ0KICAgICAgew0KICAgICAgICAkYXR0cnNbXSA9ICRvbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgcmV0dXJuICRhdHRyczsNCiAgfQ0KDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/CCEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNDRW1haWxBZGRyZXNzRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDQ0VtYWlsQWRkcmVzc0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnQ0NFbWFpbEFkZHJlc3NGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkdmFsID0gJyc7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpCgkJewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaHRtbDUgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgewoJCSAgICAgICAgICAgICAgICAkaHRtbDUgLj0gJyByZXF1aXJlZCc7CgkJICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgIAkJMjUsIDEyOCwgJGpzLiRodG1sNS4kdGhpcy0+R2V0Q1NTSWRUYWcoKSwnZW1haWwnKTsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSRhZHYgPSBhcnJheSgpOwoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0JywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksMjUsMTAyNCkpKTsKCQlhcnJheV9wdXNoKCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykpKTsKCQkkZmllbGRsaXN0ID0gYXJyYXkoKTsKCQkkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCXsKCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkKICAgICAgICAgCQkJJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJewoJCQkJJHR4dCA9ICRvdGhlcnNbJGldLT5HZXROYW1lKCkuJzogJy4kb3RoZXJzWyRpXS0+R2V0RGlzcGxheVR5cGUoKTsKCQkJCSRhbGlhcyA9ICRvdGhlcnNbJGldLT5HZXRBbGlhcygpOwoJCQkJaWYgKCFlbXB0eSgkYWxpYXMpKQoJCQkJewoJCQkJCSR0eHQgLj0gJyAoJy4kYWxpYXMuJyknOwoJCQkJfQoJCQkJJGZpZWxkbGlzdFskdHh0XSA9ICRvdGhlcnNbJGldLT5HZXRJZCgpOwoJCQl9CgkJfQoJCgkJJG1haW4gPSBhcnJheSggYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdG9fbW9kaWZ5JyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmllbGRfdG9fbW9kaWZ5JywgJGZpZWxkbGlzdCwgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX21vZGlmeScpKSkgKTsKCgkgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkKICAgICAgICAgICAgICAgCQkmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpCgkJCQkJJiYgJG90aGVyc1skaV0tPkdldElkKCkgPT0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fbW9kaWZ5JykpCgkJCQkJewoJCQkJCQkkY2MgPSAkb3RoZXJzWyRpXS0+R2V0T3B0aW9uKCdlbWFpbF9jY19hZGRyZXNzJywnJyk7CgkJCQkJCWlmICghZW1wdHkoJGNjKSkKCQkJCQkJCXsKCQkJCQkJCSRjYyAuPSAnLCc7CgkJCQkJCQl9CgkJCQkJCSRjYyAuPSAkdGhpcy0+VmFsdWU7CgkJCQkJICAgICRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2NjX2FkZHJlc3MnLCR0aGlzLT5WYWx1ZSk7CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCSAgCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJaWYgKCRvdGhlcnNbJGldLT5HZXRJZCgpID09ICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX21vZGlmeScpKQoJCQkJewoJCQkJcmV0dXJuICRtb2QtPkxhbmcoJ3RpdGxlX21vZGlmaWVzJywkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKTsKCQkJCX0KCQkJfQoJICAJcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQl7CgkJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgCSR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UKLy8gICAgICAgICAgICAgICAgICAJJiYgISBwcmVnX21hdGNoKAovLyAgICAgICAgICAgICAgICAgIAkJCQkJCQkJCQkoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsICcwJykgPT0gMCA/ICRtb2QtPmVtYWlsX3JlZ2V4IDogJG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksIAovLyAgICAgICAgICAgICAgICAgIAkJCQkJCQkJCQkkdGhpcy0+VmFsdWUKLy8gICAgICAgICAgICAgICAgICAJCQkJCQkJCQkpCgkJCQkJCQkJCQkmJiAhZW1haWxfdmFsaWRhdG9yOjppc19lbWFpbCgkdGhpcy0+VmFsdWUpCiAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgfQoJCSAgCSAgIGJyZWFrOwoJCX0KCQkKCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxExtendedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCglGb3JtQnVpbGRlci4gQ29weXJpZ2h0IChjKSAyMDA1LTIwMDYgU2FtdWVsIEdvbGRzdGVpbiA8c2pnQGNtc21vZHVsZXMuY29tPgoJTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCglBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQoJVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCglUaGlzIEZpZWxkIHdyaXR0ZW4gYnkgVGFwaW8gIlN0aWtraSIgTPZ5dHR5IDx0YXBzYUBibGFja21pbGsuZmk+CiovCgpjbGFzcyBmYkNoZWNrYm94RXh0ZW5kZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkNoZWNrYm94RXh0ZW5kZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICBwYXJlbnQ6OmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICAnQ2hlY2tib3hFeHRlbmRlZEZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX2VtcHR5Jyk9PidlbXB0eScKICAgICAgICAgICAgKTsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCQkkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CSAgCSAgCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJGNoZWNrX3ZhbHVlID0gJHRoaXMtPl9jaGVja192YWx1ZSgpOwoJCSRvdXRwdXQgPSBhcnJheSgpOwoJCSRib3hfbGFiZWwgPSAnJzsJCQoJCSR0ZXh0X2xhYmVsID0gJyc7CQkKCQkkaHRtbDVfMCA9ICcnOwoJCSRodG1sNV8xID0gJyc7CgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKICAgICAgICAgICAgICAgIHsKCQkJaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9PSAnY2hlY2tlZCcpCgkJCXsKICAgICAgICAgICAgICAgICAgICAgICAgCSRodG1sNV8wID0gJyByZXF1aXJlZCc7CgkJCX0KCgkJCSR2YWwgPSAkdGhpcy0+VmFsdWVbJ3RleHQnXTsKCQkJJGh0bWw1XzEgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJCWlmICgkdGhpcy0+VmFsaWRhdGlvblR5cGUgPT0gJ2VtcHR5JykKICAgICAgICAgICAgICAgIAl7CiAgICAgICAgICAgICAgICAgICAgICAgIAkkaHRtbDVfMSAuPSAnIHJlcXVpcmVkJzsKCQkJfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlWyd0ZXh0J10gPyAkdGhpcy0+VmFsdWVbJ3RleHQnXSA6ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgb25mb2N1cz0iaWYodGhpcy52YWx1ZT09dGhpcy5kZWZhdWx0VmFsdWUpIHRoaXMudmFsdWU9XCdcJzsiIG9uYmx1cj0iaWYodGhpcy52YWx1ZT09XCdcJykgdGhpcy52YWx1ZT10aGlzLmRlZmF1bHRWYWx1ZTsiJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKCQlpZiAoISR0aGlzLT5WYWx1ZVsnYm94J10gJiYgJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKT09JzEnKSB7CgkJCgkJCSR0aGlzLT5WYWx1ZVsnYm94J10gPSAndCc7CgkJfQoJCQoJCWlmIChzdHJsZW4oJHRoaXMtPkdldE9wdGlvbignYm94X2xhYmVsJywnJykpID4gMCkgewoJCQkkYm94X2xhYmVsID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfMCcpLiciPicuJHRoaXMtPkdldE9wdGlvbignYm94X2xhYmVsJykuJzwvbGFiZWw+JzsKCQl9CQoJCQoJCWlmIChzdHJsZW4oJHRoaXMtPkdldE9wdGlvbigndGV4dF9sYWJlbCcsJycpKSA+IDApIHsKCQkJJHRleHRfbGFiZWwgPSAnPGxhYmVsIGZvcj0iJy4kdGhpcy0+R2V0Q1NTSWQoJ18xJykuJyI+Jy4kdGhpcy0+R2V0T3B0aW9uKCd0ZXh0X2xhYmVsJykuJzwvbGFiZWw+JzsKCQl9CQoJCQoJCSRvYmogPSBuZXcgc3RkQ2xhc3MoKTsKCQkkb2JqLT5uYW1lID0gJGJveF9sYWJlbDsKCQkkb2JqLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tib3hdJywgJ3QnLCR0aGlzLT5WYWx1ZVsnYm94J10sJGpzLiRodG1sNV8wLiR0aGlzLT5HZXRDU1NJZFRhZygnXzAnKSk7CgkJCgkJJG91dHB1dFtdID0gJG9iajsKCgkJaWYoJHRoaXMtPkdldE9wdGlvbignc2hvd190ZXh0ZmllbGQnKSkgewoJCQoJCQkkb2JqID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRvYmotPm5hbWUgPSAkdGV4dF9sYWJlbDsKCQkJJG9iai0+aW5wdXQgPSAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW3RleHRdJywoJGNoZWNrX3ZhbHVlWyd0ZXh0J10/JHRoaXMtPlZhbHVlWyd0ZXh0J106JycpLDI1LDI1LCRqcy4kaHRtbDVfMS4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18xJykpOwkJCgkJCQkKCQkJJG91dHB1dFtdID0gJG9iajsKCQkKCQl9CgkJCQoJCXJldHVybiAkb3V0cHV0OwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkdmFsID0gJHRoaXMtPlZhbHVlOwoJCSRyZXQgPSAnJzsKCgkJaWYgKCEkdmFsWydib3gnXSkgewoJCQkKCQkJJHJldCAuPSAkdGhpcy0+R2V0T3B0aW9uKCd1bmNoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX3VuY2hlY2tlZCcpKTsKCQl9IGVsc2UgewoJCQoJCQkkcmV0IC49ICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJfQkJCgoJCWlmICgkdmFsWyd0ZXh0J10gJiYgIWVtcHR5KCR2YWxbJ3RleHQnXSkpIHsKCQkKCQkJJHJldCAuPSAkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJykuJHZhbFsndGV4dCddOwoJCQoJCX0KCQkJCgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICAoJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKT09JzEnPyRtb2QtPkxhbmcoJ2NoZWNrZWRfYnlfZGVmYXVsdCcpOiRtb2QtPkxhbmcoJ3VuY2hlY2tlZF9ieV9kZWZhdWx0JykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCXJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2xhYmVsJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9sYWJlbCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignYm94X2xhYmVsJywnJyksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRmaWVsZF9sYWJlbCcpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF90ZXh0X2xhYmVsJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0X2xhYmVsJywnJyksMjUsMjU1KSksCQkJCQkKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jaGVja2VkX3ZhbHVlJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdjaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd5ZXMnKSksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF91bmNoZWNrZWRfdmFsdWUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3VuY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygnbm8nKSksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2lzX2NoZWNrZWQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9pc19jaGVja2VkJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdGV4dGZpZWxkJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Nob3dfdGV4dGZpZWxkJywnMCcpLiRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd190ZXh0ZmllbGQnLCAnMScsICR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdGV4dGZpZWxkJywnMCcpKSkJCQoJCSk7CgkJCQkKICAgICAgICAgICAgICAgICRhZHYgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0JywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksMjUsMTAyNCkpLAogICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0JyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMCcpLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKQogICAgICAgICAgICAgICAgKTsKCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdjaGVja2VkJzoKCQkgIAkgICAgICAgaWYgKCR0aGlzLT5WYWx1ZVsnYm94J10gPT0gZmFsc2UpCgkJICAJICAgICAgICAgICB7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3lvdV9tdXN0X2NoZWNrJywkdGhpcy0+R2V0T3B0aW9uKCdib3hfbGFiZWwnLCcnKSk7CgkJICAJICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2VtcHR5JzoKCQkgIAkgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5WYWx1ZVsndGV4dCddKSkKCQkgIAkgICAgICAgICAgIHsKCQkgIAkgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkgIAkgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5HZXRPcHRpb24oJ3RleHRfbGFiZWwnLCcnKSk7CgkJICAJICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoKCQkJCSAgIAoJCSAgfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9CgoJCglwcml2YXRlIGZ1bmN0aW9uIF9jaGVja192YWx1ZSgpIHsKCQkKCQkkdmFsID0gJHRoaXMtPlZhbHVlOwoJCSR2YWxpZCA9IGFycmF5KCdib3gnPT5mYWxzZSwgJ3RleHQnPT5mYWxzZSk7CgkKCQlpZigkdmFsID09PSBmYWxzZSkgewoJCQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCgkJaWYoaXNzZXQoJHZhbFsnYm94J10pKSB7CgkJCgkJCSR2YWxpZFsnYm94J10gPSB0cnVlOwoJCX0KCQkKCQlpZihpc3NldCgkdmFsWyd0ZXh0J10pICYmICFlbXB0eSgkdmFsWyd0ZXh0J10pKSB7CgkJCgkJCSR2YWxpZFsndGV4dCddID0gdHJ1ZTsKCQl9IAoJCQoJCXJldHVybiB2YWxpZDsKCQoJfQoJCn0gLy8gZW5kIG9mIGNsYXNzCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDaGVja2JveEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAgJ0NoZWNrYm94RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGxhYmVsID0gJyc7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScmJiAkdGhpcy0+SXNSZXF1aXJlZCgpKQoJCXsKCQkJJGh0bWw1ID0gJyByZXF1aXJlZCc7CgkJfQoJCWlmIChzdHJsZW4oJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSkgPiAwKQoJCQl7CgkJCSRsYWJlbCA9ICcmbmJzcDs8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgpLiciPicuJHRoaXMtPkdldE9wdGlvbignbGFiZWwnKS4nPC9sYWJlbD4nOwoJCQl9CgkJaWYgKCAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMScpIHx8ICR0aGlzLT5WYWx1ZSA9PSAkdGhpcy0+R2V0T3B0aW9uKCdjaGVja2VkX3ZhbHVlJywnMCcpICkKCQkJewoJCQkkdGhpcy0+VmFsdWUgPSAndCc7CgkJCX0KCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICd0JywkdGhpcy0+VmFsdWUsJGpzLiRodG1sNS4kdGhpcy0+R2V0Q1NTSWRUYWcoKSkuJGxhYmVsOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmV0ID0gICgkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMSc/JG1vZC0+TGFuZygnY2hlY2tlZF9ieV9kZWZhdWx0Jyk6JG1vZC0+TGFuZygndW5jaGVja2VkX2J5X2RlZmF1bHQnKSk7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGFiZWwnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJyksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VuY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2lzX2NoZWNrZWQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9pc19jaGVja2VkJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpKSkKCQkJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdjaGVja2VkJzoKCQkgIAkgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJICAJICAgICAgICAgICB7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3lvdV9tdXN0X2NoZWNrJywkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKTsKCQkgIAkgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCS8vIENvbnN0cnVjdG9yCglmdW5jdGlvbiBmYkNoZWNrYm94R3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCS8vIENvdW50IGhvdyBtYW55IGJveGVzIHdlIGhhdmUKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmIChpc19hcnJheSgkdG1wKSkgewoJCQoJICAgICAgICAkdGhpcy0+Ym94Q291bnQgPSBjb3VudCgkdG1wKTsKCQkKCQl9IGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpIHsKCSAgICAgICAgCgkJCSR0aGlzLT5ib3hDb3VudCA9IDE7CgkgICAgfSBlbHNlIHsKCQkJCgkJCSR0aGlzLT5ib3hDb3VudCA9IDA7CgkgICAgfQoJfQoKCS8vIFJldHVybiBzdGF0dXMKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQkkcmV0ID0gJG1vZC0+TGFuZygnYm94ZXMnLCR0aGlzLT5ib3hDb3VudCk7CgkJIHJldHVybiAkcmV0OwoJfQoKCS8vIEdldCBhZGQgYnV0dG9uCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9jaGVja2JveGVzJyk7Cgl9CgoJLy8gR2V0IGRlbGV0ZSBidXR0b24KCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnZGVsZXRlX2NoZWNrYm94ZXMnKTsKCX0KCgkvLyBHZXQgaW5wdXQKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQkkaXNfc2V0ID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlpZiAoISBpc19hcnJheSgkbmFtZXMpKQoJCQl7CgkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCgkJaWYgKCEgaXNfYXJyYXkoJGlzX3NldCkpCgkJCXsKCQkJJGlzX3NldCA9IGFycmF5KCRpc19zZXQpOwoJCQl9CgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkbGFiZWwgPSAnJzsKCQkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkJCQl7CgkJCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJCQkJJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCQkJCX0KCQkJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJCXsKCQkJCSRjaGVja192YWwgPSAkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkrMSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCWlmIChpc3NldCgkaXNfc2V0WyRpXSkgJiYgJGlzX3NldFskaV0gPT0gJ3knKQoJCQkJCXsKCQkJCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgKCRpKzEpLAoJCQkJJGNoZWNrX3ZhbCAhPT0gZmFsc2U/KCRpKzEpOictMScsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnXycuJGkpKTsKCgkJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCQl9CQkJCgkJcmV0dXJuICRmaWVsZERpc3A7Cgl9CgoJLy8gR2V0IEh1bWFuIHJlYWRhYmxlIHZhbHVlCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCQoJCS8vIEluaXQgbmFtZXMKCQkkbmFtZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpIHsKCQkKCQkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJfQoJCQoJCS8vIEluaXQgY2hlY2tlZCBib3hlcwoJCSRjaGVja2VkID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X2NoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkY2hlY2tlZCkpIHsKCQkKCQkJJGNoZWNrZWQgPSBhcnJheSgkY2hlY2tlZCk7CgkJfQoJCQoJCS8vIEluaXQgdW5jaGVja2VkIGJveGVzCgkJJHVuY2hlY2tlZCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF91bmNoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkdW5jaGVja2VkKSkgewoJCQoJCQkkdW5jaGVja2VkID0gYXJyYXkoJHVuY2hlY2tlZCk7CgkJfQoJCQoJCS8vJGZpZWxkTGFiZWxzID0gYXJyYXkoKTsKCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCWZvciAoJGk9MTskaTw9Y291bnQoJG5hbWVzKTskaSsrKSB7CgkJCgkJCWlmICgkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkpID09PSBmYWxzZSkgewoJCQkKCQkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdub19lbXB0eScsJzAnKSAhPSAnMScgJiYgaXNzZXQoJHVuY2hlY2tlZFskaS0xXSkgJiYgdHJpbSgkdW5jaGVja2VkWyRpLTFdKSAhPSAnJyApIHsKCQkJCQoJCQkJCSRmaWVsZFJldFskbmFtZXNbJGktMV1dID0gJHVuY2hlY2tlZFskaS0xXTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCQoJCQkJaWYoIGlzc2V0KCRjaGVja2VkWyRpLTFdKSAmJiB0cmltKCRjaGVja2VkWyRpLTFdKSAhPSAnJyApICRmaWVsZFJldFskbmFtZXNbJGktMV1dID0gJGNoZWNrZWRbJGktMV07CgkJCX0KCQl9CgkJCgkJaWYgKCRhc19zdHJpbmcpIHsKCQkJCgkJCS8vIENoZWNrIGlmIHdlIHNob3VsZCBpbmNsdWRlIGxhYmVscwoJCQlpZigkdGhpcy0+R2V0T3B0aW9uKCdpbmNsdWRlX2xhYmVscycsJzAnKSA9PSB0cnVlKSB7CgkJCQoJCQkJJG91dHB1dCA9ICcnOwoJCQkJZm9yZWFjaCgkZmllbGRSZXQgYXMgJGtleT0+JHZhbHVlKSB7CgkJCQkKCQkJCQkkb3V0cHV0IC49ICRrZXkuJzogJy4kdmFsdWUuJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpOwoJCQkJCgkJCQl9CgkJCQoJCQkJJG91dHB1dCA9IHN1YnN0cigkb3V0cHV0LDAsc3RybGVuKCRvdXRwdXQpLTEpOwoJCQkJcmV0dXJuICRvdXRwdXQ7CgkJCX0KCQkJCgkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkKCQl9IGVsc2UgewoJCQoJCQlyZXR1cm4gJGZpZWxkUmV0OwoJCX0KCX0KCgkvLyBBZGQgYWN0aW9uCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+Ym94QWRkID0gMTsKCX0KCgkvLyBEZWxldGUgYWN0aW9uCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCS8vIFBvcHVsYXRlIHRhYnMKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQlpZiAoJHRoaXMtPmJveEFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmJveENvdW50ICs9ICR0aGlzLT5ib3hBZGQ7CgkJCSR0aGlzLT5ib3hBZGQgPSAwOwoJCQl9CgkJCSRib3hlcyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSBwYWdldGFibGUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRoZWFkPjx0cj48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV91bmNoZWNrZWRfdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9zZXQnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOwoKCQkkcm93Y2xhc3MgPSAncm93MSc7CgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+Ym94Q291bnQ+MT8kdGhpcy0+Ym94Q291bnQ6MSk7JGkrKykKCQkJewoJCQkkYm94ZXMgLj0gJzx0ciBjbGFzcz0iJy4kcm93Y2xhc3MuJyI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF91bmNoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF91bmNoZWNrZWQnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLiAgICAgICAgICAgIAkJICAgIAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYm94X2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCRpKSkuCQogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCQkJCgkJCSgkcm93Y2xhc3MgPT0gJ3JvdzEnPyRyb3djbGFzcz0ncm93Mic6JHJvd2NsYXNzPSdyb3cxJyk7CgkJCX0KCQkkYm94ZXMgLj0gJzwvdGJvZHk+PC90YWJsZT4nOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfbm9fZW1wdHknLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbm9fZW1wdHknLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdub19lbXB0eScsJzAnKSkuJG1vZC0+TGFuZygndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnKSwkYm94ZXMpCgkJKTsKCQkKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2luY2x1ZGVfbGFiZWxzJywnMCcpLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2luY2x1ZGVfbGFiZWxzJywnMScsJHRoaXMtPkdldE9wdGlvbignaW5jbHVkZV9sYWJlbHMnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCcpKQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCgkvLyBCZWZvcmUgYWRtaW4gc3VibWl0IGRvIGNsZWFudXAKCWZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQoJewoJCSRuYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJJGNoZWNrZWQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfY2hlY2tlZCcpOwoJCSR1bmNoZWNrZWQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfdW5jaGVja2VkJyk7CgkJJGlzX3NldCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9pc19zZXQnKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X2NoZWNrZWQnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywgJGkpOwoJCQkJJGktLTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5jb3VudEJveGVzKCk7Cgl9CgkKfSAvLyBFbmQgb2YgQ2xhc3MKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/CompanyDirectoryField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQogKiBvciBtb3JlIGl0ZW1zIGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgCiAqIHRoZSBpdGVtIGxpc3QgaXMgZmlsdGVyZWQgYnkgYW4gYXJyYXkKICogb2Ygb3B0aW9ucyBhcyBzcGVjaWZpZWQgaW4gdGhlIGFkbWluLgogKiBUaGlzIEZpZWxkIHdyaXR0ZW4gYnkgSmVyZW15IEJhc3MgPGplcmVteUJhc3NAY2FibGVvbmUubmV0PgogKi8KY2xhc3MgZmJDb21wYW55RGlyZWN0b3J5RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgogIGZ1bmN0aW9uIGZiQ29tcGFueURpcmVjdG9yeUZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0NvbXBhbnlEaXJlY3RvcnlGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRnQ21zID0gY21zbXMoKTsKCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJENvbXBhbnlEaXJlY3RvcnkgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ29tcGFueURpcmVjdG9yeScpOwogICAgaWYoICEkQ29tcGFueURpcmVjdG9yeSApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJyk7CiAgICAgIH0KCiAgICAkcmVzdWx0cyA9IGFycmF5KCk7CgoJCSRkYiA9ICRnQ21zLT5HZXREYigpOwogCQkkTGlrZT0kdGhpcy0+R2V0T3B0aW9uKCdDYXRlZ29yeScsJyUnKTsKCQlpZigkTGlrZT09Jyd8fCRMaWtlPT0nJSd8fCRMaWtlPT0nQWxsJyl7CgkJCSRwcm9jZXNzUGF0aD0iTElLRSAgJyUnIjsKCQl9ZWxzZXsKCQkJJHByb2Nlc3NQYXRoPSI9ICA/IjsKCQl9CiAJCSRxdWVyeSA9ICdTRUxFQ1QgY29tLmlkLCBjb20uY29tcGFueV9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBBUyBjb21jYXQgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgQVMgY2F0IE9OIGNhdC5pZCA9IGNvbWNhdC5jYXRlZ29yeV9pZCAnCgkJCQkuJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEFTIGNvbSBPTiBjb20uaWQgPSBjb21jYXQuY29tcGFueV9pZCAnCgkJCQkuJ1dIRVJFIGNhdC5uYW1lICcuJHByb2Nlc3NQYXRoLicgQU5EIHN0YXR1cyA9IFwncHVibGlzaGVkXCcnOwoKCQkkcXVlcnkyID0gJ1NFTEVDVCB2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgQVMgY29tZnYgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBBUyBmZGQgT04gZmRkLmlkID0gY29tZnYuZmllbGRkZWZfaWQgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBBUyBjb20gT04gY29tZnYuY29tcGFueV9pZCA9IGNvbS5pZCAnCgkJCQkuJ1dIRVJFIGNvbS5jb21wYW55X25hbWUgPSA/IEFORCBmZGQubmFtZSA9ID8nOwoJCSR2YWw9YXJyYXkoKTsKCQkkY29tcGFuaWVzID0gYXJyYXkoKTsKCQkkZmllbGQ9JHRoaXMtPkdldE9wdGlvbignRmllbGREZWZzJywnJyk7CgkJaWYoJExpa2U9PScnfHwkTGlrZT09JyUnfHwkTGlrZT09J0FsbCcpewoJCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgLCBhcnJheSgpKTsKCQkJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKXsKCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkkRkR2YWw9Jyc7CgkJCQkJJGRicjIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeTIgLCBhcnJheSgkY29tcGFueSwkZmllbGQpKTsKCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkRkR2YWw9JHJvd1sndmFsdWUnXTsKCQkJCQkJfQoJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJfQoKCQl9ZWxzZXsKCQkJaWYoaXNfYXJyYXkoJExpa2UpKXsKCQkJCWZvcmVhY2goJExpa2UgYXMgJGtleSA9PiAkdmFsdWUpewoJCQkJCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSAsIGFycmF5KCR2YWx1ZSkpOwoJCQkJCQl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkJCSRGRHZhbD0nJzsKCQkJCQkJCSRkYnIyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkyICwgYXJyYXkoJGNvbXBhbnksJGZpZWxkKSk7CgkJCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkJCSRGRHZhbD0kcm93Wyd2YWx1ZSddOwoJCQkJCQkJCX0KCQkJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJCQl9CgkJCQl9CgkJCX1lbHNlewoJCQkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICwgYXJyYXkoJExpa2UpKTsKCQkJCQl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkJCSRGRHZhbD0nJzsKCQkJCQkJCSRkYnIyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkyICwgYXJyYXkoJGNvbXBhbnksJGZpZWxkKSk7CgkJCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkJCSRGRHZhbD0kcm93Wyd2YWx1ZSddOwoJCQkJCQkJCX0KCQkJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJCX0KCQkJfQoJCX0KCiAgICAgIGZvcmVhY2goJGNvbXBhbmllcyBhcyAka2V5PT4kdmFsKQogICAgICAgICB7CiAgICAgICAgIGlmIChlbXB0eSgkdmFsKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkY29tcGFuaWVzWyRrZXldPSRrZXk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQoJCS8vIEFsbCBkb25lLCBkbyB3ZSBoYXZlIHNvbWV0aGluZyB0byBkaXNwbGF5PwoJCWlmKCBjb3VudCgkY29tcGFuaWVzKSApewoJCQkkc2l6ZSA9IG1pbig1MCxjb3VudCgkY29tcGFuaWVzKSk7IC8vIG1heGltdW0gNTAgbGluZXMsIHRob3VnaCB0aGlzIGlzIHByb2JhYmx5IGJpZwoJCQkKCQkJJHZhbCA9IGFycmF5KCk7CgkJCWlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICl7CgkJCQkkdmFsID0gJHRoaXMtPlZhbHVlOwoJCQkJaWYoICFpc19hcnJheSggJHRoaXMtPlZhbHVlICkgKXsKCQkJCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQkKCQkJJGNzc2lkID0gJHRoaXMtPkdldENTU0lkVGFnKCk7CgkJCSRVc2VySW5wdXQgPSAkdGhpcy0+R2V0T3B0aW9uKCdVc2VySW5wdXQnLCdEcm9wZG93bicpOwoJCQlpZigkVXNlcklucHV0PT0nU2VsZWN0IExpc3Qtc2luZ2xlJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGNvbXBhbmllcywgJHZhbCwgJHNpemUsICRjc3NpZCk7CgkJCX1lbHNlaWYoJFVzZXJJbnB1dD09J1NlbGVjdCBMaXN0LW11bHRpcGxlJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGNvbXBhbmllcywgJHZhbCwgJHNpemUsICRjc3NpZCwgdHJ1ZSk7CgkJCX1lbHNlaWYoJFVzZXJJbnB1dD09J0Ryb3Bkb3duJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfXycuJHRoaXMtPklkLicnLCAkY29tcGFuaWVzLCAnLTEnLCAkdmFsKTsKCQkJfWVsc2VpZigkVXNlcklucHV0PT0nUmFkaW8gR3JvdXAnKXsKCQkJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCdmYnJwX18nLiR0aGlzLT5JZC4nJywgJGNvbXBhbmllcywgJHZhbCwnJywnICcpOwoJCQl9CgkJfQoKICAgIHJldHVybiAnJzsgLy8gZXJyb3IKCX0KCgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIC8vIHJldHVybiBhIHN0cmluZyBmb3IgZGlzcGxheWluZyBpbiB0aGUgb3B0aW9ucyBmaWVsZAogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRDb21wYW55RGlyZWN0b3J5ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NvbXBhbnlEaXJlY3RvcnknKTsKICAgIGlmKCAhJENvbXBhbnlEaXJlY3RvcnkgKQogICAgICB7CglyZXR1cm4gJG1vZC0+TGFuZygnZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZScpOwogICAgICB9CiAgICByZXR1cm4gJyc7CiAgfQoJCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGdDbXMgPSBjbXNtcygpOwogICAvLyRDb21wYW55RGlyZWN0b3J5ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCSAkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCwgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzICc7CgkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICwgYXJyYXkoKSk7CgkJJENhdGVnb3JpZXMgPSBhcnJheSgpOwoJCSRDYXRlZ29yaWVzWydBbGwnXSA9ICdBbGwnOwoJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQoJCXsKCQkJJENhdGVnb3JpZXNbJHJvd1snbmFtZSddXSA9ICRyb3dbJ25hbWUnXTsKCQl9CgkJJENhdGVnb3J5U2VsZWN0ZWQ9JHRoaXMtPkdldE9wdGlvbignQ2F0ZWdvcnknLCcnKTsKCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgLCBhcnJheSgpKTsKCQkkRmllbGREZWZzID0gYXJyYXkoKTsKCQkkRmllbGREZWZzWydub25lJ10gPSAnbm9uZSc7CgkJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKSApCgkJewoJCQkkRmllbGREZWZzWyRyb3dbJ25hbWUnXV0gPSAkcm93WyduYW1lJ107CgkJfQoJCSRGaWVsZERlZnNTZWxlY3RlZD0kdGhpcy0+R2V0T3B0aW9uKCdGaWVsZERlZnMnLCcnKTsKCQkKCQkvL2NoZWNrIGFuZCBmb3JjZSB0aGUgcmlnaHQgdHlwZQoJCWlmKCFpc19hcnJheSgkQ2F0ZWdvcnlTZWxlY3RlZCkpeyRDYXRlZ29yeVNlbGVjdGVkPWV4cGxvZGUoJywnLCRDYXRlZ29yeVNlbGVjdGVkKTt9CgkJaWYoIWlzX2FycmF5KCRGaWVsZERlZnNTZWxlY3RlZCkpeyRGaWVsZERlZnNTZWxlY3RlZD1leHBsb2RlKCcsJywkRmllbGREZWZzU2VsZWN0ZWQpO30JCQoJCQoJCQoJCSRVc2VpbnB1dD1hcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZHJvcGRvd24nKT0+J0Ryb3Bkb3duJywKCQkJICAgJG1vZC0+TGFuZygnb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJyk9PidTZWxlY3QgTGlzdC1zaW5nbGUnLAoJCQkgICAkbW9kLT5MYW5nKCdvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZScpPT4nU2VsZWN0IExpc3QtbXVsdGlwbGUnLAoJCQkgICAkbW9kLT5MYW5nKCdvcHRpb25fcmFkaW9ncm91cCcpPT4nUmFkaW8gR3JvdXAnCgkJCSAgICk7CgkJCgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZScpLCcnKSwgIAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcGlja19jYXRlZ29yaWVzJyksCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfQ2F0ZWdvcnlbXScsICRDYXRlZ29yaWVzLCAkQ2F0ZWdvcnlTZWxlY3RlZCwgNSwnJyx0cnVlKQoJCQkJKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3BpY2tfZmllbGRkZWYnKSwKCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9GaWVsZERlZnMnLCAkRmllbGREZWZzLCAkRmllbGREZWZzU2VsZWN0ZWQsIDUsJycsZmFsc2UpCgkJCQkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCcpLAoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24gKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfVXNlcklucHV0JywgJFVzZWlucHV0LCAnLTEnLCAkdGhpcy0+R2V0T3B0aW9uKCdVc2VySW5wdXQnLCcnKSkgCgkJCQkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkKICAgICAgewoJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CglpZiAoJGFzX3N0cmluZykKCSAgewoJICAgIHJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdGhpcy0+VmFsdWUpOwoJICB9CgllbHNlCgkgIHsKCSAgICByZXR1cm4gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCSAgfQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWlmICgkYXNfc3RyaW5nKQoJICB7CgkgICAgcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkgIH0KCWVsc2UKCSAgewoJICAgIHJldHVybiBhcnJheSgkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCSAgfQogICAgICB9CgkKICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ComputedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKICAgCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNyBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiQ29tcHV0ZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiQ29tcHV0ZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdDb21wdXRlZEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwogICAgJHRoaXMtPkhhc0xhYmVsID0gMTsKICAgICR0aGlzLT5OZWVkc0RpdiA9IDA7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uID0gdHJ1ZTsKICB9CgogICAgZnVuY3Rpb24gQ29tcHV0ZU9yZGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignb3JkZXInLCcxJyk7ICAgIAogICAgfQoKICAgIGZ1bmN0aW9uIENvbXB1dGUoKQogICAgewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgogICAgICAgICRtYXBJZCA9IGFycmF5KCk7CgkJJGV2YWxfc3RyaW5nID0gZmFsc2U7CgogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKCSAgICAgICAgJG1hcElkWyRvdGhlcnNbJGldLT5HZXRJZCgpXSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAkcHJvY3N0ciA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkcHJvY3N0ciwgJGZsZHMpOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykgPT0gJ251bWVyaWMnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbnVtZXJpYygkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb2NzdHIgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdGhlcnNbJHJlZl0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJvY3N0ciA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAnLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJGV2YWxfc3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3N0cmluZ19vcl9udW1iZXJfZXZhbCcsJ251bWVyaWMnKSA9PSAnY29tcHV0ZScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGZsZHNbMV0gYXMgJHRGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRtYXBJZFskdEZdKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHJlZiA9ICRtYXBJZFskdEZdOwogICAgICAgICAgICAgICAgICAgICRwcm9jc3RyID0gc3RyX3JlcGxhY2UoJyRmbGRfJy4kdEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2FuaXRpemVWYWx1ZSgkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSksJHByb2NzdHIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQkJJGV2YWxfc3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgfQoJCWVsc2UKCQkJewoJCQkkdGhpc1ZhbHVlID0gJyc7CgkJCWZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKCQkJCXsKCQkJCWlmIChpc3NldCgkbWFwSWRbJHRGXSkpCgkJCQkJewoJCQkJCSRyZWYgPSAkbWFwSWRbJHRGXTsKCQkJCQkkdGhpcy0+VmFsdWUgLj0gJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc3RyaW5nX29yX251bWJlcl9ldmFsJywnbnVtZXJpYycpICE9ICd1bnN0cmluZycpCgkJCQkJCXsKCQkJCQkJJHRoaXMtPlZhbHVlIC49ICcgJzsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCWlmICgkZXZhbF9zdHJpbmcpCgkJCXsKCQkJJHN0clRvRXZhbCA9ICJcJHRoaXMtPlZhbHVlPSRwcm9jc3RyOyI7CgkJCS8vIHNlZSBpZiB3ZSBjYW4gdHJhcCBhbiBlcnJvcgoJCQkvLyB0aGlzIGlzIGFsbCB2dWxuZXJhYmxlIHRvIGFuIGV2aWwgZm9ybSBkZXNpZ25lciwgYnV0CgkJCS8vIG5vdCBhbiBldmlsIGZvcm0gdXNlci4gCgkJCW9iX3N0YXJ0KCk7CgkJCWlmIChldmFsKCdmdW5jdGlvbiB0ZXN0Y2ZpZWxkJy5yYW5kKCkuJygpIHsnLiRzdHJUb0V2YWwuJ30nKSA9PT0gRkFMU0UpCgkJCQl7CgkJCQkkdGhpcy0+VmFsdWUgPSAkbW9kLT5MYW5nKCd0aXRsZV9iYWRfZnVuY3Rpb24nLCRwcm9jc3RyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZXZhbCgkc3RyVG9FdmFsKTsKCQkJCX0gCgkJCW9iX2VuZF9jbGVhbigpOyAgICAgICAgICAgICAgICAKCQkJfQogICAgfQoKCS8vIHN0cmlwIGFueSBwb3NzaWJsZSBQSFAgZnVuY3Rpb24gZnJvbSBzdWJtaXR0ZWQgc3RyaW5nCglmdW5jdGlvbiBzYW5pdGl6ZVZhbHVlKCR2YWwpCgl7CgkJJGFyciA9IGdldF9kZWZpbmVkX2Z1bmN0aW9ucygpOyAvLyBpbnRlcm5hbCBhbmQgdXNlcgoJCSR2YWwgPSBzdHJfcmVwbGFjZSgkYXJyWydpbnRlcm5hbCddLCcnLCR2YWwpOwoJCSR2YWwgPSBzdHJfcmVwbGFjZSgkYXJyWyd1c2VyJ10sJycsJHZhbCk7CgkJcmV0dXJuICR2YWw7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHByb2Nlc3NUeXBlID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbnVtZXJpYycpPT4nbnVtZXJpYycsCgkJICAgICRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZycpPT4nc3RyaW5nJywgJG1vZC0+TGFuZygndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJyk9Pid1bnN0cmluZycsICRtb2QtPkxhbmcoJ3RpdGxlX2NvbXB1dGUnKT0+J2NvbXB1dGUnKTsKCQkKCQkkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5maWVsZFZhbHVlVGVtcGxhdGUoKTsKCSAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnb3BlcmF0b3JzX2hlbHAnKSAuCgkgICAgICAgICc8L3RkPjwvdHI+PC90YWJsZT4nOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jb21wdXRlX3ZhbHVlJyksCiAgICAgICAgICAgIAkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ZhbHVlJywkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpLDM1LDEwMjQpLCRyZXQpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N0cmluZ19vcl9udW1iZXJfZXZhbCcsCgkJCQkgICAgJHByb2Nlc3NUeXBlLAoJCQkJICAgICR0aGlzLT5HZXRPcHRpb24oJ3N0cmluZ19vcl9udW1iZXJfZXZhbCcsJ251bWVyaWMnKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfb3JkZXInKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkgICAgJ2ZicnBfb3B0X29yZGVyJywkdGhpcy0+R2V0T3B0aW9uKCdvcmRlcicsJzEnKSw1LDEwKS4KCQkJCSAgICAkbW9kLT5MYW5nKCd0aXRsZV9vcmRlcl9oZWxwJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CountryPickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmNsYXNzIGZiQ291bnRyeVBpY2tlckZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCXZhciAkQ291bnRyaWVzOwoJCglmdW5jdGlvbiBmYkNvdW50cnlQaWNrZXJGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NvdW50cnlQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPkNvdW50cmllcyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKT0+JycsCgkJCQkkbW9kLT5MYW5nKCdBRCcpID0+J0FEJywKCQkJCSRtb2QtPkxhbmcoJ0FFJykgPT4nQUUnLAoJCQkJJG1vZC0+TGFuZygnQUYnKSA9PidBRicsCgkJCQkkbW9kLT5MYW5nKCdBRycpID0+J0FHJywKCQkJCSRtb2QtPkxhbmcoJ0FJJykgPT4nQUknLAoJCQkJJG1vZC0+TGFuZygnQUwnKSA9PidBTCcsCgkJCQkkbW9kLT5MYW5nKCdBTScpID0+J0FNJywKCQkJCSRtb2QtPkxhbmcoJ0FOJykgPT4nQU4nLAoJCQkJJG1vZC0+TGFuZygnQU8nKSA9PidBTycsCgkJCQkkbW9kLT5MYW5nKCdBUScpID0+J0FRJywKCQkJCSRtb2QtPkxhbmcoJ0FSJykgPT4nQVInLAoJCQkJJG1vZC0+TGFuZygnQVMnKSA9PidBUycsCgkJCQkkbW9kLT5MYW5nKCdBVCcpID0+J0FUJywKCQkJCSRtb2QtPkxhbmcoJ0FVJykgPT4nQVUnLAoJCQkJJG1vZC0+TGFuZygnQVcnKSA9PidBVycsCgkJCQkkbW9kLT5MYW5nKCdBWCcpID0+J0FYJywKCQkJCSRtb2QtPkxhbmcoJ0FaJykgPT4nQVonLAoJCQkJJG1vZC0+TGFuZygnQkEnKSA9PidCQScsCgkJCQkkbW9kLT5MYW5nKCdCQicpID0+J0JCJywKCQkJCSRtb2QtPkxhbmcoJ0JEJykgPT4nQkQnLAoJCQkJJG1vZC0+TGFuZygnQkUnKSA9PidCRScsCgkJCQkkbW9kLT5MYW5nKCdCRicpID0+J0JGJywKCQkJCSRtb2QtPkxhbmcoJ0JHJykgPT4nQkcnLAoJCQkJJG1vZC0+TGFuZygnQkgnKSA9PidCSCcsCgkJCQkkbW9kLT5MYW5nKCdCSScpID0+J0JJJywKCQkJCSRtb2QtPkxhbmcoJ0JKJykgPT4nQkonLAoJCQkJJG1vZC0+TGFuZygnQk0nKSA9PidCTScsCgkJCQkkbW9kLT5MYW5nKCdCTicpID0+J0JOJywKCQkJCSRtb2QtPkxhbmcoJ0JPJykgPT4nQk8nLAoJCQkJJG1vZC0+TGFuZygnQlInKSA9PidCUicsCgkJCQkkbW9kLT5MYW5nKCdCUycpID0+J0JTJywKCQkJCSRtb2QtPkxhbmcoJ0JUJykgPT4nQlQnLAoJCQkJJG1vZC0+TGFuZygnQlYnKSA9PidCVicsCgkJCQkkbW9kLT5MYW5nKCdCVycpID0+J0JXJywKCQkJCSRtb2QtPkxhbmcoJ0JZJykgPT4nQlknLAoJCQkJJG1vZC0+TGFuZygnQlonKSA9PidCWicsCgkJCQkkbW9kLT5MYW5nKCdDQScpID0+J0NBJywKCQkJCSRtb2QtPkxhbmcoJ0NDJykgPT4nQ0MnLAoJCQkJJG1vZC0+TGFuZygnQ0QnKSA9PidDRCcsCgkJCQkkbW9kLT5MYW5nKCdDRicpID0+J0NGJywKCQkJCSRtb2QtPkxhbmcoJ0NHJykgPT4nQ0cnLAoJCQkJJG1vZC0+TGFuZygnQ0gnKSA9PidDSCcsCgkJCQkkbW9kLT5MYW5nKCdDSScpID0+J0NJJywKCQkJCSRtb2QtPkxhbmcoJ0NLJykgPT4nQ0snLAoJCQkJJG1vZC0+TGFuZygnQ0wnKSA9PidDTCcsCgkJCQkkbW9kLT5MYW5nKCdDTScpID0+J0NNJywKCQkJCSRtb2QtPkxhbmcoJ0NOJykgPT4nQ04nLAoJCQkJJG1vZC0+TGFuZygnQ08nKSA9PidDTycsCgkJCQkkbW9kLT5MYW5nKCdDUicpID0+J0NSJywKCQkJCSRtb2QtPkxhbmcoJ0NVJykgPT4nQ1UnLAoJCQkJJG1vZC0+TGFuZygnQ1YnKSA9PidDVicsCgkJCQkkbW9kLT5MYW5nKCdDWCcpID0+J0NYJywKCQkJCSRtb2QtPkxhbmcoJ0NZJykgPT4nQ1knLAoJCQkJJG1vZC0+TGFuZygnQ1onKSA9PidDWicsCgkJCQkkbW9kLT5MYW5nKCdERScpID0+J0RFJywKCQkJCSRtb2QtPkxhbmcoJ0RKJykgPT4nREonLAoJCQkJJG1vZC0+TGFuZygnREsnKSA9PidESycsCgkJCQkkbW9kLT5MYW5nKCdETScpID0+J0RNJywKCQkJCSRtb2QtPkxhbmcoJ0RPJykgPT4nRE8nLAoJCQkJJG1vZC0+TGFuZygnRFonKSA9PidEWicsCgkJCQkkbW9kLT5MYW5nKCdFQycpID0+J0VDJywKCQkJCSRtb2QtPkxhbmcoJ0VFJykgPT4nRUUnLAoJCQkJJG1vZC0+TGFuZygnRUcnKSA9PidFRycsCgkJCQkkbW9kLT5MYW5nKCdFSCcpID0+J0VIJywKCQkJCSRtb2QtPkxhbmcoJ0VSJykgPT4nRVInLAoJCQkJJG1vZC0+TGFuZygnRVMnKSA9PidFUycsCgkJCQkkbW9kLT5MYW5nKCdFVCcpID0+J0VUJywKCQkJCSRtb2QtPkxhbmcoJ0ZJJykgPT4nRkknLAoJCQkJJG1vZC0+TGFuZygnRkonKSA9PidGSicsCgkJCQkkbW9kLT5MYW5nKCdGSycpID0+J0ZLJywKCQkJCSRtb2QtPkxhbmcoJ0ZNJykgPT4nRk0nLAoJCQkJJG1vZC0+TGFuZygnRk8nKSA9PidGTycsCgkJCQkkbW9kLT5MYW5nKCdGUicpID0+J0ZSJywKCQkJCSRtb2QtPkxhbmcoJ0ZYJykgPT4nRlgnLAoJCQkJJG1vZC0+TGFuZygnR0EnKSA9PidHQScsCgkJCQkkbW9kLT5MYW5nKCdHQicpID0+J0dCJywKCQkJCSRtb2QtPkxhbmcoJ0dEJykgPT4nR0QnLAoJCQkJJG1vZC0+TGFuZygnR0UnKSA9PidHRScsCgkJCQkkbW9kLT5MYW5nKCdHRicpID0+J0dGJywKCQkJCSRtb2QtPkxhbmcoJ0dGJykgPT4nR0YnLAoJCQkJJG1vZC0+TGFuZygnR0gnKSA9PidHSCcsCgkJCQkkbW9kLT5MYW5nKCdHSScpID0+J0dJJywKCQkJCSRtb2QtPkxhbmcoJ0dMJykgPT4nR0wnLAoJCQkJJG1vZC0+TGFuZygnR00nKSA9PidHTScsCgkJCQkkbW9kLT5MYW5nKCdHTicpID0+J0dOJywKCQkJCSRtb2QtPkxhbmcoJ0dQJykgPT4nR1AnLAoJCQkJJG1vZC0+TGFuZygnR1EnKSA9PidHUScsCgkJCQkkbW9kLT5MYW5nKCdHUicpID0+J0dSJywKCQkJCSRtb2QtPkxhbmcoJ0dTJykgPT4nR1MnLAoJCQkJJG1vZC0+TGFuZygnR1QnKSA9PidHVCcsCgkJCQkkbW9kLT5MYW5nKCdHVScpID0+J0dVJywKCQkJCSRtb2QtPkxhbmcoJ0dXJykgPT4nR1cnLAoJCQkJJG1vZC0+TGFuZygnR1knKSA9PidHWScsCgkJCQkkbW9kLT5MYW5nKCdISycpID0+J0hLJywKCQkJCSRtb2QtPkxhbmcoJ0hNJykgPT4nSE0nLAoJCQkJJG1vZC0+TGFuZygnSE4nKSA9PidITicsCgkJCQkkbW9kLT5MYW5nKCdIUicpID0+J0hSJywKCQkJCSRtb2QtPkxhbmcoJ0hUJykgPT4nSFQnLAoJCQkJJG1vZC0+TGFuZygnSFUnKSA9PidIVScsCgkJCQkkbW9kLT5MYW5nKCdJRCcpID0+J0lEJywKCQkJCSRtb2QtPkxhbmcoJ0lFJykgPT4nSUUnLAoJCQkJJG1vZC0+TGFuZygnSUwnKSA9PidJTCcsCgkJCQkkbW9kLT5MYW5nKCdJTScpID0+J0lNJywKCQkJCSRtb2QtPkxhbmcoJ0lOJykgPT4nSU4nLAoJCQkJJG1vZC0+TGFuZygnSU8nKSA9PidJTycsCgkJCQkkbW9kLT5MYW5nKCdJUScpID0+J0lRJywKCQkJCSRtb2QtPkxhbmcoJ0lSJykgPT4nSVInLAoJCQkJJG1vZC0+TGFuZygnSVMnKSA9PidJUycsCgkJCQkkbW9kLT5MYW5nKCdJVCcpID0+J0lUJywKCQkJCSRtb2QtPkxhbmcoJ0pFJykgPT4nSkUnLAoJCQkJJG1vZC0+TGFuZygnSk0nKSA9PidKTScsCgkJCQkkbW9kLT5MYW5nKCdKTycpID0+J0pPJywKCQkJCSRtb2QtPkxhbmcoJ0pQJykgPT4nSlAnLAoJCQkJJG1vZC0+TGFuZygnS0UnKSA9PidLRScsCgkJCQkkbW9kLT5MYW5nKCdLRycpID0+J0tHJywKCQkJCSRtb2QtPkxhbmcoJ0tIJykgPT4nS0gnLAoJCQkJJG1vZC0+TGFuZygnS0knKSA9PidLSScsCgkJCQkkbW9kLT5MYW5nKCdLTScpID0+J0tNJywKCQkJCSRtb2QtPkxhbmcoJ0tOJykgPT4nS04nLAoJCQkJJG1vZC0+TGFuZygnS1AnKSA9PidLUCcsCgkJCQkkbW9kLT5MYW5nKCdLUicpID0+J0tSJywKCQkJCSRtb2QtPkxhbmcoJ0tXJykgPT4nS1cnLAoJCQkJJG1vZC0+TGFuZygnS1knKSA9PidLWScsCgkJCQkkbW9kLT5MYW5nKCdLWicpID0+J0taJywKCQkJCSRtb2QtPkxhbmcoJ0xBJykgPT4nTEEnLAoJCQkJJG1vZC0+TGFuZygnTEInKSA9PidMQicsCgkJCQkkbW9kLT5MYW5nKCdMQycpID0+J0xDJywKCQkJCSRtb2QtPkxhbmcoJ0xJJykgPT4nTEknLAoJCQkJJG1vZC0+TGFuZygnTEsnKSA9PidMSycsCgkJCQkkbW9kLT5MYW5nKCdMUicpID0+J0xSJywKCQkJCSRtb2QtPkxhbmcoJ0xTJykgPT4nTFMnLAoJCQkJJG1vZC0+TGFuZygnTFQnKSA9PidMVCcsCgkJCQkkbW9kLT5MYW5nKCdMVScpID0+J0xVJywKCQkJCSRtb2QtPkxhbmcoJ0xWJykgPT4nTFYnLAoJCQkJJG1vZC0+TGFuZygnTFknKSA9PidMWScsCgkJCQkkbW9kLT5MYW5nKCdNQScpID0+J01BJywKCQkJCSRtb2QtPkxhbmcoJ01DJykgPT4nTUMnLAoJCQkJJG1vZC0+TGFuZygnTUQnKSA9PidNRCcsCgkJCQkkbW9kLT5MYW5nKCdNRycpID0+J01HJywKCQkJCSRtb2QtPkxhbmcoJ01IJykgPT4nTUgnLAoJCQkJJG1vZC0+TGFuZygnTUsnKSA9PidNSycsCgkJCQkkbW9kLT5MYW5nKCdNTCcpID0+J01MJywKCQkJCSRtb2QtPkxhbmcoJ01NJykgPT4nTU0nLAoJCQkJJG1vZC0+TGFuZygnTU4nKSA9PidNTicsCgkJCQkkbW9kLT5MYW5nKCdNTycpID0+J01PJywKCQkJCSRtb2QtPkxhbmcoJ01QJykgPT4nTVAnLAoJCQkJJG1vZC0+TGFuZygnTVEnKSA9PidNUScsCgkJCQkkbW9kLT5MYW5nKCdNUicpID0+J01SJywKCQkJCSRtb2QtPkxhbmcoJ01TJykgPT4nTVMnLAoJCQkJJG1vZC0+TGFuZygnTVQnKSA9PidNVCcsCgkJCQkkbW9kLT5MYW5nKCdNVScpID0+J01VJywKCQkJCSRtb2QtPkxhbmcoJ01WJykgPT4nTVYnLAoJCQkJJG1vZC0+TGFuZygnTVcnKSA9PidNVycsCgkJCQkkbW9kLT5MYW5nKCdNWCcpID0+J01YJywKCQkJCSRtb2QtPkxhbmcoJ01ZJykgPT4nTVknLAoJCQkJJG1vZC0+TGFuZygnTVonKSA9PidNWicsCgkJCQkkbW9kLT5MYW5nKCdOQScpID0+J05BJywKCQkJCSRtb2QtPkxhbmcoJ05DJykgPT4nTkMnLAoJCQkJJG1vZC0+TGFuZygnTkUnKSA9PidORScsCgkJCQkkbW9kLT5MYW5nKCdORicpID0+J05GJywKCQkJCSRtb2QtPkxhbmcoJ05HJykgPT4nTkcnLAoJCQkJJG1vZC0+TGFuZygnTkknKSA9PidOSScsCgkJCQkkbW9kLT5MYW5nKCdOTCcpID0+J05MJywKCQkJCSRtb2QtPkxhbmcoJ05PJykgPT4nTk8nLAoJCQkJJG1vZC0+TGFuZygnTlAnKSA9PidOUCcsCgkJCQkkbW9kLT5MYW5nKCdOUicpID0+J05SJywKCQkJCSRtb2QtPkxhbmcoJ05UJykgPT4nTlQnLAoJCQkJJG1vZC0+TGFuZygnTlUnKSA9PidOVScsCgkJCQkkbW9kLT5MYW5nKCdOWicpID0+J05aJywKCQkJCSRtb2QtPkxhbmcoJ09NJykgPT4nT00nLAoJCQkJJG1vZC0+TGFuZygnUEEnKSA9PidQQScsCgkJCQkkbW9kLT5MYW5nKCdQRScpID0+J1BFJywKCQkJCSRtb2QtPkxhbmcoJ1BGJykgPT4nUEYnLAoJCQkJJG1vZC0+TGFuZygnUEcnKSA9PidQRycsCgkJCQkkbW9kLT5MYW5nKCdQSCcpID0+J1BIJywKCQkJCSRtb2QtPkxhbmcoJ1BLJykgPT4nUEsnLAoJCQkJJG1vZC0+TGFuZygnUEwnKSA9PidQTCcsCgkJCQkkbW9kLT5MYW5nKCdQTScpID0+J1BNJywKCQkJCSRtb2QtPkxhbmcoJ1BOJykgPT4nUE4nLAoJCQkJJG1vZC0+TGFuZygnUFInKSA9PidQUicsCgkJCQkkbW9kLT5MYW5nKCdQUycpID0+J1BTJywKCQkJCSRtb2QtPkxhbmcoJ1BUJykgPT4nUFQnLAoJCQkJJG1vZC0+TGFuZygnUFcnKSA9PidQVycsCgkJCQkkbW9kLT5MYW5nKCdQWScpID0+J1BZJywKCQkJCSRtb2QtPkxhbmcoJ1FBJykgPT4nUUEnLAoJCQkJJG1vZC0+TGFuZygnUkUnKSA9PidSRScsCgkJCQkkbW9kLT5MYW5nKCdSTycpID0+J1JPJywKCQkJCSRtb2QtPkxhbmcoJ1JTJykgPT4nUlMnLAoJCQkJJG1vZC0+TGFuZygnUlUnKSA9PidSVScsCgkJCQkkbW9kLT5MYW5nKCdSVycpID0+J1JXJywKCQkJCSRtb2QtPkxhbmcoJ1NBJykgPT4nU0EnLAoJCQkJJG1vZC0+TGFuZygnU0InKSA9PidTQicsCgkJCQkkbW9kLT5MYW5nKCdTQycpID0+J1NDJywKCQkJCSRtb2QtPkxhbmcoJ1NEJykgPT4nU0QnLAoJCQkJJG1vZC0+TGFuZygnU0UnKSA9PidTRScsCgkJCQkkbW9kLT5MYW5nKCdTRycpID0+J1NHJywKCQkJCSRtb2QtPkxhbmcoJ1NIJykgPT4nU0gnLAoJCQkJJG1vZC0+TGFuZygnU0knKSA9PidTSScsCgkJCQkkbW9kLT5MYW5nKCdTSicpID0+J1NKJywKCQkJCSRtb2QtPkxhbmcoJ1NLJykgPT4nU0snLAoJCQkJJG1vZC0+TGFuZygnU0wnKSA9PidTTCcsCgkJCQkkbW9kLT5MYW5nKCdTTScpID0+J1NNJywKCQkJCSRtb2QtPkxhbmcoJ1NOJykgPT4nU04nLAoJCQkJJG1vZC0+TGFuZygnU08nKSA9PidTTycsCgkJCQkkbW9kLT5MYW5nKCdTUicpID0+J1NSJywKCQkJCSRtb2QtPkxhbmcoJ1NUJykgPT4nU1QnLAoJCQkJJG1vZC0+TGFuZygnU1YnKSA9PidTVicsCgkJCQkkbW9kLT5MYW5nKCdTWScpID0+J1NZJywKCQkJCSRtb2QtPkxhbmcoJ1NaJykgPT4nU1onLAoJCQkJJG1vZC0+TGFuZygnVEMnKSA9PidUQycsCgkJCQkkbW9kLT5MYW5nKCdURCcpID0+J1REJywKCQkJCSRtb2QtPkxhbmcoJ1RGJykgPT4nVEYnLAoJCQkJJG1vZC0+TGFuZygnVEcnKSA9PidURycsCgkJCQkkbW9kLT5MYW5nKCdUSCcpID0+J1RIJywKCQkJCSRtb2QtPkxhbmcoJ1RKJykgPT4nVEonLAoJCQkJJG1vZC0+TGFuZygnVEsnKSA9PidUSycsCgkJCQkkbW9kLT5MYW5nKCdUTScpID0+J1RNJywKCQkJCSRtb2QtPkxhbmcoJ1ROJykgPT4nVE4nLAoJCQkJJG1vZC0+TGFuZygnVE8nKSA9PidUTycsCgkJCQkkbW9kLT5MYW5nKCdUUCcpID0+J1RQJywKCQkJCSRtb2QtPkxhbmcoJ1RSJykgPT4nVFInLAoJCQkJJG1vZC0+TGFuZygnVFQnKSA9PidUVCcsCgkJCQkkbW9kLT5MYW5nKCdUVicpID0+J1RWJywKCQkJCSRtb2QtPkxhbmcoJ1RXJykgPT4nVFcnLAoJCQkJJG1vZC0+TGFuZygnVFonKSA9PidUWicsCgkJCQkkbW9kLT5MYW5nKCdVQScpID0+J1VBJywKCQkJCSRtb2QtPkxhbmcoJ1VHJykgPT4nVUcnLAoJCQkJJG1vZC0+TGFuZygnVUsnKSA9PidVSycsCgkJCQkkbW9kLT5MYW5nKCdVTScpID0+J1VNJywKCQkJCSRtb2QtPkxhbmcoJ1VTJykgPT4nVVMnLAoJCQkJJG1vZC0+TGFuZygnVVknKSA9PidVWScsCgkJCQkkbW9kLT5MYW5nKCdVWicpID0+J1VaJywKCQkJCSRtb2QtPkxhbmcoJ1ZBJykgPT4nVkEnLAoJCQkJJG1vZC0+TGFuZygnVkMnKSA9PidWQycsCgkJCQkkbW9kLT5MYW5nKCdWRScpID0+J1ZFJywKCQkJCSRtb2QtPkxhbmcoJ1ZHJykgPT4nVkcnLAoJCQkJJG1vZC0+TGFuZygnVkknKSA9PidWSScsCgkJCQkkbW9kLT5MYW5nKCdWTicpID0+J1ZOJywKCQkJCSRtb2QtPkxhbmcoJ1ZVJykgPT4nVlUnLAoJCQkJJG1vZC0+TGFuZygnV0YnKSA9PidXRicsCgkJCQkkbW9kLT5MYW5nKCdXUycpID0+J1dTJywKCQkJCSRtb2QtPkxhbmcoJ1lFJykgPT4nWUUnLAoJCQkJJG1vZC0+TGFuZygnWVQnKSA9PidZVCcsCgkJCQkkbW9kLT5MYW5nKCdZVScpID0+J1lVJywKCQkJCSRtb2QtPkxhbmcoJ1pBJykgPT4nWkEnLAoJCQkJJG1vZC0+TGFuZygnWk0nKSA9PidaTScsCgkJCQkkbW9kLT5MYW5nKCdaVycpID0+J1pXJwoJCQkJKTsKCQl9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsdWUsJHRoaXMtPkNvdW50cmllcyk7CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAgICAgICAgICRodG1sNSA9ICcnOwoKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScmJiAkdGhpcy0+SXNSZXF1aXJlZCgpKSAKCQl7CgkJCSRodG1sNSA9ICcgcmVxdWlyZWQnOwogICAgICAgICAgICAgICAgfQoJCXVuc2V0KCR0aGlzLT5Db3VudHJpZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHRoaXMtPkNvdW50cmllcyA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCR0aGlzLT5Db3VudHJpZXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR0aGlzLT5Db3VudHJpZXMgPSBhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSwkdGhpcy0+Q291bnRyaWVzKTsKCQkJfQoKCQlpZiAoISAkdGhpcy0+SGFzVmFsdWUoKSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2NvdW50cnknLCcnKSAhPSAnJykKCQkgIHsKCQkgICR0aGlzLT5TZXRWYWx1ZSgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2NvdW50cnknLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+Q291bnRyaWVzLCAtMSwKICAgICAgICAgJHRoaXMtPlZhbHVlLCAkaHRtbDUuJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlrc29ydCgkdGhpcy0+Q291bnRyaWVzKTsKCgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9jb3VudHJ5JywKICAgICAgICAgICAgCQkkdGhpcy0+Q291bnRyaWVzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9jb3VudHJ5JywnJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJE1vbnRoczsKCQoJZnVuY3Rpb24gZmJEYXRlUGlja2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsJCgkKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkdGhpcy0+VHlwZSA9ICdEYXRlUGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPk1vbnRocyA9IGFycmF5KAoJCQknJz0+JycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfamFudWFyeScpPT4xLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2ZlYnJ1YXJ5Jyk9PjIsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfbWFyY2gnKT0+MywKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9hcHJpbCcpPT40LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX21heScpPT41LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2p1bmUnKT0+NiwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9qdWx5Jyk9PjcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfYXVndXN0Jyk9PjgsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfc2VwdGVtYmVyJyk9PjksCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfb2N0b2JlcicpPT4xMCwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9ub3ZlbWJlcicpPT4xMSwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9kZWNlbWJlcicpPT4xMik7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gZmFsc2U7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJcmV0dXJuICRtb2QtPkxhbmcoImRhdGVfcmFuZ2UiLGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpICwKICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpKSkuCiAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpIT09Jy0xJz8nICgnLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykuJyknOicnKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKICAgICAgICREYXlzID0gYXJyYXkoJyc9PicnKTsKICAgICAgIGZvciAoJGk9MTskaTwzMjskaSsrKQogICAgICAgICB7CiAgICAgICAgIAkkRGF5c1skaV09JGk7CiAgICAgICAgIH0KICAgICAgICRZZWFyID0gYXJyYXkoJyc9PicnKTsKCSAgICRzdHkgPSAkdGhpcy0+R2V0T3B0aW9uKCdzdGFydF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10tMTApKTsKCSAgIGlmICgkc3R5ID09IC0xKQoJCQl7CgkJCSRzdHkgPSAkdG9kYXlbJ3llYXInXTsKCQkJfQogICAgICAgZm9yICgkaT0kc3R5OyRpPCR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSsxOyRpKyspCiAgICAgICAgIHsKICAgICAgICAgCSRZZWFyWyRpXT0kaTsKICAgICAgICAgfQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdXNlcl9vcmRlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfb3JkZXInLCdkLW0teScpOwoJCQkkYXJyVXNlck9yZGVyID0gZXhwbG9kZSgiLSIsICR1c2VyX29yZGVyKTsKCQkJCgkJCSR0b2RheVsnbWRheSddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoYXJyYXlfc2VhcmNoKCJkIiwgJGFyclVzZXJPcmRlcikpOwoJCQkkdG9kYXlbJ21vbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoYXJyYXlfc2VhcmNoKCJtIiwgJGFyclVzZXJPcmRlcikpOwoJCQkkdG9kYXlbJ3llYXInXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKGFycmF5X3NlYXJjaCgieSIsICRhcnJVc2VyT3JkZXIpKTsKCQkJfQoJCWVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfYmxhbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSR0b2RheVsnbWRheSddPScnOwoJCQkkdG9kYXlbJ21vbiddPScnOwoJCQkkdG9kYXlbJ3llYXInXT0nJzsKCQkJfQoJCWVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykgIT0gJy0xJykKCQkgICB7CiAgICAgICAgICR0b2RheVsneWVhciddID0gJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF95ZWFyJywnLTEnKTsKICAgICAgICAgfQoKICAgICAgJHJldCA9IGFycmF5KCk7CiAgICAgICRkYXkgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKICAgICAgJGRheS0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICREYXlzLCAtMSwKICAgICAgICAgICR0b2RheVsnbWRheSddLCAkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfZGF5JykpOwogCQkkZGF5LT50aXRsZSA9ICRtb2QtPkxhbmcoJ2RheScpOwogCQkkZGF5LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfZGF5JykuJyI+Jy4kbW9kLT5MYW5nKCdkYXknKS4nPC9sYWJlbD4nOwogCiAgICAgICRtb24gPSBuZXcgc3RkQ2xhc3MoKTsKCSRtb250aF9mb3JtYXQgPSAkdGhpcy0+R2V0T3B0aW9uKCdtb250aF9pbnB1dCcsJ3QnKTsKCSRtb250aHMgPSAkdGhpcy0+TW9udGhzOwoJaWYoICRtb250aF9mb3JtYXQgIT0gJ3QnICkKCXsKCQkkbW9udGhzID0gYXJyYXkoKTsKCQlmb3JlYWNoKCR0aGlzLT5Nb250aHMgYXMgJG5hbWU9PiR2YWx1ZSkKCQl7CgkJCWlmKCAkbW9udGhfZm9ybWF0ID09ICduJyApCgkJCXsKCQkJCSRtb250aHNbJHZhbHVlXSA9ICR2YWx1ZTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRtb250aHNbJHZhbHVlLiIgLSAiLiRuYW1lXSA9ICR2YWx1ZTsKCQkJfQoJCX0KCX0KICAgICAgJG1vbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRtb250aHMsIC0xLAogICAgICAgICAgJHRvZGF5Wydtb24nXSwgJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX21vbnRoJykpOwogCQkkbW9uLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21vbicpOwogCQkkbW9uLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbW9udGgnKS4nIj4nLiRtb2QtPkxhbmcoJ21vbicpLic8L2xhYmVsPic7CiAKICAgICAgJHlyID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICR5ci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRZZWFyLCAtMSwKICAgICAgICAgJHRvZGF5Wyd5ZWFyJ10sJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX3llYXInKSk7CiAgICAgICR5ci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX3llYXInKS4nIj4nLiRtb2QtPkxhbmcoJ3llYXInKS4nPC9sYWJlbD4nOwogICAgICAkeXItPnRpdGxlID0gJG1vZC0+TGFuZygneWVhcicpOwoKCQkkb3JkZXIgPSBhcnJheSgiZCIgPT4gJGRheSwgIm0iID0+ICRtb24sICJ5IiA9PiAkeXIpOwoJCSR1c2VyX29yZGVyID0gJHRoaXMtPkdldE9wdGlvbignZGF0ZV9vcmRlcicsJ2QtbS15Jyk7CgkJJGFyclVzZXJPcmRlciA9IGV4cGxvZGUoIi0iLCAkdXNlcl9vcmRlcik7CgkJZm9yZWFjaCAoJGFyclVzZXJPcmRlciBhcyAka2V5KQoJCQl7CgkJCWFycmF5X3B1c2goJHJldCwgJG9yZGVyWyRrZXldKTsKCQkJfQoKICAgICAgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkvLyBPcmlnaW5hbDogIERheSwgTW9udGgsIFllYXIKCQkJLy8kdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMCksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCS8vIE1vbnRoLCBEYXksIFllYXIKCQkJLy8kdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMSksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCSR1c2VyX29yZGVyID0gJHRoaXMtPkdldE9wdGlvbignZGF0ZV9vcmRlcicsJ2QtbS15Jyk7CgkJCSRhcnJVc2VyT3JkZXIgPSBleHBsb2RlKCItIiwgJHVzZXJfb3JkZXIpOwoJCQkkdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsCgkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZShhcnJheV9zZWFyY2goIm0iLCAkYXJyVXNlck9yZGVyKSksCgkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZShhcnJheV9zZWFyY2goImQiLCAkYXJyVXNlck9yZGVyKSksCgkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZShhcnJheV9zZWFyY2goInkiLCAkYXJyVXNlck9yZGVyKSkgKTsKCQkJJHJldCA9IGRhdGUoJHRoaXMtPkdldE9wdGlvbignZGF0ZV9mb3JtYXQnLCdqIEYgWScpLCAkdGhlRGF0ZSk7CgkJCQoJCQkkcmV0ID0gc3RyX3JlcGxhY2UoYXJyYXkoIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIiksCgkJCQlhcnJheSgKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX2phbnVhcnknKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX2ZlYnJ1YXJ5JyksCgkJCQkJJG1vZC0+TGFuZygnZGF0ZV9tYXJjaCcpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfYXByaWwnKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX21heScpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfanVuZScpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfanVseScpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfYXVndXN0JyksCgkJCQkJJG1vZC0+TGFuZygnZGF0ZV9zZXB0ZW1iZXInKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX29jdG9iZXInKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX25vdmVtYmVyJyksCgkJCQkJJG1vZC0+TGFuZygnZGF0ZV9kZWNlbWJlcicpCgkJCQkJKSwKCQkJCSRyZXQpOwoJCQkkcmV0ID0gaHRtbF9lbnRpdHlfZGVjb2RlKCRyZXQsIEVOVF9RVU9URVMsICdVVEYtOCcpOwoJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgIAkJJHRvZGF5ID0gZ2V0ZGF0ZSgpOwoJCSRvcHRzID0gYXJyYXkoJG1vZC0+TGFuZygnb3B0X21vbnRoX2lucHV0X3RleHQnKT0+J3QnLCRtb2QtPkxhbmcoJ29wdF9tb250aF9pbnB1dF9udW1iZXInKT0+J24nLCRtb2QtPkxhbmcoJ29wdF9tb250aF9pbnB1dF9ib3RoJyk9PidiJyk7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGF0ZV9mb3JtYXQnKSwKICAgICAgICAgICAgCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGF0ZV9mb3JtYXQnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfZm9ybWF0JywnaiBGIFknKSwyNSwyNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX2Zvcm1hdCcpKQoJCSAgICApLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRlX29yZGVyJyksCgkJCQkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RhdGVfb3JkZXInLAoJCQkJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfb3JkZXInLCdkLW0teScpLDUsNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX29yZGVyJykpCgkJCSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21vbnRoX2lucHV0JyksCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9tb250aF9pbnB1dCcsCgkJCQkJJG9wdHMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdtb250aF9pbnB1dCcsJ3QnKSkKCQkJKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2JsYW5rJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9kZWZhdWx0X2JsYW5rJywnMCcpLgoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9ibGFuaycsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfYmxhbmsnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCcpKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zdGFydF95ZWFyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N0YXJ0X3llYXInLAogICAgICAgICAgICAJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzdGFydF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10tMTApKSwxMCwxMCkpLAoJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VuZF95ZWFyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VuZF95ZWFyJywKICAgICAgICAgICAgCQkgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpLDEwLDEwKSksCgkJICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF95ZWFyJyksCiAgICAgICAgICAgIAkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfeWVhcicsCiAgICAgICAgICAgIAkJICAgICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJyksMTAsMTApLCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJykpCiAgICAgICAgICkKICAgICAgKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCiAgZnVuY3Rpb24gSGFzVmFsdWUoJGRlbnlfYmxhbmtfcmVzcG9uc2VzPWZhbHNlKQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJaWYgKCR0aGlzLT5HZXRBcnJheVZhbHVlKDEpID09ICcnIHx8CgkgIAkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKSA9PSAnJyB8fAoJICAgICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpID09ICcnKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25EYXRhYmFzZSc7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5IaWRlTGFiZWwgPSAxOwoJCSR0aGlzLT5OZWVkc0RpdiA9IDA7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAnJzsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAnJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwJCgkJCSR0aGlzLT5FbmNvZGVSZXFJZCgkdGhpcy0+VmFsdWUpKTsKCX0KCglmdW5jdGlvbiBTZXRBcHByb3ZhbE5hbWUoJG5hbWUpCgl7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAkbmFtZTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkgcmV0dXJuICcnOwoJfQoJCglmdW5jdGlvbiBEZWNvZGVSZXFJZCgkdGhlVmFsKQoJewoJCSR0bXAgPSBiYXNlNjRfZGVjb2RlKCR0aGVWYWwpOwoJCSR0bXAyID0gc3RyX3JlcGxhY2Uoc2Vzc2lvbl9pZCgpLCcnLCR0bXApOwoJCWlmIChzdWJzdHIoJHRtcDIsMCwxKSA9PSAnXycpCgkJCXsKCQkJcmV0dXJuIHN1YnN0cigkdG1wMiwxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gLTE7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRW5jb2RlUmVxSWQoJHJlcV9pZCkKCXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShzZXNzaW9uX2lkKCkuJ18nLiRyZXFfaWQpOwoJfQoJCgkKCWZ1bmN0aW9uIFNldFZhbHVlKCR2YWwpCgl7CgoJCSRkZWN2YWwgPSBiYXNlNjRfZGVjb2RlKCR2YWwpOwogICAKCQlpZiAoJHZhbCA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gbm8gdmFsdWUgc2V0LCBzbyB3ZSdsbCBsZWF2ZSB2YWx1ZSBhcyBmYWxzZQoJCQl9CgkJZWxzZWlmIChzdHJwb3MoJGRlY3ZhbCwnXycpID09PSBmYWxzZSkKCQkJewoJCQkvLyB1bmVuY3J5cHRlZCB2YWx1ZSwgY29taW5nIGluIGZyb20gcHJldmlvdXMgcmVzcG9uc2UKCQkJJHRoaXMtPlZhbHVlID0gJHZhbDsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyBlbmNyeXB0ZWQgdmFsdWUgY29taW5nIGluIGZyb20gYSBmb3JtLCBzbyB3ZSdsbCB1cGRhdGUuCgkJCSR0aGlzLT5WYWx1ZSA9ICR0aGlzLT5EZWNvZGVSZXFJZCgkdmFsKTsKCQkJfQoJfQoJCglmdW5jdGlvbiBnZXRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcikKCXsKICAgICAgcmV0dXJuIC0xOwogICB9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAgICRhZHYgPSBhcnJheSgpOwogICAgICBhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInKSwKICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JuZCcsJzAnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3J5cHQnLCcwJykuCiAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hhc2hfc29ydCcsJzAnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkMScsJycpLgogICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQyJywnJykuCiAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NvcnRmaWVsZDMnLCcnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkNCcsJycpLgogICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQ1JywnJykpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgogICAgLy8gV3JpdGUgVG8gdGhlIERhdGFiYXNlCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJbGlzdCgkcmVzLCRtc2cpID0gJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5LCR0aGlzKTsKCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1zZyk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDeliverToEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qIA0KICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4NCiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyDQogICANCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQoqLw0KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvRGlzcG9zaXRpb25FbWFpbEJhc2UuY2xhc3MucGhwJyk7DQoNCmNsYXNzIGZiRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2Ugew0KDQoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQ0KCXsNCiAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7DQogICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJzsNCiAgICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsNCgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOw0KCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoDQogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnKT0+J2VtYWlsJywNCiAgICAgICAgICAgICk7DQogICAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOw0KCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7DQoJfQ0KDQoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpDQoJew0KICAgICAgICAgICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQogICAgICAgICAgICAgICAgJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOw0KICAgICAgICAgICAgICAgICR2YWwgPSAnJzsNCiAgICAgICAgICAgICAgICAkaHRtbDUgPSAnJzsNCg0KICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRodG1sNSA9ICcgcGxhY2Vob2xkZXI9IicuJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLiciJzsNCgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgew0KCQkgICAgICAgICAgICAgICAgJGh0bWw1IC49ICcgcmVxdWlyZWQnOw0KCQkgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpID09IDEpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsDQoJCQlodG1sc3BlY2lhbGNoYXJzKCR2YWwsIEVOVF9RVU9URVMpLA0KICAgICAgICAgICAgCQkyNSwgMTI4LCAkanMuJGh0bWw1LiR0aGlzLT5HZXRDU1NJZFRhZygpLCdlbWFpbCcpOw0KCX0NCg0KCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkNCgl7DQogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkgIT0gZmFsc2UpDQogICAgICAgICB7DQoJCSAgIHJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPlZhbHVlLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7DQoJCSAgIH0NCgkJZWxzZQ0KCQkgICB7DQogICAgICAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7DQogICAgICAgICB9DQoJfQ0KDQoNCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsNCgl9DQoNCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpDQoJew0KCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KCQlsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOw0KCQlhcnJheV9wdXNoKCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLDI1LDEwMjQpKSk7DQoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnKSkpOw0KCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7DQoJfQ0KDQoJZnVuY3Rpb24gVmFsaWRhdGUoKQ0KCXsNCg0KICAJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOw0KICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7DQoJCSRyZXN1bHQgPSB0cnVlOw0KCQkkbWVzc2FnZSA9ICcnOw0KCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KICAgIA0KICAgIGlmICgNCiAgICAgICAgICAkdGhpcy0+VmFsdWUgIT09IGZhbHNlDQovLyAgICAgICAgICAmJiAhIHByZWdfbWF0Y2goDQovLyAgICAgICAgICAgICAgICAgIAkJCQkJKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCAnMCcpID09IDAgPyAkbW9kLT5lbWFpbF9yZWdleCA6ICRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCANCi8vICAgICAgICAgICAgICAgICAgCQkJCQkkdGhpcy0+VmFsdWUNCi8vICAgICAgICAgICAgICAgICAgCQkJCSkNCgkJCQkJJiYgIWVtYWlsX3ZhbGlkYXRvcjo6aXNfZW1haWwoJHRoaXMtPlZhbHVlKQ0KICAgICAgICApDQoNCgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsNCgl9DQp9DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGlyZWN0b3InOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIGNvdW50QWRkcmVzc2VzKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwogICAgICAgICAgICAgICAgJGh0bWw1ID0gJyc7CgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJCXsKCQkJJGh0bWw1ID0gJyByZXF1aXJlZCc7CiAgICAgICAgICAgICAgICB9CgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCSRzdWJqZWN0cyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCAkaHRtbDUuJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdkZXN0aW5hdGlvbl9jb3VudCcsJG51bSk7CiAgICAgICAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50QWRkcmVzc2VzKCk7CgkJaWYgKCR0aGlzLT5hZGRyZXNzQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+YWRkcmVzc0NvdW50ICs9ICR0aGlzLT5hZGRyZXNzQWRkOwoJCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgbW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJqZWN0X292ZXJyaWRlJywnMCcpLgoJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N1YmplY3Rfb3ZlcnJpZGUnLAogICAgICAgICAgICAgICAgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3N1YmplY3Rfb3ZlcnJpZGUnLCcwJykpLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJykpKTsJCQoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJlbWFpbCBzdWJqZWN0IiBmaWVsZAogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpOwoKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdWJqZWN0X292ZXJyaWRlJywnMCcpID09ICcxJyAmJiAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJykgIT0gJycpCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0Jyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJCSRzdWJqZWN0KTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgoJCWlmIChjb3VudCgkb3B0KSA9PSAwKQoJCQl7CgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CgkJCX0KCQlsaXN0KCRydiwkbWVzcykgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpOwoJCWlmICghJHJ2KQoJCQl7CiAgICAJICAgICRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0gJG1lc3M7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKCQkgICBsaXN0KCRydiwkbWVzcykgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJG9wdFskaV0pOwoJCSAgIGlmICghJHJ2KQoJCQkJewoJCQkJJHJldCA9IGZhbHNlOwoJCQkJJG1lc3NhZ2UgLj0gJG1lc3M7CiAgICAJICAgICAgICB9CgkJCX0KCiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQogICAgCiAgICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgICB7CiAgICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgICRyZXN1bHQgPSB0cnVlOwogICAgICAgICAkbWVzc2FnZSA9ICcnOwoKICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49CiRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwogICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXN1bHQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCXZhciAkYWRkcmVzc0NvdW50OwoJdmFyICRhZGRyZXNzQWRkOwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2FkZHJlc3MnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9hZGRyZXNzJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmFkZHJlc3NBZGQgPSAxOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJCSRkZWxjb3VudCA9IDA7CgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCgkJCXsKCQkJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycsJycpOwoJCSRyZXQ9ICRtb2QtPkxhbmcoJ3RvJykuIjogIjsKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICBpZiAoY291bnQoJG9wdCk+MSkKCQkgICAgICB7CgkJICAgICAgJHJldC49IGNvdW50KCRvcHQpOwoJCSAgICAgICRyZXQuPSAiICIuJG1vZC0+TGFuZygncmVjaXBpZW50cycpOwoJCSAgICAgIH0KCQkgIGVsc2UKCQkgICAgICB7CgkJICAgICAgJHJldC49ICRvcHRbMF07CgkJICAgICAgfQoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkcmV0IC49ICRvcHQ7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkcmV0Lj0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKICAgICAgICAgIH0KICAgICAgICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gY291bnRBZGRyZXNzZXMoKQoJewoJCQkkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdG1wLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSAgY2xhc3M9InBhZ2V0YWJsZSBtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPmFkZHJlc3NDb3VudD4xPyR0aGlzLT5hZGRyZXNzQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJyksJGRlc3RzKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkkb3B0ID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgkJaWYgKCRvcHQgPT09IGZhbHNlIHx8IGNvdW50KCRvcHQpID09IDApCgkJCXsKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKCQkJfQoJCWxpc3QoJHJ2LCRtZXNzKSA9ICR0aGlzLT52YWxpZGF0ZUVtYWlsQWRkcigkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSk7CgkJaWYgKCEkcnYpCgkJCXsKICAgIAkgICAgJHJldCA9IGZhbHNlOwogICAgICAgICAgICAkbWVzc2FnZSAuPSAkbWVzczsKCQkJfQogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvcHQpOyRpKyspCiAgICAJICAgewoJCSAgIGxpc3QoJHJ2LCRtZXNzKSA9ICR0aGlzLT52YWxpZGF0ZUVtYWlsQWRkcigkb3B0WyRpXSk7CgkJICAgaWYgKCEkcnYpCgkJCQl7CgkJCQkkcmV0ID0gZmFsc2U7CgkJCQkkbWVzc2FnZSAuPSAkbWVzczsKICAgIAkgICAgICAgIH0KCQkJfQogICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsgICAgICAgCiAgICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJJHRoaXMtPklzRW1haWxEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCiAgfQoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgfQoKICBmdW5jdGlvbiBUZW1wbGF0ZVN0YXR1cygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgICB7CiAgCQlyZXR1cm4gJG1vZC0+TGFuZygnZW1haWxfdGVtcGxhdGVfbm90X3NldCcpOwogICAgICB9CiAgfQoKICAvLyBvdmVycmlkZSBtZSEKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBTZXRGcm9tQWRkcmVzcygpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBTZXRGcm9tTmFtZSgpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBTZXRSZXBseVRvTmFtZSgpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBTZXRSZXBseVRvQWRkcmVzcygpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKICBmdW5jdGlvbiBTZW5kRm9ybSgkZGVzdGluYXRpb25fYXJyYXksICRzdWJqZWN0KQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCiAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLDEpKQogICAgIHsKICAgICRkYiA9JG1vZC0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdzZWxlY3QgY291bnQoc3JjX2lwKSBhcyBzZW50IGZyb20gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfaXBfbG9nIHdoZXJlIHNyY19pcD0/IEFORCBzZW50X3RpbWUgPiA/JzsKCiAgICAkZGJyZXN1bHQgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddLAogICAgICAgICAgICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpIC0gMzYwMCksIiciKSkpOwoKICAgIGlmICgkZGJyZXN1bHQgPiA5KQogICAgICB7CiAgICAgIC8vIHRvbyBtYW55IGZyb20gdGhpcyBJUCBhZGRyZXNzLiBLaWxsIGl0LgogICAgICAgICRtc2cgPSAnPGhyIC8+Jy4kbW9kLT5MYW5nKCdzdXNwZWN0ZWRfc3BhbScpLiAnPGhyIC8+JzsKICAgICAgYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwkbW9kLT5MYW5nKCdsb2dfc3VzcGVjdGVkX3NwYW0nLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSk7CiAgICAgIHJldHVybiBhcnJheShmYWxzZSwkbXNnKTsKICAgICAgfQogICAgfQoKICAgICRtYWlsID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwogICAgaWYgKCRtYWlsID09IEZBTFNFKQogICAgICB7CiAgJG1zZyA9ICcnOwogIGlmICghICRtb2QtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywwKSkKICAgIHsKICAgICAgJG1zZyA9ICc8aHIgLz4nLiRtb2QtPkxhbmcoJ21pc3NpbmdfY21zX21haWxlcicpLiAnPGhyIC8+JzsKICAgIH0KICBhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCRtb2QtPkxhbmcoJ21pc3NpbmdfY21zX21haWxlcicpKTsKICByZXR1cm4gYXJyYXkoZmFsc2UsJG1zZyk7CiAgICAgIH0KICAgICRtYWlsLT5yZXNldCgpOwogICAgCiAgICAkcnQgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9yZXBseV90b19hZGRyZXNzJywnJyk7CiAgICAkcm4gPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9yZXBseV90b19uYW1lJywnJyk7CiAgICBpZiAoZW1wdHkoJHJuKSkKICAgICAgewogICAgICAkcm4gPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCcnKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5TZXRSZXBseVRvQWRkcmVzcygpICYmICFlbXB0eSgkcnQpKQogICAgICB7CiAgICAgICRtYWlsLT5BZGRSZXBseVRvKCRydCwkdGhpcy0+U2V0RnJvbU5hbWUoKT8kcm46JycpOwogICAgICB9CiAgICAKICAgIGlmICgkdGhpcy0+U2V0RnJvbUFkZHJlc3MoKSkKICAgICAgewogIAkgICAkbWFpbC0+U2V0RnJvbSgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+U2V0RnJvbU5hbWUoKSkKICAgICAgewogICAgICAkbWFpbC0+U2V0RnJvbU5hbWUoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwogICAgICB9CgoKCSRjYyA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2NjX2FkZHJlc3MnLCcnKTsKCWlmICghZW1wdHkoJGNjKSkKCQl7CgkJJHVzZWJjYyA9ICR0aGlzLT5HZXRPcHRpb24oJ3VzZV9iY2MnLDApOwoJCSRzdWJfYWRzID0gZXhwbG9kZSgnLCcsJGNjLicsJyk7CgkJZm9yZWFjaCAoJHN1Yl9hZHMgYXMgJHRoaXNfYWQpCgkJCXsKCQkJaWYgKCFlbXB0eSgkdGhpc19hZCkpCgkJCQl7CgkJCQlpZiAoJHVzZWJjYyA9PSAxKQoJCQkJCXsKCQkJCQkkbWFpbC0+QWRkQkNDKHRyaW0oJHRoaXNfYWQpKTsJCgkJCQkJfQoJCQkJZWxzZQoJCQkJCXsKCQkJCQkkbWFpbC0+QWRkQ0ModHJpbSgkdGhpc19hZCkpOwkKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkKICAgICRtYWlsLT5TZXRDaGFyU2V0KCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSk7CgogICAgJG1lc3NhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpOwogICAgJGh0bWxlbWFpbCA9ICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpID09ICcxJyk7CglpZiAoJHRoaXMtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGZvcm0tPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywkbW9kLT5MYW5nKCd0aXRsZV9jb25maXJtYXRpb25fdXJsJykpOwoJCX0KICAgIGlmICgkaHRtbGVtYWlsKQogICAgIHsKICAgICRtYWlsLT5Jc0hUTUwodHJ1ZSk7CiAgICB9CiAgIGlmIChzdHJsZW4oJG1lc3NhZ2UpIDwgMSkKICAgICAgewogICAgJG1lc3NhZ2UgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UpOwogICAgICBpZiAoJGh0bWxlbWFpbCkKICAgICAgIHsKICAgICAgJG1lc3NhZ2UyID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKHRydWUpOwogICAgICB9CiAgICAgIH0KICAgIGVsc2VpZiAoJGh0bWxlbWFpbCkKICAgICAgewogICAgJG1lc3NhZ2UyID0gJG1lc3NhZ2U7CiAgICB9CiAgICAkZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCRodG1sZW1haWwpOwoKICAgICR0aGVGaWVsZHMgPSAkZm9ybS0+R2V0RmllbGRzKCk7CgojIyMgZml4IGJ5IGZvYWx5KiAKICAgICMjIyByZS1maXggYnkgSm9Nb3JnCgogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoZUZpZWxkcyk7JGkrKykKICAgIHsKICAgICAgaWYgKAogICAgICAgICAgICBzdHJ0b2xvd2VyKGdldF9jbGFzcygkdGhlRmllbGRzWyRpXSkpID09ICdmYmZpbGV1cGxvYWRmaWVsZCcKICAgICAgICAgICAgJiYgISR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ3N1cHByZXNzX2F0dGFjaG1lbnQnKQogICAgICAgICAgICAmJiAhJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnKQogICAgICAgICkKICAgICAgewogICAgICAgIC8vIHdlIGhhdmUgYSBmaWxlIHdlIHdpc2ggdG8gYXR0YWNoCiAgICAgICAgJHRoaXNBdHQgPSAkdGhlRmllbGRzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CiAgICAgICAgCiAgICAgICAgJGZpbGVwYXRoID0gY21zX2pvaW5fcGF0aCggJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignZmlsZV9kZXN0aW5hdGlvbicpICk7CiAgICAgICAgCiAgICAgICAgJGZ1bGxmaWxlbmFtZSA9IGNtc19qb2luX3BhdGgoJGZpbGVwYXRoLCAkdGhpc0F0dCk7CiAgICAgICAgCiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnZmluZm9fb3BlbicpKQogICAgICAgIHsKICAgICAgICAgICRmaW5mbyA9IGZpbmZvX29wZW4oRklMRUlORk9fTUlNRSk7IC8vIHJldHVybiBtaW1lIHR5cGUgYWxhIG1pbWV0eXBlIGV4dGVuc2lvbgogICAgICAgICAgJHRoaXNUeXBlID0gZmluZm9fZmlsZSgkZmluZm8sICRmdWxsZmlsZW5hbWUpOwogICAgICAgICAgZmluZm9fY2xvc2UoJGZpbmZvKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZnVuY3Rpb25fZXhpc3RzKCdtaW1lX2NvbnRlbnRfdHlwZScpKQogICAgICAgIHsKICAgICAgICAgICR0aGlzVHlwZSA9IG1pbWVfY29udGVudF90eXBlKCRmdWxsZmlsZW5hbWUpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXNUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CiAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICBpZiAoISAkbWFpbC0+QWRkQXR0YWNobWVudCgkZnVsbGZpbGVuYW1lLCAkdGhpc0F0dCwgImJhc2U2NCIsICR0aGlzVHlwZSkpCiAgICAgICAgewogICAgICAgICAgLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KICAgICAgICAgIGF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKICAgICAgICAgIHJldHVybiBhcnJheSgkcmVzLCAkbW9kLT5MYW5nKCd1cGxvYWRfYXR0YWNoX2Vycm9yJywKICAgICAgICAgIGFycmF5KCRmaWxlcGF0aCwgJGZpbGVwYXRoICwkdGhpc1R5cGUpKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiMjIyBmaXggYnkgZm9hbHkqCiAgIyMjIGVuZCBvZiByZS1maXggYnkgSm9Nb3JnCgkKICAgICRtZXNzYWdlID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAkc3ViamVjdCA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkc3ViamVjdCApOwogICAgJG1haWwtPlNldFN1YmplY3QoJHN1YmplY3QpOwogICAgIGlmICgkaHRtbGVtYWlsKQogICAgIHsKICAgICRtZXNzYWdlMiA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRtZXNzYWdlMik7CiAgICAkbWFpbC0+U2V0QWx0Qm9keShzdHJpcF90YWdzKGh0bWxfZW50aXR5X2RlY29kZSgkbWVzc2FnZSkpKTsKICAgICRtYWlsLT5TZXRCb2R5KCRtZXNzYWdlMik7CiAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgJG1haWwtPlNldEJvZHkoaHRtbF9lbnRpdHlfZGVjb2RlKCRtZXNzYWdlKSk7CiAgICB9CiAgICAvLyBzZW5kIHRoZSBtZXNzYWdlLi4uCiAgICBpZiAoISBpc19hcnJheSgkZGVzdGluYXRpb25fYXJyYXkpKQogICAgICB7CiAgJGRlc3RpbmF0aW9uX2FycmF5ID0gYXJyYXkoJGRlc3RpbmF0aW9uX2FycmF5KTsKICAgICAgfQogICAgZm9yZWFjaCAoJGRlc3RpbmF0aW9uX2FycmF5IGFzICR0aGlzRGVzdCkKICAgICAgewoJCWlmIChzdHJwb3MoJHRoaXNEZXN0LCcsJykgIT09IGZhbHNlKQoJCQl7CgkJCSRzdWJfYWRzID0gZXhwbG9kZSgnLCcsJHRoaXNEZXN0KTsKCQkJZm9yZWFjaCAoJHN1Yl9hZHMgYXMgJHRoaXNfYWQpCgkJCQl7CgkJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2luZycsJ3RvJykgPT0gJ3RvJykKCQkJCQkkbWFpbC0+QWRkQWRkcmVzcyh0cmltKCR0aGlzX2FkKSk7CgkJCQllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzaW5nJykgPT0gJ2NjJykKCQkJCQkkbWFpbC0+QWRkQ0ModHJpbSgkdGhpc19hZCkpOwoJCQkJZWxzZQoJCQkJCSRtYWlsLT5BZGRCQ0ModHJpbSgkdGhpc19hZCkpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzaW5nJywndG8nKSA9PSAndG8nKQoJCQkJJG1haWwtPkFkZEFkZHJlc3ModHJpbSgkdGhpc0Rlc3QpKTsKCQkJZWxzZSBpZiAoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2luZycpID09ICdjYycpCgkJCQkkbWFpbC0+QWRkQ0ModHJpbSgkdGhpc0Rlc3QpKTsKCQkJZWxzZQoJCQkJJG1haWwtPkFkZEJDQyh0cmltKCR0aGlzRGVzdCkpOwoJCQl9CiAgICAgIH0KCiAgICAkcmVzID0gJG1haWwtPlNlbmQoKTsKICAgIGlmICgkcmVzID09PSBmYWxzZSkKICAgICAgewogIAkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRtYWlsLT5HZXRFcnJvckluZm8oKSkpOwogICAgICB9CiAgICBlbHNlIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLDEpKQogICAgIHsKICAgICRkYiA9ICRtb2QtPkdldERiKCk7CgogICAgJHJlY19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2lwX2xvZyAoc2VudF9pZCwgc3JjX2lwLCBzZW50X3RpbWUpIFZBTFVFUyAoPywgPywgPyknOwoKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRyZWNfaWQsICRfU0VSVkVSWydSRU1PVEVfQUREUiddLAogICAgICAgICAgICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpKSk7CiAgICB9CgkkdG9SZXR1cm4gPSBhcnJheSgkcmVzLCAkbWFpbC0+R2V0RXJyb3JJbmZvKCkpOwoJJG1haWwtPnJlc2V0KCk7CglyZXR1cm4gJHRvUmV0dXJuOwogIH0KCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1lc3NhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpOwoKCSRwYXJtID0gYXJyYXkoKTsKCSRwYXJtWydvcHRfZW1haWxfdGVtcGxhdGUnXVsnaHRtbF9idXR0b24nXSA9IHRydWU7CgkkcGFybVsnb3B0X2VtYWlsX3RlbXBsYXRlJ11bJ3RleHRfYnV0dG9uJ10gPSB0cnVlOwoJJHBhcm1bJ29wdF9lbWFpbF90ZW1wbGF0ZSddWydpc19lbWFpbCddID0gdHJ1ZTsKCWlmICgkdGhpcy0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nKQoJCXsKCQkkdGhpcy0+Zm9ybV9wdHItPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywkbW9kLT5MYW5nKCd0aXRsZV9jb25maXJtYXRpb25fdXJsJykpOwoJCX0KCiAgICByZXR1cm4gYXJyYXkoCiAgICAgYXJyYXkoCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfc3ViamVjdCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9zdWJqZWN0JywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJyksNTApLic8YnIvPicuJG1vZC0+TGFuZygnY2FudXNlX3NtYXJ0eScpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZW5kX3VzaW5nJyksJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZW5kX3VzaW5nJywKCQkJYXJyYXkoJG1vZC0+TGFuZygndG9fZmllbGQnKT0+J3RvJywkbW9kLT5MYW5nKCdjY19maWVsZCcpPT4nY2MnLCRtb2QtPkxhbmcoJ2JjY19maWVsZCcpPT4nYmNjJyksIC0xLCAkdGhpcy0+Z2V0T3B0aW9uKCdzZW5kX3VzaW5nJykpKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSwyNSwxMjgpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZnJvbV9hZGRyZXNzJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCcnKSwyNSwxMjgpLic8YnIgLz4nLgoJCQkkbW9kLT5MYW5nKCdlbWFpbF9mcm9tX2FkZHJfaGVscCcsYXJyYXkoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSksCiAgICAgICAgCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2NjX2FkZHJlc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfY2NfYWRkcmVzcycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfY2NfYWRkcmVzcycsJycpLDI1LDEyOCkpLAogICAgICAgIAlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91c2VfYmNjJyksCiAgICAgICAgICAJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF91c2VfYmNjJywnMCcpLiRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdXNlX2JjYycsCiAgICAgICAgICAgICAgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3VzZV9iY2MnLCcwJykpKSwKICAgICAgICAgICApLAogICAgIGFycmF5KAogICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaHRtbF9lbWFpbCcpLAogICAgICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2h0bWxfZW1haWwnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9odG1sX2VtYWlsJywKICAgICAgICAgICAgICAgICcxJywkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpKSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfdGVtcGxhdGUnKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAogICAgICAgICAgICAgIC8qKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWxfZW1haWwnLCcwJyk9PScxJz8kbWVzc2FnZTpodG1sc3BlY2lhbGNoYXJzKCRtZXNzYWdlKSkqLwoJCQkgJG1lc3NhZ2UsJ2ZicnBfb3B0X2VtYWlsX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3dpZGUnLCAnJywnJywnJywnODAnLCAnMTUnLCcnLCdodG1sJyksCiAgICAgICAgICAgICAgJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm0pKSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZW5jb2RpbmcnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZW5jb2RpbmcnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSwyNSwxMjgpKQogICAgICAgICAgICkKICAgICApOwogIH0KCiAgZnVuY3Rpb24gdmFsaWRhdGVFbWFpbEFkZHIoJGVtYWlsKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkKCQlpZiAoc3RycG9zKCRlbWFpbCwnLCcpICE9PSBmYWxzZSkKCQl7CgkJCSR0YSA9IGV4cGxvZGUoJywnLCRlbWFpbCk7CQoJCX0KCQllbHNlCgkJewoJCQkkdGEgPSBhcnJheSgkZW1haWwpOwkKCQl9CgkJCgkJZm9yZWFjaCgkdGEgYXMgJHRvKQoJCXsKLy8JCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0bykpCgkJCWlmKCAhZW1haWxfdmFsaWRhdG9yOjppc19lbWFpbCgkdG8pICkKCSAgCXsKCSAgICAJJHJldCA9IGZhbHNlOwogICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsICR0byk7CgkgICAJfQoJCX0KCQkKCQlyZXR1cm4gYXJyYXkoJHJldCwgJG1lc3NhZ2UpOwoJfQoKfQoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBasedFrontendFields.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMgZXh0ZW5kcyBmYkRpc3Bvc2l0aW9uRW1haWxCYXNlIHsKCgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcygmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhpZGVMYWJlbCA9IDE7CQkKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJaWYoIWlzX2FycmF5KCRvcHQpKSB7CgkJCgkJCSRvcHQgPSBhcnJheSgkb3B0KTsKCQl9CgkJCgkJJHJldD0gJG1vZC0+TGFuZygndG8nKS4iOiAiLmNvdW50KCRvcHQpLiIgIi4kbW9kLT5MYW5nKCdmaWVsZHMnKTsgCiAgICAgICAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIAoJCXJldHVybiAkcmV0OwoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJCgkJJHRtcCA9ICRmb3JtLT5HZXRGaWVsZEJ5SUQoJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCQkkdGhpcy0+U2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywkdG1wLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSk7CgkJCgkJJHRtcCA9ICRmb3JtLT5HZXRGaWVsZEJ5SUQoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwoJCSR0aGlzLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJHRtcC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwoKCQkkdG1wID0gJGZvcm0tPkdldEZpZWxkQnlJRCgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSk7CgkJJHRoaXMtPlNldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywkdG1wLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSk7CQkKCgkJJGFkZGFyciA9IGFycmF5KCk7CgkJJGFkZHJlc3MgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJCgkJaWYoIWlzX2FycmF5KCRhZGRyZXNzKSkgewoJCQoJCQkkYWRkcmVzcyA9IGFycmF5KCRhZGRyZXNzKTsKCQl9CgkJCgkJZm9yZWFjaCgkYWRkcmVzcyBhcyAkaXRlbSkgewoJCQoJCQkkdG1wID0gJGZvcm0tPkdldEZpZWxkQnlJRCgkaXRlbSk7CQkJCQoJCQkkdmFsdWUgPSAkdG1wLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKCQkJCgkJCWlmIChzdHJwb3MoJHZhbHVlLCcsJykgIT09IGZhbHNlKSB7CgkJCQoJCQkJJGFyciA9IGV4cGxvZGUoJywnLCR2YWx1ZSk7CQoJCQl9IGVsc2UgewoJCQkKCQkJCSRhcnIgPSBhcnJheSgkdmFsdWUpOwkKCQkJfQkJCQoJCQkKCQkJZm9yZWFjaCgkYXJyIGFzICRlbWFpbCkgewoJCQkKCQkJCSR2YWxpZGF0ZSA9ICR0aGlzLT52YWxpZGF0ZUVtYWlsQWRkcigkZW1haWwpOwoJCQkJCgkJCQlpZigkdmFsaWRhdGVbMF0pIHsKCQkJCQoJCQkJCSRhZGRhcnJbXSA9ICRlbWFpbDsKCQkJCQkKCQkJCX0KCQkJfQoJCX0KCQoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJGFkZGFyciwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkcGFybSA9IGFycmF5KCk7CgkJJHBhcm1bJ29wdF9lbWFpbF90ZW1wbGF0ZSddWydodG1sX2J1dHRvbiddID0gdHJ1ZTsKCQkkcGFybVsnb3B0X2VtYWlsX3RlbXBsYXRlJ11bJ3RleHRfYnV0dG9uJ10gPSB0cnVlOwoJCSRwYXJtWydvcHRfZW1haWxfdGVtcGxhdGUnXVsnaXNfZW1haWwnXSA9IHRydWU7CgkJCgkJJGRlc3RhZGRfYWxsID0gJHRoaXMtPkdldEZpZWxkTGlzdCgpOwoJCSRkZXN0YWRkX3RtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkKCQlpZighaXNfYXJyYXkoJGRlc3RhZGRfdG1wKSkgewoJCQoJCQkkZGVzdGFkZF90bXAgPSBhcnJheSgkZGVzdGFkZF90bXApOwoJCX0KCQkKCQkkZGVzdGFkZF9zZWwgPSBhcnJheSgpOwoJCWZvcmVhY2goJGRlc3RhZGRfYWxsIGFzICRrPT4kdikgewoJCQoJCQlpZihpbl9hcnJheSgkdiwkZGVzdGFkZF90bXApKSB7CgkJCQoJCQkJJGRlc3RhZGRfc2VsWyRrXSA9ICR2OwoJCQkKCQkJfQkKCQl9CgkKCQkkbWFpbiA9IGFycmF5KAoJCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JyksJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9zdWJqZWN0JywkdGhpcy0+R2V0RmllbGRMaXN0KHRydWUpLC0xLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCcnKSkpLAoJCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPkdldEZpZWxkTGlzdCh0cnVlKSwtMSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSkpLAoJCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSxhcnJheSgkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPkdldEZpZWxkTGlzdCh0cnVlKSwtMSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCcnKSksCgkJCQkJCQkJCQkJCQkkbW9kLT5MYW5nKCdlbWFpbF9mcm9tX2FkZHJfaGVscCcsYXJyYXkoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSkpLAoJCQkJCQkJCQkJCQkJCgkJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkZGVzdGFkZF9hbGwsJGRlc3RhZGRfc2VsLDUpKQkJCQkJCQkJCQkJCQkKCQkJCSk7CgkJCSAgIAoJCSRhZHYgPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2h0bWxfZW1haWwnKSwgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9odG1sX2VtYWlsJywnMCcpLgoJCQkJCQkJCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9odG1sX2VtYWlsJywnMScsJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfdGVtcGxhdGUnKSwgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKSwnZmJycF9vcHRfZW1haWxfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLCcnLCc4MCcsICcxNScsJycsJ2h0bWwnKSwKCQkJCQkJCQkJCQkJCSR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZW5jb2RpbmcnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZW5jb2RpbmcnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSwyNSwxMjgpKQoJCQkJKTsKCgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCgkvLyBWYWxpZGF0ZSBhZG1pbiBzaWRlCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRzdWJqZWN0ID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcsJycpOwoJCSRuYW1lID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywnJyk7CgkJJGZyb20gPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCcnKTsKICAgIAkkZGVzdCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkKICAJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CgkJCgkJaWYgKCRyZXQpIHsKCQkKCQkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJfQkJCgkJCQoJCWlmICgkc3ViamVjdCA9PSBmYWxzZSB8fCBjb3VudCgkc3ViamVjdCkgPT0gMCkgewoJCQoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vX2ZpZWxkX2Fzc2lnbmVkJywkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpOwoJCX0KCgkJaWYgKCRuYW1lID09IGZhbHNlIHx8IGNvdW50KCRuYW1lKSA9PSAwKSB7CgkJCgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbm9fZmllbGRfYXNzaWduZWQnLCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZScpKTsKCQl9CgoJCWlmICgkZnJvbSA9PSBmYWxzZSB8fCBjb3VudCgkZnJvbSkgPT0gMCkgewoJCQoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vX2ZpZWxkX2Fzc2lnbmVkJywkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSk7CgkJfQoKCQlpZiAoJGRlc3QgPT0gZmFsc2UgfHwgY291bnQoJGRlc3QpID09IDApIHsKCQkKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub19maWVsZF9hc3NpZ25lZCcsJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpKTsKCQl9CQkKCQkKCQkKICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7ICAgICAgIAogICAgfQoKCS8vIEdldCBhbGwgZmllbGRzCglwcml2YXRlIGZ1bmN0aW9uIEdldEZpZWxkTGlzdCgkc2VsZWN0b25lID0gZmFsc2UpIAoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJGZpZWxkcyA9ICRmb3JtLT5HZXRGaWVsZHMoKTsKCQkkcmV0ID0gYXJyYXkoKTsKCQkKCQlpZigkc2VsZWN0b25lKSB7CgkJCgkJCSRyZXRbJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwoJCX0KCQoJCWZvcmVhY2goJGZpZWxkcyBhcyAkdGhpc0ZpZWxkKSB7CgkJCgkJCWlmKCR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0pIHsKCQkKCQkJCSRyZXRbJHRoaXNGaWVsZC0+R2V0TmFtZSgpXSA9ICR0aGlzRmllbGQtPkdldElkKCk7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICRyZXQ7CgkKCX0JCgkKCQp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJLy92YXIgJHZhbGlkYXRlZDsKCglmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24oJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+Zm9ybV9wdHItPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywKICAgICAgIAkJJG1vZC0+TGFuZygndGl0bGVfY29uZmlybWF0aW9uX3VybCcpKTsKICAgICAgIAkkdGhpcy0+YXBwcm92ZWRUb0dvID0gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICAgcmV0dXJuICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJfQoKCWZ1bmN0aW9uIEFwcHJvdmVUb0dvKCRyZXNwb25zZV9pZCkKCXsKCQkkdGhpcy0+YXBwcm92ZWRUb0dvID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5mb3JtX3B0ci0+R2V0Rm9ybVN0YXRlKCkgPT0gJ3VwZGF0ZScpCgkJCXsKCQkJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7CgkJCXJldHVybjsKCQkJfQoJCS8vIElmIHdlIGhhdmVuJ3QgYmVlbiBhcHByb3ZlZCwgaW5oaWJpdCBhbGwgb3RoZXIgZGlzcG9zaXRpb25zIQoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgoJHRoaXMtPmFwcHJvdmVkVG9HbyAmJiAkb3RoZXJzWyRpXS0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKSB8fAoJCQkJKCR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0QXBwcm92YWxOYW1lKCR0aGlzLT5HZXRWYWx1ZSgpKTsKCQkJCX0KCQkJZWxzZWlmICghICR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24oZmFsc2UpOwoJCQkJfQoJCQl9CgkJJHRoaXMtPlNldERpc3Bvc2l0aW9uUGVybWlzc2lvbih0cnVlKTsJCQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSR2YWwgPSAnJzsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKCQl7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICRodG1sNSA9ICcgcGxhY2Vob2xkZXI9IicuJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLiciJzsKCQkgICAgICAgIGlmICgkdGhpcy0+SXNSZXF1aXJlZCgpKSB7CgkJICAgICAgICAgICAgICAgICRodG1sNSAuPSAnIHJlcXVpcmVkJzsKCQkgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZSA/ICR0aGlzLT5WYWx1ZSA6ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgb25mb2N1cz0iaWYodGhpcy52YWx1ZT09dGhpcy5kZWZhdWx0VmFsdWUpIHRoaXMudmFsdWU9XCdcJzsiIG9uYmx1cj0iaWYodGhpcy52YWx1ZT09XCdcJykgdGhpcy52YWx1ZT10aGlzLmRlZmF1bHRWYWx1ZTsiJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoJCXJldHVybiAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdmFsLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAgCQkyNSwgODAsICRqcy4kaHRtbDUuJHRoaXMtPkdldENTU0lkVGFnKCksJ2VtYWlsJyk7Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCEgJHRoaXMtPmFwcHJvdmVkVG9HbykKCQkJewoJCQkvLyBjcmVhdGUgcmVzcG9uc2UgVVJMCgkJCSRmYnJmID0gbnVsbDsKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgtMSwnJywkZmJyZik7CgkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmYnJwX2YnPT4kdGhpcy0+Zm9ybV9wdHItPkdldElkKCksJ2ZicnBfcic9PiRyaWQsJ2ZicnBfYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgCgkgICRnQ21zID0gY21zbXMoKTsKCSAgJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCgkgIGxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkgIGFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0JywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksMjUsMTAyNCkpKTsKCSAgYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0JyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMCcpLiRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKSk7CgoJICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJyksCgkJCQkgQCRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uKCdyZWRpcmVjdF9wYWdlJywnMCcpLCAkZm9ybURlc2NyaXB0b3IuJ2ZicnBfb3B0X3JlZGlyZWN0X3BhZ2UnKSkpOwoJICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewogIAkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJewoJCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgIAkkdGhpcy0+VmFsdWUgIT09IGZhbHNlCi8vICAgICAgICAgICAgICAgICAgCSYmICEgcHJlZ19tYXRjaCgKLy8gICAgICAgICAgICAgICAgICAJCQkJCQkJCQkJKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCAnMCcpID09IDAgPyAkbW9kLT5lbWFpbF9yZWdleCA6ICRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAKLy8gICAgICAgICAgICAgICAgICAJCQkJCQkJCQkJJHRoaXMtPlZhbHVlCi8vICAgICAgICAgICAgICAgICAgCQkJCQkJCQkJKQoJCQkJCQkJCQkJJiYgIWVtYWlsX3ZhbGlkYXRvcjo6aXNfZW1haWwoJHRoaXMtPlZhbHVlKQogICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgIH0KCQkgIAkgICBicmVhazsKCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailFromFEUProperty.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGNsYXNzIENvcHlyaWdodCAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEZyb21GRVVQcm9wZXJ0eSBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UKewogIC8qKgogICAqIFBIUDQgU3R5bGUgQ29uc3RydWN0b3IKICAgKgogICAqLwogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbEZyb21GRVVQcm9wZXJ0eSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAvLyBjYWxsIHRoZSBwYXJlbnQgY29uc3RydWN0b3IKICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxGcm9tRkVVUHJvcGVydHknOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgfQoKCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRyZXQgPSAnUHJvcGVydHk6ICcuJHRoaXMtPkdldE9wdGlvbignZmV1X3Byb3BlcnR5Jyk7CiAgICAkcmV0IC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoKICAgICRmZXUgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwogICAgaWYoICFpc19vYmplY3QoJGZldSkgKQogICAgICB7CgkvLyBqdXN0IGFjdCBsaWtlIGEgcmVndWxhciBkaXNwb3NpdGlvbi4uLgoJJHRtcCA9IGFycmF5KCRtb2QtPkxhbmcoJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnKSwkbW9kLT5MYW5nKCdlcnJvcl9ub2ZldScpKTsKCWFycmF5X3Vuc2hpZnQoJG1haW4sJHRtcCk7CglyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgICAgIH0KCiAgICAkZGVmbnMgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICBpZiggIWlzX2FycmF5KCRkZWZucykgKQogICAgICB7CgkvLyBqdXN0IGFjdCBsaWtlIGEgcmVndWxhciBkaXNwb3NpdGlvbi4uLgoJJHRtcCA9IGFycmF5KCRtb2QtPkxhbmcoJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnKSwkbW9kLT5MYW5nKCdlcnJvcl9ub2ZldWRlZm5zJykpOwoJYXJyYXlfdW5zaGlmdCgkbWFpbiwkdG1wKTsKCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICAgICAgfQoKICAgIC8vIGNoZWNrIGZvciBkcm9wZG93biBvciBtdWx0aXNlbGVjdCBmaWVsZHMKICAgICRvcHRzID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRkZWZucyBhcyAka2V5ID0+ICRkYXRhICkKICAgICAgewoJc3dpdGNoKCAkZGF0YVsndHlwZSddICkKCSAgewoJICBjYXNlIDQ6CgkgIGNhc2UgNToKCSAgY2FzZSA3OgoJICAgICRvcHRzWyRkYXRhWyduYW1lJ11dID0gJGRhdGFbJ3Byb21wdCddOwoJICAgIGJyZWFrOwoKCSAgZGVmYXVsdDoKCSAgICAvLyBpZ25vcmUgdGhlc2UgZmllbGQgdHlwZXMuCgkgICAgYnJlYWs7CgkgIH0KICAgICAgfQogICAgaWYoICFjb3VudCgkb3B0cykgKQogICAgICB7CgkvLyBqdXN0IGFjdCBsaWtlIGEgcmVndWxhciBkaXNwb3NpdGlvbi4uLgoJJHRtcCA9IGFycmF5KCRtb2QtPkxhbmcoJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnKSwkbW9kLT5MYW5nKCdlcnJvcl9ub2ZldWRlZm5zJykpOwoJYXJyYXlfdW5zaGlmdCgkbWFpbiwkdG1wKTsKCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICAgICAgfQoKICAgICRrZXlzID0gYXJyYXlfa2V5cygkb3B0cyk7CiAgICAkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmV1X3Byb3BlcnR5JyksCgkJICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9mZXVfcHJvcGVydHknLAoJCQkJCSAgIGFycmF5X2ZsaXAoJG9wdHMpLC0xLAoJCQkJCSAgICR0aGlzLT5HZXRPcHRpb24oJ2ZldV9wcm9wZXJ0eScsJGtleXNbMF0pKS4KCQkgJzxici8+Jy4kbW9kLT5MYW5nKCdpbmZvX2ZldV9wcm9wZXJ0eScpKTsKICAgIGFycmF5X3Vuc2hpZnQoJG1haW4sJHRtcCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsJiRwYXJhbXMsJHJldHVybmlkKQogIHsKICAgIAkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJJGh0bWw1ID0gJyc7CgoJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJewoJCSRodG1sNSA9ICcgcmVxdWlyZWQnOwoJfQogICAgJGZldSA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggISRmZXUgKSByZXR1cm4gRkFMU0U7CgogICAgLy8gZ2V0IHRoZSBwcm9lcHJ0eSBuYW1lIGFuZCBkYXRhCiAgICAkcHJvcCA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZldV9wcm9wZXJ0eScpOwogICAgaWYoICEkcHJvcCApIHJldHVybiBGQUxTRTsKICAgICRkZWZuID0gJGZldS0+R2V0UHJvcGVydHlEZWZuKCRwcm9wKTsKICAgIGlmKCAhJGRlZm4gKSByZXR1cm4gRkFMU0U7CgogICAgLy8gZ2V0IHRoZSBwcm9wZXJ0eSBpbnB1dCBmaWVsZC4KICAgICRvcHRpb25zID0gJGZldS0+R2V0U2VsZWN0T3B0aW9ucygkcHJvcCk7CiAgICBzd2l0Y2goICRkZWZuWyd0eXBlJ10gKQogICAgICB7CiAgICAgIGNhc2UgNDogLy8gZHJvcGRvd24KICAgICAgY2FzZSA1OiAvLyBtdWx0aXNlbGVjdAogICAgICBjYXNlIDc6IC8vIHJhZGlvIGJ1dHRvbiBncm91cAoJLy8gcmVuZGVyZWQgYWxsIGFzIGEgZHJvcGRvd24gZmllbGQuCgkkcmVzID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfXycuJHRoaXMtPklkLCRvcHRpb25zLC0xLCRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJYnJlYWs7CgogICAgICBkZWZhdWx0OgoJcmV0dXJuIEZBTFNFOwogICAgICB9CgogICAgcmV0dXJuICRyZXM7CiAgfQoKCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmcgPSB0cnVlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZmV1ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgICRwcm9wID0gJHRoaXMtPkdldE9wdGlvbignZmV1X3Byb3BlcnR5Jyk7CgogICAgJG9wdHMgPSBhcnJheV9mbGlwKCRmZXUtPkdldFNlbGVjdE9wdGlvbnMoJG9wdHMpKTsKICAgIGlmKCBpc3NldCgkb3B0c1skdGhpcy0+VmFsdWVdKSApIHJldHVybiAkb3B0c1skdGhpcy0+VmFsdWVdOwogIH0KCgoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZmV1ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAhJGZldSApIHJldHVybiBhcnJheShmYWxzZSwnRnJvbnRFbmRVc2VycyBtb2R1bGUgbm90IGZvdW5kJyk7CgogICAgLy8gZ2V0IHRoZSBwcm9wZXJ0eSBuYW1lCiAgICAkcHJvcCA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZldV9wcm9wZXJ0eScpOwoKICAgIC8vIGdldCB0aGUgbGlzdCBvZiBlbWFpbHMgdGhhdCBtYXRjaCB0aGlzIHZhbHVlLgogICAgJHVzZXJzID0gJGZldS0+R2V0VXNlcnNJbkdyb3VwKC0xLCcnLCcnLCcnLCRwcm9wLCR0aGlzLT5WYWx1ZSk7CiAgICBpZiggIWlzX2FycmF5KCR1c2VycykgfHwgY291bnQoJHVzZXJzKSA9PSAwICkKICAgICAgewoJLy8gbm8gbWF0Y2hpbmcgdXNlcnMgaXMgbm90IGFuIGVycm9yLgoJcmV0dXJuIGFycmF5KHRydWUsJycpOwogICAgICB9CgogICAgJHNtYXJ0eV91c2VycyA9IGFycmF5KCk7CiAgICAkZGVzdGluYXRpb25zID0gYXJyYXkoKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR1c2Vycyk7ICRpKysgKQogICAgICB7CgkkcmVjID0mICR1c2Vyc1skaV07Cgl1bnNldCgkcmVjWydwYXNzd29yZCddKTsKCWlmKCAkZmV1LT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpICkKCSAgewoJICAgICRyZWNbJ2VtYWlsJ10gPSAkcmVjWyd1c2VybmFtZSddOwoJICAgICRkZXN0aW5hdGlvbnNbXSA9ICRyZWNbJ3VzZXJuYW1lJ107CgkgIH0KCWVsc2UKCSAgewoJICAgICRyZWNbJ2VtYWlsJ10gPSAkZmV1LT5HZXRFbWFpbCgkcmVjWydpZCddKTsKCSAgICAkZGVzdGluYXRpb25zW10gPSAkcmVjWydlbWFpbCddOwoJICB9Cgkkc21hcnR5X3VzZXJzWyRyZWNbJ3VzZXJuYW1lJ11dID0gJHJlYzsKCSRzbWFydHkgPSAkbW9kLT5zbWFydHk7Cgkkc21hcnR5LT5hc3NpZ24oJ3VzZXJzJywkc21hcnR5X3VzZXJzKTsKCQoJaWYoIGNvdW50KCR1c2VycykgPT0gMSApCgkgIHsKCSAgICAkc21hcnR5LT5hc3NpZ24oJ3VzZXJfaW5mbycsJHVzZXJzWzBdKTsKCSAgfQogICAgICB9CgogICAgLy8gc2VuZCB0aGUgZm9ybS4KICAgIHJldHVybiAkdGhpcy0+U2VuZEZvcm0oJGRlc3RpbmF0aW9ucywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailSiteAdmin.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCSAgICAkZ0NtcyA9IGNtc21zKCk7CgkgICAgJHVzZXJvcHMgPSAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJCXsKCQkJJGh0bWw1ID0gJyByZXF1aXJlZCc7CgkJfQoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CgkJCX0KCQkJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2Vyc0luR3JvdXAoJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2VycygpOwoJCQl9CgkJZm9yKCRpPTA7JGk8Y291bnQoJHVzZXJsaXN0KTskaSsrKQoJCQl7CgkJCSRuYW1lID0gYXJyYXkoKTsKCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcmZpcnN0bmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwkdXNlcmxpc3RbJGldLT5maXJzdG5hbWUpOwoJCQkJfQoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VybGFzdG5hbWUnLCcwJyk9PScxJykKCQkJCXsKCQkJCWFycmF5X3B1c2goJG5hbWUsJHVzZXJsaXN0WyRpXS0+bGFzdG5hbWUpOwoJCQkJfQoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VybmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwnICgnLiR1c2VybGlzdFskaV0tPnVzZXJuYW1lLicpJyk7CgkJCQl9CgkJCSRzbmFtZSA9IGltcGxvZGUoJyAnLCRuYW1lKTsKCQkJJHNvcnRlZFskc25hbWVdPSgkaSsxKTsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCAkaHRtbDUuJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAgICRnQ21zID0gY21zbXMoKTsKCSAgICAkZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAkcmV0ID0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJGdyb3VwID0gJGdyb3Vwb3BzLT5Mb2FkR3JvdXBCeUlEKCR0aGlzLT5HZXRPcHRpb24oJ2dyb3VwJykpOwoJCQlpZiAoJGdyb3VwICYmIGlzc2V0KCRncm91cC0+bmFtZSkpCgkJCQl7CgkJCQkkcmV0IC49ICcsICcuJG1vZC0+TGFuZygncmVzdHJpY3RlZF90b19ncm91cCcsJGdyb3VwLT5uYW1lKTsKCQkJCX0KCQkJfQogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkgICAgJGdDbXMgPSBjbXNtcygpOwoJICAgICRncm91cG9wcyA9ICRnQ21zLT5HZXRHcm91cE9wZXJhdGlvbnMoKTsKCSAgICAkZ3JvdXBzID0gJGdyb3Vwb3BzLT5Mb2FkR3JvdXBzKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VyZmlyc3RuYW1lJywnMCcpLgoJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3Nob3dfdXNlcmZpcnN0bmFtZScsICcxJywKCQkJJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VyZmlyc3RuYW1lJywnMScpKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd191c2VybGFzdG5hbWUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3VzZXJsYXN0bmFtZScsJzAnKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3VzZXJsYXN0bmFtZScsICcxJywKCQkJJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VybGFzdG5hbWUnLCcxJykpKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3VzZXJuYW1lJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VybmFtZScsJzAnKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3VzZXJuYW1lJywgJzEnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJuYW1lJywnMCcpKSkpOwoJCQkJCgoJCSRpdGVtcyA9IGFycmF5KCk7CgkJZm9yZWFjaCAoJGdyb3VwcyBhcyAkdGhpc0dyb3VwKQoJCXsKCQkJJGl0ZW1zWyR0aGlzR3JvdXAtPm5hbWVdPSR0aGlzR3JvdXAtPmlkOwoJCX0KCQkKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfcmVzdHJpY3RfdG9fZ3JvdXAnLCcwJykuCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVzdHJpY3RfdG9fZ3JvdXAnLCAnMScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9ncm91cCcsICRpdGVtcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2dyb3VwJywnJykpKSk7CgkJCQkKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCSAgICAkZ0NtcyA9IGNtc21zKCk7CgkgICAgJHVzZXJvcHMgPSAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVzdHJpY3RfdG9fZ3JvdXAnLCcwJyk9PScxJykKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CgkJCX0KCQlpZiAoaXNzZXQoJHVzZXJsaXN0WyR0aGlzLT5WYWx1ZSAtIDFdKSkKCQkJewoJCQkkcmV0ID0gJHVzZXJsaXN0WyR0aGlzLT5WYWx1ZSAtIDFdLT5maXJzdG5hbWUgLiAnICcuICR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXS0+bGFzdG5hbWU7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCQkKCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJICAgICRnQ21zID0gY21zbXMoKTsKCSAgICAkdXNlcm9wcyA9ICRnQ21zLT5HZXRVc2VyT3BlcmF0aW9ucygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKT09JzEnKQoJCQl7CgkJCSR1c2VybGlzdCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCR0aGlzLT5HZXRPcHRpb24oJ2dyb3VwJykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR1c2VybGlzdCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnMoKTsKCQkJfQoJCSRkZXN0ID0gYXJyYXkoJHVzZXJsaXN0WyR0aGlzLT5WYWx1ZSAtIDFdLT5lbWFpbCk7CgkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkZGVzdCwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWxpc3QoJHJldCwkbWVzc2FnZSkgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpOwogICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gVmFsaWRhdGUoKQogICAgewogICAgICAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAgICAkcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgJG1lc3NhZ2UgPSAnJzsKCiAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJyk7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25GaWxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZSc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CgkkZ0NtcyA9IGNtc21zKCk7Cgkkb3B0aW9ucyA9ICRnQ21zLT5HZXRDb25maWcoKTsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGZvcm09JHRoaXMtPmZvcm1fcHRyOwogICAgJGNvdW50ID0gMDsKICAgIHdoaWxlICghICRtb2QtPkdldEZpbGVMb2NrKCkgJiYgJGNvdW50PDIwMCkKICAgICAgewoJJGNvdW50Kys7Cgl1c2xlZXAoNTAwKTsKICAgICAgfQogICAgaWYgKCRjb3VudCA9PSAyMDApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snKSk7CiAgICAgIH0KCiAgICAkZmlsZXNwZWMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlcm9vdCcsJG9wdGlvbnNbJ3VwbG9hZHNfcGF0aCddKS4nLycuCiAgICAgIHByZWdfcmVwbGFjZSgiL1teXHdcZFwuXXxcLlwuLyIsICJfIiwgJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCdmb3JtX3N1Ym1pc3Npb25zLnR4dCcpKTsKCiAgICAkZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CgogICAgJGxpbmUgPSAnJzsKCQoJLy8gQ2hlY2sgaWYgZmlyc3QgdGltZSwgd3JpdGUgaGVhZGVyCiAgICBpZiAoISBmaWxlX2V4aXN0cygkZmlsZXNwZWMpKQogICAgICB7CgkJJGhlYWRlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfaGVhZGVyJywnJyk7CgoJCWlmKCRoZWFkZXIgIT0gJycpIHsKCQkJJGhlYWRlciA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRoZWFkZXIpOwoJCX0KICAgICAgfQoJICAKCSAgCgkvLyBNYWtlIG5ld2xpbmUgIAogICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpOwogICAgaWYgKCR0ZW1wbGF0ZSA9PSAnJykKICAgICAgewoJJHRlbXBsYXRlID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KICAgICRsaW5lID0gJHRlbXBsYXRlOwoKICAgICRuZXdsaW5lID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRsaW5lICk7CgkkcmVwbGNoYXIgPSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpOwoJaWYgKCRyZXBsY2hhciAhPSAnJykKCQl7CgkJJG5ld2xpbmUgPSBydHJpbSgkbmV3bGluZSwiXHJcbiIpOwogICAgCSRuZXdsaW5lID0gcHJlZ19yZXBsYWNlKCcvW1xuXHJdLycsJHJlcGxjaGFyLCRuZXdsaW5lKTsKCQl9CiAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCiAgICAgIHsKCSAgJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQoJCgkvLyBHZXQgZm9vdGVyCgkkZm9vdGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9mb290ZXInLCcnKTsKCglpZigkZm9vdGVyICE9ICcnKSB7CgkJJGZvb3RlciA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRmb290ZXIpOwoJfQoKCS8vIFdyaXRlIGZpbGUKCWlmKGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpIHsKCQoJCSRyb3dzID0gZmlsZSgkZmlsZXNwZWMpOwoJCSRmcCA9IGZvcGVuKCRmaWxlc3BlYywgJ3cnKTsKCQkKCQlmb3JlYWNoKCRyb3dzIGFzICRvbmVsaW5lKSB7CgkJCgkJCWlmKHN1YnN0cigkZm9vdGVyLCAwLCBzdHJsZW4oJG9uZWxpbmUpKSA9PSAkb25lbGluZSkgewoJCQkKCQkJCWJyZWFrOwoJCQl9CgkJCQoJCQlmd3JpdGUoJGZwLCRvbmVsaW5lKTsKCQl9CgkKCX0gZWxzZSB7CgkJCgkJJGZwID0gZm9wZW4oJGZpbGVzcGVjLCAndycpOwoJfQoJCglmd3JpdGUoJGZwLCRoZWFkZXIuJG5ld2xpbmUuJGZvb3Rlcik7CglmY2xvc2UoJGZwKTsKCQoJLyogIFN0aWtraSByZW1vdmVkOiBkdWUgbmV3IHJld3JpdGUgbWV0aG9kCiAgICAkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKICAgIGZ3cml0ZSgkZjIsJGhlYWRlci4kbmV3bGluZSk7CiAgICBmY2xvc2UoJGYyKTsqLyAKICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgCgkkZ0NtcyA9IGNtc21zKCk7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCgkKICAgICRtYWluID0gYXJyYXkoKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgJHBhcm1NYWluID0gYXJyYXkoKTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfdGVtcGxhdGUnXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX2hlYWRlciddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2Zvb3RlciddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfZm9vdGVyJ11bJ2lzX2Zvb3RlciddPXRydWU7CQoJCiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcm9vdCcpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmlsZXJvb3QnLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignZmlsZXJvb3QnLCRjb25maWdbJ3VwbG9hZHNfcGF0aCddKSw0NSwyNTUpLic8YnIgLz4nLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfZmlsZV9yb290X2hlbHAnKSkpOwoJCQkJCiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfbmFtZScpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmlsZXNwZWMnLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCdmb3JtX3N1Ym1pc3Npb25zLnR4dCcpLDI1LDEyOCkpKTsKCiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X25ld2xpbmVjaGFyJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ25ld2xpbmVjaGFyJywnJyksNSwxNSkuJzxiciAvPicuCgkJCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCcpKSk7CgkJCQkJCSAKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3RlbXBsYXRlJyksCgkJCSAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwoJCQkJCQkgICAvL2h0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm1NYWluKSkpKTsgU3Rpa2tpIGNoYW5nZWQ6IGJyZWlraW5nIHRlbXBsYXRlCgkJCQkJCQkJCQkJCQogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgkJCQkJICAgICAgIC8vaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7IFN0aWtraSBjaGFuZ2VkOiBicmVpa2luZyB0ZW1wbGF0ZQoJCQkJCQkgICAKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2Zvb3RlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZm9vdGVyJywnJyksICdmYnJwX29wdF9maWxlX2Zvb3RlcicsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCkpKTsJICAgCgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KICAKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJzsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogICAgJHRoaXMtPmZpbGVBZGQgPSAwOwoKICAgICRnQ21zID0gY21zbXMoKTsKICAgICRjb25maWcgPSAkZ0Ntcy0+Z2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+ZGZsdF9maWxlcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5maWxlQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiBjb3VudEZpbGVzKCkKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZmlsZW5hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewoJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCSRodG1sNSA9ICcnOwoKCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScmJiAkdGhpcy0+SXNSZXF1aXJlZCgpKSAKCXsKCQkkaHRtbDUgPSAnIHJlcXVpcmVkJzsKCX0KCiAgICAvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKICAgIC8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgogICAgJHNvcnRlZCA9YXJyYXkoKTsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCiAgICAgIHsKCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKICAgICAgfQogICAgJGRpc3BsYXluYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJyk7CiAgICAKICAgIGlmIChjb3VudCgkZGlzcGxheW5hbWVzKSA+IDEpCiAgICAgIHsKCWZvcigkaT0wOyRpPGNvdW50KCRkaXNwbGF5bmFtZXMpOyRpKyspCgkgIHsKCSAgICAkc29ydGVkWyRkaXNwbGF5bmFtZXNbJGldXT0oJGkrMSk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7Cgkkc29ydGVkWyRkaXNwbGF5bmFtZXNdID0gJzEnOwogICAgICB9CiAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSwgJGh0bWw1LiRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkcmV0PSAkbW9kLT5MYW5nKCdmaWxlX2NvdW50JywkdGhpcy0+ZmlsZUNvdW50KTsKICAgIHJldHVybiAkcmV0OwogIH0KCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewoJJGdDbXMgPSBjbXNtcygpOwoJJG9wdGlvbnMgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtPSR0aGlzLT5mb3JtX3B0cjsKICAgICRjb3VudCA9IDA7CiAgICB3aGlsZSAoISAkbW9kLT5HZXRGaWxlTG9jaygpICYmICRjb3VudDwyMDApCiAgICAgIHsKCSRjb3VudCsrOwoJdXNsZWVwKDUwMCk7CiAgICAgIH0KICAgIGlmICgkY291bnQgPT0gMjAwKQogICAgICB7CglyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJykpOwogICAgICB9CgoKICAgICRkaXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKS4nLyc7CiAgICAkZmlsZXNwZWMgPSAkZGlyLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsIAoJCSAgICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsCgkJCQkJICAgKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgogICAgJGxpbmUgPSAnJzsKICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCiAgICAgIHsKCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJaWYgKCRoZWFkZXIgPT0gJycpCgkgIHsKCSAgICAkaGVhZGVyID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKGZhbHNlLGZhbHNlLGZhbHNlLHRydWUpOwoJICB9IAoJJGhlYWRlciAuPSAiXG4iOwogICAgICB9CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKICAgICAgfQogICAgJGxpbmUgPSAkdGVtcGxhdGU7CgoJJGZvcm0tPnNldEZpbmlzaGVkRm9ybVNtYXJ0eSgpOwogICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKCSRyZXBsY2hhciA9ICR0aGlzLT5HZXRPcHRpb24oJ25ld2xpbmVjaGFyJywnJyk7CglpZiAoJHJlcGxjaGFyICE9ICcnKQoJCXsKCQkkbmV3bGluZSA9IHJ0cmltKCRuZXdsaW5lLCJcclxuIik7CiAgICAJJG5ld2xpbmUgPSBwcmVnX3JlcGxhY2UoJy9bXG5ccl0vJywkcmVwbGNoYXIsJG5ld2xpbmUpOwoJCX0KICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKICAgICAgewoJICAkbmV3bGluZSAuPSAiXG4iOwogICAgICB9CiAgICAkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKICAgIGZjbG9zZSgkZjIpOyAKICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZUhlYWRlcigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gaW1wbG9kZSgneyRUQUJ9JywkZmllbGRzKTsKICB9CgoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVUZW1wbGF0ZSgpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJG90aGVyc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpIC4gJ30nKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gaW1wbG9kZSgneyRUQUJ9JywkZmllbGRzKTsKICB9CgoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPmZpbGVDb3VudD4xPyR0aGlzLT5maWxlQ291bnQ6MSk7JGkrKykKICAgICAgewoJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZGlzcGxheW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9maWxlbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCgkgICc8L3RkPjwvdHI+JzsKICAgICAgfQogICAgJGRlc3RzIC49ICc8L3RhYmxlPic7CgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkcGFybU1haW4gPSBhcnJheSgpOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV90ZW1wbGF0ZSddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfaGVhZGVyJ109dHJ1ZTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X25ld2xpbmVjaGFyJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ25ld2xpbmVjaGFyJywnJyksNSwxNSkuJzxiciAvPicuCgkJCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCcpKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionForm.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybSBleHRlbmRzICBmYkZpZWxkQmFzZQp7CgoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRm9ybSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZvcm0nOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignbWV0aG9kJykuJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3VybCcpOwogIH0KCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZnB0cj0kdGhpcy0+Zm9ybV9wdHI7CiAgICAkbXNnID0gJyc7CiAgICAkc3VibWlzc2lvbiA9ICR0aGlzLT5HZXRPcHRpb24oJ3VybCcpOwogICAgJHBheWxvYWQgPSBhcnJheSgpOwoJICR0aGVGaWVsZHMgPSAkZnB0ci0+R2V0RmllbGRzKCk7CgkgJHVuc3BlYyA9ICRmcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgoJIGZvcigkaT0wOyRpPGNvdW50KCR0aGVGaWVsZHMpOyRpKyspCiAgICAgIHsKICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3N1Yl8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLCcwJykgPT0gJzEnKQogICAgICAgICB7CiAgICAgICAgICRwbCA9IHVybGVuY29kZSgkdGhpcy0+R2V0T3B0aW9uKCdmbGRfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKSkpLic9Jy4KICAgICAgICAgICAgdXJsZW5jb2RlKCR0aGVGaWVsZHNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSk7CiAgICAgICAgIGFycmF5X3B1c2goJHBheWxvYWQsJHBsKTsKICAgICAgICAgfQoJCX0KICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdhZGRpdGlvbmFsJywnJykgIT0gJycpCiAgICAgIHsKICAgICAgIGFycmF5X3B1c2goJHBheWxvYWQsJHRoaXMtPkdldE9wdGlvbignYWRkaXRpb25hbCcpKTsKICAgICAgfQogICAgJHNlbmRfcGF5bG9hZCA9IGltcGxvZGUoJyYnLCRwYXlsb2FkKTsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdtZXRob2QnLCdQT1NUJykgPT0gJ1BPU1QnKQogICAgICAgICB7CiAgICAgICAgICRjaCA9IGN1cmxfaW5pdCgkdGhpcy0+R2V0T3B0aW9uKCd1cmwnKSk7CiAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULDEpOwogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywkc2VuZF9wYXlsb2FkKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLDEpOwogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMCk7CiAgICAgICAgICRyZXMgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICAgaWYgKCEkcmVzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRtc2cgPSBjdXJsX2Vycm9yKCRjaCk7CiAgICAgICAgICAgIH0KICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkdXJsID0gJHRoaXMtPkdldE9wdGlvbigndXJsJyk7CiAgICAgICAgIGlmIChzdHJwb3MoJHVybCwnPycpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR1cmwgLj0gJyYnLiRzZW5kX3BheWxvYWQ7CiAgICAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICR1cmwgLj0gJz8nLiRzZW5kX3BheWxvYWQ7CiAgICAgICAgICAgIH0KICAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEdFVCwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLDEpOwogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMCk7CiAgICAgICAgICRyZXMgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICAgaWYgKCEkcmVzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRtc2cgPSBjdXJsX2Vycm9yKCRjaCk7CiAgICAgICAgICAgIH0KICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlcywkbXNnKTsKICB9CgoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewoJJGdDbXMgPSBjbXNtcygpOwogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmcHQgPSAkdGhpcy0+Zm9ybV9wdHI7CgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkbWV0aG9kcyA9IGFycmF5KCdQT1NUJz0+J1BPU1QnLCdHRVQnPT4nR0VUJyk7CiAgICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnY3VybF9pbml0JykpCiAgICAgIHsKICAgICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgnJywkbW9kLT5MYW5nKCd0aXRsZV9pbnN0YWxsX2N1cmwnKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWV0aG9kJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X21ldGhvZCcsICRtZXRob2RzLCAtMSwKICAgICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbWV0aG9kJykpKSk7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VybCcpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdXJsJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ3VybCcsJycpLDQwLDI1NSkuJzxiciAvPicuCiAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV91cmxfaGVscCcpKSk7CiAgICAgJGZpZWxkcyA9ICRmcHQtPkdldEZpZWxkcygpOwogICAgICBmb3JlYWNoKCRmaWVsZHMgYXMgJHRmKQogICAgICAgICB7CiAgICAgICAgICRhbCA9ICR0Zi0+R2V0QWxpYXMoKTsKICAgICAgICAgaWYgKGVtcHR5KCRhbCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGFsID0gJHRmLT5HZXRWYXJpYWJsZU5hbWUoKTsKICAgICAgICAgICAgfQogICAgICAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWFwc190bycsJHRmLT5HZXROYW1lKCkpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmxkXycuJHRmLT5HZXRJZCgpLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignZmxkXycuJHRmLT5HZXRJZCgpLCRhbCksNDAsMjU1KS4KICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJfJy4kdGYtPkdldElkKCksJzAnKS4KICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3N1Yl8nLiR0Zi0+R2V0SWQoKSwnMScsCiAgICAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ3N1Yl8nLiR0Zi0+R2V0SWQoKSwoJHRmLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCk/JzEnOicwJykpKS4KICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJykpKTsKICAgICAgICAgfQogICAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfYWRkaXRpb25hbCcpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYWRkaXRpb25hbCcsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCdhZGRpdGlvbmFsJyksNDAsMjU1KS4nPGJyIC8+Jy4KICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCcpKSk7CgogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKICBmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCiAgewogICAgJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CiAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFormBrowser.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybUJyb3dzZXIgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gb3JtQnJvd3NlcigmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Gb3JtQnJvd3Nlcic7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+TmVlZHNEaXYgPSAwOwoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJyc7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gJyc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCQoJCQkkdGhpcy0+RW5jb2RlUmVxSWQoJHRoaXMtPlZhbHVlKSk7Cgl9CgoJZnVuY3Rpb24gU2V0QXBwcm92YWxOYW1lKCRuYW1lKQoJewoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJG5hbWU7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZW5jID0gKCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpID09ICcxJz8kbW9kLT5MYW5nKCd5ZXMnKTokbW9kLT5MYW5nKCdubycpKTsKCQkkZmV1ID0gKCR0aGlzLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpID09ICcxJz8kbW9kLT5MYW5nKCd5ZXMnKTokbW9kLT5MYW5nKCdubycpKTsKCQlyZXR1cm4gJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdGlvbicpLic6Jy4kZW5jLicsICcuJG1vZC0+TGFuZygndGl0bGVfZmV1X2JpbmRpbmcnKS4nOicuJGZldTsKCX0KCQoJZnVuY3Rpb24gRGVjb2RlUmVxSWQoJHRoZVZhbCkKCXsKCQkkdG1wID0gYmFzZTY0X2RlY29kZSgkdGhlVmFsKTsKCQkkdG1wMiA9IHN0cl9yZXBsYWNlKHNlc3Npb25faWQoKSwnJywkdG1wKTsKCQlpZiAoc3Vic3RyKCR0bXAyLDAsMSkgPT0gJ18nKQoJCQl7CgkJCXJldHVybiBzdWJzdHIoJHRtcDIsMSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIC0xOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIEVuY29kZVJlcUlkKCRyZXFfaWQpCgl7CgkJcmV0dXJuIGJhc2U2NF9lbmNvZGUoc2Vzc2lvbl9pZCgpLidfJy4kcmVxX2lkKTsKCX0KCQoJCglmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsKQoJewoJCSRkZWN2YWwgPSBiYXNlNjRfZGVjb2RlKCR2YWwpOwogICAKCQlpZiAoJHZhbCA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gbm8gdmFsdWUgc2V0LCBzbyB3ZSdsbCBsZWF2ZSB2YWx1ZSBhcyBmYWxzZQoJCQl9CgkJZWxzZWlmIChzdHJwb3MoJGRlY3ZhbCwnXycpID09PSBmYWxzZSkKCQkJewoJCQkvLyB1bmVuY3J5cHRlZCB2YWx1ZSwgY29taW5nIGluIGZyb20gcHJldmlvdXMgcmVzcG9uc2UKCQkJJHRoaXMtPlZhbHVlID0gJHZhbDsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyBlbmNyeXB0ZWQgdmFsdWUgY29taW5nIGluIGZyb20gYSBmb3JtLCBzbyB3ZSdsbCB1cGRhdGUuCgkJCSR0aGlzLT5WYWx1ZSA9ICR0aGlzLT5EZWNvZGVSZXFJZCgkdmFsKTsKCQkJfQoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCSRmaWVsZHMgPSAkZm9ybS0+R2V0RmllbGRzKCk7CgkJJGZpZWxkbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vbmUnKT0+Jy0xJyk7CgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkZmllbGRzKTskaSsrKQoJCQl7CgkJCWlmICgkZmllbGRzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJGZpZWxkbGlzdFskZmllbGRzWyRpXS0+R2V0TmFtZSgpXSA9ICRmaWVsZHNbJGldLT5HZXRJZCgpOwoJCQkJfQoJCQl9CgkJJGN1cnJlbnRfaW5kZXhlcyA9IGFycmF5KCk7CgkJZm9yICgkaT0xOyRpPDY7JGkrKykKCQkJewoJCQkkZm5hbWUgPSBhcnJheV9zZWFyY2goJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSksJGZpZWxkbGlzdCk7CgkJCWFycmF5X3B1c2goJG1haW4sCgkJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc29ydGFibGVfZmllbGQnLGFycmF5KCRpKSksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkJy4kaSwgJGZpZWxkbGlzdCwgLTEsCgkJCQkJJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSwtMSkpCgkJCQkJKSk7CgkJCWFycmF5X3B1c2goJGN1cnJlbnRfaW5kZXhlcywkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLC0xKSk7CgkJCX0KCSAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9ub3RlJyksJG1vZC0+TGFuZygndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCcpLgoJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9wcmV2aW91c19pbmRpY2VzJyxpbXBsb2RlKCc6JywkY3VycmVudF9pbmRleGVzKSkKCQkpKTsKCglhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VhcmNoYWJsZScpLAoJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlYXJjaGFibGUnLCcwJykuCgkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWFyY2hhYmxlJywKCQknMScsJHRoaXMtPkdldE9wdGlvbignc2VhcmNoYWJsZScsJzAnKSkuCgkJJG1vZC0+TGFuZygndGl0bGVfc2VhcmNoYWJsZV9oZWxwJykpKTsKCgkgICRmZXUgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJICBpZiAoJGZldSA9PT0gbnVsbCkKCQl7CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZldV9iaW5kaW5nJyksCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2luc3RhbGxfZmV1JykpKTsJCgkJfQoJZWxzZQoJCXsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmV1X2JpbmRpbmcnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JpbmQnLCcwJykuCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JpbmQnLAoJCQknMScsJHRoaXMtPkdldE9wdGlvbignZmV1X2JpbmQnLCcwJykpLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9mZXVfYmluZF9oZWxwJykpKTsKCQl9CgkJCgkgICRvcGVuc3NsID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ09wZW5TU0wnKTsKCSAgaWYgKCRvcGVuc3NsID09PSBudWxsICYmICFmdW5jdGlvbl9leGlzdHMoJ21jcnlwdF9lbmNyeXB0JykpCgkJewoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucycpLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9pbnN0YWxsX2NyeXB0bycpKSk7CiAgICAgICAgCgkJfQoJZWxzZQoJCXsKCQlpZiAoJG9wZW5zc2wgIT09IG51bGwpCiAgICAgICAgIHsKCQkgICAgJGtleXMgPSAkb3BlbnNzbC0+Z2V0S2V5TGlzdCgpOwoJCSAgICAkY2VydHMgPSAkb3BlbnNzbC0+Z2V0Q2VydExpc3QoKTsKCQkgICAgfQoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3J5cHQnLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jcnlwdCcsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpKS4KCQkJCQkkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnKSkpOwoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGFzaF9zb3J0JywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGFzaF9zb3J0JywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignaGFzaF9zb3J0JywnMCcpKS4KICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnKSkpOwoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnKSwKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2tleWZpbGUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2tleWZpbGUnLCcnKSw0MCwyNTUpKSk7CgogICAgICAkY3J5cHRsaWJzID0gYXJyYXkoKTsKICAgICAgaWYgKCRvcGVuc3NsICE9PSBudWxsKQogICAgICAgICB7CiAgICAgICAgICRjcnlwdGxpYnNbJG1vZC0+TGFuZygnb3BlbnNzbCcpXT0nb3BlbnNzbCc7CiAgICAgICAgIH0KICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWNyeXB0X2VuY3J5cHQnKSkKICAgICAgICAgewogICAgICAgICAkY3J5cHRsaWJzWyRtb2QtPkxhbmcoJ21jcnlwdCcpXT0nbWNyeXB0JzsKICAgICAgICAgfQoKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY3J5cHRfbGliJyksCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9jcnlwdF9saWInLAogICAgICAgICAgICAkY3J5cHRsaWJzLC0xLCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0X2xpYicpKSkpOwoKCgogICAgICBpZiAoJG9wZW5zc2wgIT09IG51bGwpCiAgICAgICAgIHsKICAgICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ2Nob29zZV9jcnlwdCcpLCRtb2QtPkxhbmcoJ2Nob29zZV9jcnlwdF9sb25nJykpKTsKCgkJICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NyeXB0X2NlcnQnKSwKCQkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NyeXB0X2NlcnQnLCAkY2VydHMsCgkJCQkJCS0xLCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0X2NlcnQnKSkpKTsKCQkgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3ByaXZhdGVfa2V5JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ByaXZhdGVfa2V5JywgJGtleXMsCgkJCQkJLTEsJHRoaXMtPkdldE9wdGlvbigncHJpdmF0ZV9rZXknKSkuJG1vZC0+TGFuZygndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJykpKTsKICAgICAgICAgfQoJCX0KCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJbGlzdCgkcmVzLCRtc2cpID0gJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5LCR0aGlzKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VhcmNoYWJsZScsJzAnKSA9PSAnMScpCgkJCXsKCQkJJGZvcm0tPkFkZFRvU2VhcmNoSW5kZXgoJHRoaXMtPlZhbHVlKTsKCQkJfQoJCXJldHVybiBhcnJheSgkcmVzLCAkbXNnKTsKCX0KCgogIGZ1bmN0aW9uIFBvc3RGaWVsZFNhdmVQcm9jZXNzKCYkcGFyYW1zKQogIHsKCSRyZWluZGV4ID0gZmFsc2U7CgkkcHJldl9pbmRpY2VzID0gZXhwbG9kZSgnOicsJHBhcmFtc1snZmJycF9wcmV2aW91c19pbmRpY2VzJ10pOwoJZm9yICgkaT0xOyRpPDY7JGkrKykKCQl7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJGkpICE9ICRwcmV2X2luZGljZXNbJGktMV0pCgkJCXsKCQkJJHJlaW5kZXggPSB0cnVlOwoJCQl9CgkJfQoJaWYgKCEgJHJlaW5kZXgpCgkJewoJCXJldHVybjsKCQl9CgkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCSRmb3JtLT5SZWluZGV4UmVzcG9uc2VzKCk7CiAgfQogIAoKCWZ1bmN0aW9uIGdldEhhc2hlZFNvcnRGaWVsZFZhbCgkc29ydEZpZWxkTnVtYmVyKQogICB7CiAgICAgICR2ID0gJHRoaXMtPmdldFNvcnRGaWVsZFZhbCgkc29ydEZpZWxkTnVtYmVyKTsKICAgICAgaWYgKHN0cmxlbigkdikgPiA0KQogICAgICAgICB7CiAgICAgICAgICR2ID0gc3Vic3RyKCR2LDAsNCkuIG1kNShzdWJzdHIoJHYsNCkpOwogICAgICAgICB9CiAgICAgIHJldHVybiAkdjsKICAgfQoJCglmdW5jdGlvbiBnZXRTb3J0RmllbGRMaXN0KCkKCXsKCQkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkcmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTE7JGk8NjskaSsrKQoJCQl7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLCctMScpICE9ICctMScpCgkJCQl7CgkJCQkkYWZpZWxkID0gJGZvcm0tPkdldEZpZWxkQnlJZCgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpKSk7CgkJCQlpZiAoJGFmaWVsZCAhPT0gZmFsc2UpCiAgICAgICAgICAgICAgIHsKCQkJCSAgICRyZXRbJGldID0gJGFmaWVsZC0+R2V0TmFtZSgpOwogICAgICAgICAgICAgICB9CgkJCQl9CgkJCX0KCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBnZXRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcikKCXsKCQkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkdmFsID0gIiI7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJHNvcnRGaWVsZE51bWJlciwnLTEnKSAhPSAnLTEnKQoJCQl7CgkJCSRhZmllbGQgPSAkZm9ybS0+R2V0RmllbGRCeUlkKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJHNvcnRGaWVsZE51bWJlcikpOwogICAgICAgICBpZiAoJGFmaWVsZCAhPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHZhbCA9ICRhZmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICB9CgkJCX0KCQlpZiAoc3RybGVuKCR2YWwpID4gODApCgkJCXsKCQkJJHZhbCA9IHN1YnN0cigkdmFsLDAsODApOwoJCQl9CgkJcmV0dXJuICR2YWw7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnOwogICAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CgkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7CgkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSR2YWwgPSAnJzsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKCQl7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWVbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICRodG1sNSA9ICcgcGxhY2Vob2xkZXI9IicuJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLiciJzsKCQkgICAgICAgIGlmICgkdGhpcy0+SXNSZXF1aXJlZCgpKSB7CgkJICAgICAgICAgICAgICAgICRodG1sNSAuPSAnIHJlcXVpcmVkJzsKCQkgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZVswXSA/ICR0aGlzLT5WYWx1ZVswXSA6ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgb25mb2N1cz0iaWYodGhpcy52YWx1ZT09dGhpcy5kZWZhdWx0VmFsdWUpIHRoaXMudmFsdWU9XCdcJzsiIG9uYmx1cj0iaWYodGhpcy52YWx1ZT09XCdcJykgdGhpcy52YWx1ZT10aGlzLmRlZmF1bHRWYWx1ZTsiJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoJCSRyZXRzdHIgPSAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR2YWwsIEVOVF9RVU9URVMpLAogICAgICAgICAgICAJCTI1LCAxMjgsICRqcy4kaHRtbDUuJHRoaXMtPkdldENTU0lkVGFnKCdfMScpLCdlbWFpbCcpOwoKIAkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbmRfdXNlcl9jb3B5JywnbicpID09ICdjJykKCQkJewoJCQkkcmV0c3RyIC49ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgMSwKCQkJCQkoaXNzZXQoJHRoaXMtPlZhbHVlWzFdKT8gJHRoaXMtPlZhbHVlWzFdIDowICksJHRoaXMtPkdldENTU0lkVGFnKCdfMicpKTsKCQkJJHJldHN0ciAuPSAnPGxhYmVsIGZvcj0iJy4kdGhpcy0+R2V0Q1NTSWQoJ18yJykuJyIgY2xhc3M9ImxhYmVsIj4nLiR0aGlzLT5HZXRPcHRpb24oJ3NlbmRfdXNlcl9sYWJlbCcsCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9zZW5kX21lX2FfY29weScpKS4nPC9sYWJlbD4nOwoJCQl9CgkJcmV0dXJuICRyZXRzdHI7Cgl9CgoJZnVuY3Rpb24gR2V0Q1NTSWQoJHN1ZmZpeD0nJykKCXsKCQkkYWxpYXMgPSAkdGhpcy0+R2V0QWxpYXMoKTsKCQlpZiAoZW1wdHkoJGFsaWFzKSkKCQkJewoJCQkkY3NzaWQgPSAnZmJycF9fJy4kdGhpcy0+SWQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJJGNzc2lkID0gJGFsaWFzOwoJCQl9CgoJCWlmIChlbXB0eSgkc3VmZml4KSkKCQkJewoJCQkkY3NzaWQgLj0gJ18xJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY3NzaWQgLj0gJHN1ZmZpeDsKCQkJfQoJCXJldHVybiAkY3NzaWQ7Cgl9CgogICBmdW5jdGlvbiBIYXNWYWx1ZSgkZGVueV9ibGFua19yZXNwb25zZXM9ZmFsc2UpCiAgIHsKICAgCXJldHVybiAoJHRoaXMtPlZhbHVlWzBdICE9PSBmYWxzZSAmJiAhZW1wdHkoJHRoaXMtPlZhbHVlWzBdKSk7CiAgIH0KCiAgCWZ1bmN0aW9uIEdldFZhbHVlKCkKICAJewogICAgCXJldHVybiAkdGhpcy0+VmFsdWVbMF07CiAgCX0KCiAgCSMgcmVtb3ZlZCBieSBKbyBNb3JnOiB0aGlzIGlzIHBhcnQgb2YgdGhlIHByb2JsZW0gd2l0aCBlbWFpbHMgdmFsaWRhdGlvbgovLyAgIGZ1bmN0aW9uIFNldFZhbHVlKCR2YWxTdHIpCi8vICAgewovLyAgICAgIGlmICghIGlzX2FycmF5KCR2YWxTdHIpKQovLyAgICAgICAgIHsKLy8gICAgICAgICAJIAovLyAgICAgICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR2YWxTdHIpOwovLyAgICAgICAgIH0KLy8gICAgICBlbHNlCi8vICAgICAgICAgewovLyAgICAgICAgICR0aGlzLT5WYWx1ZSA9ICR2YWxTdHI7Ci8vICAgICAgICAgfQovLyAgIH0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCWlmIChpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+VmFsdWVbMF07CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJfQoJfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpICE9IGZhbHNlICYmIAoJCQkoCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzZXJfY29weScsJ24nKSA9PSAnYScKCQkJCXx8CgkJCQkoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykgPT0gJ2MnICYmIGlzc2V0KCR0aGlzLT5WYWx1ZVsxXSkgJiYgJHRoaXMtPlZhbHVlWzFdID09IDEpCgkJCSkKCQkgKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPlZhbHVlWzBdLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7CgkJCX0KCSAgZWxzZQoJCXsKICAgICAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgICAgfQoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV91bnNoaWZ0KCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLDI1LDEwMjQpKSk7CgkJYXJyYXlfdW5zaGlmdCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0JyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMCcpLiRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKSk7CgoJCSRvcHRzID0gYXJyYXkoJG1vZC0+TGFuZygnb3B0aW9uX25ldmVyJyk9PiduJywkbW9kLT5MYW5nKCdvcHRpb25fdXNlcl9jaG9pY2UnKT0+J2MnLCRtb2QtPkxhbmcoJ29wdGlvbl9hbHdheXMnKT0+J2EnKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfdXNlcmNvcHknKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZW5kX3VzZXJfY29weScsICRvcHRzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykpKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZW5kX3VzZXJfbGFiZWwnLCAkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzZXJfbGFiZWwnLAoJCQkJJG1vZC0+TGFuZygndGl0bGVfc2VuZF9tZV9hX2NvcHknKSksMjUsMTI1KSkpOwoJCSRob3B0cyA9IGFycmF5KCRtb2QtPkxhbmcoJ29wdGlvbl9mcm9tJyk9PidmJywkbW9kLT5MYW5nKCdvcHRpb25fcmVwbHknKT0+J3InLCRtb2QtPkxhbmcoJ29wdGlvbl9ib3RoJyk9PidiJyk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hlYWRlcnNfdG9fbW9kaWZ5JywgJGhvcHRzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignaGVhZGVyc190b19tb2RpZnknLCdmJykpKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRtYWluQXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKCX0KCgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJJGh0bSA9ICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnZicpOwoJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCQl7CgkJCQkkcmVwbFZhbCA9ICcnOwoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYKICAgICAgICAgICAgICAgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCQl7CgkJCQkJaWYgKCRodG0gPT0gJ2YnIHx8ICRodG0gPT0gJ2InKQogICAgICAgICAgICAgICAgICB7CgkJCQkJICAgICRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPlZhbHVlWzBdKTsKCQkJCQkgICB9CiAgICAgICAgICAgICAgIGlmICgkaHRtID09ICdyJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9yZXBseV90b19hZGRyZXNzJywkdGhpcy0+VmFsdWVbMF0pOwogICAgICAgICAgICAgICAgICB9CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoKICAJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwogIAkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSAhPSAnbm9uZScpCgkJCXsKCQkgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5WYWx1ZVswXSkgJiYgICR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKCQkgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZVswXSkpCgkJICAgICAgICAgewoJCSAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwoJCSAgICAgICAgIH0KCQkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionMultiselectFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgZXh0ZW5kcyAgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3Rvcic7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5maWxlQWRkID0gMDsKCiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkY29uZmlnID0gJGdDbXMtPmdldENvbmZpZygpOwogICAgJHRoaXMtPmRmbHRfZmlsZXBhdGggPSAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXTsKICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmlsZUFkZCA9IDE7CiAgfQoKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgICAkZGVsY291bnQgPSAwOwogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZGlzcGxheW5hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJGRlbGNvdW50Kys7CgkgIH0KICAgICAgfQogIH0KCiAgZnVuY3Rpb24gY291bnRGaWxlcygpCiAgewogICAgJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkKICAgIC8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQogICAgLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCiAgICAkZGlzcGxheW5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZGlzcGxheW5hbWUnKTsKICAgICRkaXNwbGF5ZmlsZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9maWxlbmFtZScpOwogICAgJGRpc3BsYXl2YWx1ZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl92YWx1ZScpOwoKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRpc3BsYXluYW1lcyk7ICRpKysgKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSRjdHJsID0gbmV3IHN0ZENsYXNzKCk7CgkkY3RybC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJGRpc3BsYXluYW1lc1skaV0uJzwvbGFiZWw+JzsKCSRjdHJsLT50aXRsZSA9ICRkaXNwbGF5bmFtZXNbJGldOwoJJGN0cmwtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCSAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgCgkJCQkJCSAkZGlzcGxheXZhbHVlc1skaV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpbl9hcnJheSgkZGlzcGxheXZhbHVlc1skaV0sJHRoaXMtPlZhbHVlKSk/JGRpc3BsYXl2YWx1ZXNbJGldOictMScsCgkJCQkJCSAkdGhpcy0+R2V0Q1NTSWRUYWcoJ18nLiRpKS4kanMpOwoJJGZpZWxkc1tdID0gJGN0cmw7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGRzOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0bXAgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkgKQogICAgICB7Cglmb3JlYWNoKCAkdGhpcy0+VmFsdWUgYXMgJG9uZXZhbHVlICkKCSAgewoJICAgIGlmKCBlbXB0eSgkb25ldmFsdWUpICkgY29udGludWU7CgkgICAgCgkgICAgJHRtcFtdID0gJG9uZXZhbHVlOwoJICB9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgoKICAgIGlmICgkYXNfc3RyaW5nKQogICAgICB7CgkkdG1wID0gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRtcCk7CiAgICAgIH0KICAgIHJldHVybiAkdG1wOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHJldD0gJG1vZC0+TGFuZygnZmlsZV9jb3VudCcsJHRoaXMtPmZpbGVDb3VudCk7CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CgogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwoKCSR0aGlzLT5mb3JtX3B0ci0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgIGlmICgkaGVhZGVyID09ICcnKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPmZvcm1fcHRyLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTsKICAgICAgfSAKICAgICRoZWFkZXIgLj0gIlxuIjsKCiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Zm9ybV9wdHItPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KCiAgICAvLyBCZWdpbiBvdXRwdXQgdG8gZmlsZXMKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+VmFsdWUpICkKICAgICAgewoJJGRpc3BsYXlmaWxlcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CgkkZGlzcGxheXZhbHVlcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3ZhbHVlJyk7CgoJZm9yZWFjaCggJHRoaXMtPlZhbHVlIGFzICRvbmV2YWx1ZSApCgkgIHsKCSAgICAvLyBJIGR1bm5vIHdoeSBpdCdzIGVtcHR5IHNvbWV0aW1lcywgYnV0Li4uCgkgICAgaWYoIGVtcHR5KCRvbmV2YWx1ZSkgKSBjb250aW51ZTsKCSAgICAKCSAgICAkaWR4ID0gYXJyYXlfc2VhcmNoKCRvbmV2YWx1ZSwkZGlzcGxheXZhbHVlcyk7CgkgICAgCgkgICAgJHRtcCA9ICRkaXNwbGF5ZmlsZXNbJGlkeF07CgkgICAgLy8gZ2V0IHRoZSBmaWxlbmFtZQoJICAgICRmaWxlc3BlYyA9ICRkaXIuCgkgICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0bXApOwoJICAgIAoJICAgICRsaW5lID0gJHRlbXBsYXRlOwoJICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCgkgICAgICB7CgkJJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKCSAgICAgIH0KCSAgICAKCSAgICAkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKCSAgICAgIHsKCQkkbmV3bGluZSAuPSAiXG4iOwoJICAgICAgfQkKCSAgICAKCSAgICAkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKCSAgICBmd3JpdGUoJGYyLCRuZXdsaW5lKTsKCSAgICBmY2xvc2UoJGYyKTsgCgkgICAgCgkgIH0gLy8gZm9yZWFjaAogICAgICB9IC8vIGlmCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4nPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2ZpbGVuYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkZGVzdHMgLj0gJzwvdGFibGU+JzsKCgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkcGFybU1haW4gPSBhcnJheSgpOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV90ZW1wbGF0ZSddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfaGVhZGVyJ109dHJ1ZTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionPageRedirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3IgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICAgICAJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2Rlc3RpbmF0aW9uJyk7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9wYWdlJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJCXsKCQkJJGh0bWw1ID0gJyByZXF1aXJlZCc7CgkJfQoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CgkJCX0KCQkkc3ViamVjdHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9zdWJqZWN0Jyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSwgJGh0bWw1LiRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9wYWdlJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnZGVzdGluYXRpb25fY291bnQnLCRudW0pOwogICAgICAvLyAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CiAgIAkJJGdDbXMgPSBjbXNtcygpOwoJCWdsb2JhbCAkaWQ7CiAgICAJCSRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50QWRkcmVzc2VzKCk7CgkJaWYgKCR0aGlzLT5hZGRyZXNzQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+YWRkcmVzc0NvdW50ICs9ICR0aGlzLT5hZGRyZXNzQWRkOwoJCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPmFkZHJlc3NDb3VudD4xPyR0aGlzLT5hZGRyZXNzQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gICc8dHI+PHRkPic7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KTsKICAgICAgICAgICAgCQkkZGVzdHMgLj0gJzwvdGQ+PHRkPic7CgkJCSRkZXN0cyAuPSAgICAgCQkJJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywkaSksICRpZC4nZmJycF9vcHRfZGVzdGluYXRpb25fcGFnZVtdJyk7CgkJCSRkZXN0cyAuPSAnPC90ZD48dGQ+JzsKICAgICAgICAgICAgCQkkZGVzdHMgLj0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSk7CiAgICAgICAgICAgICAJCSRkZXN0cyAuPSAnPC90ZD48L3RyPic7CiAgICAgICAgICAgIAkJLy8kbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2Rlc3RpbmF0aW9uX3BhZ2VbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCRpKSwyNSwxMjgpLgoKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCS8vIGxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJJGFkdiA9IGFycmF5KCk7CgkJJG1haW4gPSBhcnJheSgpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCQkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSwyNSwxMjgpKSk7CgoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CiAgICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoKCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCS8vIElmIG5lZWRlZCwgbWFrZSBzdXJlIG90aGVyIGRpc3Bvc2l0aW9ucyBnZXQgcnVuIDFzdC5TZWUgIERpc3Bvc2UoJHJldHVybmlkKSBpbiBGb3JtIGNsYXNzLgoJCS8vIE5vdCByZWFsbHkgbmVlZGVkLCB0aGUgJ0Zyb21FbWFpbEFkZHJlc3NGaWVsZCcgYWxyZWFkeSBjYWxscyBtb2RpZnkgb3RoZXIgZmllbGRzLCBKdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoZSB0aGUgZW1haWwgcmVzdWx0cyB0aGluZ3MgYXJlIGxpc3RlZCBiZWZvcmUgdGhpcyBvbmUgYW5kIGV2ZXJ5dGhpbmcgc2hvdWxkIGJlIGZpbmUuCgkJLy8gcHJpbnRfcigkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CiAgICAJCSRnQ21zID0gY21zbXMoKTsKICAgIAkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkJJG1vZC0+UmVkaXJlY3RDb250ZW50KCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywoJHRoaXMtPlZhbHVlIC0gMSkpKTsKCQkvL3JldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJLy8JJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCgkdGhpcy0+VmFsdWUgLSAxKSkpOwoJCXJldHVybiBhcnJheSh0cnVlLCAnZXZlcnl0aGluZyB3b3JrZWQnKTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX3BhZ2UnKTsKICAJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CgkJaWYgKCRyZXQpCgkJCXsKCQkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJCX0JCQoJCWlmIChjb3VudCgkb3B0KSA9PSAwKQoJCQl7CgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpOwoJCQl9CgkgICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsKICAgIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUniqueFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAxMCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVW5pcXVlRmlsZSBleHRlbmRzIGZiRmllbGRCYXNlCnsKCglmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uVW5pcXVlRmlsZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSc7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CgoJCSR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBDb21wdXRlT3JkZXIoKQoJewoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdvcmRlcicsJzEnKTsKCX0KCglmdW5jdGlvbiBDb21wdXRlKCkKCXsKCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm09JHRoaXMtPmZvcm1fcHRyOwoJCSRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKCgkJJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCcnKTsKCQlpZiAoJGZpbGVzcGVjID09ICcnKQoJCXsKCQkJJGZpbGVzcGVjID0gJ2Zvcm1fc3VibWlzc2lvbl8nLmRhdGUoIlktbS1kX0hpcyIpLicudHh0JzsKCQl9CgkJJGV2YWxkX2ZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZmlsZXNwZWMpKTsKCQkkZmlsZXNwZWMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlcm9vdCcsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pLicvJy4kZXZhbGRfZmlsZW5hbWU7CgkJaWYgKHN0cnBvcygkZmlsZXNwZWMsJGNvbmZpZ1sncm9vdF9wYXRoJ10pICE9PSBGQUxTRSkKCQl7CgkJCSRyZWx1cmwgPSBzdHJfcmVwbGFjZSgkY29uZmlnWydyb290X3BhdGgnXSwnJywkZmlsZXNwZWMpOwoJCX0KCQkkdXJsID0gJGNvbmZpZ1sncm9vdF91cmwnXS4kcmVsdXJsOwoJCSR1cmwgPSBzdHJfcmVwbGFjZSgiXFwiLCAiLyIsICR1cmwpOwoJCSR0aGlzLT5TZXRWYWx1ZShhcnJheSgkZmlsZXNwZWMsICR1cmwsICRyZWx1cmwsICRldmFsZF9maWxlbmFtZSkpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7Cgl9CgoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCQkkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZm9ybT0kdGhpcy0+Zm9ybV9wdHI7CgkJJGNvdW50ID0gMDsKCQl3aGlsZSAoISAkbW9kLT5HZXRGaWxlTG9jaygpICYmICRjb3VudDwyMDApCgkJewoJCQkkY291bnQrKzsKCQkJdXNsZWVwKDUwMCk7CgkJfQoJCWlmICgkY291bnQgPT0gMjAwKQoJCXsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKCQl9CgoJCSRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKCgkJJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCcnKTsKCQlpZiAoJGZpbGVzcGVjID09ICcnKQoJCXsKCQkJJGZpbGVzcGVjID0gJ2Zvcm1fc3VibWlzc2lvbl8nLmRhdGUoIlktbS1kX0hpcyIpLicudHh0JzsKCQl9CgkJJGV2YWxkX2ZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZmlsZXNwZWMpKTsKCgkJJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXJvb3QnLCRjb25maWdbJ3VwbG9hZHNfcGF0aCddKS4nLycuJGV2YWxkX2ZpbGVuYW1lOwoKCQkkbGluZSA9ICcnOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3R5cGUnLCdmYWxzZScpID09IDApCgkJeyAvLyBJZiBGaWxlIFR5cGUgaXMgIlRYVCIKCQkJLy8gQ2hlY2sgaWYgZmlyc3QgdGltZSwgd3JpdGUgaGVhZGVyCgkJCWlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCgkJCXsKCQkJCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoKCQkJCWlmKCRoZWFkZXIgIT0gJycpCgkJCQl7CgkJCQkJJGhlYWRlciA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRoZWFkZXIpOwoJCQkJfQoJCQl9CgoJCQkvLyBNYWtlIG5ld2xpbmUgIAoJCQkkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CgkJCWlmICgkdGVtcGxhdGUgPT0gJycpCgkJCXsKCQkJCSR0ZW1wbGF0ZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwoJCQl9CgkJCSRsaW5lID0gJHRlbXBsYXRlOwoKCQkJJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbGluZSk7CgkJCSRyZXBsY2hhciA9ICR0aGlzLT5HZXRPcHRpb24oJ25ld2xpbmVjaGFyJywnJyk7CgkJCWlmICgkcmVwbGNoYXIgIT0gJycpCgkJCXsKCQkJCSRuZXdsaW5lID0gcnRyaW0oJG5ld2xpbmUsIlxyXG4iKTsKCQkJCSRuZXdsaW5lID0gcHJlZ19yZXBsYWNlKCcvW1xuXHJdLycsJHJlcGxjaGFyLCRuZXdsaW5lKTsKCQkJfQoJCQlpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCgkJCXsKCQkJCSRuZXdsaW5lIC49ICJcbiI7CgkJCX0KCgkJCS8vIEdldCBmb290ZXIKCQkJJGZvb3RlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZm9vdGVyJywnJyk7CgoJCQlpZigkZm9vdGVyICE9ICcnKQoJCQl7CgkJCQkkZm9vdGVyID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGZvb3Rlcik7CgkJCX0KCgkJCS8vIFdyaXRlIGZpbGUKCQkJaWYoZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKCQkJewoJCQkJJHJvd3MgPSBmaWxlKCRmaWxlc3BlYyk7CgkJCQkkZnAgPSBmb3BlbigkZmlsZXNwZWMsICd3Jyk7CgoJCQkJZm9yZWFjaCgkcm93cyBhcyAkb25lbGluZSkKCQkJCXsKCQkJCQlpZihzdWJzdHIoJGZvb3RlciwgMCwgc3RybGVuKCRvbmVsaW5lKSkgPT0gJG9uZWxpbmUpCgkJCQkJewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQkJZndyaXRlKCRmcCwkb25lbGluZSk7CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkZnAgPSBmb3BlbigkZmlsZXNwZWMsICd3Jyk7CgkJCX0KCgkJCWZ3cml0ZSgkZnAsJGhlYWRlci4kbmV3bGluZS4kZm9vdGVyKTsKCQkJZmNsb3NlKCRmcCk7CgkJfQoJCWVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdHlwZScsJ2ZhbHNlJykgPT0gMSkKCQl7IC8vIElmIEZpbGUgVHlwZSBpcyAiUlRGIgoJCQkkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKCQkJaWYgKCRoZWFkZXIgIT0gJycpIHsKCQkJCSRoZWFkZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaGVhZGVyKTsKCQkJfQoJCQkkaGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvKFxyXG4pLycsICdccGFyJDEnLCAkaGVhZGVyKTsKCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3J0Zl90ZW1wbGF0ZV90eXBlJykgPT0gMCkKCQkJeyAvLyBJZiB0aGUgUlRGIFRlbXBsYXRlIFR5cGUgaXMgQmFzaWMKCQkJCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKCQkJCWlmICgkdGVtcGxhdGUgPT0gJycpIHsKCQkJCQkkdGVtcGxhdGUgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKCQkJCX0KCQkJCSR0ZW1wbGF0ZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0ZW1wbGF0ZSk7CgkJCQkkdGVtcGxhdGUgPSBwcmVnX3JlcGxhY2UoJy8oXHJcbikvJywgJ1xwYXIkMScsICR0ZW1wbGF0ZSk7CgkJCX0KCQkJZWxzZSBpZiAoJHRoaXMtPkdldE9wdGlvbigncnRmX3RlbXBsYXRlX3R5cGUnKSA9PSAxKQoJCQl7IC8vIElmIHRoZSBSVEYgVGVtcGxhdGUgVHlwZSBpcyBBZHZhbmNlZAoJCQkJJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvJy4kdGhpcy0+R2V0T3B0aW9uKCdydGZfZmlsZV90ZW1wbGF0ZScsJ1JURl9UZW1wbGF0ZUFkdmFuY2VkLnJ0ZicpKTsKCgkJCQkvLyBUbyBhdm9pZCB0aGUgU21hcnR5IFBhcnNlciBlYXRpbmcgdGhlIFJURiBUYWdzICh3aGljaCBhbHNvIHVzZSBjdXJseSBicmFjZXMpLCB3ZSBuZWVkIHRvIHN3YXAgdGhlIGN1cmx5IGJyYWNlcyB0ZW1wb3JhcmlseQoJCQkJLy8gdG8gcGFyc2UgIlNtYXJ0eSIgdGFncyBpbiB0aGUgUlRGIFRlbXBsYXRlLiBUbyB1c2UgU21hcnR5IHRhZ3MgaW4gdGhlIHRlbXBsYXRlLCB3ZSdsbCBoYXZlIHRvIHVzZSBhIHVuaXF1ZSBlbmNsb3N1cmUgb2YgCgkJCQkvLyBwZXJjZW50IHNpZ24gYW5kIHNxdWFyZSBicmFja2V0ICglW1RBR10lKSBpbnN0ZWFkIG9mIGN1cmx5IGJyYWNlcy4KCQkJCSRzZWFyY2ggPSBhcnJheSgieyIsICJ9IiwgIiVbIiwgIl0lIik7CgkJCQkkcmVwbGFjZSA9IGFycmF5KCI8UlRGX1RBRz4iLCAiPC9SVEZfVEFHPiIsICJ7IiwgIn0iKTsKCQkJCSR0ZW1wbGF0ZSA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICRyZXBsYWNlLCAkdGVtcGxhdGUpOwoJCQkJJHRlbXBsYXRlID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsKCQkJCSRzZWFyY2ggPSBhcnJheSgiPFJURl9UQUc+IiwgIjwvUlRGX1RBRz4iKTsKCQkJCSRyZXBsYWNlID0gYXJyYXkoInsiLCAifSIpOwoJCQkJJHRlbXBsYXRlID0gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICR0ZW1wbGF0ZSk7CgkJCX0KCQkJJGZvb3RlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZm9vdGVyJywnJyk7CgkJCWlmICgkZm9vdGVyICE9ICcnKSB7CgkJCQkkZm9vdGVyID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGZvb3Rlcik7CgkJCX0KCQkJJGZvb3RlciA9IHByZWdfcmVwbGFjZSgnLyhcclxuKS8nLCAnXHBhciQxJywgJGZvb3Rlcik7CgoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncnRmX3RlbXBsYXRlX3R5cGUnKSA9PSAwKQoJCQl7IC8vIEJhc2ljCgkJCQkkcnRmX3RlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvJy4kdGhpcy0+R2V0T3B0aW9uKCdydGZfZmlsZV90ZW1wbGF0ZScsJ1JURl9UZW1wbGF0ZUJhc2ljLnJ0ZicpKTsKCQkJCSRzZWFyY2ggPSBhcnJheSgiJSVIRUFERVIlJSIsICIlJUZJRUxEUyUlIiwgIiUlRk9PVEVSJSUiKTsKCQkJCSRyZXBsYWNlID0gYXJyYXkoJGhlYWRlciwgJHRlbXBsYXRlLCAkZm9vdGVyKTsKCQkJCSRydGZfY29udGVudCA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICRyZXBsYWNlLCAkcnRmX3RlbXBsYXRlKTsKCQkJfQoJCQllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdydGZfdGVtcGxhdGVfdHlwZScpID09IDEpCgkJCXsgLy8gQWR2YW5jZWQKCQkJCSRzZWFyY2ggPSBhcnJheSgiJSVIRUFERVIlJSIsICIlJUZPT1RFUiUlIik7CgkJCQkkcmVwbGFjZSA9IGFycmF5KCRoZWFkZXIsICRmb290ZXIpOwoJCQkJJHJ0Zl9jb250ZW50ID0gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICR0ZW1wbGF0ZSk7CgkJCX0KCgkJCSRwdXQgPSBmaWxlX3B1dF9jb250ZW50cygkZmlsZXNwZWMsICRydGZfY29udGVudCk7CgkJfQoKCQlpZiAoc3RycG9zKCRmaWxlc3BlYywkY29uZmlnWydyb290X3BhdGgnXSkgIT09IEZBTFNFKQoJCXsKCQkJJHJlbHVybCA9IHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfcGF0aCddLCcnLCRmaWxlc3BlYyk7CgkJfQoJCSR1cmwgPSAkY29uZmlnWydyb290X3VybCddLiRyZWx1cmw7CgkJJHVybCA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJHVybCk7CgoJCSR0aGlzLT5TZXRWYWx1ZShhcnJheSgkZmlsZXNwZWMsICR1cmwsICRyZWx1cmwsICRldmFsZF9maWxlbmFtZSkpOwoKCQkkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwoJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCX0KCglmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsU3RyKQoJewoJCS8vZXJyb3JfbG9nKCR0aGlzLT5HZXROYW1lKCkuJzonLnByaW50X3IoJHZhbFN0cix0cnVlKSk7CgkJJGZtID0gJHRoaXMtPmZvcm1fcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCXsKCQkJaWYgKGlzX2FycmF5KCR2YWxTdHIpKQoJCQl7CgkJCQkkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwoJCQkJZm9yICgkaT0wOyRpPGNvdW50KCR0aGlzLT5WYWx1ZSk7JGkrKykKCQkJCXsKCQkJCQl3aGlsZSAoJHRoaXMtPlZhbHVlWyRpXSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pKQoJCQkJCXsKCQkJCQkJJHRoaXMtPlZhbHVlWyRpXSA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHRoaXMtPlZhbHVlWyRpXSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJd2hpbGUgKCR0aGlzLT5WYWx1ZSAhPT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKSkKCQkJCXsKCQkJCQkkdGhpcy0+VmFsdWUgPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpOwoJCQkJfQoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCWlmIChpc19hcnJheSgkdmFsU3RyKSkKCQkJewoJCQkJZm9yICgkaT0wOyRpPGNvdW50KCR2YWxTdHIpOyRpKyspCgkJCQl7CgkJCQkJd2hpbGUgKCR2YWxTdHJbJGldICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0clskaV0pKQoJCQkJCXsKCQkJCQkJJHZhbFN0clskaV0gPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHJbJGldKTsKCQkJCQl9CgkJCQl9CgkJCQkkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJd2hpbGUgKCR2YWxTdHIgIT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKSkKCQkJCXsKCQkJCQkkdmFsU3RyID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKTsKCQkJCX0KCQkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCQl7CgkJCQkJJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJCWFycmF5X3B1c2goJHRoaXMtPlZhbHVlLCR2YWxTdHIpOwoJCQl9CgkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJGFzX3N0cmluZyAmJiBpc19hcnJheSgkdGhpcy0+VmFsdWUpICYmIGlzc2V0KCR0aGlzLT5WYWx1ZVsxXSkpCgkJewoJCQlyZXR1cm4gJHRoaXMtPlZhbHVlWzFdOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gJHRoaXMtPlZhbHVlOwoJCX0KCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJJGZpbGVfdHlwZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdHlwZScsJ2ZhbHNlJyk7CgkJJHJ0Zl90ZW1wbGF0ZV90eXBlID0gJHRoaXMtPkdldE9wdGlvbigncnRmX3RlbXBsYXRlX3R5cGUnLCdmYWxzZScpOwoKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJJHBhcm1NYWluID0gYXJyYXkoKTsKCQkkcGFybU1haW5bJ29wdF9maWxlX3RlbXBsYXRlJ11bJ2lzX29uZWxpbmUnXT10cnVlOwoJCSRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwoJCSRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX2hlYWRlciddPXRydWU7CgkJJHBhcm1NYWluWydvcHRfZmlsZV9mb290ZXInXVsnaXNfb25lbGluZSddPXRydWU7CgkJJHBhcm1NYWluWydvcHRfZmlsZV9mb290ZXInXVsnaXNfZm9vdGVyJ109dHJ1ZTsKCgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3Jvb3QnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVyb290JywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVyb290JywkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSksODAsMjU1KS4nPGJyIC8+Jy4KCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJykpKTsKCgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX25hbWUnKSwKCQkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVzcGVjJywKCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJycpLDgwLDI1NSksCgkJCQkkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwoKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X25ld2xpbmVjaGFyJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ25ld2xpbmVjaGFyJywnJyksNSwxNSkuJzxiciAvPicuCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnKSkpOwoKCQkvLyBhcnJheSgiVGV4dCBkaXNwbGF5ZWQgaW4gb3B0aW9uIHRhZyIgPT4gIlZhbHVlIG9mIG9wdGlvbiB0YWciKTsKCQkkZmlsZV90eXBlX2xpc3QgPSBhcnJheSgiVFhUIj0+MCwKCQkJIlJURiI9PjEpOwoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3R5cGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJJ2ZicnBfb3B0X2ZpbGVfdHlwZScsJGZpbGVfdHlwZV9saXN0LAoJCQkJCSRmaWxlX3R5cGUpKSk7CgoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9ydGZfZmlsZV90ZW1wbGF0ZScpLAoJCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcnRmX2ZpbGVfdGVtcGxhdGUnLCAkdGhpcy0+R2V0T3B0aW9uKCdydGZfZmlsZV90ZW1wbGF0ZScsJ1JURl9UZW1wbGF0ZUJhc2ljLnJ0ZicpLCA1MCwgMjU1KSwKCQkJCSRtb2QtPkxhbmcoJ2hlbHBfcnRmX2ZpbGVfdGVtcGxhdGUnKSkpKTsKCgkJJHJ0Zl90ZW1wbGF0ZV90eXBlX2xpc3QgPSBhcnJheSgiQmFzaWMiPT4wLAoJCQkiQWR2YW5jZWQiPT4xKTsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnKSwKCQkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJJ2ZicnBfb3B0X3J0Zl90ZW1wbGF0ZV90eXBlJywkcnRmX3RlbXBsYXRlX3R5cGVfbGlzdCwKCQkJCQkkcnRmX3RlbXBsYXRlX3R5cGUpLAoJCQkJJG1vZC0+TGFuZygnaGVscF9ydGZfdGVtcGxhdGVfdHlwZScpCgkJCSkpKTsKCgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJyksCgkJCWFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKSwgJ2ZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLCcnLDExLDI2KSwKCQkJCSRtb2QtPkxhbmcoJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnKS4iXG4iLgoJCQkJCQkkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwoKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9oZWFkZXInKSwKCQkJYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnKSwKCQkJCSRtb2QtPkxhbmcoJ2hlbHBfZmlsZV9oZWFkZXJfdGVtcGxhdGUnKSkpKTsKCgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfZm9vdGVyJyksCgkJCWFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZm9vdGVyJywnJyksICdmYnJwX29wdF9maWxlX2Zvb3RlcicsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcpLAoJCQkJJG1vZC0+TGFuZygnaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZScpKSkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUserTag.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVXNlclRhZyBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uVXNlclRhZygmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvblVzZXJUYWcnOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2V4cG9ydF9mb3JtJywnMCcpID09ICcxJykKICAgICAgewogICAgICAkcGFyYW1zWydGT1JNJ10gPSAkdGhpcy0+Zm9ybV9wdHI7CiAgICAgIH0KICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRyZXBsVmFsID0gJyc7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgICRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkcmVwbFZhbCA9PSAnJykKCSAgICAgIHsKCQkgICAgJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgfQoJICB9CiAgICRuYW1lID0gJG90aGVyc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpOwoJJHBhcmFtc1skbmFtZV0gPSAkcmVwbFZhbDsKCSRpZCA9ICRvdGhlcnNbJGldLT5HZXRJZCgpOwoJJHBhcmFtc1snZmxkXycuJGlkXSA9ICRyZXBsVmFsOwoJJGFsaWFzID0gJG90aGVyc1skaV0tPkdldEFsaWFzKCk7CglpZiAoIWVtcHR5KCRhbGlhcykpCiAgICAgIHsKCSAgICRwYXJhbXNbJGFsaWFzXSA9ICRyZXBsVmFsOwoJICAgfQogICB9CgoJJHRoaXMtPmZvcm1fcHRyLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICRnQ21zID0gY21zbXMoKTsKICAgICR1c2VydGFnb3BzID0gJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAkcmVzID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJyksICRwYXJhbXMpOwoKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwkbW9kLT5MYW5nKCdlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJykpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CgogICAgJGdDbXMgPSBjbXNtcygpOwogICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdXNlcnRhZ3MgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICB7CgkkdXNlcnRhZ2xpc3RbJHZhbHVlXSA9ICRrZXk7CiAgICAgIH0KICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91ZHRfbmFtZScpLAoJCSAgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAnZmJycF9vcHRfdWR0bmFtZScsJHVzZXJ0YWdsaXN0LC0xLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKSkpOwogICAgICAkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2V4cG9ydF9mb3JtJywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZXhwb3J0X2Zvcm0nLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdleHBvcnRfZm9ybScsJzAnKSkpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkSWQ9LTE7CiAgdmFyICRGb3JtSWQ7CiAgdmFyICROYW1lOwogIHZhciAkVHlwZTsKICB2YXIgJFJlcXVpcmVkPS0xOwogIHZhciAkT3JkZXJCeTsKICB2YXIgJEhpZGVMYWJlbD0tMTsKICB2YXIgJEhhc0xhYmVsPTE7CiAgdmFyICROZWVkc0Rpdj0xOwogIHZhciAkU21hcnR5RXZhbDsKCiAgdmFyICRWYWxpZGF0aW9uVHlwZXM7CiAgdmFyICRWYWxpZGF0aW9uVHlwZTsKICB2YXIgJHZhbGlkYXRlZCA9IHRydWU7CiAgdmFyICR2YWxpZGF0aW9uRXJyb3JUZXh0OwoKICB2YXIgJERpc3BsYXlJbkZvcm07CiAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogIHZhciAkRGlzcG9zaXRpb25QZXJtaXR0ZWQ7CiAgdmFyICRJc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIHZhciAkTm9uUmVxdWlyYWJsZUZpZWxkOwogIHZhciAkSGFzQWRkT3A7CiAgdmFyICRIYXNEZWxldGVPcDsKICB2YXIgJEhhc1VzZXJBZGRPcDsKICB2YXIgJEhhc1VzZXJEZWxldGVPcDsKICB2YXIgJG1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgdmFyICRoYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIHZhciAkbGFiZWxTdWJDb21wb25lbnRzOwoKICB2YXIgJFZhbHVlPWZhbHNlOwogIHZhciAkZm9ybV9wdHI7CiAgdmFyICRPcHRpb25zOwogIHZhciAkbG9hZGVkOwogIHZhciAkc29ydGFibGU7CgogIGZ1bmN0aW9uIGZiRmllbGRCYXNlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKCgkkdGhpcy0+Zm9ybV9wdHIgPSAkZm9ybV9wdHI7CgkkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJHRoaXMtPk9wdGlvbnMgPSBhcnJheSgpOwoJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwoJJHRoaXMtPklzRGlzcG9zaXRpb24gPSBmYWxzZTsKCSR0aGlzLT5Jc0VtYWlsRGlzcG9zaXRpb24gPSBmYWxzZTsKCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKCSR0aGlzLT5sb2FkZWQgPSBmYWxzZTsKCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCSR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwoJJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CgkkdGhpcy0+SGFzVXNlckFkZE9wID0gZmFsc2U7CgkkdGhpcy0+SGFzVXNlckRlbGV0ZU9wID0gZmFsc2U7CgkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwoJJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSBmYWxzZTsKCSR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZCA9IHRydWU7CgkkdGhpcy0+U21hcnR5RXZhbCA9IGZhbHNlOwoJJHRoaXMtPmxhYmVsU3ViQ29tcG9uZW50cyA9IHRydWU7CgkkdGhpcy0+c29ydGFibGUgPSB0cnVlOwoJJHRoaXMtPklzQ29tcHV0ZWRPblN1Ym1pc3Npb24gPSBmYWxzZTsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkgewoJCgkJJHRoaXMtPkZvcm1JZCA9ICRwYXJhbXNbJ2Zvcm1faWQnXTsKICAgIH0KCQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pKSB7CgkKCQkkdGhpcy0+SWQgPSAkcGFyYW1zWydmaWVsZF9pZCddOwogICAgfQoJCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF9uYW1lJ10pKSB7CgkKCQkkdGhpcy0+TmFtZSA9ICRwYXJhbXNbJ2ZicnBfZmllbGRfbmFtZSddOwogICAgfQoJCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10pKSB7CgkKCQkkdGhpcy0+VHlwZSA9ICRwYXJhbXNbJ2ZicnBfZmllbGRfdHlwZSddOwogICAgfSBlbHNlIHsKCQoJCSR0aGlzLT5UeXBlID0gJyc7CiAgICB9CgkKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX29yZGVyX2J5J10pKSB7CgoJCSR0aGlzLT5PcmRlckJ5ID0gJHBhcmFtc1snZmJycF9vcmRlcl9ieSddOwogICAgfQoJCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9oaWRlX2xhYmVsJ10pKSB7CgkKCQkkdGhpcy0+SGlkZUxhYmVsID0gJHBhcmFtc1snZmJycF9oaWRlX2xhYmVsJ107CiAgICB9IGVsc2VpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zZXRfZnJvbV9mb3JtJ10pKSB7CgkKCQkkdGhpcy0+SGlkZUxhYmVsID0gMDsKICAgIH0KCQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfcmVxdWlyZWQnXSkpIHsKCQoJCSR0aGlzLT5SZXF1aXJlZCA9ICRwYXJhbXNbJ2ZicnBfcmVxdWlyZWQnXTsKICAgIH0gZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NldF9mcm9tX2Zvcm0nXSkpIHsKCQoJCSR0aGlzLT5SZXF1aXJlZCA9IDA7CiAgICB9CgkKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3ZhbGlkYXRpb25fdHlwZSddKSkgewoJCgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHBhcmFtc1snZmJycF92YWxpZGF0aW9uX3R5cGUnXTsKICAgIH0KCiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWwpIHsKCQoJCWlmIChzdWJzdHIoJHRoaXNQYXJhbUtleSwwLDkpID09ICdmYnJwX29wdF8nKSB7CgkJCgkJCSR0aGlzUGFyYW1LZXkgPSBzdWJzdHIoJHRoaXNQYXJhbUtleSw5KTsKCQkJJHRoaXMtPk9wdGlvbnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJCX0KICAgIH0KCgkvLyBDaGVjayB2YWx1ZSBzZXR1cCBhZ2FpbnN0ICRwYXJhbXMKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pICYmIChpc19hcnJheSgkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pIHx8IHN0cmxlbigkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pID4gMCkpIHsKCQoJICAgJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ2ZicnBfXycuJHRoaXMtPklkXSk7CiAgICB9CgkJCiAgfSAvLyBlbmQgb2YgX19jb25zdHJ1Y3QoKQoKICBmdW5jdGlvbiBIYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHM7CiAgfQoKICBmdW5jdGlvbiBMYWJlbFN1YkNvbXBvbmVudHMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzOwogIH0KCiAgZnVuY3Rpb24gQ29tcHV0ZU9uU3VibWlzc2lvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIH0KICAKICAvLyBvdmVycmlkZSBtZSAKICBmdW5jdGlvbiBDb21wdXRlT3JkZXIoKQogIHsKICAJcmV0dXJuIDA7CiAgfQoKICBmdW5jdGlvbiBIYXNNdWx0aXBsZVZhbHVlcygpCiAgewogIAlpZiAoJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgfHwgJHRoaXMtPkhhc1VzZXJBZGRPcCkKICAJCXsKICAJCXJldHVybiB0cnVlOwogIAkJfQogIAllbHNlCiAgCQl7CiAgCQlyZXR1cm4gZmFsc2U7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0SWQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIHJldHVybiAkaWQuJ2ZicnBfXycuJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gTW9kaWZpZXNPdGhlckZpZWxkcygpCiAgewogICAgcmV0dXJuICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzOwogIH0KCiAgLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gRGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZDsKICB9CgogIC8vIG1lY2hhbmlzbSBmb3IgZmllbGRzL2Rpc3Bvc2l0aW9ucyB0byBpbmhpYml0IG90aGVyIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIFNldERpc3Bvc2l0aW9uUGVybWlzc2lvbigkcGVybWl0dGVkPXRydWUpCiAgewogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gJHBlcm1pdHRlZDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UgbmVlZCB0byBkbyBzb21ldGhpbmcgYWZ0ZXIgdGhlIGZvcm0gaGFzIGJlZW4gZGlzcG9zZWQKICBmdW5jdGlvbiBQb3N0RGlzcG9zaXRpb25BY3Rpb24oKQogIHsKCXJldHVybjsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBqdXN0IHR3ZWFraW5nIG90aGVyIGZpZWxkcyBiZWZvcmUgZGlzcG9zaXRpb24KICBmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBhIGZvcm0gaW5wdXQgc3RyaW5nIG9yIHNvbWV0aGluZwogIC8vIHRoaXMgc2hvdWxkIGp1c3QgYmUgdGhlIGlucHV0IHBvcnRpb24uIFRoZSB0aXRsZQogIC8vIGFuZCBhbnkgd3JhcHBpbmcgZGl2cyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBmb3JtCiAgLy8gcmVuZGVyZXIuCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgLy8gU2VuZHMgbG9naWMgYWxvbmcgd2l0aCBmaWVsZCwgYWxzbyBhbGxvd3Mgc21hcnR5IGxvZ2ljCiAgLy8gRG9zZW4ndCBuZWVkIG92ZXJyaWRlIGluIG1vc3QgY2FzZXMKICBmdW5jdGlvbiBHZXRGaWVsZExvZ2ljKCkgCiAgewoJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRjb2RlID0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfbG9naWMnLCcnKTsKCQoJaWYoIWVtcHR5KCRjb2RlKSkgewoJCgkJcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRjb2RlKTsKCX0KICB9CiAgCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBzb21ldGhpbmcgdG8gc2hvdyB1c2VycwogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCiAgewogICAgJHRtcCA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0aGlzLT5mb3JtX3B0ciA9ICdbZnJtcHRyOiAnLiR0bXAtPkdldElkKCkuJ10nOwogICAgZGVidWdfZGlzcGxheSgkdGhpcyk7CiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAkdG1wOwogIH0KCiAgZnVuY3Rpb24gR2V0SWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SWQ7CiAgfQoKICBmdW5jdGlvbiBIYXNBZGRPcCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNBZGRPcDsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZQogIGZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwogIH0KCQogIGZ1bmN0aW9uIEhhc0RlbGV0ZU9wKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkhhc0RlbGV0ZU9wOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIHdoZW4gbmVjZXNzYXJ5IG9yIHVzZWZ1bAogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICB9CgogIC8vIG92ZXJyaWRlIG1lCiAgZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7CiAgfQoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAJJHRoaXMtPk5hbWUgPSAkbmFtZTsKICB9CiAgCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5OYW1lOwogIH0KCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwogIH0KCiAgZnVuY3Rpb24gR2V0VmFyaWFibGVOYW1lKCkKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHRoaXMtPk5hbWUpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7CiAgICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwogICAgICAkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CiAgICAgIGlmICgkcG9zICE9PSBmYWxzZSkKICAgICAgICAgewogICAgICAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKICAgICAgICAgfQogICAgICB9CiAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gR2V0Q1NTSWRUYWcoJHN1ZmZpeD0nJykKICB7CiAgICAgIHJldHVybiAnIGlkPSInLiR0aGlzLT5HZXRDU1NJZCgkc3VmZml4KS4nIic7CiAgfQoKICBmdW5jdGlvbiBHZXRDU1NJZCgkc3VmZml4PScnKQogIHsKCSRhbGlhcyA9ICR0aGlzLT5HZXRBbGlhcygpOwoJaWYgKGVtcHR5KCRhbGlhcykpCiAgICAgIHsKICAgICAgJGNzc2lkID0gJ2ZicnBfXycuJHRoaXMtPklkOwogICAgICBpZiAoJHRoaXMtPkhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKSkKICAgICAgICAgewogICAgICAgICAkY3NzaWQgLj0gJ18xJzsKICAgICAgICAgfQogICAgICB9CiAgIGVsc2UKICAgICAgewogICAgICAkY3NzaWQgPSAkYWxpYXM7CiAgICAgIH0KICAgJGNzc2lkIC49ICRzdWZmaXg7CiAgIHJldHVybiAkY3NzaWQ7CiAgfQoKICBmdW5jdGlvbiBTZXRBbGlhcygkYWxpYXMpCiAgewogICAgJHRoaXMtPlNldE9wdGlvbignZmllbGRfYWxpYXMnLCRhbGlhcyk7CiAgfQoKCiAgZnVuY3Rpb24gU2V0U21hcnR5RXZhbCgkYm9vbCkKICB7CiAgCSR0aGlzLT5TbWFydHlFdmFsID0gJGJvb2w7CiAgfQogIAogIGZ1bmN0aW9uIEdldFNtYXJ0eUV2YWwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+U21hcnR5RXZhbDsKICB9CgogIGZ1bmN0aW9uIEdldE9yZGVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk9yZGVyQnk7CiAgfQoKICBmdW5jdGlvbiBTZXRPcmRlcigkb3JkZXIpCiAgewogICAgJHRoaXMtPk9yZGVyQnkgPSAkb3JkZXI7CiAgfQoJCiAgZnVuY3Rpb24gR2V0RmllbGRUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlR5cGU7CiAgfQoKICBmdW5jdGlvbiBTZXRGaWVsZFR5cGUoJHR5cGUpCiAgewogICAgcmV0dXJuICR0aGlzLT5UeXBlID0gJHR5cGU7CiAgfQoKCQogIGZ1bmN0aW9uIElzRGlzcG9zaXRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+SXNEaXNwb3NpdGlvbjsKICB9CgogIGZ1bmN0aW9uIElzRW1haWxEaXNwb3NpdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0VtYWlsRGlzcG9zaXRpb247CiAgfQoKICBmdW5jdGlvbiBIYXNMYWJlbCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNMYWJlbDsKICB9CgogIGZ1bmN0aW9uIE5lZWRzRGl2KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5lZWRzRGl2OwogIH0KCgogIGZ1bmN0aW9uIFNldEhpZGVMYWJlbCgkaGlkZSkKICB7CiAgCSR0aGlzLT5IaWRlTGFiZWwgPSAkaGlkZT8xOjA7CiAgfQogIAkKICBmdW5jdGlvbiBIaWRlTGFiZWwoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJbkZvcm0oKQogIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUluRm9ybTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJblN1Ym1pc3Npb24oKQogIHsKICAgIC8vcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb247CiAgfQoKCQogIGZ1bmN0aW9uIElzTm9uUmVxdWlyYWJsZUZpZWxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZDsKICB9CgogIGZ1bmN0aW9uIElzUmVxdWlyZWQoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlJlcXVpcmVkID09IDE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCiAgewogICAgJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwogIH0KCiAgZnVuY3Rpb24gVG9nZ2xlUmVxdWlyZWQoKQogIHsKICAgICR0aGlzLT5SZXF1aXJlZCA9ICgkdGhpcy0+UmVxdWlyZWQ/MDoxKTsKICB9CgoKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwogIH0KCQogIGZ1bmN0aW9uIEdldFZhbGlkYXRpb25UeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0VmFsaWRhdGlvblR5cGUoJHRoZVR5cGUpCiAgewogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHRoZVR5cGU7CiAgfQoKICBmdW5jdGlvbiBJc1ZhbGlkKCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGVkOwogIH0KICAKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uRXJyb3JUZXh0KCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQogIGZ1bmN0aW9uIEdldERpc3BsYXlUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCdmaWVsZF90eXBlXycuJHRoaXMtPlR5cGUpOwogIH0KCgogIC8vIEJhc2UgYmFja2VuZGVkIGZpZWxkcyBjb25maWd1cmF0aW9uCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvciwkZGlzcG9zZU9ubHk9MCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCgkvLyBEbyB0aGUgZmllbGQgdHlwZSBjaGVjawogICAgaWYgKCR0aGlzLT5UeXBlID09ICcnKSB7CgkJaWYgKCRkaXNwb3NlT25seSA9PSAxKSB7CgkJCgkJCSR0eXBlSW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmRpc3BfZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJfSBlbHNlIHsKCQkKCQkJJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJfQogICAgfSBlbHNlIHsKCQoJCSR0eXBlSW5wdXQgPSAkdGhpcy0+R2V0RGlzcGxheVR5cGUoKS4kbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX2ZpZWxkX3R5cGUnLCAkdGhpcy0+VHlwZSk7CiAgICB9CgkJCgkvLyBJbml0IG1haW4gdGFiCQogICAgJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KQoJCQkpOwoKCS8vIEluaXQgYWR2YW5jZWQgdGFiCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKSB7CgkJCQoJCS8vIHZhbGlkYXRpb24gdHlwZXM/CgkJaWYgKGNvdW50KCR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSkgPiAxKSB7CgkJCgkJCSR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX3ZhbGlkYXRpb25fdHlwZScsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSwgLTEsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZSgpKTsKCQl9IGVsc2UgewoJCQoJCQkkdmFsaWRJbnB1dCA9ICRtb2QtPkxhbmcoJ2F1dG9tYXRpYycpOwoJCX0KCQkJCQoJCWlmICghJHRoaXMtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpIHsKCQkJYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSwkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfcmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCQl9CgkJCQkKCQlhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCgkJaWYoICR0aGlzLT5IYXNMYWJlbCA9PSAxICkgewoJCQkKCQkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2hpZGVfbGFiZWwnLCAxLCAkdGhpcy0+SGlkZUxhYmVsKCkpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZycpKSk7CgkJfQoKCQkkYWxpYXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwoJCWlmICgkYWxpYXMgPT0gJycpIHsKCQkJJGFsaWFzID0gJ2ZsZCcuJHRoaXMtPkdldElkKCk7CgkJfQoJCQoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfYWxpYXMnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmllbGRfYWxpYXMnLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycpLCA1MCkpKTsJCQkKCgkJaWYgKCR0aGlzLT5EaXNwbGF5SW5Gb3JtKCkpIHsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jc3NfY2xhc3MnLCAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKSwgNTApKSk7CgkJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWxwdGV4dCcpLCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2hlbHB0ZXh0JywnJyksICdmYnJwX29wdF9oZWxwdGV4dCcsJ21vZHVsZV9mYl9hcmVhX3Nob3J0JykpKTsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnKSwkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyksIAoJCQkJCQkJCSdmYnJwX29wdF9qYXZhc2NyaXB0JywnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCcnLCcnLCAnJywgJzgwJywgJzE1JywnJywnanMnKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnKSkpOwoJCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbG9naWMnKSwkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9sb2dpYycsJycpLCAKCQkJCQkJCQknZmJycF9vcHRfZmllbGRfbG9naWMnLCdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsJycsJycsICcnLCAnODAnLCAnMTUnKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9sb2dpY19sb25nJykpKTsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2h0bWw1JyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9odG1sNScsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2h0bWw1JywnMScsJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykpKSk7CgkJfQoJCiAgICB9IGVsc2UgewoJCgkJLy8gbm8gYWR2YW5jZWQgb3B0aW9ucyB1bnRpbCB3ZSBrbm93IG91ciB0eXBlCgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpLCRtb2QtPkxhbmcoJ25vdGljZV9zZWxlY3RfdHlwZScpKSk7CiAgICB9CgkJCQkKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCAnYWR2Jz0+JGFkdik7CiAgfQoJCgkKICAvLyBvdmVycmlkZSBtZS4KICAvLyBJIHJldHVybiBhbiB1Z2x5IGRhdGEgc3RydWN0dXJlOgogIC8vIEl0J3MgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCB0d28gaXRlbXMsICdtYWluJyBhbmQgJ2FkdicgKGZvciB0aGUKICAvLyBtYWluIGFuZCBhZHZhbmNlZCBzZXR0aW5nIHRhYnMpLgogIC8vIEVhY2ggb2YgdGhlc2UgaXMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgb2YgVGl0bGUgLyBJbnB1dCB2YWx1ZXMuCiAgLy8gVGhlIFRpdGxlIHdpbGwgYmUgZGlzcGxheWVkIGlmIGl0IGhhcyBhIGxlbmd0aDsKICAvLyB0aGUgIklucHV0IiBzaG91bGQgYmUgYSBGb3JtIGlucHV0IGZvciB0aGF0IGZpZWxkIGF0dHJpYnV0ZS9vcHRpb24KICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgcmV0dXJuIGFycmF5KCk7CiAgfQoKICAvLyBvdmVycmlkZSBtZS4KICAvLyBUaGlzIGdpdmVzIHlvdSBhIGNoYW5jZSB0byBhbHRlciB0aGUgYXJyYXkgY29udGVudHMgYmVmb3JlCiAgLy8gdGhleSBnZXQgcmVuZGVyZWQuIAogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgfQoKCiAgLy8gb3ZlcnJpZGUgbWUgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gUG9zdEZpZWxkU2F2ZVByb2Nlc3MoJiRwYXJhbXMpCiAgewogIH0KCgogIC8vIG5ldyBtZXRob2QgYXMgb2YgT2N0IDA5IHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBoZXJlIGFsbCBhbG9uZy4uLgogIGZ1bmN0aW9uIFJlbW92ZUFkbWluRmllbGQoJiRhcnJheSwgJGZpZWxkbmFtZSkKICB7CgkJJHJlcUluZGV4ID0gLTE7CiAgICAJZm9yICgkaT0wOyRpPGNvdW50KCRhcnJheSk7JGkrKykKICAgICAgCQl7CgkJCSAgIGlmICgkYXJyYXlbJGldLT50aXRsZSA9PSAkZmllbGRuYW1lKQoJICAJCQkgICB7CgkgICAgCQkgICAkcmVxSW5kZXggPSAkaTsKCSAgCQkJICAgfQogICAgICAJCX0KICAgIAlpZiAoJHJlcUluZGV4ICE9IC0xKQogICAgICAJCXsKCQkJICAgYXJyYXlfc3BsaWNlKCRhcnJheSwgJHJlcUluZGV4LDEpOwogICAgICAJCX0KICB9CgogIGZ1bmN0aW9uIENoZWNrRm9yQWR2YW5jZWRUYWIoJiRhZHZBcnJheSkKICAgewogICAgaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKICAgICAgewoJICAgJGFkdkFycmF5WzBdLT50aXRsZSA9ICRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpOwoJICAgJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKICAgICAgfQogICB9CgogIC8vIGNsZWFyIGZpZWxkcyB1bnVzZWQgYnkgaW52aXNpYmxlIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIEhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5LCAkaGlkZVJlcT10cnVlKQogIHsKCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCiAgICBpZiAoJGhpZGVSZXEpIHsKICAgICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJG1haW5BcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSk7CiAgICB9CgkKICAgIC8vIHJlbW92ZSB0aGUgImhpZGUgbmFtZSIgZmllbGQKICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfaGlkZV9sYWJlbCcpKTsKCQogICAgLy8gcmVtb3ZlIHRoZSAiY3NzIiBmaWVsZAogICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJGFkdkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSk7CgkKICAgIC8vIGhpZGUgImphdmFzY3JpcHQiCiAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkYWR2QXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnKSk7CgkKICAgIC8vIGhpZGUgImxvZ2ljIgogICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJGFkdkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9sb2dpYycpKTsJCgkKICAgIC8vIGhpZGUgImhlbHAgdGV4dCIKICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaGVscHRleHQnKSk7CgogICAgJHRoaXMtPkNoZWNrRm9yQWR2YW5jZWRUYWIoJGFkdkFycmF5KTsKICB9CgkKCiAgLy8gb3ZlcnJpZGUgbWUuIFJldHVybnMgYW4gYXJyYXk6IGZpcnN0IHZhbHVlIGlzIGEgdHJ1ZSBvciBmYWxzZSAod2hldGhlciBvciBub3QKICAvLyB0aGUgdmFsdWUgaXMgdmFsaWQpLCB0aGUgc2Vjb25kIGlzIGEgbWVzc2FnZQogIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICB7CiAgCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwogIAkkdGhpcy0+dmFsaWRhdGVkRXJyb3JUZXh0ID0gJyc7CiAgICByZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRlZEVycm9yVGV4dCk7CiAgfQoKCiAgLy8gb3ZlcnJpZGUgbWUhCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCiAgICAgIHsKCQkkcmV0ID0gJHRoaXMtPlZhbHVlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSAgJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJICB9CglpZiAoJGFzX3N0cmluZykKCQl7CgkJcmV0dXJuICRyZXQ7CgkJfQoJZWxzZQoJCXsKCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQogIH0KICAKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBHZXRBbGxIdW1hblJlYWRhYmxlVmFsdWVzKCkKICB7CgkJCgkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwkKCWlmKGluX2FycmF5KCdvcHRpb25fdmFsdWUnLCR0aGlzLT5HZXRPcHRpb25OYW1lcygpKSkgewoJCQoJCWlmKGNvdW50KCR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl92YWx1ZScpKSA+IDApIHsKCQkKCQkJcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl92YWx1ZScpOwoJCX0KCX0KCQoJcmV0dXJuIGZhbHNlOwogIH0JCgoKICAvLyBvdmVycmlkZSB0aGlzIGlmIHlvdSBoYXZlIHNvbWUgdW51c3VhbCBmb3JtYXQgZm9yIHZhbHVlcywKICAvLyBlc3BlY2lhbGx5IGlmICJmYWxzZSIgaXMgYSB2YWxpZCB2YWx1ZSEKICBmdW5jdGlvbiBIYXNWYWx1ZSgkZGVueV9ibGFua19yZXNwb25zZXM9ZmFsc2UpCiAgewogICAgaWYgKCR0aGlzLT5HZXRGaWVsZFR5cGUoKSA9PSAnVGV4dEZpZWxkJyB8fCAkdGhpcy0+R2V0RmllbGRUeXBlKCkgPT0gJ1RleHRBcmVhRmllbGQnKQogICAgewogICAgICAvLyBmaWVsZHMgd2l0aCBkZWZhdWx0cwogICAgICAkZGVmID0gJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsICcnKTsKICAgICAgCiAgICAgIGlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmICgkZGVmID09ICcnIHx8ICR0aGlzLT5WYWx1ZSAhPSAkZGVmKSApCiAgICAgIHsKICAgICAgICBpZiggJGRlbnlfYmxhbmtfcmVzcG9uc2VzICYmICFpc19hcnJheSgkdGhpcy0+VmFsdWUpICYmIHByZWdfbWF0Y2goJy9eXHMrJC8nLCR0aGlzLT5WYWx1ZSkgKQogICAgICAgIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICB9CiAgICAjZWxzZWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmICggaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBzdHJsZW4oIGltcGxvZGUoJycsICR0aGlzLT5WYWx1ZSkgKSA+IDApKQogICAgIyBeIFRoaXMgd291bGRuJ3Qgd29yazogYSB2YWx1ZSBjYW4ndCBzaW11bHRhbmVvdXNseSBiZSBhbmQgbm90IGJlIGFuIGFycmF5Li4uIChKTSkKICAgICMgc28gbm8gZml4IHRvIGJ1ZyAjNzM3MSB5ZXQgKEpNKQogICAgZWxzZWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKSAKICAgIHsKICAgICAgaWYgKCRkZW55X2JsYW5rX3Jlc3BvbnNlcyAmJiAoIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkgJiYgcHJlZ19tYXRjaCgnL15ccyskLycsICR0aGlzLT5WYWx1ZSkpKQogICAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIAogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfQoJCiAgLy8gcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzCiAgZnVuY3Rpb24gR2V0VmFsdWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsdWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0aGUgKHBvc3NpYmx5IGNvbnZlcnRlZCkgdmFsdWUgb2YgdGhlIGZpZWxkLgogIGZ1bmN0aW9uIEdldEFycmF5VmFsdWUoJGluZGV4KQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+VmFsdWVbJGluZGV4XSkpCgkgICAgICB7CgkJcmV0dXJuICR0aGlzLT5WYWx1ZVskaW5kZXhdOwoJICAgICAgfQoJICB9CgllbHNlaWYgKCRpbmRleCA9PSAwKQoJICB7CgkgICAgcmV0dXJuICR0aGlzLT5WYWx1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBjb250YWluZWQgaW4gdGhlIFZhbHVlIGFycmF5CiAgZnVuY3Rpb24gRmluZEFycmF5VmFsdWUoJHZhbHVlKQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgIHJldHVybiBhcnJheV9zZWFyY2goJHZhbHVlLCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWVsc2VpZiAoJHRoaXMtPlZhbHVlID09ICR2YWx1ZSkKCSAgewoJICAgIHJldHVybiB0cnVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIFJlc2V0VmFsdWUoKQogIHsKICAgICR0aGlzLT5WYWx1ZSA9IGZhbHNlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIGlmIG5lY2Vzc2FyeSB0byBjb252ZXJ0IHR5cGUgb3Igc29tZXRoaW5nLgogIGZ1bmN0aW9uIFNldFZhbHVlKCR2YWxTdHIpCiAgewoKICAvL2Vycm9yX2xvZygkdGhpcy0+R2V0TmFtZSgpLic6Jy5wcmludF9yKCR2YWxTdHIsdHJ1ZSkpOwogICAgJGZtID0gJHRoaXMtPmZvcm1fcHRyOwogICAgCiAgICBpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKICAgIHsKICAgICAgaWYgKCBpc19hcnJheSgkdmFsU3RyKSApCiAgICAgIHsKICAgICAgICAgJHRoaXMtPlZhbHVlID0gJHZhbFN0cjsKICAgICAgICAgCiAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCAkdGhpcy0+VmFsdWUgKSA7ICRpKyspCiAgICAgICAgIHsKICAgICAgICAgICAgd2hpbGUgKCAkdGhpcy0+VmFsdWVbJGldICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHRoaXMtPlZhbHVlWyRpXSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgJHRoaXMtPlZhbHVlWyRpXSA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHRoaXMtPlZhbHVlWyRpXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICB3aGlsZSAoJHRoaXMtPlZhbHVlICE9PSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpKQogICAgICAgICB7CgkgICAgICAgICAkdGhpcy0+VmFsdWUgPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpOwoJICAgICAgIH0KCSAgICB9CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIHdoaWxlICgkdmFsU3RyICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cikpCiAgICAgIHsKICAgICAgICAgJHZhbFN0ciA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cik7CiAgICAgIH0KICAgICAgCgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICB7CgkJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJICB9CgkJICAKCQkJCWFycmF5X3B1c2goJHRoaXMtPlZhbHVlLCR2YWxTdHIpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gUmVxdWlyZXNWYWxpZGF0aW9uKCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbGlkYXRpb25UeXBlID09ICdub25lJykKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiB0cnVlOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBEb2VzRmllbGROYW1lRXhpc3QoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJCiAgICAvLyBmaWVsZCBuYW1lIGluIHVzZT8/CiAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnLCcxJykgPT0gJzEnICYmCiAgICAJJHRoaXMtPmZvcm1fcHRyLT5IYXNGaWVsZE5hbWVkKCR0aGlzLT5HZXROYW1lKCkpICE9ICR0aGlzLT5JZCkKICAgICAgewoJCXJldHVybiBhcnJheShmYWxzZSwkbW9kLT5MYW5nKCdmaWVsZF9uYW1lX2luX3VzZScsJHRoaXMtPkdldE5hbWUoKSkuCgkJJzxiciAvPicpOwogICAgICB9CQkKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICB9CgoKICAgZnVuY3Rpb24gRG9lc0ZpZWxkSGF2ZU5hbWUoKQogICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogIAlpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZV9maWVsZG5hbWVzJywnMScpID09ICcxJyAmJgogIAkJc3RybGVuKCR0aGlzLT5HZXROYW1lKCkpIDwgMSkKICAJCXsKICAJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnZmllbGRfbm9fbmFtZScpLic8YnIgLz4nKTsKICAJCX0KCXJldHVybiBhcnJheSh0cnVlLCcnKTsgICAKICAgfQoKICAvLyBvdmVycmlkZSBtZSwgaWYgbmVlZGVkLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IKICAvLyBmYWxzZSAod2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzIHZhbGlkKSwgdGhlIHNlY29uZCBpcyBhIG1lc3NhZ2UKICBmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICB7CiAgCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CglpZiAoJHJldCkKCQl7CgkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJfQoJCQoJcmV0dXJuIGFycmF5KCRyZXQsICRtZXNzYWdlKTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUgYSBGb3JtIERpc3Bvc2l0aW9uIHBzZXVkby1maWVsZC4KICAvLyBUaGlzIG1ldGhvZCBjYW4gZG8ganVzdAogIC8vIGFib3V0IGFueXRoaW5nIHlvdSB3YW50IGl0IHRvLCBpbiBvcmRlciB0byBoYW5kbGUgZm9ybSBjb250ZW50cy4KICAvLyBpdCByZXR1cm5zIGFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBpcyB0cnVlIG9uIHN1Y2Nlc3MsCiAgLy8gb3IgZmFsc2Ugb24gZmFpbHVyZSwgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBleHBsYW5hdG9yeQogIC8vIHRleHQgZm9yIHRoZSBmYWlsdXJlCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCAnJyk7CiAgfQkKCiAgZnVuY3Rpb24gRXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMgPSBmYWxzZSkKICB7CgkkeG1sc3RyID0gIlx0PGZpZWxkIGlkPVwiIi4kdGhpcy0+SWQuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdHR5cGU9XCIiLiR0aGlzLT5UeXBlLiJcIlxuIjsKCS8vJHhtbHN0ciAuPSAiXHRcdG5hbWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPk5hbWUpLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHR2YWxpZGF0aW9uX3R5cGU9XCIiLiR0aGlzLT5WYWxpZGF0aW9uVHlwZS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0b3JkZXJfYnk9XCIiLiR0aGlzLT5PcmRlckJ5LiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRyZXF1aXJlZD1cIiIuJHRoaXMtPlJlcXVpcmVkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRoaWRlX2xhYmVsPVwiIi4kdGhpcy0+SGlkZUxhYmVsLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRkaXNwbGF5X2luX3N1Ym1pc3Npb249XCIiLiR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uLiJcIiI7CgkkeG1sc3RyIC49ICI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdFx0PGZpZWxkX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9maWVsZF9uYW1lPlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb25zPlxuIi4kdGhpcy0+T3B0aW9uc0FzWE1MKCkuIlx0XHRcdDwvb3B0aW9ucz5cbiI7CglpZiAoJGV4cG9ydFZhbHVlcykKCQl7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdDxodW1hbl9yZWFkYWJsZV92YWx1ZT48IVtDREFUQVsiLgogICAgICAgICAgICAkdGhpcy0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkuCiAgICAgICAgICAgICJdXT48L2h1bWFuX3JlYWRhYmxlX3ZhbHVlPlxuIjsKCQl9CgoJJHhtbHN0ciAuPSAiPC9maWVsZD5cbiI7CglyZXR1cm4gJHhtbHN0cjsKICB9CgoKCS8vIG92ZXJyaWRlIGFzIG5lY2Vzc2FyeQogICBmdW5jdGlvbiBPcHRpb25Gcm9tWE1MKCR0aGVBcnJheSkKCXsKCQlpZiAoJHRoZUFycmF5WyduYW1lJ10gIT0gJ29wdGlvbicpCgkJCXsKCQkJcmV0dXJuOwoJCQl9CgkJaWYgKCEgaXNzZXQoJHRoaXMtPk9wdGlvbnMpKQoJCQl7CgkJCSR0aGlzLT5PcHRpb25zID0gYXJyYXkoKTsJCgkJCX0KCQlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJHRoZUFycmF5WydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0pKQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dKSkKCQkJCXsKCQkJCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dID0gYXJyYXkoJHRoaXMtPk9wdGlvbnNbJHRoZUFycmF5WydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0pOwoJCQkJfQoJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dLCAkdGhlQXJyYXlbJ2NvbnRlbnQnXSk7CgkJCX0KCQllbHNlCgkJCXsKCS8vCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnbmFtZSddXSA9ICR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ107CgkJCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dID0gJHRoZUFycmF5Wydjb250ZW50J107CgkJCX0KCX0KCiAgIC8vIG92ZXJyaWRlIGFzIG5lY2Vzc2FyeQogICBmdW5jdGlvbiBPcHRpb25zQXNYTUwoKQoJewoJCSR4bWxzdHIgPSAiIjsKCQlmb3JlYWNoKCR0aGlzLT5PcHRpb25zIGFzICRuYW1lPT4kdmFsdWUpCgkJCXsKCQkJaWYgKCEgaXNfYXJyYXkoJHZhbHVlKSkKCQkJCXsKCQkJCSR2YWx1ZSA9IGFycmF5KCR2YWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR2YWx1ZSBhcyAkdGhpc1ZhbCkKCQkJCXsKCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb24gbmFtZT1cIiRuYW1lXCI+PCFbQ0RBVEFbIi4kdGhpc1ZhbC4KICAgICAgICAgICAgICAgIl1dPjwvb3B0aW9uPlxuIjsKCQkJCX0KCQkJfQoJCWlmIChpc3NldCgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCQl7CgkJCQkkdGhpc1ZhbCA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CQoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkdGhpc1ZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNWYWwgYXMgJHRoaXNWYWxPdXQpCgkJCQl7CgkJCQkkeG1sc3RyIC49ICJcdFx0XHQ8dmFsdWU+PCFbQ0RBVEFbIi4kdGhpc1ZhbE91dC4KICAgICAgICAgICAgICAgIl1dPjwvdmFsdWU+XG4iOwoJCQkJfQoJCQl9CgkJcmV0dXJuICAkeG1sc3RyOwoJfQoKCiAgZnVuY3Rpb24gRXhwb3J0T2JqZWN0KCkKICB7Cgkkb2JqID0gbmV3IHN0ZENsYXNzKCk7Cgkkb2JqLT5uYW1lID0gJHRoaXMtPk5hbWU7Cgkkb2JqLT50eXBlID0gJHRoaXMtPlR5cGU7Cgkkb2JqLT5pZCA9ICR0aGlzLT5JZDsKCSRvYmotPnZhbHVlID0gJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSh0cnVlKTsKCSRvYmotPnZhbHVlQXJyYXkgPSAkdGhpcy0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKGZhbHNlKTsKCXJldHVybiAkb2JqOwogIH0KCgogIGZ1bmN0aW9uIEdldE9wdGlvbk5hbWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+T3B0aW9ucyk7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb24oJG9wdGlvbk5hbWUsICRkZWZhdWx0PScnKQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwogICAgICB9CiAgICByZXR1cm4gJGRlZmF1bHQ7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25SZWYoJG9wdGlvbk5hbWUpCiAgICB7CiAgICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJewoJICByZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgoJCiAgZnVuY3Rpb24gUmVtb3ZlT3B0aW9uRWxlbWVudCgkb3B0aW9uTmFtZSwgJGluZGV4KQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XSkpCgkgICAgICB7CgkJYXJyYXlfc3BsaWNlKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkaW5kZXgsMSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICRpbmRleCwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdKSkKCSAgICAgIHsKCQlyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdWyRpbmRleF07CgkgICAgICB9CgkgIH0KCWVsc2VpZiAoJGluZGV4ID09IDApCgkgIHsKCSAgICByZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJGRlZmF1bHQ7CQkKICB9CgogIGZ1bmN0aW9uIFNldE9wdGlvbigkb3B0aW9uTmFtZSwgJG9wdGlvblZhbHVlKQogIHsKICAgICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICRvcHRpb25WYWx1ZTsKICB9CiAgCiAgZnVuY3Rpb24gUHVzaE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICR2YWwpCiAgewogIAlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAJCXsKICAJCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogIAkJCXsKICAJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQllbHNlCiAgCQkJewogIAkJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9IGFycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQl9CiAgCWVsc2UKICAJCXsKICAJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICR2YWw7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBMb2FkRmllbGQoJiRwYXJhbXMpCiAgewogICAgaWYgKCR0aGlzLT5JZCA+IDApCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgdHJ1ZSk7CiAgICAgIH0KICAgIHJldHVybjsKICB9CgogIC8vIGN1c3RvbWl6ZWQgdmVyc2lvbiBvZiBBUEkgZnVuY3Rpb24gQ3JlYXRlVGV4dElucHV0LiBUaGlzIGRvZXNuJ3QgdGhyb3cgaW4gYW4gSUQgdGhhdCdzIHRoZSBzYW1lIGFzIHRoZSBmaWVsZCBuYW1lLgogIGZ1bmN0aW9uIFRleHRGaWVsZCgkaWQsICRuYW1lLCAkdmFsdWU9JycsICRzaXplPScxMCcsICRtYXhsZW5ndGg9JzI1NScsICRhZGR0dGV4dD0nJykKewogICR2YWx1ZSA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWx1ZSkpOwogICRpZCA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCRpZCkpOwogICRuYW1lID0gY21zX2h0bWxlbnRpdGllcyhodG1sX2VudGl0eV9kZWNvZGUoJG5hbWUpKTsKICAkc2l6ZSA9ICgkc2l6ZSE9Jyc/Y21zX2h0bWxlbnRpdGllcygkc2l6ZSk6MTApOwogICRtYXhsZW5ndGggPSAoJG1heGxlbmd0aCE9Jyc/Y21zX2h0bWxlbnRpdGllcygkbWF4bGVuZ3RoKToyNTUpOwoKICAkdmFsdWUgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsdWUpOwogIAogICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgc2l6ZT0iJy4kc2l6ZS4nIiBtYXhsZW5ndGg9IicuJG1heGxlbmd0aC4nIic7CiAgaWYgKCRhZGR0dGV4dCAhPSAnJykKICAgIHsKICAgICAgJHRleHQgLj0gJyAnIC4gJGFkZHR0ZXh0OwogICAgfQogICR0ZXh0IC49ICIgLz5cbiI7CiAgcmV0dXJuICR0ZXh0Owp9CgoKICAvLyBsb2FkRGVlcCBhbHNvIGxvYWRzIGFsbCBvcHRpb25zIGZvciBhIGZpZWxkLgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmaWVsZF9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZXRSb3coJHNxbCwgYXJyYXkoJHRoaXMtPklkKSkpCiAgICAgIHsKCWlmIChzdHJsZW4oJHRoaXMtPk5hbWUpIDwgMSkKCSAgewoJICAgICR0aGlzLT5OYW1lID0gJHJlc3VsdFsnbmFtZSddOwoJICB9CglpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkgPCAxKQoJICB7CgkgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHJlc3VsdFsndmFsaWRhdGlvbl90eXBlJ107CgkgIH0KCSR0aGlzLT5UeXBlID0gJHJlc3VsdFsndHlwZSddOwoJJHRoaXMtPk9yZGVyQnkgPSAkcmVzdWx0WydvcmRlcl9ieSddOwoJaWYgKCR0aGlzLT5SZXF1aXJlZCA9PSAtMSkKCSAgewoJICAgICR0aGlzLT5SZXF1aXJlZCA9ICRyZXN1bHRbJ3JlcXVpcmVkJ107CgkgIH0KCWlmICgkdGhpcy0+SGlkZUxhYmVsID09IC0xKQoJICB7CgkgICAgJHRoaXMtPkhpZGVMYWJlbCA9ICRyZXN1bHRbJ2hpZGVfbGFiZWwnXTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgJHRoaXMtPmxvYWRlZCA9IHRydWU7CiAgICBpZiAoJGxvYWREZWVwKQogICAgICB7Cgkkc3FsID0gJ1NFTEVDVCBuYW1lLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLgoJICAnbW9kdWxlX2ZiX2ZpZWxkX29wdCBXSEVSRSBmaWVsZF9pZD0/IE9SREVSIEJZIG9wdGlvbl9pZCc7CgkkcnMgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCQkgICAgIGFycmF5KCR0aGlzLT5JZCkpOwoJJHRtcE9wdHMgPSBhcnJheSgpOwoJd2hpbGUgKCRycyAmJiAkcmVzdWx0cyA9ICRycy0+RmV0Y2hSb3coKSkKCSAgewoJICAgIGlmIChpc3NldCgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSkpCgkgICAgICB7CgkJaWYgKCEgaXNfYXJyYXkoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pKQoJCSAgewoJCSAgICAkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSA9IGFycmF5KCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dKTsKCQkgIH0KCQlhcnJheV9wdXNoKCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dLCRyZXN1bHRzWyd2YWx1ZSddKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV09JHJlc3VsdHNbJ3ZhbHVlJ107CgkgICAgICB9CgkgIH0KCSR0aGlzLT5PcHRpb25zID0gYXJyYXlfbWVyZ2UoJHRtcE9wdHMsJHRoaXMtPk9wdGlvbnMpOwoKCWlmIChpc3NldCgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgJiYKCSAgICAoaXNfYXJyYXkoJHBhcmFtc1sndmFsdWVfJy4kdGhpcy0+TmFtZV0pIHx8CgkgICAgIHN0cmxlbigkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgPiAwKSkKCSAgewoJICAgICR0aGlzLT5TZXRWYWx1ZSgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSk7CgkgIH0KCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSkgJiYKCSAgICAoaXNfYXJyYXkoJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSB8fAoJICAgICBzdHJsZW4oJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSA+IDApKQoJICB7CgkgICAgJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSk7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KCgogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogICAgJG1vZCA9ICAkdGhpcy0+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+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0RW5kIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpZWxkc2V0RW5kKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpZWxkc2V0RW5kJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOyAgICAKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICByZXR1cm4gJzwvZmllbGRzZXQ+JzsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tFbmQgRmllbGRzZXQ6ICcuJHRoaXMtPlZhbHVlLiddJzsKCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKICAgICR0aGlzLT5DaGVja0ZvckFkdmFuY2VkVGFiKCRhZHZBcnJheSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWVsZHNldFN0YXJ0JzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOyAgICAKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CiAgICAkc3RyID0gJzxmaWVsZHNldCc7CiAgICAkY2xhc3MgPSAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKTsKICAgICRsZWdlbmQgPSAkdGhpcy0+R2V0T3B0aW9uKCdsZWdlbmQnKTsKCSRzdHIgLj0gJHRoaXMtPkdldENTU0lkVGFnKCk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICBpZiAoJGpzICE9ICcnKQoJCXsKCQkkc3RyIC49ICcgJy4kanM7CgkJfQogICAgJHN0ciAuPSAnPic7CiAgICBpZiggJGxlZ2VuZCAhPSAnJyApCiAgICAgIHsKCSRzdHIgLj0gJzxsZWdlbmQ+Jy4kbGVnZW5kLic8L2xlZ2VuZD4nOwogICAgICB9CiAgICByZXR1cm4gJHN0cjsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tCZWdpbiBGaWVsZHNldDogJy4kdGhpcy0+VmFsdWUuJ10nOwoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgkKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9sZWdlbmQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9sZWdlbmQnLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlZ2VuZCcsJycpLCA1MCkpKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qDQogKiBGb3JtQnVpbGRlci4gQ29weXJpZ2h0IChjKSAyMDA1LTIwMDYgU2FtdWVsIEdvbGRzdGVpbiA8c2pnQGNtc21vZHVsZXMuY29tPg0KICogTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXINCiAqDQogKiBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KICogVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiAqLw0KDQpjbGFzcyBmYkZpbGVVcGxvYWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsNCg0KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRmb3JtX3B0ciwgJiRwYXJhbXMpDQogIHsNCiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRmb3JtX3B0ciwgJHBhcmFtcyk7DQogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsNCiAgICAkdGhpcy0+VHlwZSA9ICdGaWxlVXBsb2FkRmllbGQnOw0KICAgIC8vICAgICR0aGlzLT5EaXNwbGF5VHlwZSA9ICRtb2QtPkxhbmcoJ2ZpZWxkX3R5cGVfZmlsZV91cGxvYWQnKTsNCiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoDQogICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7DQogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7DQogIH0NCg0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpDQogIHsNCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KICAgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsNCiAgICAkdHh0ID0gJyc7DQoJJGh0bWw1ID0gJyc7DQoNCglpZiAoJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykgPT0gJzEnJiYgJHRoaXMtPklzUmVxdWlyZWQoKSkgDQoJew0KCQkkaHRtbDUgPSAnIHJlcXVpcmVkJzsNCgl9ICAgIA0KICAgICMgdW5sZXNzIHNvbWVvbmUgZXhwbGFpbnMgbWUgd2h5IHRoaXMgc2hvdWxkIGV2ZW4gYmUgaGVyZQ0KICAgICMgaXQgd2lsbCBiZSBkZWZpbml0bHkgcmVtb3ZlZCBvbiBhIGZ1dHVyZSB2ZXJzaW9uDQogICAgIyBKbyBNb3JnDQovLyAgICBpZigkdGhpcy0+VmFsdWUgIT0gJycpDQovLyAgICB7DQovLyAgICAgICR0eHQgLj0gJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLiI8YnIgLz4iOyAgLy8gVmFsdWUgbGluZQ0KLy8gICAgfQ0KLy8gICAgJHR4dCAuPSAkbW9kLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdmYnJwX18nLiR0aGlzLT5JZCwkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOyAvLyBJbnB1dCBsaW5lDQovLyAgICBpZigkdGhpcy0+VmFsdWUgIT0gJycpDQovLyAgICB7DQovLyAgICAgICR0eHQgLj0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2RlbGV0ZV9fJy4kdGhpcy0+SWQsIC0xKS4nJm5ic3A7Jy4kbW9kLT5MYW5nKCdkZWxldGUnKS4iPGJyIC8+IjsgLy8gRGVsZXRlIGxpbmUNCi8vICAgIH0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICAkdHh0IC49ICRtb2QtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2ZicnBfXycuJHRoaXMtPklkLCRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOyAvLyBJbnB1dCBsaW5lDQogICAgLy8gRXh0cmFzDQogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfZGV0YWlscycsJzAnKSA9PSAnMScpDQogICAgew0KICAgICAgJG1zID0gJHRoaXMtPkdldE9wdGlvbignbWF4X3NpemUnKTsNCiAgICAgIGlmICgkbXMgIT0gJycpDQogICAgICB7DQogICAgICAgICR0eHQgLj0gJyAnLiRtb2QtPkxhbmcoJ21heGltdW1fc2l6ZScpLic6ICcuJG1zLidrYic7DQogICAgICB9DQogICAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7DQogICAgICBpZiAoJGV4dHMgIT0gJycpDQogICAgICB7DQogICAgICAgICR0eHQgLj0gJyAnLiRtb2QtPkxhbmcoJ3Blcm1pdHRlZF9leHRlbnNpb25zJykgLiAnOiAnLiRleHRzOw0KICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gJHR4dDsNCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBMb2FkKCRpZCwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkNCiAgew0KICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQogICAgcGFyZW50OjpMb2FkKCRpZCwkcGFyYW1zLCRsb2FkRGVlcCk7DQoNCiAgICBpZiggaXNzZXQoICRfRklMRVMgKSAmJiBpc3NldCggJF9GSUxFU1skbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkXSApICYmICRfRklMRVNbJG1vZC0+bW9kdWxlX2lkLidmYnJwX18nLiR0aGlzLT5JZF1bJ3NpemUnXSA+IDAgKQ0KICAgIHsNCiAgICAgIC8vIE9rYXksIGEgZmlsZSB3YXMgdXBsb2FkZWQNCiAgICAgICR0aGlzLT5TZXRWYWx1ZSgkX0ZJTEVTWyRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWRdWyduYW1lJ10pOw0KICAgIH0NCiAgfQ0KDQogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpDQogIHsNCiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc3VwcHJlc3NfZmlsZW5hbWUnLCAnMCcpICE9ICcwJykNCiAgICB7DQogICAgICByZXR1cm4gJyc7DQogICAgfQ0KICAgIA0KICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQogICAgDQogICAgaWYgKCRhc19zdHJpbmcgJiYgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpc3NldCgkdGhpcy0+VmFsdWVbMV0pKQ0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpcy0+VmFsdWVbMF07DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICByZXR1cm4gJHRoaXMtPlZhbHVlOw0KICAgIH0NCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBTdGF0dXNJbmZvKCkNCiAgew0KICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQogICAgJG1zID0gJHRoaXMtPkdldE9wdGlvbignbWF4X3NpemUnLCcnKTsNCiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJywnJyk7DQogICAgJHJldCA9ICcnOw0KICAgIGlmICgkbXMgIT0gJycpDQogICAgew0KICAgICAgJHJldCAuPSAkbW9kLT5MYW5nKCdtYXhpbXVtX3NpemUnKS4nOiAnLiRtcy4na2IsICc7DQogICAgfQ0KICAgIGlmICgkZXh0cyAhPSAnJykNCiAgICB7DQogICAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ3Blcm1pdHRlZF9leHRlbnNpb25zJykgLiAnOiAnLiRleHRzLicsICc7DQogICAgfQ0KICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2Rlc3RpbmF0aW9uJywnJykgIT0gJycpDQogICAgew0KICAgICAgJHJldCAuPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2Rlc3RpbmF0aW9uJywnJyk7DQogICAgfQ0KICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdhbGxvd19vdmVyd3JpdGUnLCcwJykgIT0gJzAnKQ0KICAgIHsNCiAgICAgICRyZXQgLj0gJyAnLiRtb2QtPkxhbmcoJ292ZXJ3cml0ZScpOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJHJldCAuPSAnICcuJG1vZC0+TGFuZygnbm9vdmVyd3JpdGUnKTsNCiAgICB9DQogICAgcmV0dXJuICRyZXQ7DQogIH0NCg0KDQogIHB1YmxpYyBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpDQogIHsNCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7DQogICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOw0KICAgICRzaG93ID0gJHRoaXMtPkdldE9wdGlvbignc2hvd19kZXRhaWxzJywnMCcpOw0KICAgICRzZW5kdG9fdXBsb2FkcyA9ICR0aGlzLT5HZXRPcHRpb24oJ3NlbmR0b191cGxvYWRzJywnZmFsc2UnKTsNCiAgICAkdXBsb2Fkc19jYXRlZ29yeSA9ICR0aGlzLT5HZXRPcHRpb24oJ3VwbG9hZHNfY2F0ZWdvcnknKTsNCiAgICAkdXBsb2Fkc19kZXN0cGFnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ3VwbG9hZHNfZGVzdHBhZ2UnKTsNCg0KICAgICRtYWluID0gYXJyYXkoDQogICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplJyksDQogICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwNCiAgICAgICAgICAgICAgICAnZmJycF9vcHRfbWF4X3NpemUnLCAkbXMsIDUsIDUpLg0KICAgICAgJyAnLiRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJykpLA0KICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJyksDQogICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwNCiAgICAgICAgICAgICAgICAnZmJycF9vcHRfcGVybWl0dGVkX2V4dGVuc2lvbnMnLA0KICAgICRleHRzLDI1LDgwKS4nPGJyLz4nLg0KICAgICRtb2QtPkxhbmcoJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnKSksDQogICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9ucycpLA0KICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd19kZXRhaWxzJywnMCcpLg0KICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLA0KICAgICAgICAgICAgICAnZmJycF9vcHRfc2hvd19kZXRhaWxzJywgJzEnLCAkc2hvdykuDQogICAgICAnICcuJG1vZC0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJykpLA0KICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X292ZXJ3cml0ZScpLA0KICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfYWxsb3dfb3ZlcndyaXRlJywnMCcpLg0KICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLA0KICAgICAgICAgICAgICAnZmJycF9vcHRfYWxsb3dfb3ZlcndyaXRlJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdhbGxvd19vdmVyd3JpdGUnLCcwJykpLg0KICAgICAgJyAnLiRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJykpDQogICAgKTsNCg0KICAgICR1cGxvYWRzID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ1VwbG9hZHMnKTsNCiAgICAkc2VuZHRvX3VwbG9hZHNfbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PjAsDQogICAgJG1vZC0+TGFuZygneWVzJyk9PjEpOw0KICAgICRhZHYgPSBhcnJheSgpOw0KDQogICAgJGZpbGVfcmVuYW1lX2hlbHAgPSAkbW9kLT5MYW5nKCdmaWxlX3JlbmFtZV9oZWxwJykuICR0aGlzLT5mb3JtX3B0ci0+ZmllbGRWYWx1ZVRlbXBsYXRlKCkuDQogICAgJzx0cj48dGQ+JGV4dDwvdGQ+PHRkPicuJG1vZC0+TGFuZygnb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nKS4nPC90ZD48L3RyPjwvdGFibGU+JzsNCg0KICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3JlbmFtZScpLA0KICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2ZpbGVfcmVuYW1lJywNCiAgICAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3JlbmFtZScsJycpLDYwLDI1NSkuDQogICAgJGZpbGVfcmVuYW1lX2hlbHApKTsNCiAgICBhcnJheV9wdXNoKCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3N1cHByZXNzX2ZpbGVuYW1lJyksDQogICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdXBwcmVzc19maWxlbmFtZScsJzAnKS4NCiAgICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwNCiAgICAgICAgICAgICdmYnJwX29wdF9zdXBwcmVzc19maWxlbmFtZScsICcxJywgDQogICAgJHRoaXMtPkdldE9wdGlvbignc3VwcHJlc3NfZmlsZW5hbWUnLCcwJykpKSk7DQogICAgICANCiAgICBhcnJheV9wdXNoKCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3N1cHByZXNzX2F0dGFjaG1lbnQnKSwNCiAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3N1cHByZXNzX2F0dGFjaG1lbnQnLDApLg0KICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc3VwcHJlc3NfYXR0YWNobWVudCcsIDEsICR0aGlzLT5HZXRPcHRpb24oJ3N1cHByZXNzX2F0dGFjaG1lbnQnLDEpKSkpOw0KICAgICAgDQogICAgYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInKSwNCiAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3JlbW92ZV9maWxlJywnMCcpLg0KICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLA0KICAgICAgICAgICAgICAgICAgJ2ZicnBfb3B0X3JlbW92ZV9maWxlJywgJzEnLCANCiAgICAkdGhpcy0+R2V0T3B0aW9uKCdyZW1vdmVfZmlsZScsJzAnKSkuDQogICAgJG1vZC0+TGFuZygnaGVscF9pZ25vcmVkX2lmX3VwbG9hZCcpKSk7DQogICAgYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9kZXN0aW5hdGlvbicpLA0KICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2ZpbGVfZGVzdGluYXRpb24nLA0KICAgICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZGVzdGluYXRpb24nLCBjbXNtcygpLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddKSw2MCwyNTUpLg0KICAgICRtb2QtPkxhbmcoJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnKSkpOw0KDQogICAgaWYoICR1cGxvYWRzICkNCiAgICB7DQogICAgICAkY2F0ZWdvcnlsaXN0ID0gJHVwbG9hZHMtPmdldENhdGVnb3J5TGlzdCgpOw0KICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbmR0b191cGxvYWRzJyksDQogICAgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwNCiAgICAgICAgICAgICAgICAgJ2ZicnBfb3B0X3NlbmR0b191cGxvYWRzJywkc2VuZHRvX3VwbG9hZHNfbGlzdCwNCiAgICAgICRzZW5kdG9fdXBsb2FkcykpKTsNCg0KICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknKSwNCiAgICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLA0KICAgICAgICAgICAgICAgICAnZmJycF9vcHRfdXBsb2Fkc19jYXRlZ29yeScsJGNhdGVnb3J5bGlzdCwnJywNCiAgICAgICR1cGxvYWRzX2NhdGVnb3J5KSkpOw0KICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnKSwNCiAgICAgICRtb2QtPkNyZWF0ZVBhZ2VEcm9wZG93bigkZm9ybURlc2NyaXB0b3IsDQogICAgICAgICAgICAgICAgJ29wdF91cGxvYWRzX2Rlc3RwYWdlJywkdXBsb2Fkc19kZXN0cGFnZSkpKTsNCiAgICB9DQoNCg0KICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsNCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBQb3N0RGlzcG9zaXRpb25BY3Rpb24oKQ0KICB7DQogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3JlbW92ZV9maWxlJywnMCcpID09ICcxJykNCiAgICB7DQogICAgICAkZmlsZXBhdGggPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZGVzdGluYXRpb24nKSwgJHRoaXMtPlZhbHVlKTsNCiAgICAgIGlmIChmaWxlX2V4aXN0cygkZmlsZXBhdGgpKQ0KICAgICAgew0KICAgICAgICB1bmxpbmsoJGZpbGVwYXRoKTsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBwdWJsaWMgZnVuY3Rpb24gVmFsaWRhdGUoKQ0KICB7DQogICAgJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7DQogICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsNCiAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOw0KICAgICRleHRzID0gJHRoaXMtPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnLCcnKTsNCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KICAgIC8vJGZ1bGxBbGlhcyA9ICR0aGlzLT5HZXRWYWx1ZSgpOyAtLSBTdGlra2kgbW9kaWZ5czogTm93IGdldHMgY29ycmVjdCBhbGlhcw0KICAgICRmdWxsQWxpYXMgPSAkbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkOw0KICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICEgJHRoaXMtPlJlcXVpcmVkKQ0KICAgIHsNCiAgICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsNCiAgICB9DQogICAgaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgJHRoaXMtPlJlcXVpcmVkICkNCiAgICB7DQogICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7DQogICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnKTsNCiAgICB9DQogICAgZWxzZSBpZiAoJG1zICE9ICcnICYmICRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA+ICgkbXMgKiAxMDI0KSkNCiAgICB7DQogICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ2ZpbGVfdG9vX2xhcmdlJykuICcgJy4kbXMuJ2tiJzsvLygkbXMgKiAxMDI0KS4na2InOyAvLyBTdGlra2kgbW9kcw0KICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBlbHNlIGlmICgkZXh0cyAhPSAnJykNCiAgICB7DQogICAgICAkbWF0Y2ggPSBmYWxzZTsNCiAgICAgICRsZWdhbEV4dHMgPSBleHBsb2RlKCcsJywkZXh0cyk7DQogICAgICBmb3JlYWNoICgkbGVnYWxFeHRzIGFzICR0aGlzRXh0KQ0KICAgICAgew0KICAgICAgICBpZiAocHJlZ19tYXRjaCgnL1wuJy50cmltKCR0aGlzRXh0KS4nJC9pJywkX0ZJTEVTWyRmdWxsQWxpYXNdWyduYW1lJ10pKQ0KICAgICAgICB7DQogICAgICAgICAgJG1hdGNoID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChwcmVnX21hdGNoKCcvJy50cmltKCR0aGlzRXh0KS4nL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ3R5cGUnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAkbWF0Y2ggPSB0cnVlOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBpZiAoISAkbWF0Y2gpDQogICAgICB7DQogICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygnaWxsZWdhbF9maWxlX3R5cGUnKTsNCiAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOw0KICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOw0KICB9DQp9DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKICB2YXIgJG1vZHVsZV9wdHIgPSAtMTsKICB2YXIgJG1vZHVsZV9wYXJhbXMgPSAtMTsKICB2YXIgJElkID0gLTE7CiAgdmFyICROYW1lID0gJyc7CiAgdmFyICRBbGlhcyA9ICcnOwogIHZhciAkbG9hZGVkID0gJ25vdCc7CiAgdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7CiAgdmFyICRQYWdlOwogIHZhciAkQXR0cnM7CiAgdmFyICRGaWVsZHM7CiAgdmFyICRmb3JtU3RhdGU7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCiAgZnVuY3Rpb24gZmJGb3JtKCYkbW9kdWxlX3B0ciwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSwgJGxvYWRSZXNwPWZhbHNlKQogIHsKICAgICR0aGlzLT5tb2R1bGVfcHRyID0gJG1vZHVsZV9wdHI7CiAgICAkdGhpcy0+bW9kdWxlX3BhcmFtcyA9ICRwYXJhbXM7CiAgICAkdGhpcy0+RmllbGRzID0gYXJyYXkoKTsKICAgICR0aGlzLT5BdHRycyA9IGFycmF5KCk7CiAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ25ldyc7CgkJCgkvLyBTdGlra2kgYWRkaW5nOiAkaWQgb3ZlcndyaXRlIHBvc3NpYmxlIHdpdGggJHBhcmFtCiAgICBpZiAoKCFpc3NldCgkdGhpcy0+bW9kdWxlX3B0ci0+bW9kdWxlX2lkKSB8fCBlbXB0eSgkdGhpcy0+bW9kdWxlX3B0ci0+bW9kdWxlX2lkKSkgJiYgaXNzZXQoJHBhcmFtc1snbW9kdWxlX2lkJ10pKSB7CgkKCQkkdGhpcy0+bW9kdWxlX3B0ci0+bW9kdWxlX2lkID0gJHBhcmFtc1snbW9kdWxlX2lkJ107CiAgICB9CSAKCSAgCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkgewoJCQoJCSR0aGlzLT5JZCA9ICRwYXJhbXNbJ2Zvcm1faWQnXTsKICAgIH0KCSAgCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ10pKSB7CgkgIAoJCSR0aGlzLT5BbGlhcyA9ICRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddOwogICAgfQoJICAKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fbmFtZSddKSkgewoJCgkJJHRoaXMtPk5hbWUgPSAkcGFyYW1zWydmYnJwX2Zvcm1fbmFtZSddOwogICAgfQoKICAgJGZpZWxkRXhwYW5kT3AgPSBmYWxzZTsKICAgZm9yZWFjaCgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkgewogICAKCQlpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycgfHwgc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpIHsKCQkKCQkJLy8gZXhwYW5kaW5nIG9yIHNocmlua2luZyBhIGZpZWxkCgkJCSRmaWVsZEV4cGFuZE9wID0gdHJ1ZTsKCQl9CiAgICB9CgogICAgaWYgKCRmaWVsZEV4cGFuZE9wKSB7CgkKCQkkcGFyYW1zWydmYnJwX2RvbmUnXSA9IDA7CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfY29udGludWUnXSkpIHsKCQkKCQkJJHRoaXMtPlBhZ2UgPSAkcGFyYW1zWydmYnJwX2NvbnRpbnVlJ10gLSAxOwoJCX0gZWxzZSB7CgoJCQkkdGhpcy0+UGFnZSA9IDE7CgkJfQoJfSBlbHNlIHsKCQoJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2NvbnRpbnVlJ10pKSB7CgkJCgkJCSR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9jb250aW51ZSddOwoJCX0gZWxzZSB7CgkJCgkJCSR0aGlzLT5QYWdlID0gMTsKCQl9CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfcHJldiddKSAmJiBpc3NldCgkcGFyYW1zWydmYnJwX3ByZXZpb3VzJ10pKSB7CgkJCgkJCSR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9wcmV2aW91cyddOwoJCQkkcGFyYW1zWydmYnJwX2RvbmUnXSA9IDA7CgkJfQoJfQoJICAJICAKICAgICR0aGlzLT5mb3JtVG90YWxQYWdlcyA9IDE7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpIHsKCQoJCSR0aGlzLT5mb3JtU3RhdGUgPSAnc3VibWl0JzsKICAgIH0KCQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ10pICYmICRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ109PXRydWUpIHsKCQoJCSR0aGlzLT5mb3JtU3RhdGUgPSAnY29uZmlybSc7CiAgICB9CgkKICAgIGlmICgkdGhpcy0+SWQgIT0gLTEpIHsKCQoJCWlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSAmJiAkdGhpcy0+Zm9ybVN0YXRlID09ICdzdWJtaXQnKSB7CgkJCQoJCQkkdGhpcy0+Zm9ybVN0YXRlID0gJ3VwZGF0ZSc7CgkJfQoJCQoJCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgJGxvYWREZWVwLCAkbG9hZFJlc3ApOwogICAgfQoJCiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWwpIHsKCQoJCWlmIChzdWJzdHIoJHRoaXNQYXJhbUtleSwwLDExKSA9PSAnZmJycF9mb3JtYV8nKSB7CgkJCgkJCSR0aGlzUGFyYW1LZXkgPSBzdWJzdHIoJHRoaXNQYXJhbUtleSwxMSk7CgkJCSR0aGlzLT5BdHRyc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkJfSBlbHNlIGlmICgkdGhpc1BhcmFtS2V5ID09ICdmYnJwX2Zvcm1fdGVtcGxhdGUnICYmICR0aGlzLT5JZCAhPSAtMSkgewoJCQoJCQkkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0aGlzUGFyYW1WYWwpOwoJCX0KICAgIH0JCgogICAgJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzID0gQXJyYXkoCgkJJ3skc3ViX2Zvcm1fbmFtZX0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndGl0bGVfZm9ybV9uYW1lJyksCgkJJ3skc3ViX2RhdGV9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfc3VibWlzc2lvbl9kYXRlJyksCgkJJ3skc3ViX2hvc3R9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfc2VydmVyX25hbWUnKSwKCQkneyRzdWJfc291cmNlX2lwfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKSwKCQkneyRzdWJfdXJsfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Yl91cmwnKSwKCQkneyRmYl92ZXJzaW9ufSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX2ZiX3ZlcnNpb24nKSwKCQkneyRUQUJ9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfdGFiJyksCgkpOwogIH0gLy8gZW5kIG9mIF9fY29uc3RydWN0KCkKCiAgZnVuY3Rpb24gU2V0QXR0cmlidXRlcygkYXR0ckFycmF5KQogIHsKICAgICR0aGlzLT5BdHRycyA9IGFycmF5X21lcmdlKCR0aGlzLT5BdHRycywkYXR0ckFycmF5KTsKICB9CgogIGZ1bmN0aW9uIFNldFRlbXBsYXRlKCR0ZW1wbGF0ZSkKICB7CiAgICAkdGhpcy0+QXR0cnNbJ2Zvcm1fdGVtcGxhdGUnXSA9ICR0ZW1wbGF0ZTsKICAgICR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRlbXBsYXRlKTsKICB9CgogIGZ1bmN0aW9uIEdldElkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gU2V0SWQoJGlkKQogIHsKICAgICR0aGlzLT5JZCA9ICRpZDsKICB9CgogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TmFtZTsKICB9CgkKICBmdW5jdGlvbiBHZXRGb3JtU3RhdGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybVN0YXRlOwogIH0KCQogIGZ1bmN0aW9uIEdldFBhZ2VDb3VudCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5mb3JtVG90YWxQYWdlczsKICB9CgkKICBmdW5jdGlvbiBHZXRQYWdlTnVtYmVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlBhZ2U7CiAgfQoKICBmdW5jdGlvbiBQYWdlQmFjaygpCiAgewogICAgJHRoaXMtPlBhZ2UtLTsKICB9CgogIGZ1bmN0aW9uIFNldE5hbWUoJG5hbWUpCiAgewogICAgJHRoaXMtPk5hbWUgPSAkbmFtZTsKICB9CgkKICBmdW5jdGlvbiBHZXRBbGlhcygpCiAgewogICAgcmV0dXJuICR0aGlzLT5BbGlhczsKICB9CgogIGZ1bmN0aW9uIFNldEFsaWFzKCRhbGlhcykKICB7CiAgICAkdGhpcy0+QWxpYXMgPSAkYWxpYXM7CiAgfQoKLy8gZHVtcCBwYXJhbXMKICBmdW5jdGlvbiBEZWJ1Z0Rpc3BsYXkoJHBhcmFtcz1hcnJheSgpKQogIHsKICAgICR0bXAgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5tb2R1bGVfcHRyID0gJ1ttZHB0cl0nOwoKICAgaWYgKGlzc2V0KCRwYXJhbXNbJ0ZPUk0nXSkpCgkJewoJCSRmcHQgPSAkcGFyYW1zWydGT1JNJ107CgkJJHBhcmFtc1snRk9STSddID0gJ1tmb3JtX3BvaW50ZXJdJzsKCQl9CgogICAgJHRlbXBsYXRlX3RtcCA9ICR0aGlzLT5HZXRBdHRyKCdmb3JtX3RlbXBsYXRlJywnJyk7CiAgICAkdGhpcy0+U2V0QXR0cignZm9ybV90ZW1wbGF0ZScsc3RybGVuKCR0ZW1wbGF0ZV90bXApLicgY2hhcmFjdGVycycpOwogICAgJGZpZWxkX3RtcCA9ICR0aGlzLT5GaWVsZHM7CiAgICAkdGhpcy0+RmllbGRzID0gJ0ZpZWxkIEFycmF5OiAnLmNvdW50KCRmaWVsZF90bXApOwogICAgZGVidWdfZGlzcGxheSgkdGhpcyk7CiAgICAkdGhpcy0+U2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRlbXBsYXRlX3RtcCk7CiAgICAkdGhpcy0+RmllbGRzID0gJGZpZWxkX3RtcDsKICAgIGZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkZmxkKQogICAgICB7CgkJJGZsZC0+RGVidWdEaXNwbGF5KCk7CiAgICAgIH0KICAgICR0aGlzLT5tb2R1bGVfcHRyID0gJHRtcDsKICB9CgoJCiAgZnVuY3Rpb24gU2V0QXR0cigkYXR0cm5hbWUsICR2YWwpCiAgewogICAgJHRoaXMtPkF0dHJzWyRhdHRybmFtZV0gPSAkdmFsOwogIH0KCQogIGZ1bmN0aW9uIEdldEF0dHIoJGF0dHJuYW1lLCAkZGVmYXVsdD0iIikKICB7CiAgICBpZiAoaXNzZXQoJHRoaXMtPkF0dHJzWyRhdHRybmFtZV0pKQogICAgICB7CglyZXR1cm4gJHRoaXMtPkF0dHJzWyRhdHRybmFtZV07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuICRkZWZhdWx0OwogICAgICB9CiAgfQoJCiAgZnVuY3Rpb24gR2V0RmllbGRDb3VudCgpCiAgewogICAgcmV0dXJuIGNvdW50KCR0aGlzLT5GaWVsZHMpOwogIH0KCiAgZnVuY3Rpb24gSGFzRmllbGROYW1lZCgkbmFtZSkKICB7CiAgICAkcmV0ID0gLTE7CiAgICBmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZsZCkKCQl7CgkJaWYgKCRmbGQtPkdldE5hbWUoKSA9PSAkbmFtZSkKCQkJewoJCQkkcmV0ID0gJGZsZC0+R2V0SWQoKTsKCQkJfQoJCX0KICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gQWRkVGVtcGxhdGVWYXJpYWJsZSgkbmFtZSwkZGVmKQogIHsKICAgICR0aGVLZXkgPSAneyQnLiRuYW1lLid9JzsKICAgICR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlc1skdGhlS2V5XSA9ICRkZWY7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGVKYXZhc2NyaXB0KCRmaWVsZE5hbWU9J29wdF9lbWFpbF90ZW1wbGF0ZScsICRidXR0b25fdGV4dD0nJywgJHN1ZmZpeD0nJykKICB7CgkkZmxkQWxpYXMgPSBwcmVnX3JlcGxhY2UoJy9bXlx3XGRdLycsJ18nLCRmaWVsZE5hbWUpLiRzdWZmaXg7CiAgICAkanNDb2RlID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCi8qIDwhW0NEQVRBWyAqLwpmdW5jdGlvbiBwb3B1bGF0ZSIuJGZsZEFsaWFzLiIoZm9ybW5hbWUpCnsKCXZhciBmbmFtZSA9ICdJRGZicnBfIi4kZmllbGROYW1lLiInOwoJJChmb3JtbmFtZVtmbmFtZV0pLnZhbCh8VEVNUExBVEV8KS5jaGFuZ2UoKTsKfQovKiBdXT4gKi8KPC9zY3JpcHQ+IjsKCSRqc0NvZGUgLj0gIjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLgokYnV0dG9uX3RleHQuIlwiIG9uY2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlIi4kZmxkQWxpYXMuIih0aGlzLmZvcm0pXCIgLz4iOwogIHJldHVybiAkanNDb2RlOwogIH0KCgoJZnVuY3Rpb24gZmllbGRWYWx1ZVRlbXBsYXRlKCkKCXsKCQkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkJJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nKS4nPC90aD48L3RyPic7CgkJJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnKS4nPC90aD48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX2Zvcm1fZmllbGQnKS4nPC90aD48L3RyPic7CgkJJG9kZCA9IGZhbHNlOwoJCSRvdGhlcnMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkvLyBSZW1vdmVkIGJ5IFN0aWtraTogQlVUIFdIWT8KCQkJLy9pZiAoISRvdGhlcnNbJGldLT5IYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzKCkpCgkJCQkvL3sKCQkJCSRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4nIj4kZmxkXycuJG90aGVyc1skaV0tPkdldElkKCkuJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuJyI+JyAuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3RkPjwvdHI+JzsKCQkJCS8vfQoJCQkkb2RkID0gISAkb2RkOwoJCQl9CgkJcmV0dXJuICRyZXQ7Cgl9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlKCRodG1saXNoPWZhbHNlLCRlbWFpbD10cnVlLCAkb25lbGluZT1mYWxzZSwkaGVhZGVyPWZhbHNlLCRmb290ZXI9ZmFsc2UpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICIiOwoKCWlmICgkZW1haWwpCgkJewogICAgCWlmICgkaHRtbGlzaCkKICAgIAkJewoJCQkkcmV0IC49ICI8aDE+Ii4kbW9kLT5MYW5nKCdlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJykuIjwvaDE+XG4iOwoJCQl9CgkgCWVsc2UKCSAJCXsKCQkJJHJldCAuPSAkbW9kLT5MYW5nKCdlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJykuIlxuIjsKCQkJfQogICAgCWZvcmVhY2goJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgCQl7CgkJCWlmICgkaHRtbGlzaCkKCQkJCXsKCQkJCSRyZXQgLj0gJzxzdHJvbmc+Jy4kdGhpc1ZhbC4nPC9zdHJvbmc+OiAnLiR0aGlzS2V5LiI8YnIgLz4iOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkcmV0IC49ICR0aGlzVmFsLic6ICcuJHRoaXNLZXk7CgkJCQl9CgkJCSRyZXQgLj0gIlxuIjsKICAgICAgCQl9CiAgICAgCWlmICgkaHRtbGlzaCkKICAgICAJICAJewoJCSAgCSRyZXQgLj0gIlxuPGhyIC8+XG4iOwoJICAJICAJfQoJICAJZWxzZQoJICAJICAJewogICAgCSAgCSRyZXQgLj0gIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgIAkgIAl9CiAgICAJfQoJCQoJZWxzZWlmICghJG9uZWxpbmUpCgkJewoJCWlmICgkaHRtbGlzaCkKCQkJewoJCQkkcmV0IC49ICc8aDI+JzsKCQkJfQoJCSRyZXQgLj0gJG1vZC0+TGFuZygndGhhbmtzJyk7CgkJaWYgKCRodG1saXNoKQoJCQl7CgkJCSRyZXQgLj0gJzwvaDI+JzsKCQkJfQoJCX0KCQkKCWVsc2VpZiAoJGZvb3RlcikKCQkgewoJCSAkcmV0IC49ICctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkVPRlxuJzsKCQkgcmV0dXJuICRyZXQ7CgkJIH0JCQkKCQkKICAgICRvdGhlcnMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICBpZiAoJG90aGVyc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCgkJewoJCSRmbGRyZWYgPSAkb3RoZXJzWyRpXS0+R2V0QWxpYXMoKTsKCQl9CgkgIGVsc2UKCQl7CgkJJGZsZHJlZiA9ICdmbGRfJy4gJG90aGVyc1skaV0tPkdldElkKCk7CgkJfQoJCQoJICAkcmV0IC49ICd7aWYgJCcuJGZsZHJlZi4nICE9ICIiICYmICQnLiRmbGRyZWYuJyAhPSAiJy4kdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpLiciIH0nOwoJICAkZmxkcmVmID0gJ3skJy4kZmxkcmVmLid9JzsKCSAgCgkgIGlmICgkaHRtbGlzaCkKICAgICAJICB7CiAgCQkgICRyZXQgLj0gJzxzdHJvbmc+Jy4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvc3Ryb25nPjogJyAuICRmbGRyZWYuICI8YnIgLz4iOwogIAkJICB9CiAgCSAgZWxzZWlmICgkb25lbGluZSAmJiAhJGhlYWRlcikKCQkgIHsKCQkgICRyZXQgLj0gJGZsZHJlZi4gJ3skVEFCfSc7CgkJICB9CgkgIGVsc2VpZiAoJG9uZWxpbmUgJiYgJGhlYWRlcikKCQkgewoJCSAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkuJ3skVEFCfSc7CgkJIH0JIAoJICBlbHNlCiAgCSAgCSAgewoJICAgICAgJHJldCAuPSAkb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzogJyAuJGZsZHJlZjsKCSAgICAgIH0KCSAgCSRyZXQgLj0gInsvaWZ9XG4iOwoJCX0KICAgICAgfQkgIAoJICAKCSAvKiBTdGlra2kgc2F5czogRG9uJ3Qgc2VlIGFueSB1c2UgZm9yIHRoaXMsIGNvcnJlY3QgbWUgaWYgaSdtIHdyb25nLgogICAgaWYgKCRvbmVsaW5lKQoJCXsKCQkkcmV0ID0gc3Vic3RyKCRyZXQsMCxzdHJsZW4oJHJldCkgLSA2KS4gIlxuIjsKCQl9CgkqLwogICAgcmV0dXJuICRyZXQ7CiAgfQoKCi8vICBmdW5jdGlvbiBBZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJGZpZWxkcz0nb3B0X2VtYWlsX3RlbXBsYXRlJywKLy8gIAkkaW5jbHVkZUhUTUw9dHJ1ZSwgJGluY2x1ZGVUZXh0PXRydWUsICRvbmVsaW5lID0gZmFsc2UsICRoZWFkZXJOYW1lPScnKQogIGZ1bmN0aW9uIEFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkZmllbGRTdHJ1Y3QpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnKS4nPC90aD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgJG9kZCA9IGZhbHNlOwogICAgZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CgkJJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJCSciPicuJHRoaXNLZXkuJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkJJyI+Jy4kdGhpc1ZhbC4nPC90ZD48L3RyPic7CiAgICAgICRvZGQgPSAhICRvZGQ7CiAgICAgIH0KCiAgICAkb3RoZXJzID0gJHRoaXMtPkdldEZpZWxkcygpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsgICAgICAgICAgICAgICAgCgkgICAgJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICciPnskJy4kb3RoZXJzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCkuCgkgICAgJ30gLyB7JGZsZF8nLgoJICAgICRvdGhlcnNbJGldLT5HZXRJZCgpLid9JzsKCQlpZiAoJG90aGVyc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCgkJCXsKCQkJJHJldCAuPSAnIC8geyQnLiRvdGhlcnNbJGldLT5HZXRBbGlhcygpLid9JzsJCgkJCX0KCSAgICAkcmV0IC49ICc8L3RkPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICciPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CgkgIAkkb2RkID0gISAkb2RkOwoJICB9CiAgICAgIH0KICAgICAgIAkKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX2FycmF5X2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKCiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gJyc7CiAgICBmb3JlYWNoICgkZmllbGRTdHJ1Y3QgYXMgJGtleT0+JHZhbCkKCQl7CgkJJGh0bWxfYnV0dG9uID0gKGlzc2V0KCR2YWxbJ2h0bWxfYnV0dG9uJ10pICYmICR2YWxbJ2h0bWxfYnV0dG9uJ10pOwoJCSR0ZXh0X2J1dHRvbiA9IChpc3NldCgkdmFsWyd0ZXh0X2J1dHRvbiddKSAmJiAkdmFsWyd0ZXh0X2J1dHRvbiddKTsKCQkkaXNfb25lbGluZSA9IChpc3NldCgkdmFsWydpc19vbmVsaW5lJ10pICYmICR2YWxbJ2lzX29uZWxpbmUnXSk7CgkJJGlzX2VtYWlsID0gKGlzc2V0KCR2YWxbJ2lzX2VtYWlsJ10pICYmICR2YWxbJ2lzX2VtYWlsJ10pOwoJCSRpc19oZWFkZXIgPSAoaXNzZXQoJHZhbFsnaXNfaGVhZGVyJ10pICYmICR2YWxbJ2lzX2hlYWRlciddKTsKCQkkaXNfZm9vdGVyID0gKGlzc2V0KCR2YWxbJ2lzX2Zvb3RlciddKSAmJiAkdmFsWydpc19mb290ZXInXSk7CgkJCgkJaWYgKCRodG1sX2J1dHRvbikKCQkJewoJCQkkYnV0dG9uX3RleHQgPSAkbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnKTsKCQkJfQoJCWVsc2VpZiAoJGlzX2hlYWRlcikKCQkJewoJCQkkYnV0dG9uX3RleHQgPSAkbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZScpOwoJCQl9CgkJZWxzZWlmICgkaXNfZm9vdGVyKQoJCQl7CgkJCSRidXR0b25fdGV4dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJyk7CgkJCX0JCQkJCQkKCQllbHNlCgkJCXsKCQkJJGJ1dHRvbl90ZXh0ID0gJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpOwoJCQl9CgoJCWlmICgkaHRtbF9idXR0b24gJiYgJHRleHRfYnV0dG9uKQoJCQl7CgkJCSRzYW1wbGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UsICRpc19lbWFpbCwgJGlzX29uZWxpbmUsICRpc19oZWFkZXIsICRpc19mb290ZXIpOwoJCQkkc2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkc2FtcGxlKTsKCQkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJHNhbXBsZSk7CgkJCSRzYW1wbGVUZW1wbGF0ZUNvZGUgLj0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRzYW1wbGUuIiciLAoJCQkkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGVKYXZhc2NyaXB0KCRrZXksICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKSwndGV4dCcpKTsKCQkJfQoJCQoJCSRzYW1wbGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoJGh0bWxfYnV0dG9uLCRpc19lbWFpbCwgJGlzX29uZWxpbmUsJGlzX2hlYWRlciwgJGlzX2Zvb3Rlcik7CgkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHNhbXBsZSk7CgkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJHNhbXBsZSk7CgkJJHNhbXBsZVRlbXBsYXRlQ29kZSAuPSBwcmVnX3JlcGxhY2UoJy9cfFRFTVBMQVRFXHwvJywiJyIuJHNhbXBsZS4iJyIsCgkgICAgJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgka2V5LCAkYnV0dG9uX3RleHQpKTsKCQl9CgogICAgJHNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLCAkc2FtcGxlVGVtcGxhdGVDb2RlKTsKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kc2FtcGxlVGVtcGxhdGVDb2RlLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzwvdGFibGU+JzsKCQogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAgICRnQ21zID0gY21zbXMoKTsKICAgICR2YWxpZGF0ZWQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSBhcnJheSgpOwogICAgJGZvcm1QYWdlQ291bnQ9MTsKICAgICR2YWxQYWdlID0gJHRoaXMtPlBhZ2UgLSAxOwogICAgZm9yKCRpPTA7JGkgPCBjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgewogICAgICBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdQYWdlQnJlYWtGaWVsZCcpCiAgICAgIHsKICAgICAgICAkZm9ybVBhZ2VDb3VudCsrOwogICAgICB9CiAgICAgIGlmICgkdmFsUGFnZSAhPSAkZm9ybVBhZ2VDb3VudCkKICAgICAgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICAkZGVueV9zcGFjZV92YWxpZGF0aW9uID0gKCR0aGlzLT5tb2R1bGVfcHRyLT5HZXRQcmVmZXJlbmNlKCdibGFua19pbnZhbGlkJywnMCcpID09ICcxJyk7CgogICAgICBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzUmVxdWlyZWQoKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+SGFzVmFsdWUoJGRlbnlfc3BhY2VfdmFsaWRhdGlvbikgPT09IGZhbHNlKQogICAgICB7CiAgICAgICAgYXJyYXlfcHVzaCgkbWVzc2FnZSwgJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJywgJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKSkpOwogICAgICAgICR2YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAkdGhpcy0+RmllbGRzWyRpXS0+U2V0T3B0aW9uKCdpc192YWxpZCcsZmFsc2UpOwogICAgICAgICR0aGlzLT5GaWVsZHNbJGldLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJywkdGhpcy0+RmllbGRzWyRpXS0+R2V0TmFtZSgpKTsKICAgICAgICAkdGhpcy0+RmllbGRzWyRpXS0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgIH0KICAgICAgZWxzZSBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkgIT0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3Vuc3BlY2lmaWVkJykpCiAgICAgIHsgCiAgICAgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5WYWxpZGF0ZSgpOwogICAgICAgIGlmICgkcmVzWzBdICE9IHRydWUpCiAgICAgICAgewogICAgICAgICAgYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKICAgICAgICAgICR2YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICR0aGlzLT5GaWVsZHNbJGldLT5TZXRPcHRpb24oJ2lzX3ZhbGlkJyxmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+RmllbGRzWyRpXS0+U2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1ZHQgPSAkdGhpcy0+R2V0QXR0cigndmFsaWRhdGVfdWR0JywnJyk7CiAgICAkdW5zcGVjID0gJHRoaXMtPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgogICAgaWYoICR2YWxpZGF0ZWQgPT0gdHJ1ZSAmJiAhZW1wdHkoJHVkdCkgJiYgIi0xIiAhPSAkdWR0ICkKICAgIHsKICAgICAgJHBhcm1zID0gJHBhcmFtczsgCiAgICAgICRvdGhlcnMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CiAgICAgIGZvcigkaT0wOyRpIDwgY291bnQoJG90aGVycyk7JGkrKykKICAgICAgewogICAgICAgICRyZXBsVmFsID0gJyc7CiAgICAgICAgaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCiAgICAgICAgewogICAgICAgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CiAgICAgICAgICBpZiAoJHJlcGxWYWwgPT0gJycpCiAgICAgICAgICB7CiAgICAgICAgICAgICRyZXBsVmFsID0gJHVuc3BlYzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJG5hbWUgPSAkb3RoZXJzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCk7CiAgICAgICAgJHBhcm1zWyRuYW1lXSA9ICRyZXBsVmFsOwogICAgICAgICRpZCA9ICRvdGhlcnNbJGldLT5HZXRJZCgpOwogICAgICAgICRwYXJtc1snZmxkXycuJGlkXSA9ICRyZXBsVmFsOwogICAgICAgICRhbGlhcyA9ICRvdGhlcnNbJGldLT5HZXRBbGlhcygpOwogICAgICAgIGlmICghZW1wdHkoJGFsaWFzKSkKICAgICAgICB7CiAgICAgICAgICAkcGFybXNbJGFsaWFzXSA9ICRyZXBsVmFsOwogICAgICAgIH0KICAgICAgfQogICAgICAkcmVzID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCR1ZHQsJHBhcm1zKTsKICAgICAgaWYgKCRyZXNbMF0gIT0gdHJ1ZSkKICAgICAgeyAgCiAgICAgICAgYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKICAgICAgICAkdmFsaWRhdGVkID0gZmFsc2U7ICAKICAgICAgfQogICAgfSAgCiAgICAKICAgIHJldHVybiBhcnJheSgkdmFsaWRhdGVkLCAkbWVzc2FnZSk7CiAgfQoKCiAgZnVuY3Rpb24gSGFzRGlzcG9zaXRpb24oKQogIHsKICAgICRoYXNEaXNwID0gZmFsc2U7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCSAgewoJICAgICRoYXNEaXNwID0gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGhhc0Rpc3A7CiAgfQoKICAvLyByZXR1cm4gYW4gYXJyYXk6IGVsZW1lbnQgMCBpcyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZQogIC8vIGVsZW1lbnQgMSBpcyBhbiBhcnJheSBvZiByZWFzb25zLCBpbiB0aGUgZXZlbnQgb2YgZmFpbHVyZS4KICBmdW5jdGlvbiBEaXNwb3NlKCRyZXR1cm5pZCwkc3VwcHJlc3NfZW1haWw9ZmFsc2UpCiAgewogICAgLy8gZmlyc3QsIHdlIHJ1biBhbGwgZmllbGQgbWV0aG9kcyB0aGF0IHdpbGwgbW9kaWZ5IG90aGVyIGZpZWxkcwogICAgJGNvbXB1dGVzID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPk1vZGlmaWVzT3RoZXJGaWVsZHMoKSkKCSAgCXsKCSAgICAJJHRoaXMtPkZpZWxkc1skaV0tPk1vZGlmeU90aGVyRmllbGRzKCk7CgkgIAl9CgkgIGlmICgkdGhpcy0+RmllbGRzWyRpXS0+Q29tcHV0ZU9uU3VibWlzc2lvbigpKQoJICAJewoJICAJCSRjb21wdXRlc1skaV0gPSAkdGhpcy0+RmllbGRzWyRpXS0+Q29tcHV0ZU9yZGVyKCk7CgkgIAl9CiAgICAgIH0KICAgICAgCiAgICBhc29ydCgkY29tcHV0ZXMpOwogICAgZm9yZWFjaCgkY29tcHV0ZXMgYXMgJGNLZXk9PiRjVmFsKQogICAgCXsKICAgIAkkdGhpcy0+RmllbGRzWyRjS2V5XS0+Q29tcHV0ZSgpOwogICAgCX0KCiAgICAkcmVzQXJyYXkgPSBhcnJheSgpOwogICAgJHJldENvZGUgPSB0cnVlOwogICAgLy8gZm9yIGVhY2ggZm9ybSBkaXNwb3NpdGlvbiBwc2V1ZG8tZmllbGQsIGRpc3Bvc2UgdGhlIGZvcm0gcmVzdWx0cwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgJHRoaXMtPkZpZWxkc1skaV0tPkRpc3Bvc2l0aW9uSXNQZXJtaXR0ZWQoKSkKCSAgewoJCWlmICghICgkc3VwcHJlc3NfZW1haWwgJiYgJHRoaXMtPkZpZWxkc1skaV0tPklzRW1haWxEaXNwb3NpdGlvbigpKSkKCQkJewoJCSAgICAkcmVzID0gJHRoaXMtPkZpZWxkc1skaV0tPkRpc3Bvc2VGb3JtKCRyZXR1cm5pZCk7CgkJICAgIGlmICgkcmVzWzBdID09IGZhbHNlKQoJCSAgICAgIHsKCQkJJHJldENvZGUgPSBmYWxzZTsKCQkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkJICAgICAgfQoJCQl9CgkgIH0KICAgICAgfQoKCS8vIGhhbmRsZSBhbnkgbGFzdCBjbGVhbnVwIGZ1bmN0aW9ucwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCSR0aGlzLT5GaWVsZHNbJGldLT5Qb3N0RGlzcG9zaXRpb25BY3Rpb24oKTsKCSAgfQogICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtSGVhZGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gU3RhcnQgRm9ybUJ1aWxkZXIgTW9kdWxlICgiLiR0aGlzLT5tb2R1bGVfcHRyLT5HZXRWZXJzaW9uKCkuIikgLS0+XG4iOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtRm9vdGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gRW5kIEZvcm1CdWlsZGVyIE1vZHVsZSAtLT5cbiI7CiAgICAgIH0KICB9CgoKICAvLyByZXR1cm5zIGEgc3RyaW5nLgogIGZ1bmN0aW9uIFJlbmRlckZvcm0oJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsgCgoJLy8gQ2hlY2sgaWYgZm9ybSBpZCBnaXZlbgogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgCiAgICAjIG1pbm9yIGZpeCB0byByZW1vdmUgY29yZSBkZXBlbmRlbmN5CiAgICAkcmVwbGFjZW1lbnRfaW5jID0gY21zX2pvaW5fcGF0aCgkbW9kLT5HZXRNb2R1bGVQYXRoKCksJ2luY2x1ZGVzJywgJ3JlcGxhY2VtZW50LmluYycpOwogICAgaW5jbHVkZSAoJHJlcGxhY2VtZW50X2luYyk7CiAgICAKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCQlyZXR1cm4gIjwhLS0gbm8gZm9ybSAtLT5cbiI7CiAgICAgIH0KCSAgCgkvLyBDaGVjayBpZiBzaG93IGZ1bGwgZm9ybQogICAgaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQogICAgICB7CgkJJHRoaXMtPkxvYWQoJHRoaXMtPklkLCRwYXJhbXMsdHJ1ZSk7CiAgICAgIH0KCgkvLyBVc3VhbCBjcmFwCiAgICAkcmVxU3ltYm9sID0gJHRoaXMtPkdldEF0dHIoJ3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsJyonKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfcGFnZV94X29mX3knLCRtb2QtPkxhbmcoJ3RpdGxlX3BhZ2VfeF9vZl95JyxhcnJheSgkdGhpcy0+UGFnZSwkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpKSk7CgkJCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY3NzX2NsYXNzJywkdGhpcy0+R2V0QXR0cignY3NzX2NsYXNzJywnJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RvdGFsX3BhZ2VzJywkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RoaXNfcGFnZScsJHRoaXMtPlBhZ2UpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fbmFtZScsJHRoaXMtPk5hbWUpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1faWQnLCR0aGlzLT5JZCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCRpZCk7CgoJLy8gQnVpbGQgaGlkZGVuCiAgICAkaGlkZGVuID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCk7CglpZiAoaXNzZXQoJHBhcmFtc1snbGFuZyddKSkKCQl7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5nJywgJHBhcmFtc1snbGFuZyddKTsKCQl9CiAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfY29udGludWUnLCAoJHRoaXMtPlBhZ2UgKyAxKSk7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9icm93c2VyX2lkJ10pKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9icm93c2VyX2lkJywkcGFyYW1zWydmYnJwX2Jyb3dzZXJfaWQnXSk7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKICAgICAgewoJICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwncmVzcG9uc2VfaWQnLCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pOwogICAgICB9CiAgICBpZiAoJHRoaXMtPlBhZ2UgPiAxKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfcHJldmlvdXMnLCAoJHRoaXMtPlBhZ2UgLSAxKSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+UGFnZSA9PSAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9kb25lJywgMSk7CiAgICAgIH0KCSAgCgkgIAoJICAKCS8vIFN0YXJ0IGJ1aWxkaW5nIGZpZWxkcwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAkcHJldiA9IGFycmF5KCk7CiAgICAkZm9ybVBhZ2VDb3VudCA9IDE7CgkKICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkdGhpcy0+RmllbGRzKTsgJGkrKykgewoJCgkKCSR0aGlzRmllbGQgPSAmJHRoaXMtPkZpZWxkc1skaV07CgkKCWlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJGZvcm1QYWdlQ291bnQrKzsKCSAgfQoJaWYgKCRmb3JtUGFnZUNvdW50ICE9ICR0aGlzLT5QYWdlKQoJICB7CgkgICAgJHRlc3RJbmRleCA9ICdmYnJwX18nLiR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpOwoJCQkKCQkJLy8gUnlhbidzIHVnbHkgZml4IGZvciBCdWcgNDMwNwoJCQkvLyBXZSBzaG91bGQgZmlndXJlIG91dCB3aHkgdGhpcyBmaWVsZCB3YXNuJ3QgcG9wdWxhdGluZyBpdHMgU21hcnR5IHZhcmlhYmxlCgkJCWlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnRmlsZVVwbG9hZEZpZWxkJykKCQkJCXsKCQkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kdGhpc0ZpZWxkLT5HZXRJZCgpLCR0aGlzRmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpKTsKCQkJCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLAoJCQkJCSR0ZXN0SW5kZXgsCgkJCQkJJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzRmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpKSk7CgkJCQkkdGhpc0F0dCA9ICR0aGlzRmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZShmYWxzZSk7CgkJCQkkbW9kLT5zbWFydHktPmFzc2lnbigndGVzdF8nLiR0aGlzRmllbGQtPkdldElkKCksICR0aGlzQXR0KTsKCQkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd2YWx1ZV9mbGQnLiR0aGlzRmllbGQtPkdldElkKCksICR0aGlzQXR0WzBdKTsKCQkJCX0KCQkJCgkgICAgaWYgKCFpc3NldCgkcGFyYW1zWyR0ZXN0SW5kZXhdKSkKCSAgICAgIHsKCQkJLy8gZG8gd2UgbmVlZCB0byB3cml0ZSBzb21ldGhpbmc/CgkgICAgICB9CgkgICAgZWxzZWlmIChpc19hcnJheSgkcGFyYW1zWyR0ZXN0SW5kZXhdKSkKCSAgICAgIHsKCQlmb3JlYWNoICgkcGFyYW1zWyR0ZXN0SW5kZXhdIGFzICR2YWwpCgkJICB7CgkJICAgICRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLAoJCQkJCQkgICAgICAgJHRlc3RJbmRleC4nW10nLAoJCQkJCQkgICAgICAgJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCR2YWwpKTsKCQkgIH0KCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJCSAgICR0ZXN0SW5kZXgsCgkJCQkJCSAgICR0aGlzLT51bm15X2h0bWxlbnRpdGllcygkcGFyYW1zWyR0ZXN0SW5kZXhdKSk7CgkgICAgICB9CgkgICAgICAKICAgICAgaWYgKCRmb3JtUGFnZUNvdW50IDwgJHRoaXMtPlBhZ2UgJiYgJHRoaXMtPkZpZWxkc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKICAgICAgICAgewogICAgICAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICRvbmVzZXQtPnZhbHVlID0gJHRoaXMtPkZpZWxkc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKSwkb25lc2V0KTsKCgkgICAgICBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCiAgICAgICAgICAgIHsKCQkgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+RmllbGRzWyRpXS0+R2V0QWxpYXMoKSwkb25lc2V0KTsKCQkgICAgICB9CgoJICAgICAgYXJyYXlfcHVzaCgkcHJldiwkb25lc2V0KTsKICAgICAgICAgfQoJICAgIGNvbnRpbnVlOwoJICB9CgoJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJJG9uZXNldC0+ZGlzcGxheSA9ICR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZF9zeW1ib2wgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/JHJlcVN5bWJvbDonJzsKCSRvbmVzZXQtPmNzc19jbGFzcyA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7Cgkkb25lc2V0LT5oZWxwdGV4dCA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignaGVscHRleHQnKTsKCSRvbmVzZXQtPmZpZWxkX2hlbHB0ZXh0X2lkID0gJ2ZicnBfaHRfJy4kdGhpc0ZpZWxkLT5HZXRJRCgpOwovLwkkb25lc2V0LT52YWxpZCA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignaXNfdmFsaWQnLHRydWUpPzE6MDsKCSRvbmVzZXQtPnZhbGlkID0gJHRoaXNGaWVsZC0+dmFsaWRhdGVkPzE6MDsKCSRvbmVzZXQtPmVycm9yID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk/Jyc6JHRoaXNGaWVsZC0+dmFsaWRhdGlvbkVycm9yVGV4dDsKCSRvbmVzZXQtPmhpZGVfbmFtZSA9IDA7CglpZiggKCghJHRoaXNGaWVsZC0+SGFzTGFiZWwoKSkgfHwgJHRoaXNGaWVsZC0+SGlkZUxhYmVsKCkpICYmICgkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2Zicl9lZGl0JywnMCcpID09ICcwJyB8fCAkcGFyYW1zWydpbl9hZG1pbiddICE9IDEpICkKCSAgewoJICAgICRvbmVzZXQtPmhpZGVfbmFtZSA9IDE7CgkgIH0KCSRvbmVzZXQtPmhhc19sYWJlbCA9ICR0aGlzRmllbGQtPkhhc0xhYmVsKCk7Cgkkb25lc2V0LT5uZWVkc19kaXYgPSAkdGhpc0ZpZWxkLT5OZWVkc0RpdigpOwoJJG9uZXNldC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKCSRvbmVzZXQtPmlucHV0ID0gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCAkdGhpc0ZpZWxkLT5HZXRGaWVsZElucHV0KCRpZCwgJHBhcmFtcywgJHJldHVybmlkKSApOwoJJG9uZXNldC0+bG9naWMgPSAkdGhpc0ZpZWxkLT5HZXRGaWVsZExvZ2ljKCk7Cgkkb25lc2V0LT52YWx1ZXMgPSAkdGhpc0ZpZWxkLT5HZXRBbGxIdW1hblJlYWRhYmxlVmFsdWVzKCk7Cgkkb25lc2V0LT5zbWFydHlfZXZhbCA9ICR0aGlzRmllbGQtPkdldFNtYXJ0eUV2YWwoKT8xOjA7CgkKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPmxhYmVsX3BhcnRzID0gJHRoaXNGaWVsZC0+TGFiZWxTdWJDb21wb25lbnRzKCk/MTowOwoJJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7Cgkkb25lc2V0LT5pbnB1dF9pZCA9ICR0aGlzRmllbGQtPkdldENTU0lkKCk7CgoJLy8gQWRkZWQgYnkgU3Rpa2tpIFNUQVJUUwoJJG5hbWVfYWxpYXMgPSAkdGhpc0ZpZWxkLT5HZXROYW1lKCk7CgkkbmFtZV9hbGlhcyA9IHN0cl9yZXBsYWNlKCR0b3JlcGxhY2UsICRyZXBsYWNlbWVudCwgJG5hbWVfYWxpYXMpOwoJJG5hbWVfYWxpYXMgPSBzdHJ0b2xvd2VyKCRuYW1lX2FsaWFzKTsKCSRuYW1lX2FsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15hLXowLTldKy9pJywnXycsJG5hbWVfYWxpYXMpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCRuYW1lX2FsaWFzLCRvbmVzZXQpOwoJLy8gQWRkZWQgYnkgU3Rpa2tpIEVORFMKCQoJaWYgKCR0aGlzRmllbGQtPkdldEFsaWFzKCkgIT0gJycpCgkJewoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzRmllbGQtPkdldEFsaWFzKCksJG9uZXNldCk7CgkJJG9uZXNldC0+YWxpYXMgPSAkdGhpc0ZpZWxkLT5HZXRBbGlhcygpOwoJCX0KCWVsc2UKCQl7CgkJJG9uZXNldC0+YWxpYXMgPSAkbmFtZV9hbGlhczsKCQl9CgoJJGZpZWxkc1skb25lc2V0LT5pbnB1dF9pZF0gPSAkb25lc2V0OwoJLy9hcnJheV9wdXNoKCRmaWVsZHMsJG9uZXNldCk7CiAgICAgIH0KCSAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZiX2hpZGRlbicsJGhpZGRlbik7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZpZWxkcycsJGZpZWxkcyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ3ByZXZpb3VzJywkcHJldik7CgogICAgJGpzU3RyID0gJyc7CiAgICAkanNUcmlnZ2VyID0gJyc7CiAgICBpZiAoJHRoaXMtPkdldEF0dHIoJ2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykgPT0gJzEnKQogICAgICB7CgkkanNTdHIgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJLyogPCFbQ0RBVEFbICovCiAgICB2YXIgc3VibWl0dGVkID0gMDsKICAgIGZ1bmN0aW9uIExvY2tCdXR0b24gKCkKICAgICAgIHsKICAgICAgIHZhciByZXQgPSBmYWxzZTsKICAgICAgIGlmICggISBzdWJtaXR0ZWQgKQogICAgICAgICAgewogICAgICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIicuJGlkLidmYnJwX3N1Ym1pdCIpOwogICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2l0ZW0uZGlzYWJsZWQgPSB0cnVlfSwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgc3VibWl0dGVkID0gMTsKICAgICAgICAgICByZXQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQovKiBdXT4gKi8KPC9zY3JpcHQ+JzsKICAgICAgJGpzVHJpZ2dlciA9ICIgb25jbGljaz0ncmV0dXJuIExvY2tCdXR0b24oKSciOwogICAgICB9CgogICAgJGpzID0gJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9qYXZhc2NyaXB0Jyk7CgogICAgaWYgKCR0aGlzLT5QYWdlID4gMSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCc8aW5wdXQgY2xhc3M9ImNtc19zdWJtaXQgZmJzdWJtaXRfcHJldiIgbmFtZT0iJy4kaWQuJ2ZicnBfcHJldiIgaWQ9IicuJGlkLidmYnJwX3ByZXYiIHZhbHVlPSInLiR0aGlzLT5HZXRBdHRyKCdwcmV2X2J1dHRvbl90ZXh0JykuJyIgdHlwZT0ic3VibWl0IiAnLiRqcy4nIC8+Jyk7CQkJCQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCcnKTsKICAgICAgfQoKICAgIGlmICgkdGhpcy0+UGFnZSA8ICRmb3JtUGFnZUNvdW50KQogICAgICB7CgoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJzxpbnB1dCBjbGFzcz0iY21zX3N1Ym1pdCBmYnN1Ym1pdF9uZXh0IiBuYW1lPSInLiRpZC4nZmJycF9zdWJtaXQiIGlkPSInLiRpZC4nZmJycF9zdWJtaXQiIHZhbHVlPSInLiR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JykuJyIgdHlwZT0ic3VibWl0IiAnLiRqcy4nIC8+Jyk7ICAKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICRjYXB0Y2hhID0gJG1vZC0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgICAgaWYgKCR0aGlzLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdncmFwaGljX2NhcHRjaGEnLCRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfY2FwdGNoYScsJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhJykpKTsKICAgICAgICAgI3RoaXMgc2hvdWxkIHdvcmsgd2l0aCBDYXB0Y2hhIDAuNC42IGFuZCBoaWdoZXIgKEpNKQogICAgICAgICAkY3B0Y25lZWRzaW5wdXQgPSBtZXRob2RfZXhpc3RzKCRjYXB0Y2hhLCAnTmVlZHNJbnB1dEZpZWxkJykgPyAkY2FwdGNoYS0+TmVlZHNJbnB1dEZpZWxkKCkgOiB0cnVlOwogICAgICAgICBpZigkY3B0Y25lZWRzaW5wdXQpICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYXB0Y2hhJywkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9jYXB0Y2hhX3BocmFzZScsJycpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc19jYXB0Y2hhJywnMScpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzX2NhcHRjaGEnLCcwJyk7CiAgICAgICAgIH0KCQkgCgkJIAoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCc8aW5wdXQgY2xhc3M9ImNtc19zdWJtaXQgZmJzdWJtaXQiIG5hbWU9IicuJGlkLidmYnJwX3N1Ym1pdCIgaWQ9IicuJGlkLidmYnJwX3N1Ym1pdCIgdmFsdWU9IicuJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9idXR0b25fdGV4dCcpLiciIHR5cGU9InN1Ym1pdCIgJy4kanMuJyAvPicpOyAgCQkgCiAgICAgIH0KCgkgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2ZiXycuJHRoaXMtPklkKTsKICB9CgogIGZ1bmN0aW9uIExvYWRGb3JtKCRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxvYWQoJHRoaXMtPklkLCBhcnJheSgpLCAkbG9hZERlZXApOwogIH0KCmZ1bmN0aW9uIHVubXlfaHRtbGVudGl0aWVzKCR2YWwpCnsKCWlmICgkdmFsID09ICIiKQoJewoJCXJldHVybiAiIjsKCX0KCSR2YWwgPSBodG1sX2VudGl0eV9kZWNvZGUoJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZhbXA7IiwiJiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjNjA7JiMzMzstLSIsIjwhLS0iLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCItLSYjNjI7IiwiLS0+IiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmd0OyIsIj4iLCAkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmx0OyIsIjwiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImcXVvdDsiLCJcIiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMDM2OyIsIlwkIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMzMzsiLCIhIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMzOTsiLCInIiwkdmFsKTsKCgkvLyBVbmNvbW1lbnQgaWYgeW91IG5lZWQgdG8gY29udmVydCB1bmljb2RlIGNoYXJzCglyZXR1cm4gJHZhbDsKfQoKCgoKCiAgZnVuY3Rpb24gTG9hZCgkZm9ybUlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlLCAkbG9hZFJlc3A9ZmFsc2UpCiAgewoKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCgkvL2Vycm9yX2xvZygiZW50ZXJpbmcgRm9ybSBMb2FkIHdpdGggdXNhZ2UgIi5tZW1vcnlfZ2V0X3VzYWdlKCkpOwogICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgIGlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQogICAgICB7CgkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJJHRoaXMtPklkID0gJHJlc3VsdFsnZm9ybV9pZCddOwoJaWYgKCFpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fbmFtZSddKSB8fCBlbXB0eSgkcGFyYW1zWydmYnJwX2Zvcm1fbmFtZSddKSkKCSAgewoJICAgICR0aGlzLT5OYW1lID0gJHJlc3VsdFsnbmFtZSddOwoJICB9CglpZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddKSB8fCBlbXB0eSgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkpCgkgIHsKCSAgICAkdGhpcy0+QWxpYXMgPSAkcmVzdWx0WydhbGlhcyddOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAkc3FsID0gJ1NFTEVDVCBuYW1lLHZhbHVlIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwogICAgd2hpbGUgKCRycyAmJiAkcmVzdWx0PSRycy0+RmV0Y2hSb3coKSkKICAgICAgewoJJHRoaXMtPkF0dHJzWyRyZXN1bHRbJ25hbWUnXV0gPSAkcmVzdWx0Wyd2YWx1ZSddOwogICAgICB9CiAgICAgICAgICAKICAgICR0aGlzLT5sb2FkZWQgPSAnc3VtbWFyeSc7CgogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKQogICAgICB7CgkkbG9hZERlZXAgPSB0cnVlOwoJJGxvYWRSZXNwID0gdHJ1ZTsKICAgICAgfQoKICAgIGlmICgkbG9hZERlZXApCiAgICAgIHsKCSAgaWYgKCRsb2FkUmVzcCkKCQl7CgkvLyBpZiBpdCdzIGEgc3RvcmVkIGZvcm0sIGxvYWQgdGhlIHJlc3VsdHMgLS0gYnV0IHdlIG5lZWQgdG8gbWFudWFsbHkgbWVyZ2UgdGhlbSwKCS8vIHNpbmNlICRwYXJhbXNbXSBzaG91bGQgb3ZlcnJpZGUgdGhlIGRhdGFiYXNlIHZhbHVlIChzYXkgd2UncmUgcmVzdWJtaXR0aW5nIGEgZm9ybSkKCQkkZmJmID0gJG1vZC0+R2V0Rm9ybUJyb3dzZXJGaWVsZCgkZm9ybUlkKTsKCQlpZiAoJGZiZiAhPSBmYWxzZSkKCQkJewoJCQkvLyBpZiB3ZSdyZSBiaW5kaW5nIHRvIEZFVSwgZ2V0IHRoZSBGRVUgSUQsIHNlZSBpZiB0aGVyZSdzIGEgcmVzcG9uc2UgZm9yCgkJCS8vIHRoYXQgdXNlci4gSWYgc28sIGxvYWQgaXQuIE90aGVyd2lzZSwgYnJpbmcgdXAgYW4gZW1wdHkgZm9ybS4KCQkJaWYgKCRmYmYtPkdldE9wdGlvbignZmV1X2JpbmQnLCcwJyk9PScxJykKCQkJCXsKCQkJCSRmZXUgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJCQkJaWYgKCRmZXUgPT0gZmFsc2UpCgkJCQkJewoJCQkJCWRlYnVnX2Rpc3BsYXkoIkZBSUxFRCB0byBpbnN0YXRpYXRlIEZFVSEiKTsKCQkJCQlyZXR1cm47CgkJCQkJfQoJCQkJaWYgKCFpc3NldCgkX0NPT0tJRVsnY21zX2FkbWluX3VzZXJfaWQnXSkpCgkJCQkJewoJCQkJCS8vIEZpeCBmb3IgQnVnIDU0MjIuIEFkYXB0ZWQgZnJvbSBNaWtlIEh1Z2hlc2RvbidzIGNvZGUuCgkJCQkJJHJlc3BvbnNlX2lkID0gJG1vZC0+R2V0UmVzcG9uc2VJREZyb21GRVVJRCgkZmV1LT5Mb2dnZWRJbklkKCksICRmb3JtSWQpOwoJCQkJCWlmICgkcmVzcG9uc2VfaWQgIT09IGZhbHNlKQoJCQkJCQl7CgkJCQkJCSRjaGVjayA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2V0T25lKCdzZWxlY3QgY291bnQoKikgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgd2hlcmUgZmJyX2lkPT8nLGFycmF5KCRyZXNwb25zZV9pZCkpOwoJCQkJCQlpZiAoJGNoZWNrID09IDEpCgkJCQkJCQl7CgkJCQkJCQkkcGFyYW1zWydyZXNwb25zZV9pZCddID0gJHJlc3BvbnNlX2lkOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CglpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCgkgIHsKCSAgICAkbG9hZFBhcmFtcyA9IGFycmF5KCdyZXNwb25zZV9pZCc9PiRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pOwoJCQkkbG9hZFR5cGVzID0gYXJyYXkoKTsKCSAgICAkdGhpcy0+TG9hZFJlc3BvbnNlVmFsdWVzKCRsb2FkUGFyYW1zLCAkbG9hZFR5cGVzKTsKCSAgICBmb3JlYWNoICgkbG9hZFBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsdWUpCgkgICAgICB7CgkJaWYgKCEgaXNzZXQoJHBhcmFtc1skdGhpc1BhcmFtS2V5XSkpCgkJICB7CgkJCQlpZiAoJHRoaXMtPkdldEZvcm1TdGF0ZSgpID09ICd1cGRhdGUnICYmICRsb2FkVHlwZXNbJHRoaXNQYXJhbUtleV0gPT0gJ0NoZWNrYm94RmllbGQnKQoJCQkJewoJCQkJCSRwYXJhbXNbJHRoaXNQYXJhbUtleV0gPSAnJzsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkcGFyYW1zWyR0aGlzUGFyYW1LZXldID0gJHRoaXNQYXJhbVZhbHVlOwoJCQkJfQoJCSAgfQoJICAgICAgfQoJICB9Cgl9Cgkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmb3JtX2lkPT8gT1JERVIgQlkgb3JkZXJfYnknOwoJJHJlc3VsdCA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2V0QXJyYXkoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwoJLyokcmVzdWx0ID0gYXJyYXkoKTsKCWlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgewoJICAgICRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkgIH0KCSovCgkkZmllbGRDb3VudCA9IDA7CglpZiAoY291bnQoJHJlc3VsdCkgPiAwKQoJICB7CgkgICAgZm9yZWFjaCgkcmVzdWx0IGFzICR0aGlzUmVzKQoJICAgICAgewoJCS8vZXJyb3JfbG9nKCJJbnN0YW50aWF0aW5nIEZpZWxkLiB1c2FnZSAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgoJCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkdGhpc1Jlc1sndHlwZSddLCAnJyk7CgkJLy8gY3JlYXRlIHRoZSBmaWVsZCBvYmplY3QKCQlpZiAoKGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pIHx8IGlzc2V0KCRwYXJhbXNbJ2ZicnBfX18nLiR0aGlzUmVzWydmaWVsZF9pZCddXSkpKSB8fAoJCSAgICAoaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXNSZXNbJ25hbWUnXV0pKSB8fCAoaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXNSZXNbJ2ZpZWxkX2lkJ11dKSkgfHwKCQkgICAgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pICYmIGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJiAkcGFyYW1zWydmaWVsZF9pZCddID09ICR0aGlzUmVzWydmaWVsZF9pZCddKSkgewoJCSAgICAKCQkJJHRoaXNSZXMgPSBhcnJheV9tZXJnZSgkdGhpc1JlcywkcGFyYW1zKTsKCQl9CgkJCgkJJHRoaXMtPkZpZWxkc1skZmllbGRDb3VudF0gPSAkdGhpcy0+TmV3RmllbGQoJHRoaXNSZXMpOwoJCSRmaWVsZENvdW50Kys7CgkgICAgICB9CgkgIH0KCSR0aGlzLT5sb2FkZWQgPSAnZnVsbCc7CiAgICAgIH0KCgkJCiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+VHlwZSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKys7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KCi8qIG5vdGFibGUgcGFyYW1zOgogIGZicnBfeG1sX2ZpbGUgLS0gc291cmNlIGZpbGUgZm9yIHRoZSBYTUwKICB4bWxfc3RyaW5nIC0tIHNvdXJjZSBzdHJpbmcgZm9yIHRoZSBYTUwKKi8KCiAgZnVuY3Rpb24gSW1wb3J0WE1MKCYkcGFyYW1zKQogIHsKICAJLy8geG1sX3BhcnNlcl9jcmVhdGUsIHhtbF9wYXJzZV9pbnRvX3N0cnVjdAogIAkkcGFyc2VyID0geG1sX3BhcnNlcl9jcmVhdGUoJycpOwogICB4bWxfcGFyc2VyX3NldF9vcHRpb24oICRwYXJzZXIsIFhNTF9PUFRJT05fQ0FTRV9GT0xESU5HLCAwICk7CiAgIHhtbF9wYXJzZXJfc2V0X29wdGlvbiggJHBhcnNlciwgWE1MX09QVElPTl9TS0lQX1dISVRFLCAwICk7IC8vIHdhcyAxCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCBmaWxlX2dldF9jb250ZW50cygkcGFyYW1zWydmYnJwX3htbF9maWxlJ10pLCAkdmFsdWVzKTsKCQl9CgllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3htbF9zdHJpbmcnXSkgJiYgISBlbXB0eSgkcGFyYW1zWyd4bWxfc3RyaW5nJ10pKQoJCXsKCQl4bWxfcGFyc2VfaW50b19zdHJ1Y3QoJHBhcnNlciwgJHBhcmFtc1sneG1sX3N0cmluZyddLCAkdmFsdWVzKTsKCQl9CgllbHNlCgkJewoJCXJldHVybiBmYWxzZTsKCQl9Cgl4bWxfcGFyc2VyX2ZyZWUoJHBhcnNlcik7CgkkZWxlbWVudHMgPSBhcnJheSgpOwoJJHN0YWNrID0gYXJyYXkoKTsKCSRmaWVsZE1hcCA9IGFycmF5KCk7Cglmb3JlYWNoICggJHZhbHVlcyBhcyAkdGFnICkKCQl7CgkJJGluZGV4ID0gY291bnQoICRlbGVtZW50cyApOwoJCWlmICggJHRhZ1sndHlwZSddID09ICJjb21wbGV0ZSIgfHwgJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCXsKCQkJJGVsZW1lbnRzWyRpbmRleF0gPSBhcnJheSgpOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnbmFtZSddID0gJHRhZ1sndGFnJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydhdHRyaWJ1dGVzJ10gPSBlbXB0eSgkdGFnWydhdHRyaWJ1dGVzJ10pID8gIiIgOiAkdGFnWydhdHRyaWJ1dGVzJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydjb250ZW50J10gICAgPSBlbXB0eSgkdGFnWyd2YWx1ZSddKSA/ICIiIDogJHRhZ1sndmFsdWUnXTsKCQkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gIm9wZW4iICkKCQkJCXsKCQkJCSMgcHVzaAoJCQkJJGVsZW1lbnRzWyRpbmRleF1bJ2NoaWxkcmVuJ10gPSBhcnJheSgpOwoJCQkJJHN0YWNrW2NvdW50KCRzdGFjayldID0gJiRlbGVtZW50czsKCQkJCSRlbGVtZW50cyA9ICYkZWxlbWVudHNbJGluZGV4XVsnY2hpbGRyZW4nXTsKCQkJCX0KICAgICAgICB9CgkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gImNsb3NlIiApCgkJCXsgICAgIyBwb3AKCQkJJGVsZW1lbnRzID0gJiRzdGFja1tjb3VudCgkc3RhY2spIC0gMV07CgkJCXVuc2V0KCRzdGFja1tjb3VudCgkc3RhY2spIC0gMV0pOwoJCQl9CgkJfQovL2RlYnVnX2Rpc3BsYXkoJGVsZW1lbnRzKTsKCWlmICghaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdWydhdHRyaWJ1dGVzJ10pKQoJCXsKCQkvL3BhcnNpbmcgZmFpbGVkLCBvciBpbnZhbGlkIGZpbGUuCgkJcmV0dXJuIGZhbHNlOwoJCX0KCSRwYXJhbXNbJ2Zvcm1faWQnXSA9IC0xOyAvLyBvdmVycmlkZSBhbnkgZm9ybV9pZCB2YWx1ZXMgdGhhdCBtYXkgYmUgYXJvdW5kCgkkZm9ybUF0dHJzID0gJiRlbGVtZW50c1swXVsnYXR0cmlidXRlcyddOwoKICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1hbGlhcyddKSAmJiAhZW1wdHkoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKQogICAgICB7CiAgICAgICR0aGlzLT5TZXRBbGlhcygkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSk7CiAgICAgIH0KICAgZWxzZSBpZiAoJHRoaXMtPmluWE1MKCRmb3JtQXR0cnNbJ2FsaWFzJ10pKQoJCXsKCQkkdGhpcy0+U2V0QWxpYXMoJGZvcm1BdHRyc1snYWxpYXMnXSk7CgkJfQogICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pKQogICAgICB7CiAgICAgICR0aGlzLT5TZXROYW1lKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pOwogICAgICB9CgkkZm91bmRmaWVsZHMgPSBmYWxzZTsKCS8vIHBvcHVsYXRlIHRoZSBhdHRyaWJ1dGVzIGFuZCBmaWVsZCBuYW1lIGZpcnN0LiBXaGVuIHdlIHNlZSBhIGZpZWxkLCB3ZSBzYXZlIHRoZSBmb3JtIGFuZCB0aGVuIHN0YXJ0IGFkZGluZyB0aGUgZmllbGRzIHRvIGl0LgoKCWZvcmVhY2ggKCRlbGVtZW50c1swXVsnY2hpbGRyZW4nXSBhcyAkdGhpc0NoaWxkKQoJCXsKCQlpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdmb3JtX25hbWUnKQoJCQl7CgkJCSRjdXJuYW1lID0gICR0aGlzLT5HZXROYW1lKCk7CgkJCWlmIChlbXB0eSgkY3VybmFtZSkpCiAgICAgICAgICAgIHsKCQkJICAgJHRoaXMtPlNldE5hbWUoJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJICAgfQoJCQl9CgkJZWxzZWlmICgkdGhpc0NoaWxkWyduYW1lJ10gPT0gJ2F0dHJpYnV0ZScpCgkJCXsKCQkJJHRoaXMtPlNldEF0dHIoJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddWydrZXknXSwgJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyB3ZSBnb3QgdXMgYSBmaWVsZAoJCQlpZiAoISAkZm91bmRmaWVsZHMpCgkJCQl7CgkJCQkvLyBmaXJzdCBmaWVsZAoJCQkJJGZvdW5kZmllbGRzID0gdHJ1ZTsKCQkJCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAmJiAKCQkJCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJCQkJICB7CgkJCQkgICAgJHRoaXMtPlNldE5hbWUodHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSk7CgkJCQkgIH0KCQkJCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSkgJiYKCQkJCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJCQkJICB7CgkJCQkgICAgJHRoaXMtPlNldEFsaWFzKHRyaW0oJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKTsKCQkJCSAgfQoJCQkJJHRoaXMtPlN0b3JlKCk7CgkJCQkkcGFyYW1zWydmb3JtX2lkJ10gPSAkdGhpcy0+R2V0SWQoKTsKCQkJCX0KCQkJCS8vZGVidWdfZGlzcGxheSgkdGhpc0NoaWxkKTsKCQkJJGZpZWxkQXR0cnMgPSAmJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddOwoJCQkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJGZpZWxkQXR0cnNbJ3R5cGUnXSwgJycpOwoJCQkvL2RlYnVnX2Rpc3BsYXkoJGNsYXNzTmFtZSk7CgkJICAgICRuZXdGaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCQkJJG9sZElkID0gJGZpZWxkQXR0cnNbJ2lkJ107CgoJCQlpZiAoJHRoaXMtPmluWE1MKCRmaWVsZEF0dHJzWydhbGlhcyddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0QWxpYXMoJGZpZWxkQXR0cnNbJ2FsaWFzJ10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlNldFZhbGlkYXRpb25UeXBlKCRmaWVsZEF0dHJzWyd2YWxpZGF0aW9uX3R5cGUnXSk7CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ29yZGVyX2J5J10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRPcmRlcigkZmllbGRBdHRyc1snb3JkZXJfYnknXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ3JlcXVpcmVkJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRSZXF1aXJlZCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ2hpZGVfbGFiZWwnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldEhpZGVMYWJlbCgkZmllbGRBdHRyc1snaGlkZV9sYWJlbCddKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNDaGlsZFsnY2hpbGRyZW4nXSBhcyAkdGhpc09wdCkKCQkJCXsJCgkJCQlpZiAoJHRoaXNPcHRbJ25hbWUnXSA9PSAnZmllbGRfbmFtZScpCgkJCQkJewoJCQkJCSRuZXdGaWVsZC0+U2V0TmFtZSgkdGhpc09wdFsnY29udGVudCddKTsKCQkJCQl9CgkJCQlpZiAoJHRoaXNPcHRbJ25hbWUnXSA9PSAnb3B0aW9ucycpCgkJCQkJewoJCQkJCWZvcmVhY2ggKCR0aGlzT3B0WydjaGlsZHJlbiddIGFzICR0aGlzT3B0aW9uKQoJCQkJCQkJewoJCQkJCQkJJG5ld0ZpZWxkLT5PcHRpb25Gcm9tWE1MKCR0aGlzT3B0aW9uKTsKCQkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCSRuZXdGaWVsZC0+U3RvcmUodHJ1ZSk7CiAgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPkZpZWxkcywkbmV3RmllbGQpOwoJCQkkZmllbGRNYXBbJG9sZElkXSA9ICRuZXdGaWVsZC0+R2V0SWQoKTsKCQkJfQoJCX0KCiAgIC8vIGNsZWFuIHVwIHJlZmVyZW5jZXMKICAgCglpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCS8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIHRlbXBsYXRlcy4KCQkkdG1wID0gJHRoaXMtPnVwZGF0ZVJlZnMoJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCcnKSwgJGZpZWxkTWFwKTsKCQkkdGhpcy0+U2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRtcCk7CgkJJHRtcCA9ICR0aGlzLT51cGRhdGVSZWZzKCR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfcmVzcG9uc2UnLCcnKSwgJGZpZWxkTWFwKTsKCQkkdGhpcy0+U2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywkdG1wKTsKCgkJLy8gbmVlZCB0byB1cGRhdGUgbWFwcGluZ3MgaW4gZmllbGQgdGVtcGxhdGVzLgogICAgICAkb3B0aW9ucyA9IGFycmF5KCdlbWFpbF90ZW1wbGF0ZScsJ2ZpbGVfdGVtcGxhdGUnKTsKCQlmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZpZD0+JHRoaXNGaWVsZCkKICAgICAgICAgewogICAgICAgICAkY2hhbmdlcyA9IGZhbHNlOwogICAgICAgICBmb3JlYWNoICgkb3B0aW9ucyBhcyAkdG8pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRlbXBsID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCR0bywnJyk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHRlbXBsKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdG1wID0gJHRoaXMtPnVwZGF0ZVJlZnMoJHRlbXBsLCAkZmllbGRNYXApOwogICAgICAgICAgICAgICAkdGhpc0ZpZWxkLT5TZXRPcHRpb24oJHRvLCR0bXApOwogICAgICAgICAgICAgICAkY2hhbmdlcyA9IHRydWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoJCSAgIC8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIEZvcm1Ccm93c2VyIHNvcnQgZmllbGRzCiAgICAgICAgIGlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgZm9yICgkaT0xOyRpPDY7JGkrKykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkb2xkID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpKTsKICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRmaWVsZE1hcFskb2xkXSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHRoaXNGaWVsZC0+U2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLCRmaWVsZE1hcFskb2xkXSk7CiAgICAgICAgICAgICAgICAgICRjaGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgaWYgKCRjaGFuZ2VzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzRmllbGQtPlN0b3JlKHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICR0aGlzLT5TdG9yZSgpOwogICAJfQoJCglyZXR1cm4gdHJ1ZTsJCiAgfQoKCiAgZnVuY3Rpb24gdXBkYXRlUmVmcygkdGV4dCwgJiRmaWVsZE1hcCkKICAgewogICAgICBmb3JlYWNoICgkZmllbGRNYXAgYXMgJGs9PiR2KQogICAgICAgICB7CiAgICAgICAgICR0ZXh0ID0gcHJlZ19yZXBsYWNlKCcvKFtce1xiXHNdKVwkZmxkXycuJGsuJyhbXH1cYlxzXSkvJywnJDFcJGZsZF8nLiR2LickMicsJHRleHQpOwogICAgICAgICB9CiAgICAgIHJldHVybiAkdGV4dDsKICAgfQoKICBmdW5jdGlvbiBpblhNTCgmJHZhcikKICB7CiAgCQlpZiAoaXNzZXQoJHZhcikgJiYgc3RybGVuKCR2YXIpID4gMCkKICAJCQl7CgkJCXJldHVybiB0cnVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBmYWxzZTsKCQkJfQogIH0KCiAgLy8gc3RvcmVEZWVwIGFsc28gc3RvcmVzIGFsbCBmaWVsZHMgYW5kIG9wdGlvbnMgZm9yIGEgZm9ybQogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogIAoJJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwoJJHBhcmFtcyA9ICR0aGlzLT5tb2R1bGVfcGFyYW1zOwogIAoJLy8gQ2hlY2sgaWYgbmV3IG9yIG9sZCBmb3JtCgkkcmVzID0gRkFMU0U7CgkkaiA9ICIiOwoJJG5ldyA9IEZBTFNFOwoJaWYgKCR0aGlzLT5JZCA9PSAtMSkKCXsKCQkkdGhpcy0+SWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgkJJG5ldyA9IFRSVUU7Cgl9Cgl3aGlsZSghJHJlcyAmJiAkaiA8IDEwKQoJewoJCSRhZGpfYWxpYXMgPSAkdGhpcy0+QWxpYXMuJGo7IAoJCWlmICgkbmV3KSB7CgkJCSRzcWwgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtIChmb3JtX2lkLCBuYW1lLCBhbGlhcykgVkFMVUVTICg/LCA/LCA/KSI7CgkJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkLCAkdGhpcy0+TmFtZSwgJGFkal9hbGlhcykpOwoJCX0gZWxzZSB7CgkJCSRzcWwgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybSBzZXQgbmFtZT0/LCBhbGlhcz0/IHdoZXJlIGZvcm1faWQ9PyI7CgkJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPk5hbWUsICRhZGpfYWxpYXMsICR0aGlzLT5JZCkpOwoJCX0KCQkkaisrOwoJfQoJaWYoICEkcmVzICkKCSAgewoJICAgIGRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnLiRkYi0+RXJyb3JNc2coKS4nPGJyLz5RVUVSWTogJy4kZGItPnNxbCk7CgkgIH0KCiAgICAvLyBTYXZlIG91dCB0aGUgYXR0cnMKICAgICRzcWwgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtX2F0dHIgV0hFUkUgZm9ybV9pZD0/IjsKICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CgkKICAgIGZvcmVhY2ggKCR0aGlzLT5BdHRycyBhcyAkdGhpc0F0dHJLZXk9PiR0aGlzQXR0clZhbHVlKSB7CgkKCQkkZm9ybUF0dHJJZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwoJCSRzcWwgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1fYXR0cl9pZCwgZm9ybV9pZCwgbmFtZSwgdmFsdWUpIFZBTFVFUyAoPywgPywgPywgPykiOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1BdHRySWQsICR0aGlzLT5JZCwgJHRoaXNBdHRyS2V5LCAkdGhpc0F0dHJWYWx1ZSkpOwoJCgkJaWYgKCR0aGlzQXR0cktleSA9PSAnZm9ybV90ZW1wbGF0ZScpIHsKCQkKCQkJJHRoaXMtPm1vZHVsZV9wdHItPlNldFRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCwkdGhpc0F0dHJWYWx1ZSk7CgkJfQogICAgfQoJCgkvLyBVcGRhdGUgZmllbGQgcG9zaXRpb24KCSRvcmRlcl9saXN0ID0gZmFsc2U7CglpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0J10pKQoJCXsKCQkkb3JkZXJfbGlzdCA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2ZicnBfc29ydCddKTsKCQl9CgkJCglpZihpc19hcnJheSgkb3JkZXJfbGlzdCkgJiYgY291bnQoJG9yZGVyX2xpc3QpID4gMCkgewoJCQoJCSRjb3VudCA9IDE7CgkJJHNxbCA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9maWVsZCBTRVQgb3JkZXJfYnk9PyBXSEVSRSBmaWVsZF9pZD0/IjsKCgkJZm9yZWFjaCAoJG9yZGVyX2xpc3QgYXMgJG9uZWZsZGlkKSB7CgkKCQkJJGZpZWxkaWQgPSBzdWJzdHIoJG9uZWZsZGlkLDUpOwoJCQkkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGNvdW50LCAkZmllbGRpZCkpOwoJCQkkY291bnQrKzsKCQl9Cgl9CgkKCS8vIFJlbG9hZCBldmVyeXRoaW5nCgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsJHBhcmFtcyx0cnVlKTsKCQogICAgcmV0dXJuICRyZXM7CiAgfQoKICBmdW5jdGlvbiBEZWxldGUoKQogIHsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCQlyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+bG9hZGVkICE9ICdmdWxsJykKICAgICAgewoJCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCxhcnJheSgpLHRydWUpOwogICAgICB9CiAgICBmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICRmaWVsZCkKICAgICAgewoJCSRmaWVsZC0+RGVsZXRlKCk7CiAgICAgIH0KICAgICR0aGlzLT5tb2R1bGVfcHRyLT5EZWxldGVUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQpOwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9mb3JtIHdoZXJlIGZvcm1faWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgZm9ybV9pZD0/JzsKICAgICRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIHJldHVybnMgYSBjbGFzcyBuYW1lLCBhbmQgbWFrZXMgc3VyZSB0aGUgZmlsZSB3aGVyZSB0aGUgY2xhc3MgaXMKICAvLyBkZWZpbmVkIGhhcyBiZWVuIGxvYWRlZC4KICBmdW5jdGlvbiBNYWtlQ2xhc3NOYW1lKCR0eXBlLCAkY2xhc3NEaXJQcmVmaXgpCiAgewogICAgLy8gcGVyZm9ybSBydWRpbWVudGFyeSBzZWN1cml0eSwgc2luY2UgVHlwZSBjb3VsZCBjb21lIGluIGZyb20gYSBmb3JtCiAgICAkdHlwZSA9IHByZWdfcmVwbGFjZSgiL1tcV118XC5cLi8iLCAiXyIsICR0eXBlKTsKICAgIGlmICgkdHlwZSA9PSAnJyB8fCBzdHJsZW4oJHR5cGUpIDwgMSkKICAgICAgewoJJHR5cGUgPSAnRmllbGQnOwogICAgICB9CiAgICAkY2xhc3NGaWxlPScnOwogICAgaWYgKHN0cmxlbigkY2xhc3NEaXJQcmVmaXgpID4gMCkKICAgICAgewoJJGNsYXNzRmlsZSA9ICRjbGFzc0RpclByZWZpeCAuJy8nLiR0eXBlLicuY2xhc3MucGhwJzsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkY2xhc3NGaWxlID0gJHR5cGUuJy5jbGFzcy5waHAnOwogICAgICB9CiAgICByZXF1aXJlX29uY2UgY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwgJGNsYXNzRmlsZSk7CiAgICAvLyBjbGFzcyBuYW1lcyBhcmUgcHJlcGVuZGVkIHdpdGggImZiIiB0byBwcmV2ZW50IG5hbWVzcGFjZSBjbGFzaC4KICAgIHJldHVybiAoICdmYicuJHR5cGUgKTsKICB9CgogIGZ1bmN0aW9uIEFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGFiLCAkbWVzc2FnZT0nJykKICB7CiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkkY29uZmlnID0gJG1vZC0+R2V0Q29uZmlnKCk7CiAgCiAgCgoJaWYoIWVtcHR5KCRtZXNzYWdlKSkgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtb2QtPlNob3dNZXNzYWdlKCRtZXNzYWdlKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywgJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX3N0b3JlX2Zvcm0nLCAkcmV0dXJuaWQpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtaWQnLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKSk7CiAgICAKIyBmaXhlcyBmb3IgQ01TTVMgMiBjb21wYXRpYmlsaXR5IChKTSkgIAogIGlmKCAhZm9ybWJ1aWxkZXJfdXRpbHM6OmlzX0NNUzIoKSApCiAgewogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWJIZWFkZXJzKCkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdtYWludGFiJywkbW9kLT5MYW5nKCd0YWJfbWFpbicpLCgnbWFpbnRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdzdWJtaXR0YWInLCRtb2QtPkxhbmcoJ3RhYl9zdWJtaXQnKSwoJ3N1Ym1pdHRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdzeW1ib2x0YWInLCRtb2QtPkxhbmcoJ3RhYl9zeW1ib2wnKSwoJ3N5bWJvbHRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdjYXB0Y2hhdGFiJywkbW9kLT5MYW5nKCd0YWJfY2FwdGNoYScpLCgnY2FwdGNoYXRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCd1ZHR0YWInLCRtb2QtPkxhbmcoJ3RhYl91ZHQnKSwoJ3VkdHRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZWxheW91dCcsJG1vZC0+TGFuZygndGFiX3RlbXBsYXRlbGF5b3V0JyksKCd0ZW1wbGF0ZWxheW91dCcgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCiAgICAgICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdzdWJtaXR0ZW1wbGF0ZScsJG1vZC0+TGFuZygndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZScpLCgnc3VibWl0dGVtcGxhdGUnID09ICR0YWIpP3RydWU6ZmFsc2UpLgogICAgICAgICAgICAgICRtb2QtPkVuZFRhYkhlYWRlcnMoKSAuICRtb2QtPlN0YXJ0VGFiQ29udGVudCgpKTsKICAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYnNfZW5kJywkbW9kLT5FbmRUYWJDb250ZW50KCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW50YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJtYWludGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInN1Ym1pdHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzeW1ib2x0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzeW1ib2x0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndWR0dGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigidWR0dGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRldGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigidGVtcGxhdGVsYXlvdXQiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0dGVtcGxhdGV0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzdWJtaXR0ZW1wbGF0ZSIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigiY2FwdGNoYXRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CiAgfSAgIAoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX25hbWUnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX25hbWUnLCAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtX25hbWUnLCAkdGhpcy0+TmFtZSwgNTApKTsKCQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xvYWRfdGVtcGxhdGUnLCRtb2QtPkxhbmcoJ3RpdGxlX2xvYWRfdGVtcGxhdGUnKSk7CgkkbW9kTGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZ2V0X3RlbXBsYXRlJywgJHJldHVybmlkLCAnJywgYXJyYXkoKSwgJycsIHRydWUpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NlY3VyaXR5X2tleScsQ01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXSk7CgkKCSR0ZW1wbGF0ZUxpc3QgPSBhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3Rfc291cmNlX3RlbXBsYXRlJyk9PicnLCRtb2QtPkxhbmcoJ2RlZmF1bHRfdGVtcGxhdGUnKT0+J1JlbmRlckZvcm1EZWZhdWx0LnRwbCcsCgkJJG1vZC0+TGFuZygndGFibGVfbGVmdF90ZW1wbGF0ZScpPT4nUmVuZGVyRm9ybVRhYmxlVGl0bGVMZWZ0LnRwbCcsCgkJJG1vZC0+TGFuZygndGFibGVfdG9wX3RlbXBsYXRlJyk9PidSZW5kZXJGb3JtVGFibGVUaXRsZVRvcC50cGwnKTsKCQkKCSRhbGxGb3JtcyA9ICRtb2QtPkdldEZvcm1zKCk7Cglmb3JlYWNoICgkYWxsRm9ybXMgYXMgJHRoaXNGb3JtKQoJCXsKCQlpZiAoJHRoaXNGb3JtWydmb3JtX2lkJ10gIT0gJHRoaXMtPklkKQoJCQl7CgkJCSR0ZW1wbGF0ZUxpc3RbJG1vZC0+TGFuZygnZm9ybV90ZW1wbGF0ZV9uYW1lJywkdGhpc0Zvcm1bJ25hbWUnXSldID0KCQkJCSR0aGlzRm9ybVsnZm9ybV9pZCddOwoJCQl9CgkJfQoJCgkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbG9hZF90ZW1wbGF0ZScsJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsCgkJJ2ZicnBfZmJfdGVtcGxhdGVfbG9hZCcsICR0ZW1wbGF0ZUxpc3QsIC0xLCAnJywgJ2lkPSJmYl90ZW1wbGF0ZV9sb2FkIiBvbmNoYW5nZT0ialF1ZXJ5KHRoaXMpLmZiX2dldF90ZW1wbGF0ZShcJycuJG1vZC0+TGFuZygndGVtcGxhdGVfYXJlX3lvdV9zdXJlJykuJ1wnLFwnJy4kbW9kTGluay4nXCcpOyInKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignaGVscF90ZW1wbGF0ZV92YXJpYWJsZXMnLCRtb2QtPkxhbmcoJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV91bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndGl0bGVfZm9ybV91bnNwZWNpZmllZCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3Vuc3BlY2lmaWVkJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3Vuc3BlY2lmaWVkJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKSwgNTApKTsKICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fc3RhdHVzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fc3RhdHVzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RleHRfcmVhZHknLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9hbGlhcycsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9hbGlhcycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX2FsaWFzJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1fYWxpYXMnLAoJCQkJCSAgICAgICAkdGhpcy0+QWxpYXMsIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9jc3NfY2xhc3MnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9jc3NfY2xhc3MnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9jc3NfY2xhc3MnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfY3NzX2NsYXNzJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ2Nzc19jbGFzcycsJ2Zvcm1idWlsZGVyZm9ybScpLCA1MCw1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fZmllbGRzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fZmllbGRzJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbWFpbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX21haW4nKSk7CiAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsMCkgIT0gMCApCiAgICAgIHsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX2lkJywKCQkJICAgICAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9pZCcpKTsKICAgICAgfQogICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRhbGlhc2VzJywxKSAhPSAwICkKICAgICAgewoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfYWxpYXMnLAoJCQkgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0JykpOwogICAgICB9CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2JhY2snLCAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkbW9kLT5MYW5nKCdiYWNrX3RvcCcpLCBhcnJheSgpKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX25hbWUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbmFtZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfdHlwZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90eXBlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV90ZW1wbGF0ZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9saXN0X2RlbGltaXRlcicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9saXN0X2RlbGltaXRlcicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZWRpcmVjdF9wYWdlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnKSk7CgkJCSAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYWN0aW9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X3Jlc3BvbnNlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9tdXN0X3NhdmVfb3JkZXInLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfbXVzdF9zYXZlX29yZGVyJykpOwoKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5saW5lX2Zvcm0nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfaW5saW5lX2Zvcm0nKSk7CgogICAgICAgCi8vSk0KJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKLy8KCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2FjdGlvbnMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2FjdGlvbnMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2xhYmVscycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfbGFiZWxzJykpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCcsCgkJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2hlbHAnLCAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfaGVscCcpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCcsICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJykpOwoKICAgICRzdWJtaXRBY3Rpb25zID0gYXJyYXkoJG1vZC0+TGFuZygnZGlzcGxheV90ZXh0Jyk9Pid0ZXh0JywKICAgICAgICAgJG1vZC0+TGFuZygncmVkaXJlY3RfdG9fcGFnZScpPT4ncmVkaXInKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJtaXRfYWN0aW9uJywKICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsICdmYnJwX2Zvcm1hX3N1Ym1pdF9hY3Rpb24nLCAkc3VibWl0QWN0aW9ucywgJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9hY3Rpb24nLCd0ZXh0JykpKTsKCiAgICAkY2FwdGNoYSA9ICRtb2QtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICBpZiAoJGNhcHRjaGEgPT0gbnVsbCkKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5zdGFsbF9jYXB0Y2hhJywKCQkJICAgJG1vZC0+TGFuZygndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJykpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYV9pbnN0YWxsZWQnLDApOwogICAgICAgICB9CiAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3VzZV9jYXB0Y2hhJywKCQkJICAgJG1vZC0+TGFuZygndGl0bGVfdXNlX2NhcHRjaGEnKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2luc3RhbGxlZCcsMSk7CgogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfdXNlX2NhcHRjaGEnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV91c2VfY2FwdGNoYScsJzAnKS4KCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2ZicnBfZm9ybWFfdXNlX2NhcHRjaGEnLCcxJywkdGhpcy0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJykpLgoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJykpOwoJCQl9CiAgICAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2luZm9ybWF0aW9uJywkbW9kLT5MYW5nKCdpbmZvcm1hdGlvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9vcmRlcicsJG1vZC0+TGFuZygnb3JkZXInKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2JywkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzZGlzcG9zaXRpb24nLCR0aGlzLT5IYXNEaXNwb3NpdGlvbigpPzE6MCk7CiAgICAkbWF4T3JkZXIgPSAxOwogICAgaWYoJHRoaXMtPklkID4gMCkKICAgICAgewoJICAKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2Zvcm1fb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkuCgkJCQkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfc29ydCcsJycsJ2NsYXNzPSJmYnJwX3NvcnQiJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZGluZycsMCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc2F2ZV9idXR0b24nLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICRtb2QtPkxhbmcoJ3NhdmUnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdhY3RpdmVfdGFiJywgJycsICdpZD0iZmJyX2F0YWIiJykuCgkJJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdzYXZlX2FuZF9jb250aW51ZScpLCdvbmNsaWNrPSJqUXVlcnkodGhpcykuZmJfc2V0X3RhYigpIicpKTsKCQoJJGZpZWxkTGlzdCA9IGFycmF5KCk7CgkkY3Vycm93ID0gInJvdzEiOwoJJGNvdW50ID0gMTsKCSRsYXN0ID0gJHRoaXMtPkdldEZpZWxkQ291bnQoKTsKCWZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCSAgewoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT5yb3djbGFzcyA9ICRjdXJyb3c7CgkgICAgJG9uZXNldC0+bmFtZSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0TmFtZSgpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLDApICE9IDAgKQoJICAgICAgewoJCQkkb25lc2V0LT5pZCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0SWQoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICAgfQoJICAgICRvbmVzZXQtPnR5cGUgPSAkdGhpc0ZpZWxkLT5HZXREaXNwbGF5VHlwZSgpOwoJICAgICRvbmVzZXQtPmFsaWFzID0gJHRoaXNGaWVsZC0+R2V0QWxpYXMoKTsKCQkkb25lc2V0LT5pZCA9ICR0aGlzRmllbGQtPkdldElEKCk7CgoJICAgIGlmICghJHRoaXNGaWVsZC0+RGlzcGxheUluRm9ybSgpIHx8ICR0aGlzRmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkgICAgICB7CgkJJG5vX2F2YWlsID0gJG1vZC0+TGFuZygnbm90X2F2YWlsYWJsZScpOwoJCWlmKCRhZG1pbnRoZW1lLT50aGVtZU5hbWUgPT0gJ05DbGVhbkdyZXknKSB7CgoJCSAgJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvJy4kbW9kLT5HZXROYW1lKCkuJy9pbWFnZXMvc3RvcC5naWYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgYWx0PSInLiRub19hdmFpbC4nIiB0aXRsZT0iJy4kbm9fYXZhaWwuJyIgLz4nOwoJCX0gZWxzZSB7CgkJICAKCQkgICRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJzxpbWcgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzLycuJG1vZC0+R2V0TmFtZSgpLicvaW1hZ2VzL3N0b3AuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGFsdD0iJy4kbm9fYXZhaWwuJyIgdGl0bGU9IicuJG5vX2F2YWlsLiciIC8+JzsKCQl9CgkgICAgICB9CgkgICAgZWxzZSBpZiAoJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpKQoJICAgICAgewoJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQnLCAnJywgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfYWN0aXZlJz0+J29mZicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSksJycsICcnLCAnJywgJ2NsYXNzPSJ0cnVlIiBvbmNsaWNrPSJqUXVlcnkodGhpcykuZmJfYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkKCk7IHJldHVybiBmYWxzZTsiJyk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQnLCAnJywgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsJ2ZhbHNlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9hY3RpdmUnPT4nb24nLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpLCcnLCAnJywgJycsICdjbGFzcz0iZmFsc2UiIG9uY2xpY2s9ImpRdWVyeSh0aGlzKS5mYl9hZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQoKTsgcmV0dXJuIGZhbHNlOyInKTsKCSAgICAgIH0KCQkgIAoJICAgICRvbmVzZXQtPmZpZWxkX3N0YXR1cyA9ICR0aGlzRmllbGQtPlN0YXR1c0luZm8oKTsKCSAgICAkb25lc2V0LT5lZGl0bGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkbW9kLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZV9maWVsZCcsICcnLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsJG1vZC0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCksJycsICcnLCAnJywgJ29uY2xpY2s9ImpRdWVyeSh0aGlzKS5mYl9kZWxldGVfZmllbGQoXCcnLiRtb2QtPkxhbmcoJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnLGh0bWxzcGVjaWFsY2hhcnMoJHRoaXNGaWVsZC0+R2V0TmFtZSgpKSkuJ1wnKTsgcmV0dXJuIGZhbHNlOyInKTsKCgkJLyogUmVtb3ZlZCBCeSBTdGlra2ksIHJlaW5zdGF0ZWQgYnkgU2pHIHdpdGggSmF2YXNjcmlwdCB0byBoaWRlIGl0IGlmIEphdmFzY3JpcHQncyBlbmFibGVkLiAqLwoJCWlmICgkY291bnQgPiAxKQoJCQl7CgkJCSRvbmVzZXQtPnVwID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfb3JkZXInLCAnJywgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywndXAnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2Rpcic9Pid1cCcsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRvbmVzZXQtPnVwID0gJyZuYnNwOyc7CgkJCX0KCQlpZiAoJGNvdW50IDwgJGxhc3QpCgkJCXsKCQkJJG9uZXNldC0+ZG93bj0kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9vcmRlcicsICcnLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCdkb3duJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9kaXInPT4nZG93bicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRvbmVzZXQtPmRvd24gPSAnJm5ic3A7JzsKCQkJfQoKCSAgICAoJGN1cnJvdyA9PSAicm93MSI/JGN1cnJvdz0icm93MiI6JGN1cnJvdz0icm93MSIpOwoJICAgICRjb3VudCsrOwoJICAgIGlmICgkdGhpc0ZpZWxkLT5HZXRPcmRlcigpID49ICRtYXhPcmRlcikKCSAgICAgIHsKCQkJJG1heE9yZGVyID0gJHRoaXNGaWVsZC0+R2V0T3JkZXIoKSArIDE7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkZmllbGRMaXN0LCAkb25lc2V0KTsKCSAgfQoJICAKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZExpc3QpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZF9maWVsZF9saW5rJywKCQkJICAgICAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywkbW9kLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2ZpZWxkJyksJycsJycsJ3N5c3RlbWljb24nKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgZmFsc2UpIC4gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2ZpZWxkJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIGZhbHNlKSk7CgoJaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywxKSA9PSAxKQoJICB7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zhc3RhZGQnLDEpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mYXN0YWRkJywkbW9kLT5MYW5nKCd0aXRsZV9mYXN0YWRkJykpOwoJICAgICR0eXBlSW5wdXQgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+Ci8qIDwhW0NEQVRBWyAqLwpmdW5jdGlvbiBmYXN0X2FkZChmaWVsZF90eXBlKQp7Cgl2YXIgdHlwZT1maWVsZF90eXBlLm9wdGlvbnNbZmllbGRfdHlwZS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKCXZhciBsaW5rID0gJyIuJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwnJyxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgdHJ1ZSx0cnVlKS4iJiIuJGlkLiJmYnJwX2ZpZWxkX3R5cGU9Jyt0eXBlOwoJdGhpcy5sb2NhdGlvbj1saW5rOwoJcmV0dXJuIHRydWU7Cn0KLyogXV0+ICovCjwvc2NyaXB0PiI7CgkgICAgJHR5cGVJbnB1dCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR0eXBlSW5wdXQpOyAKCSAgICAkbW9kLT5pbml0aWFsaXplKCk7CgkgICAgaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRfbGV2ZWwnLCdiYXNpYycpID09ICdiYXNpYycpCgkJCXsKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zhc3RhZGQnLCR0eXBlSW5wdXQuJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX2ZpZWxkX3R5cGUnLGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF90eXBlJyk9PicnKSwkbW9kLT5zdGRfZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJmYXN0X2FkZCh0aGlzKSInKS4KCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCcpLgoJCQkJJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX3NldF9maWVsZF9sZXZlbCc9PidhZHZhbmNlZCcpKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zhc3RhZGQnLCR0eXBlSW5wdXQuJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX2ZpZWxkX3R5cGUnLGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF90eXBlJyk9PicnKSwkbW9kLT5maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9ImZhc3RfYWRkKHRoaXMpIicpLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9zd2l0Y2hfYmFzaWMnKS4KCQkJJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX3NldF9maWVsZF9sZXZlbCc9PidiYXNpYycpKSk7CgkJCX0KCSAgfQkJCQkJCQkKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc2F2ZV9idXR0b24nLCcnKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnV0dG9uJywKCQkJICAgICAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICRtb2QtPkxhbmcoJ2FkZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignZmJfaGlkZGVuJywKCQkJICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2Zvcm1fb3AnLCRtb2QtPkxhbmcoJ2FkZGVkJykpLiRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfc29ydCcsJycsJ2lkPSJmYnJwX3NvcnQiJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZGluZycsMSk7CiAgICAgIH0KCgkkbW9kLT5zbWFydHktPmFzc2lnbignY2FuY2VsX2J1dHRvbicsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfY2FuY2VsJywgJG1vZC0+TGFuZygnY2FuY2VsJykpKTsJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2xpbmtfbm90cmVhZHknLCI8c3Ryb25nPiIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MScpLiI8L3N0cm9uZz4gIi4kbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHkyJykuIiAiLiRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5X2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIsJ2ZicnBfZGlzcG9zZV9vbmx5Jz0+MSksICcnLCBmYWxzZSwgZmFsc2UsJ2NsYXNzPSJtb2R1bGVfZmJfbGluayInKS4iICIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MycpCgkJCSApOwoKICAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfaW5saW5lX2Zvcm0nLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV9pbmxpbmUnLCcwJykuCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX2lubGluZScsJzEnLCR0aGlzLT5HZXRBdHRyKCdpbmxpbmUnLCcwJykpLgoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fc3VibWl0X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9zdWJtaXRfYnV0dG9uX3RleHQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignc3VibWl0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fc3VibWl0JykpLCAzNSwgMzUpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9idXR0b25fc2FmZXR5JywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfZm9ybWFfaW5wdXRfYnV0dG9uX3NhZmV0eScsJzAnKS4KCQkJICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX2lucHV0X2J1dHRvbl9zYWZldHknLCcxJywkdGhpcy0+R2V0QXR0cignaW5wdXRfYnV0dG9uX3NhZmV0eScsJzAnKSkuCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9wcmV2X2J1dHRvbl90ZXh0JywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3ByZXZfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9wcmV2aW91cycpKSwgMzUsIDM1KSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3VzZXJfY2FwdGNoYScsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV90aXRsZV91c2VyX2NhcHRjaGEnLAogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhJykpLDM1LDI1NikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfY2FwdGNoYV93cm9uZycsCiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0QXR0cignY2FwdGNoYV93cm9uZycsJG1vZC0+TGFuZygnd3JvbmdfY2FwdGNoYScpKSwzNSwyNTYpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcicpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9uZXh0X2J1dHRvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX25leHRfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfbmV4dF9idXR0b25fdGV4dCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fY29udGludWUnKSksIDM1LCAzNSkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0JykpOwogICAgewogICAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgICAkdXNlcnRhZ3MgPSAkdXNlcnRhZ29wcy0+TGlzdFVzZXJUYWdzKCk7CiAgICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICAgICR1c2VydGFnbGlzdFskbW9kLT5sYW5nKCdub25lJyldID0gLTE7CiAgICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgICAgewogIAkgICR1c2VydGFnbGlzdFskdmFsdWVdID0gJGtleTsKICAgICAgICB9CiAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3ByZWRpc3BsYXlfdWR0JywKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfZm9ybWFfcHJlZGlzcGxheV91ZHQnLCR1c2VydGFnbGlzdCwtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0QXR0cigncHJlZGlzcGxheV91ZHQnLC0xKSkpOwogICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0JywKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfZm9ybWFfcHJlZGlzcGxheV9lYWNoX3VkdCcsJHVzZXJ0YWdsaXN0LC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRBdHRyKCdwcmVkaXNwbGF5X2VhY2hfdWR0JywtMSkpKTsKCiAgICB9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnKSk7CiAgICB7CiAgICAgICR1c2VydGFnb3BzID0gJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICAgJHVzZXJ0YWdsaXN0ID0gYXJyYXkoKTsKICAgICAgJHVzZXJ0YWdsaXN0WyRtb2QtPmxhbmcoJ25vbmUnKV0gPSAtMTsKICAgICAgZm9yZWFjaCggJHVzZXJ0YWdzIGFzICRrZXkgPT4gJHZhbHVlICkKICAgICAgICB7CiAgCSAgJHVzZXJ0YWdsaXN0WyR2YWx1ZV0gPSAka2V5OwogICAgICAgIH0KICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fdmFsaWRhdGVfdWR0JywKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfZm9ybWFfdmFsaWRhdGVfdWR0JywkdXNlcnRhZ2xpc3QsLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ3ZhbGlkYXRlX3VkdCcsLTEpKSk7CiAgICB9CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fcmVxdWlyZWRfc3ltYm9sJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdyZXF1aXJlZF9maWVsZF9zeW1ib2wnLCcqJyksIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbGlzdF9kZWxpbWl0ZXInLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfbGlzdF9kZWxpbWl0ZXInLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksIDUwKSk7CgogICAgJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWRpcmVjdF9wYWdlJywkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCcwJyksICRpZC4nZmJycF9mb3JtYV9yZWRpcmVjdF9wYWdlJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRoaXMtPkRlZmF1bHRUZW1wbGF0ZSgpKSwgJ2ZicnBfZm9ybWFfZm9ybV90ZW1wbGF0ZScsJ21vZHVsZV9mYl9hcmVhX3dpZGUnLCdmYl9mb3JtX3RlbXBsYXRlJywKCQkJCScnLCAnJywgJzgwJywgJzE1JywnJywnaHRtbCcpKTsKCgkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0X2phdmFzY3JpcHQnLAoJCSRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkkdGhpcy0+R2V0QXR0cignc3VibWl0X2phdmFzY3JpcHQnLCcnKSwgJ2ZicnBfZm9ybWFfc3VibWl0X2phdmFzY3JpcHQnLCdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsJ2ZiX3N1Ym1pdF9qYXZhc2NyaXB0JywKCQkJCScnLCAnJywgJzgwJywgJzE1JywnJywnanMnKS4KCQkJCSc8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnKSk7CgoJCQkJCSAgICAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9yZXNwb25zZScsCgkJCSAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLAoJCQkJJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9yZXNwb25zZScsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKHRydWUsZmFsc2UpKSwKCQkJCSdmYnJwX2Zvcm1hX3N1Ym1pdF9yZXNwb25zZScsJ21vZHVsZV9mYl9hcmVhX3dpZGUnLCcnLAoJCQkJJycsICcnLCAnODAnLCAnMTUnLCcnLCdodG1sJykpOwoKCSRwYXJtcyA9IGFycmF5KCk7CgkkcGFybXNbJ2Zvcm1hX3N1Ym1pdF9yZXNwb25zZSddWydodG1sX2J1dHRvbiddID0gdHJ1ZTsKCSRwYXJtc1snZm9ybWFfc3VibWl0X3Jlc3BvbnNlJ11bJ3R4dF9idXR0b24nXSA9IGZhbHNlOwoJJHBhcm1zWydmb3JtYV9zdWJtaXRfcmVzcG9uc2UnXVsnaXNfb25lX2xpbmUnXSA9IGZhbHNlOwoJJHBhcm1zWydmb3JtYV9zdWJtaXRfcmVzcG9uc2UnXVsnaXNfZW1haWwnXSA9IGZhbHNlOwogICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3N1Ym1pdF9yZXNwb25zZScsICR0aGlzLT5BZG1pblRlbXBsYXRlSGVscCgkaWQsJHBhcm1zKSk7CiAgCiAgIyBmaXhlcyBmb3IgQ01TTVMgMiBjb21wYXRpYmlsaXR5IChKTSkKICAjIHdlIG5lZWQgdGhpcyB0byBnZXQgKGF0IGxlYXN0KSB0aGUgbGFuZyBtZXRob2Qgb24gdGhlIHRlbXBsYXRlIHskZnJtYmxkLT5MYW5nKCdzdHJpbmcnKX0KICAkbW9kLT5zbWFydHktPmFzc2lnbignZnJtYmxkJywgJG1vZCk7CiAgICAKICBpZiggZm9ybWJ1aWxkZXJfdXRpbHM6OmlzX0NNUzIoKSApCiAgewogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZvcm0yLnRwbCcpOwogIH0KCglyZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdBZGRFZGl0Rm9ybS50cGwnKTsKICB9CgoJLy8gQWRkIG5ldyBmaWVsZAogICAgZnVuY3Rpb24gJk5ld0ZpZWxkKCYkcGFyYW1zKQogICAgICB7CgkvLyRhZWZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCRwYXJhbXMpOwoJJGFlZmllbGQgPSBmYWxzZTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkgJiYgJHBhcmFtc1snZmllbGRfaWQnXSAhPSAtMSApCgkgIHsKICAgICAgICAgICAgLy8gd2UncmUgbG9hZGluZyBhbiBleHRhbnQgZmllbGQKCSAgICAkc3FsID0gJ1NFTEVDVCB0eXBlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZmllbGRfaWQ9Pyc7CgkgICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCAkcGFyYW1zWydmaWVsZF9pZCddKSk7CgkgICAgaWYoJHJzICYmICRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCkpCgkgICAgICB7CQkJCQoJCWlmICgkcmVzdWx0Wyd0eXBlJ10gIT0gJycpCgkJICB7CgkJICAgICRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcmVzdWx0Wyd0eXBlJ10gLCAnJyk7CgkJICAgICRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJCSAgICAkYWVmaWVsZC0+TG9hZEZpZWxkKCRwYXJhbXMpOwoJCSAgfQoJICAgICAgfQoJICB9CglpZiAoJGFlZmllbGQgPT09IGZhbHNlKQoJICB7CgkgICAgLy8gbmV3IGZpZWxkCgkgICAgaWYgKCEgaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10pKQoJICAgICAgewoJCS8vIHVua25vd24gZmllbGQgdHlwZQoJCSRhZWZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCRwYXJhbXMpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkvLyBzcGVjaWZpZWQgZmllbGQgdHlwZSB2aWEgcGFyYW1zCiAgICAgICAgICAgIAkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10sICcnKTsKICAgICAgICAgICAgCSRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJICAgICAgfQoJICB9CglyZXR1cm4gJGFlZmllbGQ7CiAgICAgIH0KCgoKICBmdW5jdGlvbiBBZGRFZGl0RmllbGQoJGlkLCAmJGFlZmllbGQsICRkaXNwb3NlX29ubHksICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJCQogICAgaWYoIWVtcHR5KCRtZXNzYWdlKSkgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtb2QtPlNob3dNZXNzYWdlKCRtZXNzYWdlKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYmFja3RvZm9ybV9uYXYnLCRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZm9ybScsICRyZXR1cm5pZCwgJG1vZC0+TGFuZygnbGlua19iYWNrX3RvX2Zvcm0nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQpKSk7CiAgICAkbWFpbkxpc3QgPSBhcnJheSgpOwogICAgJGFkdkxpc3QgPSBhcnJheSgpOwogICAgJGJhc2VMaXN0ID0gJGFlZmllbGQtPlByZVBvcHVsYXRlQmFzZUFkbWluRm9ybSgkaWQsICRkaXNwb3NlX29ubHkpOwogICAgaWYgKCRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnJykKICAgICAgewoJLy8gc3RpbGwgbmVlZCB0eXBlCgkkbW9kLT5zbWFydHktPmFzc2lnbignc3RhcnRfZm9ybScsJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkKSk7CQkJCgkkZmllbGRMaXN0ID0gYXJyYXkoJ21haW4nPT5hcnJheSgpLCdhZHYnPT5hcnJheSgpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyB3ZSBoYXZlIG91ciB0eXBlCgkkbW9kLT5zbWFydHktPmFzc2lnbignc3RhcnRfZm9ybScsJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkKSk7CQoJJGZpZWxkTGlzdCA9ICRhZWZpZWxkLT5QcmVQb3B1bGF0ZUFkbWluRm9ybSgkaWQpOwogICAgICB9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZW5kX2Zvcm0nLCAkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgCiAgICAjIyMjIEpNIGZpeGVzIGZvciBDTVNNUyAyCiAgICBpZiggIWZvcm1idWlsZGVyX3V0aWxzOjppc19DTVMyKCkgKQogICAgewogICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWJIZWFkZXJzKCkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignYWR2YW5jZWR0YWInLCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpKS4KICAgICAgICAgJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwogICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFic19lbmQnLCRtb2QtPkVuZFRhYkNvbnRlbnQoKSk7CiAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkdmFuY2VkdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigiYWR2YW5jZWR0YWIiKSk7CiAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CiAgICB9CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ25vdGljZV9zZWxlY3RfdHlwZScsJG1vZC0+TGFuZygnbm90aWNlX3NlbGVjdF90eXBlJykpOwoKICAgIGlmKCRhZWZpZWxkLT5HZXRJZCgpICE9IC0xKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignb3AnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9hZWZfdXBkJywgJG1vZC0+TGFuZygndXBkYXRlJykpKTsKICAgICAgfQogICAgZWxzZSBpZigkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCkgIT0gJycpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcCcsICRtb2QtPkxhbmcoJ2FkZGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfYWVmX2FkZCcsICRtb2QtPkxhbmcoJ2FkZCcpKSk7CiAgICAgIH0KCgkkbW9kLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX2NhbmNlbCcsICRtb2QtPkxhbmcoJ2NhbmNlbCcpKSk7CSAgCgkgIAogICAgaWYgKCRhZWZpZWxkLT5IYXNBZGRPcCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2ZicnBfYWVmX29wdGFkZCcsJGFlZmllbGQtPkdldE9wdGlvbkFkZEJ1dHRvbigpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZCcsJycpOwogICAgICB9CiAgICBpZiAoJGFlZmllbGQtPkhhc0RlbGV0ZU9wKCkpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdkZWwnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnZmJycF9hZWZfb3B0ZGVsJywkYWVmaWVsZC0+R2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignZGVsJywnJyk7CiAgICAgIH0KCgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX2hpZGRlbicsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpIC4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmllbGRfaWQnLCAkYWVmaWVsZC0+R2V0SWQoKSkgLiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX29yZGVyX2J5JywgJGFlZmllbGQtPkdldE9yZGVyKCkpLgoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX3NldF9mcm9tX2Zvcm0nLCcxJykpOwoKICAgIGlmICgvKiEkYWVmaWVsZC0+SXNEaXNwb3NpdGlvbigpICYmICovICEkYWVmaWVsZC0+SXNOb25SZXF1aXJhYmxlRmllbGQoKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3JlcXVpcmFibGUnLDEpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdyZXF1aXJhYmxlJywwKTsKICAgICAgfQoJCQkKICAgIGlmIChpc3NldCgkYmFzZUxpc3RbJ21haW4nXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRiYXNlTGlzdFsnbWFpbiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRtYWluTGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CQogICAgaWYgKGlzc2V0KCRiYXNlTGlzdFsnYWR2J10pKQogICAgICB7Cglmb3JlYWNoICgkYmFzZUxpc3RbJ2FkdiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyID0gJGl0ZW1bMF07CgkgICAgJGlucHV0U3RyID0gJGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkYWR2TGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CQogICAgaWYgKGlzc2V0KCRmaWVsZExpc3RbJ21haW4nXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRmaWVsZExpc3RbJ21haW4nXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkbWFpbkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQogICAgaWYgKGlzc2V0KCRmaWVsZExpc3RbJ2FkdiddKSkKICAgICAgewoJZm9yZWFjaCAoJGZpZWxkTGlzdFsnYWR2J10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJGFkdkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQoJCQogICAgJGFlZmllbGQtPlBvc3RQb3B1bGF0ZUFkbWluRm9ybSgkbWFpbkxpc3QsICRhZHZMaXN0KTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWluTGlzdCcsJG1haW5MaXN0KTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZHZMaXN0JywkYWR2TGlzdCk7CiAgICAKICAgICMgZml4ZXMgZm9yIENNU01TIDIgY29tcGF0aWJpbGl0eSAoSk0pCiAgICAjIHdlIG5lZWQgdGhpcyB0byBnZXQgKGF0IGxlYXN0KSB0aGUgbGFuZyBtZXRob2Qgb24gdGhlIHRlbXBsYXRlIHskZnJtYmxkLT5MYW5nKCdzdHJpbmcnKX0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmcm1ibGQnLCAkbW9kKTsKICAgICAKICAgIGlmKCBmb3JtYnVpbGRlcl91dGlsczo6aXNfQ01TMigpICkKICAgIHsKICAgICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZpZWxkMi50cGwnKTsKICAgIH0KICAgIAogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZpZWxkLnRwbCcpOwogIH0KCiAgZnVuY3Rpb24gTWFrZUFsaWFzKCRzdHJpbmcsICRpc0Zvcm09ZmFsc2UpCiAgewogICAgJHN0cmluZyA9IHRyaW0oaHRtbHNwZWNpYWxjaGFycygkc3RyaW5nKSk7CiAgICBpZiAoJGlzRm9ybSkKICAgICAgewoJCXJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCQlyZXR1cm4gJ2ZiJy5zdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgfQogICAgCiAgZnVuY3Rpb24gU3dhcEZpZWxkc0J5SW5kZXgoJHNyY19maWVsZF9pbmRleCwgJGRlc3RfZmllbGRfaW5kZXgpCiAgewogICAgJHNyY0ZpZWxkID0gJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkc3JjX2ZpZWxkX2luZGV4KTsKICAgICRkZXN0RmllbGQgPSAkdGhpcy0+R2V0RmllbGRCeUluZGV4KCRkZXN0X2ZpZWxkX2luZGV4KTsKICAgICR0bXBPcmRlckJ5ID0gJGRlc3RGaWVsZC0+R2V0T3JkZXIoKTsKICAgICRkZXN0RmllbGQtPlNldE9yZGVyKCRzcmNGaWVsZC0+R2V0T3JkZXIoKSk7CiAgICAkc3JjRmllbGQtPlNldE9yZGVyKCR0bXBPcmRlckJ5KTsKICAgIC8vaXQgc2VlbXMgdGhpcyBtYWtlcyBwaHA0IGdvIGNyYXp5IGZpeGVkIGJ5IHJlbG9hZGluZyBmb3JtIGJlZm9yZSBzaG93aW5nIGl0IGFnYWluCiAgICAjICAgICAgICAkdGhpcy0+RmllbGRzWyRkZXN0X2ZpZWxkX2luZGV4XSA9ICRzcmNGaWVsZDsKICAgICMgICAgICAgICR0aGlzLT5GaWVsZHNbJHNyY19maWVsZF9pbmRleF0gPSAkZGVzdEZpZWxkOwogICAgJHNyY0ZpZWxkLT5TdG9yZSgpOwogICAgJGRlc3RGaWVsZC0+U3RvcmUoKTsKICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZHMoKQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkczsKICAgIH0KCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlJZCgkZmllbGRfaWQpCiAgICB7CgkkaW5kZXggPSAtMTsKCSRyZXQgPSBmYWxzZTsKCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCXsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCkgPT0gJGZpZWxkX2lkKQoJICAgIAl7CgkJCSRpbmRleCA9ICRpOwoJCQl9CgkJfQoJaWYgKCRpbmRleCAhPSAtMSkKCQl7CgkgIAkkcmV0ID0gJHRoaXMtPkZpZWxkc1skaW5kZXhdOwoJCX0KCXJldHVybiAkcmV0OwogICAgfQoKCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlBbGlhcygkZmllbGRfYWxpYXMpCiAgICB7CgkkaW5kZXggPSAtMTsKCSRyZXQgPSBmYWxzZTsKCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCXsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldEFsaWFzKCkgPT0gJGZpZWxkX2FsaWFzKQoJICAgIAl7CgkJCSRpbmRleCA9ICRpOwoJCQl9CgkJfQoJaWYgKCRpbmRleCAhPSAtMSkKCQl7CgkgIAkkcmV0ID0gJHRoaXMtPkZpZWxkc1skaW5kZXhdOwoJCX0KCXJldHVybiAkcmV0OwogICAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRCeU5hbWUoJGZpZWxkX25hbWUpCiAgICB7CgkkaW5kZXggPSAtMTsKCSRyZXQgPSBmYWxzZTsKCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCXsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKSA9PSAkZmllbGRfbmFtZSkKCSAgICAJewoJCQkkaW5kZXggPSAkaTsKCQkJfQoJCX0KCWlmICgkaW5kZXggIT0gLTEpCgkJewoJICAJJHJldCA9ICR0aGlzLT5GaWVsZHNbJGluZGV4XTsKCQl9CglyZXR1cm4gJHJldDsKICAgIH0KCgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5SW5kZXgoJGZpZWxkX2luZGV4KQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkc1skZmllbGRfaW5kZXhdOwogICAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKCSAgewoJICAgICRpbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaW5kZXg7CiAgfQoKCiAgZnVuY3Rpb24gRGVmYXVsdFRlbXBsYXRlKCkKICB7CiAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvUmVuZGVyRm9ybURlZmF1bHQudHBsJyk7CiAgfQoKICBmdW5jdGlvbiBEZWxldGVGaWVsZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gJHRoaXMtPkdldEZpZWxkSW5kZXhGcm9tSWQoJGZpZWxkX2lkKTsKICAgIGlmICgkaW5kZXggIT0gLTEpCiAgICAgIHsKCSR0aGlzLT5GaWVsZHNbJGluZGV4XS0+RGVsZXRlKCk7CglhcnJheV9zcGxpY2UoJHRoaXMtPkZpZWxkcywkaW5kZXgsMSk7CiAgICAgIH0KICB9IAoKICBmdW5jdGlvbiBSZXNldEZpZWxkcygpCiAgewogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCSR0aGlzLT5GaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CiAgICAgIH0KICB9CgogIC8vIEZvcm1Ccm93c2VyID49IDAuMyBSZXNwb25zZSBsb2FkIG1ldGhvZC4gVGhpcyBwb3B1bGF0ZXMgdGhlIEZpZWxkIHZhbHVlcyBkaXJlY3RseQogIC8vIChhcyBvcHBvc2VkIHRvIExvYWRSZXNwb25zZVZhbHVlcywgd2hpY2ggcGxhY2VzIHRoZSB2YWx1ZXMgaW50byB0aGUgJHBhcmFtcyBhcnJheSkKICBmdW5jdGlvbiBMb2FkUmVzcG9uc2UoJHJlc3BvbnNlX2lkKQogIHsKCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCQkKCSRvbmVzZXQgPSBuZXcgU3RkQ2xhc3MoKTsKCSRyZXMgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCByZXNwb25zZSwgZm9ybV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZmJyX2lkPT8nLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCglpZiAoJHJlcyAmJiAkcm93PSRyZXMtPkZldGNoUm93KCkpCgkJewoJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJJG9uZXNldC0+Zm9ybV9pZCA9ICRyb3dbJ2Zvcm1faWQnXTsKCQl9CglpZiAoJG9uZXNldC0+Zm9ybV9pZCAhPSAkdGhpcy0+R2V0SWQoKSkKCQl7CgkJcmV0dXJuIGZhbHNlOwoJCX0KCSRmYkZpZWxkID0gJHRoaXMtPkdldEZvcm1Ccm93c2VyRmllbGQoKTsKCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQl7CgkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCWVjaG8oJG1vZC0+TGFuZygnZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJykpOwoJCX0KCSRtb2QtPkhhbmRsZVJlc3BvbnNlRnJvbVhNTCgkZmJGaWVsZCwgJG9uZXNldCk7CgoJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJG1vZC0+UGFyc2VSZXNwb25zZVhNTCgkb25lc2V0LT54bWwsIGZhbHNlKTsKCSR0aGlzLT5SZXNldEZpZWxkcygpOwoJZm9yZWFjaCAoJHZhbHMgYXMgJGlkPT4kdmFsKQoJCXsKCQkvL2Vycm9yX2xvZygic2V0dGluZyB2YWx1ZSBvZiBmaWVsZCAiLiRpZC4iIHRvIGJlICIuJHZhbCk7CgkJJGluZGV4ID0gJHRoaXMtPkdldEZpZWxkSW5kZXhGcm9tSWQoJGlkKTsKCQlpZigkaW5kZXggIT0gLTEgJiYgIGlzX29iamVjdCgkdGhpcy0+RmllbGRzWyRpbmRleF0pICkKCQkJewoJCQkkdGhpcy0+RmllbGRzWyRpbmRleF0tPlNldFZhbHVlKCR2YWwpOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKCS8vIENoZWNrIGlmIEZvcm1Ccm93ZWlzZXIgZmllbGQgZXhpc3RzCglmdW5jdGlvbiBHZXRGb3JtQnJvd3NlckZpZWxkKCkKCXsKCQkkZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwoJCSRmYkZpZWxkID0gZmFsc2U7CgkJZm9yZWFjaCgkZmllbGRzIGFzICR0aGlzRmllbGQpCgkJCXsKCQkJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykKCQkJCXsKCQkJCSRmYkZpZWxkID0gJHRoaXNGaWVsZDsKCQkJCX0KCQkJfQoJCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQkJewoJCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJCXJldHVybiBmYWxzZTsJCgkJCX0KCQlyZXR1cm4gJGZiRmllbGQ7CQkKCX0KCgogIGZ1bmN0aW9uIFJlaW5kZXhSZXNwb25zZXMoKQogIHsKCUBzZXRfdGltZV9saW1pdCgwKTsKCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCSRyZXNwb25zZXMgPSBhcnJheSgpOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIGZicl9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZm9ybV9pZD0/JywgYXJyYXkoJHRoaXMtPklkKSk7Cgl3aGlsZSAoJHJlcyAmJiAkcm93PSRyZXMtPkZldGNoUm93KCkpCgkJewoJCWFycmF5X3B1c2goJHJlc3BvbnNlcywkcm93WydmYnJfaWQnXSk7CgkJfQoJJGZicl9maWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7Cglmb3JlYWNoKCRyZXNwb25zZXMgYXMgJHRoaXNfcmVzcCkKCQl7CgkJaWYgKCR0aGlzLT5Mb2FkUmVzcG9uc2UoJHRoaXNfcmVzcCkpCgkJCXsKCQkJJHRoaXMtPlN0b3JlUmVzcG9uc2UoJHRoaXNfcmVzcCwnJywkZmJyX2ZpZWxkKTsKCQkJfQoJCX0KICB9CgoKICAvLyBGb3JtQnJvd3NlciA+PSAwLjMgUmVzcG9uc2UgbG9hZCBtZXRob2QuIFRoaXMgcG9wdWxhdGVzIHRoZSAkcGFyYW1zIGFycmF5IGZvciBsYXRlciBwcm9jZXNzaW5nL2NvbWJpbmF0aW9uCiAgLy8gKGFzIG9wcG9zZWQgdG8gTG9hZFJlc3BvbnNlLCB3aGljaCBwbGFjZXMgdGhlIHZhbHVlcyBpbnRvIHRoZSBGaWVsZCB2YWx1ZXMgZGlyZWN0bHkpCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlVmFsdWVzKCYkcGFyYW1zLCAmJHR5cGVzKQogIHsKCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCSRvbmVzZXQgPSBuZXcgU3RkQ2xhc3MoKTsKCSRmb3JtX2lkID0gLTE7CgkkcmVzID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgcmVzcG9uc2UsIGZvcm1faWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZicl9pZD0/JywgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpOwoKCWlmICgkcmVzICYmICRyb3c9JHJlcy0+RmV0Y2hSb3coKSkKCQl7CgkJJG9uZXNldC0+eG1sID0gJHJvd1sncmVzcG9uc2UnXTsKCQkkZm9ybV9pZCA9ICRyb3dbJ2Zvcm1faWQnXTsKCQl9CgkvLyBsb2FkZWQgYSByZXNwb25zZSAtLSBhdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZQoJLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCglpZiAoJGZvcm1faWQgIT0gJHRoaXMtPkdldElkKCkpCgkJewoJCXJldHVybiBmYWxzZTsKCQl9CgkkZmJGaWVsZCA9ICRtb2QtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpOwoJaWYgKCRmYkZpZWxkID09IGZhbHNlKQoJCXsKCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJZWNobygkbW9kLT5MYW5nKCdlcnJvcl9oYXNfbm9fZmJfZmllbGQnKSk7CgkJfQoJJG1vZC0+SGFuZGxlUmVzcG9uc2VGcm9tWE1MKCRmYkZpZWxkLCAkb25lc2V0KTsKCWxpc3QoJGZuYW1lcywgJGFsaWFzZXMsICR2YWxzKSA9ICRtb2QtPlBhcnNlUmVzcG9uc2VYTUwoJG9uZXNldC0+eG1sLCBmYWxzZSk7CgkkdHlwZXMgPSAkbW9kLT5QYXJzZVJlc3BvbnNlWE1MVHlwZSgkb25lc2V0LT54bWwpOwoJZm9yZWFjaCAoJHZhbHMgYXMgJGlkPT4kdmFsKQoJCXsKCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kaWRdKSAmJgoJCQkhIGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfXycuJGlkXSkpCgkJCXsKCQkJJHBhcmFtc1snZmJycF9fJy4kaWRdID0gYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kaWRdKTsKCQkJYXJyYXlfcHVzaCgkcGFyYW1zWydmYnJwX18nLiRpZF0sICR2YWwpOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRpZF0pKQoJCQl7CgkJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kaWRdLCAkdmFsKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcGFyYW1zWydmYnJwX18nLiRpZF0gPSAkdmFsOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKICAvLyBGb3JtQnJvd3NlciA8IDAuMyBSZXNwb25zZSBsb2FkIG1ldGhvZCAgCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlVmFsdWVzT2xkKCYkcGFyYW1zKQogIHsKICAgICRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKICAgIC8vIGxvYWRpbmcgYSByZXNwb25zZSAtLSBhdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZQogICAgLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCiAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9yZXNwIHdoZXJlIHJlc3BfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpKQogICAgICB7CglpZiAoJHJlc3VsdFsnZm9ybV9pZCddICE9ICR0aGlzLT5HZXRJZCgpKQoJICB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9Cgkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfcmVzcF92YWwgV0hFUkUgcmVzcF9pZD0/IG9yZGVyIGJ5IHJlc3BfdmFsX2lkJzsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcGFyYW1zWydyZXNwb25zZV9pZCddKSk7Cgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkgIHsgLy8gd2FzICdfXycJCSAgICAgICAgCQoJICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSAmJgoJCSEgaXNfYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSkpCgkgICAgICB7CgkJJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSA9IGFycmF5KCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0pOwoJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSwgJHJvd1sndmFsdWUnXSk7CgkgICAgICB9CgkgICAgZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSkKCSAgICAgIHsKCQlhcnJheV9wdXNoKCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0sICRyb3dbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gJHJvd1sndmFsdWUnXTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogIH0gICAKCiAgLy8gVmFsaWRhdGlvbiBzdHVmZiBhY3Rpb24udmFsaWRhdGUucGhwCiAgZnVuY3Rpb24gQ2hlY2tSZXNwb25zZSgkZm9ybV9pZCwgJHJlc3BvbnNlX2lkLCAkY29kZSkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ1NFTEVDVCBzZWNyZXRfY29kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZm9ybV9pZD0/IEFORCBmYnJfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZvcm1faWQsJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0WydzZWNyZXRfY29kZSddID09ICRjb2RlKQoJICB7CgkgICAgcmV0dXJuIHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLy8gTWFzdGVyIHJlc3BvbnNlIGlucHV0dGVyCiAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZSgkcmVzcG9uc2VfaWQ9LTEsJGFwcHJvdmVyPScnLCYkZm9ybUJ1aWxkZXJEaXNwb3NpdGlvbikKICB7CgkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwoJJG5ld3JlYyA9IGZhbHNlOwoJCgkkY3J5cHQgPSBmYWxzZTsKCSRoYXNoX2ZpZWxkcyA9IGZhbHNlOwoJJHNvcnRfZmllbGRzID0gYXJyYXkoKTsKCQoJLy8gQ2hlY2sgaWYgZm9ybSBoYXMgRGF0YWJhc2UgZmllbGRzLCBkbyBpbml0CglpZiAoaXNfb2JqZWN0KCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKSAmJgogICAgICAoJGZvcm1CdWlsZGVyRGlzcG9zaXRpb24tPkdldEZpZWxkVHlwZSgpPT0nRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicgfHwKICAgICAgICRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRGaWVsZFR5cGUoKT09J0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKSkKCQl7CgkJJGNyeXB0ID0gKCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpID09ICcxJyk7CgkJJGhhc2hfZmllbGRzID0gKCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRPcHRpb24oJ2hhc2hfc29ydCcsJzAnKSA9PSAnMScpOwoJCWZvciAoJGk9MDskaTw1OyRpKyspCgkJCXsKCQkJJHNvcnRfZmllbGRzWyRpXSA9ICRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5nZXRTb3J0RmllbGRWYWwoJGkrMSk7CgkJCX0KCQl9CgoJLy8gSWYgbmV3IGZpZWxkCglpZiAoJHJlc3BvbnNlX2lkID09IC0xKQoJCXsKCQlpZiAoaXNfb2JqZWN0KCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKSAmJiAkZm9ybUJ1aWxkZXJEaXNwb3NpdGlvbi0+R2V0T3B0aW9uKCdmZXVfYmluZCcsJzAnKSA9PSAnMScpCgkJCXsKCQkJJGZldSA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJCWlmICgkZmV1ID09IGZhbHNlKQoJCQkJewoJCQkJZGVidWdfZGlzcGxheSgiRkFJTEVEIHRvIGluc3RhdGlhdGUgRkVVISIpOwoJCQkJcmV0dXJuOwoJCQkJfQoJCQkkZmV1X2lkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRmZXVfaWQgPSAtMTsKCQkJfQkJCQoJCSRyZXNwb25zZV9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwkKCSAgICBmb3JlYWNoICgkZmllbGRzIGFzICR0aGlzRmllbGQpCgkJCXsKCQkJLy8gc2V0IHRoZSByZXNwb25zZV9pZCB0byBiZSB0aGUgYXR0cmlidXRlIG9mIHRoZSBkYXRhYmFzZSBkaXNwb3NpdGlvbgoJCQlpZiAoKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkRhdGFiYXNlJyl8fAoJCQkJKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkJCQl7CgkJCQkkdGhpc0ZpZWxkLT5TZXRWYWx1ZSgkcmVzcG9uc2VfaWQpOwoJCQkJfQoJCQl9CgkJJG5ld3JlYyA9IHRydWU7CgkJfQoJZWxzZQoJCXsKCQkkZmV1X2lkID0gJG1vZC0+Z2V0RkVVSURGcm9tUmVzcG9uc2VJRCgkcmVzcG9uc2VfaWQpOwoJCX0KCQkKCS8vIENvbnZlcnQgZm9ybSB0byBYTUwKCSR4bWwgPSAkdGhpcy0+UmVzcG9uc2VUb1hNTCgpOwoJCgkvLyBEbyB0aGUgYWN0dWFsIGFkZGluZwoJaWYgKCEgJGNyeXB0KQoJCXsKCQkkb3V0cHV0ID0gJHRoaXMtPlN0b3JlUmVzcG9uc2VYTUwoCgkJCSRyZXNwb25zZV9pZCwKCQkJJG5ld3JlYywKCQkJJGFwcHJvdmVyLAoJCQlpc3NldCgkc29ydF9maWVsZHNbMF0pPyRzb3J0X2ZpZWxkc1swXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzFdKT8kc29ydF9maWVsZHNbMV06JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JHNvcnRfZmllbGRzWzJdOicnLAoJCQlpc3NldCgkc29ydF9maWVsZHNbM10pPyRzb3J0X2ZpZWxkc1szXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzRdKT8kc29ydF9maWVsZHNbNF06JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCWVsc2VpZiAoISAkaGFzaF9maWVsZHMpCgkJewoJCWxpc3QoJHJlcywgJHhtbCkgPSAkbW9kLT5jcnlwdCgkeG1sLCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKTsKCQlpZiAoISAkcmVzKQoJCQl7CgkJCXJldHVybiBhcnJheShmYWxzZSwgJHhtbCk7CgkJCX0KCQkkb3V0cHV0ID0gJHRoaXMtPlN0b3JlUmVzcG9uc2VYTUwoCgkJCSRyZXNwb25zZV9pZCwKCQkJJG5ld3JlYywKCQkJJGFwcHJvdmVyLAoJCQlpc3NldCgkc29ydF9maWVsZHNbMF0pPyRzb3J0X2ZpZWxkc1swXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzFdKT8kc29ydF9maWVsZHNbMV06JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JHNvcnRfZmllbGRzWzJdOicnLAoJCQlpc3NldCgkc29ydF9maWVsZHNbM10pPyRzb3J0X2ZpZWxkc1szXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzRdKT8kc29ydF9maWVsZHNbNF06JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCWVsc2UKCQl7CgkJbGlzdCgkcmVzLCAkeG1sKSA9ICRtb2QtPmNyeXB0KCR4bWwsJGZvcm1CdWlsZGVyRGlzcG9zaXRpb24pOwoJCWlmICghICRyZXMpCgkJCXsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCAkeG1sKTsKCQkJfQoJCSRvdXRwdXQgPSAkdGhpcy0+U3RvcmVSZXNwb25zZVhNTCgKCQkJJHJlc3BvbnNlX2lkLAoJCQkkbmV3cmVjLAoJCQkkYXBwcm92ZXIsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1swXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1swXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1sxXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1sxXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1syXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1szXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1szXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1s0XSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1s0XSk6JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCS8vcmV0dXJuIGFycmF5KHRydWUsJycpOyBTdGlra2kgcmVwbGFjZWQ6IGluc3RlYWQgb2YgdHJ1ZSwgcmV0dXJuIGFjdHVhbCBkYXRhLCBkaWRuJ3Qgc2F3IGFueSBzaWRlIGVmZmVjdHMuCglyZXR1cm4gJG91dHB1dDsKICB9CgogIC8vIENvbnZlcnRzIGZvcm0gdG8gWE1MCiAgZnVuY3Rpb24gJlJlc3BvbnNlVG9YTUwoKQogIHsKICAJJHhtbCA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sIC49ICI8cmVzcG9uc2UgZm9ybV9pZD1cIiIuJHRoaXMtPklkLiJcIj5cbiI7Cglmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQl7CgkJCSR4bWwgLj0gJHRoaXNGaWVsZC0+RXhwb3J0WE1MKHRydWUpOwoJCX0KCSR4bWwgLj0gIjwvcmVzcG9uc2U+XG4iOwogICByZXR1cm4gJHhtbDsKICB9CgogIC8vIEluc2VydHMgcGFyc2VkIFhNTCBkYXRhIHRvIGRhdGFiYXNlCiAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZVhNTCgkcmVzcG9uc2VfaWQ9LTEsJG5ld3JlYz1mYWxzZSwkYXBwcm92ZXI9JycsJHNvcnRmaWVsZDEsCiAgICRzb3J0ZmllbGQyLCRzb3J0ZmllbGQzLCRzb3J0ZmllbGQ0LCRzb3J0ZmllbGQ1LCAkZmV1X2lkLCR4bWwpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgJHNlY3JldF9jb2RlID0gJyc7CgogICAgaWYgKCRuZXdyZWMpCiAgICAgIHsKCQkvLyBzYXZpbmcgYSBuZXcgcmVzcG9uc2UKCQkkc2VjcmV0X2NvZGUgPSBzdWJzdHIobWQ1KHNlc3Npb25faWQoKS4nXycudGltZSgpKSwwLDcpOwoJCS8vJHJlc3BvbnNlX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyIChmYnJfaWQsIGZvcm1faWQsIHN1Ym1pdHRlZCwgc2VjcmV0X2NvZGUsIGluZGV4X2tleV8xLCBpbmRleF9rZXlfMiwgaW5kZXhfa2V5XzMsIGluZGV4X2tleV80LCBpbmRleF9rZXlfNSwgZmV1aWQsIHJlc3BvbnNlKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJYXJyYXkoJHJlc3BvbnNlX2lkLAoJCQkJJHRoaXMtPkdldElkKCksCgkJCQkkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwKCQkJCSRzZWNyZXRfY29kZSwKCQkJCSRzb3J0ZmllbGQxLCRzb3J0ZmllbGQyLCRzb3J0ZmllbGQzLCRzb3J0ZmllbGQ0LCRzb3J0ZmllbGQ1LAoJCQkJJGZldV9pZCwKCQkJCSR4bWwKCQkJKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRhcHByb3ZlciAhPSAnJykKICAgICAgewoJCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IHVzZXJfYXBwcm92ZWQ9PyB3aGVyZSBmYnJfaWQ9Pyc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLAoJCQkgICAgYXJyYXkoJHRoaXMtPmNsZWFuX2RhdGV0aW1lKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSksJHJlc3BvbnNlX2lkKSk7CgkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkgICRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IGluZGV4X2tleV8xPT8sIGluZGV4X2tleV8yPT8sIGluZGV4X2tleV8zPT8sIGluZGV4X2tleV80PT8sIGluZGV4X2tleV81PT8sIHJlc3BvbnNlPT8gd2hlcmUgZmJyX2lkPT8nOwoJICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkc29ydGZpZWxkMSwkc29ydGZpZWxkMiwkc29ydGZpZWxkMywkc29ydGZpZWxkNCwkc29ydGZpZWxkNSwkeG1sLCRyZXNwb25zZV9pZCkpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlc3BvbnNlX2lkLCRzZWNyZXRfY29kZSk7CiAgfSAgIAoKCS8vIFNvbWUgc3R1cGlkIGRhdGUgZnVuY3Rpb24KCWZ1bmN0aW9uIGNsZWFuX2RhdGV0aW1lKCRkdCkKCXsKICAgIHJldHVybiBzdWJzdHIoJGR0LDEsc3RybGVuKCRkdCktMik7Cgl9CiAgCiAgLy8gV2hlbiBkb3dubG9hZGluZyBmb3JtLgogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sc3RyIC49ICI8Zm9ybSBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0YWxpYXM9XCIiLiR0aGlzLT5BbGlhcy4iXCI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdDxmb3JtX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9mb3JtX25hbWU+XG4iOwogICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkKICAgICAgewoJCSR4bWxzdHIgLj0gIlx0XHQ8YXR0cmlidXRlIGtleT1cIiR0aGlzQXR0cktleVwiPjwhW0NEQVRBWyR0aGlzQXR0clZhbHVlXV0+PC9hdHRyaWJ1dGU+XG4iOwoJCX0KCWZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCXsKCQkkeG1sc3RyIC49ICR0aGlzRmllbGQtPkV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzKTsKCQl9CgkkeG1sc3RyIC49ICI8L2Zvcm0+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQogIAogIGZ1bmN0aW9uIEdldEZvcm1Ccm93c2Vyc0ZvckZvcm0oKQoJewoJCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCQkkZmJyID0gJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdGb3JtQnJvd3NlcicpOwoJCSRicm93c2VycyA9IGFycmF5KCk7CgkJaWYgKCRmYnIgIT0gRkFMU0UpCgkJCXsKCQkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIGJyb3dzZXJfaWQgZnJvbSAnLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJyX2Jyb3dzZXIgd2hlcmUgZm9ybV9pZD0/JywKCQkJCWFycmF5KCR0aGlzLT5HZXRJZCgpKSk7CgkJCXdoaWxlICgkcmVzICYmICRyb3c9JHJlcy0+RmV0Y2hSb3coKSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGJyb3dzZXJzLCAkcm93Wydicm93c2VyX2lkJ10pOwoJCQkJfQoJICAgICAgCX0KCQlyZXR1cm4gJGJyb3dzZXJzOwoJfQoKICBmdW5jdGlvbiBBZGRUb1NlYXJjaEluZGV4KCRyZXNwb25zZV9pZCkKCXsJCgkvLyBmaW5kIGJyb3dzZXJzIGtleWVkIHRvIHRoaXMKCSRicm93c2VycyA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlcnNGb3JGb3JtKCk7CglpZiAoY291bnQoJGJyb3dzZXJzKSA8IDEpCgkJewoJCXJldHVybjsKCQl9CgkKCSRtb2R1bGUgPSYgJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKQogICAgICB7CgkJJHN1Ym1pdHN0cmluZyA9ICcnOwoJCWZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQkJewoJCQlpZiAoJHRoaXNGaWVsZC0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJHN1Ym1pdHN0cmluZyAuPSAnICcuJHRoaXNGaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSk7CgkJCQl9CgkJCX0KCQlmb3JlYWNoICgkYnJvd3NlcnMgYXMgJHRoaXNCcm93c2VyKQoJCQl7CgkJCSRtb2R1bGUtPkFkZFdvcmRzKCAnRm9ybUJyb3dzZXInLCAkcmVzcG9uc2VfaWQsICdzdWJfJy4kdGhpc0Jyb3dzZXIsICRzdWJtaXRzdHJpbmcsIG51bGwpOwkKCQkJfQogICAgICB9Cgl9CgogIGZ1bmN0aW9uIHNldEZpbmlzaGVkRm9ybVNtYXJ0eSgkaHRtbGVtYWlsPWZhbHNlKQoJewoJCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSAgIAoJICAgICR0aGVGaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CgkgICAgJHVuc3BlYyA9ICR0aGlzLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgoJCSRmb3JtSW5mbyA9IGFycmF5KCk7CQkKCSAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhlRmllbGRzKTskaSsrKQoJICAgICAgewoJCQkkcmVwbFZhbCA9ICR1bnNwZWM7CgkJCSRyZXBsVmFscyA9IGFycmF5KCk7IC8vIHdoYXQgaXMgdGhpcyBkb2luZyBoZXJlPyAoSm8gTW9yZykKCQkJaWYgKCR0aGVGaWVsZHNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJICAJCXsKCQkgICAgCQkkcmVwbFZhbCA9ICR0aGVGaWVsZHNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWNlc3NhcnkgYnV0IGxldCBpdCBzdGF5IGp1c3QgaW4gY2FzZSAoSm9Nb3JnKSAgICAgICAgCiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkcmVwbFZhbCkgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHJlcGxWYWwgPSAkcmVwbFZhbFswXTsgCiAgICAgICAgICAgIH0KCgkJICAgIAkJaWYgKCRodG1sZW1haWwpCgkJICAgICAgICAJCXsKCQkJCQkJLy8gYWxsb3cgPEJSPiBhcyBkZWxpbWl0ZXIgb3IgaW4gY29udGVudAoJCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnLzxicihccykqKFwvKSo+L2knLCd8QlJ8JywkcmVwbFZhbCk7CgkJCQkJCSRyZXBsVmFsID0gcHJlZ19yZXBsYWNlKCcvW1xuXHJdKy8nLCd8QlJ8JywkcmVwbFZhbCk7CgkgICAgICAgICAgICAJCSRyZXBsVmFsID0gaHRtbHNwZWNpYWxjaGFycygkcmVwbFZhbCk7CgkJCQkJCSRyZXBsVmFsID0gcHJlZ19yZXBsYWNlKCcvXHxCUlx8LycsJzxiciAvPicsJHJlcGxWYWwpOwoJICAgICAgICAgICAgCQl9CgkJICAgIAkJaWYgKCRyZXBsVmFsID09ICcnKQoJCSAgICAgIAkJCXsKCQkJCQkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJCSAgICAgIAkJCX0KCQkgIAkJfQoJCQoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpLCRyZXBsVmFsKTsKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKSwkcmVwbFZhbCk7CgkJCSRmbGRvYmogPSAkdGhlRmllbGRzWyRpXS0+RXhwb3J0T2JqZWN0KCk7CgkJIAkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhlRmllbGRzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCkuJ19vYmonLCRmbGRvYmopOwoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLidfb2JqJywkZmxkb2JqKTsKCQkJaWYgKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpICE9ICcnKQoJCQkJewoJCSAgICAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCksJHJlcGxWYWwpOwoJCSAgICAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCkuJ19vYmonLCRmbGRvYmopOwoJCQkJfQoJICAgICAgfQoJCS8vIGdlbmVyYWwgZm9ybSBkZXRhaWxzCgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9mb3JtX25hbWUnLCR0aGlzLT5HZXROYW1lKCkpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZGF0ZScsZGF0ZSgncicpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3NvdXJjZV9pcCcsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOwoJICAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl91cmwnLChlbXB0eSgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pPyRtb2QtPkxhbmcoJ25vX3JlZmVycmVyX2luZm8nKTokX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZmJfdmVyc2lvbicsJG1vZC0+R2V0VmVyc2lvbigpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignVEFCJywiXHQiKTsKCX0gCgkKCWZ1bmN0aW9uIG1hbmFnZUZpbGVVcGxvYWRzKCkKCXsKCQkkZ0NtcyA9IGNtc21zKCk7CgkJJHRoZUZpZWxkcyA9ICR0aGlzLT5HZXRGaWVsZHMoKTsKCQkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAKCQkvLyBidWlsZCByZW5hbWUgbWFwCgkJJG1hcElkID0gYXJyYXkoKTsKCQkkZXZhbF9zdHJpbmcgPSBmYWxzZTsKCQlmb3IoJGo9MDskajxjb3VudCgkdGhlRmllbGRzKTskaisrKQoJCQl7CgkgICAgJG1hcElkWyR0aGVGaWVsZHNbJGpdLT5HZXRJZCgpXSA9ICRqOwogICAgICB9CgoJICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGVGaWVsZHMpOyRpKyspCgkgICAgICB7CgkgIAkJaWYgKHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGVGaWVsZHNbJGldKSkgPT0gJ2ZiZmlsZXVwbG9hZGZpZWxkJyApCgkgICAgCQl7CgkgCQkgICAgICAvLyBIYW5kbGUgZmlsZSB1cGxvYWRzCgkJCSAgICAgIC8vIGlmIHRoZSB1cGxvYWRzIG1vZHVsZSBpcyBmb3VuZCwgYW5kIHRoZSBvcHRpb24gaXMgY2hlY2tlZCBpbgoJCQkgICAgICAvLyB0aGUgZmllbGQsIHRoZW4gdGhlIGZpbGUgaXMgYWRkZWQgdG8gdGhlIHVwbG9hZHMgbW9kdWxlCgkJCSAgICAgIC8vIGFuZCBhIGxpbmsgaXMgYWRkZWQgdG8gdGhlIHJlc3VsdHMKCQkJICAgICAgLy8gaWYgdGhlIG9wdGlvbiBpcyBub3QgY2hlY2tlZCwgdGhlbiB0aGUgZmlsZSBpcyBtZXJlbHkgdXBsb2FkZWQgdG8KCQkJCSAgLy8gdGhlICJ1cGxvYWRzIiBkaXJlY3RvcnkKCgkgICAgICAJCSRfaWQgPSAkbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoZUZpZWxkc1skaV0tPklkOwoJICAgICAgCQlpZiggaXNzZXQoICRfRklMRVNbJF9pZF0gKSAmJiAkX0ZJTEVTWyRfaWRdWydzaXplJ10gPiAwICkKCSAgICAgICAgCQl7CgkgICAgCQkJJHRoaXNGaWxlID0mICRfRklMRVNbJF9pZF07CgkJCQkJCSR0aGlzRXh0ID0gc3Vic3RyKCR0aGlzRmlsZVsnbmFtZSddLHN0cnJwb3MoJHRoaXNGaWxlWyduYW1lJ10sJy4nKSk7CgkKCQkJCQkJaWYgKCR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ2ZpbGVfcmVuYW1lJywnJykgPT0gJycpCgkJCQkJCQl7CgkJCQkJCQkkZGVzdGluYXRpb25fbmFtZSA9ICR0aGlzRmlsZVsnbmFtZSddOwoJCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCQl7CgkJCQkgICAgCSRmbGRzID0gYXJyYXkoKTsKCQkJCSAgICAJJGRlc3RpbmF0aW9uX25hbWUgPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdmaWxlX3JlbmFtZScpOwoJCQkJICAgIAlwcmVnX21hdGNoX2FsbCgnL1wkZmxkXyhcZCspLycsICRkZXN0aW5hdGlvbl9uYW1lLCAkZmxkcyk7CgkJCQkJCQlmb3JlYWNoICgkZmxkc1sxXSBhcyAkdEYpCgkgICAgICAgICAgICAgICAgewoJICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCgkgICAgICAgICAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICAgICAgJHJlZiA9ICRtYXBJZFskdEZdOwoJICAgICAgICAgICAgICAgICAgICAkZGVzdGluYXRpb25fbmFtZSA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAoJICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVGaWVsZHNbJHJlZl0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLCRkZXN0aW5hdGlvbl9uYW1lKTsKCSAgICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgIH0KCQkJCQkJCSRkZXN0aW5hdGlvbl9uYW1lID0gc3RyX3JlcGxhY2UoJyRleHQnLCR0aGlzRXh0LCRkZXN0aW5hdGlvbl9uYW1lKTsKCQkJCQkJCX0KCQoJICAgIAkJCWlmKCAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdzZW5kdG9fdXBsb2FkcycpICkKCSAgICAgIAkJCQl7CgkgICAgICAgIAkJCS8vIHdlIGhhdmUgYSBmaWxlIHdlIGNhbiBzZW5kIHRvIHRoZSB1cGxvYWRzCgkgICAgICAgIAkJCSR1cGxvYWRzID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ1VwbG9hZHMnKTsKCSAgICAgICAgCQkJaWYoICEkdXBsb2FkcyApCgkgICAgICAgICAgCQkJCXsKCSAgICAgIAkJCQkJLy8gbm8gdXBsb2FkcyBtb2R1bGUKCSAgICAgIAkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJyksJG1haWwtPkdldEVycm9ySW5mbygpKTsKCSAgICAgICAgICAgIAkJCXJldHVybiBhcnJheSgkcmVzLCAkbW9kLT5MYW5nKCdub3VwbG9hZHNfZXJyb3InKSk7CgkgICAgICAgICAgCQkJCX0KCgkgICAgICAgIAkJCSRwYXJtcyA9IGFycmF5KCk7CgkgICAgICAgIAkJCSRwYXJtc1snaW5wdXRfYXV0aG9yJ10gPSAkbW9kLT5MYW5nKCdhbm9ueW1vdXMnKTsKCSAgICAgICAgCQkJJHBhcm1zWydpbnB1dF9zdW1tYXJ5J10gPSAkbW9kLT5MYW5nKCd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeScpOwoJICAgICAgICAJCQkkcGFybXNbJ2NhdGVnb3J5X2lkJ10gPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCd1cGxvYWRzX2NhdGVnb3J5Jyk7CgkgICAgICAgIAkJCSRwYXJtc1snZmllbGRfbmFtZSddID0gJF9pZDsKCQkJCQkJCSAgJHBhcm1zWydpbnB1dF9kZXN0bmFtZSddID0gJGRlc3RpbmF0aW9uX25hbWU7CgkJCQkJCQkJaWYgKCR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ2FsbG93X292ZXJ3cml0ZScsJzAnKSA9PSAnMScpCgkJCQkJCQkJCXsKCQkJCQkJCQkJJHBhcm1zWydpbnB1dF9yZXBsYWNlJ10gPSAxOwkKCQkJCQkJCQkJfQoJICAgICAgICAJCQkkcmVzID0gJHVwbG9hZHMtPkF0dGVtcHRVcGxvYWQoLTEsJHBhcm1zLC0xKTsKCSAgICAgICAgCQkJCgkgICAgICAgIAkJCWlmKCAkcmVzWzBdID09IGZhbHNlICkKCSAgICAgICAgICAJCQkJewoJICAgICAgCQkJCQkvLyBmYWlsZWQgdXBsb2FkIGtpbGxzIHRoZSBzZW5kLgoJICAgICAgCQkJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRyZXNbMV0pKTsKCSAgICAgIAkJCQkJcmV0dXJuIGFycmF5KCRyZXNbMF0sICRtb2QtPkxhbmcoJ3VwbG9hZHNfZXJyb3InLCRyZXNbMV0pKTsKCSAgICAgICAgICAJCQkJfQoKCSAgICAgICAgCQkJJHVwbG9hZHNfZGVzdHBhZ2UgPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CgkJCQkJCSR1cmwgPSAkdXBsb2Fkcy0+Q3JlYXRlTGluayAoJHBhcm1zWydjYXRlZ29yeV9pZCddLCAnZ2V0ZmlsZScsICR1cGxvYWRzX2Rlc3RwYWdlLCAnJywKCQkJCQkJCWFycmF5ICgndXBsb2FkX2lkJyA9PiAkcmVzWzFdKSwgJycsIHRydWUpOwoKCQkJCQkJJHVybCA9IHN0cl9yZXBsYWNlKCdhZG1pbi9tb2R1bGVpbnRlcmZhY2UucGhwPycsJ2luZGV4LnBocD8nLCR1cmwpOwoJCgkJCQkJCSR0aGVGaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CgkgICAgICAgIAkJCSR0aGVGaWVsZHNbJGldLT5TZXRWYWx1ZSgkdXJsKTsKCSAgICAgIAkJCQl9CgkgICAgCQkJZWxzZQoJICAgICAgCQkJCXsKCSAgICAgICAgCQkJLy8gSGFuZGxlIHRoZSB1cGxvYWQgb3Vyc2VsdmVzCgkJCQkJCSRzcmMgPSAkdGhpc0ZpbGVbJ3RtcF9uYW1lJ107CQkJCQkJCgkJCQkJCSRkZXN0X3BhdGggPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdmaWxlX2Rlc3RpbmF0aW9uJywkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSk7CQkJCQkJCgkJCQkJCQoJCQkJCQkvLyB2YWxpZGF0ZWQgbWVzc2FnZSBiZWZvcmUsIG5vdyBkbyBpdCBmb3IgdGhlIGZpbGUgaXRzZWxmCgkJCQkJCSR2YWxpZCA9IHRydWU7CgkJCQkJICAgICRtcyA9ICR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CgkJCQkJICAgICRleHRzID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnLCcnKTsKCQkJCQkgICAgaWYgKCRtcyAhPSAnJyAmJiAkdGhpc0ZpbGVbJ3NpemUnXSA+ICgkbXMgKiAxMDI0KSkKCQkJCQkJCXsKCQkJCQkJCSR2YWxpZCA9IGZhbHNlOwoJCQkJCQkJfQoJCQkJCSAgICBlbHNlIGlmICgkZXh0cyAhPSAnJykKCQkJCQkJCXsKCQkJCQkJCSRtYXRjaCA9IGZhbHNlOwoJCQkJCQkJJGxlZ2FsRXh0cyA9IGV4cGxvZGUoJywnLCRleHRzKTsKCQkJCQkJCWZvcmVhY2ggKCRsZWdhbEV4dHMgYXMgJHRoaXNFeHQpCgkJCQkJCQkJewoJCQkJCQkJCWlmIChwcmVnX21hdGNoKCcvXC4nLnRyaW0oJHRoaXNFeHQpLickL2knLCR0aGlzRmlsZVsnbmFtZSddKSkKCQkJCQkJCQkJewoJCQkJCQkJCQkkbWF0Y2ggPSB0cnVlOwoJCQkJCQkJCQl9CgkJCQkJCQkJZWxzZSBpZiAocHJlZ19tYXRjaCgnLycudHJpbSgkdGhpc0V4dCkuJy9pJywkdGhpc0ZpbGVbJ3R5cGUnXSkpCgkJCQkJCQkJCXsKCQkJCQkJCQkJJG1hdGNoID0gdHJ1ZTsKCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCWlmICghICRtYXRjaCkKCQkJCQkJCQl7CgkJCQkJCQkJJHZhbGlkID0gZmFsc2U7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQlpZiAoISAkdmFsaWQpCgkJCQkJCQl7CgkJCQkJCQl1bmxpbmsoJHNyYyk7CgkJCQkJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdpbGxlZ2FsX2ZpbGUnLGFycmF5KCR0aGlzRmlsZVsnbmFtZSddLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSkpOwoJCSAgICAgIAkJCQlyZXR1cm4gYXJyYXkoZmFsc2UsICcnKTsKCQkJCQkJCX0KCQkJCQkJJGRlc3QgPSAkZGVzdF9wYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGRlc3RpbmF0aW9uX25hbWU7CgkJCQkJCWlmIChmaWxlX2V4aXN0cygkZGVzdCkgJiYgJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignYWxsb3dfb3ZlcndyaXRlJywnMCcpPT0nMCcpCgkJCQkJCQl7CgkJCQkJCQl1bmxpbmsoJHNyYyk7CgkJCQkJCQlyZXR1cm4gYXJyYXkoZmFsc2UsJG1vZC0+TGFuZygnZmlsZV9hbHJlYWR5X2V4aXN0cycsIGFycmF5KCRkZXN0aW5hdGlvbl9uYW1lKSkpOwoJCQkJCQkJfQoJCQkJCQlpZiAoISBtb3ZlX3VwbG9hZGVkX2ZpbGUoJHNyYywkZGVzdCkpCgkJCQkJCQl7CgkJCQkJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCcnKSk7CgkJICAgICAgCQkJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygndXBsb2Fkc19lcnJvcicsJycpKTsKCQkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQkJewoJCQkJCQkJaWYgKHN0cnBvcygkZGVzdF9wYXRoLCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddKSAhPT0gRkFMU0UpCgkJCQkJCQl7CiAgICAgICAgICAgICAgICAjcmVuZGVyIGEgcHJvcGVybGx5IGZvcm1lZCByZWxhdGl2ZSBwYXRoIChKb01vcmcpCgkJCQkJCQkJJHVybCA9IHN0cl9yZXBsYWNlKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiwgJy8nLCAkZGVzdF9wYXRoKSAuICcvJyAuICRkZXN0aW5hdGlvbl9uYW1lOwogICAgICAgICAgICAgICAgCgkJCQkJCQl9CgkJCQkJCQllbHNlCgkJCQkJCQl7CgkJCQkJCQkJJHVybCA9ICRtb2QtPkxhbmcoJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCcsICRkZXN0aW5hdGlvbl9uYW1lKTsKCQkJCQkJCX0KICAgICAgICAgICAgICAKICAgICAgICAgICAgICAkdG1wID0gIGV4cGxvZGUoJy8nLCAkZGVzdGluYXRpb25fbmFtZSk7CiAgICAgICAgICAgICAgJGZpbGVuYW1lID0gIGFycmF5X3BvcCgkdG1wKTsKICAgICAgICAgICAgICAgCgkJCQkJCQkkdGhlRmllbGRzWyRpXS0+UmVzZXRWYWx1ZSgpOwoJCQkJCQkJJHRoZUZpZWxkc1skaV0tPlNldFZhbHVlKGFycmF5KCRmaWxlbmFtZSwkdXJsKSk7CgkJCQkJCQl9CgkgICAgICAJCQkJfQoJICAgICAgICAJCX0KCSAgICAJCX0KCSAgICAgIAl9CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CgkJJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCgkJCSk7CgkJJHRoaXMtPm1vZGlmaWVzT3RoZXJGaWVsZHMgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkdmFsID0gJyc7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpCgkJewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaHRtbDUgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgewoJCSAgICAgICAgICAgICAgICAkaHRtbDUgLj0gJyByZXF1aXJlZCc7CgkJICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgIAkJMjUsIDEyOCwgJGpzLiRodG1sNS4kdGhpcy0+R2V0Q1NTSWRUYWcoKSwnZW1haWwnKTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9pZCcpIC4gJzogJyAuICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmbGRzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQkkb3B0cyA9IGFycmF5KCk7CgkJZm9yZWFjaCAoJGZsZHMgYXMgJHRmKQoJCQl7CgkJCSRvcHRzWyR0Zi0+R2V0TmFtZSgpXT0kdGYtPkdldE5hbWUoKTsKCQkJfQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KAoJCQkJJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWVsZF90b192YWxpZGF0ZScsICRvcHRzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnKSkKCQkJKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykpCQoJCSk7CgoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJGZpZWxkX3RvX3ZhbGlkYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnLCcnKTsKCgkJaWYgKCRmaWVsZF90b192YWxpZGF0ZSAhPSAnJykKCQl7CgkJCWZvcmVhY2ggKCR0aGlzLT5mb3JtX3B0ci0+RmllbGRzIGFzICRvbmVfZmllbGQpCgkJCXsKCQkJCWlmICgkb25lX2ZpZWxkLT5OYW1lID09ICRmaWVsZF90b192YWxpZGF0ZSkKCQkJCXsKCQkJCQkkdmFsdWUgPSAkb25lX2ZpZWxkLT5HZXRWYWx1ZSgpOwoJCQkJCWlmICgkdmFsdWUgIT0gJHRoaXMtPlZhbHVlKQoJCQkJCXsKCQkJCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkJCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnLCAkZmllbGRfdG9fdmFsaWRhdGUpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbEFkZHJlc3NGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkdmFsID0gJyc7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpCgkJewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaHRtbDUgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgewoJCSAgICAgICAgICAgICAgICAkaHRtbDUgLj0gJyByZXF1aXJlZCc7CgkJICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgIAkJMjUsIDEyOCwgJGpzLiRodG1sNS4kdGhpcy0+R2V0Q1NTSWRUYWcoKSwnZW1haWwnKTsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICRtYWluID0gYXJyYXkoKTsKICAgICAgJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykpCQoJCSk7CgkJJGhvcHRzID0gYXJyYXkoJG1vZC0+TGFuZygnb3B0aW9uX2Zyb20nKT0+J2YnLCRtb2QtPkxhbmcoJ29wdGlvbl9yZXBseScpPT4ncicsJG1vZC0+TGFuZygnb3B0aW9uX2JvdGgnKT0+J2InKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5JyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGVhZGVyc190b19tb2RpZnknLCAkaG9wdHMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdoZWFkZXJzX3RvX21vZGlmeScsJ2YnKSkpKTsKCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCQoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJJGh0bSA9ICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnZicpOwoKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpCiAgICAgICAgICAgICAgICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCWlmICgkaHRtID09ICdmJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCR0aGlzLT5WYWx1ZSk7CgkJCQkJICAgfQogICAgICAgICAgICAgICBpZiAoJGh0bSA9PSAncicgfHwgJGh0bSA9PSAnYicpCiAgICAgICAgICAgICAgICAgIHsKCQkJCQkgICAgJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfcmVwbHlfdG9fYWRkcmVzcycsJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgfQoJCQkJCX0KCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCXsKCQkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAJJHRoaXMtPlZhbHVlICE9PSBmYWxzZQovLyAgICAgICAgICAgICAgICAgIAkmJiAhIHByZWdfbWF0Y2goCi8vICAgICAgICAgICAgICAgICAgCQkJCQkJCQkJCSgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywgJzAnKSA9PSAwID8gJG1vZC0+ZW1haWxfcmVnZXggOiAkbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgCi8vICAgICAgICAgICAgICAgICAgCQkJCQkJCQkJCSR0aGlzLT5WYWx1ZQovLyAgICAgICAgICAgICAgICAgIAkJCQkJCQkJCSkKCQkJCQkJCQkJCSYmICFlbWFpbF92YWxpZGF0b3I6OmlzX2VtYWlsKCR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICB9CgkJICAJICAgYnJlYWs7CgkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbE5hbWVGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkdmFsID0gJyc7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpCgkJewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaHRtbDUgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgewoJCSAgICAgICAgICAgICAgICAkaHRtbDUgLj0gJyByZXF1aXJlZCc7CgkJICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgIAkJMjUsIDEyOCwgJGpzLiRodG1sNS4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICRtYWluID0gYXJyYXkoKTsKICAgICAgJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykpCQoJCSk7CgkJJGhvcHRzID0gYXJyYXkoJG1vZC0+TGFuZygnb3B0aW9uX2Zyb20nKT0+J2YnLCRtb2QtPkxhbmcoJ29wdGlvbl9yZXBseScpPT4ncicsJG1vZC0+TGFuZygnb3B0aW9uX2JvdGgnKT0+J2InKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5JyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGVhZGVyc190b19tb2RpZnknLCAkaG9wdHMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdoZWFkZXJzX3RvX21vZGlmeScsJ2InKSkpKTsKCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRodG0gPSAkdGhpcy0+R2V0T3B0aW9uKCdoZWFkZXJzX3RvX21vZGlmeScsJ2InKTsKCgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsJCQoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpCiAgICAgICAgICAgICAgICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCWlmICgkaHRtID09ICdmJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCR0aGlzLT5WYWx1ZSk7CgkJCQkJICAgfQogICAgICAgICAgICAgICBpZiAoJGh0bSA9PSAncicgfHwgJGh0bSA9PSAnYicpCiAgICAgICAgICAgICAgICAgIHsKCQkJCQkgICAgJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfcmVwbHlfdG9fbmFtZScsJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgfQoJCQkJCX0KCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailSubjectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbFN1YmplY3RGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkdmFsID0gJyc7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpCgkJewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaHRtbDUgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgewoJCSAgICAgICAgICAgICAgICAkaHRtbDUgLj0gJyByZXF1aXJlZCc7CgkJICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgIAkJMjUsIDEyOCwgJGpzLiRodG1sNS4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSkpOwoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnKSkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsJCQoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCR0aGlzLT5WYWx1ZSk7CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/HiddenField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkhpZGRlbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJIaWRkZW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnSGlkZGVuRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJICAkdiA9ICR0aGlzLT5WYWx1ZTsKICAJICB9CgllbHNlCgkJewoJCSR2ID0gJHRoaXMtPkdldE9wdGlvbigndmFsdWUnLCcnKTsKCQl9CgogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpID09ICcxJykKICAgICAgewogICAgICAkdiA9ICAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdik7CiAgICAgIH0KCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignZmJyX2VkaXQnLCcwJykgPT0gJzEnICYmICRwYXJhbXNbJ2luX2FkbWluJ10gPT0gMSkKCQkJewoJCQkkdHlwZSA9ICJ0ZXh0IjsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdHlwZSA9ICJoaWRkZW4iOwoJCQl9CgkJCiAgICByZXR1cm4gJzxpbnB1dCB0eXBlPSInLiR0eXBlLiciIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJy4kdi4nIicuJHRoaXMtPkdldENTU0lkVGFnKCkuJyAvPic7CiAgfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdmFsdWUnLCR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyksMjUsMTAyNCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zbWFydHlfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc21hcnR5X2V2YWwnLCcwJykuCgkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NtYXJ0eV9ldmFsJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignc21hcnR5X2V2YWwnLCcwJykpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Zicl9lZGl0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9mYnJfZWRpdCcsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmJyX2VkaXQnLAoJCQkJCScxJywgJHRoaXMtPkdldE9wdGlvbignZmJyX2VkaXQnLCcwJykpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/classes/LinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdMaW5rRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCQoJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rX3RpdGxlJywnJykpOwoJCQl9IAoJCSRmaWVsZERpc3AgPSBhcnJheSgpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzBdLCcnLCcnLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18xJykpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdsaW5rX2xhYmVsJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2xhYmVsJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzFdLCcnLCcnLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18yJykpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJCQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UgfHwgISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSRyZXQgPSAnJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJzxhIGhyZWY9IicuJHRoaXMtPlZhbHVlWzBdLiciPicuJHRoaXMtPlZhbHVlWzFdLic8L2E+JzsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoKCX0KCgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGJlIGRvbmUgdmlhIHZhbGlkYXRpb24KICAgICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJG1haW5BcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSk7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmsnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9saW5rJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmsnLCcnKSwyNSwxMjgpKSwKICAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X2xpbmtfdGl0bGUnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfbGlua190aXRsZScsJycpLDI1LDEyOCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/classes/ModuleInterfaceField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgoqIFRoaXMgRmllbGQgd3JpdHRlbiBieSBKZXJlbXkgQmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+CgoqLwoKY2xhc3MgZmJNb2R1bGVJbnRlcmZhY2VGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgoJZnVuY3Rpb24gZmJNb2R1bGVJbnRlcmZhY2VGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdNb2R1bGVJbnRlcmZhY2VGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwoJCSR0aGlzLT5IYXNMYWJlbCA9IDA7CgkJJHRoaXMtPk5lZWRzRGl2ID0gMDsgCgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwkKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHYgPSAkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpOwoKCQljbXNtcygpLT5HZXRTbWFydHkoKS0+YXNzaWduKCdGQmlkJywkaWQuJ2ZicnBfXycuJHRoaXMtPklkKTsKCQkvLyBmb3Igc2VsZWN0ZWQuLi4gd2hhdCB0byBkbyBoZXJlICAKCQkvLyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tlZD0iY2hlY2tlZCIgb24gdGhlIGJhY2sgcGFnZQoJCWNtc21zKCktPkdldFNtYXJ0eSgpLT5hc3NpZ24oJ0ZCdmFsdWUnLCR0aGlzLT5WYWx1ZSk7CgoJCXJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdik7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCdoZWxwX21vZHVsZV9pbnRlcmZhY2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5MYW5nKCdoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZycpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF90YWcnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdmFsdWUnLCR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyksMTAwLDEwMjQpKQoJCSk7CgkJJGFkdiA9IGFycmF5KCk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoJCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkgewoJCQkKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKSB7CgkJCQoJCQkJJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJfQoJCQkKCQkJaWYgKCRhc19zdHJpbmcpIHsKCQkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdGhpcy0+VmFsdWUpOwoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCX0KCQkJCgkJfSBlbHNlIHsKCQkJCgkJCWlmICgkYXNfc3RyaW5nKSB7CgkJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfSBlbHNlIHsKCQkJCgkJCQlyZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCX0KCQl9CgoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnTXVsdGlzZWxlY3RGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5vcHRpb25BZGQgPSAwOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJCXsKCQkJJGh0bWw1ID0gJyByZXF1aXJlZCc7CgkJfQoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJJHN1YmplY3RzID0gJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX25hbWUnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCSR2YWwgPSBhcnJheSgpOwoJCQl9CgkJZWxzZWlmICghaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdmFsID0gJHRoaXMtPlZhbHVlOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkc29ydGVkLCR2YWwsICR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLAogICAgICAgICAkaHRtbDUuJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkdGhpcy0+Y291bnRJdGVtcygpOwoJCWlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+b3B0aW9uQ291bnQgKz0gJHRoaXMtPm9wdGlvbkFkZDsKCQkJJHRoaXMtPm9wdGlvbkFkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgbW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmVzX3RvX3Nob3cnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGluZXMnLCR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLDEwLDEwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJHZhbHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJCXsKCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc09uZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCR2YWxzWyR0aGlzT25lIC0gMV0pOwoJCQkJfQoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJGZpZWxkUmV0KTsKCQkJCX0JCQkKCQkJfQoJCWVsc2UKCQkJewoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCQl9CgkJCX0KCQoJfQkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qIA0KICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4NCiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyDQogICANCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQoqLw0KDQpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2Ugew0KDQoJZnVuY3Rpb24gZmJQYWdlQnJlYWtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykNCgl7DQogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOw0KICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KCQkkdGhpcy0+VHlwZSA9ICdQYWdlQnJlYWtGaWVsZCc7DQoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7DQoJCSR0aGlzLT5SZXF1aXJlZCA9IGZhbHNlOw0KCQkvLyR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsNCgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7DQoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOw0KCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsNCiAgICANCiAgICAjIGlmIHdlIHdhbnQgdG8gaGFuZGxlIG11bHRpLXBhZ2UgdXBsb2FkIHN1Ym1pc3Npb25zIA0KICAgICMgdGhpcyBpcyB0aGUgcGxhY2UgdG8gaGFuZGxlIHRoZSB1cGxvYWRzIHdoaWNoIGFyZSBub3Qgb24gdGhlIGxhc3QgcGFnZSBvZiB0aGUgZm9ybQ0KICAgICMgc28gaGVyZSBnb2VzIChKbyBNb3JnKQ0KICAgICR0aGlzLT5mb3JtX3B0ci0+bWFuYWdlRmlsZVVwbG9hZHMoKTsNCgl9DQoNCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQpDQoJew0KCX0NCg0KDQoJZnVuY3Rpb24gU3RhdHVzSW5mbygpDQoJew0KCQlyZXR1cm4gJyc7DQoJfQ0KDQoNCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpDQoJew0KCQlyZXR1cm4gYXJyYXkoKTsNCgl9DQoNCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpDQoJew0KCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQNCiAgICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRtYWluQXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpOw0KICAgICAgJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7DQoJfQ0KDQoNCglmdW5jdGlvbiBWYWxpZGF0ZSgpDQoJew0KCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7DQoJfQ0KCQ0KfQ0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/classes/PasswordAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhc3N3b3JkQWdhaW5GaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlBhc3N3b3JkQWdhaW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Bhc3N3b3JkQWdhaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJKTsKCQkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSR2YWwgPSAnJzsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKCQl7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICRodG1sNSA9ICcgcGxhY2Vob2xkZXI9IicuJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLiciJzsKCQkgICAgICAgIGlmICgkdGhpcy0+SXNSZXF1aXJlZCgpKSB7CgkJICAgICAgICAgICAgICAgICRodG1sNSAuPSAnIHJlcXVpcmVkJzsKCQkgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZSA/ICR0aGlzLT5WYWx1ZSA6ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgb25mb2N1cz0iaWYodGhpcy52YWx1ZT09dGhpcy5kZWZhdWx0VmFsdWUpIHRoaXMudmFsdWU9XCdcJzsiIG9uYmx1cj0iaWYodGhpcy52YWx1ZT09XCdcJykgdGhpcy52YWx1ZT10aGlzLmRlZmF1bHRWYWx1ZTsiJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdoaWRlJywnMScpID09ICcwJykKCQl7CgkJCXJldHVybiAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSR2YWwsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksIDI1NSwKCQkJCSRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRQYXNzd29yZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSR2YWwsICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpLDI1NSwKCQkJCSRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJCX0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9pZCcpIC4gJzogJyAuICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmbGRzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQkkb3B0cyA9IGFycmF5KCk7CgkJZm9yZWFjaCAoJGZsZHMgYXMgJHRmKQoJCQl7CgkJCWlmICgkdGYtPkdldEZpZWxkVHlwZSgpID09ICdQYXNzd29yZEZpZWxkJykKICAgICAgICAgICAgewoJCQkgICAkb3B0c1skdGYtPkdldE5hbWUoKV09JHRmLT5HZXROYW1lKCk7CgkJCSAgIH0KCQkJfQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KAoJCQkJJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWVsZF90b192YWxpZGF0ZScsICRvcHRzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnKSkKCQkJKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlzcGxheV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9sZW5ndGgnLAoJCQkgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCcxMicpLDI1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21pbmltdW1fbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfbWluX2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ21pbl9sZW5ndGgnLCc4JyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGlkZScpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oaWRlJywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGlkZScsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfaGVscCcpKSwKCgkJKTsKCgkJJGFkdiA9IGFycmF5KCk7CgkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSkpOwoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnKSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJGZpZWxkX3RvX3ZhbGlkYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnLCcnKTsKCgkJaWYgKCRmaWVsZF90b192YWxpZGF0ZSAhPSAnJykKCQl7CgkJCWZvcmVhY2ggKCR0aGlzLT5mb3JtX3B0ci0+RmllbGRzIGFzICRvbmVfZmllbGQpCgkJCXsKCQkJCWlmICgkb25lX2ZpZWxkLT5OYW1lID09ICRmaWVsZF90b192YWxpZGF0ZSkKCQkJCXsKCQkJCQkkdmFsdWUgPSAkb25lX2ZpZWxkLT5HZXRWYWx1ZSgpOwoJCQkJCWlmICgkdmFsdWUgIT0gJHRoaXMtPlZhbHVlKQoJCQkJCXsKCQkJCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkJCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJywgJGZpZWxkX3RvX3ZhbGlkYXRlKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PasswordField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiUGFzc3dvcmRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlBhc3N3b3JkRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Bhc3N3b3JkRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJHJvID0gJyc7CgkJJHZhbCA9ICcnOwoJCSRodG1sNSA9ICcnOwoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKQoJCXsKCQkJJHJvID0gJyByZWFkb25seSc7CgkJfQoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykgPT0gJzEnKQoJCXsKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgJGh0bWw1ID0gJyBwbGFjZWhvbGRlcj0iJy4kdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykuJyInOwoJCSAgICAgICAgaWYgKCR0aGlzLT5Jc1JlcXVpcmVkKCkpIHsKCQkgICAgICAgICAgICAgICAgJGh0bWw1IC49ICcgcmVxdWlyZWQnOwoJCSAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlID8gJHRoaXMtPlZhbHVlIDogJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpOwogICAgICAgICAgICAgICAgICAgICAgICBpZigkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpID09IDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkanMgLj0gJyBvbmZvY3VzPSJpZih0aGlzLnZhbHVlPT10aGlzLmRlZmF1bHRWYWx1ZSkgdGhpcy52YWx1ZT1cJ1wnOyIgb25ibHVyPSJpZih0aGlzLnZhbHVlPT1cJ1wnKSB0aGlzLnZhbHVlPXRoaXMuZGVmYXVsdFZhbHVlOyInOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykgPT0gJzAnKQoJCXsKCQkJcmV0dXJuICRtb2QtPmZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQkJJHZhbCwkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwgMjU1LAoJCQkJJGh0bWw1LiRqcy4kcm8uJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRQYXNzd29yZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSR2YWwsICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpLDI1NSwKCQkJCSRodG1sNS4kanMuJHJvLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICRyZXQgPSAkbW9kLT5MYW5nKCdhYmJyZXZpYXRpb25fbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3JlYWRvbmx5JywnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkcmV0IC49ICIsICIuJG1vZC0+TGFuZygndGl0bGVfcmVhZF9vbmx5Jyk7CiAgICAgICAgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfbGVuZ3RoJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnMTInKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9taW5pbXVtX2xlbmd0aCcpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgJ2ZicnBfb3B0X21pbl9sZW5ndGgnLAoJCQkgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywnOCcpLDI1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2hpZGUnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGlkZScsJzAnKS4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hpZGUnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdoaWRlJywnMScpKS4kbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3JlYWRfb25seScpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWFkb25seScsJzAnKS4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlYWRvbmx5JywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZWdleCcpLAoJCQkgICAgICBhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkJICAnZmJycF9vcHRfcmVnZXgnLAoJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDEwMjQpLCRtb2QtPkxhbmcoJ3RpdGxlX3JlZ2V4X2hlbHAnKSkpLAoJCSk7CgkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSkpOwoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnKSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdub25lJzoKCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJHRoaXMtPkdldE9wdGlvbigncmVnZXgnLCcvLiovJyksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICB9CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ21pbl9sZW5ndGgnLDApID4gMCAmJiBzdHJsZW4oJHRoaXMtPlZhbHVlKSA8ICR0aGlzLT5HZXRPcHRpb24oJ21pbl9sZW5ndGgnLDApKQoJCQl7CgkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYXRfbGVhc3QnLCR0aGlzLT5HZXRPcHRpb24oJ21pbl9sZW5ndGgnLDApKTsKCQkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ProvincePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiUHJvdmluY2VQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFByb3ZpbmNlczsKCQoJZnVuY3Rpb24gZmJQcm92aW5jZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUHJvdmluY2VQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5KAogICAgICAgICJObyBEZWZhdWx0Ij0+JycsIkFsYmVydGEiPT4iQUIiLCAiQnJpdGlzaCBDb2x1bWJpYSI9PiJCQyIsICJNYW5pdG9iYSI9PiJNQiIsICJOZXcgQnJ1bnN3aWNrIj0+Ik5CIiwgCiAgICAgICAgIk5ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3IiPT4iTkwiLCAiTm9ydGh3ZXN0IFRlcnJpdG9yaWVzIj0+Ik5UIiwgIk5vdmEgU2NvdGlhIj0+Ik5TIiwgIk51bmF2dXQiPT4iTlUiLCAKICAgICAgICAiT250YXJpbyI9PiJPTiIsICJQcmluY2UgRWR3YXJkIElzbGFuZCI9PiJQRSIsICJRdWViZWMiPT4iUUMiLCAiU2Fza2F0Y2hld2FuIj0+IlNLIiwgIll1a29uIj0+IllUIik7CgoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+UHJvdmluY2VzKTsKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJGh0bWw1ID0gJyc7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScmJiAkdGhpcy0+SXNSZXF1aXJlZCgpKSAKCQl7CgkJCSRodG1sNSA9ICcgcmVxdWlyZWQnOwoJCX0KCQl1bnNldCgkdGhpcy0+UHJvdmluY2VzWyRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKV0pOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCR0aGlzLT5Qcm92aW5jZXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR0aGlzLT5Qcm92aW5jZXMgPSBhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSwkdGhpcy0+UHJvdmluY2VzKTsKCQkJfQoKCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9wcm92aW5jZScsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfcHJvdmluY2UnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+UHJvdmluY2VzLCAtMSwgJHRoaXMtPlZhbHVlLCRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5Qcm92aW5jZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9wcm92aW5jZScsCiAgICAgICAgICAgIAkJJHRoaXMtPlByb3ZpbmNlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfcHJvdmluY2UnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKICAgIGZ1bmN0aW9uIGFycmF5X3NvcnRfYnlfa2V5KCRpbnB1dCkKCXsKCQlpZiggIWlzX2FycmF5KCRpbnB1dCkgKSByZXR1cm47CgkJJGExID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkaW5wdXQgYXMgJGsgPT4gJHYgKSB7CgkJCSRhMVskdl0gPSAkazsKCQl9CgkJYXNvcnQoJGExKTsKCQkkYTIgPSBhcnJheSgpOwoJCWZvcmVhY2goICRhMSBhcyAkayA9PiAkdiApIHsKCQkJJGEyWyR2XSA9ICRrOwoJCX0KCQlyZXR1cm4gJGEyOwoJfQoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1B1bGxkb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5vcHRpb25BZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJCXsKCQkJJGh0bWw1ID0gJyByZXF1aXJlZCc7CgkJfQoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJJHN1YmplY3RzID0gJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX25hbWUnKTsKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpIHsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKSB7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJfQoJCQlpZiggJHRoaXMtPkdldE9wdGlvbignc29ydCcpID09ICcxJyApIHsKCQkJCWtzb3J0KCRzb3J0ZWQpOwoJCQl9CgkJfQoJCWVsc2UgewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJfQoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKSB7CgkJCSRzb3J0ZWQgPSBhcnJheSgnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJykgKyAkc29ydGVkOwoJCX0KCQllbHNlIHsKCQkJJHNvcnRlZCA9IGFycmF5KCcgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSArICRzb3J0ZWQ7CgkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignb3B0aW9uX25hbWUnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdvcHRpb25zJywkbnVtKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEl0ZW1zKCk7CgkJaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5vcHRpb25Db3VudCArPSAkdGhpcy0+b3B0aW9uQWRkOwoJCQkkdGhpcy0+b3B0aW9uQWRkID0gMDsKCQkJfQoJCSRkZXN0cyA9ICc8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSBtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9vcHRpb25fbmFtZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9vcHRpb25fdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCQkkb2RkID0gZmFsc2U7CgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+b3B0aW9uQ291bnQ+MT8kdGhpcy0+b3B0aW9uQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gICc8dHIgY2xhc3M9IicuKCRvZGQ/J3JvdzEnOidyb3cyJykuJyI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X29wdGlvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X29wdGlvbl92YWx1ZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQkJCSRvZGQgPSAhJG9kZDsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQkkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCQkJCQkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSk7CgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3NvcnRfb3B0aW9ucycpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc29ydCcsCgkJCQkJCQkJCQkJCSAgYXJyYXkoJ1llcyc9PjEsJ05vJz0+MCksLTEsCgkJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignc29ydCcsMCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fdmFsdWUnLCgkdGhpcy0+VmFsdWUtMSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdSYWRpb0dyb3VwRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCiAgfQoKICBmdW5jdGlvbiBjb3VudEJveGVzKCkKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CiAgICAgIH0KICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5jb3VudEJveGVzKCk7CiAgICAkcmV0ID0gJG1vZC0+TGFuZygnb3B0aW9ucycsJHRoaXMtPm9wdGlvbkNvdW50KTsKICAgIGlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQogICAgICB7CgkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRuYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkaXNfc2V0ID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2lzX3NldCcpOwoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJJGh0bWw1ID0gJyc7CgoJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJyYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIAoJewoJCSRodG1sNSA9ICcgcmVxdWlyZWQnOwoJfQogICAgJGZpZWxkRGlzcCA9IGFycmF5KCk7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CglpZiAoc3RybGVuKCRuYW1lc1skaV0pID4gMCkKCSAgewoJICAgICR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfJy4kaSkuJyI+Jy4kbmFtZXNbJGldLic8L2xhYmVsPic7CgkgICAgJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCSAgfQoJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkgIHsKCSAgICAkY2hlY2tfdmFsID0gJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKzEpOwoJICB9CgllbHNlCgkgIHsKCSAgICBpZiAoaXNzZXQoJGlzX3NldFskaV0pICYmICRpc19zZXRbJGldID09ICd5JykKCSAgICAgIHsKCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCSAgICAgIH0JCQkJCgkgIH0KCSR0aGlzQm94LT5pbnB1dCA9ICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJy4oJGkrMSkuJyInOwoJaWYgKCRjaGVja192YWwpCgkgIHsKCSAgICAkdGhpc0JveC0+aW5wdXQgLj0gJyBjaGVja2VkPSJjaGVja2VkIic7CgkgIH0KCSR0aGlzQm94LT5pbnB1dCAuPSAkaHRtbDUuJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnXycuJGkpLicgLz4nOwoJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGREaXNwOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CgkgICAkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywoJHRoaXMtPlZhbHVlIC0gMSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSAgICRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICAgfQoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2lzX3NldCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkeWVzTm8gPSBhcnJheSgkbW9kLT5MYW5nKCdubycpPT4nbicsJG1vZC0+TGFuZygneWVzJyk9Pid5Jyk7CgogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICAgIGlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICAgfQogICAgJGJveGVzID0gJzx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIG1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX3JhZGlvX2xhYmVsJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9zZXQnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuCiAgICAgICc8L3RoPjwvdHI+JzsKCgkkb2RkID0gZmFsc2U7CiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQogICAgICB7CgkkYm94ZXMgLj0gJzx0ciBjbGFzcz0iJy4oJG9kZD8ncm93MSc6J3JvdzInKS4nIj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2J1dHRvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2NoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCRpKSkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwoJICAKCSAgJG9kZCA9ICEkb2RkOwogICAgICB9CiAgICAkYm94ZXMgLj0gJzwvdGFibGU+JzsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnKSwkYm94ZXMpCgkJICApOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogICAgJG5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgICRjaGVja2VkID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2NoZWNrZWQnKTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCiAgICAgIHsKCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX25hbWUnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywgJGkpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25faXNfc2V0JywgJGkpOwoJICAgICRpLS07CgkgIH0KICAgICAgfQogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/SiteAdminField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlNpdGVBZG1pbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiU2l0ZUFkbWluRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkdGhpcy0+VHlwZSA9ICdTaXRlQWRtaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7Cgl9CgoKCWZ1bmN0aW9uIGJ1aWxkTGlzdCgpCgl7CgkgICAgJGdDbXMgPSBjbXNtcygpOwoJICAgICR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CgkJCX0KCQkJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2Vyc0luR3JvdXAoJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2VycygpOwoJCQl9CgkJJGluZCA9IDE7CgkJZm9yKCRpPTA7JGk8Y291bnQoJHVzZXJsaXN0KTskaSsrKQoJCQl7CgkJCSRuYW1lID0gYXJyYXkoKTsKCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcmZpcnN0bmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwkdXNlcmxpc3RbJGldLT5maXJzdG5hbWUpOwoJCQkJfQoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VybGFzdG5hbWUnLCcwJyk9PScxJykKCQkJCXsKCQkJCWFycmF5X3B1c2goJG5hbWUsJHVzZXJsaXN0WyRpXS0+bGFzdG5hbWUpOwoJCQkJfQoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VybmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwnICgnLiR1c2VybGlzdFskaV0tPnVzZXJuYW1lLicpJyk7CgkJCQl9CgkJCSRzbmFtZSA9IGltcGxvZGUoJyAnLCRuYW1lKTsKCQkJaWYgKCR1c2VybGlzdFskaV0tPmFjdGl2ZSB8fCAkdGhpcy0+R2V0T3B0aW9uKCdhY3RpdmVfb25seScsJzEnKT09JzAnKQoJCQkJewoJCQkJJHNvcnRlZFskc25hbWVdPSRpbmQ7CgkJCQkkaW5kICs9IDE7CgkJCQl9CgkJCX0KCQlyZXR1cm4gJHNvcnRlZDsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRzb3J0ZWQgPSAkdGhpcy0+YnVpbGRMaXN0KCk7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRodG1sNSA9ICcnOwoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykgPT0gJzEnJiYgJHRoaXMtPklzUmVxdWlyZWQoKSkgCgkJewoJCQkkaHRtbDUgPSAnIHJlcXVpcmVkJzsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRodG1sNS4kanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAgICRnQ21zID0gY21zbXMoKTsKCSAgICAkZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmV0ID0gJyc7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJGdyb3VwID0gJGdyb3Vwb3BzLT5Mb2FkR3JvdXBCeUlEKCR0aGlzLT5HZXRPcHRpb24oJ2dyb3VwJykpOwoJCQlpZiAoJGdyb3VwICYmIGlzc2V0KCRncm91cC0+bmFtZSkpCgkJCQl7CgkJCQkkcmV0IC49ICRtb2QtPkxhbmcoJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnLCRncm91cC0+bmFtZSk7CgkJCQl9CgkJCX0KICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICAgICRnQ21zID0gY21zbXMoKTsKCSAgICAkZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CgkgICAgJGdyb3VwcyA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSRtYWluPWFycmF5KCk7CgkJJGFkdj1hcnJheSgpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCQkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSwyNSwxMjgpKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VyZmlyc3RuYW1lJywnMCcpLgoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3VzZXJmaXJzdG5hbWUnLCAnMScsCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJmaXJzdG5hbWUnLCcxJykpKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZScpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3VzZXJsYXN0bmFtZScsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd191c2VybGFzdG5hbWUnLCAnMScsCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJsYXN0bmFtZScsJzEnKSkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdXNlcm5hbWUnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VybmFtZScsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd191c2VybmFtZScsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcm5hbWUnLCcwJykpKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9hY3RpdmVfb25seScpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9hY3RpdmVfb25seScsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYWN0aXZlX29ubHknLCAnMScsCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdhY3RpdmVfb25seScsJzEnKSkpKTsKCQkJCQoKCQkkaXRlbXMgPSBhcnJheSgpOwoJCWZvcmVhY2ggKCRncm91cHMgYXMgJHRoaXNHcm91cCkKCQkJewoJCQkkaXRlbXNbJHRoaXNHcm91cC0+bmFtZV09JHRoaXNHcm91cC0+aWQ7CgkJCX0KCQkKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpLgoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZXN0cmljdF90b19ncm91cCcsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZ3JvdXAnLCAkaXRlbXMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcsJycpKQoJCQkJKSk7CgkJCQkKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR1c2VybGlzdCA9IGFycmF5X2ZsaXAoJHRoaXMtPmJ1aWxkTGlzdCgpKTsKCQkKCQlpZiAoaXNzZXQoJHVzZXJsaXN0WyR0aGlzLT5WYWx1ZV0pKQoJCQl7CgkJCSRyZXQgPSAkdXNlcmxpc3RbJHRoaXMtPlZhbHVlXTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJCQoJfQoJICAgIAogICAgZnVuY3Rpb24gVmFsaWRhdGUoKQogICAgewogICAgICAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAgICAkcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgJG1lc3NhZ2UgPSAnJzsKCiAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2FkbWluJyk7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/StatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiU3RhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFN0YXRlczsKCQoJZnVuY3Rpb24gZmJTdGF0ZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnU3RhdGVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPlN0YXRlcyA9IGFycmF5KAogICAgICAgICJObyBEZWZhdWx0Ij0+JycsIkFsYWJhbWEiPT4iQUwiLCAiQWxhc2thIj0+IkFLIiwgIkFyaXpvbmEiPT4iQVoiLCAiQXJrYW5zYXMiPT4iQVIiLCAKICAgICAgICAiQ2FsaWZvcm5pYSI9PiJDQSIsICJDb2xvcmFkbyI9PiJDTyIsICJDb25uZWN0aWN1dCI9PiJDVCIsICJEZWxhd2FyZSI9PiJERSIsIAogICAgICAgICJGbG9yaWRhIj0+IkZMIiwgIkdlb3JnaWEiPT4iR0EiLCAiSGF3YWlpIj0+IkhJIiwgIklkYWhvIj0+IklEIiwgCiAgICAgICAgIklsbGlub2lzIj0+IklMIiwgIkluZGlhbmEiPT4iSU4iLCAiSW93YSI9PiJJQSIsIAogICAgICAgICJLYW5zYXMiPT4iS1MiLCAiS2VudHVja3kiPT4iS1kiLCAiTG91aXNpYW5hIj0+IkxBIiwgIk1haW5lIj0+Ik1FIiwKICAgICAgICAiTWFyeWxhbmQiPT4iTUQiLCAiTWFzc2FjaHVzZXR0cyI9PiJNQSIsIAogICAgICAgICJNaWNoaWdhbiI9PiJNSSIsICJNaW5uZXNvdGEiPT4iTU4iLCAiTWlzc2lzc2lwcGkiPT4iTVMiLAogICAgICAgICJNaXNzb3VyaSI9PiJNTyIsICJNb250YW5hIj0+Ik1UIiwgIk5lYnJhc2thIj0+Ik5FIiwgCiAgICAgICAgIk5ldmFkYSI9PiJOViIsICJOZXcgSGFtcHNoaXJlIj0+Ik5IIiwgIk5ldyBKZXJzZXkiPT4iTkoiLAogICAgICAgICJOZXcgTWV4aWNvIj0+Ik5NIiwgIk5ldyBZb3JrIj0+Ik5ZIiwgCiAgICAgICAgIk5vcnRoIENhcm9saW5hIj0+Ik5DIiwgIk5vcnRoIERha290YSI9PiJORCIsICJPaGlvIj0+Ik9IIiwKICAgICAgICAiT2tsYWhvbWEiPT4iT0siLCAiT3JlZ29uIj0+Ik9SIiwgCiAgICAgICAgIlBlbm5zeWx2YW5pYSI9PiJQQSIsICJSaG9kZSBJc2xhbmQiPT4iUkkiLCAiU291dGggQ2Fyb2xpbmEiPT4iU0MiLAogICAgICAgICJTb3V0aCBEYWtvdGEiPT4iU0QiLCAiVGVubmVzc2VlIj0+IlROIiwgIlRleGFzIj0+IlRYIiwgIlV0YWgiPT4iVVQiLAogICAgICAgICJWZXJtb250Ij0+IlZUIiwgIlZpcmdpbmlhIj0+IlZBIiwgIldhc2hpbmd0b24iPT4iV0EiLAogICAgICAgICJEaXN0cmljdCBvZiBDb2x1bWJpYSI9PiJEQyIsICJXZXN0IFZpcmdpbmlhIj0+IldWIiwgIldpc2NvbnNpbiI9PiJXSSIsCiAgICAgICAgIld5b21pbmciPT4iV1kiKTsKCgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbHVlLCR0aGlzLT5TdGF0ZXMpOwoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQkJCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRodG1sNSA9ICcnOwoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykgPT0gJzEnJiYgJHRoaXMtPklzUmVxdWlyZWQoKSkgCgkJewoJCQkkaHRtbDUgPSAnIHJlcXVpcmVkJzsKCQl9CgkJdW5zZXQoJHRoaXMtPlN0YXRlc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSR0aGlzLT5TdGF0ZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+U3RhdGVzKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+U3RhdGVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPlN0YXRlcyk7CgkJCX0KCgoJCWlmICghICR0aGlzLT5IYXNWYWx1ZSgpICYmICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfc3RhdGUnLCcnKSAhPSAnJykKCQkgIHsKCQkgICR0aGlzLT5TZXRWYWx1ZSgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3N0YXRlJywnJykpOwoJCSAgfQoKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5WYWx1ZSwgJGh0bWw1LiRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJa3NvcnQoJHRoaXMtPlN0YXRlcyk7CgoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X3N0YXRlJywKICAgICAgICAgICAgCQkkdGhpcy0+U3RhdGVzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9zdGF0ZScsJycpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1N0YXRpY1RleHRGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPkhhc0xhYmVsID0gMDsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkdGhpcy0+U2V0U21hcnR5RXZhbCh0cnVlKTsKICAgICAgICAgfQoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJIHJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkxhbmcoJ3RleHRfbGVuZ3RoJyxzdHJsZW4oJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpKSk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gJ1tzdGF0aWMgdGV4dCBmaWVsZF0nOwoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQkJCgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0JyksCgkJCQkkbW9kLT5DcmVhdGVUZXh0QXJlYSgoZ2V0X3ByZWZlcmVuY2UoZ2V0X3VzZXJpZCgpLCAndXNlX3d5c2l3eWcnKT09JzEnKSwgJGZvcm1EZXNjcmlwdG9yLCAgJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpLCAnZmJycF9vcHRfdGV4dCcsJ3BhZ2VoZWFkdGFncycpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc21hcnR5X2V2YWwnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc21hcnR5X2V2YWwnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdzbWFydHlfZXZhbCcsJzAnKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/SystemLinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN5c3RlbUxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN5c3RlbUxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdTeXN0ZW1MaW5rRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAgICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJHRoaXNMaW5rID0gbmV3IHN0ZENsYXNzKCk7CgkJJGdDbXMgPSBjbXNtcygpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRwYWdlaW5mbyA9ICRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107CgkJCSR0aGlzTGluay0+aW5wdXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRwYWdlaW5mby0+Y29udGVudF9pZCwgJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlKTsKCQkJJHRoaXNMaW5rLT5uYW1lID0gJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlOwoJCQkkdGhpc0xpbmstPnRpdGxlID0gJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAJCSRjb2JqID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCR0aGlzLT5HZXRPcHRpb24oJ3RhcmdldF9wYWdlJywnMCcpKTsKCQkJJHRoaXNMaW5rLT5pbnB1dCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+Q3JlYXRlQ29udGVudExpbmsoJGNvYmotPklkKCksICRjb2JqLT5OYW1lKCkpOwoJCQkkdGhpc0xpbmstPm5hbWUgPSAkY29iai0+TmFtZSgpOwoJCQkkdGhpc0xpbmstPnRpdGxlID0gJGNvYmotPk5hbWUoKTsKCQkJfQoJCXJldHVybiBhcnJheSgkdGhpc0xpbmspOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJGdDbXMgPSBjbXNtcygpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRwYWdlaW5mbyA9ICRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRwYWdlaW5mby0+Y29udGVudF9pZCwgJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgCQkkY29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJzAnKSk7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRjb2JqLT5JZCgpLCAkY29iai0+TmFtZSgpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRnQ21zID0gY21zbXMoKTsKICAgIAkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCQkkbWFpbiA9IGFycmF5KAoJCSAJCSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZScpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYXV0b19saW5rJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpKS4kbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJykpLAogICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbGlua190b19zaXRlcGFnZScpLAoJCQkJIAkkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcnKSwgJGZvcm1EZXNjcmlwdG9yLidmYnJwX29wdF90YXJnZXRfcGFnZScpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRBcmVhRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0QXJlYUZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewoJCSR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGV4dEFyZWFGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJeyAgICAgICAgICAgIAoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSR2YWwgPSAnJzsKCQkkaHRtbDUgPSAnJzsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKCQl7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICRodG1sNSA9ICcgcGxhY2Vob2xkZXI9IicuJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLiciJzsKCQkgICAgICAgIGlmICgkdGhpcy0+SXNSZXF1aXJlZCgpKSB7CgkJICAgICAgICAgICAgICAgICRodG1sNSAuPSAnIHJlcXVpcmVkJzsKCQkgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZSA/ICR0aGlzLT5WYWx1ZSA6ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgb25mb2N1cz0iaWYodGhpcy52YWx1ZT09dGhpcy5kZWZhdWx0VmFsdWUpIHRoaXMudmFsdWU9XCdcJzsiIG9uYmx1cj0iaWYodGhpcy52YWx1ZT09XCdcJykgdGhpcy52YWx1ZT10aGlzLmRlZmF1bHRWYWx1ZTsiJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoJCXJldHVybiAkbW9kLT5DcmVhdGVUZXh0QXJlYSgoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMSc/dHJ1ZTpmYWxzZSksJGlkLCR2YWwsICdmYnJwX18nLiR0aGlzLT5JZCwKICAgICAgICAgICAgCQknJywkdGhpcy0+R2V0Q1NTSWQoKSwnJywnJywkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSwkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSwnJywgJycsICRqcy4kaHRtbDUuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoKCiAgIH0KCWZ1bmN0aW9uIFZhbGlkYXRlKCl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRsZW5ndGggPSAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCcnKTsKCQlpZihpc19udW1lcmljKCRsZW5ndGgpICYmICRsZW5ndGggPiAwKXsKCQkJaWYoKHN0cmxlbigkdGhpcy0+VmFsdWUpLTEpID4gJGxlbmd0aCl7CgkJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInLCAkbGVuZ3RoKTsKCQkJfQoJCQkkdGhpcy0+VmFsdWUgPSBzdWJzdHIoJHRoaXMtPlZhbHVlLCAwLCAkbGVuZ3RoKzEpOwoJCX0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICcnOwoKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkgewoJCQoJCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQl9CgkJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3d5c2l3eWcnLCcwJykgPT0gJzEnKSB7CgkJCgkJCSRyZXQgLj0gJyB3eXNpd3lnJzsKCQl9IGVsc2UgewoJCQoJCQkkcmV0IC49ICcgbm9uLXd5c2l3eWcnOwoJCX0KCQkKCQkkcmV0IC49ICAnLCAnLiRtb2QtPkxhbmcoJ3Jvd3MnLCR0aGlzLT5HZXRPcHRpb24oJ3Jvd3MnLCcxNScpKTsKCQkkcmV0IC49ICAnLCAnLiRtb2QtPkxhbmcoJ2NvbHMnLCR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpKTsKCQkKCQlyZXR1cm4gJHJldDsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgICRtYWluID0gYXJyYXkoCiAgICAgICAgIAlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91c2Vfd3lzaXd5ZycpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3d5c2l3eWcnLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfd3lzaXd5ZycsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3d5c2l3eWcnLCcwJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdGV4dGFyZWFfcm93cycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yb3dzJywkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSw1LDUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdGV4dGFyZWFfY29scycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jb2xzJywkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSw1LDUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnJyksIDUsIDUpKQogICAgICAgICAgICApOwoJICAgJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksJ2ZicnBfb3B0X2RlZmF1bHQnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKQoJCSk7CgogICAgICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKCQkvLyBoaWRlICJqYXZhc2NyaXB0IgoJCSR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9udW1lcmljJyk9PidudW1lcmljJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9pbnRlZ2VyJyk9PidpbnRlZ2VyJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl91c3Bob25lJyk9Pid1c3Bob25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkcm8gPSAnJzsKCQkkaHRtbDUgPSAnJzsKCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKQoJCXsKCQkJJHJvID0gJyByZWFkb25seSc7CgkJfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sNScsJzAnKSA9PSAnMScpCgkJewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gJHRoaXMtPlZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaHRtbDUgPSAnIHBsYWNlaG9sZGVyPSInLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKS4nIic7CgkJICAgICAgICBpZiAoJHRoaXMtPklzUmVxdWlyZWQoKSkgewoJCSAgICAgICAgICAgICAgICAkaHRtbDUgLj0gJyByZXF1aXJlZCc7CgkJICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+VmFsdWUgPyAkdGhpcy0+VmFsdWUgOiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7Iic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FVT1RFUyksICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwgJGpzLiRodG1sNS4kcm8uJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCQoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKSB7CgkJCgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJfQoJCQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZWFkb25seScsJzAnKSA9PSAnMScpIHsKICAgICAgICAKCQkJJHJldCAuPSAiLCAiLiRtb2QtPkxhbmcoJ3RpdGxlX3JlYWRfb25seScpOwogICAgICAgIH0KCQkgCgkJcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yZWFkX29ubHknKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWFkb25seScsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWFkb25seScsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3JlYWRvbmx5JywnMCcpKSkKCQkpOwoKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlZ2V4JywkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDEwMjQpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX3JlZ2V4X2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLDI1LDEwMjQpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykpCQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKCQkJCSAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpICR0aGlzLT5WYWx1ZSA9IHRyaW0oJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgiL14oW1xkXC5cLF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX251bWJlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdpbnRlZ2VyJzoKCQkJCSAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpICR0aGlzLT5WYWx1ZSA9IHRyaW0oJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXMtPlZhbHVlKSB8fAogICAgICAgICAgICAgICAgICAgICAgaW50dmFsKCR0aGlzLT5WYWx1ZSkgIT0gJHRoaXMtPlZhbHVlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgoJCQkJICAgCQkJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKSAkdGhpcy0+VmFsdWUgPSB0cmltKCR0aGlzLT5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgCQkJJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAKLy8gICAgICAgICAgICAgICAgICAJCQkmJiAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkKCQkJCQkJCQkJCQkJJiYgIWVtYWlsX3ZhbGlkYXRvcjo6aXNfZW1haWwoJHRoaXMtPlZhbHVlKQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3VzcGhvbmUnOgoJCQkJICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkgJHRoaXMtPlZhbHVlID0gdHJpbSgkdGhpcy0+VmFsdWUpOwogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCcvXihbMC05XVtcc1wuLV0/KT8oXCg/WzAtOV17M31cKT98WzAtOV17M30pW1xzXC4tXT8oWzAtOV17M31bXHNcLi1dP1swLTldezR9fFthLXpBLVowLTldezd9KShccz8oeHxleHR8ZXh0Lilccz9bYS16QS1aMC05XSspPyQvJywKICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9waG9uZScsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJHRoaXMtPkdldE9wdGlvbigncmVnZXgnLCcvLiovJyksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICB9CgkJICAKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzLT5WYWx1ZSkgPiAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKQoJCQl7CgkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKTsKCQkJfQoJCQkKCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextFieldExpandable.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZEV4cGFuZGFibGUgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0RmllbGRFeHBhbmRhYmxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGV4dEZpZWxkRXhwYW5kYWJsZSc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9udW1lcmljJyk9PidudW1lcmljJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9pbnRlZ2VyJyk9PidpbnRlZ2VyJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoJCSR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJHNpYmxpbmdfaWQgPSAkdGhpcy0+R2V0T3B0aW9uKCdzaWJsaW5ncycsJycpOwoJCSRoaWRlYnV0dG9ucyA9ICR0aGlzLT5HZXRPcHRpb24oJ2hpZGVidXR0b25zJywnJyk7CgoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpIAoJCXsKCgkJCSR2YWxzID0gMTsKCQkJJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQl9IGVsc2UgewoKCQkJJHZhbHMgPSBjb3VudCgkdGhpcy0+VmFsdWUpOwoJCX0KCQkKCQlmb3JlYWNoICgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKCQl7CgkJCgkJCWlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZVhfJykKCQkJewkJCQkKCQkJCSRwdHMgPSBleHBsb2RlKCdfJywkcEtleSk7CgkJCQlpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQgfHwgJHB0c1syXSA9PSAkc2libGluZ19pZCkKCQkJCXsJCQkJCQoJCQkJCS8vIGFkZCByb3cKCQkJCQkkdGhpcy0+VmFsdWVbJHZhbHNdPScnOwoJCQkJCSR2YWxzKys7CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCgkJCXsJCgkJCQkkcHRzID0gZXhwbG9kZSgnXycsJHBLZXkpOwoJCQkJaWYgKCRwdHNbMl0gPT0gJHRoaXMtPklkIHx8ICRwdHNbMl0gPT0gJHNpYmxpbmdfaWQpCgkJCQl7CQkJCQoJCQkJCS8vIGRlbGV0ZSByb3cKCQkJCQlpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRwdHNbM11dKSkKCQkJCQl7CgkJCQkJCgkJCQkJCWFycmF5X3NwbGljZSgkdGhpcy0+VmFsdWUsICRwdHNbM10sIDEpOwoJCQkJCX0KCQkJCQkkdmFscy0tOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBJbnB1dCBmaWVsZHMKCQkkcmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8JHZhbHM7JGkrKykKCQl7CgkJCgkJCSR0aGlzUm93ID0gbmV3IHN0ZENsYXNzKCk7CgoJCQkkdGhpc1Jvdy0+aW5wdXQgPSAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCR0aGlzLT5WYWx1ZVskaV0sJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsCgkJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfJy4kaSkpOwoJCQkKCQkJaWYoISRoaWRlYnV0dG9ucykKCQkJewoJCQkJJHRoaXNSb3ctPm9wID0gJG1vZC0+ZmJDcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlRF8nLiR0aGlzLT5JZC4nXycuJGksICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJyksICR0aGlzLT5HZXRDU1NJZFRhZygnX2RlbF8nLiRpKS4oJHZhbHM9PTE/JyBkaXNhYmxlZD0iZGlzYWJsZWQiJzonJykpOwoJCQl9CgoJCQlhcnJheV9wdXNoKCRyZXQsICR0aGlzUm93KTsKCQl9CgkJCgkJLy8gQWRkIGJ1dHRvbgoJCSR0aGlzUm93ID0gbmV3IHN0ZENsYXNzKCk7CgkJCgkJaWYoISRoaWRlYnV0dG9ucykKCQl7CgkJCSR0aGlzUm93LT5vcCA9ICRtb2QtPmZiQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9GZVhfJy4kdGhpcy0+SWQuJ18nLiRpLCAkdGhpcy0+R2V0T3B0aW9uKCdhZGRfYnV0dG9uJywnKycpLCAkdGhpcy0+R2V0Q1NTSWRUYWcoJ19hZGRfJy4kaSkpOwoJCX0KCQkKCQlhcnJheV9wdXNoKCRyZXQsICR0aGlzUm93KTsKCQkKCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdhYmJyZXZpYXRpb25fbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkgewoJCQoJCQkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQl9CgkJCgkJcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmcgPSB0cnVlKQoJewoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpIHsKCQkKCQkJJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCSAgICB9CgkJCgkJaWYgKCRhc19zdHJpbmcpIHsKCQkKCQkJcmV0dXJuIGpvaW4oJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCR0aGlzLT5WYWx1ZSk7CgkJfSBlbHNlIHsKCQkKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9tYXhpbXVtX2xlbmd0aCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9hZGRfYnV0dG9uX3RleHQnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9hZGRfYnV0dG9uJywkdGhpcy0+R2V0T3B0aW9uKCdhZGRfYnV0dG9uJywnKycpLDE1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlbF9idXR0b25fdGV4dCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2RlbF9idXR0b24nLCR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJyksMTUsMjUpKQoJCSk7CgkJCgkJJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZWdleCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWdleCcsJHRoaXMtPkdldE9wdGlvbigncmVnZXgnKSwyNSwyNTUpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX3JlZ2V4X2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJyksJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaWJsaW5ncycsJHRoaXMtPkdldEZpZWxkU2libGluZ3MoKSwtMSwkdGhpcy0+R2V0T3B0aW9uKCdzaWJsaW5ncycsJycpKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJykpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucycpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfaGlkZWJ1dHRvbnMnLDApLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hpZGVidXR0b25zJywxLCR0aGlzLT5HZXRPcHRpb24oJ2hpZGVidXR0b25zJywwKSkuJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCcpKQkJCQkKCQkpOwoJCQoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBMYWJlbFN1YkNvbXBvbmVudHMoKQoJewoJCXJldHVybiBmYWxzZTsKCX0JCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICAgIHsKCQkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkgICAgfQoJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc1ZhbCkKCQkgICAgewoJCSAgICBzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgICAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXNWYWwpIHx8CiAgICAgICAgICAgICAgICAgICAgICBpbnR2YWwoJHRoaXNWYWwpICE9ICR0aGlzVmFsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgIAkJCSR0aGlzVmFsICE9PSBmYWxzZQovLwkJCSAgICAgICAgICAgICAgICAgICYmICFwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpc1ZhbCkKCQkJICAgICAgICAgICAgICAgICAgJiYgIWVtYWlsX3ZhbGlkYXRvcjo6aXNfZW1haWwoJHRoaXMtPlZhbHVlKQoJCSAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCSAgCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkgPiAwICYmIHN0cmxlbigkdGhpc1ZhbCkgPiAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCAwKSkKCQkJewoJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkpOwoJCQl9CgkJfQoJCQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9CgkKCS8vIEdldHMgYWxsIG1pcnJvciBmaWVsZHMgb2YgdGhpcyBmaWVsZAoJZnVuY3Rpb24gR2V0RmllbGRTaWJsaW5ncygpIAoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJHNpYmxpbmdzID0gYXJyYXkoKTsKCQkKCQkkc2libGluZ3NbJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwoJCgkJZm9yICgkaT0wOyAkaSA8IGNvdW50KCRmb3JtLT5GaWVsZHMpOyAkaSsrKSB7CgkKCQkJJHRoaXNGaWVsZCA9ICYkZm9ybS0+RmllbGRzWyRpXTsKCQoJCQlpZiAoJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJ1RleHRGaWVsZEV4cGFuZGFibGUnICYmICR0aGlzRmllbGQtPkdldElkKCkgIT0gJHRoaXMtPkdldElkKCkpIHsKCQkKCQkJCSRzaWJsaW5nc1skdGhpc0ZpZWxkLT5HZXROYW1lKCldID0gJHRoaXNGaWVsZC0+R2V0SWQoKTsKCQkJCQoJCQl9CgkJfQoJCQoJCXJldHVybiAkc2libGluZ3M7CgkKCX0KCQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGltZVBpY2tlckZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICApOwogICAgICAkdGhpcy0+ZmxhZzEyaG91ciA9IGFycmF5KAoJCSAgCSRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyksCiAgICAgICAgCSRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKT0+JG1vZC0+TGFuZygndGl0bGVfYWZ0ZXJfbm9vbicpKTsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5sYWJlbFN1YkNvbXBvbmVudHMgPSBmYWxzZTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICgkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpID09ICcwJz8kbW9kLT5MYW5nKCcxMl9ob3VyJyk6JG1vZC0+TGFuZygnMjRfaG91cicpKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgoJCWlmKCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3RpbWUnLCctMScpID09ICctMScgKQoJCXsKCQkJJG5vdyA9IGxvY2FsdGltZSh0aW1lKCksdHJ1ZSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRub3cgPSBsb2NhbHRpbWUoc3RydG90aW1lKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfdGltZScsJy0xJykpLHRydWUpOwoJCX0KCgkJJE1pbnMgPSBhcnJheSgpOwoJCSRIb3VycyA9IGFycmF5KCk7CgkJJHJldCA9IGFycmF5KCk7CgkJJGogPSAkdGhpcy0+R2V0T3B0aW9uKCdtaW51dGVfaW50ZXJ2YWwnLCcxJyk7CgkJZm9yICgkaT0wOyRpPDYwOyRpPSRpKyRqKQoJCXsKCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkkTWluc1skbW9dPSRtbzsKCQl9CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnKQoJCXsKCQkJZm9yICgkaT0xOyRpPDEzOyRpKyspCgkJCXsKCQkJCSRtbyA9IHNwcmludGYoIiUwMmQiLCRpKTsKCQkJCSRIb3Vyc1skbW9dPSRtbzsKCQkJfQoJCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJCSRub3dbJ3RtX2hvdXInXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApOwoJCQkJJG5vd1snbWVyaWQnXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpOwoJCQkJJG5vd1sndG1fbWluJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRub3dbJ21lcmlkJ10gPSAkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpOwoJCQkJaWYgKCRub3dbJ3RtX2hvdXInXSA+IDEyKQoJCQkJewoJCQkJCSRub3dbJ3RtX2hvdXInXSAtPSAxMjsKCQkJCQkkbm93WydtZXJpZCddID0gJG1vZC0+TGFuZygndGl0bGVfYWZ0ZXJfbm9vbicpOwoJCQkJfQoJCQkJZWxzZWlmICgkbm93Wyd0bV9ob3VyJ10gPT0gMCkKCQkJCXsKCQkJCQkkbm93Wyd0bV9ob3VyJ10gPSAxMjsKCQkJCX0KCQkJfQoKCQkJJGhyID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRoci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCgkJCQkkSG91cnMsIC0xLCAkbm93Wyd0bV9ob3VyJ10sJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX2hvdXInKSk7CgkJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CgkJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX2hvdXInKS4nIj4nLiRtb2QtPkxhbmcoJ2hvdXInKS4nPC9sYWJlbD4nOwoJCQlhcnJheV9wdXNoKCRyZXQsICRocik7CgoJCQkkbWluID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRtaW4tPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAoJCQkJJE1pbnMsIC0xLCAkbm93Wyd0bV9taW4nXSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfbWluJykpOwoJCQkkbWluLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21pbicpOwoJCQkkbWluLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWluJykuJyI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwoJCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKCQkJJG1lciA9IG5ldyBzdGRDbGFzcygpOwoJCQkkbWVyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKCQkJCSR0aGlzLT5mbGFnMTJob3VyLCAtMSwgJG5vd1snbWVyaWQnXSwgJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX21lcmlkaWFuJykpOwoJCQkkbWVyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWVyaWRpYW4nKS4nIj4nLiRtb2QtPkxhbmcoJ21lcmlkJykuJzwvbGFiZWw+JzsKCQkJJG1lci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtZXJpZCcpOwoJCQlhcnJheV9wdXNoKCRyZXQsJG1lcik7CgkJCXJldHVybiAkcmV0OwoJCX0KCQllbHNlCgkJewoJCQlmb3IgKCRpPTA7JGk8MjQ7JGkrKykKCQkJewoJCQkJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCQkJCSRIb3Vyc1skbW9dPSRtbzsKCQkJfQoKCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCQkkbm93Wyd0bV9ob3VyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKTsKCQkJCSRub3dbJ3RtX21pbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCX0KCQkJJGhyID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRoci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCgkJCQkkSG91cnMsIC0xLCAkbm93Wyd0bV9ob3VyJ10sJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX2hvdXInKSk7CgkJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CgkJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX2hvdXInKS4nIj4nLiRtb2QtPkxhbmcoJ2hvdXInKS4nPC9sYWJlbD4nOwoJCQlhcnJheV9wdXNoKCRyZXQsICRocik7CgoJCQkkbWluID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRtaW4tPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAoJCQkJJE1pbnMsIC0xLCAkbm93Wyd0bV9taW4nXSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfbWluJykpOwoJCQkkbWluLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21pbicpOwoJCQkkbWluLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWluJykuJyI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwoJCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKCQkJcmV0dXJuICRyZXQ7CgkJfQoKCgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSA9PSAnMCcpCgkJCQl7CgkJCQkkcmV0ID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkuJzonLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLicgJy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJldCA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLic6Jy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHRzID0gYXJyYXkoJzEnPT4nMScsJzUnPT4nNScsJzEwJz0+JzEwJywnMTUnPT4nMTUnLCcyMCc9PicyMCcsJzMwJz0+JzMwJyk7CgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlXzI0X2hvdXInKSwKCQkgICAgCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF8yNF9ob3VyJywKCQkgICAgCQkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykpCgkJCQkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF90aW1lJyksCgkJICAgIAkJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X3RpbWUnLAoJCSAgICAJCQkkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3RpbWUnLCctMScpLDEwLDEwKSwkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3RpbWVfaGVscCcpKQoJCQkJKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21pbnV0ZV9pbnRlcnZhbCcpLAoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbWludXRlX2ludGVydmFsJywKCQkJCQkkb3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ21pbnV0ZV9pbnRlcnZhbCcsJzEnKSkKCQkJCSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/UniqueIntegerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVuaXF1ZUludGVnZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgoJZnVuY3Rpb24gZmJVbmlxdWVJbnRlZ2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CgkJJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdVbmlxdWVJbnRlZ2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkgewoKCQkJJHJldCA9ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+VmFsdWUpOwoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd190b191c2VyJywnMCcpID09ICcxJykgewoKCQkJCSRyZXQgLj0gJHRoaXMtPlZhbHVlOwoJCQl9CgkJCgkJfSBlbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCd1c2VfcmFuZG9tX2dlbmVyYXRvcicsJzAnKSA9PSAnMScpIHsKCgkJCSR0aW1lcyA9ICR0aGlzLT5HZXRPcHRpb24oJ251bWJlcnNfdG9fZ2VuZXJhdGUnLCc1JykgPyAkdGhpcy0+R2V0T3B0aW9uKCdudW1iZXJzX3RvX2dlbmVyYXRlJywnNScpIDogNTsKCQkJJG51bWJlciA9ICR0aGlzLT5nZW5lcmF0ZV9udW1iZXJzKDAsOSwkdGltZXMpOwoJCQkkcmV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsJG51bWJlcik7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3RvX3VzZXInLCcwJykgPT0gJzEnKSB7CQkJCgkJCQkKCQkJCSRyZXQgLj0gJG51bWJlcjsJCQoJCQl9CgkJCgkJfSBlbHNlIHsKCgkJCSRkYiA9ICRtb2QtPmRiSGFuZGxlOwoJCQkkc2VxID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgkJCSRyZXQgPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwkc2VxKTsKCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdG9fdXNlcicsJzAnKSA9PSAnMScpIHsKCQkJCgkJCQkkcmV0IC49ICRzZXE7CgkJCX0KCQl9CgoJCXJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3RvX3VzZXInKSwgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3RvX3VzZXInLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd190b191c2VyJywgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdG9fdXNlcicsJzAnKSkpLAkJCQkKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InKSwgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF91c2VfcmFuZG9tX2dlbmVyYXRvcicsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF91c2VfcmFuZG9tX2dlbmVyYXRvcicsICcxJywkdGhpcy0+R2V0T3B0aW9uKCd1c2VfcmFuZG9tX2dlbmVyYXRvcicsJzAnKSkpLAkKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X251bWJlcnNfdG9fZ2VuZXJhdGUnLCR0aGlzLT5HZXRPcHRpb24oJ251bWJlcnNfdG9fZ2VuZXJhdGUnLCc1JyksMjUsMjUpKQkJCQkJCQoJCSk7CgkJCQkKCQkkYWR2ID0gYXJyYXkoKTsKCQkKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gZ2VuZXJhdGVfbnVtYmVycygkbWluLCAkbWF4LCAkdGltZXMpCgl7CgkJJG91dHB1dCA9ICcnOwoJCSRhcnJheSA9IHJhbmdlKCRtaW4sICRtYXgpOwoJCXNyYW5kICgoZG91YmxlKW1pY3JvdGltZSgpKjEwMDAwKTsKCQlmb3IoJHggPSAwOyAkeCA8ICR0aW1lczsgJHgrKykgewoJCQoJCQkkaSA9IHJhbmQoMSwgY291bnQoJGFycmF5KSktMTsKCQkJJG91dHB1dCAuPSAkYXJyYXlbJGldOwoJCX0KCQkKCQlyZXR1cm4gJG91dHB1dDsKCX0JCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/UserTagField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVzZXJUYWdGaWVsZCBleHRlbmRzICBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiVXNlclRhZ0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ1VzZXJUYWdGaWVsZCc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogICAgJHBhcmFtcyA9IGFycmF5KCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignZXhwb3J0X2Zvcm0nLCcwJykgPT0gJzEnKQogICAgICB7CiAgICAgICRwYXJhbXNbJ0ZPUk0nXSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICAgfQogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSAgICAkcmVwbFZhbCA9ICR1bnNwZWM7CgkgICAgICB9CgkgIH0KICAgJG5hbWUgPSAkb3RoZXJzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCk7CgkkcGFyYW1zWyRuYW1lXSA9ICRyZXBsVmFsOwoJJGlkID0gJG90aGVyc1skaV0tPkdldElkKCk7CgkkcGFyYW1zWydmbGRfJy4kaWRdID0gJHJlcGxWYWw7CgkkYWxpYXMgPSAkb3RoZXJzWyRpXS0+R2V0QWxpYXMoKTsKCWlmICghZW1wdHkoJGFsaWFzKSkKICAgICAgewoJICAgJHBhcmFtc1skYWxpYXNdID0gJHJlcGxWYWw7CgkgICB9CiAgIH0KCiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVkdCA9ICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKTsKICAgICRyZXMgPSAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoICR1ZHQsICRwYXJhbXMpOwoKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCSAgIHJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl91c2VydGFnJywgJHVkdCk7CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwoJfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVzZXJ0YWdzID0gJHVzZXJ0YWdvcHMtPkxpc3RVc2VyVGFncygpOwogICAgJHVzZXJ0YWdsaXN0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgIHsKCSR1c2VydGFnbGlzdFskdmFsdWVdID0gJGtleTsKICAgICAgfQogICAgJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VkdF9uYW1lJyksCgkJICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICdmYnJwX29wdF91ZHRuYW1lJywkdXNlcnRhZ2xpc3QsLTEsCgkJCQkJICAgICAgJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScpKSk7CiAgICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZXhwb3J0X2Zvcm0nLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9leHBvcnRfZm9ybScsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2V4cG9ydF9mb3JtJywnMCcpKSk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/YearPullDownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwogICAKICAgVGhpcyBGaWVsZCB3cml0dGVuIGJ5IFRhcGlvICJTdGlra2kiIEz2eXR0eSA8dGFwc2FAYmxhY2ttaWxrLmZpPgoqLwoKY2xhc3MgZmJZZWFyUHVsbGRvd25GaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlllYXJQdWxsZG93bkZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewoJCSR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnWWVhclB1bGxEb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJGh0bWw1ID0gJyc7CgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykgPT0gJzEnJiYgJHRoaXMtPklzUmVxdWlyZWQoKSkgCgkJewoJCQkkaHRtbDUgPSAnIHJlcXVpcmVkJzsKCQl9CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLCcnKSAhPSAnJykgewoJCQkkY291bnRfZnJvbSA9ICR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLCcnKTsKCQl9IGVsc2UgewoJCQkkY291bnRfZnJvbSA9IDE5MDA7CgkJfQoJCQoJCWZvciAoJGk9ZGF0ZSgiWSIpOyAkaT49JGNvdW50X2Zyb207ICRpLS0pIHsKCQkJJHNvcnRlZFskaV09JGk7CgkJfQoJCQkKCQlpZiggJHRoaXMtPkdldE9wdGlvbignc29ydCcpID09ICcxJyApIHsKCQkJa3NvcnQoJHNvcnRlZCk7CgkJfQoJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpICsgJHNvcnRlZDsKCQl9IGVsc2UgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsJGh0bWw1LiRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSwyNSwxMjgpKTsKCQkJCQkJCQkJCQkgIAoJCSRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF95ZWFyX3N0YXJ0JywKCQkJCQkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLDE5MDApLDI1LDEyOCkpOwoJCQkJCQkJCQkJCSAgCgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3NvcnRfb3B0aW9ucycpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc29ydCcsCgkJCQkJCQkJCQkJCSAgYXJyYXkoJ1llcyc9PjEsJ05vJz0+MCksLTEsCgkJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignc29ydCcsMCkpKTsKCQkJCQkJCQkJCQkJICAKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkc3RkX2ZpZWxkX3R5cGVzOwoJdmFyICRhbGxfdmFsaWRhdGlvbl90eXBlczsKCXZhciAkbW9kdWxlX3B0cjsKCXZhciAkbW9kdWxlX2lkOwoJIyMjIyBKb01vcmcKCSMgZGVwcmVjYXRlZCBzaW5jZSAwLjguMQoJdmFyICRlbWFpbF9yZWdleDsKCSMgZGVwcmVjYXRlZCBzaW5jZSAwLjguMQoJdmFyICRlbWFpbF9yZWdleF9yZWxheGVkOwoJIyMjIyBKb01vcmcgZW5kCgkKCXZhciAkZGJIYW5kbGU7CgoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQoJewoJCXBhcmVudDo6X19jb25zdHJ1Y3QoKTsKCgkJJHRoaXMtPm1vZHVsZV9wdHIgPSAmJHRoaXM7CgkJJHRoaXMtPmRiSGFuZGxlID0gICR0aGlzLT5HZXREYigpOwoJCSR0aGlzLT5tb2R1bGVfaWQgPSAnJzsKCQkjIyMjIEpvTW9yZwoJCSMgZGVwcmVjYXRlZCBzaW5jZSAwLjguMQoJCSR0aGlzLT5lbWFpbF9yZWdleCA9ICIvXihbXHdcZFwuXC1cX10pK1xAKFtcd1xkXC5cLVxfXSspXC4oXHcrKSQvaSI7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQ9Ii9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKSskL2kiOwoJCSMjIyMgSm9Nb3JnIGVuZAoJCQoJCXJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKS4nL2NsYXNzZXMvRm9ybS5jbGFzcy5waHAnOwoJCXJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKS4nL2NsYXNzZXMvRmllbGRCYXNlLmNsYXNzLnBocCc7CQkKCX0KCQoJZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCgl7CgkJJGRpcj1vcGVuZGlyKGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3NlcycpOwoJCSR0aGlzLT5maWVsZF90eXBlcyA9IGFycmF5KCk7CgkJd2hpbGUoJGZpbGVzcGVjPXJlYWRkaXIoJGRpcikpCgkJewoJCQlpZiggIWVuZHN3aXRoKCRmaWxlc3BlYywnLnBocCcpICkgY29udGludWU7CgkJCWlmKHN0cnBvcygkZmlsZXNwZWMsJ0ZpZWxkJykgPT09IGZhbHNlICYmIHN0cnBvcygkZmlsZXNwZWMsJ0Rpc3Bvc2l0aW9uJykgPT09IGZhbHNlKQoJCQl7CgkJCQljb250aW51ZTsKCQkJfQoJCQkkc2hvcnRuYW1lID0gc3Vic3RyKCRmaWxlc3BlYywwLHN0cnBvcygkZmlsZXNwZWMsJy4nKSk7CgkJCWlmIChzdWJzdHIoJHNob3J0bmFtZSwtNCkgPT0gJ0Jhc2UnKQoJCQl7CgkJCQljb250aW51ZTsKCQkJfQoJCQkkdGhpcy0+ZmllbGRfdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kc2hvcnRuYW1lKV0gPSAkc2hvcnRuYW1lOwoJCX0KCQkKCQlmb3JlYWNoICgkdGhpcy0+ZmllbGRfdHlwZXMgYXMgJHROYW1lPT4kdFR5cGUpCgkJewoJCQlpZiAoc3Vic3RyKCR0VHlwZSwwLDExKSA9PSAnRGlzcG9zaXRpb24nKQoJCQl7CgkJCQkkdGhpcy0+ZGlzcF9maWVsZF90eXBlc1skdE5hbWVdPSR0VHlwZTsKCQkJfQoJCX0KCQkkdGhpcy0+YWxsX3ZhbGlkYXRpb25fdHlwZXMgPSBhcnJheSgpOwoJCWtzb3J0KCR0aGlzLT5maWVsZF90eXBlcyk7CgkJJHRoaXMtPnN0ZF9maWVsZF90eXBlcyA9IGFycmF5KAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9UZXh0RmllbGQnKT0+J1RleHRGaWVsZCcsCgkJCSR0aGlzLT5MYW5nKCdmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnKT0+J1RleHRBcmVhRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJyk9PidDaGVja2JveEZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJyk9PidDaGVja2JveEdyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJyk9PidQdWxsZG93bkZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJyk9PidSYWRpb0dyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJyk9PidEaXNwb3NpdGlvbkVtYWlsJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJyk9PidEaXNwb3NpdGlvbkZpbGUnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCcpPT4nUGFnZUJyZWFrRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnKT0+J1N0YXRpY1RleHRGaWVsZCcpOwoJCWtzb3J0KCR0aGlzLT5zdGRfZmllbGRfdHlwZXMpOwoJfQoKCWZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQoJZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsgcmV0dXJuIEZBTFNFOyB9CglmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gJ0Zvcm1CdWlsZGVyJzsgfQoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOyB9CglmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzAuOC4xJzsgfQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ01vcnRlbiBQb3Vsc2VuJzsgfQoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnbW9ydGVuQHBvdWxzZW4ub3JnJzsgfQoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigkbGFuZyA9ICdlbl9VUycpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2MnKTsgfQoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaW5jJyk7IH0KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gdHJ1ZTsgfQoJZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiB0cnVlOyB9CglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsgfQoJZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIGZhbHNlOyB9CglmdW5jdGlvbiBBZG1pblN0eWxlKCkKCXsKCQkkb3V0cHV0ID0gJyc7CgkJCgkJJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy9pbmNsdWRlcy9hZG1pbi5jc3MnOwoJCSRvdXRwdXQgLj0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkJCgkJcmV0dXJuICRvdXRwdXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCgl7CgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJCSR0bXBsID0gJyc7CgoJCWlmKCB2ZXJzaW9uX2NvbXBhcmUoJEdMT0JBTFNbJ0NNU19WRVJTSU9OJ10sJzEuOScpIDwgMCApCgkJewoJCSAgICAkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9qcXVlcnktMS40LjIubWluLmpzIj48L3NjcmlwdD4nOwoJCX0KCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9qcXVlcnkudGFibGVkbmQuanMiPjwvc2NyaXB0Pic7CQkKCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9mYl9qcXVlcnlfZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4nOwoJCSR0bXBsIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzLycuJHRoaXMtPkdldE5hbWUoKS4nL2luY2x1ZGVzL2ZiX2pxdWVyeS5qcyI+PC9zY3JpcHQ+JzsKCQkKICAgICAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0bXBsKTsKCX0KCQoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CgkJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoJCQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZicnBfKicsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCcpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9mYnJwXy4qLycsQ0xFQU5fU1RSSU5HKTsKCQkKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmb3JtX2lkJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtX2lkJyxDTEVBTl9JTlQpOwoJCQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Zvcm0nLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZScpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9ybScsQ0xFQU5fU1RSSU5HKTsKCQkKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZF9pZCcsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnKSk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkX2lkJyxDTEVBTl9JTlQpOwoJCQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3ZhbHVlXyonLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZycpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy92YWx1ZV8uKi8nLENMRUFOX1NUUklORyk7CgkJCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmVzcG9uc2VfaWQnLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXNwb25zZV9pZCcsQ0xFQU5fSU5UKTsKCX0KCglmdW5jdGlvbiBEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQ9JycpCgl7CgkJJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwoJCQoJCSR0aGlzLT5tb2R1bGVfaWQgPSAkaWQ7CgkJcGFyZW50OjpEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwoJfQoKCWZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCdDTVNNYWlsZXInPT4nMS43MycpOyB9CglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsgcmV0dXJuICcxLjExJzsgfQoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RfaW5zdGFsbCcpOyB9CgoJZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm1pc3Npb249J01vZGlmeSBGb3JtcycpCgl7CgkJJGFjY2VzcyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm1pc3Npb24pOwoJCWlmICghJGFjY2VzcykgIHsKCQkJZWNobyAiPHAgY2xhc3M9XCJlcnJvclwiPiIuJHRoaXMtPkxhbmcoJ3lvdV9uZWVkX3Blcm1pc3Npb24nLCRwZXJtaXNzaW9uKS4iPC9wPiI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSByZXR1cm4gdHJ1ZTsKCX0KCgkvKgoJRE8gTk9UIGFsbG93IHBhcmFtZXRlcnMgdG8gYmUgdXNlZCBmb3IgcGFzc2luZyB0aGUgb3JkZXJfYnkhIEl0IGlzIG5vdCBlc2NhcGVkIGJlZm9yZQoJZGF0YWJhc2UgYWNjZXNzLiBJZiB3ZSBsZXQgQURPREIgcXVvdGUgaXQsIHRoZSBTUUwgaXMgbm90IHZhbGlkIChub3QgdGhhdCBNeVNRTCBjYXJlcywKCWJ1dCBQb3N0Z3JlcyBkb2VzKS4KCSovCgkKCWZ1bmN0aW9uIEdldEZvcm1zKCRvcmRlcl9ieT0nbmFtZScpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBPUkRFUiBCWSAnLiRvcmRlcl9ieTsKCQkkcmVzdWx0ID0gYXJyYXkoKTsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5HZXRBcnJheSgpOwoJCX0KCQlyZXR1cm4gJHJlc3VsdDsKCX0KCglmdW5jdGlvbiBHZXRGb3JtSURGcm9tQWxpYXMoJGZvcm1fYWxpYXMpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBhbGlhcyA9ID8nOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybV9hbGlhcykpOwoJCWlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJCXsKCQkJJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKCQkJcmV0dXJuICRyZXN1bHRbJ2Zvcm1faWQnXTsKCQl9CgkJcmV0dXJuIC0xOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1OYW1lRnJvbUlEKCRmb3JtX2lkKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUIG5hbWUgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gV0hFUkUgZm9ybV9pZCA9ID8nOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybV9pZCkpOwoJCWlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJCXsKCQkJJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKCQl9CgkJcmV0dXJuICRyZXN1bHRbJ25hbWUnXTsKCX0KCglmdW5jdGlvbiBHZXRGb3JtQnlJRCgkZm9ybV9pZCwgJGxvYWREZWVwPWZhbHNlKQoJewoJCSRwYXJhbXMgPSBhcnJheSgnZm9ybV9pZCc9PiRmb3JtX2lkKTsKCQlyZXR1cm4gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgJGxvYWREZWVwKTsKCX0KCglmdW5jdGlvbiBHZXRGb3JtQnlQYXJhbXMoJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKCXsKCQlyZXR1cm4gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgJGxvYWREZWVwKTsKCX0KCglmdW5jdGlvbiBHZXRIZWxwKCkgCgl7CgkJJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwoJCSRzbWFydHktPmFzc2lnbignbW9kJywgJHRoaXMpOwoJCQoJCXJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdoZWxwX3RleHQudHBsJyk7IAoJfQoJCglmdW5jdGlvbiBHZXRSZXNwb25zZSgkZm9ybV9pZCwkcmVzcG9uc2VfaWQsJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JykKCXsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRmYkZpZWxkID0gJHRoaXMtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpOwoJCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQl7CgkJCS8vIGVycm9yIGhhbmRsaW5nIGdvZXMgaGVyZS4KCQkJZWNobygkdGhpcy0+TGFuZygnZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJykpOwoJCX0KCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZicl9pZD0/JywgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CgoJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQlpZiAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJewoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ2Zicl9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpKTsKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snc3VibWl0dGVkJ10pKTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZF9kYXRlID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6JGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpOyAKCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWRfZGF0ZSA9IChlbXB0eSgkcm93WydhZG1pbl9hcHByb3ZlZCddKT8nJzokZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpOwoJCQkkb25lc2V0LT5zdWJtaXR0ZWRfZGF0ZSA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSk7CgkJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJCSRvbmVzZXQtPmZpZWxkcyA9IGFycmF5KCk7CgkJCSRvbmVzZXQtPm5hbWVzID0gYXJyYXkoKTsKCQkJJG9uZXNldC0+ZmllbGRzYnlhbGlhcyA9IGFycmF5KCk7CgkJfQoKCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCSR0aGlzLT5IYW5kbGVSZXNwb25zZUZyb21YTUwoJGZiRmllbGQsICRvbmVzZXQpOwoJCWxpc3QoJGZuYW1lcywgJGFsaWFzZXMsICR2YWxzKSA9ICR0aGlzLT5QYXJzZVJlc3BvbnNlWE1MKCRvbmVzZXQtPnhtbCk7CgoJCWZvcmVhY2ggKCRmbmFtZXMgYXMgJGlkPT4kbmFtZSkKCQkJewoJCQlpZiAoaXNzZXQoJGZpZWxkX2xpc3RbJGlkXSkgJiYgJGZpZWxkX2xpc3RbJGlkXSA+IC0xKQoJCQkJewoJCQkJJG9uZXNldC0+dmFsdWVzWyRmaWVsZF9saXN0WyRpZF1dPSR2YWxzWyRpZF07CgkJCQkkb25lc2V0LT5uYW1lc1skZmllbGRfbGlzdFskaWRdXT0kZm5hbWVzWyRpZF07CgkJCQl9CgkJCWlmIChpc3NldCgkYWxpYXNlc1skaWRdKSkKCQkJCXsKCQkJCSRvbmVzZXQtPmZpZWxkc2J5YWxpYXNbJGFsaWFzZXNbJGlkXV0gPSAkdmFsc1skaWRdOwoJCQkJfQoJCQl9CgkJcmV0dXJuICRvbmVzZXQ7Cgl9CgoJZnVuY3Rpb24gUGFyc2VSZXNwb25zZVhNTCgkeG1sc3RyLCAkaHVtYW5fcmVhZGFibGVfdmFsdWVzID0gdHJ1ZSkKCXsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSRhbGlhc2VzID0gYXJyYXkoKTsKCQkkdmFscyA9IGFycmF5KCk7CgkJJHhtbCA9IG5ldyBTaW1wbGVYTUxFbGVtZW50KCR4bWxzdHIpOwoJCWZvcmVhY2ggKCR4bWwtPmZpZWxkIGFzICR4bWxmaWVsZCkKCQkJewoJCQlpZiAoJGh1bWFuX3JlYWRhYmxlX3ZhbHVlcykKCQkJCXsKCQkJCWlmIChpc3NldCgkeG1sZmllbGRbJ2Rpc3BsYXlfaW5fc3VibWlzc2lvbiddKSAmJiAkeG1sZmllbGRbJ2Rpc3BsYXlfaW5fc3VibWlzc2lvbiddID09ICcxJykKCQkJCQl7CgkJCQkJJGlkID0gKGludCkkeG1sZmllbGRbJ2lkJ107CgkJCQkJJG5hbWVzWyRpZF0gPSAoKHN0cmluZykkeG1sZmllbGQtPmZpZWxkX25hbWUpOwoJCQkJCSR2YWxzWyRpZF0gPSAoKHN0cmluZykkeG1sZmllbGQtPmh1bWFuX3JlYWRhYmxlX3ZhbHVlKTsKCQkJCQlpZiAoaXNzZXQoJHhtbGZpZWxkLT5vcHRpb25zKSkKCQkJCQkJewoJCQkJCQlmb3JlYWNoICgkeG1sZmllbGQtPm9wdGlvbnMtPm9wdGlvbiBhcyAkdG8pCgkJCQkJCQl7CgkJCQkJCQlpZiAoJHRvWyduYW1lJ10gPT0gJ2ZpZWxkX2FsaWFzJykKCQkJCQkJCQl7CgkJCQkJCQkJJGFsaWFzZXNbJGlkXT0oKHN0cmluZykkdG8pOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJGlkID0gKGludCkkeG1sZmllbGRbJ2lkJ107CgkJCQkkYXJyVHlwZXMgPSAkeG1sZmllbGQtPnhwYXRoKCdvcHRpb25zL3ZhbHVlJyk7IAoJCQkJaWYgKGNvdW50KCRhcnJUeXBlcykgPiAxKQoJCQkJCXsKCQkJCQkkdmFsc1skaWRdID0gYXJyYXkoKTsKCQkJCQlmb3JlYWNoKCRhcnJUeXBlcyBhcyAkdHYpCgkJCQkJCXsKCQkJCQkJYXJyYXlfcHVzaCgkdmFsc1skaWRdLChzdHJpbmcpJHR2KTsKCQkJCQkJfQoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJJHZhbHNbJGlkXSA9IChzdHJpbmcpJHhtbGZpZWxkLT5vcHRpb25zLT52YWx1ZTsKCQkJCQl9CgkJCQl9CgkJCX0KCQlyZXR1cm4gYXJyYXkoJG5hbWVzLCAkYWxpYXNlcywgJHZhbHMpOwoJfQoKCS8vIE5ldyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGZpeCBmb3IgQnVnIDU3MDIgZnJvbSBNaWtlIEh1Z2hlc2Rvbi4KCWZ1bmN0aW9uIFBhcnNlUmVzcG9uc2VYTUxUeXBlKCR4bWxzdHIpCgl7CgkJJHR5cGVzID0gYXJyYXkoKTsKCQkkeG1sID0gbmV3IFNpbXBsZVhNTEVsZW1lbnQoJHhtbHN0cik7CgkJZm9yZWFjaCAoJHhtbC0+ZmllbGQgYXMgJHhtbGZpZWxkKQoJCXsKCQkJJGlkID0gKGludCkkeG1sZmllbGRbJ2lkJ107CgkJCSR0eXBlc1snZmJycF9fJy4kaWRdID0gKHN0cmluZykkeG1sZmllbGRbJ3R5cGUnXTsKCQl9CgkJcmV0dXJuICR0eXBlczsKCX0KCglmdW5jdGlvbiBHZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQgV0hFUkUgZm9ybV9pZD0/IGFuZCB0eXBlPT8nOwoJCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybV9pZCwnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpKTsKCQkkcmVzdWx0ID0gYXJyYXkoKTsKCQlpZiAoISAkcnMgfHwgJHJzLT5SZWNvcmRDb3VudCgpID09IDApCgkJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJJHRoaXNSZXMgPSAkcnMtPkdldEFycmF5KCk7CgkJJHBhcmFtcyA9IGFycmF5KCk7CgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsJHBhcmFtcyxmYWxzZSk7CgoJCSRjbGFzc05hbWUgPSAkYWVmb3JtLT5NYWtlQ2xhc3NOYW1lKCR0aGlzUmVzWzBdWyd0eXBlJ10sICcnKTsKCQkvLyBjcmVhdGUgdGhlIGZpZWxkIG9iamVjdAoJCSRmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCR0aGlzUmVzWzBdKTsKCQlyZXR1cm4gJGZpZWxkOwkJCgl9CgkKCQoJZnVuY3Rpb24gSGFuZGxlUmVzcG9uc2VGcm9tWE1MKCYkZmJGaWVsZCwgJiRyZXNwb25zZU9iaikKCXsKCQkkY3J5cHQgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdjcnlwdCcsJzAnKTsKCQlpZiAoJGNyeXB0ID09ICcxJykKCQkJewoJCQkkY3J5cHRsaWIgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdjcnlwdF9saWInKTsKCQkJJGtleWZpbGUgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdrZXlmaWxlJyk7CgkJCWlmICgkY3J5cHRsaWIgPT0gJ29wZW5zc2wnKQoJCQkJewoJCQkJJG9wZW5zc2wgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ09wZW5TU0wnKTsKCQkJCSRwa2V5ID0gJGZiRmllbGQtPkdldE9wdGlvbigncHJpdmF0ZV9rZXknKTsKCQkJCSRvcGVuc3NsLT5SZXNldCgpOwoJCQkJJG9wZW5zc2wtPmxvYWRfcHJpdmF0ZV9rZXlmaWxlKCRwa2V5LCRrZXlmaWxlKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJaWYgKGZpbGVfZXhpc3RzKCRrZXlmaWxlKSkKCQkJICAgIAl7CgkJCSAgICAgICAgJGtleWZpbGUgPSBmaWxlX2dldF9jb250ZW50cygka2V5ZmlsZSk7CgkJCSAgICAgICAgfQoJCQkJfQoJCQl9CgoJCWlmICgkY3J5cHQgPT0gJzEnKQoJCQl7CgkJCWlmICgkY3J5cHRsaWIgPT0gJ29wZW5zc2wnKQoJCQkJewoJCQkJJHJlc3BvbnNlT2JqLT54bWwgPSAkb3BlbnNzbC0+ZGVjcnlwdF9mcm9tX3BheWxvYWQoJHJlc3BvbnNlT2JqLT54bWwpOwoJCQkJaWYgKCRyZXNwb25zZU9iai0+eG1sID09IGZhbHNlKQoJCQkJCXsKCQkJCQlkZWJ1Z19kaXNwbGF5KCRvcGVuc3NsLT5vcGVuc3NsX2Vycm9ycygpKTsKCQkJCQl9CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRyZXNwb25zZU9iai0+eG1sID0gJHRoaXMtPmZiZGVjcnlwdCgkcmVzcG9uc2VPYmotPnhtbCwka2V5ZmlsZSk7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRTb3J0ZWRSZXNwb25zZXMoJGZvcm1faWQsICRzdGFydF9wb2ludCwgJG51bWJlcj0xMDAsICRhZG1pbl9hcHByb3ZlZD1mYWxzZSwgJHVzZXJfYXBwcm92ZWQ9ZmFsc2UsICRmaWVsZF9saXN0PWFycmF5KCksICRkYXRlRm10PSdkIEYgeScsICYkcGFyYW1zKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJJHNxbCA9ICdGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3NlciBXSEVSRSBmb3JtX2lkPT8nOwoJCSRzcWxwYXJtcyA9IGFycmF5KCRmb3JtX2lkKTsKCQlpZiAoJHVzZXJfYXBwcm92ZWQpCgkJewoJCQkkc3FsIC49ICcgYW5kIHVzZXJfYXBwcm92ZWQgaXMgbm90IG51bGwnOwoJCX0KCQlpZiAoJGFkbWluX2FwcHJvdmVkKQoJCXsKCQkJJHNxbCAuPSAnIGFuZCBhZG1pbl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CgkJfQoJCWlmKCAoISBlbXB0eSgkcGFyYW1zWydmYnJwX3Jlc3BvbnNlX3NlYXJjaCddKSkgJiYgKGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pKSApCgkJewoJCQkkc3FsIC49ICcgQU5EIHJlc3BfaWQgSU4gKCcuIGltcGxvZGUoJywnLCAkcGFyYW1zWydmYnJwX3Jlc3BvbnNlX3NlYXJjaCddKSAuJyknOwoJCX0KCQlpZiAoaXNzZXQoJHBhcmFtc1snZmlsdGVyX2ZpZWxkJ10pICYmIHN1YnN0cigkcGFyYW1zWydmaWx0ZXJfZmllbGQnXSwwLDUpID09J2luZGV4JykKCQkJewoJCQkkaWR4ZmxkID0gaW50dmFsKHN1YnN0cigkcGFyYW1zWydmaWx0ZXJfZmllbGQnXSw1KSk7CgkJCSRzcWwgLj0gJyBBTkQgaW5kZXhfa2V5XycuJGlkeGZsZC4nPT8nOwoJCQlhcnJheV9wdXNoKCRzcWxwYXJtcywkcGFyYW1zWydmaWx0ZXJfdmFsdWUnXSk7CgkJCX0KCQlpZiAoISBpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXSkgfHwgJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ109PSdzdWJtaXRkYXRlJyB8fCBlbXB0eSgkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXSkpCgkJewoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2EnKQoJCQl7CgkJCQkkc3FsIC49ICcgb3JkZXIgYnkgc3VibWl0dGVkIGFzYyc7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkc3FsIC49ICcgb3JkZXIgYnkgc3VibWl0dGVkIGRlc2MnOwoJCQl9CgkJfQoJCWVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQkJewoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2QnKQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgZGVzYyc7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJJHNxbCAuPSAnIG9yZGVyIGJ5IGluZGV4X2tleV8nLihpbnQpJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10uJyBhc2MnOwoJCQkJfQoJCQl9CgoJCSRkYmNvdW50ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgQ09VTlQoKikgYXMgbnVtICcuJHNxbCwkc3FscGFybXMpOwoKCQkkcmVjb3JkcyA9IDA7CgkJaWYgKCRkYmNvdW50ICYmICRyb3cgPSAkZGJjb3VudC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRyZWNvcmRzID0gJHJvd1snbnVtJ107CgkJfQoKCQlpZiAoJG51bWJlciA+IC0xKQoJCQl7CgkJCSRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJ1NFTEVDVCAqICcuJHNxbCwgJG51bWJlciwgJHN0YXJ0X3BvaW50LCAkc3FscGFybXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUICogJy4kc3FsLCAkc3FscGFybXMpOwoJCQl9CgkJCQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+aWQgPSAkcm93WydmYnJfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkX2RhdGUgPSAoZW1wdHkoJHJvd1sndXNlcl9hcHByb3ZlZCddKT8nJzokZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSk7IAoJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZF9kYXRlID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOiRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWRfZGF0ZSA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSk7CgoJCQkkb25lc2V0LT54bWwgPSAkcm93WydyZXNwb25zZSddOwoJCQkkb25lc2V0LT5maWVsZHMgPSBhcnJheSgpOwoJCQkkb25lc2V0LT5maWVsZHNieWFsaWFzID0gYXJyYXkoKTsKCQkJYXJyYXlfcHVzaCgkdmFsdWVzLCRvbmVzZXQpOwoJCX0KCQkkZmJGaWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKTsKCQlpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJCXsKCQkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCQllY2hvKCR0aGlzLT5MYW5nKCdlcnJvcl9oYXNfbm9fZmJfZmllbGQnKSk7CgkJCX0KCQkKCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCSRtYXBmaWVsZHMgPSAoY291bnQoJGZpZWxkX2xpc3QpID4gMCk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCR2YWx1ZXMpOyRpKyspCgkJewoJCQkkdGhpcy0+SGFuZGxlUmVzcG9uc2VGcm9tWE1MKCRmYkZpZWxkLCAkdmFsdWVzWyRpXSk7CgkJCWxpc3QoJGZuYW1lcywgJGFsaWFzZXMsICR2YWxzKSA9ICR0aGlzLT5QYXJzZVJlc3BvbnNlWE1MKCR2YWx1ZXNbJGldLT54bWwpOwoJCQlmb3JlYWNoICgkZm5hbWVzIGFzICRpZD0+JG5hbWUpCgkJCQl7CgkJCQlpZiAoJG1hcGZpZWxkcykKCQkJCQl7CgkJCQkJaWYgKGlzc2V0KCRmaWVsZF9saXN0WyRpZF0pICYmICRmaWVsZF9saXN0WyRpZF0gPiAtMSkKCQkJCQkJewoJCQkJCQlpZiAoJHBvcHVsYXRlX25hbWVzKQoJCQkJCQkJewoJCQkJCQkJJG5hbWVzWyRmaWVsZF9saXN0WyRpZF1dID0gJG5hbWU7CgkJCQkJCQl9CgkJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGZpZWxkX2xpc3RbJGlkXV09JHZhbHNbJGlkXTsKCQkJCQkJfQoJCQkJCWlmIChpc3NldCgkYWxpYXNlc1skaWRdKSkKCQkJCQkJewoJCQkJCQkkdmFsdWVzWyRpXS0+ZmllbGRzYnlhbGlhc1skYWxpYXNlc1skaWRdXSA9ICR2YWxzWyRpZF07CgkJCQkJCX0KCQkJCQl9CgkJCQllbHNlCgkJCQkJewoJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCXsKCQkJCQkJJG5hbWVzWyRpZF0gPSAkbmFtZTsKCQkJCQkJfQoJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGlkXT0kdmFsc1skaWRdOwoJCQkJCWlmIChpc3NldCgkYWxpYXNlc1skaWRdKSkKCQkJCQkJewoJCQkJCQkkdmFsdWVzWyRpXS0+ZmllbGRzYnlhbGlhc1skYWxpYXNlc1skaWRdXSA9ICR2YWxzWyRpZF07CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCSRwb3B1bGF0ZV9uYW1lcyA9IGZhbHNlOwoJCX0KCQlyZXR1cm4gYXJyYXkoJHJlY29yZHMsICRuYW1lcywgJHZhbHVlcyk7Cgl9CgoJLy8gd3JpdGVzIGFsbCByZWNvcmRzIGludG8gYSBmbGF0IGZpbGUuCglmdW5jdGlvbiBXcml0ZVNvcnRlZFJlc3BvbnNlc1RvRmlsZSgkZm9ybV9pZCwgJGZpbGVzcGVjLCAkc3RyaXB0YWdzPXRydWUsICRkYXRlRm10PSdkIEYgeScsICYkcGFyYW1zKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJJHNxbCA9ICdGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3NlciBXSEVSRSBmb3JtX2lkPT8nOwoKCQlpZiAoISBpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXSkgfHwgJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ109PSdzdWJtaXRkYXRlJyB8fCBlbXB0eSgkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXSkpCgkJewoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2QnKQoJCQl7CgkJCQkkc3FsIC49ICcgb3JkZXIgYnkgc3VibWl0dGVkIGRlc2MnOwkKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgYXNjJzsKCQkJfQoJCX0KCQllbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXSkpCgkJCXsKCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSkgJiYgJHBhcmFtc1snZmJycF9zb3J0X2RpciddID09ICdkJykKCQkJCXsKCQkJCQkkc3FsIC49ICcgb3JkZXIgYnkgaW5kZXhfa2V5XycuKGludCkkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXS4nIGRlc2MnOwkKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkc3FsIC49ICcgb3JkZXIgYnkgaW5kZXhfa2V5XycuKGludCkkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXS4nIGFzYyc7CgkJCQl9CgkJCX0KCgkJJGZiRmllbGQgPSAkdGhpcy0+R2V0Rm9ybUJyb3dzZXJGaWVsZCgkZm9ybV9pZCk7CgkJaWYgKCRmYkZpZWxkID09IGZhbHNlKQoJCQl7CgkJCS8vIGVycm9yIGhhbmRsaW5nIGdvZXMgaGVyZS4KCQkJZWNobygkdGhpcy0+TGFuZygnZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJykpOwoJCQl9CgoJCSRmaCA9IGZvcGVuKCRmaWxlc3BlYywgJ3crJyk7CgkJaWYgKCRmaCA9PT0gZmFsc2UpCgkJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUICogJy4kc3FsLCBhcnJheSgkZm9ybV9pZCkpOwoKCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+aWQgPSAkcm93WydmYnJfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT54bWwgPSAkcm93WydyZXNwb25zZSddOwoJCQkkdGhpcy0+SGFuZGxlUmVzcG9uc2VGcm9tWE1MKCRmYkZpZWxkLCAkb25lc2V0KTsKCQkJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJHRoaXMtPlBhcnNlUmVzcG9uc2VYTUwoJG9uZXNldC0+eG1sKTsKCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCXsKCQkJCWlmICgkc3RyaXB0YWdzKQoJCSAgICAgICAgIAl7CgkJCQkJZm9yZWFjaCAoJGZuYW1lcyBhcyAkaWQ9PiRuYW1lKQoJCQkJCQl7CgkJICAgICAgICAgICAgCSRmbmFtZXNbJGldID0gc3RyaXBfdGFncygkZm5hbWVzWyRpXSk7CgkJICAgICAgICAgICAgCX0KCQkgICAgICAgICAJfQoJCQkJZnB1dHMgKCRmaCwgJHRoaXMtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9kYXRlJykuIlx0Ii4KCQkJCQkkdGhpcy0+TGFuZygndGl0bGVfYXBwcm92YWxfZGF0ZScpLiJcdCIuCgkJCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX3VzZXJfYXBwcm92ZWQnKS4iXHQiLgoJCQkJCWltcGxvZGUoIlx0IiwkZm5hbWVzKS4iXG4iKTsKCQkJCSRwb3B1bGF0ZV9uYW1lcyA9IGZhbHNlOwoJCQkJfQoJCQlmcHV0cyAoJGZoLCRvbmVzZXQtPnN1Ym1pdHRlZCAuICJcdCIpOwoJCQlmcHV0cyAoJGZoLCRvbmVzZXQtPmFkbWluX2FwcHJvdmVkIC4gIlx0Iik7CgkJCWZwdXRzICgkZmgsJG9uZXNldC0+dXNlcl9hcHByb3ZlZCAuICJcdCIpOwoJCQlmb3JlYWNoICgkdmFscyBhcyAkdHYpCgkJCQl7CgkJCQlpZiAoJHN0cmlwdGFncykKCSAgICAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICR0diA9IHN0cmlwX3RhZ3MoJHR2KTsKCSAgICAgICAgICAgICAgIH0KCQkJCWZwdXRzICgkZmgscHJlZ19yZXBsYWNlKCcvW1xuXHRccl0vJywnICcsJHR2KSk7CgkJCQlmcHV0cyAoJGZoLCJcdCIpOwoJCQkJfQoJCQlmcHV0cygkZmgsIlxuIik7CgkJfQoJCWZjbG9zZSgkZmgpOwoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIEdldFNvcnRhYmxlRmllbGRzKCRmb3JtX2lkKQoJewoJCSRyZXQgPSBhcnJheSgpOwoJCSRwYXJtID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCk7CgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJtLCB0cnVlKTsKCQkkZmJGaWVsZCA9ICRhZWZvcm0tPkdldEZvcm1Ccm93c2VyRmllbGQoKTsKCQlpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJCXsKCQkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCXJldHVybiAkZmJGaWVsZC0+Z2V0U29ydEZpZWxkTGlzdCgpOwoJfQoKICBmdW5jdGlvbiBHZXRGRVVJREZyb21SZXNwb25zZUlEKCRyZXNwb25zZV9pZCkKCXsKCSRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgJHNxbCA9ICdTRUxFQ1QgZmV1aWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyIHdoZXJlIGZicl9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkZGItPkdldFJvdygkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKSkKICAgICAgewoJICAgIHJldHVybiAkcmVzdWx0WydmZXVpZCddOwogICAgICB9CiAgICByZXR1cm4gLTE7Cgl9CgogIGZ1bmN0aW9uIEdldFJlc3BvbnNlSURGcm9tRkVVSUQoJGZldV9pZCwgJGZvcm1faWQ9LTEpCgl7CgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCgkvLyBGaXggZm9yIEJ1ZyA1NDIyLiBBZGFwdGVkIGZyb20gTWlrZSBIdWdoZXNkb24ncyBjb2RlLgoJJHNxbCA9ICdTRUxFQ1QgZmJyX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3NlciB3aGVyZSBmZXVpZD0/JzsKCWlmICgkZm9ybV9pZCAhPSAtMSkKCXsKCQkkc3FsIC49ICcgYW5kIGZvcm1faWQgPSAnLiRmb3JtX2lkLicgT1JERVIgQlkgc3VibWl0dGVkIERFU0MnOwoJfQoKICAgIGlmKCRyZXN1bHQgPSAkZGItPkdldFJvdygkc3FsLCBhcnJheSgkZmV1X2lkKSkpCiAgICAgIHsKCSAgICByZXR1cm4gJHJlc3VsdFsnZmJyX2lkJ107CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKIAl9CgoJZnVuY3Rpb24gZmllbGRfc29ydGVyX2FzYygkYSwgJGIpCgl7CgkJcmV0dXJuIHN0cmNhc2VjbXAoJGEtPmZpZWxkc1skYS0+c2ZdLCAkYi0+ZmllbGRzWyRiLT5zZl0pOwoJfQoKCWZ1bmN0aW9uIGZpZWxkX3NvcnRlcl9kZXNjKCRhLCAkYikKCXsKCQlyZXR1cm4gc3RyY2FzZWNtcCgkYi0+ZmllbGRzWyRiLT5zZl0sICRhLT5maWVsZHNbJGEtPnNmXSk7Cgl9CgoJCgkvLyBGb3IgYSBnaXZlbiBmb3JtLCByZXR1cm5zIGFuIGFycmF5IG9mIHJlc3BvbnNlIG9iamVjdHMKCWZ1bmN0aW9uIExpc3RSZXNwb25zZXMoJGZvcm1faWQsICRzb3J0X29yZGVyPSdzdWJtaXR0ZWQnKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRyZXQgPSBhcnJheSgpOwoJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSBmb3JtX2lkPT8gT1JERVIgQlkgPyc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZvcm1faWQsJHNvcnRfb3JkZXIpKTsKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJewoJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRvbmVzZXQtPmlkID0gJHJlc3VsdFsncmVzcF9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ3VzZXJfYXBwcm92ZWQnXSk7IAoJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0WydhZG1pbl9hcHByb3ZlZCddKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0WydzdWJtaXR0ZWQnXSk7IAoJCQlhcnJheV9wdXNoKCRyZXQsJG9uZXNldCk7CgkJfQoJCXJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIGRlZigmJHZhcikKCXsKCQlpZiAoIWlzc2V0KCR2YXIpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlIGlmIChpc19udWxsKCR2YXIpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlIGlmICghaXNfYXJyYXkoJHZhcikgJiYgZW1wdHkoJHZhcikpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWVsc2UgaWYgKGlzX2FycmF5KCR2YXIpICYmIGNvdW50KCR2YXIpID09IDApCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIENsZWFyRmlsZUxvY2soKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAiREVMRVRFIGZyb20gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jayc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJfQoKCWZ1bmN0aW9uIEdldEZpbGVMb2NrKCkKCXsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkc3FsID0gImluc2VydCBpbnRvICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZmxvY2sgKGZsb2NrX2lkLCBmbG9jaykgdmFsdWVzICgxLCIuJGRiLT5zeXNUaW1lU3RhbXAuIikiOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCQlpZiAoJHJzKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCSRzcWwgPSAiU0VMRUNUIGZsb2NrX2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuCgkJCQkibW9kdWxlX2ZiX2Zsb2NrIHdoZXJlIGZsb2NrICsgaW50ZXJ2YWwgMTUgc2Vjb25kIDwgIi4kZGItPnN5c1RpbWVTdGFtcDsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgkJaWYgKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJCXsKCQkJJHRoaXMtPkNsZWFyRmlsZUxvY2soKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gUmV0dXJuRmlsZUxvY2soKSB7ICR0aGlzLT5DbGVhckZpbGVMb2NrKCk7IH0KCglmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uICggJGV2ZW50bmFtZSApIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOyB9CgoJZnVuY3Rpb24gR2V0RXZlbnRIZWxwICggJGV2ZW50bmFtZSApIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50bmFtZSApOyB9CgoJZnVuY3Rpb24gQ3JlYXRlUGFnZURyb3Bkb3duKCRpZCwkbmFtZSwkY3VycmVudD0nJywKCQkJCQkJCQkkYWRkdGV4dD0nJywkbWFya2RlZmF1bHQgPXRydWUpCgl7CgkJLy8gd2UgZ2V0IGhlcmUgKGhvcGVmdWxseSkgd2hlbiB0aGUgdGVtcGxhdGUgaXMgY2hhbmdlZCBpbiB0aGUgZHJvcGRvd24uCgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGRlZmF1bHRpZCA9ICcnOwoJCWlmKCAkbWFya2RlZmF1bHQgKQoJCXsKCQkJJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoJCQkkZGVmYXVsdGlkID0gJGNvbnRlbnRvcHMtPkdldERlZmF1bHRQYWdlSUQoKTsKCQl9CgkJCgkJLy8gZ2V0IGEgbGlzdCBvZiB0aGUgcGFnZXMgdXNlZCBieSB0aGlzIHRlbXBsYXRlCgkJJG15cGFnZXMgPSBhcnJheSgpOwoKCQlpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21sZV92ZXJzaW9uJywnMCcpID09ICcxJykKCQkJewoJCQlnbG9iYWwgJG1sZWJsb2NrOwoJCQkkcSA9ICJTRUxFQ1QgY29udGVudF9pZCxjb250ZW50X25hbWUkbWxlYmxvY2sgYXMgY29udGVudF9uYW1lIEZST00gIi4KCQkJCWNtc19kYl9wcmVmaXgoKS4iY29udGVudCBXSEVSRSB0eXBlID0gPyBBTkQgYWN0aXZlID0gMSI7CQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRxID0gIlNFTEVDVCBjb250ZW50X2lkLGNvbnRlbnRfbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJCQkJImNvbnRlbnQgV0hFUkUgdHlwZSA9ID8gQU5EIGFjdGl2ZSA9IDEiOwoJCQl9CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoJ2NvbnRlbnQnKSApOwoJCXdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKCQl7CgkJCWlmKCAkZGVmYXVsdGlkICE9ICcnICYmICRyb3dbJ2NvbnRlbnRfaWQnXSA9PSAkZGVmYXVsdGlkICkKCQkJewoJCQkJLy8gdXNlIGEgc3RhciBpbnN0ZWFkIG9mIGEgd29yZCBoZXJlIHNvIEkgZG9uJ3QgaGF2ZSB0bwoJCQkJLy8gd29ycnkgYWJvdXQgdHJhbnNsYXRpb24gc3R1ZmYKCQkJCSRteXBhZ2VzWyRyb3dbJ2NvbnRlbnRfbmFtZSddLicgKCopJ10gPSAkcm93Wydjb250ZW50X2lkJ107CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkbXlwYWdlc1skcm93Wydjb250ZW50X25hbWUnXV0gPSAkcm93Wydjb250ZW50X2lkJ107CgkJCX0KCQl9CgkJcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnZmJycF8nLiRuYW1lLCRteXBhZ2VzLC0xLCRjdXJyZW50LCRhZGR0ZXh0KTsKCX0KCglmdW5jdGlvbiBTdXBwcmVzc0FkbWluT3V0cHV0KCYkcmVxdWVzdCkKCXsKCQlpZiAoaXNzZXQoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSAmJiBzdHJwb3MoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLCdleHBvcnR4bWwnKSAhPT0gZmFsc2UpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pICYmIHN0cnBvcygkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10sJ2FkbWluX2dldF90ZW1wbGF0ZScpICE9PSBmYWxzZSkKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CgogICBmdW5jdGlvbiBjcnlwdCgkc3RyaW5nLCAkZGlzcG9zaXRpb25GaWVsZCkKICAgewogICBpZiAoJGRpc3Bvc2l0aW9uRmllbGQtPkdldE9wdGlvbignY3J5cHRfbGliJykgPT0gJ29wZW5zc2wnKQogICAgICB7CgkgICAkb3BlbnNzbCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnT3BlblNTTCcpOwoJICAgaWYgKCRvcGVuc3NsID09PSBGQUxTRSkKCQkgICAgewoJCSAgICByZXR1cm4gYXJyYXkoZmFsc2UsJHRoaXMtPkxhbmcoJ3RpdGxlX2luc3RhbGxfb3BlbnNzbCcpKTsKCQkgICAgfQoJICAgJG9wZW5zc2wtPlJlc2V0KCk7CgkgICBpZiAoISAkb3BlbnNzbC0+bG9hZF9jZXJ0aWZpY2F0ZSgkZGlzcG9zaXRpb25GaWVsZC0+R2V0T3B0aW9uKCdjcnlwdF9jZXJ0JykpKQoJCSAgIHsKCQkgICByZXR1cm4gYXJyYXkoZmFsc2UsJG9wZW5zc2wtPm9wZW5zc2xfZXJyb3JzKCkpOwoJCSAgIH0KCSAgICRlbmMgPSAkb3BlbnNzbC0+ZW5jcnlwdF90b19wYXlsb2FkKCRzdHJpbmcpOwoJICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICRrZiA9ICRkaXNwb3NpdGlvbkZpZWxkLT5HZXRPcHRpb24oJ2tleWZpbGUnKTsKICAgICAgaWYgKGZpbGVfZXhpc3RzKCRrZikpCiAgICAgICAgIHsKICAgICAgICAgJGtleSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRrZik7CiAgICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICRrZXkgPSAka2Y7CiAgICAgICAgIH0KICAgICAgJGVuYyA9ICR0aGlzLT5mYmVuY3J5cHQoJHN0cmluZywka2V5KTsKICAgICAgfQogICAgcmV0dXJuIGFycmF5KHRydWUsJGVuYyk7CiAgIH0KCgogIGZ1bmN0aW9uIGdldEhhc2hlZFNvcnRGaWVsZFZhbCgkdmFsKQoJewoJaWYgKHN0cmxlbigkdmFsKSA+IDQpCgkJewoJCSR2YWwgPSBzdWJzdHIoJHZhbCwwLDQpLiBtZDUoc3Vic3RyKCR2YWwsNCkpOwoJCX0KCXJldHVybiAkdmFsOwoJfQogICAKCWZ1bmN0aW9uIEdldEFjdGl2ZVRhYigmJHBhcmFtcykKCQl7CgkJaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCgkJCXsKCQkgICAgcmV0dXJuICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKCQkgIAl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAnbWFpbnRhYic7CgkJCX0KCX0KICAKICAgZnVuY3Rpb24gZmJlbmNyeXB0KCRzdHJpbmcsJGtleSkKICAgICAgewogICAgICAka2V5ID0gc3Vic3RyKG1kNSgka2V5KSwwLDI0KTsKICAgICAgJHRkID0gbWNyeXB0X21vZHVsZV9vcGVuICgndHJpcGxlZGVzJywgJycsICdlY2InLCAnJyk7CiAgICAgICRpdiA9IG1jcnlwdF9jcmVhdGVfaXYgKG1jcnlwdF9lbmNfZ2V0X2l2X3NpemUgKCR0ZCksIE1DUllQVF9SQU5EKTsKICAgICAgbWNyeXB0X2dlbmVyaWNfaW5pdCAoJHRkLCAka2V5LCAkaXYpOwogICAgICAkZW5jID0gYmFzZTY0X2VuY29kZShtY3J5cHRfZ2VuZXJpYyAoJHRkLCAkc3RyaW5nKSk7CiAgICAgIG1jcnlwdF9nZW5lcmljX2RlaW5pdCAoJHRkKTsKICAgICAgbWNyeXB0X21vZHVsZV9jbG9zZSAoJHRkKTsKICAgICAgcmV0dXJuICRlbmM7CiAgICAgIH0KCiAgIGZ1bmN0aW9uIGZiZGVjcnlwdCgkY3J5cHQsJGtleSkKICAgICAgewogICAgICAkY3J5cHQgPSBiYXNlNjRfZGVjb2RlKCRjcnlwdCk7CiAgICAgICR0ZCA9IG1jcnlwdF9tb2R1bGVfb3BlbiAoJ3RyaXBsZWRlcycsICcnLCAnZWNiJywgJycpOwogICAgICAka2V5ID0gc3Vic3RyKG1kNSgka2V5KSwwLDI0KTsKICAgICAgJGl2ID0gbWNyeXB0X2NyZWF0ZV9pdiAobWNyeXB0X2VuY19nZXRfaXZfc2l6ZSAoJHRkKSwgTUNSWVBUX1JBTkQpOwogICAgICBtY3J5cHRfZ2VuZXJpY19pbml0ICgkdGQsICRrZXksICRpdik7CiAgICAgICRwbGFpbiA9IG1kZWNyeXB0X2dlbmVyaWMgKCR0ZCwgJGNyeXB0KTsKICAgICAgbWNyeXB0X2dlbmVyaWNfZGVpbml0ICgkdGQpOwogICAgICBtY3J5cHRfbW9kdWxlX2Nsb3NlICgkdGQpOwogICAgICByZXR1cm4gJHBsYWluOwogICAgICB9CgogIGZ1bmN0aW9uIGZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJHNpemU9JzEwJywgJG1heGxlbmd0aD0nMjU1JywgJGFkZHR0ZXh0PScnLCAkdHlwZT0ndGV4dCcpCgl7CiAgCSR2YWx1ZSA9IGNtc19odG1sZW50aXRpZXMoJHZhbHVlKTsKICAJJGlkID0gY21zX2h0bWxlbnRpdGllcygkaWQpOwogIAkkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoJG5hbWUpOwogIAkkc2l6ZSA9IGNtc19odG1sZW50aXRpZXMoJHNpemUpOwogIAkkbWF4bGVuZ3RoID0gY21zX2h0bWxlbnRpdGllcygkbWF4bGVuZ3RoKTsKCiAgCSR2YWx1ZSA9IHN0cl9yZXBsYWNlKCciJywgJyZxdW90OycsICR2YWx1ZSk7CgogIAkkdGV4dCA9ICc8aW5wdXQgdHlwZT0iJy4kdHlwZS4nIiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgc2l6ZT0iJy4kc2l6ZS4nIiBtYXhsZW5ndGg9IicuJG1heGxlbmd0aC4nIic7CiAgCWlmICgkYWRkdHRleHQgIT0gJycpCiAgICAJewogICAgICAJJHRleHQgLj0gJyAnIC4gJGFkZHR0ZXh0OwogICAgCX0KICAJJHRleHQgLj0gIiAvPlxuIjsKICAJcmV0dXJuICR0ZXh0OwoJfQoKCWZ1bmN0aW9uIGZiQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkYWRkdHRleHQ9JycsICRpbWFnZT0nJywgJGNvbmZpcm10ZXh0PScnKQoJewoJCSRpZCA9IGNtc19odG1sZW50aXRpZXMoJGlkKTsKCQkkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoJG5hbWUpOwoJCSRpbWFnZSA9IGNtc19odG1sZW50aXRpZXMoJGltYWdlKTsKCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJJHRleHQgPSAnPGlucHV0IG5hbWU9IicuJGlkLiRuYW1lLiciIHZhbHVlPSInLiR2YWx1ZS4nIiB0eXBlPSc7CgkJaWYgKCRpbWFnZSAhPSAnJykKCQl7CgkJCSR0ZXh0IC49ICciaW1hZ2UiJzsKCQkJJGltZyA9ICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnLycgLiAkaW1hZ2U7CgkJCSR0ZXh0IC49ICcgc3JjPSInLiRpbWcuJyInOwoJCX0KCQllbHNlCgkJewoJCQkkdGV4dCAuPSAnInN1Ym1pdCInOwoJCX0KCQlpZiAoJGNvbmZpcm10ZXh0ICE9ICcnICkKCQkgIHsKCQkJJHRleHQgLj0gJyBvbmNsaWNrPSJyZXR1cm4gY29uZmlybShcJycuJGNvbmZpcm10ZXh0LidcJyk7Iic7CgkJICB9CgkJaWYgKCRhZGR0dGV4dCAhPSAnJykKCQl7CgkJCSR0ZXh0IC49ICcgJy4kYWRkdHRleHQ7CgkJfQoJCSR0ZXh0IC49ICcgLz4nOwoJCXJldHVybiAkdGV4dCAuICJcbiI7Cgl9CgoKICBmdW5jdGlvbiBEZWxldGVGcm9tU2VhcmNoSW5kZXgoJiRwYXJhbXMpCgl7CgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCQoJCS8vIGZpbmQgYnJvd3NlcnMga2V5ZWQgdG8gdGhpcwoJCSRicm93c2VycyA9ICRhZWZvcm0tPkdldEZvcm1Ccm93c2Vyc0ZvckZvcm0oKTsKCQlpZiAoY291bnQoJGJyb3dzZXJzKSA8IDEpCgkJCXsKCQkJcmV0dXJuOwoJCQl9CgoJCSRtb2R1bGUgPSYgJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKCSAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkKCSAgICAgIHsKCQkJZm9yZWFjaCAoJGJyb3dzZXJzIGFzICR0aGlzQnJvd3NlcikKCQkJCXsKCQkJCSRtb2R1bGUtPkRlbGV0ZVdvcmRzKCAnRm9ybUJyb3dzZXInLCAkcGFyYW1zWydyZXNwb25zZV9pZCddLCAnc3ViXycuJHRoaXNCcm93c2VyKTsJCgkJCQl9CgkgICAgICB9Cgl9CgogIGZ1bmN0aW9uIFJlZ2lzdGVyVGlueU1DRVBsdWdpbigpIHsKICAgIAogICAgJGNvbmZpZz0kdGhpcy0+R2V0Q29uZmlnKCk7CiAgICAkcGx1Z2luID0gIgoJdGlueW1jZS5jcmVhdGUoJ3RpbnltY2UucGx1Z2lucy5mb3JtcGlja2VyJywgewogICAgICAgIGNyZWF0ZUNvbnRyb2w6IGZ1bmN0aW9uKG4sIGNtKSB7CiAgICAgICAgICAgIHN3aXRjaCAobikgewogICAgICAgICAgICAgICAgIGNhc2UgJ2Zvcm1waWNrZXInOgogICAgICAgICAgICAgICAgICAgIHZhciBjID0gY20uY3JlYXRlTWVudUJ1dHRvbignZm9ybXBpY2tlcicsIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgOiAnIiAuICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKSAuICInLAogICAgICAgICAgICAgICAgICAgICAgICBpbWFnZSA6ICciIC4gJGNvbmZpZ1sicm9vdF91cmwiXSAuICIvbW9kdWxlcy9Gb3JtQnVpbGRlci9pbWFnZXMvaW5mby1zbWFsbC5naWYnLAogICAgICAgICAgICAgICAgICAgICAgICBpY29ucyA6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgYy5vblJlbmRlck1lbnUuYWRkKGZ1bmN0aW9uKGMsIG0pIHsKICAgICAgICAgICAgICAgICI7CiAgICAkZm9ybXMgPSAkdGhpcy0+R2V0Rm9ybXMoKTsKICAgIAogICAgZm9yZWFjaCAoJGZvcm1zIGFzICRmb3JtKSB7ICAgICAKICAgICAgICAkcGx1Z2luIC49ICIKICAgICAgICAgICAgbS5hZGQoewogICAgICAgICAgICAgICAgdGl0bGUgOiAnIiAuICRmb3JtWyduYW1lJ10gLiAiJywKICAgICAgICAgICAgICAgIG9uY2xpY2sgOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgdGlueU1DRS5hY3RpdmVFZGl0b3IuZXhlY0NvbW1hbmQoJ21jZUluc2VydENvbnRlbnQnLCBmYWxzZSwgJyYjMTIzO0Zvcm1CdWlsZGVyIGZvcm09XCIiLiRmb3JtWyJhbGlhcyJdLiJcIiYjMTI1OycpOwogICAgICAgICAgICAgICAgfQogICAgICB9KTsKICAgICAgIjsKICAgIH0KCgoKICAgICRwbHVnaW4gLj0gIgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSBuZXcgbWVudSBidXR0b24gaW5zdGFuY2UKICAgICAgICAgICAgICByZXR1cm4gYzsKICAgICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgfQp9KTsKIjsKIHJldHVybiBhcnJheShhcnJheSgnZm9ybXBpY2tlcicsICRwbHVnaW4sICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKSkpOwogIH0KCgp9IC8vIEVuZCBvZiBDbGFzcwoKIwojIEVPRgojCj8+]]></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>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/info-large.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOZoAHm4/367/326/3q4/3W2/3e3/3u5/3O1/////ozB/Hy6/67U/Xi3/+bx/n+6/Hy5/3a3/3a2/+Hv/vT5/oS+/1ak/W6y/qvR/e31/2Cq/mSr/Fil/H66/2Cp/GSs/GWt/nKz/IrA/Guv/JDE//j7/4C6/Pr8/3O1/t7t/lal/Wqv/pHE/Guw/mSs/lel/GSt/t/u/l6p/FWk/Fyn/Ie+/Nnr/vf7/2Gr/ff6/2yx/lWk/Xi4/1im/b7c/ZDD/OXx/qbP/WGq/bnZ/VGi/KPN/Wiu/n65/IG7/KXP/4jA/3K0/+v0/nW1/5zL/3S1/4zC//L4/rva/myx/6vS/tbp/rzb/4G8//r8/vz+/qnR/5/M/9vs/rXX/+71/oa//3S2/9Pn/pLF/+jy/orB/63U/5rJ/3K1/3q5/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGgALAAAAAAUABQAAAf/gGiCgxhCKyVGIRcwg42NPSIyNyosLxUdRDaOgjhHOhEBAgpnCgEDQR4ojiYgRQEGAAAEAhAAAwEnGxKNPi0BsbJcS1FMsQIHGiSCNUO/sQwFYghUTsABGUBoDTQWD8AABWFTXgXAAwMxDQszsN8HEBTl3wEpCwkuHN8FTRITFLXABHxI4ICHM1kjfmCZYEVerAc5HBQ8uMMAhQk/GDD4BtHBvXzACIxBAEZKhG8CE6xrF+tAGQRVsmj5Yq3etm7AlJBBAKXLCAKxzqVDw+ygGSRXtiQ5YA3boF4HDTyRFRCZMkGsXMHaQWCjLVy6HHX6FEqBAgGmUKnahAaSJEqWDDBpYiuo0KFEizYFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/info-small.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDAAMAOZNAHm4/3W2/3y6/367/3e3/326/3u5/3+7/3i4/4a+/XO1/4S9/fP5/3+6/Hq4/3a2/+/3/u31/5vJ/Y/D/WKq/bLW/7XX/XK0/2at/GWt/t7u/mSs/Mbg/s/m/tXo/pHE/cni/qHM/YjA/5TG/Wyx/pDD/abP/W2x/mKr/YnA/9rr/oS+/6fQ/97t/m2x/4e//3G0/43C/2+y/na3/8vj/szk/o/D/325/JrJ/efy/m2y/4e+/Yi//c7l/nS1/4m//dnr/sLe/rbY/WKs/bnZ/cji/+Lw/qvS/YC7/5LF//j7/2au/nCz/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAE0ALAAAAAAMAAwAAAeAgE2CDEILNyFGgopBGwEIPgQoOIo0GQcIKRVIBQElTQwYBwAKLBAvBAVLHhYyBgAEAjYPAAACIzsBDgQrGkAXtAMJCw8OAAFFNTrACUdMrjAdPUkBtRMRFKIKKjkxMwIuIE1EJAMIIgMBBQANiiZDBgYFAicNSopNLRI/PB8cioEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/stop.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOZ/AI0AAJQAAf36+tsCFP729/79/deRlPujq8tydO1zfd2Xm+QFGvzBx65NTaMAAe4OJdoAC/bp6ecPI/V6hv4qQPHg4eQAFP4sQv7q7KkAA9oABsmKivo4Tfe4va4DDPkiOdurrPESKf4nPf8oP+EADfvx8vrl570ABbEAA//M0Z0nJ5kAAf3u78QABcgADP0kO/OXn6tHR54eH/YgNp4AAfUYL+/c3ORVYdaKjv3i5bweKPyqs/cnPf1NYPomPcImMK4/P9UAA/Lc3f10guMcLumQlv/u8LZBRbVPULtSVfbCxvjf4fLJzP3m6NWXmMNGTs9IUeG5utpJV/rIzfxse9+2tu4RJ/ZSY/5QYv1fb8VvcdRucv7p68FSVu6bofRib74FEukJIPUbMv8jOuAsPejLy70lL7YACOTBweUyQ+8bMP7k5+9DU8AeKd4YKtY9SOvV1e/S0+zX1/GTmvSXn+9hcOptdcA2PPbs7PabpPyWof5xgP53hf/+/v///////yH5BAEAAH8ALAAAAAAUABQAAAf/gH+Cgn5rO3tYPVQHOX6Dj4IYfBQiFJQfNSFfTZCCKRcjFC8UHBwzIVZhCx2QKWMXF1kMXAQEGAxsFgskrIJGoRcvep0FdCQWECZ/fkMfPh88NQeOkDAaLlJ+GGIzVxMhamF51IN9by4tSzsPD1N+EwsSFjDkgkwnJ0V1YRIsf30JSCyAMKdeCTAnoKRZQISAIIAaBmgoOEhAmzM/yAxw4/ChnSAuUCigJkAHCjM3IAzwV26LAw8ZRv4pAfOJFw0alEDqg8BBBgcK/sRx4ACHiRYn7vTZiYCGAxoGujwV4ifJihVOOvFcQYPriiNLIwRYEcBJAUh+tFwlW2FQFAABMQIAQYNHgIAIZZDEBQACUhUAgOHKkBEgMN96gio0MGw4ho1O5eRsiKFCRYwNcM4+CgQAOw==]]></data>
	</file>
	<file>
	  <filename>/images/xml_rss.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhJAAOAOYAAP/////9+f/9+v/68f/58P/45P/24//z3v7x2/7v2v7pvP7os/7muf7nqP7ktf7lr/7jo/7iq/7jmf7frv7gnv7cq/7fiv7cmf7YlP3be/3eZP3bYP3Vm/3aX/7Uj/3VfP3WWv3Qiv3Rgv3VWf3UWP3SXPzQY/3Mhf3PUPzLU/zKW/3FafzHRvzDU/zESv3DXfzAYvzAPPy8S/68N/64Mvy2Qvy4M/6xKfywOvywKfypMfuoJvypH/yjKfukHPuhFfucE/uaE/uZC/+WBf+VBPuVCf2TAvuRAPuSAf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAAkAA4AAAf/gDdEREOFhoeIiYqHgjMbGpCRkpOUlZAdNIMkIJydnp+goZ+DKKWlDQWlGQUlpQUSphasKLKmtqWDLLq6KQALLAIGuwAAuwICJiwQxbvNLIMx0dIPAAoALtLEHzEqxCoxFADS49GDNufoNsQR6QABAzYMxC02FwDp+IM5+/w5BwAi+gHAAOAFAAcAZOQg2K/hIB4QI64AQABARB4AalQMUCMjDw8WL14c9KOkSQAIfACYcBIHDAAhcADA8SPETBw4dpgsOUiIT58VAAARwgGADp9GhQAQoiPpCWLEEvz0OQiJVas9glztUQSr1a5IenztQTbrVauDiBxZy7at27dwDd0SMZK2rt27ePPODQQAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGFibGUubW9kdWxlX2ZiX3RhYmxlIHtmb250LXNpemU6IDEwcHg7IHdpZHRoOjEwMCU7IG1hcmdpbjogMDt9Ci5tb2R1bGVfZmJfYXJlYV93aWRlIHt3aWR0aDogMTAwJTt9Ci5tb2R1bGVfZmJfbGVnZW5ke2ZvbnQtc2l6ZTogOXB4OyBtYXJnaW46IDZweCAwOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazt9Ci5tb2R1bGVfZmJfYXJlYV9zaG9ydCB7d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4O30KLm1vZHVsZV9mYl9saW5rIHt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9Ci5tb2R1bGVfZmJfZmllbGRzZXQge21hcmdpbi1ib3R0b206MmVtO30KLm1vZHVsZV9mYnJfdGFibGUgdHIucm93MTpob3ZlciwgLm1vZHVsZV9mYnJfdGFibGUgdHIucm93Mjpob3ZlcntiYWNrZ3JvdW5kOiAjQ0NEQkREO30KLm9kZCB7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fQouZXZlbiB7YmFja2dyb3VuZC1jb2xvcjogI2RkZDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fQouaW5wdXRoZWxwICB7IGNvbG9yOiAjMzg0NjU0OyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7IHdpZHRoOiBhdXRvOyB0ZXh0LWFsaWduOmxlZnQ7IH0=]]></data>
	</file>
	<file>
	  <filename>/includes/Advanced_Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjEiCglhbGlhcz0iYWR2YW5jZWRfY29udGFjdCI+CgkJPGZvcm1fbmFtZT48IVtDREFUQVtBZHZhbmNlZCBDb250YWN0IEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJldl9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQmFjay4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTdWJtaXQgRm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InByZWRpc3BsYXlfZWFjaF91ZHQiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InZhbGlkYXRlX3VkdCI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X3Jlc3BvbnNlIj48IVtDREFUQVs8cD5UaGFuayB5b3UsIDxzdHJvbmc+eyR5b3VyX25hbWV9PC9zdHJvbmc+LjwvcD4NCjxwPllvdXIgc3VibWlzc2lvbiBoYXMgYmVlbiBzdWNjZXNzZnVsLiBZb3UgbWF5IHdpc2ggdG8gcHJpbnQgdGhpcyBwYWdlIGFzIGEgcmVmZXJlbmNlLjwvcD4NCjxoMz5Db250YWN0IERldGFpbHM8L2gzPg0KPHA+DQo8c3Ryb25nPk5hbWU8L3N0cm9uZz46IHskeW91cl9uYW1lfTxiciAvPg0KPHN0cm9uZz5FbWFpbDwvc3Ryb25nPjogPGEgaHJlZj0ibWFpbHRvOnskeW91cl9lbWFpbF9hZGRyZXNzfSI+eyR5b3VyX2VtYWlsX2FkZHJlc3N9PC9hPjxiciAvPg0KPC9wPg0KPGgzPkZlZWRiYWNrIERldGFpbHM8L2gzPg0KPHA+DQo8c3Ryb25nPlN1YmplY3Q8L3N0cm9uZz46IHskc3ViamVjdH08YnIgLz4NCjxzdHJvbmc+Q29tbWVudHM8L3N0cm9uZz46PGJyIC8+DQp7JG1lc3NhZ2V9DQo8L3A+IA0KPGg0Pk90aGVyIGluZm9ybWF0aW9uPC9oND4NCjxwPg0KPHN0cm9uZz5EYXRlIG9mIFN1Ym1pc3Npb248L3N0cm9uZz46IHskc3ViX2RhdGV9PGJyIC8+DQo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPg0KPHN0cm9uZz5VUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm08L3N0cm9uZz46IHskc3ViX3VybH08YnIgLz4NCjxzdHJvbmc+RG9tYWluPC9zdHJvbmc+OiB7JHN1Yl9ob3N0fTxiciAvPg0KPHN0cm9uZz5Zb3VyIElQIGFkZHJlc3M8L3N0cm9uZz46IHskc3ViX3NvdXJjZV9pcH0NCjwvcD4gXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InByZWRpc3BsYXlfdWR0Ij48IVtDREFUQVstMV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJmb3JtX3RlbXBsYXRlIj48IVtDREFUQVt7KiBERUZBVUxUIEZPUk0gTEFZT1VUIC8gcHVyZSBDU1MgKn0NCnskZmJfZm9ybV9oZWFkZXJ9DQp7aWYgJGZiX2Zvcm1fZG9uZSA9PSAxfQ0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQ0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4NCgkJe2lmIGlzc2V0KCRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzKSAmJiAkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9yc30NCgkJCTxkaXYgY2xhc3M9ImVycm9yIj4NCgkJCTx1bD4NCgkJCXtmb3JlYWNoIGZyb209JGZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCBpdGVtPXRoaXNFcnJ9DQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPg0KCQkJey9mb3JlYWNofQ0KCQkJPC91bD4NCgkJPC9kaXY+DQoJCXsvaWZ9DQoJey9pZn0NCntlbHNlfQ0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQ0KCXsqIHdlIHN0YXJ0IHdpdGggdmFsaWRhdGlvbiBlcnJvcnMgKn0NCgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPg0KCQk8dWw+DQoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQ0KCQkJPGxpPnskdGhpc0Vycn08L2xpPg0KCQl7L2ZvcmVhY2h9DQoJCTwvdWw+DQoJCTwvZGl2Pg0KCXsvaWZ9DQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0NCgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2Pg0KCXsvaWZ9DQoNCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQ0KCXskZmJfZm9ybV9zdGFydH0NCgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2Pg0KCTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4NCgl7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0NCgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0NCgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQ0KICAgICAgICAJe3N0cmlwfQ0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQ0KICAgICAgICAgICAgCTxkaXYNCiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnIHx8ICRlbnRyeS0+dmFsaWQgPT0gMH0gY2xhc3M9Ig0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQ0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30geyRlbnRyeS0+Y3NzX2NsYXNzfXsvaWZ9DQogICAgICAgICAgICAgICAgICAgIHtpZiAkZW50cnktPnZhbGlkID09IDB9IGZiX2ludmFsaWR7L2lmfQ0KICAgICAgICAgICAgICAJCSINCiAgICAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgICAgCT4NCiAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQ0KICAgICAgICAgICAgCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9DQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQ0KICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9DQogICAgICAgICAgICAJey9pZn0NCiAgICAgICAgICAgIAk8L2xhYmVsPg0KICAgICAgICAgCXsvaWZ9DQogICAgICAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0NCiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQ0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQ0KICAgICAgICAgICAgICAgCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+DQogICAgICAgICAgICAgICAJCXtlbHNlfQ0KICAgICAgICAgICAgICAgCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQ0KICAgICAgICAgICAgICAgCQl7L2lmfQ0KICAgICAgICAgICAgICAgCQl7aWYgaXNzZXQoJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3ApICYmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQ0KICAgICAgICAgICAgCXsvc2VjdGlvbn0NCiAgICAgICAgIAl7ZWxzZX0NCiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0NCiAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0NCiAgICAgICAgICAgIAk8L2Rpdj4NCiAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgCXsvc3RyaXB9DQogICAgIAl7L2lmfQ0KCXsvZm9yZWFjaH0NCgl7aWYgaXNzZXQoJGhhc19jYXB0Y2hhKSAmJiAkaGFzX2NhcHRjaGEgPT0gMX0NCgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPntpZiAhZW1wdHkoJGlucHV0X2NhcHRjaGEpfXskaW5wdXRfY2FwdGNoYX17L2lmfTwvZGl2Pg0KCXsvaWZ9DQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+DQoJPC9kaXY+DQoJeyRmYl9mb3JtX2VuZH0NCnsvaWZ9DQp7JGZiX2Zvcm1fZm9vdGVyfV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZWRpcmVjdF9wYWdlIj48IVtDREFUQVstMV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYWN0aW9uIj48IVtDREFUQVt0ZXh0XV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbYWR2YW5jZWRjb250YWN0Zm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJsaXN0X2RlbGltaXRlciI+PCFbQ0RBVEFbLF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbmxpbmUiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2phdmFzY3JpcHQiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJuZXh0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtDb250aW51ZS4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ0aXRsZV91c2VyX2NhcHRjaGEiPjwhW0NEQVRBW1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNhcHRjaGFfd3JvbmciPjwhW0NEQVRBW0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Ll1dPjwvYXR0cmlidXRlPgoJPGZpZWxkIGlkPSIxIgoJCXR5cGU9IkZpZWxkc2V0U3RhcnQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjEiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0Fib3V0IFlvdSBGaWVsZHNldF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibGVnZW5kIj48IVtDREFUQVtBYm91dCBZb3VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjIiCgkJdHlwZT0iRnJvbUVtYWlsTmFtZUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbWW91ciBOYW1lXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVt1c2Vyc19uYW1lXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iaGVscHRleHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImphdmFzY3JpcHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIzIgoJCXR5cGU9IkRpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0ibm9uZSIKCQlvcmRlcl9ieT0iMyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbRW1haWwgZnJvbSBTaXRlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZW5kX3VzZXJfY29weSI+PCFbQ0RBVEFbY11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbmRfdXNlcl9sYWJlbCI+PCFbQ0RBVEFbU2VuZCBtZSBhIGNvcHkgb2YgZm9ybV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbRm9ybUJ1aWxkZXIgU3VibWlzc2lvbgpGb3JtIE5hbWU6IHskc3ViX2Zvcm1fbmFtZX0KRGF0ZSBvZiBTdWJtaXNzaW9uOiB7JHN1Yl9kYXRlfQpZb3VyIHNlcnZlcjogeyRzdWJfaG9zdH0KSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybTogeyRzdWJfc291cmNlX2lwfQpVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm06IHskc3ViX3VybH0KRm9ybUJ1aWxkZXIgdmVyc2lvbjogeyRmYl92ZXJzaW9ufQpUYWIgQ2hhcmFjdGVyOiB7JFRBQn0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWW91ciBOYW1lOiB7JGZsZF80fQpZb3VyIEVtYWlsIEFkZHJlc3M6IHskZmxkXzQzfQpFbWFpbCBBZ2FpbjogeyRmbGRfNDJ9ClN1YmplY3Q6IHskZmxkXzEwfQpNZXNzYWdlOiB7JGZvb30KXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZW5jb2RpbmciPjwhW0NEQVRBW3V0Zi04XV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjQiCgkJdHlwZT0iRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjQiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtFbWFpbCBBZ2Fpbl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfdG9fdmFsaWRhdGUiPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI1IgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI1IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtBYm91dCBZb3UgRmllbGRzZXQgRW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjYiCgkJdHlwZT0iUGFnZUJyZWFrRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjYiCgkJcmVxdWlyZWQ9IiIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW2JyZWFrZXJdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNyIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI3IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtDb250YWN0IEZpZWxkc2V0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0NvbnRhY3RdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjgiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI4IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtHcmVldGluZ11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0idGV4dCI+PCFbQ0RBVEFbSGVsbG8sIHskdXNlcnNfbmFtZS0+dmFsdWV9ITxiciAvPiBXaGF0IGlzIGl0IHlvdSdkIGxpa2UgdG8gdGFsayB0byB1cyBhYm91dD9dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0ic21hcnR5X2V2YWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iOSIKCQl0eXBlPSJGcm9tRW1haWxTdWJqZWN0RmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjkiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtTdWJqZWN0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMCIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxMCIKCQlyZXF1aXJlZD0iMSIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW01lc3NhZ2VdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjb2xzIj48IVtDREFUQVs2MF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW21lc3NhZ2VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtFbnRlciBZb3VyIE1lc3NhZ2UgSGVyZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNsZWFyX2RlZmF1bHQiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTEiCgkJdHlwZT0iRGlzcG9zaXRpb25FbWFpbCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMTEiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1NlbmQgVG9dXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0NvbnRhY3QgRm9ybSBTdWJtaXNzaW9uXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX2FkZHJlc3MiPjwhW0NEQVRBW3dlYnNpdGVAeW91cmRvbWFpbi5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVt5b3VAeW91cmRvbWFpbi5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iaHRtbF9lbWFpbCI+PCFbQ0RBVEFbMV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3RlbXBsYXRlIj48IVtDREFUQVs8aDE+Rm9ybUJ1aWxkZXIgU3VibWlzc2lvbjwvaDE+DQo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPg0KPHN0cm9uZz5EYXRlIG9mIFN1Ym1pc3Npb248L3N0cm9uZz46IHskc3ViX2RhdGV9PGJyIC8+DQo8c3Ryb25nPllvdXIgc2VydmVyPC9zdHJvbmc+OiB7JHN1Yl9ob3N0fTxiciAvPg0KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+DQo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPg0KPHN0cm9uZz5Gb3JtQnVpbGRlciB2ZXJzaW9uPC9zdHJvbmc+OiB7JGZiX3ZlcnNpb259PGJyIC8+DQo8c3Ryb25nPlRhYiBDaGFyYWN0ZXI8L3N0cm9uZz46IHskVEFCfTxiciAvPg0KDQo8aHIgLz4NCntpZiAkZmxkXzIgIT0gIiIgJiYgJGZsZF8yICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5Zb3VyIE5hbWU8L3N0cm9uZz46IHskZmxkXzJ9PGJyIC8+ey9pZn0NCntpZiAkZmxkXzMgIT0gIiIgJiYgJGZsZF8zICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5Zb3VyIEVtYWlsIEFkZHJlc3M8L3N0cm9uZz46IHskZmxkXzN9PGJyIC8+ey9pZn0NCntpZiAkZmxkXzQgIT0gIiIgJiYgJGZsZF80ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5FbWFpbCBBZ2Fpbjwvc3Ryb25nPjogeyRmbGRfNH08YnIgLz57L2lmfQ0Ke2lmICRmbGRfOSAhPSAiIiAmJiAkZmxkXzkgIT0gIlt1bnNwZWNpZmllZF0iIH08c3Ryb25nPlN1YmplY3Q8L3N0cm9uZz46IHskZmxkXzl9PGJyIC8+ey9pZn0NCntpZiAkbWVzc2FnZSAhPSAiIiAmJiAkbWVzc2FnZSAhPSAiW3Vuc3BlY2lmaWVkXSIgfTxzdHJvbmc+TWVzc2FnZTwvc3Ryb25nPjogeyRtZXNzYWdlfTxiciAvPnsvaWZ9DQp7aWYgJGZsZF8xMSAhPSAiIiAmJiAkZmxkXzExICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5TZW5kIFRvPC9zdHJvbmc+OiB7JGZsZF8xMX08YnIgLz57L2lmfQ0KXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZW5jb2RpbmciPjwhW0NEQVRBW3V0Zi04XV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEyIgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxMiIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQ29udGFjdCBGaWVsZHNldCBFbmRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImhlbHB0ZXh0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KPC9mb3JtPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjIiCglhbGlhcz0iY29udGFjdCI+CgkJPGZvcm1fbmFtZT48IVtDREFUQVtDb250YWN0IEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjc3NfY2xhc3MiPjwhW0NEQVRBW2NvbnRhY3Rmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVssXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlubGluZSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Im5leHRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0NvbnRpbnVlLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iY2FwdGNoYV93cm9uZyI+PCFbQ0RBVEFbQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InByZXZfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0JhY2suLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icmVxdWlyZWRfZmllbGRfc3ltYm9sIj48IVtDREFUQVsqXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVuc3BlY2lmaWVkIj48IVtDREFUQVtbdW5zcGVjaWZpZWRdXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9idXR0b25fdGV4dCI+PCFbQ0RBVEFbU3VibWl0IEZvcm1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iaW5wdXRfYnV0dG9uX3NhZmV0eSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZWRpcmVjdF9wYWdlIj48IVtDREFUQVstMV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxwPlRoYW5rIHlvdSwgPHN0cm9uZz57JHlvdXJfbmFtZX08L3N0cm9uZz4uPC9wPg0KPHA+WW91ciBzdWJtaXNzaW9uIGhhcyBiZWVuIHN1Y2Nlc3NmdWwuIFlvdSBtYXkgd2lzaCB0byBwcmludCB0aGlzIHBhZ2UgYXMgYSByZWZlcmVuY2UuPC9wPg0KPGgzPkNvbnRhY3QgRGV0YWlsczwvaDM+DQo8cD4NCjxzdHJvbmc+TmFtZTwvc3Ryb25nPjogeyR5b3VyX25hbWV9PGJyIC8+DQo8c3Ryb25nPkVtYWlsPC9zdHJvbmc+OiA8YSBocmVmPSJtYWlsdG86eyR5b3VyX2VtYWlsX2FkZHJlc3N9Ij57JHlvdXJfZW1haWxfYWRkcmVzc308L2E+PGJyIC8+DQo8L3A+DQo8aDM+RmVlZGJhY2sgRGV0YWlsczwvaDM+DQo8cD4NCjxzdHJvbmc+U3ViamVjdDwvc3Ryb25nPjogeyRzdWJqZWN0fTxiciAvPg0KPHN0cm9uZz5Db21tZW50czwvc3Ryb25nPjo8YnIgLz4NCnskbWVzc2FnZX0NCjwvcD4gDQo8aDQ+T3RoZXIgaW5mb3JtYXRpb248L2g0Pg0KPHA+DQo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4NCjxzdHJvbmc+Rm9ybSBOYW1lPC9zdHJvbmc+OiB7JHN1Yl9mb3JtX25hbWV9PGJyIC8+DQo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPg0KPHN0cm9uZz5Eb21haW48L3N0cm9uZz46IHskc3ViX2hvc3R9PGJyIC8+DQo8c3Ryb25nPllvdXIgSVAgYWRkcmVzczwvc3Ryb25nPjogeyRzdWJfc291cmNlX2lwfQ0KPC9wPiBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9DQp7JGZiX2Zvcm1faGVhZGVyfQ0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0NCgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0NCgl7aWYgaXNzZXQoJGZiX3N1Ym1pc3Npb25fZXJyb3IpICYmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+DQoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9DQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+DQoJCQk8dWw+DQoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQ0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4NCgkJCXsvZm9yZWFjaH0NCgkJCTwvdWw+DQoJCTwvZGl2Pg0KCQl7L2lmfQ0KCXsvaWZ9DQp7ZWxzZX0NCgl7KiB0aGlzIHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgdGhlIGZvcm0gKn0NCgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9DQoJe2lmIGlzc2V0KCRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycykgJiYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4NCgkJPHVsPg0KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0NCgkJCTxsaT57JHRoaXNFcnJ9PC9saT4NCgkJey9mb3JlYWNofQ0KCQk8L3VsPg0KCQk8L2Rpdj4NCgl7L2lmfQ0KCXtpZiBpc3NldCgkY2FwdGNoYV9lcnJvcikgJiYgJGNhcHRjaGFfZXJyb3J9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskY2FwdGNoYV9lcnJvcn08L2Rpdj4NCgl7L2lmfQ0KDQoJeyogYW5kIG5vdyB0aGUgZm9ybSBpdHNlbGYgKn0NCgl7JGZiX2Zvcm1fc3RhcnR9DQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4NCgk8ZGl2e2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+DQoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9DQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9DQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0NCiAgICAgICAgCXtzdHJpcH0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0NCiAgICAgICAgICAgIAk8ZGl2DQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJyB8fCAkZW50cnktPnZhbGlkID09IDB9IGNsYXNzPSINCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfXJlcXVpcmVkey9pZn0NCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHskZW50cnktPmNzc19jbGFzc317L2lmfQ0KICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSBmYl9pbnZhbGlkey9pZn0NCiAgICAgICAgICAgICAgCQkiDQogICAgICAgICAgICAJey9pZn0NCiAgICAgICAgICAgIAk+DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0NCiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQ0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30NCiAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQ0KICAgICAgICAgICAgCXsvaWZ9DQogICAgICAgICAgICAJPC9sYWJlbD4NCiAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9DQogICAgICAgICAgICAJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0NCiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+bGFiZWxfcGFydHMgPT0gMX0NCiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2Pg0KICAgICAgICAgICAgICAgCQl7ZWxzZX0NCiAgICAgICAgICAgICAgIAkJCXskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0NCiAgICAgICAgICAgICAgIAkJey9pZn0NCiAgICAgICAgICAgICAgIAkJe2lmIGlzc2V0KCRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wKSAmJiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0NCiAgICAgICAgICAgIAl7L3NlY3Rpb259DQogICAgICAgICAJe2Vsc2V9DQogICAgICAgICAgICAJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9DQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9DQogICAgICAgICAgICAJPC9kaXY+DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7L3N0cmlwfQ0KICAgICAJey9pZn0NCgl7L2ZvcmVhY2h9DQoJe2lmIGlzc2V0KCRoYXNfY2FwdGNoYSkgJiYgJGhhc19jYXB0Y2hhID09IDF9DQoJCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57aWYgIWVtcHR5KCRpbnB1dF9jYXB0Y2hhKX17JGlucHV0X2NhcHRjaGF9ey9pZn08L2Rpdj4NCgl7L2lmfQ0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2Pg0KCTwvZGl2Pg0KCXskZmJfZm9ybV9lbmR9DQp7L2lmfQ0KeyRmYl9mb3JtX2Zvb3Rlcn1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idmFsaWRhdGVfdWR0Ij48IVtDREFUQVstMV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJwcmVkaXNwbGF5X3VkdCI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJlZGlzcGxheV9lYWNoX3VkdCI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCTxmaWVsZCBpZD0iMTMiCgkJdHlwZT0iRmllbGRzZXRTdGFydCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQ29udGFjdCBGaWVsZHNldF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibGVnZW5kIj48IVtDREFUQVtDb250YWN0XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTQiCgkJdHlwZT0iRnJvbUVtYWlsTmFtZUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbWW91ciBOYW1lXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNSIKCQl0eXBlPSJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9Im5vbmUiCgkJb3JkZXJfYnk9IjMiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtZb3VyIEVtYWlsIEFkZHJlc3NdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0VtYWlsIGZyb20gU2l0ZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fbmFtZSI+PCFbQ0RBVEFbRm9ybSBCdWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0ic2VuZF91c2VyX2NvcHkiPjwhW0NEQVRBW2NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZW5kX3VzZXJfbGFiZWwiPjwhW0NEQVRBW1NlbmQgbWUgYSBjb3B5IG9mIGZvcm1dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iaHRtbF9lbWFpbCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24KRm9ybSBOYW1lOiB7JHN1Yl9mb3JtX25hbWV9CkRhdGUgb2YgU3VibWlzc2lvbjogeyRzdWJfZGF0ZX0KWW91ciBzZXJ2ZXI6IHskc3ViX2hvc3R9CklQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm06IHskc3ViX3NvdXJjZV9pcH0KVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtOiB7JHN1Yl91cmx9CkZvcm1CdWlsZGVyIHZlcnNpb246IHskZmJfdmVyc2lvbn0KVGFiIENoYXJhY3RlcjogeyRUQUJ9CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCllvdXIgTmFtZTogeyRmbGRfMTR9CllvdXIgRW1haWwgQWRkcmVzczogeyRmbGRfMTV9CkVtYWlsIEFnYWluOiB7JGZsZF8xNn0KU3ViamVjdDogeyRmbGRfMTd9Ck1lc3NhZ2U6IHskZm9vfQpdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTYiCgkJdHlwZT0iRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjQiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtFbWFpbCBBZ2Fpbl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfdG9fdmFsaWRhdGUiPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNyIKCQl0eXBlPSJGcm9tRW1haWxTdWJqZWN0RmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtTdWJqZWN0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxOCIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbTWVzc2FnZV1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0icm93cyI+PCFbQ0RBVEFbNV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNvbHMiPjwhW0NEQVRBWzYwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbbWVzc2FnZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImRlZmF1bHQiPjwhW0NEQVRBW0VudGVyIFlvdXIgTWVzc2FnZSBIZXJlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY2xlYXJfZGVmYXVsdCI+PCFbQ0RBVEFbMV1dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxOSIKCQl0eXBlPSJEaXNwb3NpdGlvbkVtYWlsIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI3IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtTZW5kIFRvXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9zdWJqZWN0Ij48IVtDREFUQVtDb250YWN0IEZvcm0gU3VibWlzc2lvbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fbmFtZSI+PCFbQ0RBVEFbRm9ybSBCdWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9hZGRyZXNzIj48IVtDREFUQVt3ZWJzaXRlQHlvdXJkb21haW4uY29tXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZGVzdGluYXRpb25fYWRkcmVzcyI+PCFbQ0RBVEFbeW91QHlvdXJkb21haW4uY29tXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZW5jb2RpbmciPjwhW0NEQVRBW3V0Zi04XV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjIwIgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI4IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtmaWVsZHNldCBlbmRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgo8L2Zvcm0+Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/default.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCmZvcm0gewoJbWFyZ2luLXRvcDogMAp9CmZvcm0sIHRkLCB0aCwgbGkgewoJZm9udC1zaXplOiAxMDAlCn0KZm9ybSBkaXYgewoJbWFyZ2luLWJvdHRvbTogMAp9CmZpZWxkc2V0IGRpdiB7CgltYXJnaW4tYm90dG9tOiAwLjVlbTsKCW1hcmdpbi1sZWZ0OiAxZW07Cn0KZmllbGRzZXQgZGl2IGRpdiB7CgltYXJnaW4tdG9wOiAwLjVlbTsKCW1hcmdpbi1sZWZ0OiAxZW0KfQpmaWVsZHNldCB7CgltYXJnaW4tYm90dG9tOiAxZW07Cglib3JkZXI6IDFweCBzb2xpZCAjRjYwOwoJcGFkZGluZzogMC41ZW0KfQpmaWVsZHNldCBsYWJlbCB7Cgl3aWR0aDogYXV0bzsKfQpsZWdlbmQgewoJY29sb3I6ICNGRkY7CgliYWNrZ3JvdW5kOiAjRjYwOwoJZm9udC1zdHlsZTogaXRhbGljOwoJZm9udC1zaXplOiAxLjJlbTsKCW1hcmdpbi1ib3R0b206IDAuNWVtOwoJcGFkZGluZzogMC4yZW07Cgl3aWR0aDogYXV0bzsKCWJvcmRlcjogMXB4IHNvbGlkICNDQ0MKfQp0ZXh0YXJlYSB7CgltYXJnaW46IDAuNWVtIDA7Cgl3aWR0aDogOTglOwoJaGVpZ2h0OiA2ZW0KfQovKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzdG8gaGVscCBhbGlnbm1lbnQgKi8KLnNob3J0LWxhYmVsIGxhYmVsIHsKCWZsb2F0OiBsZWZ0OwoJd2lkdGg6IDEwZW0KfQouc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LCAuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7Cgl3aWR0aDogMTZlbQp9Ci8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCi5jYXB0Y2hhIHsKCW1hcmdpbjogMC41ZW0gMDsKCXdpZHRoOiAyMDBweDsKCXRleHQtYWxpZ246IGNlbnRlcgp9Ci5jYXB0Y2hhIGltZyB7Cglib3JkZXI6IDFweCBzb2xpZCAjRjYwOwoJbWFyZ2luLWJvdHRvbTogMC41ZW0KfQouY2FwdGNoYSBpbnB1dCB7Cgl3aWR0aDogMTk2cHg7CgltYXJnaW4tdG9wOiAwLjVlbQp9Ci8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwouc3VibWl0IHsKCW1hcmdpbi10b3A6IDAuNWVtCn0KLmNvbnRhY3Rmb3JtIGlucHV0IHsKCWJvcmRlcjogMXB4IHNvbGlkICNmNjA7Cn0KLmNvbnRhY3Rmb3JtIGlucHV0LmNoZWNrYm94IHsKCWJvcmRlcjogbm9uZTsKfQouY29udGFjdGZvcm0gbGFiZWwgewoJZGlzcGxheTogYmxvY2s7CglmbG9hdDogbGVmdDsKCXdpZHRoOiAxNTBweDsKfQouY29udGFjdGZvcm0gbGFiZWwubGFiZWwgewoJZGlzcGxheTogaW5saW5lOwoJZmxvYXQ6IG5vbmU7Cgl3aWR0aDogNTBweDsKCWZvbnQtc2l6ZTogMTBweDsKfQouY29udGFjdGZvcm0gdGV4dGFyZWEgewoJYmFja2dyb3VuZC1jb2xvcjogI2ZmYzsKCWJvcmRlcjogMXB4IHNvbGlkICNmNjA7Cn0KLmZvcm1idWlsZGVyZm9ybSAubWVzc2FnZSB7CglsaW5lLWhlaWdodDogMTZweDsKCXBhZGRpbmc6IDAgMCA4cHggMDsKfQ==]]></data>
	</file>
	<file>
	  <filename>/includes/fb_cnf.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KKiBBZHZhbmNlZCBDb25maWcgRm9yIEZvcm1CdWlsZGVyIE1vZHVsZQ0KKi8NCi8qKg0KKiBUaGlzIGlzIGFuIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gZmlsZQ0KKiBEb24ndCBtZXNzIHdpdGggdGhpcyB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nDQoqIG9yIGV4cGxpY2l0bHkgdG9sZCB0byBkbyBzbyBieSBhIGRldmVsb3Blcg0KKi8NCg0KLyoqDQoqIFRoZXNlIHByZWZlcmVuY2VzIHdlcmUgcmVtb3ZlZCBmcm9tIHNldHRpbmdzIHNpbmNlIDAuOC4xDQoqIFNjaGVkdWxlZCBmb3IgcmVtb3ZhbCB1bmxlc3MgcHJvdmVuIHRvIGJlIG5lY2Vzc2VyeQ0KKi8NCg0KLyoqDQoqIEVuYWJsZSBGYXN0IEZpZWxkIEFkZCBQdWxsZG93bg0KKiANCiogQHZhciBib29sDQoqLw0KJGZiY2ZnWydzaG93X3ZlcnNpb24nXSAJCT0gRkFMU0U7DQoNCi8qKg0KKiBTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uDQoqIA0KKiBAdmFyIGJvb2wNCiovDQokZmJjZmdbJ2VuYWJsZV9mYXN0YWRkJ10gCT0gVFJVRTsNCg0KLyoqDQoqIFNob3cgRmllbGQgSURzDQoqIA0KKiBAdmFyIGJvb2wNCiovDQokZmJjZmdbJ3Nob3dfZmllbGRpZHMnXSAJPSBUUlVFOw0KDQovKioNCiogU2hvdyBGaWVsZCBJRHMNCiogDQoqIEB2YXIgYm9vbA0KKi8NCiRmYmNmZ1snc2hvd19maWVsZGFsaWFzZXMnXSAJPSBUUlVFOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/fb_jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CgoJJCgiLm1vZHVsZV9mYl90YWJsZSIpLnRhYmxlRG5EKHsKCQoJCW9uRHJhZ0NsYXNzOiAicm93MWhvdmVyIiwKCQlvbkRyb3A6IGZ1bmN0aW9uKHRhYmxlLCByb3cpIHsKCQkKCQkJCXZhciB0b3RhbHJvd3MgPSBqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0ciIpLnNpemUoKTsKCQkJCQoJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHIiKS5yZW1vdmVDbGFzcygpOwoJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCWpRdWVyeSgiLm1vZHVsZV9mYl90YWJsZSIpLmZpbmQoInRib2R5IHRyOm50aC1jaGlsZCgybikiKS5hZGRDbGFzcygicm93MiIpOwoJCQkJCgkJCQl2YXIgcm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKCQkJCXZhciBzb3J0c3RyID0gcm93c1swXS5pZDsKCQkJCWZvciAodmFyIGk9MTsgaTxyb3dzLmxlbmd0aDsgaSsrKSB7CgkJCQkJc29ydHN0ciArPSAiLCIrcm93c1tpXS5pZDsKCQkJCX0KCQkJCQoJCQkJJCgnLmZicnBfc29ydCcpLnZhbChzb3J0c3RyKTsKCQkJCS8vJCgnLnJlb3JkZXJtZXNzYWdlJykuc2hvdygpOwoJCX0KCX0pOwogICAgalF1ZXJ5KCIudXBkb3duIikuaGlkZSgpOwp9KTs=]]></data>
	</file>
	<file>
	  <filename>/includes/fb_jquery_functions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[alF1ZXJ5LmZuLmZiX2RlbGV0ZV9maWVsZCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKCiAgICBpZiAoY29uZmlybShtZXNzYWdlKSkgewoKCQl2YXIgdXJsID0galF1ZXJ5KHRoaXMpLmF0dHIoImhyZWYiKTsKCQl2YXIgcGFyZW50ID0galF1ZXJ5KHRoaXMpLmNsb3Nlc3QoInRyIik7CgkJCgkJalF1ZXJ5LmFqYXgoewoJCQl0eXBlOiAiUE9TVCIsCgkJCXVybDogdXJsLAoJCQlkYXRhOiAnJnNob3d0ZW1wbGF0ZT1mYWxzZScsCgkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQoJCQkJYWxlcnQoJ1NvcnJ5LiBUaGVyZSB3YXMgYW4gZXJyb3IuJyk7CgkJCX0sCQkJCgkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKCkgewoJCQkKCQkJCXBhcmVudC5mYWRlT3V0KCIxMDAwIiwgZnVuY3Rpb24oKSB7CgoJCQkJCXBhcmVudC5yZW1vdmUoKTsKCQkJCQl2YXIgdG90YWxyb3dzID0galF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHIiKS5zaXplKCk7CgkJCQkKCQkJCQlqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZUNsYXNzKCk7CgkJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCQlqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0cjpudGgtY2hpbGQoMm4pIikuYWRkQ2xhc3MoInJvdzIiKTsKCQkJCX0pOwkJCQoJCQl9CQoJCX0pOwoJCQoJfQoJCgp9OwoKalF1ZXJ5LmZuLmZiX2dldF90ZW1wbGF0ZSA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHVybCkgewoKCXZhciB2YWx1ZSA9IGpRdWVyeSh0aGlzKS52YWwoKTsKCQkKCWlmIChjb25maXJtKG1lc3NhZ2UpKSB7CgkJCQoJCWpRdWVyeS5hamF4KHsKCQkJdHlwZTogIkdFVCIsCgkJCXVybDogdXJsLAkJCQoJCQlkYXRhOiAnJm0xX2ZicnBfdGlkPScrdmFsdWUsCgkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQoJCQkJYWxlcnQoJ1NvcnJ5LiBUaGVyZSB3YXMgYW4gZXJyb3IuJyk7CgkJCX0sCgkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKCQkJCQoJCQkJalF1ZXJ5KCIjZmJfZm9ybV90ZW1wbGF0ZSIpLnZhbChkYXRhKTsKCQkJfQoJCX0pOwkKCQkJCQoJCgl9CgkKfTsKCmpRdWVyeS5mbi5mYl9hZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQgPSBmdW5jdGlvbigpIHsKCgl2YXIgdXJsID0galF1ZXJ5KHRoaXMpLmF0dHIoImhyZWYiKTsKCXZhciBjdXJyZW50ID0galF1ZXJ5KHRoaXMpOwoJCglqUXVlcnkuYWpheCh7CgkJdHlwZTogIkdFVCIsCgkJdXJsOiB1cmwsCgkJZXJyb3I6IGZ1bmN0aW9uKCkgewoJCQkJCgkJCWFsZXJ0KCdTb3JyeS4gVGhlcmUgd2FzIGFuIGVycm9yLicpOwoJCX0sCQkJCgkJc3VjY2VzczogZnVuY3Rpb24oKSB7CgkJCQoJCQlpZihjdXJyZW50Lmhhc0NsYXNzKCJ0cnVlIikpIHsKCQkKCQkJCXZhciByZXBsYWNldXJsID0gY3VycmVudC5hdHRyKCJocmVmIikucmVwbGFjZSgnZmJycF9hY3RpdmU9b2ZmJywnZmJycF9hY3RpdmU9b24nKTsKCQkJCXZhciByZXBsYWNlcGljID0gY3VycmVudC5jaGlsZHJlbigpLmF0dHIoInNyYyIpLnJlcGxhY2UoJ3RydWUnLCAnZmFsc2UnKTsKCQkJCXZhciByZXBsYWNlb3RoZXIgPSAnZmFsc2UnOwkJCQoJCQkJY3VycmVudC5yZW1vdmVDbGFzcygidHJ1ZSIpLmFkZENsYXNzKCJmYWxzZSIpOwoJCQkKCQkJfSBlbHNlIHsKCQkJCQoJCQkJdmFyIHJlcGxhY2V1cmwgPSBjdXJyZW50LmF0dHIoImhyZWYiKS5yZXBsYWNlKCdmYnJwX2FjdGl2ZT1vbicsJ2ZicnBfYWN0aXZlPW9mZicpOwoJCQkJdmFyIHJlcGxhY2VwaWMgPSBjdXJyZW50LmNoaWxkcmVuKCkuYXR0cigic3JjIikucmVwbGFjZSgnZmFsc2UnLCAndHJ1ZScpOwoJCQkJdmFyIHJlcGxhY2VvdGhlciA9ICd0cnVlJzsKCQkJCWN1cnJlbnQucmVtb3ZlQ2xhc3MoImZhbHNlIikuYWRkQ2xhc3MoInRydWUiKTsKCQkKCQkJfQoJCQoJCQljdXJyZW50LmF0dHIoeyBocmVmIDogcmVwbGFjZXVybCB9KTsKCQkJY3VycmVudC5jaGlsZHJlbigpLmF0dHIoeyBzcmMgOiByZXBsYWNlcGljLCB0aXRsZSA6IHJlcGxhY2VvdGhlciwgYWx0IDogcmVwbGFjZW90aGVyIH0pOwkJCgkJCQoJCQkKCQl9Cgl9KTsJCQp9OwoKalF1ZXJ5LmZuLmZiX3NldF90YWIgPSBmdW5jdGlvbigpIHsKCXZhciBhY3RpdmUgPSBqUXVlcnkoJyNwYWdlX3RhYnMgPiAuYWN0aXZlJyk7CglqUXVlcnkoJyNmYnJfYXRhYicpLnZhbChhY3RpdmUuYXR0cignaWQnKSk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/includes/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/includes/jquery-1.4.2.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNC4yCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMCwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTAsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBTYXQgRmViIDEzIDIyOjMzOjQ4IDIwMTAgLTA1MDAKICovCihmdW5jdGlvbihBLHcpe2Z1bmN0aW9uIG1hKCl7aWYoIWMuaXNSZWFkeSl7dHJ5e3MuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7c2V0VGltZW91dChtYSwxKTtyZXR1cm59Yy5yZWFkeSgpfX1mdW5jdGlvbiBRYShhLGIpe2Iuc3JjP2MuYWpheCh7dXJsOmIuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSk6Yy5nbG9iYWxFdmFsKGIudGV4dHx8Yi50ZXh0Q29udGVudHx8Yi5pbm5lckhUTUx8fCIiKTtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBYKGEsYixkLGYsZSxqKXt2YXIgaT1hLmxlbmd0aDtpZih0eXBlb2YgYj09PSJvYmplY3QiKXtmb3IodmFyIG8gaW4gYilYKGEsbyxiW29dLGYsZSxkKTtyZXR1cm4gYX1pZihkIT09dyl7Zj0haiYmZiYmYy5pc0Z1bmN0aW9uKGQpO2ZvcihvPTA7bzxpO28rKyllKGFbb10sYixmP2QuY2FsbChhW29dLG8sZShhW29dLGIpKTpkLGopO3JldHVybiBhfXJldHVybiBpPwplKGFbMF0sYik6d31mdW5jdGlvbiBKKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9ZnVuY3Rpb24gWSgpe3JldHVybiBmYWxzZX1mdW5jdGlvbiBaKCl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gbmEoYSxiLGQpe2RbMF0udHlwZT1hO3JldHVybiBjLmV2ZW50LmhhbmRsZS5hcHBseShiLGQpfWZ1bmN0aW9uIG9hKGEpe3ZhciBiLGQ9W10sZj1bXSxlPWFyZ3VtZW50cyxqLGksbyxrLG4scjtpPWMuZGF0YSh0aGlzLCJldmVudHMiKTtpZighKGEubGl2ZUZpcmVkPT09dGhpc3x8IWl8fCFpLmxpdmV8fGEuYnV0dG9uJiZhLnR5cGU9PT0iY2xpY2siKSl7YS5saXZlRmlyZWQ9dGhpczt2YXIgdT1pLmxpdmUuc2xpY2UoMCk7Zm9yKGs9MDtrPHUubGVuZ3RoO2srKyl7aT11W2tdO2kub3JpZ1R5cGUucmVwbGFjZShPLCIiKT09PWEudHlwZT9mLnB1c2goaS5zZWxlY3Rvcik6dS5zcGxpY2Uoay0tLDEpfWo9YyhhLnRhcmdldCkuY2xvc2VzdChmLGEuY3VycmVudFRhcmdldCk7bj0wO2ZvcihyPQpqLmxlbmd0aDtuPHI7bisrKWZvcihrPTA7azx1Lmxlbmd0aDtrKyspe2k9dVtrXTtpZihqW25dLnNlbGVjdG9yPT09aS5zZWxlY3Rvcil7bz1qW25dLmVsZW07Zj1udWxsO2lmKGkucHJlVHlwZT09PSJtb3VzZWVudGVyInx8aS5wcmVUeXBlPT09Im1vdXNlbGVhdmUiKWY9YyhhLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoaS5zZWxlY3RvcilbMF07aWYoIWZ8fGYhPT1vKWQucHVzaCh7ZWxlbTpvLGhhbmRsZU9iajppfSl9fW49MDtmb3Iocj1kLmxlbmd0aDtuPHI7bisrKXtqPWRbbl07YS5jdXJyZW50VGFyZ2V0PWouZWxlbTthLmRhdGE9ai5oYW5kbGVPYmouZGF0YTthLmhhbmRsZU9iaj1qLmhhbmRsZU9iajtpZihqLmhhbmRsZU9iai5vcmlnSGFuZGxlci5hcHBseShqLmVsZW0sZSk9PT1mYWxzZSl7Yj1mYWxzZTticmVha319cmV0dXJuIGJ9fWZ1bmN0aW9uIHBhKGEsYil7cmV0dXJuImxpdmUuIisoYSYmYSE9PSIqIj9hKyIuIjoiIikrYi5yZXBsYWNlKC9cLi9nLCJgIikucmVwbGFjZSgvIC9nLAoiJiIpfWZ1bmN0aW9uIHFhKGEpe3JldHVybiFhfHwhYS5wYXJlbnROb2RlfHxhLnBhcmVudE5vZGUubm9kZVR5cGU9PT0xMX1mdW5jdGlvbiByYShhLGIpe3ZhciBkPTA7Yi5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZT09PShhW2RdJiZhW2RdLm5vZGVOYW1lKSl7dmFyIGY9Yy5kYXRhKGFbZCsrXSksZT1jLmRhdGEodGhpcyxmKTtpZihmPWYmJmYuZXZlbnRzKXtkZWxldGUgZS5oYW5kbGU7ZS5ldmVudHM9e307Zm9yKHZhciBqIGluIGYpZm9yKHZhciBpIGluIGZbal0pYy5ldmVudC5hZGQodGhpcyxqLGZbal1baV0sZltqXVtpXS5kYXRhKX19fSl9ZnVuY3Rpb24gc2EoYSxiLGQpe3ZhciBmLGUsajtiPWImJmJbMF0/YlswXS5vd25lckRvY3VtZW50fHxiWzBdOnM7aWYoYS5sZW5ndGg9PT0xJiZ0eXBlb2YgYVswXT09PSJzdHJpbmciJiZhWzBdLmxlbmd0aDw1MTImJmI9PT1zJiYhdGEudGVzdChhWzBdKSYmKGMuc3VwcG9ydC5jaGVja0Nsb25lfHwhdWEudGVzdChhWzBdKSkpe2U9CnRydWU7aWYoaj1jLmZyYWdtZW50c1thWzBdXSlpZihqIT09MSlmPWp9aWYoIWYpe2Y9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yy5jbGVhbihhLGIsZixkKX1pZihlKWMuZnJhZ21lbnRzW2FbMF1dPWo/ZjoxO3JldHVybntmcmFnbWVudDpmLGNhY2hlYWJsZTplfX1mdW5jdGlvbiBLKGEsYil7dmFyIGQ9e307Yy5lYWNoKHZhLmNvbmNhdC5hcHBseShbXSx2YS5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2RbdGhpc109YX0pO3JldHVybiBkfWZ1bmN0aW9uIHdhKGEpe3JldHVybiJzY3JvbGxUbyJpbiBhJiZhLmRvY3VtZW50P2E6YS5ub2RlVHlwZT09PTk/YS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3c6ZmFsc2V9dmFyIGM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IGMuZm4uaW5pdChhLGIpfSxSYT1BLmpRdWVyeSxTYT1BLiQscz1BLmRvY3VtZW50LFQsVGE9L15bXjxdKig8W1x3XFddKz4pW14+XSokfF4jKFtcdy1dKykkLyxVYT0vXi5bXjojXFtcLixdKiQvLFZhPS9cUy8sCldhPS9eKFxzfFx1MDBBMCkrfChcc3xcdTAwQTApKyQvZyxYYT0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT4pPyQvLFA9bmF2aWdhdG9yLnVzZXJBZ2VudCx4YT1mYWxzZSxRPVtdLEwsJD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGFhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYmE9QXJyYXkucHJvdG90eXBlLnB1c2gsUj1BcnJheS5wcm90b3R5cGUuc2xpY2UseWE9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7Yy5mbj1jLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBkLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYS5ub2RlVHlwZSl7dGhpcy5jb250ZXh0PXRoaXNbMF09YTt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKGE9PT0iYm9keSImJiFiKXt0aGlzLmNvbnRleHQ9czt0aGlzWzBdPXMuYm9keTt0aGlzLnNlbGVjdG9yPSJib2R5Ijt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoKGQ9VGEuZXhlYyhhKSkmJgooZFsxXXx8IWIpKWlmKGRbMV0pe2Y9Yj9iLm93bmVyRG9jdW1lbnR8fGI6cztpZihhPVhhLmV4ZWMoYSkpaWYoYy5pc1BsYWluT2JqZWN0KGIpKXthPVtzLmNyZWF0ZUVsZW1lbnQoYVsxXSldO2MuZm4uYXR0ci5jYWxsKGEsYix0cnVlKX1lbHNlIGE9W2YuY3JlYXRlRWxlbWVudChhWzFdKV07ZWxzZXthPXNhKFtkWzFdXSxbZl0pO2E9KGEuY2FjaGVhYmxlP2EuZnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpOmEuZnJhZ21lbnQpLmNoaWxkTm9kZXN9cmV0dXJuIGMubWVyZ2UodGhpcyxhKX1lbHNle2lmKGI9cy5nZXRFbGVtZW50QnlJZChkWzJdKSl7aWYoYi5pZCE9PWRbMl0pcmV0dXJuIFQuZmluZChhKTt0aGlzLmxlbmd0aD0xO3RoaXNbMF09Yn10aGlzLmNvbnRleHQ9czt0aGlzLnNlbGVjdG9yPWE7cmV0dXJuIHRoaXN9ZWxzZSBpZighYiYmL15cdyskLy50ZXN0KGEpKXt0aGlzLnNlbGVjdG9yPWE7dGhpcy5jb250ZXh0PXM7YT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO3JldHVybiBjLm1lcmdlKHRoaXMsCmEpfWVsc2UgcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxUKS5maW5kKGEpOmMoYikuZmluZChhKTtlbHNlIGlmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gVC5yZWFkeShhKTtpZihhLnNlbGVjdG9yIT09dyl7dGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yO3RoaXMuY29udGV4dD1hLmNvbnRleHR9cmV0dXJuIGMubWFrZUFycmF5KGEsdGhpcyl9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS40LjIiLGxlbmd0aDowLHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gUi5jYWxsKHRoaXMsMCl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD90aGlzLnRvQXJyYXkoKTphPDA/dGhpcy5zbGljZShhKVswXTp0aGlzW2FdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWMoKTtjLmlzQXJyYXkoYSk/YmEuYXBwbHkoZixhKTpjLm1lcmdlKGYsYSk7Zi5wcmV2T2JqZWN0PXRoaXM7Zi5jb250ZXh0PXRoaXMuY29udGV4dDtpZihiPT09CiJmaW5kIilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2VsZWN0b3I/IiAiOiIiKStkO2Vsc2UgaWYoYilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK2IrIigiK2QrIikiO3JldHVybiBmfSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGMuZWFjaCh0aGlzLGEsYil9LHJlYWR5OmZ1bmN0aW9uKGEpe2MuYmluZFJlYWR5KCk7aWYoYy5pc1JlYWR5KWEuY2FsbChzLGMpO2Vsc2UgUSYmUS5wdXNoKGEpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXtyZXR1cm4gYT09PS0xP3RoaXMuc2xpY2UoYSk6dGhpcy5zbGljZShhLCthKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhSLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLFIuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYy5tYXAodGhpcywKZnVuY3Rpb24oYixkKXtyZXR1cm4gYS5jYWxsKGIsZCxiKX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8YyhudWxsKX0scHVzaDpiYSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX07Yy5mbi5pbml0LnByb3RvdHlwZT1jLmZuO2MuZXh0ZW5kPWMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzWzBdfHx7fSxiPTEsZD1hcmd1bWVudHMubGVuZ3RoLGY9ZmFsc2UsZSxqLGksbztpZih0eXBlb2YgYT09PSJib29sZWFuIil7Zj1hO2E9YXJndW1lbnRzWzFdfHx7fTtiPTJ9aWYodHlwZW9mIGEhPT0ib2JqZWN0IiYmIWMuaXNGdW5jdGlvbihhKSlhPXt9O2lmKGQ9PT1iKXthPXRoaXM7LS1ifWZvcig7YjxkO2IrKylpZigoZT1hcmd1bWVudHNbYl0pIT1udWxsKWZvcihqIGluIGUpe2k9YVtqXTtvPWVbal07aWYoYSE9PW8paWYoZiYmbyYmKGMuaXNQbGFpbk9iamVjdChvKXx8Yy5pc0FycmF5KG8pKSl7aT1pJiYoYy5pc1BsYWluT2JqZWN0KGkpfHwKYy5pc0FycmF5KGkpKT9pOmMuaXNBcnJheShvKT9bXTp7fTthW2pdPWMuZXh0ZW5kKGYsaSxvKX1lbHNlIGlmKG8hPT13KWFbal09b31yZXR1cm4gYX07Yy5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oYSl7QS4kPVNhO2lmKGEpQS5qUXVlcnk9UmE7cmV0dXJuIGN9LGlzUmVhZHk6ZmFsc2UscmVhZHk6ZnVuY3Rpb24oKXtpZighYy5pc1JlYWR5KXtpZighcy5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGMucmVhZHksMTMpO2MuaXNSZWFkeT10cnVlO2lmKFEpe2Zvcih2YXIgYSxiPTA7YT1RW2IrK107KWEuY2FsbChzLGMpO1E9bnVsbH1jLmZuLnRyaWdnZXJIYW5kbGVyJiZjKHMpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX0sYmluZFJlYWR5OmZ1bmN0aW9uKCl7aWYoIXhhKXt4YT10cnVlO2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpcmV0dXJuIGMucmVhZHkoKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpe3MuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsCkwsZmFsc2UpO0EuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYy5yZWFkeSxmYWxzZSl9ZWxzZSBpZihzLmF0dGFjaEV2ZW50KXtzLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEwpO0EuYXR0YWNoRXZlbnQoIm9ubG9hZCIsYy5yZWFkeSk7dmFyIGE9ZmFsc2U7dHJ5e2E9QS5mcmFtZUVsZW1lbnQ9PW51bGx9Y2F0Y2goYil7fXMuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsJiZhJiZtYSgpfX19LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9LGlzQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEFycmF5XSJ9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7aWYoIWF8fCQuY2FsbChhKSE9PSJbb2JqZWN0IE9iamVjdF0ifHxhLm5vZGVUeXBlfHxhLnNldEludGVydmFsKXJldHVybiBmYWxzZTtpZihhLmNvbnN0cnVjdG9yJiYhYWEuY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhYWEuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwKImlzUHJvdG90eXBlT2YiKSlyZXR1cm4gZmFsc2U7dmFyIGI7Zm9yKGIgaW4gYSk7cmV0dXJuIGI9PT13fHxhYS5jYWxsKGEsYil9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlfSxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBhO30scGFyc2VKU09OOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyJ8fCFhKXJldHVybiBudWxsO2E9Yy50cmltKGEpO2lmKC9eW1xdLDp7fVxzXSokLy50ZXN0KGEucmVwbGFjZSgvXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLCJAIikucmVwbGFjZSgvIlteIlxcXG5ccl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csIl0iKS5yZXBsYWNlKC8oPzpefDp8LCkoPzpccypcWykrL2csIiIpKSlyZXR1cm4gQS5KU09OJiZBLkpTT04ucGFyc2U/QS5KU09OLnBhcnNlKGEpOihuZXcgRnVuY3Rpb24oInJldHVybiAiKwphKSkoKTtlbHNlIGMuZXJyb3IoIkludmFsaWQgSlNPTjogIithKX0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZhbDpmdW5jdGlvbihhKXtpZihhJiZWYS50ZXN0KGEpKXt2YXIgYj1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fHMuZG9jdW1lbnRFbGVtZW50LGQ9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYoYy5zdXBwb3J0LnNjcmlwdEV2YWwpZC5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHROb2RlKGEpKTtlbHNlIGQudGV4dD1hO2IuaW5zZXJ0QmVmb3JlKGQsYi5maXJzdENoaWxkKTtiLnJlbW92ZUNoaWxkKGQpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09Yi50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixkKXt2YXIgZixlPTAsaj1hLmxlbmd0aCxpPWo9PT13fHxjLmlzRnVuY3Rpb24oYSk7aWYoZClpZihpKWZvcihmIGluIGEpe2lmKGIuYXBwbHkoYVtmXSwKZCk9PT1mYWxzZSlicmVha31lbHNlIGZvcig7ZTxqOyl7aWYoYi5hcHBseShhW2UrK10sZCk9PT1mYWxzZSlicmVha31lbHNlIGlmKGkpZm9yKGYgaW4gYSl7aWYoYi5jYWxsKGFbZl0sZixhW2ZdKT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKGQ9YVswXTtlPGomJmIuY2FsbChkLGUsZCkhPT1mYWxzZTtkPWFbKytlXSk7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuKGF8fCIiKS5yZXBsYWNlKFdhLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtpZihhIT1udWxsKWEubGVuZ3RoPT1udWxsfHx0eXBlb2YgYT09PSJzdHJpbmcifHxjLmlzRnVuY3Rpb24oYSl8fHR5cGVvZiBhIT09ImZ1bmN0aW9uIiYmYS5zZXRJbnRlcnZhbD9iYS5jYWxsKGIsYSk6Yy5tZXJnZShiLGEpO3JldHVybiBifSxpbkFycmF5OmZ1bmN0aW9uKGEsYil7aWYoYi5pbmRleE9mKXJldHVybiBiLmluZGV4T2YoYSk7Zm9yKHZhciBkPTAsZj1iLmxlbmd0aDtkPGY7ZCsrKWlmKGJbZF09PT0KYSlyZXR1cm4gZDtyZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgZD1hLmxlbmd0aCxmPTA7aWYodHlwZW9mIGIubGVuZ3RoPT09Im51bWJlciIpZm9yKHZhciBlPWIubGVuZ3RoO2Y8ZTtmKyspYVtkKytdPWJbZl07ZWxzZSBmb3IoO2JbZl0hPT13OylhW2QrK109YltmKytdO2EubGVuZ3RoPWQ7cmV0dXJuIGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlPTAsaj1hLmxlbmd0aDtlPGo7ZSsrKSFkIT09IWIoYVtlXSxlKSYmZi5wdXNoKGFbZV0pO3JldHVybiBmfSxtYXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlLGo9MCxpPWEubGVuZ3RoO2o8aTtqKyspe2U9YihhW2pdLGosZCk7aWYoZSE9bnVsbClmW2YubGVuZ3RoXT1lfXJldHVybiBmLmNvbmNhdC5hcHBseShbXSxmKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYixkKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MilpZih0eXBlb2YgYj09PSJzdHJpbmciKXtkPWE7YT1kW2JdO2I9d31lbHNlIGlmKGImJgohYy5pc0Z1bmN0aW9uKGIpKXtkPWI7Yj13fWlmKCFiJiZhKWI9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShkfHx0aGlzLGFyZ3VtZW50cyl9O2lmKGEpYi5ndWlkPWEuZ3VpZD1hLmd1aWR8fGIuZ3VpZHx8Yy5ndWlkKys7cmV0dXJuIGJ9LHVhTWF0Y2g6ZnVuY3Rpb24oYSl7YT1hLnRvTG93ZXJDYXNlKCk7YT0vKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKG9wZXJhKSg/Oi4qdmVyc2lvbik/WyBcL10oW1x3Ll0rKS8uZXhlYyhhKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhhKXx8IS9jb21wYXRpYmxlLy50ZXN0KGEpJiYvKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLmV4ZWMoYSl8fFtdO3JldHVybnticm93c2VyOmFbMV18fCIiLHZlcnNpb246YVsyXXx8IjAifX0sYnJvd3Nlcjp7fX0pO1A9Yy51YU1hdGNoKFApO2lmKFAuYnJvd3Nlcil7Yy5icm93c2VyW1AuYnJvd3Nlcl09dHJ1ZTtjLmJyb3dzZXIudmVyc2lvbj1QLnZlcnNpb259aWYoYy5icm93c2VyLndlYmtpdCljLmJyb3dzZXIuc2FmYXJpPQp0cnVlO2lmKHlhKWMuaW5BcnJheT1mdW5jdGlvbihhLGIpe3JldHVybiB5YS5jYWxsKGIsYSl9O1Q9YyhzKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpTD1mdW5jdGlvbigpe3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsTCxmYWxzZSk7Yy5yZWFkeSgpfTtlbHNlIGlmKHMuYXR0YWNoRXZlbnQpTD1mdW5jdGlvbigpe2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe3MuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsTCk7Yy5yZWFkeSgpfX07KGZ1bmN0aW9uKCl7Yy5zdXBwb3J0PXt9O3ZhciBhPXMuZG9jdW1lbnRFbGVtZW50LGI9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxkPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksZj0ic2NyaXB0IitKKCk7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjtkLmlubmVySFRNTD0iICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJyBzdHlsZT0nY29sb3I6cmVkO2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiI7CnZhciBlPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxqPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighKCFlfHwhZS5sZW5ndGh8fCFqKSl7Yy5zdXBwb3J0PXtsZWFkaW5nV2hpdGVzcGFjZTpkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGouZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpqLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5Oi9eMC41NSQvLnRlc3Qoai5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDohIWouc3R5bGUuY3NzRmxvYXQsY2hlY2tPbjpkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLnZhbHVlPT09Im9uIixvcHRTZWxlY3RlZDpzLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKHMuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLnNlbGVjdGVkLApwYXJlbnROb2RlOmQucmVtb3ZlQ2hpbGQoZC5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSkucGFyZW50Tm9kZT09PW51bGwsZGVsZXRlRXhwYW5kbzp0cnVlLGNoZWNrQ2xvbmU6ZmFsc2Usc2NyaXB0RXZhbDpmYWxzZSxub0Nsb25lRXZlbnQ6dHJ1ZSxib3hNb2RlbDpudWxsfTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7dHJ5e2IuYXBwZW5kQ2hpbGQocy5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrZisiPTE7IikpfWNhdGNoKGkpe31hLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7aWYoQVtmXSl7Yy5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgQVtmXX10cnl7ZGVsZXRlIGIudGVzdH1jYXRjaChvKXtjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbz1mYWxzZX1hLnJlbW92ZUNoaWxkKGIpO2lmKGQuYXR0YWNoRXZlbnQmJmQuZmlyZUV2ZW50KXtkLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbiBrKCl7Yy5zdXBwb3J0Lm5vQ2xvbmVFdmVudD0KZmFsc2U7ZC5kZXRhY2hFdmVudCgib25jbGljayIsayl9KTtkLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1kPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5pbm5lckhUTUw9IjxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ncmFkaW90ZXN0JyBjaGVja2VkPSdjaGVja2VkJy8+IjthPXMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2EuYXBwZW5kQ2hpbGQoZC5maXJzdENoaWxkKTtjLnN1cHBvcnQuY2hlY2tDbG9uZT1hLmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7YyhmdW5jdGlvbigpe3ZhciBrPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ay5zdHlsZS53aWR0aD1rLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO3MuYm9keS5hcHBlbmRDaGlsZChrKTtjLmJveE1vZGVsPWMuc3VwcG9ydC5ib3hNb2RlbD1rLm9mZnNldFdpZHRoPT09MjtzLmJvZHkucmVtb3ZlQ2hpbGQoaykuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KTthPWZ1bmN0aW9uKGspe3ZhciBuPQpzLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2s9Im9uIitrO3ZhciByPWsgaW4gbjtpZighcil7bi5zZXRBdHRyaWJ1dGUoaywicmV0dXJuOyIpO3I9dHlwZW9mIG5ba109PT0iZnVuY3Rpb24ifXJldHVybiByfTtjLnN1cHBvcnQuc3VibWl0QnViYmxlcz1hKCJzdWJtaXQiKTtjLnN1cHBvcnQuY2hhbmdlQnViYmxlcz1hKCJjaGFuZ2UiKTthPWI9ZD1lPWo9bnVsbH19KSgpO2MucHJvcHM9eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIsdGFiaW5kZXg6InRhYkluZGV4Iix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIn07dmFyIEc9ImpRdWVyeSIrSigpLFlhPTAsemE9e307Yy5leHRlbmQoe2NhY2hlOnt9LGV4cGFuZG86Ryxub0RhdGE6e2VtYmVkOnRydWUsb2JqZWN0OnRydWUsCmFwcGxldDp0cnVlfSxkYXRhOmZ1bmN0aW9uKGEsYixkKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZj1hW0ddLGU9Yy5jYWNoZTtpZighZiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmZD09PXcpcmV0dXJuIG51bGw7Znx8KGY9KytZYSk7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iil7YVtHXT1mO2VbZl09Yy5leHRlbmQodHJ1ZSx7fSxiKX1lbHNlIGlmKCFlW2ZdKXthW0ddPWY7ZVtmXT17fX1hPWVbZl07aWYoZCE9PXcpYVtiXT1kO3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmciP2FbYl06YX19LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZD1hW0ddLGY9Yy5jYWNoZSxlPWZbZF07aWYoYil7aWYoZSl7ZGVsZXRlIGVbYl07Yy5pc0VtcHR5T2JqZWN0KGUpJiZjLnJlbW92ZURhdGEoYSl9fWVsc2V7aWYoYy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8pZGVsZXRlIGFbYy5leHBhbmRvXTsKZWxzZSBhLnJlbW92ZUF0dHJpYnV0ZSYmYS5yZW1vdmVBdHRyaWJ1dGUoYy5leHBhbmRvKTtkZWxldGUgZltkXX19fX0pO2MuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIiYmdGhpcy5sZW5ndGgpcmV0dXJuIGMuZGF0YSh0aGlzWzBdKTtlbHNlIGlmKHR5cGVvZiBhPT09Im9iamVjdCIpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLGEpfSk7dmFyIGQ9YS5zcGxpdCgiLiIpO2RbMV09ZFsxXT8iLiIrZFsxXToiIjtpZihiPT09dyl7dmFyIGY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrZFsxXSsiISIsW2RbMF1dKTtpZihmPT09dyYmdGhpcy5sZW5ndGgpZj1jLmRhdGEodGhpc1swXSxhKTtyZXR1cm4gZj09PXcmJmRbMV0/dGhpcy5kYXRhKGRbMF0pOmZ9ZWxzZSByZXR1cm4gdGhpcy50cmlnZ2VyKCJzZXREYXRhIitkWzFdKyIhIixbZFswXSxiXSkuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLAphLGIpfSl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSk7Yy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixkKXtpZihhKXtiPShifHwiZngiKSsicXVldWUiO3ZhciBmPWMuZGF0YShhLGIpO2lmKCFkKXJldHVybiBmfHxbXTtpZighZnx8Yy5pc0FycmF5KGQpKWY9Yy5kYXRhKGEsYixjLm1ha2VBcnJheShkKSk7ZWxzZSBmLnB1c2goZCk7cmV0dXJuIGZ9fSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBkPWMucXVldWUoYSxiKSxmPWQuc2hpZnQoKTtpZihmPT09ImlucHJvZ3Jlc3MiKWY9ZC5zaGlmdCgpO2lmKGYpe2I9PT0iZngiJiZkLnVuc2hpZnQoImlucHJvZ3Jlc3MiKTtmLmNhbGwoYSxmdW5jdGlvbigpe2MuZGVxdWV1ZShhLGIpfSl9fX0pO2MuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpe2I9YTthPSJmeCJ9aWYoYj09PQp3KXJldHVybiBjLnF1ZXVlKHRoaXNbMF0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWMucXVldWUodGhpcyxhLGIpO2E9PT0iZngiJiZkWzBdIT09ImlucHJvZ3Jlc3MiJiZjLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmRlcXVldWUodGhpcyxhKX0pfSxkZWxheTpmdW5jdGlvbihhLGIpe2E9Yy5meD9jLmZ4LnNwZWVkc1thXXx8YTphO2I9Ynx8ImZ4IjtyZXR1cm4gdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGQsYil9LGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9fSk7dmFyIEFhPS9bXG5cdF0vZyxjYT0vXHMrLyxaYT0vXHIvZywkYT0vaHJlZnxzcmN8c3R5bGUvLGFiPS8oYnV0dG9ufGlucHV0KS9pLGJiPS8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpL2ksCmNiPS9eKGF8YXJlYSkkL2ksQmE9L3JhZGlvfGNoZWNrYm94LztjLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYKHRoaXMsYSxiLHRydWUsYy5hdHRyKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5hdHRyKHRoaXMsYSwiIik7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMucmVtb3ZlQXR0cmlidXRlKGEpfSl9LGFkZENsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3ZhciByPWModGhpcyk7ci5hZGRDbGFzcyhhLmNhbGwodGhpcyxuLHIuYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nIilmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChjYSksZD0wLGY9dGhpcy5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9dGhpc1tkXTtpZihlLm5vZGVUeXBlPT09MSlpZihlLmNsYXNzTmFtZSl7Zm9yKHZhciBqPSIgIitlLmNsYXNzTmFtZSsiICIsCmk9ZS5jbGFzc05hbWUsbz0wLGs9Yi5sZW5ndGg7bzxrO28rKylpZihqLmluZGV4T2YoIiAiK2Jbb10rIiAiKTwwKWkrPSIgIitiW29dO2UuY2xhc3NOYW1lPWMudHJpbShpKX1lbHNlIGUuY2xhc3NOYW1lPWF9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWModGhpcyk7bi5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxrLG4uYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nInx8YT09PXcpZm9yKHZhciBiPShhfHwiIikuc3BsaXQoY2EpLGQ9MCxmPXRoaXMubGVuZ3RoO2Q8ZjtkKyspe3ZhciBlPXRoaXNbZF07aWYoZS5ub2RlVHlwZT09PTEmJmUuY2xhc3NOYW1lKWlmKGEpe2Zvcih2YXIgaj0oIiAiK2UuY2xhc3NOYW1lKyIgIikucmVwbGFjZShBYSwiICIpLGk9MCxvPWIubGVuZ3RoO2k8bztpKyspaj1qLnJlcGxhY2UoIiAiK2JbaV0rIiAiLAoiICIpO2UuY2xhc3NOYW1lPWMudHJpbShqKX1lbHNlIGUuY2xhc3NOYW1lPSIifXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhLGY9dHlwZW9mIGI9PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGo9Yyh0aGlzKTtqLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGUsai5hdHRyKCJjbGFzcyIpLGIpLGIpfSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGQ9PT0ic3RyaW5nIilmb3IodmFyIGUsaj0wLGk9Yyh0aGlzKSxvPWIsaz1hLnNwbGl0KGNhKTtlPWtbaisrXTspe289Zj9vOiFpLmhhc0NsYXNzKGUpO2lbbz8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKGUpfWVsc2UgaWYoZD09PSJ1bmRlZmluZWQifHxkPT09ImJvb2xlYW4iKXt0aGlzLmNsYXNzTmFtZSYmYy5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKTt0aGlzLmNsYXNzTmFtZT0KdGhpcy5jbGFzc05hbWV8fGE9PT1mYWxzZT8iIjpjLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIn19KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7YT0iICIrYSsiICI7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKCgiICIrdGhpc1tiXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKEFhLCIgIikuaW5kZXhPZihhKT4tMSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9LHZhbDpmdW5jdGlvbihhKXtpZihhPT09dyl7dmFyIGI9dGhpc1swXTtpZihiKXtpZihjLm5vZGVOYW1lKGIsIm9wdGlvbiIpKXJldHVybihiLmF0dHJpYnV0ZXMudmFsdWV8fHt9KS5zcGVjaWZpZWQ/Yi52YWx1ZTpiLnRleHQ7aWYoYy5ub2RlTmFtZShiLCJzZWxlY3QiKSl7dmFyIGQ9Yi5zZWxlY3RlZEluZGV4LGY9W10sZT1iLm9wdGlvbnM7Yj1iLnR5cGU9PT0ic2VsZWN0LW9uZSI7aWYoZDwwKXJldHVybiBudWxsO3ZhciBqPWI/ZDowO2ZvcihkPWI/ZCsxOmUubGVuZ3RoO2o8ZDtqKyspe3ZhciBpPQplW2pdO2lmKGkuc2VsZWN0ZWQpe2E9YyhpKS52YWwoKTtpZihiKXJldHVybiBhO2YucHVzaChhKX19cmV0dXJuIGZ9aWYoQmEudGVzdChiLnR5cGUpJiYhYy5zdXBwb3J0LmNoZWNrT24pcmV0dXJuIGIuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmIudmFsdWU7cmV0dXJuKGIudmFsdWV8fCIiKS5yZXBsYWNlKFphLCIiKX1yZXR1cm4gd312YXIgbz1jLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihrKXt2YXIgbj1jKHRoaXMpLHI9YTtpZih0aGlzLm5vZGVUeXBlPT09MSl7aWYobylyPWEuY2FsbCh0aGlzLGssbi52YWwoKSk7aWYodHlwZW9mIHI9PT0ibnVtYmVyIilyKz0iIjtpZihjLmlzQXJyYXkocikmJkJhLnRlc3QodGhpcy50eXBlKSl0aGlzLmNoZWNrZWQ9Yy5pbkFycmF5KG4udmFsKCkscik+PTA7ZWxzZSBpZihjLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgdT1jLm1ha2VBcnJheShyKTtjKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPQpjLmluQXJyYXkoYyh0aGlzKS52YWwoKSx1KT49MH0pO2lmKCF1Lmxlbmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9LTF9ZWxzZSB0aGlzLnZhbHVlPXJ9fSl9fSk7Yy5leHRlbmQoe2F0dHJGbjp7dmFsOnRydWUsY3NzOnRydWUsaHRtbDp0cnVlLHRleHQ6dHJ1ZSxkYXRhOnRydWUsd2lkdGg6dHJ1ZSxoZWlnaHQ6dHJ1ZSxvZmZzZXQ6dHJ1ZX0sYXR0cjpmdW5jdGlvbihhLGIsZCxmKXtpZighYXx8YS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KXJldHVybiB3O2lmKGYmJmIgaW4gYy5hdHRyRm4pcmV0dXJuIGMoYSlbYl0oZCk7Zj1hLm5vZGVUeXBlIT09MXx8IWMuaXNYTUxEb2MoYSk7dmFyIGU9ZCE9PXc7Yj1mJiZjLnByb3BzW2JdfHxiO2lmKGEubm9kZVR5cGU9PT0xKXt2YXIgaj0kYS50ZXN0KGIpO2lmKGIgaW4gYSYmZiYmIWope2lmKGUpe2I9PT0idHlwZSImJmFiLnRlc3QoYS5ub2RlTmFtZSkmJmEucGFyZW50Tm9kZSYmYy5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIik7CmFbYl09ZH1pZihjLm5vZGVOYW1lKGEsImZvcm0iKSYmYS5nZXRBdHRyaWJ1dGVOb2RlKGIpKXJldHVybiBhLmdldEF0dHJpYnV0ZU5vZGUoYikubm9kZVZhbHVlO2lmKGI9PT0idGFiSW5kZXgiKXJldHVybihiPWEuZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKSkmJmIuc3BlY2lmaWVkP2IudmFsdWU6YmIudGVzdChhLm5vZGVOYW1lKXx8Y2IudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6dztyZXR1cm4gYVtiXX1pZighYy5zdXBwb3J0LnN0eWxlJiZmJiZiPT09InN0eWxlIil7aWYoZSlhLnN0eWxlLmNzc1RleHQ9IiIrZDtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fWUmJmEuc2V0QXR0cmlidXRlKGIsIiIrZCk7YT0hYy5zdXBwb3J0LmhyZWZOb3JtYWxpemVkJiZmJiZqP2EuZ2V0QXR0cmlidXRlKGIsMik6YS5nZXRBdHRyaWJ1dGUoYik7cmV0dXJuIGE9PT1udWxsP3c6YX1yZXR1cm4gYy5zdHlsZShhLGIsZCl9fSk7dmFyIE89L1wuKC4qKSQvLGRiPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1teXHdcc1wuXHxgXS9nLApmdW5jdGlvbihiKXtyZXR1cm4iXFwiK2J9KX07Yy5ldmVudD17YWRkOmZ1bmN0aW9uKGEsYixkLGYpe2lmKCEoYS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KSl7aWYoYS5zZXRJbnRlcnZhbCYmYSE9PUEmJiFhLmZyYW1lRWxlbWVudClhPUE7dmFyIGUsajtpZihkLmhhbmRsZXIpe2U9ZDtkPWUuaGFuZGxlcn1pZighZC5ndWlkKWQuZ3VpZD1jLmd1aWQrKztpZihqPWMuZGF0YShhKSl7dmFyIGk9ai5ldmVudHM9ai5ldmVudHN8fHt9LG89ai5oYW5kbGU7aWYoIW8pai5oYW5kbGU9bz1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgYyE9PSJ1bmRlZmluZWQiJiYhYy5ldmVudC50cmlnZ2VyZWQ/Yy5ldmVudC5oYW5kbGUuYXBwbHkoby5lbGVtLGFyZ3VtZW50cyk6d307by5lbGVtPWE7Yj1iLnNwbGl0KCIgIik7Zm9yKHZhciBrLG49MCxyO2s9YltuKytdOyl7aj1lP2MuZXh0ZW5kKHt9LGUpOntoYW5kbGVyOmQsZGF0YTpmfTtpZihrLmluZGV4T2YoIi4iKT4tMSl7cj1rLnNwbGl0KCIuIik7Cms9ci5zaGlmdCgpO2oubmFtZXNwYWNlPXIuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKX1lbHNle3I9W107ai5uYW1lc3BhY2U9IiJ9ai50eXBlPWs7ai5ndWlkPWQuZ3VpZDt2YXIgdT1pW2tdLHo9Yy5ldmVudC5zcGVjaWFsW2tdfHx7fTtpZighdSl7dT1pW2tdPVtdO2lmKCF6LnNldHVwfHx6LnNldHVwLmNhbGwoYSxmLHIsbyk9PT1mYWxzZSlpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKGssbyxmYWxzZSk7ZWxzZSBhLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrayxvKX1pZih6LmFkZCl7ei5hZGQuY2FsbChhLGopO2lmKCFqLmhhbmRsZXIuZ3VpZClqLmhhbmRsZXIuZ3VpZD1kLmd1aWR9dS5wdXNoKGopO2MuZXZlbnQuZ2xvYmFsW2tdPXRydWV9YT1udWxsfX19LGdsb2JhbDp7fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGQsZil7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpKXt2YXIgZSxqPTAsaSxvLGssbixyLHUsej1jLmRhdGEoYSksCkM9eiYmei5ldmVudHM7aWYoeiYmQyl7aWYoYiYmYi50eXBlKXtkPWIuaGFuZGxlcjtiPWIudHlwZX1pZighYnx8dHlwZW9mIGI9PT0ic3RyaW5nIiYmYi5jaGFyQXQoMCk9PT0iLiIpe2I9Ynx8IiI7Zm9yKGUgaW4gQyljLmV2ZW50LnJlbW92ZShhLGUrYil9ZWxzZXtmb3IoYj1iLnNwbGl0KCIgIik7ZT1iW2orK107KXtuPWU7aT1lLmluZGV4T2YoIi4iKTwwO289W107aWYoIWkpe289ZS5zcGxpdCgiLiIpO2U9by5zaGlmdCgpO2s9bmV3IFJlZ0V4cCgiKF58XFwuKSIrYy5tYXAoby5zbGljZSgwKS5zb3J0KCksZGIpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWlmKHI9Q1tlXSlpZihkKXtuPWMuZXZlbnQuc3BlY2lhbFtlXXx8e307Zm9yKEI9Znx8MDtCPHIubGVuZ3RoO0IrKyl7dT1yW0JdO2lmKGQuZ3VpZD09PXUuZ3VpZCl7aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Zj09bnVsbCYmci5zcGxpY2UoQi0tLDEpO24ucmVtb3ZlJiZuLnJlbW92ZS5jYWxsKGEsdSl9aWYoZiE9Cm51bGwpYnJlYWt9fWlmKHIubGVuZ3RoPT09MHx8ZiE9bnVsbCYmci5sZW5ndGg9PT0xKXtpZighbi50ZWFyZG93bnx8bi50ZWFyZG93bi5jYWxsKGEsbyk9PT1mYWxzZSlDYShhLGUsei5oYW5kbGUpO2RlbGV0ZSBDW2VdfX1lbHNlIGZvcih2YXIgQj0wO0I8ci5sZW5ndGg7QisrKXt1PXJbQl07aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Yy5ldmVudC5yZW1vdmUoYSxuLHUuaGFuZGxlcixCKTtyLnNwbGljZShCLS0sMSl9fX1pZihjLmlzRW1wdHlPYmplY3QoQykpe2lmKGI9ei5oYW5kbGUpYi5lbGVtPW51bGw7ZGVsZXRlIHouZXZlbnRzO2RlbGV0ZSB6LmhhbmRsZTtjLmlzRW1wdHlPYmplY3QoeikmJmMucmVtb3ZlRGF0YShhKX19fX19LHRyaWdnZXI6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9YS50eXBlfHxhO2lmKCFmKXthPXR5cGVvZiBhPT09Im9iamVjdCI/YVtHXT9hOmMuZXh0ZW5kKGMuRXZlbnQoZSksYSk6Yy5FdmVudChlKTtpZihlLmluZGV4T2YoIiEiKT49MCl7YS50eXBlPQplPWUuc2xpY2UoMCwtMSk7YS5leGNsdXNpdmU9dHJ1ZX1pZighZCl7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50Lmdsb2JhbFtlXSYmYy5lYWNoKGMuY2FjaGUsZnVuY3Rpb24oKXt0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbZV0mJmMuZXZlbnQudHJpZ2dlcihhLGIsdGhpcy5oYW5kbGUuZWxlbSl9KX1pZighZHx8ZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT04KXJldHVybiB3O2EucmVzdWx0PXc7YS50YXJnZXQ9ZDtiPWMubWFrZUFycmF5KGIpO2IudW5zaGlmdChhKX1hLmN1cnJlbnRUYXJnZXQ9ZDsoZj1jLmRhdGEoZCwiaGFuZGxlIikpJiZmLmFwcGx5KGQsYik7Zj1kLnBhcmVudE5vZGV8fGQub3duZXJEb2N1bWVudDt0cnl7aWYoIShkJiZkLm5vZGVOYW1lJiZjLm5vRGF0YVtkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSlpZihkWyJvbiIrZV0mJmRbIm9uIitlXS5hcHBseShkLGIpPT09ZmFsc2UpYS5yZXN1bHQ9ZmFsc2V9Y2F0Y2goail7fWlmKCFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJgpmKWMuZXZlbnQudHJpZ2dlcihhLGIsZix0cnVlKTtlbHNlIGlmKCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtmPWEudGFyZ2V0O3ZhciBpLG89Yy5ub2RlTmFtZShmLCJhIikmJmU9PT0iY2xpY2siLGs9Yy5ldmVudC5zcGVjaWFsW2VdfHx7fTtpZigoIWsuX2RlZmF1bHR8fGsuX2RlZmF1bHQuY2FsbChkLGEpPT09ZmFsc2UpJiYhbyYmIShmJiZmLm5vZGVOYW1lJiZjLm5vRGF0YVtmLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7dHJ5e2lmKGZbZV0pe2lmKGk9Zlsib24iK2VdKWZbIm9uIitlXT1udWxsO2MuZXZlbnQudHJpZ2dlcmVkPXRydWU7ZltlXSgpfX1jYXRjaChuKXt9aWYoaSlmWyJvbiIrZV09aTtjLmV2ZW50LnRyaWdnZXJlZD1mYWxzZX19fSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGIsZCxmLGU7YT1hcmd1bWVudHNbMF09Yy5ldmVudC5maXgoYXx8QS5ldmVudCk7YS5jdXJyZW50VGFyZ2V0PXRoaXM7Yj1hLnR5cGUuaW5kZXhPZigiLiIpPDAmJiFhLmV4Y2x1c2l2ZTsKaWYoIWIpe2Q9YS50eXBlLnNwbGl0KCIuIik7YS50eXBlPWQuc2hpZnQoKTtmPW5ldyBSZWdFeHAoIihefFxcLikiK2Quc2xpY2UoMCkuc29ydCgpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWU9Yy5kYXRhKHRoaXMsImV2ZW50cyIpO2Q9ZVthLnR5cGVdO2lmKGUmJmQpe2Q9ZC5zbGljZSgwKTtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPWRbZV07aWYoYnx8Zi50ZXN0KGkubmFtZXNwYWNlKSl7YS5oYW5kbGVyPWkuaGFuZGxlcjthLmRhdGE9aS5kYXRhO2EuaGFuZGxlT2JqPWk7aT1pLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGkhPT13KXthLnJlc3VsdD1pO2lmKGk9PT1mYWxzZSl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCl9fWlmKGEuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVha319fXJldHVybiBhLnJlc3VsdH0scHJvcHM6ImFsdEtleSBhdHRyQ2hhbmdlIGF0dHJOYW1lIGJ1YmJsZXMgYnV0dG9uIGNhbmNlbGFibGUgY2hhckNvZGUgY2xpZW50WCBjbGllbnRZIGN0cmxLZXkgY3VycmVudFRhcmdldCBkYXRhIGRldGFpbCBldmVudFBoYXNlIGZyb21FbGVtZW50IGhhbmRsZXIga2V5Q29kZSBsYXllclggbGF5ZXJZIG1ldGFLZXkgbmV3VmFsdWUgb2Zmc2V0WCBvZmZzZXRZIG9yaWdpbmFsVGFyZ2V0IHBhZ2VYIHBhZ2VZIHByZXZWYWx1ZSByZWxhdGVkTm9kZSByZWxhdGVkVGFyZ2V0IHNjcmVlblggc2NyZWVuWSBzaGlmdEtleSBzcmNFbGVtZW50IHRhcmdldCB0b0VsZW1lbnQgdmlldyB3aGVlbERlbHRhIHdoaWNoIi5zcGxpdCgiICIpLApmaXg6ZnVuY3Rpb24oYSl7aWYoYVtHXSlyZXR1cm4gYTt2YXIgYj1hO2E9Yy5FdmVudChiKTtmb3IodmFyIGQ9dGhpcy5wcm9wcy5sZW5ndGgsZjtkOyl7Zj10aGlzLnByb3BzWy0tZF07YVtmXT1iW2ZdfWlmKCFhLnRhcmdldClhLnRhcmdldD1hLnNyY0VsZW1lbnR8fHM7aWYoYS50YXJnZXQubm9kZVR5cGU9PT0zKWEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGU7aWYoIWEucmVsYXRlZFRhcmdldCYmYS5mcm9tRWxlbWVudClhLnJlbGF0ZWRUYXJnZXQ9YS5mcm9tRWxlbWVudD09PWEudGFyZ2V0P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ7aWYoYS5wYWdlWD09bnVsbCYmYS5jbGllbnRYIT1udWxsKXtiPXMuZG9jdW1lbnRFbGVtZW50O2Q9cy5ib2R5O2EucGFnZVg9YS5jbGllbnRYKyhiJiZiLnNjcm9sbExlZnR8fGQmJmQuc2Nyb2xsTGVmdHx8MCktKGImJmIuY2xpZW50TGVmdHx8ZCYmZC5jbGllbnRMZWZ0fHwwKTthLnBhZ2VZPWEuY2xpZW50WSsoYiYmYi5zY3JvbGxUb3B8fApkJiZkLnNjcm9sbFRvcHx8MCktKGImJmIuY2xpZW50VG9wfHxkJiZkLmNsaWVudFRvcHx8MCl9aWYoIWEud2hpY2gmJihhLmNoYXJDb2RlfHxhLmNoYXJDb2RlPT09MD9hLmNoYXJDb2RlOmEua2V5Q29kZSkpYS53aGljaD1hLmNoYXJDb2RlfHxhLmtleUNvZGU7aWYoIWEubWV0YUtleSYmYS5jdHJsS2V5KWEubWV0YUtleT1hLmN0cmxLZXk7aWYoIWEud2hpY2gmJmEuYnV0dG9uIT09dylhLndoaWNoPWEuYnV0dG9uJjE/MTphLmJ1dHRvbiYyPzM6YS5idXR0b24mND8yOjA7cmV0dXJuIGF9LGd1aWQ6MUU4LHByb3h5OmMucHJveHksc3BlY2lhbDp7cmVhZHk6e3NldHVwOmMuYmluZFJlYWR5LHRlYXJkb3duOmMubm9vcH0sbGl2ZTp7YWRkOmZ1bmN0aW9uKGEpe2MuZXZlbnQuYWRkKHRoaXMsYS5vcmlnVHlwZSxjLmV4dGVuZCh7fSxhLHtoYW5kbGVyOm9hfSkpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dHJ1ZSxkPWEub3JpZ1R5cGUucmVwbGFjZShPLCIiKTtjLmVhY2goYy5kYXRhKHRoaXMsCiJldmVudHMiKS5saXZlfHxbXSxmdW5jdGlvbigpe2lmKGQ9PT10aGlzLm9yaWdUeXBlLnJlcGxhY2UoTywiIikpcmV0dXJuIGI9ZmFsc2V9KTtiJiZjLmV2ZW50LnJlbW92ZSh0aGlzLGEub3JpZ1R5cGUsb2EpfX0sYmVmb3JldW5sb2FkOntzZXR1cDpmdW5jdGlvbihhLGIsZCl7aWYodGhpcy5zZXRJbnRlcnZhbCl0aGlzLm9uYmVmb3JldW5sb2FkPWQ7cmV0dXJuIGZhbHNlfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe2lmKHRoaXMub25iZWZvcmV1bmxvYWQ9PT1iKXRoaXMub25iZWZvcmV1bmxvYWQ9bnVsbH19fX07dmFyIENhPXMucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsZCl7YS5yZW1vdmVFdmVudExpc3RlbmVyKGIsZCxmYWxzZSl9OmZ1bmN0aW9uKGEsYixkKXthLmRldGFjaEV2ZW50KCJvbiIrYixkKX07Yy5FdmVudD1mdW5jdGlvbihhKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdClyZXR1cm4gbmV3IGMuRXZlbnQoYSk7aWYoYSYmYS50eXBlKXt0aGlzLm9yaWdpbmFsRXZlbnQ9CmE7dGhpcy50eXBlPWEudHlwZX1lbHNlIHRoaXMudHlwZT1hO3RoaXMudGltZVN0YW1wPUooKTt0aGlzW0ddPXRydWV9O2MuRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPVo7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKGEpe2EucHJldmVudERlZmF1bHQmJmEucHJldmVudERlZmF1bHQoKTthLnJldHVyblZhbHVlPWZhbHNlfX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1aO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDtpZihhKXthLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKTthLmNhbmNlbEJ1YmJsZT10cnVlfX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1aO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9LGlzRGVmYXVsdFByZXZlbnRlZDpZLGlzUHJvcGFnYXRpb25TdG9wcGVkOlksCmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOll9O3ZhciBEYT1mdW5jdGlvbihhKXt2YXIgYj1hLnJlbGF0ZWRUYXJnZXQ7dHJ5e2Zvcig7YiYmYiE9PXRoaXM7KWI9Yi5wYXJlbnROb2RlO2lmKGIhPT10aGlzKXthLnR5cGU9YS5kYXRhO2MuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19Y2F0Y2goZCl7fX0sRWE9ZnVuY3Rpb24oYSl7YS50eXBlPWEuZGF0YTtjLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2MuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9LGZ1bmN0aW9uKGEsYil7Yy5ldmVudC5zcGVjaWFsW2FdPXtzZXR1cDpmdW5jdGlvbihkKXtjLmV2ZW50LmFkZCh0aGlzLGIsZCYmZC5zZWxlY3Rvcj9FYTpEYSxhKX0sdGVhcmRvd246ZnVuY3Rpb24oZCl7Yy5ldmVudC5yZW1vdmUodGhpcyxiLGQmJmQuc2VsZWN0b3I/RWE6RGEpfX19KTtpZighYy5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMpYy5ldmVudC5zcGVjaWFsLnN1Ym1pdD0Ke3NldHVwOmZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09ImZvcm0iKXtjLmV2ZW50LmFkZCh0aGlzLCJjbGljay5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigoZD09PSJzdWJtaXQifHxkPT09ImltYWdlIikmJmMoYikuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aClyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSk7Yy5ldmVudC5hZGQodGhpcywia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoKGQ9PT0idGV4dCJ8fGQ9PT0icGFzc3dvcmQiKSYmYyhiKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoJiZhLmtleUNvZGU9PT0xMylyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSl9ZWxzZSByZXR1cm4gZmFsc2V9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Yy5ldmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxTdWJtaXQiKX19OwppZighYy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMpe3ZhciBkYT0vdGV4dGFyZWF8aW5wdXR8c2VsZWN0L2ksZWEsRmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS50eXBlLGQ9YS52YWx1ZTtpZihiPT09InJhZGlvInx8Yj09PSJjaGVja2JveCIpZD1hLmNoZWNrZWQ7ZWxzZSBpZihiPT09InNlbGVjdC1tdWx0aXBsZSIpZD1hLnNlbGVjdGVkSW5kZXg+LTE/Yy5tYXAoYS5vcHRpb25zLGZ1bmN0aW9uKGYpe3JldHVybiBmLnNlbGVjdGVkfSkuam9pbigiLSIpOiIiO2Vsc2UgaWYoYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InNlbGVjdCIpZD1hLnNlbGVjdGVkSW5kZXg7cmV0dXJuIGR9LGZhPWZ1bmN0aW9uKGEsYil7dmFyIGQ9YS50YXJnZXQsZixlO2lmKCEoIWRhLnRlc3QoZC5ub2RlTmFtZSl8fGQucmVhZE9ubHkpKXtmPWMuZGF0YShkLCJfY2hhbmdlX2RhdGEiKTtlPUZhKGQpO2lmKGEudHlwZSE9PSJmb2N1c291dCJ8fGQudHlwZSE9PSJyYWRpbyIpYy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIsCmUpO2lmKCEoZj09PXd8fGU9PT1mKSlpZihmIT1udWxsfHxlKXthLnR5cGU9ImNoYW5nZSI7cmV0dXJuIGMuZXZlbnQudHJpZ2dlcihhLGIsZCl9fX07Yy5ldmVudC5zcGVjaWFsLmNoYW5nZT17ZmlsdGVyczp7Zm9jdXNvdXQ6ZmEsY2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoZD09PSJyYWRpbyJ8fGQ9PT0iY2hlY2tib3gifHxiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxrZXlkb3duOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50eXBlO2lmKGEua2V5Q29kZT09PTEzJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0idGV4dGFyZWEifHxhLmtleUNvZGU9PT0zMiYmKGQ9PT0iY2hlY2tib3gifHxkPT09InJhZGlvIil8fGQ9PT0ic2VsZWN0LW11bHRpcGxlIilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxiZWZvcmVhY3RpdmF0ZTpmdW5jdGlvbihhKXthPWEudGFyZ2V0O2MuZGF0YShhLAoiX2NoYW5nZV9kYXRhIixGYShhKSl9fSxzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMudHlwZT09PSJmaWxlIilyZXR1cm4gZmFsc2U7Zm9yKHZhciBhIGluIGVhKWMuZXZlbnQuYWRkKHRoaXMsYSsiLnNwZWNpYWxDaGFuZ2UiLGVhW2FdKTtyZXR1cm4gZGEudGVzdCh0aGlzLm5vZGVOYW1lKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJlbW92ZSh0aGlzLCIuc3BlY2lhbENoYW5nZSIpO3JldHVybiBkYS50ZXN0KHRoaXMubm9kZU5hbWUpfX07ZWE9Yy5ldmVudC5zcGVjaWFsLmNoYW5nZS5maWx0ZXJzfXMuYWRkRXZlbnRMaXN0ZW5lciYmYy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoZil7Zj1jLmV2ZW50LmZpeChmKTtmLnR5cGU9YjtyZXR1cm4gYy5ldmVudC5oYW5kbGUuY2FsbCh0aGlzLGYpfWMuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYSwKZCx0cnVlKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxkLHRydWUpfX19KTtjLmVhY2goWyJiaW5kIiwib25lIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZixlKXtpZih0eXBlb2YgZD09PSJvYmplY3QiKXtmb3IodmFyIGogaW4gZCl0aGlzW2JdKGosZixkW2pdLGUpO3JldHVybiB0aGlzfWlmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d312YXIgaT1iPT09Im9uZSI/Yy5wcm94eShlLGZ1bmN0aW9uKGspe2ModGhpcykudW5iaW5kKGssaSk7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk6ZTtpZihkPT09InVubG9hZCImJmIhPT0ib25lIil0aGlzLm9uZShkLGYsZSk7ZWxzZXtqPTA7Zm9yKHZhciBvPXRoaXMubGVuZ3RoO2o8bztqKyspYy5ldmVudC5hZGQodGhpc1tqXSxkLGksZil9cmV0dXJuIHRoaXN9fSk7Yy5mbi5leHRlbmQoe3VuYmluZDpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09Im9iamVjdCImJgohYS5wcmV2ZW50RGVmYXVsdClmb3IodmFyIGQgaW4gYSl0aGlzLnVuYmluZChkLGFbZF0pO2Vsc2V7ZD0wO2Zvcih2YXIgZj10aGlzLmxlbmd0aDtkPGY7ZCsrKWMuZXZlbnQucmVtb3ZlKHRoaXNbZF0sYSxiKX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIHRoaXMubGl2ZShiLGQsZixhKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMudW5iaW5kKCJsaXZlIik6dGhpcy5kaWUoYixudWxsLGQsYSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNbMF0pe2E9Yy5FdmVudChhKTthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0pO3JldHVybiBhLnJlc3VsdH19LAp0b2dnbGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWFyZ3VtZW50cyxkPTE7ZDxiLmxlbmd0aDspYy5wcm94eShhLGJbZCsrXSk7cmV0dXJuIHRoaXMuY2xpY2soYy5wcm94eShhLGZ1bmN0aW9uKGYpe3ZhciBlPShjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkKXx8MCklZDtjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkLGUrMSk7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO3ZhciBHYT17Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0Iixtb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In07Yy5lYWNoKFsibGl2ZSIsImRpZSJdLGZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkLGYsZSxqKXt2YXIgaSxvPTAsayxuLHI9anx8dGhpcy5zZWxlY3RvciwKdT1qP3RoaXM6Yyh0aGlzLmNvbnRleHQpO2lmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d31mb3IoZD0oZHx8IiIpLnNwbGl0KCIgIik7KGk9ZFtvKytdKSE9bnVsbDspe2o9Ty5leGVjKGkpO2s9IiI7aWYoail7az1qWzBdO2k9aS5yZXBsYWNlKE8sIiIpfWlmKGk9PT0iaG92ZXIiKWQucHVzaCgibW91c2VlbnRlciIraywibW91c2VsZWF2ZSIrayk7ZWxzZXtuPWk7aWYoaT09PSJmb2N1cyJ8fGk9PT0iYmx1ciIpe2QucHVzaChHYVtpXStrKTtpKz1rfWVsc2UgaT0oR2FbaV18fGkpK2s7Yj09PSJsaXZlIj91LmVhY2goZnVuY3Rpb24oKXtjLmV2ZW50LmFkZCh0aGlzLHBhKGkscikse2RhdGE6ZixzZWxlY3RvcjpyLGhhbmRsZXI6ZSxvcmlnVHlwZTppLG9yaWdIYW5kbGVyOmUscHJlVHlwZTpufSl9KTp1LnVuYmluZChwYShpLHIpLGUpfX1yZXR1cm4gdGhpc319KTtjLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkKXtyZXR1cm4gZD90aGlzLmJpbmQoYixkKTp0aGlzLnRyaWdnZXIoYil9O2lmKGMuYXR0ckZuKWMuYXR0ckZuW2JdPXRydWV9KTtBLmF0dGFjaEV2ZW50JiYhQS5hZGRFdmVudExpc3RlbmVyJiZBLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gYy5jYWNoZSlpZihjLmNhY2hlW2FdLmhhbmRsZSl0cnl7Yy5ldmVudC5yZW1vdmUoYy5jYWNoZVthXS5oYW5kbGUuZWxlbSl9Y2F0Y2goYil7fX0pOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZyl7Zm9yKHZhciBoPSIiLGwsbT0wO2dbbV07bSsrKXtsPWdbbV07aWYobC5ub2RlVHlwZT09PTN8fGwubm9kZVR5cGU9PT00KWgrPWwubm9kZVZhbHVlO2Vsc2UgaWYobC5ub2RlVHlwZSE9PTgpaCs9YShsLmNoaWxkTm9kZXMpfXJldHVybiBofWZ1bmN0aW9uIGIoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTsKaWYodCl7dD10W2ddO2Zvcih2YXIgeT1mYWxzZTt0Oyl7aWYodC5zaXpjYWNoZT09PWwpe3k9bVt0LnNpenNldF07YnJlYWt9aWYodC5ub2RlVHlwZT09PTEmJiFwKXt0LnNpemNhY2hlPWw7dC5zaXpzZXQ9cX1pZih0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oKXt5PXQ7YnJlYWt9dD10W2ddfW1bcV09eX19fWZ1bmN0aW9uIGQoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTtpZih0KXt0PXRbZ107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hlPT09bCl7eT1tW3Quc2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSl7aWYoIXApe3Quc2l6Y2FjaGU9bDt0LnNpenNldD1xfWlmKHR5cGVvZiBoIT09InN0cmluZyIpe2lmKHQ9PT1oKXt5PXRydWU7YnJlYWt9fWVsc2UgaWYoay5maWx0ZXIoaCxbdF0pLmxlbmd0aD4wKXt5PXQ7YnJlYWt9fXQ9dFtnXX1tW3FdPXl9fX12YXIgZj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/KCg/Oi58XHJ8XG4pKikvZywKZT0wLGo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPWZhbHNlLG89dHJ1ZTtbMCwwXS5zb3J0KGZ1bmN0aW9uKCl7bz1mYWxzZTtyZXR1cm4gMH0pO3ZhciBrPWZ1bmN0aW9uKGcsaCxsLG0pe2w9bHx8W107dmFyIHE9aD1ofHxzO2lmKGgubm9kZVR5cGUhPT0xJiZoLm5vZGVUeXBlIT09OSlyZXR1cm5bXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4gbDtmb3IodmFyIHA9W10sdix0LHksUyxIPXRydWUsTT14KGgpLEk9ZzsoZi5leGVjKCIiKSx2PWYuZXhlYyhJKSkhPT1udWxsOyl7ST12WzNdO3AucHVzaCh2WzFdKTtpZih2WzJdKXtTPXZbM107YnJlYWt9fWlmKHAubGVuZ3RoPjEmJnIuZXhlYyhnKSlpZihwLmxlbmd0aD09PTImJm4ucmVsYXRpdmVbcFswXV0pdD1nYShwWzBdK3BbMV0saCk7ZWxzZSBmb3IodD1uLnJlbGF0aXZlW3BbMF1dP1toXTprKHAuc2hpZnQoKSxoKTtwLmxlbmd0aDspe2c9cC5zaGlmdCgpO2lmKG4ucmVsYXRpdmVbZ10pZys9cC5zaGlmdCgpOwp0PWdhKGcsdCl9ZWxzZXtpZighbSYmcC5sZW5ndGg+MSYmaC5ub2RlVHlwZT09PTkmJiFNJiZuLm1hdGNoLklELnRlc3QocFswXSkmJiFuLm1hdGNoLklELnRlc3QocFtwLmxlbmd0aC0xXSkpe3Y9ay5maW5kKHAuc2hpZnQoKSxoLE0pO2g9di5leHByP2suZmlsdGVyKHYuZXhwcix2LnNldClbMF06di5zZXRbMF19aWYoaCl7dj1tP3tleHByOnAucG9wKCksc2V0OnoobSl9OmsuZmluZChwLnBvcCgpLHAubGVuZ3RoPT09MSYmKHBbMF09PT0ifiJ8fHBbMF09PT0iKyIpJiZoLnBhcmVudE5vZGU/aC5wYXJlbnROb2RlOmgsTSk7dD12LmV4cHI/ay5maWx0ZXIodi5leHByLHYuc2V0KTp2LnNldDtpZihwLmxlbmd0aD4wKXk9eih0KTtlbHNlIEg9ZmFsc2U7Zm9yKDtwLmxlbmd0aDspe3ZhciBEPXAucG9wKCk7dj1EO2lmKG4ucmVsYXRpdmVbRF0pdj1wLnBvcCgpO2Vsc2UgRD0iIjtpZih2PT1udWxsKXY9aDtuLnJlbGF0aXZlW0RdKHksdixNKX19ZWxzZSB5PVtdfXl8fCh5PXQpO3l8fGsuZXJyb3IoRHx8CmcpO2lmKGouY2FsbCh5KT09PSJbb2JqZWN0IEFycmF5XSIpaWYoSClpZihoJiZoLm5vZGVUeXBlPT09MSlmb3IoZz0wO3lbZ10hPW51bGw7ZysrKXtpZih5W2ddJiYoeVtnXT09PXRydWV8fHlbZ10ubm9kZVR5cGU9PT0xJiZFKGgseVtnXSkpKWwucHVzaCh0W2ddKX1lbHNlIGZvcihnPTA7eVtnXSE9bnVsbDtnKyspeVtnXSYmeVtnXS5ub2RlVHlwZT09PTEmJmwucHVzaCh0W2ddKTtlbHNlIGwucHVzaC5hcHBseShsLHkpO2Vsc2Ugeih5LGwpO2lmKFMpe2soUyxxLGwsbSk7ay51bmlxdWVTb3J0KGwpfXJldHVybiBsfTtrLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZyl7aWYoQil7aT1vO2cuc29ydChCKTtpZihpKWZvcih2YXIgaD0xO2g8Zy5sZW5ndGg7aCsrKWdbaF09PT1nW2gtMV0mJmcuc3BsaWNlKGgtLSwxKX1yZXR1cm4gZ307ay5tYXRjaGVzPWZ1bmN0aW9uKGcsaCl7cmV0dXJuIGsoZyxudWxsLG51bGwsaCl9O2suZmluZD1mdW5jdGlvbihnLGgsbCl7dmFyIG0scTtpZighZylyZXR1cm5bXTsKZm9yKHZhciBwPTAsdj1uLm9yZGVyLmxlbmd0aDtwPHY7cCsrKXt2YXIgdD1uLm9yZGVyW3BdO2lmKHE9bi5sZWZ0TWF0Y2hbdF0uZXhlYyhnKSl7dmFyIHk9cVsxXTtxLnNwbGljZSgxLDEpO2lmKHkuc3Vic3RyKHkubGVuZ3RoLTEpIT09IlxcIil7cVsxXT0ocVsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO209bi5maW5kW3RdKHEsaCxsKTtpZihtIT1udWxsKXtnPWcucmVwbGFjZShuLm1hdGNoW3RdLCIiKTticmVha319fX1tfHwobT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO3JldHVybntzZXQ6bSxleHByOmd9fTtrLmZpbHRlcj1mdW5jdGlvbihnLGgsbCxtKXtmb3IodmFyIHE9ZyxwPVtdLHY9aCx0LHksUz1oJiZoWzBdJiZ4KGhbMF0pO2cmJmgubGVuZ3RoOyl7Zm9yKHZhciBIIGluIG4uZmlsdGVyKWlmKCh0PW4ubGVmdE1hdGNoW0hdLmV4ZWMoZykpIT1udWxsJiZ0WzJdKXt2YXIgTT1uLmZpbHRlcltIXSxJLEQ7RD10WzFdO3k9ZmFsc2U7dC5zcGxpY2UoMSwxKTtpZihELnN1YnN0cihELmxlbmd0aC0KMSkhPT0iXFwiKXtpZih2PT09cClwPVtdO2lmKG4ucHJlRmlsdGVyW0hdKWlmKHQ9bi5wcmVGaWx0ZXJbSF0odCx2LGwscCxtLFMpKXtpZih0PT09dHJ1ZSljb250aW51ZX1lbHNlIHk9ST10cnVlO2lmKHQpZm9yKHZhciBVPTA7KEQ9dltVXSkhPW51bGw7VSsrKWlmKEQpe0k9TShELHQsVSx2KTt2YXIgSGE9bV4hIUk7aWYobCYmSSE9bnVsbClpZihIYSl5PXRydWU7ZWxzZSB2W1VdPWZhbHNlO2Vsc2UgaWYoSGEpe3AucHVzaChEKTt5PXRydWV9fWlmKEkhPT13KXtsfHwodj1wKTtnPWcucmVwbGFjZShuLm1hdGNoW0hdLCIiKTtpZigheSlyZXR1cm5bXTticmVha319fWlmKGc9PT1xKWlmKHk9PW51bGwpay5lcnJvcihnKTtlbHNlIGJyZWFrO3E9Z31yZXR1cm4gdn07ay5lcnJvcj1mdW5jdGlvbihnKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2c7fTt2YXIgbj1rLnNlbGVjdG9ycz17b3JkZXI6WyJJRCIsIk5BTUUiLCJUQUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKS8sCkNMQVNTOi9cLigoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKVsnIl0qXF0vLEFUVFI6L1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKylccyooPzooXFM/PSlccyooWyciXSopKC4qPylcM3wpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCotXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKykoPzpcKChbJyJdPykoKD86XChbXlwpXStcKXxbXlwoXCldKikrKVwyXCkpPy99LGxlZnRNYXRjaDp7fSxhdHRyTWFwOnsiY2xhc3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7aHJlZjpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LApyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIixtPWwmJiEvXFcvLnRlc3QoaCk7bD1sJiYhbTtpZihtKWg9aC50b0xvd2VyQ2FzZSgpO209MDtmb3IodmFyIHE9Zy5sZW5ndGgscDttPHE7bSsrKWlmKHA9Z1ttXSl7Zm9yKDsocD1wLnByZXZpb3VzU2libGluZykmJnAubm9kZVR5cGUhPT0xOyk7Z1ttXT1sfHxwJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP3B8fGZhbHNlOnA9PT1ofWwmJmsuZmlsdGVyKGgsZyx0cnVlKX0sIj4iOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIjtpZihsJiYhL1xXLy50ZXN0KGgpKXtoPWgudG9Mb3dlckNhc2UoKTtmb3IodmFyIG09MCxxPWcubGVuZ3RoO208cTttKyspe3ZhciBwPWdbbV07aWYocCl7bD1wLnBhcmVudE5vZGU7Z1ttXT1sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP2w6ZmFsc2V9fX1lbHNle209MDtmb3IocT1nLmxlbmd0aDttPHE7bSsrKWlmKHA9Z1ttXSlnW21dPQpsP3AucGFyZW50Tm9kZTpwLnBhcmVudE5vZGU9PT1oO2wmJmsuZmlsdGVyKGgsZyx0cnVlKX19LCIiOmZ1bmN0aW9uKGcsaCxsKXt2YXIgbT1lKysscT1kO2lmKHR5cGVvZiBoPT09InN0cmluZyImJiEvXFcvLnRlc3QoaCkpe3ZhciBwPWg9aC50b0xvd2VyQ2FzZSgpO3E9Yn1xKCJwYXJlbnROb2RlIixoLG0sZyxwLGwpfSwifiI6ZnVuY3Rpb24oZyxoLGwpe3ZhciBtPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFyIHA9aD1oLnRvTG93ZXJDYXNlKCk7cT1ifXEoInByZXZpb3VzU2libGluZyIsaCxtLGcscCxsKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGcsaCxsKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhbClyZXR1cm4oZz1oLmdldEVsZW1lbnRCeUlkKGdbMV0pKT9bZ106W119LE5BTUU6ZnVuY3Rpb24oZyxoKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50c0J5TmFtZSE9PSJ1bmRlZmluZWQiKXt2YXIgbD1bXTsKaD1oLmdldEVsZW1lbnRzQnlOYW1lKGdbMV0pO2Zvcih2YXIgbT0wLHE9aC5sZW5ndGg7bTxxO20rKyloW21dLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09Z1sxXSYmbC5wdXNoKGhbbV0pO3JldHVybiBsLmxlbmd0aD09PTA/bnVsbDpsfX0sVEFHOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGguZ2V0RWxlbWVudHNCeVRhZ05hbWUoZ1sxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtnPSIgIitnWzFdLnJlcGxhY2UoL1xcL2csIiIpKyIgIjtpZihwKXJldHVybiBnO3A9MDtmb3IodmFyIHY7KHY9aFtwXSkhPW51bGw7cCsrKWlmKHYpaWYocV4odi5jbGFzc05hbWUmJigiICIrdi5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKC9bXHRcbl0vZywiICIpLmluZGV4T2YoZyk+PTApKWx8fG0ucHVzaCh2KTtlbHNlIGlmKGwpaFtwXT1mYWxzZTtyZXR1cm4gZmFsc2V9LElEOmZ1bmN0aW9uKGcpe3JldHVybiBnWzFdLnJlcGxhY2UoL1xcL2csIiIpfSxUQUc6ZnVuY3Rpb24oZyl7cmV0dXJuIGdbMV0udG9Mb3dlckNhc2UoKX0sCkNISUxEOmZ1bmN0aW9uKGcpe2lmKGdbMV09PT0ibnRoIil7dmFyIGg9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhnWzJdPT09ImV2ZW4iJiYiMm4ifHxnWzJdPT09Im9kZCImJiIybisxInx8IS9cRC8udGVzdChnWzJdKSYmIjBuKyIrZ1syXXx8Z1syXSk7Z1syXT1oWzFdKyhoWzJdfHwxKS0wO2dbM109aFszXS0wfWdbMF09ZSsrO3JldHVybiBnfSxBVFRSOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtoPWdbMV0ucmVwbGFjZSgvXFwvZywiIik7aWYoIXAmJm4uYXR0ck1hcFtoXSlnWzFdPW4uYXR0ck1hcFtoXTtpZihnWzJdPT09In49IilnWzRdPSIgIitnWzRdKyIgIjtyZXR1cm4gZ30sUFNFVURPOmZ1bmN0aW9uKGcsaCxsLG0scSl7aWYoZ1sxXT09PSJub3QiKWlmKChmLmV4ZWMoZ1szXSl8fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChnWzNdKSlnWzNdPWsoZ1szXSxudWxsLG51bGwsaCk7ZWxzZXtnPWsuZmlsdGVyKGdbM10saCxsLHRydWVecSk7bHx8bS5wdXNoLmFwcGx5KG0sCmcpO3JldHVybiBmYWxzZX1lbHNlIGlmKG4ubWF0Y2guUE9TLnRlc3QoZ1swXSl8fG4ubWF0Y2guQ0hJTEQudGVzdChnWzBdKSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZ30sUE9TOmZ1bmN0aW9uKGcpe2cudW5zaGlmdCh0cnVlKTtyZXR1cm4gZ319LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZGlzYWJsZWQ9PT1mYWxzZSYmZy50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmRpc2FibGVkPT09dHJ1ZX0sY2hlY2tlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5jaGVja2VkPT09dHJ1ZX0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuc2VsZWN0ZWQ9PT10cnVlfSxwYXJlbnQ6ZnVuY3Rpb24oZyl7cmV0dXJuISFnLmZpcnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKGcpe3JldHVybiFnLmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihnLGgsbCl7cmV0dXJuISFrKGxbM10sZykubGVuZ3RofSxoZWFkZXI6ZnVuY3Rpb24oZyl7cmV0dXJuL2hcZC9pLnRlc3QoZy5ub2RlTmFtZSl9LAp0ZXh0OmZ1bmN0aW9uKGcpe3JldHVybiJ0ZXh0Ij09PWcudHlwZX0scmFkaW86ZnVuY3Rpb24oZyl7cmV0dXJuInJhZGlvIj09PWcudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oZyl7cmV0dXJuImNoZWNrYm94Ij09PWcudHlwZX0sZmlsZTpmdW5jdGlvbihnKXtyZXR1cm4iZmlsZSI9PT1nLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGcpe3JldHVybiJwYXNzd29yZCI9PT1nLnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihnKXtyZXR1cm4ic3VibWl0Ij09PWcudHlwZX0saW1hZ2U6ZnVuY3Rpb24oZyl7cmV0dXJuImltYWdlIj09PWcudHlwZX0scmVzZXQ6ZnVuY3Rpb24oZyl7cmV0dXJuInJlc2V0Ij09PWcudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKGcpe3JldHVybiJidXR0b24iPT09Zy50eXBlfHxnLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oZyl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGcubm9kZU5hbWUpfX0sCnNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGg9PT0wfSxsYXN0OmZ1bmN0aW9uKGcsaCxsLG0pe3JldHVybiBoPT09bS5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihnLGgpe3JldHVybiBoJTI9PT0wfSxvZGQ6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaCUyPT09MX0sbHQ6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPGxbM10tMH0sZ3Q6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPmxbM10tMH0sbnRoOmZ1bmN0aW9uKGcsaCxsKXtyZXR1cm4gbFszXS0wPT09aH0sZXE6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBsWzNdLTA9PT1ofX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oZyxoLGwsbSl7dmFyIHE9aFsxXSxwPW4uZmlsdGVyc1txXTtpZihwKXJldHVybiBwKGcsbCxoLG0pO2Vsc2UgaWYocT09PSJjb250YWlucyIpcmV0dXJuKGcudGV4dENvbnRlbnR8fGcuaW5uZXJUZXh0fHxhKFtnXSl8fCIiKS5pbmRleE9mKGhbM10pPj0wO2Vsc2UgaWYocT09PSJub3QiKXtoPQpoWzNdO2w9MDtmb3IobT1oLmxlbmd0aDtsPG07bCsrKWlmKGhbbF09PT1nKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX1lbHNlIGsuZXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrcSl9LENISUxEOmZ1bmN0aW9uKGcsaCl7dmFyIGw9aFsxXSxtPWc7c3dpdGNoKGwpe2Nhc2UgIm9ubHkiOmNhc2UgImZpcnN0Ijpmb3IoO209bS5wcmV2aW91c1NpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtpZihsPT09ImZpcnN0IilyZXR1cm4gdHJ1ZTttPWc7Y2FzZSAibGFzdCI6Zm9yKDttPW0ubmV4dFNpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZTtjYXNlICJudGgiOmw9aFsyXTt2YXIgcT1oWzNdO2lmKGw9PT0xJiZxPT09MClyZXR1cm4gdHJ1ZTtoPWhbMF07dmFyIHA9Zy5wYXJlbnROb2RlO2lmKHAmJihwLnNpemNhY2hlIT09aHx8IWcubm9kZUluZGV4KSl7dmFyIHY9MDtmb3IobT1wLmZpcnN0Q2hpbGQ7bTttPQptLm5leHRTaWJsaW5nKWlmKG0ubm9kZVR5cGU9PT0xKW0ubm9kZUluZGV4PSsrdjtwLnNpemNhY2hlPWh9Zz1nLm5vZGVJbmRleC1xO3JldHVybiBsPT09MD9nPT09MDpnJWw9PT0wJiZnL2w+PTB9fSxJRDpmdW5jdGlvbihnLGgpe3JldHVybiBnLm5vZGVUeXBlPT09MSYmZy5nZXRBdHRyaWJ1dGUoImlkIik9PT1ofSxUQUc6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaD09PSIqIiYmZy5ub2RlVHlwZT09PTF8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWh9LENMQVNTOmZ1bmN0aW9uKGcsaCl7cmV0dXJuKCIgIisoZy5jbGFzc05hbWV8fGcuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSsiICIpLmluZGV4T2YoaCk+LTF9LEFUVFI6ZnVuY3Rpb24oZyxoKXt2YXIgbD1oWzFdO2c9bi5hdHRySGFuZGxlW2xdP24uYXR0ckhhbmRsZVtsXShnKTpnW2xdIT1udWxsP2dbbF06Zy5nZXRBdHRyaWJ1dGUobCk7bD1nKyIiO3ZhciBtPWhbMl07aD1oWzRdO3JldHVybiBnPT1udWxsP209PT0iIT0iOm09PT0KIj0iP2w9PT1oOm09PT0iKj0iP2wuaW5kZXhPZihoKT49MDptPT09In49Ij8oIiAiK2wrIiAiKS5pbmRleE9mKGgpPj0wOiFoP2wmJmchPT1mYWxzZTptPT09IiE9Ij9sIT09aDptPT09Il49Ij9sLmluZGV4T2YoaCk9PT0wOm09PT0iJD0iP2wuc3Vic3RyKGwubGVuZ3RoLWgubGVuZ3RoKT09PWg6bT09PSJ8PSI/bD09PWh8fGwuc3Vic3RyKDAsaC5sZW5ndGgrMSk9PT1oKyItIjpmYWxzZX0sUE9TOmZ1bmN0aW9uKGcsaCxsLG0pe3ZhciBxPW4uc2V0RmlsdGVyc1toWzJdXTtpZihxKXJldHVybiBxKGcsbCxoLG0pfX19LHI9bi5tYXRjaC5QT1M7Zm9yKHZhciB1IGluIG4ubWF0Y2gpe24ubWF0Y2hbdV09bmV3IFJlZ0V4cChuLm1hdGNoW3VdLnNvdXJjZSsvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpO24ubGVmdE1hdGNoW3VdPW5ldyBSZWdFeHAoLyheKD86LnxccnxcbikqPykvLnNvdXJjZStuLm1hdGNoW3VdLnNvdXJjZS5yZXBsYWNlKC9cXChcZCspL2csZnVuY3Rpb24oZywKaCl7cmV0dXJuIlxcIisoaC0wKzEpfSkpfXZhciB6PWZ1bmN0aW9uKGcsaCl7Zz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChnLDApO2lmKGgpe2gucHVzaC5hcHBseShoLGcpO3JldHVybiBofXJldHVybiBnfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKX1jYXRjaChDKXt6PWZ1bmN0aW9uKGcsaCl7aD1ofHxbXTtpZihqLmNhbGwoZyk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGgsZyk7ZWxzZSBpZih0eXBlb2YgZy5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIGw9MCxtPWcubGVuZ3RoO2w8bTtsKyspaC5wdXNoKGdbbF0pO2Vsc2UgZm9yKGw9MDtnW2xdO2wrKyloLnB1c2goZ1tsXSk7cmV0dXJuIGh9fXZhciBCO2lmKHMuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKUI9ZnVuY3Rpb24oZyxoKXtpZighZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbnx8CiFoLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtpZihnPT1oKWk9dHJ1ZTtyZXR1cm4gZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxfWc9Zy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihoKSY0Py0xOmc9PT1oPzA6MTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9O2Vsc2UgaWYoInNvdXJjZUluZGV4ImluIHMuZG9jdW1lbnRFbGVtZW50KUI9ZnVuY3Rpb24oZyxoKXtpZighZy5zb3VyY2VJbmRleHx8IWguc291cmNlSW5kZXgpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLnNvdXJjZUluZGV4Py0xOjF9Zz1nLnNvdXJjZUluZGV4LWguc291cmNlSW5kZXg7aWYoZz09PTApaT10cnVlO3JldHVybiBnfTtlbHNlIGlmKHMuY3JlYXRlUmFuZ2UpQj1mdW5jdGlvbihnLGgpe2lmKCFnLm93bmVyRG9jdW1lbnR8fCFoLm93bmVyRG9jdW1lbnQpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLm93bmVyRG9jdW1lbnQ/LTE6MX12YXIgbD1nLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxtPQpoLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtsLnNldFN0YXJ0KGcsMCk7bC5zZXRFbmQoZywwKTttLnNldFN0YXJ0KGgsMCk7bS5zZXRFbmQoaCwwKTtnPWwuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX0VORCxtKTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9OyhmdW5jdGlvbigpe3ZhciBnPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksaD0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtnLmlubmVySFRNTD0iPGEgbmFtZT0nIitoKyInLz4iO3ZhciBsPXMuZG9jdW1lbnRFbGVtZW50O2wuaW5zZXJ0QmVmb3JlKGcsbC5maXJzdENoaWxkKTtpZihzLmdldEVsZW1lbnRCeUlkKGgpKXtuLmZpbmQuSUQ9ZnVuY3Rpb24obSxxLHApe2lmKHR5cGVvZiBxLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFwKXJldHVybihxPXEuZ2V0RWxlbWVudEJ5SWQobVsxXSkpP3EuaWQ9PT1tWzFdfHx0eXBlb2YgcS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJgpxLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09bVsxXT9bcV06dzpbXX07bi5maWx0ZXIuSUQ9ZnVuY3Rpb24obSxxKXt2YXIgcD10eXBlb2YgbS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJm0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbS5ub2RlVHlwZT09PTEmJnAmJnAubm9kZVZhbHVlPT09cX19bC5yZW1vdmVDaGlsZChnKTtsPWc9bnVsbH0pKCk7KGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmFwcGVuZENoaWxkKHMuY3JlYXRlQ29tbWVudCgiIikpO2lmKGcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCluLmZpbmQuVEFHPWZ1bmN0aW9uKGgsbCl7bD1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKGhbMV0pO2lmKGhbMV09PT0iKiIpe2g9W107Zm9yKHZhciBtPTA7bFttXTttKyspbFttXS5ub2RlVHlwZT09PTEmJmgucHVzaChsW21dKTtsPWh9cmV0dXJuIGx9O2cuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IjsKaWYoZy5maXJzdENoaWxkJiZ0eXBlb2YgZy5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSE9PSJ1bmRlZmluZWQiJiZnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIikhPT0iIyIpbi5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oaCl7cmV0dXJuIGguZ2V0QXR0cmlidXRlKCJocmVmIiwyKX07Zz1udWxsfSkoKTtzLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0aW9uKCl7dmFyIGc9ayxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5pbm5lckhUTUw9IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighKGgucXVlcnlTZWxlY3RvckFsbCYmaC5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApKXtrPWZ1bmN0aW9uKG0scSxwLHYpe3E9cXx8cztpZighdiYmcS5ub2RlVHlwZT09PTkmJiF4KHEpKXRyeXtyZXR1cm4geihxLnF1ZXJ5U2VsZWN0b3JBbGwobSkscCl9Y2F0Y2godCl7fXJldHVybiBnKG0scSxwLHYpfTtmb3IodmFyIGwgaW4gZylrW2xdPWdbbF07aD1udWxsfX0oKTsKKGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKCEoIWcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZXx8Zy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MCkpe2cubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoIT09MSl7bi5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpO24uZmluZC5DTEFTUz1mdW5jdGlvbihoLGwsbSl7aWYodHlwZW9mIGwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmluZWQiJiYhbSlyZXR1cm4gbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGhbMV0pfTtnPW51bGx9fX0pKCk7dmFyIEU9cy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihnLGgpe3JldHVybiEhKGcuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaCkmMTYpfToKZnVuY3Rpb24oZyxoKXtyZXR1cm4gZyE9PWgmJihnLmNvbnRhaW5zP2cuY29udGFpbnMoaCk6dHJ1ZSl9LHg9ZnVuY3Rpb24oZyl7cmV0dXJuKGc9KGc/Zy5vd25lckRvY3VtZW50fHxnOjApLmRvY3VtZW50RWxlbWVudCk/Zy5ub2RlTmFtZSE9PSJIVE1MIjpmYWxzZX0sZ2E9ZnVuY3Rpb24oZyxoKXt2YXIgbD1bXSxtPSIiLHE7Zm9yKGg9aC5ub2RlVHlwZT9baF06aDtxPW4ubWF0Y2guUFNFVURPLmV4ZWMoZyk7KXttKz1xWzBdO2c9Zy5yZXBsYWNlKG4ubWF0Y2guUFNFVURPLCIiKX1nPW4ucmVsYXRpdmVbZ10/ZysiKiI6ZztxPTA7Zm9yKHZhciBwPWgubGVuZ3RoO3E8cDtxKyspayhnLGhbcV0sbCk7cmV0dXJuIGsuZmlsdGVyKG0sbCl9O2MuZmluZD1rO2MuZXhwcj1rLnNlbGVjdG9ycztjLmV4cHJbIjoiXT1jLmV4cHIuZmlsdGVycztjLnVuaXF1ZT1rLnVuaXF1ZVNvcnQ7Yy50ZXh0PWE7Yy5pc1hNTERvYz14O2MuY29udGFpbnM9RX0pKCk7dmFyIGViPS9VbnRpbCQvLGZiPS9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLApnYj0vLC87Uj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dmFyIElhPWZ1bmN0aW9uKGEsYixkKXtpZihjLmlzRnVuY3Rpb24oYikpcmV0dXJuIGMuZ3JlcChhLGZ1bmN0aW9uKGUsail7cmV0dXJuISFiLmNhbGwoZSxqLGUpPT09ZH0pO2Vsc2UgaWYoYi5ub2RlVHlwZSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1iPT09ZH0pO2Vsc2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGY9Yy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZVR5cGU9PT0xfSk7aWYoVWEudGVzdChiKSlyZXR1cm4gYy5maWx0ZXIoYixmLCFkKTtlbHNlIGI9Yy5maWx0ZXIoYixmKX1yZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGMuaW5BcnJheShlLGIpPj0wPT09ZH0pfTtjLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5wdXNoU3RhY2soIiIsImZpbmQiLGEpLGQ9MCxmPTAsZT10aGlzLmxlbmd0aDtmPGU7ZisrKXtkPWIubGVuZ3RoOwpjLmZpbmQoYSx0aGlzW2ZdLGIpO2lmKGY+MClmb3IodmFyIGo9ZDtqPGIubGVuZ3RoO2orKylmb3IodmFyIGk9MDtpPGQ7aSsrKWlmKGJbaV09PT1iW2pdKXtiLnNwbGljZShqLS0sMSk7YnJlYWt9fXJldHVybiBifSxoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9YyhhKTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGQ9MCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYy5jb250YWlucyh0aGlzLGJbZF0pKXJldHVybiB0cnVlfSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soSWEodGhpcyxhLGZhbHNlKSwibm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhJYSh0aGlzLGEsdHJ1ZSksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhYSYmYy5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MH0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2lmKGMuaXNBcnJheShhKSl7dmFyIGQ9W10sZj10aGlzWzBdLGUsaj0Ke30saTtpZihmJiZhLmxlbmd0aCl7ZT0wO2Zvcih2YXIgbz1hLmxlbmd0aDtlPG87ZSsrKXtpPWFbZV07altpXXx8KGpbaV09Yy5leHByLm1hdGNoLlBPUy50ZXN0KGkpP2MoaSxifHx0aGlzLmNvbnRleHQpOmkpfWZvcig7ZiYmZi5vd25lckRvY3VtZW50JiZmIT09Yjspe2ZvcihpIGluIGope2U9altpXTtpZihlLmpxdWVyeT9lLmluZGV4KGYpPi0xOmMoZikuaXMoZSkpe2QucHVzaCh7c2VsZWN0b3I6aSxlbGVtOmZ9KTtkZWxldGUgaltpXX19Zj1mLnBhcmVudE5vZGV9fXJldHVybiBkfXZhciBrPWMuZXhwci5tYXRjaC5QT1MudGVzdChhKT9jKGEsYnx8dGhpcy5jb250ZXh0KTpudWxsO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuLHIpe2Zvcig7ciYmci5vd25lckRvY3VtZW50JiZyIT09Yjspe2lmKGs/ay5pbmRleChyKT4tMTpjKHIpLmlzKGEpKXJldHVybiByO3I9ci5wYXJlbnROb2RlfXJldHVybiBudWxsfSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lmKCFhfHx0eXBlb2YgYT09PQoic3RyaW5nIilyZXR1cm4gYy5pbkFycmF5KHRoaXNbMF0sYT9jKGEpOnRoaXMucGFyZW50KCkuY2hpbGRyZW4oKSk7cmV0dXJuIGMuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9LGFkZDpmdW5jdGlvbihhLGIpe2E9dHlwZW9mIGE9PT0ic3RyaW5nIj9jKGEsYnx8dGhpcy5jb250ZXh0KTpjLm1ha2VBcnJheShhKTtiPWMubWVyZ2UodGhpcy5nZXQoKSxhKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2socWEoYVswXSl8fHFhKGJbMF0pP2I6Yy51bmlxdWUoYikpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSk7Yy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5wYXJlbnROb2RlKSYmYS5ub2RlVHlwZSE9PTExP2E6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIiwKZCl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMuZGlyKGEsIm5leHRTaWJsaW5nIixkKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixkKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5ub2RlTmFtZShhLCJpZnJhbWUiKT8KYS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpjLm1ha2VBcnJheShhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQsZil7dmFyIGU9Yy5tYXAodGhpcyxiLGQpO2ViLnRlc3QoYSl8fChmPWQpO2lmKGYmJnR5cGVvZiBmPT09InN0cmluZyIpZT1jLmZpbHRlcihmLGUpO2U9dGhpcy5sZW5ndGg+MT9jLnVuaXF1ZShlKTplO2lmKCh0aGlzLmxlbmd0aD4xfHxnYi50ZXN0KGYpKSYmZmIudGVzdChhKSllPWUucmV2ZXJzZSgpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlLGEsUi5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX19KTtjLmV4dGVuZCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYixkKXtpZihkKWE9Ijpub3QoIithKyIpIjtyZXR1cm4gYy5maW5kLm1hdGNoZXMoYSxiKX0sZGlyOmZ1bmN0aW9uKGEsYixkKXt2YXIgZj1bXTtmb3IoYT1hW2JdO2EmJmEubm9kZVR5cGUhPT05JiYoZD09PXd8fGEubm9kZVR5cGUhPT0xfHwhYyhhKS5pcyhkKSk7KXthLm5vZGVUeXBlPT09CjEmJmYucHVzaChhKTthPWFbYl19cmV0dXJuIGZ9LG50aDpmdW5jdGlvbihhLGIsZCl7Yj1ifHwxO2Zvcih2YXIgZj0wO2E7YT1hW2RdKWlmKGEubm9kZVR5cGU9PT0xJiYrK2Y9PT1iKWJyZWFrO3JldHVybiBhfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPVtdO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5cGU9PT0xJiZhIT09YiYmZC5wdXNoKGEpO3JldHVybiBkfX0pO3ZhciBKYT0vIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLFY9L15ccysvLEthPS8oPChbXHc6XSspW14+XSo/KVwvPi9nLGhiPS9eKD86YXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkkL2ksTGE9LzwoW1x3Ol0rKS8saWI9Lzx0Ym9keS9pLGpiPS88fCYjP1x3KzsvLHRhPS88c2NyaXB0fDxvYmplY3R8PGVtYmVkfDxvcHRpb258PHN0eWxlL2ksdWE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksTWE9ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBoYi50ZXN0KGQpPwphOmIrIj48LyIrZCsiPiJ9LEY9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07Ri5vcHRncm91cD1GLm9wdGlvbjtGLnRib2R5PUYudGZvb3Q9Ri5jb2xncm91cD1GLmNhcHRpb249Ri50aGVhZDtGLnRoPUYudGQ7aWYoIWMuc3VwcG9ydC5odG1sU2VyaWFsaXplKUYuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il07Yy5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9CmModGhpcyk7ZC50ZXh0KGEuY2FsbCh0aGlzLGIsZC50ZXh0KCkpKX0pO2lmKHR5cGVvZiBhIT09Im9iamVjdCImJmEhPT13KXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHMpLmNyZWF0ZVRleHROb2RlKGEpKTtyZXR1cm4gYy50ZXh0KHRoaXMpfSx3cmFwQWxsOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGQpe2ModGhpcykud3JhcEFsbChhLmNhbGwodGhpcyxkKSl9KTtpZih0aGlzWzBdKXt2YXIgYj1jKGEsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSh0cnVlKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pO2IubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPXRoaXM7ZC5maXJzdENoaWxkJiZkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0xOylkPWQuZmlyc3RDaGlsZDtyZXR1cm4gZH0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sCndyYXBJbm5lcjpmdW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtjKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKSxkPWIuY29udGVudHMoKTtkLmxlbmd0aD9kLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS53cmFwQWxsKGEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtjLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8Yyh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmFwcGVuZENoaWxkKGEpfSl9LApwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuaW5zZXJ0QmVmb3JlKGEsdGhpcy5maXJzdENoaWxkKX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYix0aGlzKX0pO2Vsc2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9Yyhhcmd1bWVudHNbMF0pO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYiwKdGhpcy5uZXh0U2libGluZyl9KTtlbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGMoYXJndW1lbnRzWzBdKS50b0FycmF5KCkpO3JldHVybiBhfX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPTAsZjsoZj10aGlzW2RdKSE9bnVsbDtkKyspaWYoIWF8fGMuZmlsdGVyKGEsW2ZdKS5sZW5ndGgpe2lmKCFiJiZmLm5vZGVUeXBlPT09MSl7Yy5jbGVhbkRhdGEoZi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtjLmNsZWFuRGF0YShbZl0pfWYucGFyZW50Tm9kZSYmZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGYpfXJldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI7KGI9dGhpc1thXSkhPW51bGw7YSsrKWZvcihiLm5vZGVUeXBlPT09MSYmYy5jbGVhbkRhdGEoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtiLmZpcnN0Q2hpbGQ7KWIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKTsKcmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwKGZ1bmN0aW9uKCl7aWYoIWMuc3VwcG9ydC5ub0Nsb25lRXZlbnQmJiFjLmlzWE1MRG9jKHRoaXMpKXt2YXIgZD10aGlzLm91dGVySFRNTCxmPXRoaXMub3duZXJEb2N1bWVudDtpZighZCl7ZD1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUodHJ1ZSkpO2Q9ZC5pbm5lckhUTUx9cmV0dXJuIGMuY2xlYW4oW2QucmVwbGFjZShKYSwiIikucmVwbGFjZSgvPShbXj0iJz5cc10rXC8pPi9nLCc9IiQxIj4nKS5yZXBsYWNlKFYsIiIpXSxmKVswXX1lbHNlIHJldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKX0pO2lmKGE9PT10cnVlKXtyYSh0aGlzLGIpO3JhKHRoaXMuZmluZCgiKiIpLGIuZmluZCgiKiIpKX1yZXR1cm4gYn0saHRtbDpmdW5jdGlvbihhKXtpZihhPT09dylyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5ub2RlVHlwZT09PTE/dGhpc1swXS5pbm5lckhUTUwucmVwbGFjZShKYSwKIiIpOm51bGw7ZWxzZSBpZih0eXBlb2YgYT09PSJzdHJpbmciJiYhdGEudGVzdChhKSYmKGMuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZXx8IVYudGVzdChhKSkmJiFGWyhMYS5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1hLnJlcGxhY2UoS2EsTWEpO3RyeXtmb3IodmFyIGI9MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYodGhpc1tiXS5ub2RlVHlwZT09PTEpe2MuY2xlYW5EYXRhKHRoaXNbYl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7dGhpc1tiXS5pbm5lckhUTUw9YX19Y2F0Y2goZil7dGhpcy5lbXB0eSgpLmFwcGVuZChhKX19ZWxzZSBjLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBqPWModGhpcyksaT1qLmh0bWwoKTtqLmVtcHR5KCkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIGEuY2FsbCh0aGlzLGUsaSl9KX0pOnRoaXMuZW1wdHkoKS5hcHBlbmQoYSk7cmV0dXJuIHRoaXN9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGEpe2lmKHRoaXNbMF0mJgp0aGlzWzBdLnBhcmVudE5vZGUpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWModGhpcyksZj1kLmh0bWwoKTtkLnJlcGxhY2VXaXRoKGEuY2FsbCh0aGlzLGIsZikpfSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilhPWMoYSkuZGV0YWNoKCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsZD10aGlzLnBhcmVudE5vZGU7Yyh0aGlzKS5yZW1vdmUoKTtiP2MoYikuYmVmb3JlKGEpOmMoZCkuYXBwZW5kKGEpfSl9ZWxzZSByZXR1cm4gdGhpcy5wdXNoU3RhY2soYyhjLmlzRnVuY3Rpb24oYSk/YSgpOmEpLCJyZXBsYWNlV2l0aCIsYSl9LGRldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSx0cnVlKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYodSl7cmV0dXJuIGMubm9kZU5hbWUodSwidGFibGUiKT91LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHwKdS5hcHBlbmRDaGlsZCh1Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6dX12YXIgZSxqLGk9YVswXSxvPVtdLGs7aWYoIWMuc3VwcG9ydC5jaGVja0Nsb25lJiZhcmd1bWVudHMubGVuZ3RoPT09MyYmdHlwZW9mIGk9PT0ic3RyaW5nIiYmdWEudGVzdChpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5kb21NYW5pcChhLGIsZCx0cnVlKX0pO2lmKGMuaXNGdW5jdGlvbihpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHUpe3ZhciB6PWModGhpcyk7YVswXT1pLmNhbGwodGhpcyx1LGI/ei5odG1sKCk6dyk7ei5kb21NYW5pcChhLGIsZCl9KTtpZih0aGlzWzBdKXtlPWkmJmkucGFyZW50Tm9kZTtlPWMuc3VwcG9ydC5wYXJlbnROb2RlJiZlJiZlLm5vZGVUeXBlPT09MTEmJmUuY2hpbGROb2Rlcy5sZW5ndGg9PT10aGlzLmxlbmd0aD97ZnJhZ21lbnQ6ZX06c2EoYSx0aGlzLG8pO2s9ZS5mcmFnbWVudDtpZihqPWsuY2hpbGROb2Rlcy5sZW5ndGg9PT0KMT8oaz1rLmZpcnN0Q2hpbGQpOmsuZmlyc3RDaGlsZCl7Yj1iJiZjLm5vZGVOYW1lKGosInRyIik7Zm9yKHZhciBuPTAscj10aGlzLmxlbmd0aDtuPHI7bisrKWQuY2FsbChiP2YodGhpc1tuXSxqKTp0aGlzW25dLG4+MHx8ZS5jYWNoZWFibGV8fHRoaXMubGVuZ3RoPjE/ay5jbG9uZU5vZGUodHJ1ZSk6ayl9by5sZW5ndGgmJmMuZWFjaChvLFFhKX1yZXR1cm4gdGhpc319KTtjLmZyYWdtZW50cz17fTtjLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCl7dmFyIGY9W107ZD1jKGQpO3ZhciBlPXRoaXMubGVuZ3RoPT09MSYmdGhpc1swXS5wYXJlbnROb2RlO2lmKGUmJmUubm9kZVR5cGU9PT0xMSYmZS5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJmQubGVuZ3RoPT09MSl7ZFtiXSh0aGlzWzBdKTsKcmV0dXJuIHRoaXN9ZWxzZXtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPShlPjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtjLmZuW2JdLmFwcGx5KGMoZFtlXSksaSk7Zj1mLmNvbmNhdChpKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soZixhLGQuc2VsZWN0b3IpfX19KTtjLmV4dGVuZCh7Y2xlYW46ZnVuY3Rpb24oYSxiLGQsZil7Yj1ifHxzO2lmKHR5cGVvZiBiLmNyZWF0ZUVsZW1lbnQ9PT0idW5kZWZpbmVkIiliPWIub3duZXJEb2N1bWVudHx8YlswXSYmYlswXS5vd25lckRvY3VtZW50fHxzO2Zvcih2YXIgZT1bXSxqPTAsaTsoaT1hW2pdKSE9bnVsbDtqKyspe2lmKHR5cGVvZiBpPT09Im51bWJlciIpaSs9IiI7aWYoaSl7aWYodHlwZW9mIGk9PT0ic3RyaW5nIiYmIWpiLnRlc3QoaSkpaT1iLmNyZWF0ZVRleHROb2RlKGkpO2Vsc2UgaWYodHlwZW9mIGk9PT0ic3RyaW5nIil7aT1pLnJlcGxhY2UoS2EsTWEpO3ZhciBvPShMYS5leGVjKGkpfHxbIiIsCiIiXSlbMV0udG9Mb3dlckNhc2UoKSxrPUZbb118fEYuX2RlZmF1bHQsbj1rWzBdLHI9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3Ioci5pbm5lckhUTUw9a1sxXStpK2tbMl07bi0tOylyPXIubGFzdENoaWxkO2lmKCFjLnN1cHBvcnQudGJvZHkpe249aWIudGVzdChpKTtvPW89PT0idGFibGUiJiYhbj9yLmZpcnN0Q2hpbGQmJnIuZmlyc3RDaGlsZC5jaGlsZE5vZGVzOmtbMV09PT0iPHRhYmxlPiImJiFuP3IuY2hpbGROb2RlczpbXTtmb3Ioaz1vLmxlbmd0aC0xO2s+PTA7LS1rKWMubm9kZU5hbWUob1trXSwidGJvZHkiKSYmIW9ba10uY2hpbGROb2Rlcy5sZW5ndGgmJm9ba10ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvW2tdKX0hYy5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlJiZWLnRlc3QoaSkmJnIuaW5zZXJ0QmVmb3JlKGIuY3JlYXRlVGV4dE5vZGUoVi5leGVjKGkpWzBdKSxyLmZpcnN0Q2hpbGQpO2k9ci5jaGlsZE5vZGVzfWlmKGkubm9kZVR5cGUpZS5wdXNoKGkpO2Vsc2UgZT0KYy5tZXJnZShlLGkpfX1pZihkKWZvcihqPTA7ZVtqXTtqKyspaWYoZiYmYy5ub2RlTmFtZShlW2pdLCJzY3JpcHQiKSYmKCFlW2pdLnR5cGV8fGVbal0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKWYucHVzaChlW2pdLnBhcmVudE5vZGU/ZVtqXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVbal0pOmVbal0pO2Vsc2V7ZVtqXS5ub2RlVHlwZT09PTEmJmUuc3BsaWNlLmFwcGx5KGUsW2orMSwwXS5jb25jYXQoYy5tYWtlQXJyYXkoZVtqXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSk7ZC5hcHBlbmRDaGlsZChlW2pdKX1yZXR1cm4gZX0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixkLGY9Yy5jYWNoZSxlPWMuZXZlbnQuc3BlY2lhbCxqPWMuc3VwcG9ydC5kZWxldGVFeHBhbmRvLGk9MCxvOyhvPWFbaV0pIT1udWxsO2krKylpZihkPW9bYy5leHBhbmRvXSl7Yj1mW2RdO2lmKGIuZXZlbnRzKWZvcih2YXIgayBpbiBiLmV2ZW50cyllW2tdPwpjLmV2ZW50LnJlbW92ZShvLGspOkNhKG8sayxiLmhhbmRsZSk7aWYoailkZWxldGUgb1tjLmV4cGFuZG9dO2Vsc2Ugby5yZW1vdmVBdHRyaWJ1dGUmJm8ucmVtb3ZlQXR0cmlidXRlKGMuZXhwYW5kbyk7ZGVsZXRlIGZbZF19fX0pO3ZhciBrYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxOYT0vYWxwaGFcKFteKV0qXCkvLE9hPS9vcGFjaXR5PShbXildKikvLGhhPS9mbG9hdC9pLGlhPS8tKFthLXpdKS9pZyxsYj0vKFtBLVpdKS9nLG1iPS9eLT9cZCsoPzpweCk/JC9pLG5iPS9eLT9cZC8sb2I9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LHBiPVsiTGVmdCIsIlJpZ2h0Il0scWI9WyJUb3AiLCJCb3R0b20iXSxyYj1zLmRlZmF1bHRWaWV3JiZzLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUsUGE9Yy5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiLGphPQpmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O2MuZm4uY3NzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhpcyxhLGIsdHJ1ZSxmdW5jdGlvbihkLGYsZSl7aWYoZT09PXcpcmV0dXJuIGMuY3VyQ1NTKGQsZik7aWYodHlwZW9mIGU9PT0ibnVtYmVyIiYmIWtiLnRlc3QoZikpZSs9InB4IjtjLnN0eWxlKGQsZixlKX0pfTtjLmV4dGVuZCh7c3R5bGU6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhfHxhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpcmV0dXJuIHc7aWYoKGI9PT0id2lkdGgifHxiPT09ImhlaWdodCIpJiZwYXJzZUZsb2F0KGQpPDApZD13O3ZhciBmPWEuc3R5bGV8fGEsZT1kIT09dztpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSIpe2lmKGUpe2Yuem9vbT0xO2I9cGFyc2VJbnQoZCwxMCkrIiI9PT0iTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0iK2QqMTAwKyIpIjthPWYuZmlsdGVyfHxjLmN1ckNTUyhhLCJmaWx0ZXIiKXx8IiI7Zi5maWx0ZXI9Ck5hLnRlc3QoYSk/YS5yZXBsYWNlKE5hLGIpOmJ9cmV0dXJuIGYuZmlsdGVyJiZmLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wP3BhcnNlRmxvYXQoT2EuZXhlYyhmLmZpbHRlcilbMV0pLzEwMCsiIjoiIn1pZihoYS50ZXN0KGIpKWI9UGE7Yj1iLnJlcGxhY2UoaWEsamEpO2lmKGUpZltiXT1kO3JldHVybiBmW2JdfSxjc3M6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYj09PSJ3aWR0aCJ8fGI9PT0iaGVpZ2h0Iil7dmFyIGUsaj1iPT09IndpZHRoIj9wYjpxYjtmdW5jdGlvbiBpKCl7ZT1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0O2YhPT0iYm9yZGVyIiYmYy5lYWNoKGosZnVuY3Rpb24oKXtmfHwoZS09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJwYWRkaW5nIit0aGlzLHRydWUpKXx8MCk7aWYoZj09PSJtYXJnaW4iKWUrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luIit0aGlzLHRydWUpKXx8MDtlbHNlIGUtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwKImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH0pfWEub2Zmc2V0V2lkdGghPT0wP2koKTpjLnN3YXAoYSxvYixpKTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKGUpKX1yZXR1cm4gYy5jdXJDU1MoYSxiLGQpfSxjdXJDU1M6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmLGU9YS5zdHlsZTtpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSImJmEuY3VycmVudFN0eWxlKXtmPU9hLnRlc3QoYS5jdXJyZW50U3R5bGUuZmlsdGVyfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjoiIjtyZXR1cm4gZj09PSIiPyIxIjpmfWlmKGhhLnRlc3QoYikpYj1QYTtpZighZCYmZSYmZVtiXSlmPWVbYl07ZWxzZSBpZihyYil7aWYoaGEudGVzdChiKSliPSJmbG9hdCI7Yj1iLnJlcGxhY2UobGIsIi0kMSIpLnRvTG93ZXJDYXNlKCk7ZT1hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYoIWUpcmV0dXJuIG51bGw7aWYoYT1lLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSlmPQphLmdldFByb3BlcnR5VmFsdWUoYik7aWYoYj09PSJvcGFjaXR5IiYmZj09PSIiKWY9IjEifWVsc2UgaWYoYS5jdXJyZW50U3R5bGUpe2Q9Yi5yZXBsYWNlKGlhLGphKTtmPWEuY3VycmVudFN0eWxlW2JdfHxhLmN1cnJlbnRTdHlsZVtkXTtpZighbWIudGVzdChmKSYmbmIudGVzdChmKSl7Yj1lLmxlZnQ7dmFyIGo9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHlsZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQ7ZS5sZWZ0PWQ9PT0iZm9udFNpemUiPyIxZW0iOmZ8fDA7Zj1lLnBpeGVsTGVmdCsicHgiO2UubGVmdD1iO2EucnVudGltZVN0eWxlLmxlZnQ9an19cmV0dXJuIGZ9LHN3YXA6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPXt9O2Zvcih2YXIgZSBpbiBiKXtmW2VdPWEuc3R5bGVbZV07YS5zdHlsZVtlXT1iW2VdfWQuY2FsbChhKTtmb3IoZSBpbiBiKWEuc3R5bGVbZV09ZltlXX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKXtjLmV4cHIuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oYSl7dmFyIGI9CmEub2Zmc2V0V2lkdGgsZD1hLm9mZnNldEhlaWdodCxmPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI7cmV0dXJuIGI9PT0wJiZkPT09MCYmIWY/dHJ1ZTpiPjAmJmQ+MCYmIWY/ZmFsc2U6Yy5jdXJDU1MoYSwiZGlzcGxheSIpPT09Im5vbmUifTtjLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFjLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9fXZhciBzYj1KKCksdGI9LzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9naSx1Yj0vc2VsZWN0fHRleHRhcmVhL2ksdmI9L2NvbG9yfGRhdGV8ZGF0ZXRpbWV8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2Vlay9pLE49Lz1cPygmfCQpLyxrYT0vXD8vLHdiPS8oXD98JilfPS4qPygmfCQpLyx4Yj0vXihcdys6KT9cL1wvKFteXC8/I10rKS8seWI9LyUyMC9nLHpiPWMuZm4ubG9hZDtjLmZuLmV4dGVuZCh7bG9hZDpmdW5jdGlvbihhLGIsZCl7aWYodHlwZW9mIGEhPT0KInN0cmluZyIpcmV0dXJuIHpiLmNhbGwodGhpcyxhKTtlbHNlIGlmKCF0aGlzLmxlbmd0aClyZXR1cm4gdGhpczt2YXIgZj1hLmluZGV4T2YoIiAiKTtpZihmPj0wKXt2YXIgZT1hLnNsaWNlKGYsYS5sZW5ndGgpO2E9YS5zbGljZSgwLGYpfWY9IkdFVCI7aWYoYilpZihjLmlzRnVuY3Rpb24oYikpe2Q9YjtiPW51bGx9ZWxzZSBpZih0eXBlb2YgYj09PSJvYmplY3QiKXtiPWMucGFyYW0oYixjLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7Zj0iUE9TVCJ9dmFyIGo9dGhpcztjLmFqYXgoe3VybDphLHR5cGU6ZixkYXRhVHlwZToiaHRtbCIsZGF0YTpiLGNvbXBsZXRlOmZ1bmN0aW9uKGksbyl7aWYobz09PSJzdWNjZXNzInx8bz09PSJub3Rtb2RpZmllZCIpai5odG1sKGU/YygiPGRpdiAvPiIpLmFwcGVuZChpLnJlc3BvbnNlVGV4dC5yZXBsYWNlKHRiLCIiKSkuZmluZChlKTppLnJlc3BvbnNlVGV4dCk7ZCYmai5lYWNoKGQsW2kucmVzcG9uc2VUZXh0LG8saV0pfX0pO3JldHVybiB0aGlzfSwKc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9jLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fHViLnRlc3QodGhpcy5ub2RlTmFtZSl8fHZiLnRlc3QodGhpcy50eXBlKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXthPWModGhpcykudmFsKCk7cmV0dXJuIGE9PW51bGw/bnVsbDpjLmlzQXJyYXkoYSk/Yy5tYXAoYSxmdW5jdGlvbihkKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6ZH19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YX19KS5nZXQoKX19KTtjLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMuYmluZChiLGQpfX0pO2MuZXh0ZW5kKHtnZXQ6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYy5pc0Z1bmN0aW9uKGIpKXtmPWZ8fGQ7ZD1iO2I9bnVsbH1yZXR1cm4gYy5hamF4KHt0eXBlOiJHRVQiLHVybDphLGRhdGE6YixzdWNjZXNzOmQsZGF0YVR5cGU6Zn0pfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYy5nZXQoYSxudWxsLGIsInNjcmlwdCIpfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5nZXQoYSxiLGQsImpzb24iKX0scG9zdDpmdW5jdGlvbihhLGIsZCxmKXtpZihjLmlzRnVuY3Rpb24oYikpe2Y9Znx8ZDtkPWI7Yj17fX1yZXR1cm4gYy5hamF4KHt0eXBlOiJQT1NUIix1cmw6YSxkYXRhOmIsc3VjY2VzczpkLGRhdGFUeXBlOmZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKGEpe2MuZXh0ZW5kKGMuYWpheFNldHRpbmdzLGEpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLApnbG9iYWw6dHJ1ZSx0eXBlOiJHRVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHByb2Nlc3NEYXRhOnRydWUsYXN5bmM6dHJ1ZSx4aHI6QS5YTUxIdHRwUmVxdWVzdCYmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToifHwhQS5BY3RpdmVYT2JqZWN0KT9mdW5jdGlvbigpe3JldHVybiBuZXcgQS5YTUxIdHRwUmVxdWVzdH06ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBBLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYSl7fX0sYWNjZXB0czp7eG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixodG1sOiJ0ZXh0L2h0bWwiLHNjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoifX0sbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheDpmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7ZS5zdWNjZXNzJiYKZS5zdWNjZXNzLmNhbGwoayxvLGkseCk7ZS5nbG9iYWwmJmYoImFqYXhTdWNjZXNzIixbeCxlXSl9ZnVuY3Rpb24gZCgpe2UuY29tcGxldGUmJmUuY29tcGxldGUuY2FsbChrLHgsaSk7ZS5nbG9iYWwmJmYoImFqYXhDb21wbGV0ZSIsW3gsZV0pO2UuZ2xvYmFsJiYhLS1jLmFjdGl2ZSYmYy5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfWZ1bmN0aW9uIGYocSxwKXsoZS5jb250ZXh0P2MoZS5jb250ZXh0KTpjLmV2ZW50KS50cmlnZ2VyKHEscCl9dmFyIGU9Yy5leHRlbmQodHJ1ZSx7fSxjLmFqYXhTZXR0aW5ncyxhKSxqLGksbyxrPWEmJmEuY29udGV4dHx8ZSxuPWUudHlwZS50b1VwcGVyQ2FzZSgpO2lmKGUuZGF0YSYmZS5wcm9jZXNzRGF0YSYmdHlwZW9mIGUuZGF0YSE9PSJzdHJpbmciKWUuZGF0YT1jLnBhcmFtKGUuZGF0YSxlLnRyYWRpdGlvbmFsKTtpZihlLmRhdGFUeXBlPT09Impzb25wIil7aWYobj09PSJHRVQiKU4udGVzdChlLnVybCl8fChlLnVybCs9KGthLnRlc3QoZS51cmwpPwoiJiI6Ij8iKSsoZS5qc29ucHx8ImNhbGxiYWNrIikrIj0/Iik7ZWxzZSBpZighZS5kYXRhfHwhTi50ZXN0KGUuZGF0YSkpZS5kYXRhPShlLmRhdGE/ZS5kYXRhKyImIjoiIikrKGUuanNvbnB8fCJjYWxsYmFjayIpKyI9PyI7ZS5kYXRhVHlwZT0ianNvbiJ9aWYoZS5kYXRhVHlwZT09PSJqc29uIiYmKGUuZGF0YSYmTi50ZXN0KGUuZGF0YSl8fE4udGVzdChlLnVybCkpKXtqPWUuanNvbnBDYWxsYmFja3x8Impzb25wIitzYisrO2lmKGUuZGF0YSllLmRhdGE9KGUuZGF0YSsiIikucmVwbGFjZShOLCI9IitqKyIkMSIpO2UudXJsPWUudXJsLnJlcGxhY2UoTiwiPSIraisiJDEiKTtlLmRhdGFUeXBlPSJzY3JpcHQiO0Fbal09QVtqXXx8ZnVuY3Rpb24ocSl7bz1xO2IoKTtkKCk7QVtqXT13O3RyeXtkZWxldGUgQVtqXX1jYXRjaChwKXt9eiYmei5yZW1vdmVDaGlsZChDKX19aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZlLmNhY2hlPT09bnVsbCllLmNhY2hlPWZhbHNlO2lmKGUuY2FjaGU9PT0KZmFsc2UmJm49PT0iR0VUIil7dmFyIHI9SigpLHU9ZS51cmwucmVwbGFjZSh3YiwiJDFfPSIrcisiJDIiKTtlLnVybD11Kyh1PT09ZS51cmw/KGthLnRlc3QoZS51cmwpPyImIjoiPyIpKyJfPSIrcjoiIil9aWYoZS5kYXRhJiZuPT09IkdFVCIpZS51cmwrPShrYS50ZXN0KGUudXJsKT8iJiI6Ij8iKStlLmRhdGE7ZS5nbG9iYWwmJiFjLmFjdGl2ZSsrJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpO3I9KHI9eGIuZXhlYyhlLnVybCkpJiYoclsxXSYmclsxXSE9PWxvY2F0aW9uLnByb3RvY29sfHxyWzJdIT09bG9jYXRpb24uaG9zdCk7aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZuPT09IkdFVCImJnIpe3ZhciB6PXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8cy5kb2N1bWVudEVsZW1lbnQsQz1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0Muc3JjPWUudXJsO2lmKGUuc2NyaXB0Q2hhcnNldClDLmNoYXJzZXQ9ZS5zY3JpcHRDaGFyc2V0O2lmKCFqKXt2YXIgQj0KZmFsc2U7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZighQiYmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSl7Qj10cnVlO2IoKTtkKCk7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDt6JiZDLnBhcmVudE5vZGUmJnoucmVtb3ZlQ2hpbGQoQyl9fX16Lmluc2VydEJlZm9yZShDLHouZmlyc3RDaGlsZCk7cmV0dXJuIHd9dmFyIEU9ZmFsc2UseD1lLnhocigpO2lmKHgpe2UudXNlcm5hbWU/eC5vcGVuKG4sZS51cmwsZS5hc3luYyxlLnVzZXJuYW1lLGUucGFzc3dvcmQpOngub3BlbihuLGUudXJsLGUuYXN5bmMpO3RyeXtpZihlLmRhdGF8fGEmJmEuY29udGVudFR5cGUpeC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGUuY29udGVudFR5cGUpO2lmKGUuaWZNb2RpZmllZCl7Yy5sYXN0TW9kaWZpZWRbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIiwKYy5sYXN0TW9kaWZpZWRbZS51cmxdKTtjLmV0YWdbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLGMuZXRhZ1tlLnVybF0pfXJ8fHguc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0Iik7eC5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLGUuZGF0YVR5cGUmJmUuYWNjZXB0c1tlLmRhdGFUeXBlXT9lLmFjY2VwdHNbZS5kYXRhVHlwZV0rIiwgKi8qIjplLmFjY2VwdHMuX2RlZmF1bHQpfWNhdGNoKGdhKXt9aWYoZS5iZWZvcmVTZW5kJiZlLmJlZm9yZVNlbmQuY2FsbChrLHgsZSk9PT1mYWxzZSl7ZS5nbG9iYWwmJiEtLWMuYWN0aXZlJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIik7eC5hYm9ydCgpO3JldHVybiBmYWxzZX1lLmdsb2JhbCYmZigiYWpheFNlbmQiLFt4LGVdKTt2YXIgZz14Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihxKXtpZigheHx8eC5yZWFkeVN0YXRlPT09MHx8cT09PSJhYm9ydCIpe0V8fApkKCk7RT10cnVlO2lmKHgpeC5vbnJlYWR5c3RhdGVjaGFuZ2U9Yy5ub29wfWVsc2UgaWYoIUUmJngmJih4LnJlYWR5U3RhdGU9PT00fHxxPT09InRpbWVvdXQiKSl7RT10cnVlO3gub25yZWFkeXN0YXRlY2hhbmdlPWMubm9vcDtpPXE9PT0idGltZW91dCI/InRpbWVvdXQiOiFjLmh0dHBTdWNjZXNzKHgpPyJlcnJvciI6ZS5pZk1vZGlmaWVkJiZjLmh0dHBOb3RNb2RpZmllZCh4LGUudXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjt2YXIgcDtpZihpPT09InN1Y2Nlc3MiKXRyeXtvPWMuaHR0cERhdGEoeCxlLmRhdGFUeXBlLGUpfWNhdGNoKHYpe2k9InBhcnNlcmVycm9yIjtwPXZ9aWYoaT09PSJzdWNjZXNzInx8aT09PSJub3Rtb2RpZmllZCIpanx8YigpO2Vsc2UgYy5oYW5kbGVFcnJvcihlLHgsaSxwKTtkKCk7cT09PSJ0aW1lb3V0IiYmeC5hYm9ydCgpO2lmKGUuYXN5bmMpeD1udWxsfX07dHJ5e3ZhciBoPXguYWJvcnQ7eC5hYm9ydD1mdW5jdGlvbigpe3gmJmguY2FsbCh4KTsKZygiYWJvcnQiKX19Y2F0Y2gobCl7fWUuYXN5bmMmJmUudGltZW91dD4wJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCYmIUUmJmcoInRpbWVvdXQiKX0sZS50aW1lb3V0KTt0cnl7eC5zZW5kKG49PT0iUE9TVCJ8fG49PT0iUFVUInx8bj09PSJERUxFVEUiP2UuZGF0YTpudWxsKX1jYXRjaChtKXtjLmhhbmRsZUVycm9yKGUseCxudWxsLG0pO2QoKX1lLmFzeW5jfHxnKCk7cmV0dXJuIHh9fSxoYW5kbGVFcnJvcjpmdW5jdGlvbihhLGIsZCxmKXtpZihhLmVycm9yKWEuZXJyb3IuY2FsbChhLmNvbnRleHR8fGEsYixkLGYpO2lmKGEuZ2xvYmFsKShhLmNvbnRleHQ/YyhhLmNvbnRleHQpOmMuZXZlbnQpLnRyaWdnZXIoImFqYXhFcnJvciIsW2IsYSxmXSl9LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4hYS5zdGF0dXMmJmxvY2F0aW9uLnByb3RvY29sPT09ImZpbGU6Inx8YS5zdGF0dXM+PTIwMCYmYS5zdGF0dXM8MzAwfHxhLnN0YXR1cz09PTMwNHx8YS5zdGF0dXM9PT0KMTIyM3x8YS5zdGF0dXM9PT0wfWNhdGNoKGIpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSxmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkV0YWciKTtpZihkKWMubGFzdE1vZGlmaWVkW2JdPWQ7aWYoZiljLmV0YWdbYl09ZjtyZXR1cm4gYS5zdGF0dXM9PT0zMDR8fGEuc3RhdHVzPT09MH0saHR0cERhdGE6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpfHwiIixlPWI9PT0ieG1sInx8IWImJmYuaW5kZXhPZigieG1sIik+PTA7YT1lP2EucmVzcG9uc2VYTUw6YS5yZXNwb25zZVRleHQ7ZSYmYS5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWU9PT0icGFyc2VyZXJyb3IiJiZjLmVycm9yKCJwYXJzZXJlcnJvciIpO2lmKGQmJmQuZGF0YUZpbHRlcilhPWQuZGF0YUZpbHRlcihhLGIpO2lmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoYj09PQoianNvbiJ8fCFiJiZmLmluZGV4T2YoImpzb24iKT49MClhPWMucGFyc2VKU09OKGEpO2Vsc2UgaWYoYj09PSJzY3JpcHQifHwhYiYmZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik+PTApYy5nbG9iYWxFdmFsKGEpO3JldHVybiBhfSxwYXJhbTpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoaSxvKXtpZihjLmlzQXJyYXkobykpYy5lYWNoKG8sZnVuY3Rpb24oayxuKXtifHwvXFtcXSQvLnRlc3QoaSk/ZihpLG4pOmQoaSsiWyIrKHR5cGVvZiBuPT09Im9iamVjdCJ8fGMuaXNBcnJheShuKT9rOiIiKSsiXSIsbil9KTtlbHNlIWImJm8hPW51bGwmJnR5cGVvZiBvPT09Im9iamVjdCI/Yy5lYWNoKG8sZnVuY3Rpb24oayxuKXtkKGkrIlsiK2srIl0iLG4pfSk6ZihpLG8pfWZ1bmN0aW9uIGYoaSxvKXtvPWMuaXNGdW5jdGlvbihvKT9vKCk6bztlW2UubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoaSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChvKX12YXIgZT1bXTtpZihiPT09dyliPWMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsOwppZihjLmlzQXJyYXkoYSl8fGEuanF1ZXJ5KWMuZWFjaChhLGZ1bmN0aW9uKCl7Zih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcih2YXIgaiBpbiBhKWQoaixhW2pdKTtyZXR1cm4gZS5qb2luKCImIikucmVwbGFjZSh5YiwiKyIpfX0pO3ZhciBsYT17fSxBYj0vdG9nZ2xlfHNob3d8aGlkZS8sQmI9L14oWystXT0pPyhbXGQrLS5dKykoLiopJC8sVyx2YT1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtjLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoSygic2hvdyIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXt2YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpOwp0aGlzW2FdLnN0eWxlLmRpc3BsYXk9ZHx8IiI7aWYoYy5jc3ModGhpc1thXSwiZGlzcGxheSIpPT09Im5vbmUiKXtkPXRoaXNbYV0ubm9kZU5hbWU7dmFyIGY7aWYobGFbZF0pZj1sYVtkXTtlbHNle3ZhciBlPWMoIjwiK2QrIiAvPiIpLmFwcGVuZFRvKCJib2R5Iik7Zj1lLmNzcygiZGlzcGxheSIpO2lmKGY9PT0ibm9uZSIpZj0iYmxvY2siO2UucmVtb3ZlKCk7bGFbZF09Zn1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIsZil9fWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpfHwiIjtyZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oYSxiKXtpZihhfHxhPT09MClyZXR1cm4gdGhpcy5hbmltYXRlKEsoImhpZGUiLDMpLGEsYik7ZWxzZXthPTA7Zm9yKGI9dGhpcy5sZW5ndGg7YTxiO2ErKyl7dmFyIGQ9Yy5kYXRhKHRoaXNbYV0sIm9sZGRpc3BsYXkiKTshZCYmZCE9PSJub25lIiYmYy5kYXRhKHRoaXNbYV0sCiJvbGRkaXNwbGF5IixjLmNzcyh0aGlzW2FdLCJkaXNwbGF5IikpfWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOmMuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhPT09ImJvb2xlYW4iO2lmKGMuaXNGdW5jdGlvbihhKSYmYy5pc0Z1bmN0aW9uKGIpKXRoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZSBhPT1udWxsfHxkP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWQ/YTpjKHRoaXMpLmlzKCI6aGlkZGVuIik7Yyh0aGlzKVtmPyJzaG93IjoiaGlkZSJdKCl9KTp0aGlzLmFuaW1hdGUoSygidG9nZ2xlIiwzKSxhLGIpO3JldHVybiB0aGlzfSxmYWRlVG86ZnVuY3Rpb24oYSxiLGQpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxkKX0sCmFuaW1hdGU6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9Yy5zcGVlZChiLGQsZik7aWYoYy5pc0VtcHR5T2JqZWN0KGEpKXJldHVybiB0aGlzLmVhY2goZS5jb21wbGV0ZSk7cmV0dXJuIHRoaXNbZS5xdWV1ZT09PWZhbHNlPyJlYWNoIjoicXVldWUiXShmdW5jdGlvbigpe3ZhciBqPWMuZXh0ZW5kKHt9LGUpLGksbz10aGlzLm5vZGVUeXBlPT09MSYmYyh0aGlzKS5pcygiOmhpZGRlbiIpLGs9dGhpcztmb3IoaSBpbiBhKXt2YXIgbj1pLnJlcGxhY2UoaWEsamEpO2lmKGkhPT1uKXthW25dPWFbaV07ZGVsZXRlIGFbaV07aT1ufWlmKGFbaV09PT0iaGlkZSImJm98fGFbaV09PT0ic2hvdyImJiFvKXJldHVybiBqLmNvbXBsZXRlLmNhbGwodGhpcyk7aWYoKGk9PT0iaGVpZ2h0Inx8aT09PSJ3aWR0aCIpJiZ0aGlzLnN0eWxlKXtqLmRpc3BsYXk9Yy5jc3ModGhpcywiZGlzcGxheSIpO2oub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVyZmxvd31pZihjLmlzQXJyYXkoYVtpXSkpeyhqLnNwZWNpYWxFYXNpbmc9Cmouc3BlY2lhbEVhc2luZ3x8e30pW2ldPWFbaV1bMV07YVtpXT1hW2ldWzBdfX1pZihqLm92ZXJmbG93IT1udWxsKXRoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ai5jdXJBbmltPWMuZXh0ZW5kKHt9LGEpO2MuZWFjaChhLGZ1bmN0aW9uKHIsdSl7dmFyIHo9bmV3IGMuZngoayxqLHIpO2lmKEFiLnRlc3QodSkpelt1PT09InRvZ2dsZSI/bz8ic2hvdyI6ImhpZGUiOnVdKGEpO2Vsc2V7dmFyIEM9QmIuZXhlYyh1KSxCPXouY3VyKHRydWUpfHwwO2lmKEMpe3U9cGFyc2VGbG9hdChDWzJdKTt2YXIgRT1DWzNdfHwicHgiO2lmKEUhPT0icHgiKXtrLnN0eWxlW3JdPSh1fHwxKStFO0I9KHV8fDEpL3ouY3VyKHRydWUpKkI7ay5zdHlsZVtyXT1CK0V9aWYoQ1sxXSl1PShDWzFdPT09Ii09Ij8tMToxKSp1K0I7ei5jdXN0b20oQix1LEUpfWVsc2Ugei5jdXN0b20oQix1LCIiKX19KTtyZXR1cm4gdHJ1ZX0pfSxzdG9wOmZ1bmN0aW9uKGEsYil7dmFyIGQ9Yy50aW1lcnM7YSYmdGhpcy5xdWV1ZShbXSk7CnRoaXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIgZj1kLmxlbmd0aC0xO2Y+PTA7Zi0tKWlmKGRbZl0uZWxlbT09PXRoaXMpe2ImJmRbZl0odHJ1ZSk7ZC5zcGxpY2UoZiwxKX19KTtifHx0aGlzLmRlcXVldWUoKTtyZXR1cm4gdGhpc319KTtjLmVhY2goe3NsaWRlRG93bjpLKCJzaG93IiwxKSxzbGlkZVVwOksoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOksoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsZCxmKX19KTtjLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEmJnR5cGVvZiBhPT09Im9iamVjdCI/YTp7Y29tcGxldGU6ZHx8IWQmJmJ8fGMuaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpkJiZifHxiJiYhYy5pc0Z1bmN0aW9uKGIpJiZifTtmLmR1cmF0aW9uPWMuZngub2ZmPzA6dHlwZW9mIGYuZHVyYXRpb249PT0KIm51bWJlciI/Zi5kdXJhdGlvbjpjLmZ4LnNwZWVkc1tmLmR1cmF0aW9uXXx8Yy5meC5zcGVlZHMuX2RlZmF1bHQ7Zi5vbGQ9Zi5jb21wbGV0ZTtmLmNvbXBsZXRlPWZ1bmN0aW9uKCl7Zi5xdWV1ZSE9PWZhbHNlJiZjKHRoaXMpLmRlcXVldWUoKTtjLmlzRnVuY3Rpb24oZi5vbGQpJiZmLm9sZC5jYWxsKHRoaXMpfTtyZXR1cm4gZn0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIGQrZiphfSxzd2luZzpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4oLU1hdGguY29zKGEqTWF0aC5QSSkvMiswLjUpKmYrZH19LHRpbWVyczpbXSxmeDpmdW5jdGlvbihhLGIsZCl7dGhpcy5vcHRpb25zPWI7dGhpcy5lbGVtPWE7dGhpcy5wcm9wPWQ7aWYoIWIub3JpZyliLm9yaWc9e319fSk7Yy5meC5wcm90b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKTsoYy5meC5zdGVwW3RoaXMucHJvcF18fApjLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PT0iaGVpZ2h0Inx8dGhpcy5wcm9wPT09IndpZHRoIikmJnRoaXMuZWxlbS5zdHlsZSl0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT0iYmxvY2sifSxjdXI6ZnVuY3Rpb24oYSl7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpcmV0dXJuIHRoaXMuZWxlbVt0aGlzLnByb3BdO3JldHVybihhPXBhcnNlRmxvYXQoYy5jc3ModGhpcy5lbGVtLHRoaXMucHJvcCxhKSkpJiZhPi0xMDAwMD9hOnBhcnNlRmxvYXQoYy5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYoail7cmV0dXJuIGUuc3RlcChqKX10aGlzLnN0YXJ0VGltZT1KKCk7dGhpcy5zdGFydD1hO3RoaXMuZW5kPWI7dGhpcy51bml0PWR8fHRoaXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0Owp0aGlzLnBvcz10aGlzLnN0YXRlPTA7dmFyIGU9dGhpcztmLmVsZW09dGhpcy5lbGVtO2lmKGYoKSYmYy50aW1lcnMucHVzaChmKSYmIVcpVz1zZXRJbnRlcnZhbChjLmZ4LnRpY2ssMTMpfSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1jLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5zaG93PXRydWU7dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO2ModGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLmhpZGU9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLmN1cigpLDApfSxzdGVwOmZ1bmN0aW9uKGEpe3ZhciBiPUooKSxkPXRydWU7aWYoYXx8Yj49dGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3RhcnRUaW1lKXt0aGlzLm5vdz0KdGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO2Zvcih2YXIgZiBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSlpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtmXSE9PXRydWUpZD1mYWxzZTtpZihkKXtpZih0aGlzLm9wdGlvbnMuZGlzcGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxlLm92ZXJmbG93PXRoaXMub3B0aW9ucy5vdmVyZmxvdzthPWMuZGF0YSh0aGlzLmVsZW0sIm9sZGRpc3BsYXkiKTt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT1hP2E6dGhpcy5vcHRpb25zLmRpc3BsYXk7aWYoYy5jc3ModGhpcy5lbGVtLCJkaXNwbGF5Iik9PT0ibm9uZSIpdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn10aGlzLm9wdGlvbnMuaGlkZSYmYyh0aGlzLmVsZW0pLmhpZGUoKTtpZih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5vcHRpb25zLnNob3cpZm9yKHZhciBlIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWMuc3R5bGUodGhpcy5lbGVtLAplLHRoaXMub3B0aW9ucy5vcmlnW2VdKTt0aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle2U9Yi10aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXRlPWUvdGhpcy5vcHRpb25zLmR1cmF0aW9uO2E9dGhpcy5vcHRpb25zLmVhc2luZ3x8KGMuZWFzaW5nLnN3aW5nPyJzd2luZyI6ImxpbmVhciIpO3RoaXMucG9zPWMuZWFzaW5nW3RoaXMub3B0aW9ucy5zcGVjaWFsRWFzaW5nJiZ0aGlzLm9wdGlvbnMuc3BlY2lhbEVhc2luZ1t0aGlzLnByb3BdfHxhXSh0aGlzLnN0YXRlLGUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik7dGhpcy5ub3c9dGhpcy5zdGFydCsodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3M7dGhpcy51cGRhdGUoKX1yZXR1cm4gdHJ1ZX19O2MuZXh0ZW5kKGMuZngse3RpY2s6ZnVuY3Rpb24oKXtmb3IodmFyIGE9Yy50aW1lcnMsYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0oKXx8YS5zcGxpY2UoYi0tLDEpO2EubGVuZ3RofHwKYy5meC5zdG9wKCl9LHN0b3A6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFcpO1c9bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Yy5zdHlsZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7aWYoYS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbClhLmVsZW0uc3R5bGVbYS5wcm9wXT0oYS5wcm9wPT09IndpZHRoInx8YS5wcm9wPT09ImhlaWdodCI/TWF0aC5tYXgoMCxhLm5vdyk6YS5ub3cpK2EudW5pdDtlbHNlIGEuZWxlbVthLnByb3BdPWEubm93fX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKWMuZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBjLmdyZXAoYy50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT1iLmVsZW19KS5sZW5ndGh9O2MuZm4ub2Zmc2V0PSJnZXRCb3VuZGluZ0NsaWVudFJlY3QiaW4gcy5kb2N1bWVudEVsZW1lbnQ/CmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZSl9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZzZXQoYik7dmFyIGQ9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWIub3duZXJEb2N1bWVudDtiPWYuYm9keTtmPWYuZG9jdW1lbnRFbGVtZW50O3JldHVybnt0b3A6ZC50b3ArKHNlbGYucGFnZVlPZmZzZXR8fGMuc3VwcG9ydC5ib3hNb2RlbCYmZi5zY3JvbGxUb3B8fGIuc2Nyb2xsVG9wKS0oZi5jbGllbnRUb3B8fGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoc2VsZi5wYWdlWE9mZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNjcm9sbExlZnR8fGIuc2Nyb2xsTGVmdCktKGYuY2xpZW50TGVmdHx8Yi5jbGllbnRMZWZ0fHwwKX19OmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzWzBdO2lmKGEpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihyKXtjLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLHIpfSk7aWYoIWJ8fCFiLm93bmVyRG9jdW1lbnQpcmV0dXJuIG51bGw7aWYoYj09PWIub3duZXJEb2N1bWVudC5ib2R5KXJldHVybiBjLm9mZnNldC5ib2R5T2Zmc2V0KGIpO2Mub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgZD1iLm9mZnNldFBhcmVudCxmPWIsZT1iLm93bmVyRG9jdW1lbnQsaixpPWUuZG9jdW1lbnRFbGVtZW50LG89ZS5ib2R5O2Y9KGU9ZS5kZWZhdWx0Vmlldyk/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7Zm9yKHZhciBrPWIub2Zmc2V0VG9wLG49Yi5vZmZzZXRMZWZ0OyhiPWIucGFyZW50Tm9kZSkmJmIhPT1vJiZiIT09aTspe2lmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmZi5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7aj1lP2UuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlOwprLT1iLnNjcm9sbFRvcDtuLT1iLnNjcm9sbExlZnQ7aWYoYj09PWQpe2srPWIub2Zmc2V0VG9wO24rPWIub2Zmc2V0TGVmdDtpZihjLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKGMub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoYi5ub2RlTmFtZSkpKXtrKz1wYXJzZUZsb2F0KGouYm9yZGVyVG9wV2lkdGgpfHwwO24rPXBhcnNlRmxvYXQoai5ib3JkZXJMZWZ0V2lkdGgpfHwwfWY9ZDtkPWIub2Zmc2V0UGFyZW50fWlmKGMub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSYmai5vdmVyZmxvdyE9PSJ2aXNpYmxlIil7ays9cGFyc2VGbG9hdChqLmJvcmRlclRvcFdpZHRoKXx8MDtuKz1wYXJzZUZsb2F0KGouYm9yZGVyTGVmdFdpZHRoKXx8MH1mPWp9aWYoZi5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGYucG9zaXRpb249PT0ic3RhdGljIil7ays9by5vZmZzZXRUb3A7bis9by5vZmZzZXRMZWZ0fWlmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmCmYucG9zaXRpb249PT0iZml4ZWQiKXtrKz1NYXRoLm1heChpLnNjcm9sbFRvcCxvLnNjcm9sbFRvcCk7bis9TWF0aC5tYXgoaS5zY3JvbGxMZWZ0LG8uc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDprLGxlZnQ6bn19O2Mub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGE9cy5ib2R5LGI9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLGYsZSxqPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luVG9wIix0cnVlKSl8fDA7Yy5leHRlbmQoYi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmlubmVySFRNTD0iPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKYS5pbnNlcnRCZWZvcmUoYixhLmZpcnN0Q2hpbGQpO2Q9Yi5maXJzdENoaWxkO2Y9ZC5maXJzdENoaWxkO2U9ZC5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7dGhpcy5kb2VzTm90QWRkQm9yZGVyPWYub2Zmc2V0VG9wIT09NTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPWUub2Zmc2V0VG9wPT09NTtmLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCI7Zi5zdHlsZS50b3A9IjIwcHgiO3RoaXMuc3VwcG9ydHNGaXhlZFBvc2l0aW9uPWYub2Zmc2V0VG9wPT09MjB8fGYub2Zmc2V0VG9wPT09MTU7Zi5zdHlsZS5wb3NpdGlvbj1mLnN0eWxlLnRvcD0iIjtkLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZT1mLm9mZnNldFRvcD09PS01O3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9YS5vZmZzZXRUb3AhPT1qO2EucmVtb3ZlQ2hpbGQoYik7CmMub2Zmc2V0LmluaXRpYWxpemU9Yy5ub29wfSxib2R5T2Zmc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGQ9YS5vZmZzZXRMZWZ0O2Mub2Zmc2V0LmluaXRpYWxpemUoKTtpZihjLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Yis9cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1hcmdpbkxlZnQiLHRydWUpKXx8MH1yZXR1cm57dG9wOmIsbGVmdDpkfX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixkKXtpZigvc3RhdGljLy50ZXN0KGMuY3VyQ1NTKGEsInBvc2l0aW9uIikpKWEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt2YXIgZj1jKGEpLGU9Zi5vZmZzZXQoKSxqPXBhcnNlSW50KGMuY3VyQ1NTKGEsInRvcCIsdHJ1ZSksMTApfHwwLGk9cGFyc2VJbnQoYy5jdXJDU1MoYSwibGVmdCIsdHJ1ZSksMTApfHwwO2lmKGMuaXNGdW5jdGlvbihiKSliPWIuY2FsbChhLApkLGUpO2Q9e3RvcDpiLnRvcC1lLnRvcCtqLGxlZnQ6Yi5sZWZ0LWUubGVmdCtpfTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxkKTpmLmNzcyhkKX19O2MuZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzWzBdKXJldHVybiBudWxsO3ZhciBhPXRoaXNbMF0sYj10aGlzLm9mZnNldFBhcmVudCgpLGQ9dGhpcy5vZmZzZXQoKSxmPS9eYm9keXxodG1sJC9pLnRlc3QoYlswXS5ub2RlTmFtZSk/e3RvcDowLGxlZnQ6MH06Yi5vZmZzZXQoKTtkLnRvcC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkLmxlZnQtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luTGVmdCIsdHJ1ZSkpfHwwO2YudG9wKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlclRvcFdpZHRoIix0cnVlKSl8fDA7Zi5sZWZ0Kz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlckxlZnRXaWR0aCIsdHJ1ZSkpfHwwO3JldHVybnt0b3A6ZC50b3AtCmYudG9wLGxlZnQ6ZC5sZWZ0LWYubGVmdH19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8cy5ib2R5O2EmJiEvXmJvZHl8aHRtbCQvaS50ZXN0KGEubm9kZU5hbWUpJiZjLmNzcyhhLCJwb3NpdGlvbiIpPT09InN0YXRpYyI7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KTtjLmVhY2goWyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxiKXt2YXIgZD0ic2Nyb2xsIitiO2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXSxqO2lmKCFlKXJldHVybiBudWxsO2lmKGYhPT13KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihqPXdhKHRoaXMpKWouc2Nyb2xsVG8oIWE/ZjpjKGopLnNjcm9sbExlZnQoKSxhP2Y6YyhqKS5zY3JvbGxUb3AoKSk7ZWxzZSB0aGlzW2RdPWZ9KTtlbHNlIHJldHVybihqPXdhKGUpKT8icGFnZVhPZmZzZXQiaW4gaj9qW2E/InBhZ2VZT2Zmc2V0IjoKInBhZ2VYT2Zmc2V0Il06Yy5zdXBwb3J0LmJveE1vZGVsJiZqLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXXx8ai5kb2N1bWVudC5ib2R5W2RdOmVbZF19fSk7Yy5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGIpe3ZhciBkPWIudG9Mb3dlckNhc2UoKTtjLmZuWyJpbm5lciIrYl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXT9jLmNzcyh0aGlzWzBdLGQsZmFsc2UsInBhZGRpbmciKTpudWxsfTtjLmZuWyJvdXRlciIrYl09ZnVuY3Rpb24oZil7cmV0dXJuIHRoaXNbMF0/Yy5jc3ModGhpc1swXSxkLGZhbHNlLGY/Im1hcmdpbiI6ImJvcmRlciIpOm51bGx9O2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXTtpZighZSlyZXR1cm4gZj09bnVsbD9udWxsOnRoaXM7aWYoYy5pc0Z1bmN0aW9uKGYpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oail7dmFyIGk9Yyh0aGlzKTtpW2RdKGYuY2FsbCh0aGlzLGosaVtkXSgpKSl9KTtyZXR1cm4ic2Nyb2xsVG8iaW4KZSYmZS5kb2N1bWVudD9lLmRvY3VtZW50LmNvbXBhdE1vZGU9PT0iQ1NTMUNvbXBhdCImJmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2JdfHxlLmRvY3VtZW50LmJvZHlbImNsaWVudCIrYl06ZS5ub2RlVHlwZT09PTk/TWF0aC5tYXgoZS5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYl0sZS5ib2R5WyJzY3JvbGwiK2JdLGUuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK2JdLGUuYm9keVsib2Zmc2V0IitiXSxlLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IitiXSk6Zj09PXc/Yy5jc3MoZSxkKTp0aGlzLmNzcyhkLHR5cGVvZiBmPT09InN0cmluZyI/ZjpmKyJweCIpfX0pO0EualF1ZXJ5PUEuJD1jfSkod2luZG93KTtqUXVlcnkubm9Db25mbGljdCgpOwoKCg==]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.tablednd.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeSwgYWxsb3dzIHlvdSB0byBkcmFnIGFuZCBkcm9wIHRhYmxlIHJvd3MKICogWW91IGNhbiBzZXQgdXAgdmFyaW91cyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IHRoZSBzeXN0ZW0gd2lsbCB3b3JrCiAqIENvcHlyaWdodCAoYykgRGVuaXMgSG93bGV0dCA8ZGVuaXNoQGlzb2NyYS5jb20+CiAqIExpY2Vuc2VkIGxpa2UgalF1ZXJ5LCBzZWUgaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9MaWNlbnNlLgogKgogKiBDb25maWd1cmF0aW9uIG9wdGlvbnM6CiAqIAogKiBvbkRyYWdTdHlsZQogKiAgICAgVGhpcyBpcyB0aGUgc3R5bGUgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcm93IGR1cmluZyBkcmFnLiBUaGVyZSBhcmUgbGltaXRhdGlvbnMgdG8gdGhlIHN0eWxlcyB0aGF0IGNhbiBiZQogKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgcm93IChzdWNoIGFzIHlvdSBjYW4ndCBhc3NpZ24gYSBib3JkZXItLXdlbGwgeW91IGNhbiwgYnV0IGl0IHdvbid0IGJlCiAqICAgICBkaXNwbGF5ZWQpLiAoU28gaW5zdGVhZCBjb25zaWRlciB1c2luZyBvbkRyYWdDbGFzcy4pIFRoZSBDU1Mgc3R5bGUgdG8gYXBwbHkgaXMgc3BlY2lmaWVkIGFzCiAqICAgICBhIG1hcCAoYXMgdXNlZCBpbiB0aGUgalF1ZXJ5IGNzcyguLi4pIGZ1bmN0aW9uKS4KICogb25Ecm9wU3R5bGUKICogICAgIFRoaXMgaXMgdGhlIHN0eWxlIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIHJvdyB3aGVuIGl0IGlzIGRyb3BwZWQuIEFzIGZvciBvbkRyYWdTdHlsZSwgdGhlcmUgYXJlIGxpbWl0YXRpb25zCiAqICAgICB0byB3aGF0IHlvdSBjYW4gZG8uIEFsc28gdGhpcyByZXBsYWNlcyB0aGUgb3JpZ2luYWwgc3R5bGUsIHNvIGFnYWluIGNvbnNpZGVyIHVzaW5nIG9uRHJhZ0NsYXNzIHdoaWNoCiAqICAgICBpcyBzaW1wbHkgYWRkZWQgYW5kIHRoZW4gcmVtb3ZlZCBvbiBkcm9wLgogKiBvbkRyYWdDbGFzcwogKiAgICAgVGhpcyBjbGFzcyBpcyBhZGRlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBkcmFnIGFuZCB0aGVuIHJlbW92ZWQgd2hlbiB0aGUgcm93IGlzIGRyb3BwZWQuIEl0IGlzIG1vcmUKICogICAgIGZsZXhpYmxlIHRoYW4gdXNpbmcgb25EcmFnU3R5bGUgc2luY2UgaXQgY2FuIGJlIGluaGVyaXRlZCBieSB0aGUgcm93IGNlbGxzIGFuZCBvdGhlciBjb250ZW50LiBUaGUgZGVmYXVsdAogKiAgICAgaXMgY2xhc3MgaXMgdERuRF93aGlsZURyYWcuIFNvIHRvIHVzZSB0aGUgZGVmYXVsdCwgc2ltcGx5IGN1c3RvbWlzZSB0aGlzIENTUyBjbGFzcyBpbiB5b3VyCiAqICAgICBzdHlsZXNoZWV0LgogKiBvbkRyb3AKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgdGFibGUKICogICAgIGFuZCB0aGUgcm93IHRoYXQgd2FzIGRyb3BwZWQuIFlvdSBjYW4gd29yayBvdXQgdGhlIG5ldyBvcmRlciBvZiB0aGUgcm93cyBieSB1c2luZwogKiAgICAgdGFibGUucm93cy4KICogb25EcmFnU3RhcnQKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUKICogICAgIHRhYmxlIGFuZCB0aGUgcm93IHdoaWNoIHRoZSB1c2VyIGhhcyBzdGFydGVkIHRvIGRyYWcuCiAqIG9uQWxsb3dEcm9wCiAqICAgICBQYXNzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBhcyBhIHJvdyBpcyBvdmVyIGFub3RoZXIgcm93LiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCBhbGxvdyAKICogICAgIGRyb3BwaW5nIG9uIHRoYXQgcm93LCBvdGhlcndpc2Ugbm90LiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgZHJhZ2dlZCByb3cgYW5kIHRoZSByb3cgdW5kZXIKICogICAgIHRoZSBjdXJzb3IuIEl0IHJldHVybnMgYSBib29sZWFuOiB0cnVlIGFsbG93cyB0aGUgZHJvcCwgZmFsc2UgZG9lc24ndCBhbGxvdyBpdC4KICogc2Nyb2xsQW1vdW50CiAqICAgICBUaGlzIGlzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbCBpZiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZQogKiAgICAgd2luZG93LiBUaGUgcGFnZSBzaG91bGQgYXV0b21hdGljYWxseSBzY3JvbGwgdXAgb3IgZG93biBhcyBhcHByb3ByaWF0ZSAodGVzdGVkIGluIElFNiwgSUU3LCBTYWZhcmksIEZGMiwKICogICAgIEZGMyBiZXRhCiAqIGRyYWdIYW5kbGUKICogICAgIFRoaXMgaXMgdGhlIG5hbWUgb2YgYSBjbGFzcyB0aGF0IHlvdSBhc3NpZ24gdG8gb25lIG9yIG1vcmUgY2VsbHMgaW4gZWFjaCByb3cgdGhhdCBpcyBkcmFnZ2FibGUuIElmIHlvdQogKiAgICAgc3BlY2lmeSB0aGlzIGNsYXNzLCB0aGVuIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3Vyc29yOiBtb3ZlIGluIHRoZSBDU1MgYW5kIG9ubHkgdGhlc2UgY2VsbHMKICogICAgIHdpbGwgaGF2ZSB0aGUgZHJhZyBiZWhhdmlvdXIuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIGRyYWdIYW5kbGUsIHRoZW4geW91IGdldCB0aGUgb2xkIGJlaGF2aW91ciB3aGVyZQogKiAgICAgdGhlIHdob2xlIHJvdyBpcyBkcmFnZ2FibGUuCiAqIAogKiBPdGhlciB3YXlzIHRvIGNvbnRyb2wgYmVoYXZpb3VyOgogKgogKiBBZGQgY2xhc3M9Im5vZHJvcCIgdG8gYW55IHJvd3MgZm9yIHdoaWNoIHlvdSBkb24ndCB3YW50IHRvIGFsbG93IGRyb3BwaW5nLCBhbmQgY2xhc3M9Im5vZHJhZyIgdG8gYW55IHJvd3MKICogdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBiZSBkcmFnZ2FibGUuCiAqCiAqIEluc2lkZSB0aGUgb25Ecm9wIG1ldGhvZCB5b3UgY2FuIGFsc28gY2FsbCAkLnRhYmxlRG5ELnNlcmlhbGl6ZSgpIHRoaXMgcmV0dXJucyBhIHN0cmluZyBvZiB0aGUgZm9ybQogKiA8dGFibGVJRD5bXT08cm93SUQxPiY8dGFibGVJRD5bXT08cm93SUQyPiBzbyB0aGF0IHlvdSBjYW4gc2VuZCB0aGlzIGJhY2sgdG8gdGhlIHNlcnZlci4gVGhlIHRhYmxlIG11c3QgaGF2ZQogKiBhbiBJRCBhcyBtdXN0IGFsbCB0aGUgcm93cy4KICoKICogT3RoZXIgbWV0aG9kczoKICoKICogJCgiLi4uIikudGFibGVEbkRVcGRhdGUoKSAKICogV2lsbCB1cGRhdGUgYWxsIHRoZSBtYXRjaGluZyB0YWJsZXMsIHRoYXQgaXMgaXQgd2lsbCByZWFwcGx5IHRoZSBtb3VzZWRvd24gbWV0aG9kIHRvIHRoZSByb3dzIChvciBoYW5kbGUgY2VsbHMpLgogKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZSByb3dzIHVzaW5nIEFqYXggYW5kIHlvdSB3YW50IHRvIG1ha2UgdGhlIHRhYmxlIGRyYWdnYWJsZSBhZ2Fpbi4KICogVGhlIHRhYmxlIG1haW50YWlucyB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbiAoc28geW91IGRvbid0IGhhdmUgdG8gc3BlY2lmeSBpdCBhZ2FpbikuCiAqCiAqICQoIi4uLiIpLnRhYmxlRG5EU2VyaWFsaXplKCkKICogV2lsbCBzZXJpYWxpemUgYW5kIHJldHVybiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgYXMgYWJvdmUsIGJ1dCBmb3IgZWFjaCBvZiB0aGUgbWF0Y2hpbmcgdGFibGVzLS1zbyBpdCBjYW4gYmUKICogY2FsbGVkIGZyb20gYW55d2hlcmUgYW5kIGlzbid0IGRlcGVuZGVudCBvbiB0aGUgY3VycmVudFRhYmxlIGJlaW5nIHNldCB1cCBjb3JyZWN0bHkgYmVmb3JlIGNhbGxpbmcKICoKICogS25vd24gcHJvYmxlbXM6CiAqIC0gQXV0by1zY29sbCBoYXMgc29tZSBwcm9ibGVtcyB3aXRoIElFNyAgKGl0IHNjcm9sbHMgZXZlbiB3aGVuIGl0IHNob3VsZG4ndCksIHdvcmstYXJvdW5kOiBzZXQgc2Nyb2xsQW1vdW50IHRvIDAKICogCiAqIFZlcnNpb24gMC4yOiAyMDA4LTAyLTIwIEZpcnN0IHB1YmxpYyB2ZXJzaW9uCiAqIFZlcnNpb24gMC4zOiAyMDA4LTAyLTA3IEFkZGVkIG9uRHJhZ1N0YXJ0IG9wdGlvbgogKiAgICAgICAgICAgICAgICAgICAgICAgICBNYWRlIHRoZSBzY3JvbGwgYW1vdW50IGNvbmZpZ3VyYWJsZSAoZGVmYXVsdCBpcyA1IGFzIGJlZm9yZSkKICogVmVyc2lvbiAwLjQ6IDIwMDgtMDMtMTUgQ2hhbmdlZCB0aGUgbm9EcmFnL25vRHJvcCBhdHRyaWJ1dGVzIHRvIG5vZHJhZy9ub2Ryb3AgY2xhc3NlcwogKiAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBvbkFsbG93RHJvcCB0byBjb250cm9sIGRyb3BwaW5nCiAqICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIGEgYnVnIHdoaWNoIG1lYW50IHRoYXQgeW91IGNvdWxkbid0IHNldCB0aGUgc2Nyb2xsIGFtb3VudCBpbiBib3RoIGRpcmVjdGlvbnMKICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc2VyaWFsaXplIG1ldGhvZAogKiBWZXJzaW9uIDAuNTogMjAwOC0wNS0xNiBDaGFuZ2VkIHNvIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBkcmFnSGFuZGxlIGNsYXNzIGl0IGRvZXNuJ3QgbWFrZSB0aGUgd2hvbGUgcm93CiAqICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZQogKiAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgc2VyaWFsaXplIG1ldGhvZCB0byB1c2UgYSBkZWZhdWx0IChhbmQgc2V0dGFibGUpIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgdGFibGVEbkR1cGF0ZSgpIGFuZCB0YWJsZURuRFNlcmlhbGl6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHlvdSBhcmUgb3V0c2lkZSB0aGUgdGFibGUKICovCmpRdWVyeS50YWJsZURuRCA9IHsKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgdGFibGUgYmVpbmcgZHJhZ2dlZCAqLwogICAgY3VycmVudFRhYmxlIDogbnVsbCwKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgZHJhZyBvYmplY3QgaWYgYW55ICovCiAgICBkcmFnT2JqZWN0OiBudWxsLAogICAgLyoqIFRoZSBjdXJyZW50IG1vdXNlIG9mZnNldCAqLwogICAgbW91c2VPZmZzZXQ6IG51bGwsCiAgICAvKiogUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZSBvZiBZIHNvIHRoYXQgd2UgZG9uJ3QgZG8gdG9vIG11Y2ggcHJvY2Vzc2luZyAqLwogICAgb2xkWTogMCwKCiAgICAvKiogQWN0dWFsbHkgYnVpbGQgdGhlIHN0cnVjdHVyZSAqLwogICAgYnVpbGQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgICAgICAvLyBTZXQgdXAgdGhlIGRlZmF1bHRzIGlmIGFueQoKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIFRoaXMgaXMgYm91bmQgdG8gZWFjaCBtYXRjaGluZyB0YWJsZSwgc2V0IHVwIHRoZSBkZWZhdWx0cyBhbmQgb3ZlcnJpZGUgd2l0aCB1c2VyIG9wdGlvbnMKICAgICAgICAgICAgdGhpcy50YWJsZURuRENvbmZpZyA9IGpRdWVyeS5leHRlbmQoewogICAgICAgICAgICAgICAgb25EcmFnU3R5bGU6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyb3BTdHlsZTogbnVsbCwKCQkJCS8vIEFkZCBpbiB0aGUgZGVmYXVsdCBjbGFzcyBmb3Igd2hpbGVEcmFnZ2luZwoJCQkJb25EcmFnQ2xhc3M6ICJ0RG5EX3doaWxlRHJhZyIsCiAgICAgICAgICAgICAgICBvbkRyb3A6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydDogbnVsbCwKICAgICAgICAgICAgICAgIHNjcm9sbEFtb3VudDogNSwKCQkJCXNlcmlhbGl6ZVJlZ2V4cDogL1teXC1dKiQvLCAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSB0byB0cmltIHJvdyBJRHMKCQkJCXNlcmlhbGl6ZVBhcmFtTmFtZTogbnVsbCwgLy8gSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhbm90aGVyIHBhcmFtZXRlciBuYW1lIGluc3RlYWQgb2YgdGhlIHRhYmxlIElECiAgICAgICAgICAgICAgICBkcmFnSGFuZGxlOiBudWxsIC8vIElmIHlvdSBnaXZlIHRoZSBuYW1lIG9mIGEgY2xhc3MgaGVyZSwgdGhlbiBvbmx5IENlbGxzIHdpdGggdGhpcyBjbGFzcyB3aWxsIGJlIGRyYWdnYWJsZQogICAgICAgICAgICB9LCBvcHRpb25zIHx8IHt9KTsKICAgICAgICAgICAgLy8gTm93IG1ha2UgdGhlIHJvd3MgZHJhZ2dhYmxlCiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBOb3cgd2UgbmVlZCB0byBjYXB0dXJlIHRoZSBtb3VzZSB1cCBhbmQgbW91c2UgbW92ZSBldmVudAogICAgICAgIC8vIFdlIGNhbiB1c2UgYmluZCBzbyB0aGF0IHdlIGRvbid0IGludGVyZmVyZSB3aXRoIG90aGVyIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KQogICAgICAgICAgICAuYmluZCgnbW91c2Vtb3ZlJywgalF1ZXJ5LnRhYmxlRG5ELm1vdXNlbW92ZSkKICAgICAgICAgICAgLmJpbmQoJ21vdXNldXAnLCBqUXVlcnkudGFibGVEbkQubW91c2V1cCk7CgogICAgICAgIC8vIERvbid0IGJyZWFrIHRoZSBjaGFpbgogICAgICAgIHJldHVybiB0aGlzOwogICAgfSwKCiAgICAvKiogVGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwgdGhlIHJvd3Mgb24gdGhlIHRhYmxlIGRyYWdnYWJsZSBhcGFydCBmcm9tIHRob3NlIG1hcmtlZCBhcyAiTm9EcmFnIiAqLwogICAgbWFrZURyYWdnYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWc7CgkJaWYgKHRhYmxlLnRhYmxlRG5EQ29uZmlnLmRyYWdIYW5kbGUpIHsKCQkJLy8gV2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHNwZWNpZmllZCBjZWxscwoJCQl2YXIgY2VsbHMgPSBqUXVlcnkoInRkLiIrdGFibGUudGFibGVEbkRDb25maWcuZHJhZ0hhbmRsZSwgdGFibGUpOwoJCQljZWxscy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJLy8gVGhlIGNlbGwgaXMgYm91bmQgdG8gInRoaXMiCiAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykubW91c2Vkb3duKGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPSB0aGlzLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IHRhYmxlOwogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5vbkRyYWdTdGFydCkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHRoZSBvbkRyb3AgbWV0aG9kIGlmIHRoZXJlIGlzIG9uZQogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCQkJfSkKCQl9IGVsc2UgewoJCQkvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHdob2xlIHJvdwoJICAgICAgICB2YXIgcm93cyA9IGpRdWVyeSgidHIiLCB0YWJsZSk7IC8vIGdldCBhbGwgdGhlIHJvd3MgYXMgYSB3cmFwcGVkIHNldAoJICAgICAgICByb3dzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCByb3csIHRoZSByb3cgaXMgYm91bmQgdG8gInRoaXMiCgkJCQl2YXIgcm93ID0galF1ZXJ5KHRoaXMpOwoJCQkJaWYgKCEgcm93Lmhhc0NsYXNzKCJub2RyYWciKSkgewoJICAgICAgICAgICAgICAgIHJvdy5tb3VzZWRvd24oZnVuY3Rpb24oZXYpIHsKCSAgICAgICAgICAgICAgICAgICAgaWYgKGV2LnRhcmdldC50YWdOYW1lID09ICJURCIpIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ID0gdGhpczsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgPSB0YWJsZTsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CgkgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJhZ1N0YXJ0KSB7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwoJICAgICAgICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICAgICAgfSkuY3NzKCJjdXJzb3IiLCAibW92ZSIpOyAvLyBTdG9yZSB0aGUgdGFibGVEbkQgb2JqZWN0CgkJCQl9CgkJCX0pOwoJCX0KCX0sCgoJdXBkYXRlVGFibGVzOiBmdW5jdGlvbigpIHsKCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJaWYgKHRoaXMudGFibGVEbkRDb25maWcpIHsKCQkJCWpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwoJCQl9CgkJfSkKCX0sCgogICAgLyoqIEdldCB0aGUgbW91c2UgY29vcmRpbmF0ZXMgZnJvbSB0aGUgZXZlbnQgKGFsbG93aW5nIGZvciBicm93c2VyIGRpZmZlcmVuY2VzKSAqLwogICAgbW91c2VDb29yZHM6IGZ1bmN0aW9uKGV2KXsKICAgICAgICBpZihldi5wYWdlWCB8fCBldi5wYWdlWSl7CiAgICAgICAgICAgIHJldHVybiB7eDpldi5wYWdlWCwgeTpldi5wYWdlWX07CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHg6ZXYuY2xpZW50WCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCAtIGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCwKICAgICAgICAgICAgeTpldi5jbGllbnRZICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgIC0gZG9jdW1lbnQuYm9keS5jbGllbnRUb3AKICAgICAgICB9OwogICAgfSwKCiAgICAvKiogR2l2ZW4gYSB0YXJnZXQgZWxlbWVudCBhbmQgYSBtb3VzZSBldmVudCwgZ2V0IHRoZSBtb3VzZSBvZmZzZXQgZnJvbSB0aGF0IGVsZW1lbnQuCiAgICAgICAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gYW5kIHRoZSBtb3VzZSBwb3NpdGlvbiAqLwogICAgZ2V0TW91c2VPZmZzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgZXYpIHsKICAgICAgICBldiA9IGV2IHx8IHdpbmRvdy5ldmVudDsKCiAgICAgICAgdmFyIGRvY1BvcyAgICA9IHRoaXMuZ2V0UG9zaXRpb24odGFyZ2V0KTsKICAgICAgICB2YXIgbW91c2VQb3MgID0gdGhpcy5tb3VzZUNvb3Jkcyhldik7CiAgICAgICAgcmV0dXJuIHt4Om1vdXNlUG9zLnggLSBkb2NQb3MueCwgeTptb3VzZVBvcy55IC0gZG9jUG9zLnl9OwogICAgfSwKCiAgICAvKiogR2V0IHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IGJ5IGdvaW5nIHVwIHRoZSBET00gdHJlZSBhbmQgYWRkaW5nIHVwIGFsbCB0aGUgb2Zmc2V0cyAqLwogICAgZ2V0UG9zaXRpb246IGZ1bmN0aW9uKGUpewogICAgICAgIHZhciBsZWZ0ID0gMDsKICAgICAgICB2YXIgdG9wICA9IDA7CiAgICAgICAgLyoqIFNhZmFyaSBmaXggLS0gdGhhbmtzIHRvIEx1aXMgQ2hhdG8gZm9yIHRoaXMhICovCiAgICAgICAgaWYgKGUub2Zmc2V0SGVpZ2h0ID09IDApIHsKICAgICAgICAgICAgLyoqIFNhZmFyaSAyIGRvZXNuJ3QgY29ycmVjdGx5IGdyYWIgdGhlIG9mZnNldFRvcCBvZiBhIHRhYmxlIHJvdwogICAgICAgICAgICB0aGlzIGlzIGRldGFpbGVkIGhlcmU6CiAgICAgICAgICAgIGh0dHA6Ly9qYWNvYi5wZWFyZ3JvdmUuY29tL2Jsb2cvMjAwNi90ZWNobmljYWwvdGFibGUtcm93LW9mZnNldHRvcC1idWctaW4tc2FmYXJpLwogICAgICAgICAgICB0aGUgc29sdXRpb24gaXMgbGlrZXdpc2Ugbm90ZWQgdGhlcmUsIGdyYWIgdGhlIG9mZnNldCBvZiBhIHRhYmxlIGNlbGwgaW4gdGhlIHJvdyAtIHRoZSBmaXJzdENoaWxkLgogICAgICAgICAgICBub3RlIHRoYXQgZmlyZWZveCB3aWxsIHJldHVybiBhIHRleHQgbm9kZSBhcyBhIGZpcnN0IGNoaWxkLCBzbyBkZXNpZ25pbmcgYSBtb3JlIHRob3JvdWdoCiAgICAgICAgICAgIHNvbHV0aW9uIG1heSBuZWVkIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQsIGZvciBub3cgdGhpcyBzZWVtcyB0byB3b3JrIGluIGZpcmVmb3gsIHNhZmFyaSwgaWUgKi8KICAgICAgICAgICAgZSA9IGUuZmlyc3RDaGlsZDsgLy8gYSB0YWJsZSBjZWxsCiAgICAgICAgfQoJCWlmIChlICYmIGUub2Zmc2V0UGFyZW50KSB7CiAgICAgICAgCXdoaWxlIChlLm9mZnNldFBhcmVudCl7CiAgICAgICAgICAgIAlsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAgICAgCXRvcCAgKz0gZS5vZmZzZXRUb3A7CiAgICAgICAgICAgIAllICAgICA9IGUub2Zmc2V0UGFyZW50OwogICAgICAgIAl9CgogICAgICAgIAlsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAJdG9wICArPSBlLm9mZnNldFRvcDsKICAgICAgICB9CgogICAgICAgIHJldHVybiB7eDpsZWZ0LCB5OnRvcH07CiAgICB9LAoKICAgIG1vdXNlbW92ZTogZnVuY3Rpb24oZXYpIHsKICAgICAgICBpZiAoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgZHJhZ09iaiA9IGpRdWVyeShqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCk7CiAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgdmFyIG1vdXNlUG9zID0galF1ZXJ5LnRhYmxlRG5ELm1vdXNlQ29vcmRzKGV2KTsKICAgICAgICB2YXIgeSA9IG1vdXNlUG9zLnkgLSBqUXVlcnkudGFibGVEbkQubW91c2VPZmZzZXQueTsKICAgICAgICAvL2F1dG8gc2Nyb2xsIHRoZSB3aW5kb3cKCSAgICB2YXIgeU9mZnNldCA9IHdpbmRvdy5wYWdlWU9mZnNldDsKCSAJaWYgKGRvY3VtZW50LmFsbCkgewoJICAgICAgICAvLyBXaW5kb3dzIHZlcnNpb24KCSAgICAgICAgLy95T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50LmNvbXBhdE1vZGUgIT0gJ3VuZGVmaW5lZCcgJiYKCSAgICAgICAgICAgICBkb2N1bWVudC5jb21wYXRNb2RlICE9ICdCYWNrQ29tcGF0JykgewoJICAgICAgICAgICB5T2Zmc2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKCSAgICAgICAgfQoJICAgICAgICBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQuYm9keSAhPSAndW5kZWZpbmVkJykgewoJICAgICAgICAgICB5T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICB9CgoJICAgIH0KCQkgICAgCgkJaWYgKG1vdXNlUG9zLnkteU9mZnNldCA8IGNvbmZpZy5zY3JvbGxBbW91bnQpIHsKCSAgICAJd2luZG93LnNjcm9sbEJ5KDAsIC1jb25maWcuc2Nyb2xsQW1vdW50KTsKCSAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ID8gd2luZG93LmlubmVySGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICBpZiAod2luZG93SGVpZ2h0LShtb3VzZVBvcy55LXlPZmZzZXQpIDwgY29uZmlnLnNjcm9sbEFtb3VudCkgewogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIGNvbmZpZy5zY3JvbGxBbW91bnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgaWYgKHkgIT0galF1ZXJ5LnRhYmxlRG5ELm9sZFkpIHsKICAgICAgICAgICAgLy8gd29yayBvdXQgaWYgd2UncmUgZ29pbmcgdXAgb3IgZG93bi4uLgogICAgICAgICAgICB2YXIgbW92aW5nRG93biA9IHkgPiBqUXVlcnkudGFibGVEbkQub2xkWTsKICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBvbGQgdmFsdWUKICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELm9sZFkgPSB5OwogICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHN0eWxlIHRvIHNob3cgd2UncmUgZHJhZ2dpbmcKCQkJaWYgKGNvbmZpZy5vbkRyYWdDbGFzcykgewoJCQkJZHJhZ09iai5hZGRDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgZHJhZ09iai5jc3MoY29uZmlnLm9uRHJhZ1N0eWxlKTsKCQkJfQogICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdmVyIGEgcm93IHRoZW4gbW92ZSB0aGUgZHJhZ2dlZCByb3cgdG8gdGhlcmUgc28gdGhhdCB0aGUgdXNlciBzZWVzIHRoZQogICAgICAgICAgICAvLyBlZmZlY3QgZHluYW1pY2FsbHkKICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3cgPSBqUXVlcnkudGFibGVEbkQuZmluZERyb3BUYXJnZXRSb3coZHJhZ09iaiwgeSk7CiAgICAgICAgICAgIGlmIChjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAvLyBUT0RPIHdvcnJ5IGFib3V0IHdoYXQgaGFwcGVucyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBUQk9ESUVTCiAgICAgICAgICAgICAgICBpZiAobW92aW5nRG93biAmJiBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCAhPSBjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QsIGN1cnJlbnRSb3cubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghIG1vdmluZ0Rvd24gJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgIT0gY3VycmVudFJvdykgewogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LCBjdXJyZW50Um93KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKCiAgICAvKiogV2UncmUgb25seSB3b3JyaWVkIGFib3V0IHRoZSB5IHBvc2l0aW9uIHJlYWxseSwgYmVjYXVzZSB3ZSBjYW4gb25seSBtb3ZlIHJvd3MgdXAgYW5kIGRvd24gKi8KICAgIGZpbmREcm9wVGFyZ2V0Um93OiBmdW5jdGlvbihkcmFnZ2VkUm93LCB5KSB7CiAgICAgICAgdmFyIHJvd3MgPSBqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlLnJvd3M7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpPHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbaV07CiAgICAgICAgICAgIHZhciByb3dZICAgID0gdGhpcy5nZXRQb3NpdGlvbihyb3cpLnk7CiAgICAgICAgICAgIHZhciByb3dIZWlnaHQgPSBwYXJzZUludChyb3cub2Zmc2V0SGVpZ2h0KS8yOwogICAgICAgICAgICBpZiAocm93Lm9mZnNldEhlaWdodCA9PSAwKSB7CiAgICAgICAgICAgICAgICByb3dZID0gdGhpcy5nZXRQb3NpdGlvbihyb3cuZmlyc3RDaGlsZCkueTsKICAgICAgICAgICAgICAgIHJvd0hlaWdodCA9IHBhcnNlSW50KHJvdy5maXJzdENoaWxkLm9mZnNldEhlaWdodCkvMjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBCZWNhdXNlIHdlIGFsd2F5cyBoYXZlIHRvIGluc2VydCBiZWZvcmUsIHdlIG5lZWQgdG8gb2Zmc2V0IHRoZSBoZWlnaHQgYSBiaXQKICAgICAgICAgICAgaWYgKCh5ID4gcm93WSAtIHJvd0hlaWdodCkgJiYgKHkgPCAocm93WSArIHJvd0hlaWdodCkpKSB7CiAgICAgICAgICAgICAgICAvLyB0aGF0J3MgdGhlIHJvdyB3ZSdyZSBvdmVyCgkJCQkvLyBJZiBpdCdzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHJvdywgaWdub3JlIGl0CgkJCQlpZiAocm93ID09IGRyYWdnZWRSb3cpIHtyZXR1cm4gbnVsbDt9CiAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0galF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZzsKICAgICAgICAgICAgICAgIGlmIChjb25maWcub25BbGxvd0Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uQWxsb3dEcm9wKGRyYWdnZWRSb3csIHJvdykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewoJCQkJCS8vIElmIGEgcm93IGhhcyBub2Ryb3AgY2xhc3MsIHRoZW4gZG9uJ3QgYWxsb3cgZHJvcHBpbmcgKGluc3BpcmVkIGJ5IEpvaG4gVGFyciBhbmQgRmFtaWMpCiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZHJvcCA9IGpRdWVyeShyb3cpLmhhc0NsYXNzKCJub2Ryb3AiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoISBub2Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfSwKCiAgICBtb3VzZXVwOiBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QpIHsKICAgICAgICAgICAgdmFyIGRyb3BwZWRSb3cgPSBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdDsKICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBkcmFnT2JqZWN0LCB0aGVuIHdlIG5lZWQgdG8gcmVsZWFzZSBpdCwKICAgICAgICAgICAgLy8gVGhlIHJvdyB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBwbGFjZSBzbyB3ZSBqdXN0IHJlc2V0IHN0dWZmCgkJCWlmIChjb25maWcub25EcmFnQ2xhc3MpIHsKCSAgICAgICAgICAgIGpRdWVyeShkcm9wcGVkUm93KS5yZW1vdmVDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgalF1ZXJ5KGRyb3BwZWRSb3cpLmNzcyhjb25maWcub25Ecm9wU3R5bGUpOwoJCQl9CiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ICAgPSBudWxsOwogICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJvcCkgewogICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICAgICAgICAgIGNvbmZpZy5vbkRyb3AoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSwgZHJvcHBlZFJvdyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IG51bGw7IC8vIGxldCBnbyBvZiB0aGUgdGFibGUgdG9vCiAgICAgICAgfQogICAgfSwKCiAgICBzZXJpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiBqUXVlcnkudGFibGVEbkQuc2VyaWFsaXplVGFibGUoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogTm8gVGFibGUgaWQgc2V0LCB5b3UgbmVlZCB0byBzZXQgYW4gaWQgb24geW91ciB0YWJsZSBhbmQgZXZlcnkgcm93IjsKICAgICAgICB9CiAgICB9LAoKCXNlcmlhbGl6ZVRhYmxlOiBmdW5jdGlvbih0YWJsZSkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB2YXIgdGFibGVJZCA9IHRhYmxlLmlkOwogICAgICAgIHZhciByb3dzID0gdGFibGUucm93czsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8cm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHJlc3VsdCArPSAiJiI7CiAgICAgICAgICAgIHZhciByb3dJZCA9IHJvd3NbaV0uaWQ7CiAgICAgICAgICAgIGlmIChyb3dJZCAmJiByb3dJZCAmJiB0YWJsZS50YWJsZURuRENvbmZpZyAmJiB0YWJsZS50YWJsZURuRENvbmZpZy5zZXJpYWxpemVSZWdleHApIHsKICAgICAgICAgICAgICAgIHJvd0lkID0gcm93SWQubWF0Y2godGFibGUudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKVswXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0ICs9IHRhYmxlSWQgKyAnW109JyArIHJvd0lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwoJfSwKCglzZXJpYWxpemVUYWJsZXM6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJcmVzdWx0ICs9IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZSh0aGlzKTsKCQl9KTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKfQoKalF1ZXJ5LmZuLmV4dGVuZCgKCXsKCQl0YWJsZURuRCA6IGpRdWVyeS50YWJsZURuRC5idWlsZCwKCQl0YWJsZURuRFVwZGF0ZSA6IGpRdWVyeS50YWJsZURuRC51cGRhdGVUYWJsZXMsCgkJdGFibGVEbkRTZXJpYWxpemU6IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZXMKCX0KKTs=]]></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/replacement.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMgb3VyIG93biByZXBsYWNlbWVudCBpbmMsIGFzIGl0IHdhcyByZW1vdmVkIGZyb20gY29yZSBpbiBDTVNNUyAyLjAgKEpNKQ0KDQokdG9yZXBsYWNlICA9IGFycmF5KA0KICAgICAgICAgICLDhCIsIsOkIiwiw4YiLCLDpiIsIse8Iiwix70iLCLDhSIsIsOlIiwix7oiLCLHuyIsIsOAIiwiw4EiLCLDgiIsIsODIiwiw6AiLCLDoSIsIsOiIiwiw6MiLCLEgCIsIsSBIiwixIIiLCLEgyIsIsSEIiwixIUiLCLHjSIsIseOIiwi4bqgIiwi4bqgIiwi4bqhIiwi4bqiIiwi4bqjIiwi4bqkIiwi4bqlIiwi4bqmIiwi4bqnIiwi4bqoIiwi4bqpIiwi4bqqIiwi4bqrIiwi4bqsIiwi4bqtIiwi4bquIiwi4bqvIiwi4bqwIiwi4bqxIiwi4bqyIiwi4bqzIiwi4bq0Iiwi4bq1Iiwi4bq2Iiwi4bq3IiwNCiAgICAgICAgICAiw4ciLCLDpyIsIsSGIiwixIciLCLEiCIsIsSJIiwixIoiLCLEiyIsIsSMIiwixI0iLA0KICAgICAgICAgICLDkCIsIsOwIiwixI4iLCLEjyIsIsSQIiwixJEiLA0KICAgICAgICAgICLDiCIsIsOJIiwiw4oiLCLDiyIsIsOoIiwiw6kiLCLDqiIsIsOrIiwixJIiLCLEkyIsIsSUIiwixJUiLCLEliIsIsSXIiwixJgiLCLEmSIsIsSaIiwixJsiLCLhurgiLCLhurkiLCLhuroiLCLhursiLCLhurwiLCLhur4iLCLhur8iLCLhu4AiLCLhu4EiLCLhu4IiLCLhu4MiLCLhu4UiLCLhu4YiLCLhu4ciLCLGjyIsIsmZIiwNCiAgICAgICAgICAixb8iLCLFvyIsDQogICAgICAgICAgIsScIiwixJ0iLCLEniIsIsSfIiwixKAiLCLEoSIsIsSiIiwixKMiLA0KICAgICAgICAgICLEpCIsIsSlIiwixKYiLCLEpyIsDQogICAgICAgICAgIsOMIiwiw40iLCLDjiIsIsOPIiwiw6wiLCLDrSIsIsOuIiwiw68iLCLEqCIsIsSpIiwixKoiLCLEqyIsIsSsIiwixK0iLCLEriIsIsSvIiwixLAiLCLEsSIsIsePIiwix5AiLCLhu4giLCLhu4kiLCLhu4oiLCLhu4siLA0KICAgICAgICAgICLEsiIsIsSzIiwNCiAgICAgICAgICAi76yBIiwi76yCIiwNCiAgICAgICAgICAixLQiLCLEtSIsDQogICAgICAgICAgIsS2IiwixLciLCLEuCIsDQogICAgICAgICAgIsS5IiwixLoiLCLEuyIsIsS8IiwixL0iLCLEviIsIsS/IiwixYAiLCLFgSIsIsWCIiwNCiAgICAgICAgICAiw5EiLCLDsSIsIsWDIiwixYQiLCLFhSIsIsWHIiwixYgiLCLFiSIsIsWKIiwixYsiLA0KICAgICAgICAgICLDliIsIsO2Iiwiw5giLCLDuCIsIse+Iiwix78iLCLDkiIsIsOTIiwiw5QiLCLDlSIsIsOyIiwiw7MiLCLDtCIsIsO1IiwixYwiLCLFjSIsIsWOIiwixY8iLCLFkCIsIsWRIiwix5EiLCLHkiIsIuG7jCIsIuG7jSIsIuG7jiIsIuG7jyIsIuG7kCIsIuG7kSIsIuG7kiIsIuG7kyIsIuG7lCIsIuG7lSIsIuG7liIsIuG7lyIsIuG7mCIsIuG7mSIsIuG7miIsIuG7myIsIuG7nCIsIuG7nSIsIuG7niIsIuG7nyIsIuG7oCIsIuG7oSIsIuG7oiIsIuG7oyIsIsagIiwixqEiLA0KICAgICAgICAgICLFkiIsIsWTIiwNCiAgICAgICAgICAixZQiLCLFlSIsIsWWIiwixZciLCLFmCIsIsWZIiwNCiAgICAgICAgICAixZoiLCLFmyIsIsWcIiwixZ4iLCLFnyIsIsWgIiwixaEiLA0KICAgICAgICAgICLFoiIsIsWjIiwixaQiLCLFpSIsIsWmIiwixaciLA0KICAgICAgICAgICLDnCIsIsO8Iiwiw5kiLCLDmiIsIsObIiwiw7kiLCLDuiIsIsO7Iiwi4bukIiwi4bulIiwi4bumIiwi4bunIiwi4buoIiwi4bupIiwi4buqIiwi4burIiwi4buuIiwi4buvIiwi4buwIiwi4buxIiwixagiLCLFqSIsIsWqIiwixasiLCLFrCIsIsWtIiwixa4iLCLFryIsIsWwIiwixbEiLCLFsiIsIsWzIiwix5MiLCLHlCIsIseWIiwix5giLCLHmSIsIseaIiwix5siLCLHnCIsIsavIiwixrAiLA0KICAgICAgICAgICLFtCIsIsW1Iiwi4bqAIiwi4bqBIiwi4bqCIiwi4bqDIiwi4bqEIiwi4bqFIiwNCiAgICAgICAgICAiw50iLCLDvSIsIsO/IiwixbYiLCLFtyIsIsW4Iiwi4buyIiwi4buzIiwi4bu0Iiwi4bu1Iiwi4bu2Iiwi4bu3Iiwi4bu4Iiwi4bu5IiwNCiAgICAgICAgICAiw54iLCLDviIsIsOfIiwNCiAgICAgICAgICAixbkiLCLFuiIsIsW7IiwixbwiLCLFvSIsIsW+IiwNCiLQkCIsICLQkSIsICLQkiIsICLQkyIsICLQlCIsICLQlSIsICLQgSIsICLQliIsICLQlyIsICLQmCIsICLQmSIsICLQmiIsICLQmyIsICLQnCIsICLQnSIsICLQniIsICLQnyIsICLQoCIsICLQoSIsDQoi0KIiLCAi0KMiLCAi0KQiLCAi0KUiLCAi0KYiLCAi0KciLCAi0KgiLCAi0KkiLCAi0KoiLCAi0KsiLCAi0KwiLCAi0K0iLCAi0K4iLCAi0K8iLA0KItCwIiwgItCxIiwgItCyIiwgItCzIiwgItC0IiwgItC1IiwgItGRIiwgItC2IiwgItC3IiwgItC4IiwgItC5IiwgItC6IiwgItC7IiwgItC8IiwgItC9IiwgItC+IiwgItC/IiwgItGAIiwgItGBIiwNCiLRgiIsICLRgyIsICLRhCIsICLRhSIsICLRhiIsICLRhyIsICLRiCIsICLRiSIsICLRiiIsICLRiyIsICLRjCIsICLRjSIsICLRjiIsICLRjyIsDQogICAgKTsNCg0KJHJlcGxhY2VtZW50ID0gYXJyYXkoDQogICAgICAgICAgImFlIiwiYWUiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwiYSIsImEiLCJhIiwNCiAgICAgICAgICAiYyIsImMiLCJjIiwiYyIsImMiLCJjIiwiYyIsImMiLCJjIiwiYyIsDQogICAgICAgICAgImQiLCJkIiwiZCIsImQiLCJkIiwiZCIsDQogICAgICAgICAgImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLCJlIiwiZSIsImUiLA0KICAgICAgICAgICJmIiwiZiIsDQogICAgICAgICAgImciLCJnIiwiZyIsImciLCJnIiwiZyIsImciLCJnIiwNCiAgICAgICAgICAiaCIsImgiLCJoIiwiaCIsDQogICAgICAgICAgImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsImkiLCJpIiwiaSIsDQogICAgICAgICAgImlqIiwiaWoiLA0KICAgICAgICAgICJmaSIsImZsIiwNCiAgICAgICAgICAiaiIsImoiLA0KICAgICAgICAgICJrIiwiayIsImsiLA0KICAgICAgICAgICJsIiwibCIsImwiLCJsIiwibCIsImwiLCJsIiwibCIsImwiLCJsIiwNCiAgICAgICAgICAibiIsIm4iLCJuIiwibiIsIm4iLCJuIiwibiIsIm4iLCJuIiwibiIsDQogICAgICAgICAgIm9lIiwib2UiLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwibyIsIm8iLCJvIiwNCiAgICAgICAgICAib2UiLCJvZSIsDQogICAgICAgICAgInIiLCJyIiwiciIsInIiLCJyIiwiciIsDQogICAgICAgICAgInMiLCJzIiwicyIsInMiLCJzIiwicyIsInMiLA0KICAgICAgICAgICJ0IiwidCIsInQiLCJ0IiwidCIsInQiLA0KICAgICAgICAgICJ1ZSIsInVlIiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsInUiLCJ1IiwidSIsDQogICAgICAgICAgInciLCJ3IiwidyIsInciLCJ3IiwidyIsInciLCJ3IiwNCiAgICAgICAgICAieSIsInkiLCJ5IiwieSIsInkiLCJ5IiwieSIsInkiLCJ5IiwieSIsInkiLCJ5IiwieSIsInkiLA0KICAgICAgICAgICJ0aCIsInRoIiwic3MiLA0KICAgICAgICAgICJ6IiwieiIsInoiLCJ6IiwieiIsInoiLA0KImEiLCAiYiIsICJ2IiwgImciLCAiZCIsICJlIiwgImUiLCAiemgiLCAieiIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAiciIsICJzIiwNCiJ0IiwgInUiLCAiZiIsICJoIiwgInRzIiwgImNoIiwgInNoIiwgInNjaCIsICIiLCAieSIsICIiLCAiZSIsICJ5dSIsICJ5YSIsDQoiYSIsICJiIiwgInYiLCAiZyIsICJkIiwgImUiLCAiZSIsICJ6aCIsICJ6IiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJyIiwgInMiLA0KInQiLCAidSIsICJmIiwgImgiLCAidHMiLCAiY2giLCAic2giLCAic2NoIiwgIiIsICJ5IiwgIiIsICJlIiwgInl1IiwgInlhIiwNCiAgICApOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/Sample_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjMiCglhbGlhcz0ic2FtcGxlX2Zvcm0iPgoJCTxmb3JtX25hbWU+PCFbQ0RBVEFbU2FtcGxlIEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0icHJlZGlzcGxheV91ZHQiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9hY3Rpb24iPjwhW0NEQVRBW3RleHRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iaW5wdXRfYnV0dG9uX3NhZmV0eSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1c2VfY2F0Y2hhIj48IVtDREFUQVtdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfdXNlcl9jYXB0Y2hhIj48IVtDREFUQVtQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJwcmV2X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtCYWNrLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlubGluZSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImZvcm1fdGVtcGxhdGUiPjwhW0NEQVRBW3sqIERFRkFVTFQgRk9STSBMQVlPVVQgLyBwdXJlIENTUyAqfQ0KeyRmYl9mb3JtX2hlYWRlcn0NCntpZiAkZmJfZm9ybV9kb25lID09IDF9DQogIHsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQ0KICB7aWYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9DQogICAgPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2Pg0KICAgIHtpZiAkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9yc30NCiAgICAgIDxkaXYgY2xhc3M9ImVycm9yIj4NCiAgICAgIDx1bD4NCiAgICAgIHtmb3JlYWNoIGZyb209JGZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCBpdGVtPXRoaXNFcnJ9DQogICAgICAgIDxsaT57JHRoaXNFcnJ9PC9saT4NCiAgICAgIHsvZm9yZWFjaH0NCiAgICAgIDwvdWw+DQogICAgPC9kaXY+DQogICAgey9pZn0NCiAgey9pZn0NCntlbHNlfQ0KICB7KiB0aGlzIHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgdGhlIGZvcm0gKn0NCiAgeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQ0KICB7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQ0KICAgIDxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPg0KICAgIDx1bD4NCiAgICB7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0NCiAgICAgIDxsaT57JHRoaXNFcnJ9PC9saT4NCiAgICB7L2ZvcmVhY2h9DQogICAgPC91bD4NCiAgICA8L2Rpdj4NCiAgey9pZn0NCiAge2lmICFlbXB0eSgkY2FwdGNoYV9lcnJvcil9DQogICAgPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2Pg0KICB7L2lmfQ0KDQogIHsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9DQogIHskZmJfZm9ybV9zdGFydH0NCiAgPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4NCiAgPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9Pg0KICB7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0NCiAge2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9DQogICAge2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQ0KICAgICAgICAgIHtzdHJpcH0NCiAgICAgICAgICAge2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9DQogICAgICAgICAgICAgIDxkaXYNCiAgICAgICAgICAgICAge2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9Ig0KICAgICAgICAgICAgICAgICAge2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0NCiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQNCiAgICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQ0KICAgICAgICAgICAgICAgICAge2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQ0KICAgICAgICAgICAgICAgICAgICB7JGVudHJ5LT5jc3NfY2xhc3N9DQogICAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgICAgIg0KICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICA+DQogICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgIHtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQ0KICAgICAgICAgICAgICA8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQ0KICAgICAgICAgICAgICB7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9DQogICAgICAgICAgICAgICAgICAgeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQ0KICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICA8L2xhYmVsPg0KICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICB7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQ0KICAgICAgICAgICAgICB7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQ0KICAgICAgICAgICAgICAgICAgIHtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9DQogICAgICAgICAgICAgICAgICAgICA8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4NCiAgICAgICAgICAgICAgICAgICB7ZWxzZX0NCiAgICAgICAgICAgICAgICAgICAgIHskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0NCiAgICAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgICAgIHtpZiBpc3NldCgkZW50cnktPmlucHV0W251bWxvb3BdLT5vcCl9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9DQogICAgICAgICAgICAgIHsvc2VjdGlvbn0NCiAgICAgICAgICAge2Vsc2V9DQogICAgICAgICAgICAgIHtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQ0KICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICB7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9DQogICAgICAgICAgIHtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQ0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgey9zdHJpcH0NCiAgICAgICB7L2lmfQ0KICB7L2ZvcmVhY2h9DQogIHtpZiBpc3NldCgkaGFzX2NhcHRjaGEpICYmICRoYXNfY2FwdGNoYSA9PSAxfQ0KICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57aWYgIWVtcHR5KCRpbnB1dF9jYXB0Y2hhKX17JGlucHV0X2NhcHRjaGF9ey9pZn08L2Rpdj4NCiAgey9pZn0NCiAgPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+DQogIDwvZGl2Pg0KICB7JGZiX2Zvcm1fZW5kfQ0Key9pZn0NCnskZmJfZm9ybV9mb290ZXJ9XV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InZhbGlkYXRlX3VkdCI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfcG9zaXRpb24iPjwhW0NEQVRBW2xlZnRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ibGlzdF9kZWxpbWl0ZXIiPjwhW0NEQVRBWyAtIF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV9kaXNwbGF5dHlwZSI+PCFbQ0RBVEFbdGFiXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbZm9ybWJ1aWxkZXJmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNhcHRjaGFfd3JvbmciPjwhW0NEQVRBW0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Ll1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxoMT5UaGFua3MhPC9oMT4NCg0KPHA+WW91ciBmZWVkYmFjayBoZWxwcyBtZSBtYWtlIHRoaXMgYSBiZXR0ZXIgbW9kdWxlLjwvcD4NCg0KPHA+SWYgeW91J2QgbGlrZSB0byBjb250cmlidXRlIHRvIHRoZSBmdXR1cmUgZGV2ZWxvcG1lbnQgb2YgRm9ybUJ1aWxkZXIsIHlvdSBjYW4gbWFrZSBhIGRvbmF0aW9uIGJlbG93LiBJIHdpbGwgYmUgaGFwcHkgdG8gZ2l2ZSBkb25vcnMgY3JlZGl0IGFzIGEgc3BvbnNvciBpbiB0aGUgRm9ybUJ1aWxkZXIgaGVscC4gRXZlcnkgYml0IGhlbHBzITwvcD4NCg0KPGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imhvc3RlZF9idXR0b25faWQiIHZhbHVlPSIyMDU3MjMxIj4NCjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfU00uZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSIiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjwvZm9ybT4NCl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW1NlbmQgRmVlZGJhY2tdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ibmV4dF9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQ29udGludWUuLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJlZGlzcGxheV9lYWNoX3VkdCI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCTxmaWVsZCBpZD0iMjEiCgkJdHlwZT0iRmllbGRzZXRTdGFydCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMiIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRmllbGRzZXQgU3RhcnRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImxlZ2VuZCI+PCFbQ0RBVEFbSGVscCBJbXByb3ZlIEZvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjIyIgoJCXR5cGU9IkRpc3Bvc2l0aW9uRW1haWwiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjMiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1NlbmQgSXRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFNhbXBsZSBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlciBJbnN0YWxsYXRpb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyaG9zdC5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVtzamdAY21zbW9kdWxlcy5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGgxPlNvbWVvbmUncyBUZXN0aW5nIGEgRm9ybUJ1aWxkZXIgU3VibWlzc2lvbiE8L2gxPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Zb3VyIHNlcnZlcjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+Cgo8aHIgLz4KPHN0cm9uZz5Nb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcjwvc3Ryb25nPjogeyRtb2R1bGVzX3lvdV9sbF9iZV91c2luZ308YnIgLz4KPHN0cm9uZz5XaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT88L3N0cm9uZz46IHskd2hhdF93aWxsX3lvdX08YnIgLz4KPHN0cm9uZz5XaGVyZSBhcmUgeW91IGZyb20/PC9zdHJvbmc+OiB7JHdoZXJlX2FyZV95b3VfZnJvbV99PGJyIC8+CjxzdHJvbmc+RG8geW91IGhhdmUgYW55IGNvbW1lbnRzIC8gZmVlZGJhY2sgZm9yIG1lPzwvc3Ryb25nPjogeyRkb195b3VfaGF2ZV9hbnl9PGJyIC8+Cl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMjMiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI0IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtXZWxjb21lIV1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0idGV4dCI+PCFbQ0RBVEFbVGhhbmtzIGZvciB0cnlpbmcgb3V0IEZvcm1CdWlsZGVyLiBZb3UgY2FuIHVzZSB0aGlzIGZvcm0gdG8gcHJvdmlkZSBtZSB3aXRoIGZlZWRiYWNrIGFib3V0IGhvdyB5b3Ugd2lsbCBiZSB1c2luZyBGb3JtIEJ1aWxkZXIsIHNvIEkgY2FuIGJlc3QgYWxsb2NhdGUgcmVzb3VyY2VzIGZvciBmdXR1cmUgZGV2ZWxvcG1lbnQuIFRoYW5rcywgX19fU2FtdWVsX19fXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVttZXNzYWdlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PCFbQ0RBVEFbXV0+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIyNCIKCQl0eXBlPSJDaGVja2JveEdyb3VwRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtNb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibm9fZW1wdHkiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnJvd3Nlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGcm9udCBFbmQgVXNlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbTmV3c2xldHRlciBNYWRlIFNpbXBsZSAoTk1TKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbT3RoZXIocyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJyb3dzZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRkVVXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW05NU11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbT3RoZXIocyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVsobm90IEZvcm1CdWlsZGVyKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBWyhub3QgRm9ybUJyb3dzZXIpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBGRVUpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBOTVMpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBDYXRhbG9nZXIpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vIE90aGVycyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVt5XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMjUiCgkJdHlwZT0iQ2hlY2tib3hHcm91cEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbV2hhdCB3aWxsIHlvdSBwZXJzb25hbGx5IGJlIGRvaW5nIG9uIHlvdXIgQ01TIE1TIHNpdGU/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJub19lbXB0eSI+PCFbQ0RBVEFbMV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtHcmFwaGljYWwgRGVzaWduXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0hUTUwgYW5kIENTU11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtXcml0ZSAvIE1haW50YWluIENvbnRlbnRdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRWRpdCBTbWFydHkgVGVtcGxhdGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW1dyaXRlIE1vZHVsZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbV3JpdGUgQ29yZSBDTVMgY29kZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtEb25hdGUgdG8gQ29yZS9Nb2R1bGUgRGV2ZWxvcGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0dyYXBoaWNhbCBEZXNpZ25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbSFRNTC9DU1NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbQ29udGVudF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtTbWFydHldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbTW9kdWxlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtDb3JlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2RvbmF0ZSFdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMjYiCgkJdHlwZT0iQ291bnRyeVBpY2tlckZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI3IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbV2hlcmUgYXJlIHlvdSBmcm9tP11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZGVmYXVsdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0ic2VsZWN0X29uZSI+PCFbQ0RBVEFbU2VsZWN0IE9uZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48IVtDREFUQVtdXT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjI3IgoJCXR5cGU9IlRleHRBcmVhRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjgiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgLyBmZWVkYmFjayBmb3IgbWU/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzEwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY29scyI+PCFbQ0RBVEFbNjBdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMjgiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjkiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0ZpZWxkc2V0IEVuZF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwhW0NEQVRBW11dPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KPC9mb3JtPgo=]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CgovLyBmaWVsZCB0eXBlcwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsRnJvbUZFVVByb3BlcnR5J10gPSAnKkVtYWlsIHVzZXJzIG1hdGNoaW5nIGFuIEZFVSBwcm9wZXJ0eSc7CiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddPSctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXT0nVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXT0nSFRNTDUgTnVtYmVyIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ109J0hUTUw1IEVtYWlsIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddPSdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9TaXRlQWRtaW5GaWVsZCddPSdTaXRlIEFkbWluJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRGaWVsZCddPSdQYXNzd29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddPSdQYXNzd29yZCBBZ2FpbiAodmVyaWZ5KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXT0nVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddPSdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddPSdCdXR0b24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ109J0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddPSdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ109J1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXT0nWWVhciBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXT0nTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ109J1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddPSdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXT0nQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXT0nRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXT0nVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXT0nUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddPScqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddPScqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXT0nKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddPScqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddPScqRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXT0nKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25VbmlxdWVGaWxlJ109JypXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddPScqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXT0nKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddPScqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ109JypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ109JypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxCYXNlZEZyb250ZW5kRmllbGRzJ109JypFbWFpbCByZXN1bHRzIGJhc2VkIG9uIGZyb250ZW5kIGZpZWxkcyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ109Jy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ109J0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ109J0VtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFbWFpbCAiRnJvbSBBZGRyZXNzIiBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddPSdFbWFpbCAiRnJvbSBOYW1lIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddPSdFbWFpbCAiU3ViamVjdCIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DQ0VtYWlsQWRkcmVzc0ZpZWxkJ109J0VtYWlsIENhcmJvbiBDb3B5IChDQykgQWRkcmVzcyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddPSctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXT0nLVN0YXRpYyBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ109J0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ109Jy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1Vc2VyIERlZmluZWQgVGFnIENhbGwnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsZSBJbnRlcmZhY2UgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdDaGVja2JveCBleHRlbmRlZCc7IC8vIE5lZWQgdG8gcmVtb3ZlCgovLyB2YWxpZGF0aW9uIHR5cGVzCiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXT0nTm8gVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXT0nTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXT0nSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXT0nRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXT0nUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ109J011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ109J01hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXT0nRG9lc25cJ3QgbWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1wdHknXT0nQ2FuXCd0IGJlIGVtcHR5JzsKCi8vIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMgYW5kIG90aGVyIGFsZXJ0cwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdOb3QgUmVxdWlyZWQnOwokbGFuZ1snbm90X2F2YWlsYWJsZSddID0gJ05vdCBBdmFpbGFibGUnOwokbGFuZ1snZXJyb3JfZW1haWxmcm9tZmV1cHJvcCddID0gJ0Vycm9yIGluIEZpZWxkIFNldHVwJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnVGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGNvdWxkIG5vdCBiZSBmb3VuZC4gIFRoaXMgZmllbGQgd2lsbCBub3QgZnVuY3Rpb24uJzsKJGxhbmdbJ2Vycm9yX25vZmV1ZGVmbnMnXSA9ICdObyBzdWl0YWJsZSBGRVUgcHJvcGVydHkgY291bGQgYmUgZm91bmQuICBUaGlzIGZpZWxkIHdpbGwgbm90IGZ1bmN0aW9uLic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ109J1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddPSdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXT0nUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ109J1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddPSdFbWFpbCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIHZhbHVlIGluICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXT0nUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1BsZWFzZSBsb2cgaW4gdG8gdXNlIHRoaXMgZm9ybSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXT0nIiVzIiBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ109J1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddPSdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ109J1NvcnJ5ISBZb3UgZG9uXCd0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ109J0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddPSdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXT0nRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ109J0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXT0nWW91IG11c3QgY2hlY2sgIiVzIiBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddPSdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ109J0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddPSdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdObyBmaWVsZCBhc3NpZ25lZCBmb3IgJXMnOwoKLy8gYWJicmV2aWF0aW9ucywgdmVyYnMsIGFuZCBvdGhlciBnZW5lcmFsIHRlcm1zCiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddPSdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ109JyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXT0nJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddPSclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXT0nT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXT0nW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddPSdhZGRlZCc7CiRsYW5nWyd1cGRhdGVkJ109J3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ109J1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXT0nU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXT0nVG8nOwokbGFuZ1sneWVzJ109J1llcyc7CiRsYW5nWydubyddPSdObyc7CiRsYW5nWydyZWNpcGllbnRzJ109J3JlY2lwaWVudHMnOwokbGFuZ1snZmllbGRzJ109J2ZpZWxkcyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddPSdTYXZlJzsKJGxhbmdbJ2FkZCddPSdBZGQnOwokbGFuZ1sndXBkYXRlJ109J1VwZGF0ZSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddPSdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ109J0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddPSdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXT0nRm9ybXMnOwokbGFuZ1snZm9ybSddPSdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXT0nQ29uZmlndXJhdGlvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ109J01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddPSdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXT0nQWxsb3dlZCBmaWxlIHR5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ109J1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ109J1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIEhvdXIgQ2xvY2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0IEhvdXIgQ2xvY2snOwokbGFuZ1snaG91ciddID0gJ0hvdXInOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwovLyRsYW5nWyd5ZWFyX3N0YXJ0J10gPSAnU3RhcnQgeWVhcic7CgokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwoKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ0JhY2suLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1N1Ym1pdCBGb3JtJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVlLi4uJzsKCiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwoKJGxhbmdbJ3RhYl9tYWluJ109J01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddPSdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddPSdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXT0nQ2FwdGNoYSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXT0nQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURUIEludGVncmF0aW9uJzsKCiRsYW5nWyd0aXRsZV9mZXVfcHJvcGVydHknXSA9ICdGcm9udEVuZFVzZXJzIFByb3BlcnR5JzsKJGxhbmdbJ2luZm9fZmV1X3Byb3BlcnR5J10gPSAnT25seSBjZXJ0YWluIHByb3BlcnR5IHR5cGVzIGNhbiBiZSB1c2VkIGZvciBtYXRjaGluZyAoZHJvcGRvd25zLCBtdWx0aS1zZWxlY3QgZmllbGRzLCBldGMpLic7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKCi8vIEZpZWxkIEF0dHJpYnV0ZSBUaXRsZXMKJGxhbmdbJ3RpdGxlX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQ2F0YWxvZ2VyIEF0dHJpYnV0ZSBGaWVsZHMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gPDw8RU9UCkJlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIgLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxiciAvPgo8YnIvPgo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIgLz4KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90OzxiciAvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIgLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIgLz4KPGJyLz4KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyIC8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHtcJGZsZF9pZH08YnIgLz4KPGJyLz4KRU9UOwokbGFuZ1sndGl0bGVfdGV4dGZpZWxkX2xhYmVsJ10gPSAnVGV4dGZpZWxkIGxhYmVsJzsgLy8gUmVtb3ZlPwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdTaG93IHRleHRmaWVsZD8nOyAvLyBSZW1vdmU/CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aS1zZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZpZWxkIEhlaWdodCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1VzZXIgRGVmaW5lZCBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggRm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlJ10gPSAnQWxsb3cgdXBsb2FkIHRvIG92ZXJ3cml0ZSBwcmV2aW91c2x5IGZpbGVzPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ1Nob3VsZCB1cGxvYWRlZCBmaWxlIG92ZXJ3cml0ZSBwcmV2aW91c2x5IHVwbG9hZGVkIGZpbGUgaWYgaXQgaGFzIHRoZSBzYW1lIG5hbWU/JzsKJGxhbmdbJ292ZXJ3cml0ZSddPSdBbGxvd3MgT3ZlcndyaXRpbmcnOwokbGFuZ1snbm9vdmVyd3JpdGUnXT0nTm8gT3ZlcndyaXRlJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXT0nRmlsZSAlcyBhbHJlYWR5IGV4aXN0cywgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlbi4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXT0nRmlsZW5hbWUgdGVtcGxhdGUnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXT0nT3JpZ2luYWwgZmlsZSBleHRlbnNpb24gKGluY2x1ZGVzIHRoZSAiLiIpJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2ZpbGVuYW1lJ109J1N1cHByZXNzIGZpbGVuYW1lIGluIGVtYWlscyBhbmQgZm9ybXMgdGhlIGVuZCB1c2VyIHdpbGwgc2VlJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2F0dGFjaG1lbnQnXT0nRGVueSBmaWxlIHRvIGJlIGF0dGFjaGVkIHdpdGggZW1haWxzJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXT0nVG8gcmVuYW1lIGEgZmlsZSB1cG9uIHVwbG9hZGluZywgY3JlYXRlIHRoZSB0ZW1wbGF0ZSBoZXJlLiBMZWF2ZSBibGFuayB0byBwcmVzZXJ2ZSBvcmlnaW5hbCBmaWxlbmFtZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXT0nTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXT0nQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXT0nUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXT0nVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddPSdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ109J0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXT0nIlNlbGVjdCBPbmUiIFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXT0nU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddPSJPcHRpb24gTmFtZSI7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXT0iVmFsdWUgU3VibWl0dGVkIjsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXT0nUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ109J011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddPSdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddPSciRnJvbSBuYW1lIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddPSdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddPSdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICJ4QHkiIGluc3RlYWQgb2YgcmVxdWlyaW5nICJ4QHkudGxkIiknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ109JyJGcm9tIGFkZHJlc3MiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddPSdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXT0nUHVsbGRvd24tYmFzZWQgRS1tYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXT0nRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXT0nRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddPSdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXT0nRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXT0nUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddPSdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddPSdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ109J1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddPSd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXT0nQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXT0nRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXT0nRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXT0nU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ109J0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXT0nRmllbGQgQWxpYXMgYW5kIERPTSBpZCAoQ1NTIGlkKSBhdHRyaWJ1dGUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ109J1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXT0nRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ109J3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXT0nRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXT0nQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddPSdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddPSdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddPSdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddPSdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddPSdCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddPSdBZGQgSmF2YVNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXT0nQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddPSdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXT0nRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddPSdDU1MgaWQgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXT0nQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ109J0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBkdXJpbmcgZm9ybSB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ109J1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddPSdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ109J1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ109J0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ109J0hpZGUgdGhpcyBmaWVsZFwncyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ109J01heGltdW0gbGVuZ3RoIG9mIGZpZWxkIGNvbnRlbnQgKDAgb3IgYmxhbmsgbWVhbnMgbm8gbGltaXQpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXT0nU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddPSdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdSZWFkIE9ubHknOwokbGFuZ1snbm9fZGVmYXVsdCddPSdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ109J1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddPSdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXC4oXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J109J1JlcVwnZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddPSdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddPSdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddPSdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXT0nTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBQSFAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlcyBpbnRvJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ109J1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXT0nRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ109J0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXT0nRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXT0nVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddPSdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddPSdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ109J0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXT0nRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddPSdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddPSdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddPSdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ109J0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddPSdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddPSdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ109J0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj4iQ2FwdGNoYSI8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIiB0YXJnZXQ9Il9ibGFuayI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfYmxhbmsiPiJDYXB0Y2hhIjwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXT0nQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb25cJ3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddPSdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXT0nTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXT0nQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ109J1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3MgU21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ109ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ109J0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ109J0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheVwncyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ109J0Rpc3BsYXkgVXNlclwncyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXT0nRGlzcGxheSBVc2VyXCdzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ109J0Rpc3BsYXkgVXNlclwncyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ109J1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIHN0b3JlZCBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdGUgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzIHBocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzIHBocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3MgcGhyYXNlIGZvciB0aGUgcHJpdmF0ZSBrZXkpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGUgb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWluIHRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXT0nRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIExpYnJhcnknOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciBiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIEZyb250ZW5kIFVzZXIgbW9kdWxlIHRvIGNvbm5lY3QgYSBmb3JtIGFuZCBpdHMgZGF0YSB0byBhIHNwZWNpZmljIHVzZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybVwncyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1tcJ0ZPUk1cJ10/IChkbyBub3QgZG8gdGhpcyBpZiB5b3UgYXJlIGdvaW5nIHRvIHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0VudGlyZSBVUkwsIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgcGF0aCAoZS5nLiwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnRm9ybSBzdWJtaXNzaW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdGb3JtIG1ldGhvZCc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICIlcyIgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgInVzZXI9c3RldmUram9icyZlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXT0nRGF0ZSBjb21wb25lbnQgZmllbGQgb3JkZXIgKGZvciBpbnB1dCknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZm9ybWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIEZvcm0gQnJvd3NlciBEaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddPSdVc2UgIm0iIGZvciBNb250aCwgImQiIGZvciBEYXksIGFuZCAieSIgZm9yIFllYXIuIFNlcGFyYXRlIHRoZSBpdGVtcyBieSBoeXBoZW5zLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXInOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdVc2UgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW5zdGVhZCBvZiBzdGF0aWMnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvdyBtYW55IG51bWJlcnMgdG8gZ2VuZXJhdGUgaW4gcHJvY2Vzcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddPSdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddPSdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXT0nRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXT0nWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ109J0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ109J1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXT0nRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddPSdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXT0nKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ109J0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLjxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ109J1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmluZzo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddPSdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddPSdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXT0nRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddPSdTcGVjaWZ5IGEgZmlsZSBsb2NhdGVkIGluIHRoZSBGb3JtQnVpbGRlci90ZW1wbGF0ZXMvIGZvbGRlci4gVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmIHlvdSB1c2UgVFhUIGFzIHlvdXIgZmlsZSB0eXBlLic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ109J0Jhc2ljOiBVc2UgdGhlIHRleHRhcmVhIGJlbG93IHRvIGxheW91dCB0aGUgZmllbGQgbmFtZXMvdmFsdWVzIGluIGEgc2luZ2xlIGJsb2NrLjxiciAvPgpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+CiZuYnNwO1lvdSBjYW4gc3RpbGwgdXNlIHRoZSAlJUhFQURFUiUlIGFuZCAlJUZPT1RFUiUlIHNlY3Rpb25zIGluIHRoZSBSVEYgZmlsZS4nOwokbGFuZ1snaGVscF91bmlxdWVfZmlsZV90ZW1wbGF0ZSddPSdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4KRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRklFTERTJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlIGlmIFJURiBUZW1wbGF0ZSBUeXBlIGlzIHNldCB0byAiQmFzaWMiLjxiciAvPgpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAiUlRGIiBhcyBGaWxlIFR5cGUgYW5kICJBZHZhbmNlZCIgYXMgUlRGIFRlbXBsYXRlIFR5cGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9oZWFkZXJfdGVtcGxhdGUnXT0nRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVIRUFERVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXT0nRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGT09URVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ109JyYjMTcxOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddPSdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddPSdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXT0nQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXT0nQ3JlYXRlIFNhbXBsZSBGb290ZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXT0nQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ109J2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ109J1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddPSdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddPSdUZW1wbGF0ZSBmb3IgdGhlIGZvb3RlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9ydGZfZmlsZV90ZW1wbGF0ZSddPSdUZW1wbGF0ZSBSVEYgZmlsZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9maWxlX3R5cGUnXT0nQ2hvb3NlIGEgZmlsZSB0eXBlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddPSdDaG9vc2UgYW4gUlRGIHRlbXBsYXRlIHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddPSdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXT0nRGF0ZSBGb3JtYXQgZm9yIGRpc3BsYXkgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddPSdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzblwndCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICJEaXNwb3NpdGlvbiIgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXT0nRGF0ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddPSdEYXRlIEFwcHJvdmVkIChieSBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddPSdEYXRlIEFwcHJvdmVkIChieSBzdWJtaXR0ZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgIlN1Ym1pc3Npb24gVGVtcGxhdGUiJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAiYWR2YW5jZWQiIHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkIG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGQgbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGVscC10ZXh0IHRvIGRpc3BsYXkgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ109J0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXT0nSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnU3RyaW5nIChubyBzcGFjZXMgYmV0d2VlbiBmaWVsZHMpPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQ29tcHV0ZWQvUEhQJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93LXVwIHJlcGxhY2VzIHRoZSB7Rm9ybUJ1aWxkZXJ9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIEphdmFTY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFTY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YVNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhU2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFTY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSIuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgInNhZmV0eSBzY3JpcHQiIG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXT0nRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXT0nTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ109J1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ109J1N3aXRjaCB0byBBZHZhbmNlZCBNb2RlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ109J1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXT0nRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPgpDaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPgpBbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuPGJyIC8+CklmIGxlZnQgYmxhbmssIHRoaXMgd2lsbCBkZWZhdWx0IHRvIHlvdXIgZGVmYXVsdCB1cGxvYWRzIGRpcmVjdG9yeSAoJGNvbmZpZ1tcJ3VwbG9hZHNfcGF0aFwnXSkuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXT0nTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddPSdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyBcJ0VtYWlsICJTdWJqZWN0IiBGaWVsZHNcJyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdCYWNrIHRvIEZvcm1CdWlsZGVyIE1haW4gUGFnZSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1doaWNoIGVtYWlsIGhlYWRlcnMgc2hvdWxkIHRoaXMgaW5wdXQgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdEbyBub3QgYWNjZXB0IGJsYW5rIHNwYWNlIGFzIHZhbGlkIHJlc3BvbnNlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0lmIGEgZmllbGQgaXMgcmVxdWlyZWQsIGNoZWNraW5nIHRoaXMgd2lsbCByZXF1aXJlIHRoYXQgcGVvcGxlIHB1dCBpbiBzb21lIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBub3QganVzdCBzcGFjZXMnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnWW91IG11c3QgY2xpY2sgb25lIG9mIHRoZSAic2F2ZSIgYnV0dG9ucyB0byBtYWtlIHlvdXIgbmV3IGZpZWxkIG9yZGVyIHBlcm1hbmVudC4nOwokbGFuZ1sndGl0bGVfaHRtbDUnXSA9ICdVc2UgSFRNTDUgaW5zdGVhZCBvZiBKYXZhU2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2NjX2FkZHJlc3MnXSA9ICdBZGRyZXNzKGVzKSB0byBlbWFpbCBhcyBDYXJib24gY29weSAoQ0MpLiBVc2UgY29tbWFzIHRvIGRlbGltaXQgbXVsdGlwbGUgYWRkcmVzc2VzLic7CiRsYW5nWyd0aXRsZV91c2VfYmNjJ109J1VzZSBCbGluZCBjYXJib24gY29weSAoQkNDIGluc3RlYWQgb2YgQ0MpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNpbmcnXT0nTWFpbCBBZGRyZXNzaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX21vZGlmeSddPSdFbWFpbCBmaWVsZCB0byBhZGQgQ0MgYWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9tb2RpZmllcyddPSdBZGQgQ0MgdG8gIiVzIic7CiRsYW5nWydiY2NfZmllbGQnXT0nIkJDQyIgcmVjaXBpZW50cyc7CiRsYW5nWydjY19maWVsZCddPSciQ0MiIHJlY2lwaWVudHMnOwokbGFuZ1sndG9fZmllbGQnXT0nTm9ybWFsICgiVG8iIHJlY2lwaWVudHMpJzsKJGxhbmdbJ2JjYyddPSdCQ0MnOwokbGFuZ1snY2MnXT0nQ0MnOwoKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyJGcm9tIiBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyJSZXBseS1UbyIgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0JvdGggIkZyb20iIGFuZCAiUmVwbHktVG8iIGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXT0nRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ109J1NlbGVjdCBMaXN0IChzaW5nbGUpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ109J1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXT0nUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ109J05vdGU6IE91dHB1dCB3aWxsIGJlIGluIHRoZSBmb3JtIG9mPGJyLz4iY29tcGFueSBuYW1lIj0+InZhbHVlIic7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXT0nUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddPSdQdWxsIGEgZmllbGQgRGVmaW5pdGlvblwncyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddPSdDaG9vc2UgVXNlciBpbnB1dCc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXT0nKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXT0nRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXT0nU21hcnR5IGRhdGEgb3IgbG9naWMgdGhhdCBpcyBtZWFudCB0byBiZSBzZW50IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ109J0NhbiBiZSBTbWFydHkgZGF0YSwgSmF2YVNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW50IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggJmx0O3NjcmlwdCZndDsmbHQ7L3NjcmlwdCZndDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddPSdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXT0nRW5hYmxpbmcgdGhpcyBpbmNsdWRlcyBsYWJlbHMgdG8gb3V0cHV0LiBleGFtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ109J0xpbmsgdGhpcyBmaWVsZCB0byBpdFwncyBzaWJsaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXT0nRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdFwncyBzaWJsaW5nLiBNYWtlcyBwb3NzaWJsZSBjb250cm9sbGluZyB0aGlzIGZpZWxkIHdpdGggc2VsZWN0ZWQgc2libGluZyBjb250cm9scy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXT0nSGlkZSBjb250cm9sIGJ1dHRvbnMnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddPSdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddPSdOb3RlJzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXT0nQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmUtaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXT0nQXR0ZW1wdGVkIHVwbG9hZCBvZiBpbGxlZ2FsIGZpbGUgdHlwZSAoJXMpIGZyb20gJXMnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZSddPSdNYWtlIHJlY29yZHMgYWNjZXNzaWJsZSB0byBTZWFyY2ggTW9kdWxlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddPSdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddPSclcyAob3V0c2lkZSB3ZWIgcm9vdCknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXT0nRWRpdGFibGUgaW4gRm9ybUJyb3dzZXIgQWRtaW4/JzsKJGxhbmdbJ3RpdGxlX2FjdGl2ZV9vbmx5J109J09ubHkgaW5jbHVkZSBhY3RpdmUgdXNlcnM/JzsKCiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ109JzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydzZWxlY3Rfc291cmNlX3RlbXBsYXRlJ10gPSAnU2VsZWN0IGEgc291cmNlIHRlbXBsYXRlOic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnQ29weSB0ZW1wbGF0ZSBmcm9tOiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgIiVzIi4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddPSdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ109J1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddPSdWYWxpZGF0aW9uIFJlc3BvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddPSdWYWxpZGF0aW9uIFJlc3BvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXT0nQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9hZG1pbiddPSdNdXN0IHNwZWNpZnkgYW4gQWRtaW4nOwoKCiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKykuIElmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4gSWYgeW91IHVzZSBDb21wdXRlZC9QSFAgZXZhbHVhdGlvbiwgeW91IGNhbgp1c2UgYW55IGZ1bmN0aW9uIHlvdSB3YW50LCBidXQgeW91IG5lZWQgdG8gcXVvdGUgdGhpbmdzIChzdWJzdGl0dXRpb24gb2NjdXJzIGJlZm9yZSBldmFsdWF0aW9uKSwgZS5nLiwgc3Vic3RyKFwnJGZsZF8yMlwnLDAsMikuXCckZmxkXzIzXCcuJzsgCiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXT0nVXNpbmcgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddPSc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPgpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIgLz4KPHByZT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnXCd9Cgl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJ1wnfQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCc6OlwnfGV4cGxvZGU6JE1EYXRhfQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCcgY2hlY2tlZD0iY2hlY2tlZCJcJ30KCQkJey9pZn0KCQl7L2ZvcmVhY2h9CgkmbHQ7ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+CgkJJmx0O2lucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0iIG5hbWU9InskRkJpZH1bXSIgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIAoJJmx0Oy9kaXY+CnsvZm9yZWFjaH0KPC9wcmU+Cjxici8+CndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSJjYXQiIHN1bW1hcnl0ZW1wbGF0ZT0iWW91cl9GQl90ZW1wbGF0ZSJ9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdBZGQgeW91ciB0YWcnOwoKJGxhbmdbJ2RhdGVfamFudWFyeSddPSdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXT0nRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddPSdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ109J0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J109J01heSc7CiRsYW5nWydkYXRlX2p1bmUnXT0nSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXT0nSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddPSdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXT0nU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddPSdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXT0nTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddPSdEZWNlbWJlcic7CgokbGFuZ1snQUQnXT0nQW5kb3JyYSc7CiRsYW5nWydBRSddPSdVbml0ZWQgQXJhYiBFbWlyYXRlcyc7CiRsYW5nWydBRiddPSdBZmdoYW5pc3Rhbic7CiRsYW5nWydBRyddPSdBbnRpZ3VhIGFuZCBCYXJidWRhJzsKJGxhbmdbJ0FJJ109J0FuZ3VpbGxhJzsKJGxhbmdbJ0FMJ109J0FsYmFuaWEnOwokbGFuZ1snQU0nXT0nQXJtZW5pYSc7CiRsYW5nWydBTiddPSdOZXRoZXJsYW5kcyBBbnRpbGxlcyc7CiRsYW5nWydBTyddPSdBbmdvbGEnOwokbGFuZ1snQVEnXT0nQW50YXJjdGljYSc7CiRsYW5nWydBUiddPSdBcmdlbnRpbmEnOwokbGFuZ1snQVMnXT0nQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQVQnXT0nQXVzdHJpYSc7CiRsYW5nWydBVSddPSdBdXN0cmFsaWEnOwokbGFuZ1snQVcnXT0nQXJ1YmEnOwokbGFuZ1snQVgnXT0nQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBWiddPSdBemVyYmFpamFuJzsKJGxhbmdbJ0JBJ109J0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnOwokbGFuZ1snQkInXT0nQmFyYmFkb3MnOwokbGFuZ1snQkQnXT0nQmFuZ2xhZGVzaCc7CiRsYW5nWydCRSddPSdCZWxnaXVtJzsKJGxhbmdbJ0JGJ109J0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCRyddPSdCdWxnYXJpYSc7CiRsYW5nWydCSCddPSdCYWhyYWluJzsKJGxhbmdbJ0JJJ109J0J1cnVuZGknOwokbGFuZ1snQkonXT0nQmVuaW4nOwokbGFuZ1snQk0nXT0nQmVybXVkYSc7CiRsYW5nWydCTiddPSdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCTyddPSdCb2xpdmlhJzsKJGxhbmdbJ0JSJ109J0JyYXppbCc7CiRsYW5nWydCUyddPSdCYWhhbWFzJzsKJGxhbmdbJ0JUJ109J0JodXRhbic7CiRsYW5nWydCViddPSdCb3V2ZXQgSXNsYW5kJzsKJGxhbmdbJ0JXJ109J0JvdHN3YW5hJzsKJGxhbmdbJ0JZJ109J0JlbGFydXMnOwokbGFuZ1snQlonXT0nQmVsaXplJzsKJGxhbmdbJ0NBJ109J0NhbmFkYSc7CiRsYW5nWydDQyddPSdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyc7CiRsYW5nWydDRCddPSdDb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0YnXT0nQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJzsKJGxhbmdbJ0NHJ109J0NvbmdvJzsKJGxhbmdbJ0NIJ109J1N3aXR6ZXJsYW5kJzsKJGxhbmdbJ0NJJ109J0l2b2lyZSAoSXZvcnkgQ29hc3QpJzsKJGxhbmdbJ0NLJ109J0Nvb2sgSXNsYW5kcyc7CiRsYW5nWydDTCddPSdDaGlsZSc7CiRsYW5nWydDTSddPSdDYW1lcm9vbic7CiRsYW5nWydDTiddPSdDaGluYSc7CiRsYW5nWydDTyddPSdDb2xvbWJpYSc7CiRsYW5nWydDUiddPSdDb3N0YSBSaWNhJzsKJGxhbmdbJ0NVJ109J0N1YmEnOwokbGFuZ1snQ1YnXT0nQ2FwZSBWZXJkZSc7CiRsYW5nWydDWCddPSdDaHJpc3RtYXMgSXNsYW5kJzsKJGxhbmdbJ0NZJ109J0N5cHJ1cyc7CiRsYW5nWydDWiddPSdDemVjaCBSZXB1YmxpYyc7CiRsYW5nWydERSddPSdHZXJtYW55JzsKJGxhbmdbJ0RKJ109J0RqaWJvdXRpJzsKJGxhbmdbJ0RLJ109J0Rlbm1hcmsnOwokbGFuZ1snRE0nXT0nRG9taW5pY2EnOwokbGFuZ1snRE8nXT0nRG9taW5pY2FuIFJlcHVibGljJzsKJGxhbmdbJ0RaJ109J0FsZ2VyaWEnOwokbGFuZ1snRUMnXT0nRWN1YWRvcic7CiRsYW5nWydFRSddPSdFc3RvbmlhJzsKJGxhbmdbJ0VHJ109J0VneXB0JzsKJGxhbmdbJ0VIJ109J1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ0VSJ109J0VyaXRyZWEnOwokbGFuZ1snRVMnXT0nU3BhaW4nOwokbGFuZ1snRVQnXT0nRXRoaW9waWEnOwokbGFuZ1snRkknXT0nRmlubGFuZCc7CiRsYW5nWydGSiddPSdGaWppJzsKJGxhbmdbJ0ZLJ109J0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSc7CiRsYW5nWydGTSddPSdNaWNyb25lc2lhJzsKJGxhbmdbJ0ZPJ109J0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRlInXT0nRnJhbmNlJzsKJGxhbmdbJ0ZYJ109J0ZyYW5jZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHQSddPSdHYWJvbic7CiRsYW5nWydHQiddPSdHcmVhdCBCcml0YWluIChVSyknOwokbGFuZ1snR0QnXT0nR3JlbmFkYSc7CiRsYW5nWydHRSddPSdHZW9yZ2lhJzsKJGxhbmdbJ0dGJ109J0ZyZW5jaCBHdWlhbmEnOwokbGFuZ1snR0YnXT0nR3Vlcm5zZXknOwokbGFuZ1snR0gnXT0nR2hhbmEnOwokbGFuZ1snR0knXT0nR2licmFsdGFyJzsKJGxhbmdbJ0dMJ109J0dyZWVubGFuZCc7CiRsYW5nWydHTSddPSdHYW1iaWEnOwokbGFuZ1snR04nXT0nR3VpbmVhJzsKJGxhbmdbJ0dQJ109J0d1YWRlbG91cGUnOwokbGFuZ1snR1EnXT0nRXF1YXRvcmlhbCBHdWluZWEnOwokbGFuZ1snR1InXT0nR3JlZWNlJzsKJGxhbmdbJ0dTJ109J1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuJzsKJGxhbmdbJ0dUJ109J0d1YXRlbWFsYSc7CiRsYW5nWydHVSddPSdHdWFtJzsKJGxhbmdbJ0dXJ109J0d1aW5lYS1CaXNzYXUnOwokbGFuZ1snR1knXT0nR3V5YW5hJzsKJGxhbmdbJ0hLJ109J0hvbmcgS29uZyc7CiRsYW5nWydITSddPSdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc7CiRsYW5nWydITiddPSdIb25kdXJhcyc7CiRsYW5nWydIUiddPSdDcm9hdGlhIChIcnZhdHNrYSknOwokbGFuZ1snSFQnXT0nSGFpdGknOwokbGFuZ1snSFUnXT0nSHVuZ2FyeSc7CiRsYW5nWydJRCddPSdJbmRvbmVzaWEnOwokbGFuZ1snSUUnXT0nSXJlbGFuZCc7CiRsYW5nWydJTCddPSdJc3JhZWwnOwokbGFuZ1snSU0nXT0nSXNsZSBvZiBNYW4nOwokbGFuZ1snSU4nXT0nSW5kaWEnOwokbGFuZ1snSU8nXT0nQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JzsKJGxhbmdbJ0lRJ109J0lyYXEnOwokbGFuZ1snSVInXT0nSXJhbic7CiRsYW5nWydJUyddPSdJY2VsYW5kJzsKJGxhbmdbJ0lUJ109J0l0YWx5JzsKJGxhbmdbJ0pFJ109J0plcnNleSc7CiRsYW5nWydKTSddPSdKYW1haWNhJzsKJGxhbmdbJ0pPJ109J0pvcmRhbic7CiRsYW5nWydKUCddPSdKYXBhbic7CiRsYW5nWydLRSddPSdLZW55YSc7CiRsYW5nWydLRyddPSdLeXJneXpzdGFuJzsKJGxhbmdbJ0tIJ109J0NhbWJvZGlhJzsKJGxhbmdbJ0tJJ109J0tpcmliYXRpJzsKJGxhbmdbJ0tNJ109J0NvbW9yb3MnOwokbGFuZ1snS04nXT0nU2FpbnQgS2l0dHMgYW5kIE5ldmlzJzsKJGxhbmdbJ0tQJ109J0tvcmVhIChOb3J0aCknOwokbGFuZ1snS1InXT0nS29yZWEgKFNvdXRoKSc7CiRsYW5nWydLVyddPSdLdXdhaXQnOwokbGFuZ1snS1knXT0nQ2F5bWFuIElzbGFuZHMnOwokbGFuZ1snS1onXT0nS2F6YWtoc3Rhbic7CiRsYW5nWydMQSddPSdMYW9zJzsKJGxhbmdbJ0xCJ109J0xlYmFub24nOwokbGFuZ1snTEMnXT0nU2FpbnQgTHVjaWEnOwokbGFuZ1snTEknXT0nTGllY2h0ZW5zdGVpbic7CiRsYW5nWydMSyddPSdTcmkgTGFua2EnOwokbGFuZ1snTFInXT0nTGliZXJpYSc7CiRsYW5nWydMUyddPSdMZXNvdGhvJzsKJGxhbmdbJ0xUJ109J0xpdGh1YW5pYSc7CiRsYW5nWydMVSddPSdMdXhlbWJvdXJnJzsKJGxhbmdbJ0xWJ109J0xhdHZpYSc7CiRsYW5nWydMWSddPSdMaWJ5YSc7CiRsYW5nWydNQSddPSdNb3JvY2NvJzsKJGxhbmdbJ01DJ109J01vbmFjbyc7CiRsYW5nWydNRCddPSdNb2xkb3ZhJzsKJGxhbmdbJ01HJ109J01hZGFnYXNjYXInOwokbGFuZ1snTUgnXT0nTWFyc2hhbGwgSXNsYW5kcyc7CiRsYW5nWydNSyddPSdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJzsKJGxhbmdbJ01MJ109J01hbGknOwokbGFuZ1snTU0nXT0nTXlhbm1hcic7CiRsYW5nWydNTiddPSdNb25nb2xpYSc7CiRsYW5nWydNTyddPSdNYWNhdSc7CiRsYW5nWydNUCddPSdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnOwokbGFuZ1snTVEnXT0nTWFydGluaXF1ZSc7CiRsYW5nWydNUiddPSdNYXVyaXRhbmlhJzsKJGxhbmdbJ01TJ109J01vbnRzZXJyYXQnOwokbGFuZ1snTVQnXT0nTWFsdGEnOwokbGFuZ1snTVUnXT0nTWF1cml0aXVzJzsKJGxhbmdbJ01WJ109J01hbGRpdmVzJzsKJGxhbmdbJ01XJ109J01hbGF3aSc7CiRsYW5nWydNWCddPSdNZXhpY28nOwokbGFuZ1snTVknXT0nTWFsYXlzaWEnOwokbGFuZ1snTVonXT0nTW96YW1iaXF1ZSc7CiRsYW5nWydOQSddPSdOYW1pYmlhJzsKJGxhbmdbJ05DJ109J05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTkUnXT0nTmlnZXInOwokbGFuZ1snTkYnXT0nTm9yZm9sayBJc2xhbmQnOwokbGFuZ1snTkcnXT0nTmlnZXJpYSc7CiRsYW5nWydOSSddPSdOaWNhcmFndWEnOwokbGFuZ1snTkwnXT0nTmV0aGVybGFuZHMnOwokbGFuZ1snTk8nXT0nTm9yd2F5JzsKJGxhbmdbJ05QJ109J05lcGFsJzsKJGxhbmdbJ05SJ109J05hdXJ1JzsKJGxhbmdbJ05UJ109J05ldXRyYWwgWm9uZSc7CiRsYW5nWydOVSddPSdOaXVlJzsKJGxhbmdbJ05aJ109J05ldyBaZWFsYW5kIChBb3RlYXJvYSknOwokbGFuZ1snT00nXT0nT21hbic7CiRsYW5nWydQQSddPSdQYW5hbWEnOwokbGFuZ1snUEUnXT0nUGVydSc7CiRsYW5nWydQRiddPSdGcmVuY2ggUG9seW5lc2lhJzsKJGxhbmdbJ1BHJ109J1BhcHVhIE5ldyBHdWluZWEnOwokbGFuZ1snUEgnXT0nUGhpbGlwcGluZXMnOwokbGFuZ1snUEsnXT0nUGFraXN0YW4nOwokbGFuZ1snUEwnXT0nUG9sYW5kJzsKJGxhbmdbJ1BNJ109J1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydQTiddPSdQaXRjYWlybic7CiRsYW5nWydQUiddPSdQdWVydG8gUmljbyc7CiRsYW5nWydQUyddPSdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUFQnXT0nUG9ydHVnYWwnOwokbGFuZ1snUFcnXT0nUGFsYXUnOwokbGFuZ1snUFknXT0nUGFyYWd1YXknOwokbGFuZ1snUUEnXT0nUWF0YXInOwokbGFuZ1snUkUnXT0nUmV1bmlvbic7CiRsYW5nWydSTyddPSdSb21hbmlhJzsKJGxhbmdbJ1JTJ109J1NlcmJpYSc7CiRsYW5nWydSVSddPSdSdXNzaWFuIEZlZGVyYXRpb24nOwokbGFuZ1snUlcnXT0nUndhbmRhJzsKJGxhbmdbJ1NBJ109J1NhdWRpIEFyYWJpYSc7CiRsYW5nWydTQiddPSdTb2xvbW9uIElzbGFuZHMnOwokbGFuZ1snU0MnXT0nU2V5Y2hlbGxlcyc7CiRsYW5nWydTRCddPSdTdWRhbic7CiRsYW5nWydTRSddPSdTd2VkZW4nOwokbGFuZ1snU0cnXT0nU2luZ2Fwb3JlJzsKJGxhbmdbJ1NIJ109J1N0LiBIZWxlbmEnOwokbGFuZ1snU0knXT0nU2xvdmVuaWEnOwokbGFuZ1snU0onXT0nU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuIElzbGFuZHMnOwokbGFuZ1snU0snXT0nU2xvdmFrIFJlcHVibGljJzsKJGxhbmdbJ1NMJ109J1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTTSddPSdTYW4gTWFyaW5vJzsKJGxhbmdbJ1NOJ109J1NlbmVnYWwnOwokbGFuZ1snU08nXT0nU29tYWxpYSc7CiRsYW5nWydTUiddPSdTdXJpbmFtZSc7CiRsYW5nWydTVCddPSdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU1YnXT0nRWwgU2FsdmFkb3InOwokbGFuZ1snU1knXT0nU3lyaWEnOwokbGFuZ1snU1onXT0nU3dhemlsYW5kJzsKJGxhbmdbJ1RDJ109J1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyc7CiRsYW5nWydURCddPSdDaGFkJzsKJGxhbmdbJ1RGJ109J0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydURyddPSdUb2dvJzsKJGxhbmdbJ1RIJ109J1RoYWlsYW5kJzsKJGxhbmdbJ1RKJ109J1RhamlraXN0YW4nOwokbGFuZ1snVEsnXT0nVG9rZWxhdSc7CiRsYW5nWydUTSddPSdUdXJrbWVuaXN0YW4nOwokbGFuZ1snVE4nXT0nVHVuaXNpYSc7CiRsYW5nWydUTyddPSdUb25nYSc7CiRsYW5nWydUUCddPSdFYXN0IFRpbW9yJzsKJGxhbmdbJ1RSJ109J1R1cmtleSc7CiRsYW5nWydUVCddPSdUcmluaWRhZCBhbmQgVG9iYWdvJzsKJGxhbmdbJ1RWJ109J1R1dmFsdSc7CiRsYW5nWydUVyddPSdUYWl3YW4nOwokbGFuZ1snVFonXT0nVGFuemFuaWEnOwokbGFuZ1snVUEnXT0nVWtyYWluZSc7CiRsYW5nWydVRyddPSdVZ2FuZGEnOwokbGFuZ1snVUsnXT0nVW5pdGVkIEtpbmdkb20nOwokbGFuZ1snVU0nXT0nVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyc7CiRsYW5nWydVUyddPSdVbml0ZWQgU3RhdGVzJzsKJGxhbmdbJ1VZJ109J1VydWd1YXknOwokbGFuZ1snVVonXT0nVXpiZWtpc3Rhbic7CiRsYW5nWydWQSddPSdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc7CiRsYW5nWydWQyddPSdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJzsKJGxhbmdbJ1ZFJ109J1ZlbmV6dWVsYSc7CiRsYW5nWydWRyddPSdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknOwokbGFuZ1snVkknXT0nVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1ZOJ109J1ZpZXQgTmFtJzsKJGxhbmdbJ1ZVJ109J1ZhbnVhdHUnOwokbGFuZ1snV0YnXT0nV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc7CiRsYW5nWydXUyddPSdTYW1vYSc7CiRsYW5nWydZRSddPSdZZW1lbic7CiRsYW5nWydZVCddPSdNYXlvdHRlJzsKJGxhbmdbJ1lVJ109J1l1Z29zbGF2aWEnOwokbGFuZ1snWkEnXT0nU291dGggQWZyaWNhJzsKJGxhbmdbJ1pNJ109J1phbWJpYSc7CiRsYW5nWydaVyddPSdaaW1iYWJ3ZSc7CgokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddPSdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddPSdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J109J0RlZmF1bHQ6IGNoZWNrZWQnOwoKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICJGb3JtQnVpbGRlciBTdWJtaXNzaW9uIjsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIgLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOyAgICAgIAokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsgIAkJCiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXT0nVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwoKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXT0nU2VudCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ109J1NlbnQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109J1NlbnQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKCiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J109JzxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXyZsdDtuYW1lJmd0OzwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXT0nPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109JzxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwoKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKCiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAiCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSdkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91J2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICYjMTIzO1wkZmJfaGlkZGVufSBhbmQgJiMxMjM7XCRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlIFwkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzO1wkbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+XCRlbnRyeS0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+XCRlbnRyeS0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCdzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCdzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj1cImZvb1wiKTwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+XCRlbnRyeS0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5cJGVudHJ5LT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJ3MgZGF0YSB0eXBlPC90ZD48L3RyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+XCRlbnRyeS0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPlwkZW50cnktPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkKYXJlIGluIHRoZSBcJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMztcJG15ZmllbGQtPnZhbHVlfSApLgpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5cJHRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPlwkdGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+XCR0aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwicGFnZSB4IG9mIHlcIiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5cJGNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+XCRmb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+XCRmb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5cJGluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPlwkaW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4KPHRyPjx0ZD5cJGZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+XCRwcmV2PC90ZD48dGQ+XCJCYWNrXCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+XCRzdWJtaXQ8L3RkPjx0ZD5cIkNvbnRpbnVlXCIgb3IgXCJTdWJtaXRcIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgoiOwoKLy8gcG9zdC1pbnN0YWxsIG1lc3NhZ2UKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddPSJGb3JtQnVpbGRlciBpbnN0YWxsZWQuIFBsZWFzZSBjb25zdWx0IHRoZSBtb2R1bGUncyBIZWxwIHBhZ2UgZm9yIGRvY3VtZW50YXRpb24uIjsKCiRsYW5nWyd0aXRsZV9tb250aF9pbnB1dCddID0gIk1vbnRoIEZvcm1hdCBmb3IgRm9ybSBJbnB1dCI7CiRsYW5nWydvcHRfbW9udGhfaW5wdXRfdGV4dCddID0gIlRleHQiOwokbGFuZ1snb3B0X21vbnRoX2lucHV0X251bWJlciddID0gIk51bWJlciI7CiRsYW5nWydvcHRfbW9udGhfaW5wdXRfYm90aCddID0gIkJvdGgiOwokbGFuZ1sndGl0bGVfZGVmYXVsdF90aW1lJ10gPSAiRGVmYXVsdCBUaW1lIjsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfdGltZV9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB0aW1lIHRvIGJlIHRoZSBjdXJyZW50IHRpbWUpJzsKJGxhbmdbJ3RpdGxlX21pbnV0ZV9pbnRlcnZhbCddID0gIk1pbnV0ZSBJbnRlcnZhbCI7CgoKPz4K]]></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/EjSZpYWN1dGU7dGFuJmVhY3V0ZTsgcG9sZSAoQ29tcHV0ZWQgRmllbGQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiBvdmXFmWVuJmlhY3V0ZTsgcGxhdG5vc3RpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoTnVtZXJpYyknOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoSW50ZWdlciknOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWxvdiZhYWN1dGU7IGFkcmVzYSAoRW1haWwgQWRkcmVzcyknOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbiZpYWN1dGU7IMSNJmlhY3V0ZTtzbG8gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXMmaWFjdXRlOyBiJnlhY3V0ZTt0IHphJnNjYXJvbjtrcnRudXRvIChNdXN0IEJlIENoZWNrZWQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdPZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IHJlZ3VsJmFhY3V0ZTtybiZpYWN1dGU7bXUgdiZ5YWN1dGU7cmF6dSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOZW9kcG92JmlhY3V0ZTtkJmFhY3V0ZTsgcmVndWwmYWFjdXRlO3JuJmlhY3V0ZTttdSB2JnlhY3V0ZTtyYXp1JzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdWZSB2ecW+YWRvdmFuJmVhY3V0ZTttIHBvbGkgbmVieWxhIHZsb8W+ZW5hIGhvZG5vdGEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSDEjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG4meWFjdXRlOyAmdWFjdXRlO2RhaiB2IHBvbGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIGNlbG/EjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG5vdSBlbWFpbG92b3UgYWRyZXN1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EgbmVvZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IGhvZG5vdMSbIHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20gdmxvxb50ZSBwbGF0biZlYWN1dGU7IHRlbGVmb24maWFjdXRlOyDEjSZpYWN1dGU7c2xvIGRvIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmV2eXBhZCZhYWN1dGU7IGpha28gcGxhdG4mYWFjdXRlOyBlbWFpbG92JmFhY3V0ZTsgYWRyZXNhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2bG/FvnRlIGhvZG5vdHUga3JhdCZzY2Fyb247JmlhY3V0ZTsgbmXFviAlcyB6bmFrxa8nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrLCBrdGVyJnlhY3V0ZTsgYnVkZSBwb3XFvml0IGpha28gb2RkxJtsb3ZhxI0gdmUgdiZ5YWN1dGU7c2xlZGMmaWFjdXRlO2NoLCBrdGVyJmVhY3V0ZTsgdnJhY2VqJmlhY3V0ZTsgdiZpYWN1dGU7Y2UgbmXFviAxIGhvZG5vdHUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnUG/FmWFkJmlhY3V0ZTsgcG9sJmlhY3V0ZTsgYWt0dWFsaXpvdiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bCZhYWN1dGU7xZkgc21heiZhYWN1dGU7bi4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYWNlIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1BybyBwb2tyYcSNb3YmYWFjdXRlO24maWFjdXRlOyBtdXMmaWFjdXRlO3RlIHphJnNjYXJvbjtrcnRub3V0ICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB1csSNaXQgYWxlc3BvxYggamVkbnUgYWRyZXN1ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdKc3RlIHNpIGppc3QgdnltYXomYWFjdXRlO24maWFjdXRlO20gZm9ybXVsJmFhY3V0ZTvFmWUgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdKc3RlIHNpIGppc3Qgc21heiZhYWN1dGU7biZpYWN1dGU7bSBwb2xlICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdQb2tyb8SNaWwmZWFjdXRlOyBtb8W+bm9zdGkgbmVqc291IGRvc3R1cG4mZWFjdXRlOywgZG9rdWQgbmVuJmlhY3V0ZTsgbmFzdGF2ZW4gdHlwIHBvbGUuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xlIG11c2VqJmlhY3V0ZTsgYiZ5YWN1dGU7dCBwb2ptZW5vdiZhYWN1dGU7bmEsIHBva3VkIHRvdG8gbmV2eXBuZXRlIHYgbmFzdGF2ZW4maWFjdXRlOyBUdsWvcmNlIGZvcm11bCZhYWN1dGU7xZnFry4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltbiZpYWN1dGU7JzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdEJmVhY3V0ZTtsa2E6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG1vxb5ub3N0JmlhY3V0ZTsnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB6bmFrxa8uJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbmV1csSNZW5vXSc7CiRsYW5nWydhZGRlZCddID0gJ3DFmWlkJmFhY3V0ZTtubyc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWt0dWFsaXpvdiZhYWN1dGU7bm8nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnVMWZJmlhY3V0ZTtkaXQgdmxhc3Rub3N0aSBuYSB2JnlhY3V0ZTtzdHVwdSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnUHJvJzsKJGxhbmdbJ3llcyddID0gJ0Fubyc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdwxZkmaWFjdXRlO2plbWPFryc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW/Fvm4meWFjdXRlO2NoIHNvdWJvcsWvJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdVbG/Fvml0JzsKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmF0JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVWxvxb5pdCBhIHBva3JhxI1vdmF0IHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWNrJmVhY3V0ZTsnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVnnFvmFkb3Zhbm9zdCBwb2wmaWFjdXRlO8SNa2EgYnlsYSB1cHJhdmVuYS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZWxpa29zdCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTvFmWVuJmlhY3V0ZTsnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHNvdWJvcsWvJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFocmFuJnlhY3V0ZTsgc291Ym9yIGplIHDFmSZpYWN1dGU7bGkmc2Nhcm9uOyB2ZWxpayZ5YWN1dGU7LiBQb3ZvbGVuJmFhY3V0ZTsgdmVsaWtvc3QgamU6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGVudG8gdHlwIHNvdWJvcnUgbmVtxa/FvmUgYiZ5YWN1dGU7dCBuYWhyJmFhY3V0ZTtuLiBQcm9zJmlhY3V0ZTttIHprb250cm9sdWp0ZSwgxb5lIHNvdWJvciBtJmFhY3V0ZTsgc3ByJmFhY3V0ZTt2bm91IHDFmSZpYWN1dGU7cG9udS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFociZhYWN1dGU7dCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSBieWwgaW1wb3J0b3YmYWFjdXRlO24uJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBmb3JtdWwmYWFjdXRlO8WZZSBzZWxoYWwhIFhNTCBzb3Vib3IgbmVuJmlhY3V0ZTsgdmUgc3ByJmFhY3V0ZTt2biZlYWN1dGU7bSB0dmFydS4nOwokbGFuZ1sncm93cyddID0gJyVzIMWZJmFhY3V0ZTtka8WvJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzbG91cGPFryc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0YSc7CiRsYW5nWydtZXJpZCddID0gJ1BvbGVkbiZpYWN1dGU7ayc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUm96c2FoOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0TEm2t1amVtZSEgViZhYWN1dGU7JnNjYXJvbjsgcMWZJmlhY3V0ZTtzcMSbdmVrIGJ5bCB6YXpuYW1lbiZhYWN1dGU7bi4nOwokbGFuZ1snZWRpdCddID0gJ1VwcmF2aXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2RheSddID0gJ0Rlbic7CiRsYW5nWydtb24nXSA9ICdNxJtzJmlhY3V0ZTtjJzsKJGxhbmdbJ3llYXInXSA9ICdSb2snOwokbGFuZ1snbm9uZSddID0gJyhuaWMpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIG9kaW5zdGFsb3YmYWFjdXRlO24uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnplICVzIGJ5bCBuYWluc3RhbG92JmFhY3V0ZTtuLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGJ5bCB1cGdyYWRvdiZhYWN1dGU7biBuYSB2ZXJ6aSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnWnDEm3QuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1Vsb8W+aXQgZm9ybXVsJmFhY3V0ZTvFmSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdQb2tyYcSNb3ZhdC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnWmEmc2Nhcm9uO2tydG51dG8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmV6YSZzY2Fyb247a3J0bnV0byc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hsYXZuJmlhY3V0ZTsnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ05hc3RhdmVuJmlhY3V0ZTsgem9icmF6ZW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnVWtsJmFhY3V0ZTtkJmFhY3V0ZTtuJmlhY3V0ZTsgZm9ybXVsJmFhY3V0ZTvFmWUnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdOYXN0YXZlbiZpYWN1dGU7IENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnUG9rcm/EjWlsJmFhY3V0ZTsgbmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICcmU2Nhcm9uO2FibG9uYSBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgenByJmFhY3V0ZTt2eSBwbyB2bG/FvmVuJmlhY3V0ZTsgZGF0JzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+ViB0b210byBwb2xpIGx6ZSBwb3XFviZpYWN1dGU7dCBwcm9txJtubiZlYWN1dGU7IFNtYXJ0eS48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnUMWZaWRhdCB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU21hemF0IG96bmHEjWVuJmVhY3V0ZTsgbW/Fvm5vc3RpJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnUMWZaWRhdCB2JmlhY3V0ZTtjZSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NtYXphdCBvem5hxI1lbiZhYWN1dGU7IHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhYyZpYWN1dGU7IHBvbCZpYWN1dGU7xI1rYSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1DFmWlkYXQgZGFsJnNjYXJvbjsmaWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdTbWF6YXQgb3puYcSNZW4mZWFjdXRlOyBhZHJlc3knOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnUMWZaWRhdCBkYWwmc2Nhcm9uOyZpYWN1dGU7IGMmaWFjdXRlO2wnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU21hemF0IG96bmHEjWVuJmVhY3V0ZTsgYyZpYWN1dGU7bGUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdCeWxvIHZ5dHZvxZllbm8gcMWZJmlhY3V0ZTtsaSZzY2Fyb247IG1ub2hvIGUtbWFpbMWvIHBybyBWYSZzY2Fyb247aSBJUCBhZHJlc3UuIEFudGlzcGFtIHphYnImYWFjdXRlO25pbCBkb3J1xI1lbiZpYWN1dGU7Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdTZcWZYWRpdCBwb2wmaWFjdXRlO8SNa2EnOwokbGFuZ1snY2FuY2VsJ10gPSAnU3Ryb25vJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1NhZGEgaG9kbm90OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnUmVndWwmYWFjdXRlO3JuJmlhY3V0ZTsgdiZ5YWN1dGU7cmF6LCB1bW/FvsWIdWomaWFjdXRlO2MmaWFjdXRlOyBmaWx0cm92JmFhY3V0ZTtuJmlhY3V0ZTsgcG9sJmlhY3V0ZTvEjWVrIG1vZHVsdSBDYXRhbG9nZXIgcG9kbGUgam0mZWFjdXRlO25hJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBwb2wmaWFjdXRlO8SNa2EgdHlwdSBzZWxlY3QnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ1YmeWFjdXRlOyZzY2Fyb247a2EgcG9sJmlhY3V0ZTvEjWthJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0FkcmVzJmFhY3V0ZTvFmSwga2FtIGJ1ZG91IHVrbCZhYWN1dGU7ZCZhYWN1dGU7bnkgb3Vib3J5JzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVcW+aXZhdGVsZW0gZGVmaW5vdmFuJnlhY3V0ZTsgdGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdTaG93IEZpZWxkIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGaWVsZCBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdPcGkmc2Nhcm9uO3RlIHNwciZhYWN1dGU7dm7EmyB6bmFreSB6IG9iciZhYWN1dGU7emt1Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdsZWRuYSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnJnVhY3V0ZTtub3JhJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdixZllem5hJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdkdWJuYSc7CiRsYW5nWydkYXRlX21heSddID0gJ2t2xJt0bmEnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnxI1lcnZuYSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICfEjWVydmVuY2UnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdzcnBuYSc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3omYWFjdXRlO8WZJmlhY3V0ZTsnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnxZkmaWFjdXRlO2puYSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbGlzdG9wYWR1JzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdwcm9zaW5jZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODEyNDQ2OTI3LjEyMDEyNTAyMzAuMTI0NzU4Njg1Ni4xMjQ3Nzc4ODIzLjExOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDcxNTEyOTAuMTE3LjU0LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj16c3ByYWtzaWNlLnprZWR1LmN6fHV0bWNjdD0vc2tvbGNhL2FkbWluL2ltYWdlZmlsZXMucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQtdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdWJmFlbGlnO2xnIGVuIChlbGxlciBmbGVyZSkga2F0YWxvZyBlbW5lcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZlbHRzJmFlbGlnO3Qgc2x1dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmVsdHMmYWVsaWc7dCBiZWd5bmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdTa3JpdiBQYXNzd29yZCAoa29uZmlybWF0aW9uKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGZlbHQgKGZsZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdGZlbHQsIGZsZXJlIGxpbmllcic7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25hcCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdBZmtyeWRzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cHBlIGFmIGFma3J5ZHNuaW5nc2Jva3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duLW1lbnUnOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ1B1bGxkb3duICgmYXJpbmc7ciknOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGktdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIHYmYWVsaWc7bGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlzayBwcm9pbnMgdiZhZWxpZztsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZGUgdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG8gVmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHN2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8ga25hcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIHJlc3VsdGF0ZXQgYmFzZXJldCBwJmFyaW5nOyBwdWxsZG93bi12YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBlbiBmaWwgYmFzZXJldCBwJmFyaW5nOyBtZW51JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypHZW0gcmVzdWx0YXRlciBpIGVuIGZpbCBiYXNlcmV0IHAmYXJpbmc7IGZsZXJlIHZhbGd0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypWaWRlcmVzdGlsIHRpbCBzaWRlIGJhc2VyZXQgcCZhcmluZzsgcHVsbGRvd24tdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgcmVzdWx0YXRldCB0aWwgYW5naXZuZSBhZHJlc3NlKHIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZCZlYWN1dGU7ciB2aWEgZW1haWwgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdGVyIHRpbCBhbG0uIHRla3N0LWZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBkYXRhYmFzZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKkdlbSByZXN1bHRhdGVyIHRpbCBGb3JtQnJvd3NlciBtb2R1bCB2ZXJzaW9uIDMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqS2FsZCBlbiBicnVnZXJkZWZpbmVyZXQgdGFnIGluZGUgaSBmb3JtdWxhcmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRpbCBicnVnZXItYW5naXZlbiBlbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0aWwgZW4gQ01TIGFkbWluIGJydWdlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbC11cGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLUxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1Ta2p1bHQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQmVyZWduZXQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrdCB0YWwgKHNlcmllbHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb24gbnVtbWVyIChVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1NrYWwgdiZhZWxpZztyZSB2YWxndCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnU2thbCBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTSZhcmluZzsgaWtrZSBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VuIHYmYWVsaWc7cmRpIGJsZXYgaWtrZSBhbmdpdmV0IGkgZXQgcCZhcmluZztrciZhZWxpZzt2ZXQgZmVsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0FuZ2l2IGVuIHYmYWVsaWc7cmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdBbmdpdiBldCB0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdpdiBldCBoZWx0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2l2IGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRW1haWwgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBpbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnViZhZWxpZztyIHZlbmxpZyBhdCBsb2dnZSBpbmQgZm9yIGF0IGJydWdlIGRlbm5lIGZvcm11bGFyJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVyIGlra2UgZW4gZ3lsZGlnIGVtYWlsIGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdpdiBlbiB2JmFlbGlnO3JkaSBkZXIgaWtrZSBlciBsJmFlbGlnO25nZXJlIGVuZCAlcyB0ZWduJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1YmYWVsaWc7ciB2ZW5saWcgYXQgdGFzdGUgZW4gdiZhZWxpZztyZGkgZGVyIGhhciBtaW5kc3QgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gZGVyIGthbiBiZW55dHRlcyB0aWwgYXQgYWRza2lsbGUgZmxlcmUgdiZhZWxpZztyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRHUgc2thbCBoYXZlICZxdW90OyVzJnF1b3Q7IHRpbGxhZGVsc2VuIGZvciBhdCBrdW5uZSB1ZGYmb3NsYXNoO3JlIGRlbiBvcGVyYXRpb24nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdCZWtsYWdlciEgRHUgaGFyIGlra2UgZGUgbiZvc2xhc2g7ZHZlbmRpZ2UgdGlsbGFkZWxzZXIgZm9yIGF0IHRpbGcmYXJpbmc7IGRlbiBzZWt0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdC1yJmFlbGlnO2trZWYmb3NsYXNoO2xnZW4gYmxldiBvcGRhdGVyZXQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyZW0gYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWx0ZXQgYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBibGV2IG9wZGF0ZXJldCc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IHNrYWwgcyZhZWxpZzt0dGUga3J5ZHMgaSAmcXVvdDslcyZxdW90OyBmb3IgYXQgZm9ydHMmYWVsaWc7dHRlJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBza2FsIGFuZ2l2ZSBtaW5kc3QgZW4gbW9kdGFnZXItYWRyZXNzZSc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmb3JtdWxhcmVuICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdVZHZpZGVkZSBpbmRzdGlsbGluZ2VyIGthbiBmJm9zbGFzaDtyc3Qgc2VzLCBuJmFyaW5nO3IgZGVyIGVyIHZhbGd0IGZlbHR0eXBlJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWcuIEJlbnl0IHZlbmxpZ3N0IHVuaWtrZSBmZWx0bmF2bmUnOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZlbHRlciBza2FsIG5hdm5naXZlcyBtZWQgbWluZHJlIGR1IHNsJmFyaW5nOyBkZXR0ZSBmcmEgaSBGb3JtdWxhciBHZW5lcmF0b3JlbnMgaW5kc3RpbGxpbmdlcic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYWVsaWc7bmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZ211bGlnaGVkZXInOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycyc7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW2lra2UgYW5naXZldF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1sndXBkYXRlZCddID0gJ29wZGF0ZXJldCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0JmVhY3V0ZTtyIHZhbGdtdWxpZ2hlZGVyIHZlZCBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYWVsaWc7bGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWJmFlbGlnO2xnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vZHRhZ2VyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbXVsaWdlIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25lcic7CiRsYW5nWydzYXZlJ10gPSAnR2VtJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXQmZWFjdXRlO3InOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdHZW0gb2cgZm9ydHMmYWVsaWc7dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0ZXRzIHAmYXJpbmc7a3ImYWVsaWc7dmV0LXN0YXR1cyBvcGRhdGVyZXQnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrcy4gc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VkdmlkZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RpbGxhZHRlIGZpbHR5cGVyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGVuIHVwbG9hZCYjMDM5O2VkZSBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbWFsIHN0Jm9zbGFzaDtycmVsc2UgZXI6ICc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIG0mYXJpbmc7IGlra2UgdXBsb2FkZXMuIEtvbnRyb2xsJmVhY3V0ZTtyIHZlbmxpZ3N0IGF0IGZpbHR5cGVuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0ZXJldCc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgYWYgZm9ybXVsYXIgZmVqbGVkZS4gRGVyIHZhciBldCBwcm9ibGVtIG1lZCBmb3JtYXRldCBhZiBYTUwtZmlsZW4nOwokbGFuZ1sncm93cyddID0gJyVzIHImYWVsaWc7a2tlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyB0aWQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyB0aWQnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnT21yJmFyaW5nO2RlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RhayEgRGluIGFmc2VuZGVsc2UgZXIgbW9kdGFnZXQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZyZlYWN1dGU7cic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxldCBibGV2IGFmaW5zdGFsbGVyZXQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2lvbiAlcyBpbnN0YWxsZXJldC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGV0IGJsZXYgb3BncmFkZXJldCB0aWwgdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGlsYmFnZS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2VuZCBmb3JtdWxhcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdWaWRlcmUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1ZhbGd0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgdmFsZ3QnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtdWxhciBmcmVtdmlzbmluZ3MgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXIgYWZzZW5kZWxzZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyZWRlIGluZHN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0Fmc2VuZGVsc2VzIHNrYWJlbG9uJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVyIGthbiBiZW55dHRlcyBpIGRldHRlIGZlbHQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIHZhbGdtdWxpZ2hlZGVyJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldCBtYXJrZXJlZGUgdmFsZ211bGlnaGVkZXInOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIGNoZWNrYm94ZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NsZXQgbWFya2VyZWRlIGNoZWNrYm94ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gYWRyZXNzZSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NsZXQgZGVuIG1hcmtlcmVkZSBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gZGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2xldCBkZSBtYXJrZXJlZGUgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnRGVyIGVyIGdlbmVyZXJldCBmb3IgbWFuZ2UgZS1tYWlscyBmcmEgZGVubmUgSVAgYWRyZXNzZS4gQW50aS1TcGFtIGZ1bmt0aW9uZW4gaGFyIGZvcmhpbmRyZXQgYWZzZW5kZWxzZS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWFpbCBmcmEgSVAgJXMsIG1pc3QmYWVsaWc7bmt0IGZvciBhdCB2JmFlbGlnO3JlIHNwYW0sIGVyIHN0b3BwZXQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdPbWFycmFuZyZlYWN1dGU7ciBmZWx0ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnRm9ydHJ5ZCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdIJm9zbGFzaDtqZGVuIHAmYXJpbmc7IG11bHRpLXYmYWVsaWc7bGcgZmVsdCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmVsdGgmb3NsYXNoO2pkZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbnNtYXBwZSBmb3Igb3V0cHV0IGZpbGVyJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQnJ1Z2VyZGVmaW5lcmV0IFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU2lkZSBhdCB2ZW5kZSB0aWxiYWdlIHRpbCBtZWQgdXBsb2FkLWwmYWVsaWc7bmtlbic7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0luZHNlbmR0IG1lZCBmb3JtdWxhcmdlbmVyYXRvcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkIGthdGVnb3JpJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCBkZW5uZSBmaWwgdGlsIHVwbG9hZC1tb2R1bGV0JzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0hpc3RvcmllJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBsJmFlbGlnO25nZGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdOYXZuIHAmYXJpbmc7IGNoZWNrYm9rcyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ05hdm4gcCZhcmluZzsga25hcCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhZWxpZztyZGkgbiZhcmluZztyIG1hcmtlcmV0JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1YmYWVsaWc7cmRpIHVkZW4gbWFya2VyaW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdHcnVwcGVkZXRhbGplciBmb3IgQ2hlY2tib2tzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1NsZXQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1YmYWVsaWc7bGcgZW4mcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxndCB2JmFlbGlnO3JkaSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJ0IHVkdmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJ0IHVkdmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJ0IHVkdmFsZyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ1ZhbGdtdWxpZ2hlZGVucyBuYXZuJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ0luZHNlbmR0IHYmYWVsaWc7cmRpJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBtdWxpZ2hlZGVyJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXZhbGcgbXVsaWdoZWRlcic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpYW50aW9uIGZvciBGaWwtbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcmEgbmF2biZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0JydWcgYmwmb3NsYXNoO2QgZW1haWwgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdCZW55dCBhZnNsYXBwZXQgZW1haWwtdmFsaWRlcmluZyAoZi5la3MuLCB0aWxsYWQgJnF1b3Q7eEB5JnF1b3Q7IGkgc3RlZGV0IGZvciBhdCBrciZhZWxpZzt2ZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCB0ZWducyZhZWxpZzt0IGtvZG5pbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWwgbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1uZWxpbmllIGkgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFyIG5hdm4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWxhciBzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdLbGFyIHRpbCBicnVnJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdJa2tlIGtsYXInOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGUgZGVyIHNrYWwgdmlkZXJlc3RpbGxlcyB0aWwgZWZ0ZXIgYWZzZW5kZWxzZSBhZiBmb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXJcJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdiZW55dCBkZW5uZSBnZW52ZWonOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGFyIGZlbHRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZlbHQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdWaXMgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnS2xpayBoZXIgZm9yIGF0IGZvciBhdCBzZSBkaXNwbGF5IGFsaWFzZXIgbiZhcmluZztyIGRlciB0aWxmJm9zbGFzaDtyZXMgZWxsZXIgcmVkaWdlcmVzIGkgZW4gZm9ybXVsYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbHQgTmF2bic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWx0dHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZm9yIGF0IHNrYWJlIGV0IGZvcm11bGFyLXN0eXJlbmRlIGZlbHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnVGlsZiZvc2xhc2g7aiBueSBmb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWaXMgZm9ybXVsYXIgZ2VuZXJhdG9yIHZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGluZHMmYWVsaWc7dHRlIGZvcm11bGFyZ2VuZXJhdG9yZW5zIHZlcnNpb25zbnVtbWVyIGkgZW4ga29tbWVudGFyIGZvciBhdCBiaWRyYWdlIHRpbCBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ1RpbGYmb3NsYXNoO3Igbnl0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGVrc3QgdGlsIGZvcm11bGFyZW5zICZxdW90O0luZHNlbmQmcXVvdDsga25hcCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ0tuYXAtdGVrc3QnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdUaWxmJm9zbGFzaDtqIEphdmFzY3JpcHQgdGlsIGVuZGVsaWcgJnF1b3Q7SW5kc2VuZCZxdW90Oy1rbmFwLCBkZXIgdmlsIGZvcmhpbmRyZSBtdWx0aXBsZSBpbmRzZW5kZWxzZXI/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdUaWxmJm9zbGFzaDtqIHNpa2tlcmhlZHMtc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHQgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZlbHQgZGVyIHNrYWwgdmFsaWRlcmVzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnQnJ1Z2VyZGVmaW5lcmV0IHRhZyBkZXIgc2thbCBrYWxkZXMgZiZvc2xhc2g7ciBmb3JtdWxhcmVuIHZpc2VzIGYmb3NsYXNoO3JzdGUgZ2FuZyAoa2FsZGVzIGt1biAmZWFjdXRlO24gZ2FuZyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnQnJ1Z2VyZGVmaW5lcmV0IHRhZyBkZXIgc2thbCBrYWxkZXMgZiZvc2xhc2g7ciBmb3JtdWxhcmVuIHZpc2VzIChrYWxkZXMgcCZhcmluZzsgaHZlciBzaWRlIGFmIGZsZXJzaWRpZ2UgZm9ybXVsYXJlciknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdCcnVnZXJkZWZpbmVyZXQgdGFnIGRlciBza2FsIGthbGRlcyB1bmRlciBmb3JtdWxhcnZhbGlkZXJpbmcnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgZGVyIGJydWdlcyB0aWwgYXQgbWFya2VyZSAmcXVvdDtLciZhZWxpZzt2ZXQgZmVsdCZxdW90Oyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1AmYXJpbmc7a3ImYWVsaWc7dmV0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdLciZhZWxpZzt2IGVuIG1hcmtlcmluZyBmb3IgZGV0dGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2tqdWwgbGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnU2tqdWwgZmVsdGV0cyBuYXZuIHAmYXJpbmc7IGZvcm11bGFyZW4nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2sgdGVrc3QgZGVyIHNrYWwgdmlzZXMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbCBsaW5pZXIgYXQgdmlzZSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdLdW4gbCZhZWxpZztzZXJldHRpZ2hlZCc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW50ZXQgRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmIFwmcXVvdDt2YWxpZGF0aW9uIHR5cGVcJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sIFwmcXVvdDsvaW1hZ2VcLihcZCspL2lcJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdQJmFyaW5nO2tyJmFlbGlnO3ZldCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NranVsIGZlamwnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdEZWJ1Zy0gLyBmZWpsbWVkZGVsZWxzZXIgZm9yaGluZHJlcyBpIGF0IGJsaXZlIHNldCBhZiBicnVnZXJlLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIHNrYWJlbG9uJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2Fkc3Qmb3NsYXNoO3JyZWxzZSBmb3IgZmlsZXIgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZW5uZSBiZWdyJmFlbGlnO25zbmluZyBlciBlbiB0aWxmJm9zbGFzaDtqZWxzZSAgdGlsIGV2ZW50dWVsbGUgYmVnciZhZWxpZztuc25pbmdlciBzYXQgYWYgcGhwIGVsbGVyIHdlYnNlcnZlci1rb25maWd1cmF0aW9uZW4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdUaWxsYWR0ZSBlbmRlbHNlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sIFwmcXVvdDtqcGcsZ2lmLGpwZWdcJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzIHJlc3RyaWt0aW9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGUgbnVtbWVyICVzIGFmICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGZWx0ZXQgaGFyIGluZGVuIGF2YW5jZXJlZCB2YWxnbXVsaWdoZWRlcic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnUmVzcG9uc3Rla3N0IHZlZCB1c3BlY2lmZXJlZGUgZmVsdHYmYWVsaWc7cmRpZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0tsaWsgaGVyIGZvciBhdCBzJmFlbGlnO3R0ZSBlbiBnciZhZWxpZztuc2UgcCZhcmluZzsgdGkgKDEwKSBtYWlscyB0aWxsYWR0IGZyYSBkZW4gZ2l2bmUgSVAgYWRyZXNzZSBwZXIgdGltZS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnSXYmYWVsaWc7cmtzJmFlbGlnO3Qgc2ltcGxlIGFudGktc3BhbSBmb3Job2xkc3JlZ2xlcj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1ZpcyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnVGlsbGFkIHZpc25pbmcgYWYgZmVsdCBJRCBuJmFyaW5nO3IgZGVyIHRpbGYmb3NsYXNoO2plcyBlbGxlciByZWRpZ2VyZXMgaSBlbiBmb3JtdWxhciBodmlzIGRlciBrbGlra2VzIGhlcic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm11bGFyIGZyYSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQnJ1ZyBkZXR0ZSBmb3JtdWxhcm5hdm4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBmb3JtdWxhciBpbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdCcnVnIGRldHRlIGZvcm11bGFyIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lciZlYWN1dGU7ciBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z1bGRmJm9zbGFzaDtyIGF1dG9tYXRpc2s/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdJbmRzJmFlbGlnO3QgYXV0b21hdGlzayBVUkwgZnJhIHNpZGVuLCBkZXIgaW5kZWhvbGRlciBmb3JtdWxhcmVuPw0KKERldHRlIHRhZ2VyIHByZWNlZGVucyBmcmEgc2lkZWwmYWVsaWc7bmtlIG11bGlnaGVkZW4gbmVkZW51bmRlciknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhcnQgbCZhZWxpZztua2UgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJ0IGwmYWVsaWc7bmtlIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMJmFlbGlnO25rZSB0aWwgc2lkZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPVwiaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYVwiIHRhcmdldD1cIl9uZXdcIj5cJnF1b3Q7Q2FwdGNoYVwmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhL1wiPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0JydWcgQ2FwdGNoYSBmb3IgYXQgYmVza3l0dGUgZm9ybXVsYXJpbmRsJmFlbGlnO2c/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXdcIj4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnS29uZmlybSZlYWN1dGU7ciB2ZW5saWdzdCBhdCBkdSBpa2tlIGVyIGV0IHNjcmlwdCB2ZWQgYXQgbCZhZWxpZztzZSBvZyBpbmRzJmFlbGlnO3R0ZSB0ZWduZW5lIGZyYSBiaWxsZWRldCc7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGb3JrZXJ0IHRla3N0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHZhciBpa2tlIGlkZW50aXNrJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqJmFlbGlnO2xwZXRla3N0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnRGVmYXVsdCB0byBibGFuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdEZWZhdWx0IHRvIGJsYW5rICh1bmNoZWNrIHRvIGRlZmF1bHQgdG8gdG9kYXkmIzAzOTtzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0VuY3J5cHQgZGF0YSBzdG9yZWQgaW4gZGF0YWJhc2UnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXRlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdGUgS2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdTdG9yYWdlIEVuY3J5cHRpb24gVW5hdmFpbGFibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgT3BlblNTTCBtb2R1bGUgb3IgbWNyeXB0IHN1cHBvcnQgaWYgeW91IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRhdGFiYXNlIGVuY3J5cHRpb24uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1BsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgQ1VSTCBzdXBwb3J0IGFjdGl2ZSBpbiB5b3VyIFBIUCBpbnN0YWxsLiBTZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnUnVuIGluIE1MRSBNb2RlJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTCBMaWJyYXJ5JzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBGcm9udGVuZCBVc2VyIG1vZHVsZSB0byBjb25uZWN0IGEgZm9ybSBhbmQgaXRzIGRhdGEgdG8gYSBzcGVjaWZpYyB1c2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm0mIzAzOTtzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpb24nOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAoZG8gbm90IGRvIHRoaXMgaWYgeW91IGFyZSBnb2luZyB0byBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIGZvcm1fYnVpbGRlciBkaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGFmc2VuZGVsc2UnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsYmFnZSB0aWwgZm9ybXVsYXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEZvb3RlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGZvb3RlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9XCJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwXCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWE/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nIFwmcXVvdDtEaXNwb3NpdGlvblwmcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBzdWJtaXR0ZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1ZpcyAmcXVvdDthZnNlbmRlbHNlcyBza2FiZWxvbiZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgXCZxdW90O2FkdmFuY2VkXCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIZWxwLXRleHQgdG8gZGlzcGxheSB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyZW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdCcnVnIGZvciBmbGVyZSBmZWx0dHlwZXI/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdGb3IgbWFuZ2UgZm9ydmlycmVuZGUgZmVsdHR5cGVyPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1NraWZ0IHRpbCBhdmFuY2VyZXQgdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1NraWZ0IHRpbCBzaW1wbGUgdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdEaXNwbGF5IGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1Bhc3N3b3JkIGRvZXMgbm90IG1hdGNoICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnQmFjayB0byBGb3JtQnVpbGRlciBNYWluIFBhZ2UnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnQWxkcmlnJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHRpZCc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ1VzZXIgZGVmaW5lZCB0YWcgJXMgcmV0dXJuZWQgYW4gZXJyb3IuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBZHZhcnNlbCc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPg0KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0NCgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+DQoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0FkZCB5b3VyIHRhZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnRzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBBZnNlbmRlbHNlJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPVwmcXVvdDtcJnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgXCZxdW90O3BhZ2UgeCBvZiB5XCZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwmcXVvdDtCYWNrXCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+XCZxdW90O0NvbnRpbnVlXCZxdW90OyBvciBcJnF1b3Q7U3VibWl0XCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3VcJiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgXCZxdW90O01vZGlmeSBGb3Jtc1wmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdVwmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnaDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdFwmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3VcJiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPVwmIzAzOTtGb3JtQnVpbGRlclwmIzAzOTsgZm9ybT1cJiMwMzk7c2FtcGxlX2Zvcm1cJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2VcJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzIChcJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuDQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtXCYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlIFwmcXVvdDtmYXN0IGZpZWxkIGFkZGVyXCZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXJcJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoXCZxdW90O1ByZXZpb3VzXCZxdW90OywgXCZxdW90O25leHRcJnF1b3Q7LCBcJnF1b3Q7c3VibWl0XCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtXCYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3VcJiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uXCYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkIFwmIzAzOTtEaXNwbGF5IFwmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlXCZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdVwmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdVwmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0XCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdFwmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkIFwmcXVvdDtSZXF1aXJlZFwmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gXCZxdW90O3ZpZXcgc291cmNlXCZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0XCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgXCZxdW90O0Zyb21cJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSBcJnF1b3Q7RnJvbVwmcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgXCZxdW90O1N1YmplY3RcJnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91XCYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgXCZxdW90O0RpcmVjdG9yXCZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgXCZxdW90O2FwcHJvdmVkLFwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSBcJnF1b3Q7b3V0cHV0XCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGVcJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdFwmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlIFwmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlXCZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3VcJiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91XCYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdFwmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSBcJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlXCZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdVwmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LCANCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+DQo8cD5EdW5ubyB3aHkgeW91XCYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdVwmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdVwmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdFwmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgXCZxdW90O0hpZGUgRXJyb3JzXCZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJXCYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yXCYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wiPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPVwiaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zXCI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPVwibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwiPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTFwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTk1NDMyMzA3NS4xMjY2ODc0Njk4LjEyNzA2NjYyNDguMTI3MTEwMTI2NC4zJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI3MTEwMTI2NC4zLjMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWNtc21zLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTE0NzI1ODc1NS0xMjY2ODc0Njk4MDUwJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEZyb21GRVVQcm9wZXJ0eSddID0gJypFLU1haWwgYW4gQmVudXR6ZXIgbWl0IHBhc3NlbmRlciBGRVUgQmVudXR6ZXItRWlnZW5zY2hhZnQnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWxkdHlwIHd1cmRlIG5pY2h0IGRlZmluaWVydCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdXw6RobGVuIFNpZSBlaW5lbiAob2RlciBtZWhyZXJlKSBDYXRhbG9nZXItRWludHLDpGdlIGF1cyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLSBGb3JtdWxhcmFic2Nobml0dCAoZmllbGRzZXQpIEVuZGUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLSBGb3JtdWxhcmFic2Nobml0dCAoZmllbGRzZXQpIFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dGZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNU51bWJlckZpZWxkJ10gPSAnSFRNTDUtWmFobGVuZWluZ2FiZSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0hUTUw1LUUtTWFpbC1FaW5nYWJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0hUTUw1LVVSTC1FaW5nYWJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU2l0ZUFkbWluRmllbGQnXSA9ICdTZWl0ZW5hZG1pbmlzdGF0b3InOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcnQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdQYXNzd29ydC1XaWVkZXJob2x1bmcnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dGZlbGQgKG1laHJmYWNoKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0YXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25vcGYnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnS29udHJvbGxrw6RzdGNoZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdLb250cm9sbGvDpHN0Y2hlbi1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnQXVma2xhcHBsaXN0ZSc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnQXVma2xhcHBsaXN0ZS1KYWhyZXNhdXN3YWhsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ01laHJmYWNoYXVzd2FobCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGVpbmVzIFUuUy4tU3RhYXRlcyc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGVpbmVyIGthbmFkaXNjaGVuIFByb3ZpbnonOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMw6RuZGVyYXVzd2FobCc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtc2F1c3dhaGwnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdaZWl0YXVzd2FobCc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlva25vcGYtR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFcmdlYm5pc3NlIHBlciBFLU1haWwgYW4gQXVzd2FobCBhdXMgZGVtIExpc3RlbmZlbGQgc2VuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqRXJnZWJuaXNzZSBpbiBlaW5lIERhdGVpIGF1cyBkZXIgTGlzdGVuZmVsZGF1c3dhaGwgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypEaWUgRXJnZWJuaXNzZSBpbiBEYXRlaShlbikgYXVzIGRlciBNZWhyZmFjaGxpc3Rlbi1BdXN3YWhsIHNwZWljaGVybic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqQXVmIGRpZSBTZWl0ZSBhdXMgZGVtIExpc3RlbmZlbGQgd2VpdGVybGVpdGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFcmdlYm5pc3NlIHBlciBFLU1haWwgYW4gdm9yZ2VnZWJlbmUgQWRyZXNzZShuKSBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKsOcYmVycHLDvGZ1bmcgw7xiZXIgZGllIEUtTWFpbC1BZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqcGVyIEUtTWFpbCBhbiDigJ5Wb27igJwtQWRyZXNzZmVsZCBlaW5lIEtvcGllIHNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypFcmdlYm5pc3NlIGluIGVpbmUgRGF0ZWkgc2NocmVpYmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25VbmlxdWVGaWxlJ10gPSAnKkVyZ2Vibmlzc2UgZsO8ciBqZWRlIEVpbmdhYmUgaW4gZWluZSBlaWdlbmUgRGF0ZWkgc2NocmVpYmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypFcmdlYm5pc3NlIGluIGRlciBEYXRlbmJhbmsgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypFcmdlYm5pc3NlIGbDvHIgZGFzIEZvcm1Ccm93c2VyLU1vZHVsIHNwZWljaGVybic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypFaW5lbiBiZW51dHplcmRlZmluaWVydGVuIFRhZyBtaXQgZGVuIEVyZ2Vibmlzc2VuIGFscyBQYXJhbWV0ZXIgYXVmcnVmZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqRXJnZWJuaXNzZSBhbiBlaW5lIGZlc3RnZWxlZ3RlIEZvcm11bGFyLUFrdGlvbiBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEUtTWFpbCBhbiBlaW5lIHZvbSBCZXN1Y2hlciBhbmdlZ2ViZW5lIEUtTWFpbC1BZHJlc3NlIHZlcnNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1NYWlsIGFuIGRlbiBDTVMtQWRtaW5pc3RyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxCYXNlZEZyb250ZW5kRmllbGRzJ10gPSAnKkUtTWFpbC1FcmdlYm5pc3NlLCBiYXNpZXJlbmQgYXVmIGRlbiBGZWxkZXJuIGltIEZyb250ZW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25MaXN0SXRFeHRlbmRlZCddID0gJ0VyZ2Vibmlzc2UgZsO8ciBkYXMgTGlzdEl0RXh0ZW5kZWQtTW9kdWwgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2VpdGVudW1icnVjaCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0RhdGVpdXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRS1NYWlsLUFkcmVzc2Ug4oCeVm9u4oCcJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLU1haWwtQWRyZXNzZSDigJ5Wb27igJwgd2llZGVyaG9sZW4nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLU1haWwg4oCeVm9u4oCcLU5hbWUnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFLU1haWwg4oCeQmV0cmVmZuKAnCc7CiRsYW5nWydmaWVsZF90eXBlX0NDRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFLU1haWwtRmVsZCDigJ5Lb3BpZSBzZW5kZW4gYW4g4oCm4oCcIChDQyknOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzY2hlciBUZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2NoZXIgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MaW5rICh2b20gQmVudXR6ZXIgZWluenVnZWJlbiknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1WZXJzdGVja3RlcyBGZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1CZXJlY2huZXRlcyBGZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLUVpbmRldXRpZ2UgWmFobCAoU2VyaWVsbCknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctQmVudXR6ZXJkZWZpbmllcnRlciBUYWcnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICctQ29tcGFueURpcmVjdG9yeS1GZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxzY2huaXR0c3RlbGxlbmZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdLb250cm9sbGvDpHN0Y2hlbiAoZXJ3ZWl0ZXJ0KSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdLZWluZSDDnGJlcnByw7xmdW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bW1lcmlzY2gnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnR2FuenphaGwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRS1NYWlsLUFkcmVzc2UnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbm51bW1lciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1BmbGljaHRmZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdFbnRzcHJpY2h0IGRlbSByZWd1bMOkcmVuIEF1c2RydWNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0VudHNwcmljaHQgbmljaHQgZGVtIHJlZ3Vsw6RyZW4gQXVzZHJ1Y2snOwokbGFuZ1sndmFsaWRhdGlvbl9lbXB0eSddID0gJ2RhcmYgbmljaHQgbGVlciBzZWluJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnYmVuw7Z0aWd0JzsKJGxhbmdbJ25vdF9yZXF1aXJlZCddID0gJ25pY2h0IGJlbsO2dGlndCc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnbmljaHQgdmVyZsO8Z2Jhcic7CiRsYW5nWydlcnJvcl9lbWFpbGZyb21mZXVwcm9wJ10gPSAnRmVobGVyIGluIGRlbiBGZWxkZWluc3RlbGx1bmdlbic7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0RhcyBGcm9udEVuZFVzZXJzLU1vZHVsIHd1cmRlIG5pY2h0IGdlZnVuZGVuLiBEaWVzZXMgRmVsZCBoYXQga2VpbmUgRnVua3Rpb24uJzsKJGxhbmdbJ2Vycm9yX25vZmV1ZGVmbnMnXSA9ICdLZWluZSBwYXNzZW5kZSBGRVUtQmVudXR6ZXItRWlnZW5zY2hhZnQgZ2VmdW5kZW4uIERpZXNlcyBGZWxkIGhhdCBrZWluZSBGdW5rdGlvbi4nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0bDvHIgZWluIFBmbGljaHRmZWxkIHd1cmRlIGtlaW4gV2VydCBlaW5nZWdlYmVuJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQml0dGUgZsO8bGxlbiBTaWUgZGFzIEZlbGQg4oCeJXPigJwgYXVzLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpIOKAniVz4oCcIGVpbmUgWmFobCBlaW4uJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0JpdHRlIGdlYmVuIFNpZSBiZWkg4oCeJXPigJwgZWluZW4gZ8O8bHRpZ2VuIEVpbnRyYWcgZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBiZWkg4oCeJXPigJwgZWluZW4gZ2FuenphaGxpZ2VuIFdlcnQgZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpIOKAniVz4oCcIGVpbmUgZ8O8bHRpZ2UgRS1NYWlsLUFkcmVzc2UgZWluLic7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRGllIEUtTWFpbC1BZHJlc3NlIHN0aW1tdCBuaWNodCBtaXQgZGVyIEVpbmdhYmUgaW4g4oCeJXPigJwgw7xiZXJlaW4uJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnQml0dGUgZ2ViZW4gU2llIGJlaSDigJ4lc+KAnCBlaW5lIGfDvGx0aWdlIFRlbGVmb25udW1tZXIgZWluLic7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdCaXR0ZSBtZWxkZW4gU2llIHNpY2ggYW4sIHVtIGRpZXNlcyBGb3JtdWxhciB6dSB2ZXJ3ZW5kZW4hJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJ+KAniVz4oCcIHNjaGVpbnQga2VpbmUgZ8O8bHRpZ2UgRS1NYWlsLUFkcmVzc2UgenUgc2Vpbi4nOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBXZXJ0IGVpbiwgZGVyIG5pY2h0IGzDpG5nZXIgYWxzICVzIFplaWNoZW4gaXN0Lic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gV2VydCBlaW4sIGRlciBtaW5kZXN0ZW5zICVzIFplaWNoZW4gaGF0Lic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1plaWNoZW4sIGRhcyBhbHMgVHJlbm5lciB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwsIHdlbm4gbWVociBhbHMgZWluIFdlcnQgYWxzIEVyZ2VibmlzIHp1csO8Y2tnZWdlYmVuIHdpcmQnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1NpZSBiZW7DtnRpZ2VuIGRpZSBCZXJlY2h0aWd1bmcg4oCeJXPigJwsIHVtIGRpZXNlIEFrdGlvbiBhdXN6dWbDvGhyZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2llIGhhYmVuIG5pY2h0IGRpZSBlcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZywgdW0gYXVmIGRpZXNlbiBCZXJlaWNoIHp1enVncmVpZmVuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsZHJlaWhlbmZvbGdlIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXIgZ2Vsw7ZzY2h0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsZCBnZWzDtnNjaHQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnQmV2b3IgU2llIHdlaXRlcm1hY2hlbiBrw7ZubmVuLCBtw7xzc2VuIFNpZSDigJ4lc+KAnCDDvGJlcnByw7xmZW4uJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTaWUgbcO8c3NlbiBoaWVyIG1pbmRlc3RlbnMgZWluZSBaaWVsYWRyZXNzZSBhbmdlYmVuISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdXb2xsZW4gU2llIGRhcyBGb3JtdWxhciDigJ4lc+KAnCB3aXJrbGljaCBsw7ZzY2hlbj8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ1dvbGxlbiBTaWUgZGFzIEZlbGQg4oCeJXPigJwgd2lya2xpY2ggbMO2c2NoZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0RpZSBlcndlaXRlcnRlbiBPcHRpb25lbiBzaW5kIGVyc3QgdmVyZsO8Z2Jhciwgd2VubiBkZXIgRmVsZHR5cCBmZXN0Z2VsZWd0IHd1cmRlLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0RlciBGZWxkbmFtZSDigJ4lc+KAnCB3aXJkIGJlcmVpdHMgdmVyd2VuZGV0LiBCaXR0ZSB2ZXJ3ZW5kZW4gU2llIGVpbmRldXRpZ2UgRmVsZG5hbWVuIG9kZXIgZGVha3RpdmllcmVuIGRpZSBWZXJ3ZW5kdW5nIGVpbmRldXRpZ2VyIEZlbGRuYW1lbiBpbiBkZXIgRm9ybUJ1aWxkZXItS29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0RpZSBGZWxkZXIgbcO8c3NlbiBlaW5lbiBOYW1lbiBlcmhhbHRlbiwgb2RlciBTaWUgZGVha3RpdmllcmVuIGRpZXMgaW4gZGVyIEZvcm1CdWlsZGVyLUtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ25vX2ZpZWxkX2Fzc2lnbmVkJ10gPSAnS2VpbiBGZWxkIHp1Z2V3aWVzZW4gZsO8ciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0zDpG5nZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgT3B0aW9uZW4nOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBaZWljaGVuJzsKJGxhbmdbJ29yZGVyJ10gPSAnUmVpaGVuZm9sZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICcobmljaHQgYW5nZWdlYmVuKSc7CiRsYW5nWydhZGRlZCddID0gJ2hpbnp1Z2Vmw7xndCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wdGlvbmVuIHp1ciBTb3J0aWVydW5nIGJlaSBkZXIgQXVzZ2FiZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnRWluZSBPcHRpb24gYXVzd8OkaGxlbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ0VpbmVuIFR5cCBhdXN3w6RobGVuJzsKJGxhbmdbJ3RvJ10gPSAnQW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdFbXBmw6RuZ2VyJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZlbGRlcic7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbcO2Z2xpY2hlIERhdGVpZW4nOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBaaWVsZSc7CiRsYW5nWydzYXZlJ10gPSAnU3BlaWNoZXJuJzsKJGxhbmdbJ2FkZCddID0gJ0hpbnp1ZsO8Z2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTcGVpY2hlcm4gdW5kIEJlYXJiZWl0dW5nIGZvcnRzZXR6ZW4nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbGRzdGF0dXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIEdyw7bDn2UnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdEYXRlaWVyd2VpdGVydW5nZW4nOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0VybGF1YnRlIERhdGVpdHlwZW4nOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdEaWUgaG9jaGdlbGFkZW5lIERhdGVpIGlzdCB6dSBncm/DnyEgRGllIG1heGltYWxlIEdyw7bDn2UgaXN0Oic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpZXNlciBEYXRlaXR5cCBkYXJmIG5pY2h0IGhvY2hnZWxhZGVuIHdlcmRlbi4gQml0dGUgcHLDvGZlbiBTaWUsIG9iIGRpZSBEYXRlaWVyd2VpdGVydW5nIGtvcnJla3QgaXN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdIb2NobGFkZW4nOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGFyIGltcG9ydGllcnQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm11bGFyLUltcG9ydCBmZWhsZ2VzY2hsYWdlbiEgRXMgaXN0IGVpbiBQcm9ibGVtIG1pdCBkZW0gRm9ybWF0IGRlciBYTUwtRGF0ZWkgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBaZWlsZW4nOwokbGFuZ1snY29scyddID0gJyVzIFNwYWx0ZW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLVN0dW5kZW4tQW56ZWlnZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlJzsKJGxhbmdbJ2hvdXInXSA9ICdTdHVuZGUnOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0JlcmVpY2g6ICVzIOKAkyAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWaWVsZW4gRGFuayEgSWhyZSBFaW5nYWJlbiB3dXJkZW4gZXJmb2xncmVpY2ggdmVyc2FuZHQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZWFyYmVpdGVuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0zDtnNjaGVuJzsKJGxhbmdbJ2RheSddID0gJ1RhZyc7CiRsYW5nWydtb24nXSA9ICdNb25hdCc7CiRsYW5nWyd5ZWFyJ10gPSAnSmFocic7CiRsYW5nWydub25lJ10gPSAnKGtlaW5lIEFuZ2FiZSknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ25vdGljZSddID0gJ0hpbndlaXMnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0FsbGdlbWVpbic7CiRsYW5nWydhYm91dCddID0gJ8OcYmVyJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1ZvcmxhZ2VuJzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnRXJ3ZWl0ZXJ0JzsKJGxhbmdbJ3N0eWxpbmcnXSA9ICdHZXN0YWx0dW5nJzsKJGxhbmdbJ3RlYW0nXSA9ICdLb2xsZWt0aXYnOwokbGFuZ1snY29udHJpYnV0b3JzJ10gPSAnTWl0d2lya2VuZGUnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICc8IHp1csO8Y2snOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0Zvcm11bGFyIGFic2VuZGVuJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ3dlaXRlciA+JzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdHZXByw7xmdCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmdlcHLDvGZ0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSGF1cHRzZWl0ZSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRWluc3RlbGx1bmdlbiBmw7xyIGRpZSBGb3JtdWxhcmFuemVpZ2UnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm11bGFyLVZlcnNhbmQnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnRXJ3ZWl0ZXJ0ZSBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm11bGFyLVRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdCZXN0w6R0aWd1bmdzLVRlbXBsYXRlJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdJbnRlZ3JhdGlvbiB2b24gYmVudXR6ZXJkZWZpbmllcnRlbiBUYWdzJzsKJGxhbmdbJ3RpdGxlX2ZldV9wcm9wZXJ0eSddID0gJ0Zyb250RW5kVXNlcnMgQmVudXR6ZXItRWlnZW5zY2hhZnQnOwokbGFuZ1snaW5mb19mZXVfcHJvcGVydHknXSA9ICdFcyBrw7ZubmVuIG51ciBiZXN0aW1tdGUgRWlnZW5zY2hhZnRzdHlwZW4gdmVyd2VuZGV0IHdlcmRlbiAoS2xhcHBib3hlbiwgTWVocmZhY2hhdXN3YWhsLUxpc3RlbiwgZXRjKS4nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5JbiBkaWVzZW0gRmVsZCBzaW5kIGF1Y2ggU21hcnR5LVZhcmlhYmxlbiBnw7xsdGlnZSBXZXJ0ZS48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnV2VpdGVyZSBPcHRpb25lbiBoaW56dWbDvGdlbic7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ01hcmtpZXJ0ZSBPcHRpb25lbiBsw7ZzY2hlbic7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1dlaXRlcmUgS29udHJvbGxrw6RzdGNoZW4gaGluenVmw7xnZW4nOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdNYXJraWVydGUgS29udHJvbGxrw6RzdGNoZW4gbMO2c2NoZW4nOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdFaW5lIHdlaXRlcmUgQWRyZXNzZSBoaW56dWbDvGdlbic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ01hcmtpZXJ0ZSBBZHJlc3NlbiBsw7ZzY2hlbic7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdFaW4gd2VpdGVyZXMgWmllbCBoaW56dWbDvGdlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdNYXJraWVydGUgWmllbGUgbMO2c2NoZW4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdWb24gSWhyZXIgSVAtQWRyZXNzZSB3dXJkZW4genUgdmllbGUgRS1NYWlscyB2ZXJzYW5kdC4gRXMgd3VyZGUgZGFoZXIgdm9yYmV1Z2VuZCBlaW4gQW50aS1TcGFtLUNvZGUgYXVzZ2VnZWJlbi4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnVmVyZMOkY2h0aWdlciBTcGFtIHZvbiBkZXIgSVAgJXMgd3VyZGUgZ2VzdG9wcHQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnRmVzdGdlbGVndGVyIFdlcnQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdJbSBmb2xnZW5kZW4gZmluZGVuIFNpZSBlaW5lIExpc3RlIHZvbiBBdHRyaWJ1dGVuLCBkaWUgdm9tIENhdGFsb2dlci1Nb2R1bCB2ZXJmw7xnYmFyIHNpbmQuPGJyLz5PcHRpb25hbCBrw7ZubmVuIFNpZSBnw7xsdGlnZSBCZXJlaWNoZSwgV2VydGUgb2RlciBtZWhyZXJlIFdlcnRlIGZlc3RsZWdlbiwgZGllIHp1ciBGaWx0ZXJ1bmcgZGVyIEVpbnRyw6RnZSB2ZXJ3ZW5kZXQgd2VyZGVuIGvDtm5uZW4sIGRpZSBkZW4gQmVzdWNoZXJuIGFuZ2V6ZWlndCB3ZXJkZW4uPGJyLz4NCjxici8+DQo8c3Ryb25nPkJlcmVpY2hlOjwvc3Ryb25nPjxici8+DQpWZXJ3ZW5kZW4gU2llIGRlbiBTeW50YXg6ICJyYW5nZTogbWluV2VydCB0byBtYXhXZXJ0IiwgdW0gZWluZW4gbWluaW1hbGVuIHVuZCBlaW5lbiBtYXhpbWFsZW4gV2VydCBmZXN0enVsZWdlbi48YnIvPg0KPGJyLz4NCjxzdHJvbmc+TWVocmVyZSBXZXJ0ZTo8L3N0cm9uZz48YnIvPg0KIFZlcndlbmRlbiBTaWUgZGVuIFN5bnRheCAibXVsdGk6IFdlcnQxfFdlcnQyfFdlcnQzIiwgdW0gbWVocmVyZSBXZXJ0ZSBmw7xyIGVpbiBBdHRyaWJ1dCBmZXN0enVsZWdlbi48YnIvPg0KPGJyLz4NCjxzdHJvbmc+V2VydGUgZGVyIHZlcmJvcmdlbmVuIEZlbGRlcjwvc3Ryb25nPjxici8+DQpWZXJ3ZW5kZW4gU2llIGRlbiBTeW50YXggeyRmbGRfaWR9LCB1bSBlaW5lbiBXZXJ0IGbDvHIgZWluIHZlcmJvcmdlbmVzIEZlbGQgZmVzdHp1bGVnZW4uPGJyLz4NCjxici8+JzsKJGxhbmdbJ3RpdGxlX3RleHRmaWVsZF9sYWJlbCddID0gJ1RleHRmZWxkLUV0aWtldHQnOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdUZXh0ZmVsZCBhbnplaWdlbj8nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRWluIHJlZ3Vsw6RyZXIgQXVzZHJ1Y2ssIGRlciBlcyBlcm3DtmdsaWNodCwgQ2F0YWxvZ2VyLUVpbnRyw6RnZSBuYWNoIGRlbSBOYW1lbiB6dSBmaWx0ZXJuJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnRGllIEjDtmhlIGRlcyBGZWxkZXMgenVyIE1laHJmYWNoYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnUmVndWzDpHJlciBBdXNkcnVjayBmw7xyIGRpZSBOYW1lbiB2b24gQ2F0YWxvZ2VyLUVpbnRyw6RnZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmVsZGjDtmhlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ1ppZWx2ZXJ6ZWljaG5pcyBmw7xyIGRpZSBhdXNnZWdlYmVuZW4gRGF0ZWllbic7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZXIgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTZWl0ZSwgYXVmIGRlciBkZXIgVXBsb2Fkcy1MaW5rIGRhcmdlc3RlbGx0IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnTWl0IGRlbSBGb3JtQnVpbGRlci1Nb2R1bCB2ZXJzYW5kdCc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2Fkcy1LYXRlZ29yaWUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdEaWVzZSBEYXRlaSBhbiBkYXMgVXBsb2Fkcy1Nb2R1bCDDvGJlcmdlYmVuJzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZSddID0gJ0vDtm5uZW4gVXBsb2FkcyB2b3JoYW5kZW5lIERhdGVpZW4gw7xiZXJzY2hyZWliZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnS8O2bm5lbiBVcGxvYWRzIGJlcmVpdHMgdm9yaGFuZGVuZSBEYXRlaWVuIG1pdCBkZW0gZ2xlaWNoZW4gRGF0ZWluYW1lbiDDvGJlcnNjaHJlaWJlbj8nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAnRXJtw7ZnbGljaHQgw5xiZXJzY2hyZWliZW4nOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdLZWluIMOcYmVyc2NocmVpYmVuJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICdEYXRlaSAlcyBleGlzdGllcnQgYmVyZWl0cyB1bmQga2FubiBuaWNodCDDvGJlcnNjaHJpZWJlbiB3ZXJkZW4uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcmVuYW1lJ10gPSAnRGF0ZWluYW1lbnZvcmxhZ2UnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXSA9ICdPcmlnaW5hbCBEYXRlaWVyd2VpdGVydW5nICh1bWZhc3N0IGRlbiDigJ4u4oCcKSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1VudGVyZHLDvGNrdCBEYXRlaW5hbWVuIGluIEUtTWFpbHMgdW5kIEZvcm11bGFyZW4gZGllIGRlciBFbmRiZW51dHplciBzaWVodCc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19hdHRhY2htZW50J10gPSAnRGF0ZWkgZGFyZiBuaWNodCBhbiBFLU1haWxzIGFuZ2Vow6RuZ3Qgd2VyZGVuJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdFaW5lIFZvcmxhZ2UgZsO8ciBkZW4gbmV1ZW4gRGF0ZWluYW1lbiBkZXIgbmFjaCBkZW0gVXBsb2FkIHZlcmdlYmVuIHdpcmQuIExhc3NlbiBTaWUgZGllc2VzIEZlbGQgbGVlciwgdW0gZGVuIE9yaWdpbmFsZGF0ZWluYW1lbiBiZWl6dWJlaGFsdGVuLic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIGRlcyBLb250cm9sbGvDpHN0Y2hlbnMnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIE9wdGlvbnNmZWxkZXMnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dlcnQgbmFjaCBlcmZvbGd0ZXIgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBvaG5lIGVyZm9sZ3RlIEFrdGl2aWVydW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBLb250cm9sbGvDpHN0Y2hlbi1HcnVwcGUnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnTMO2c2NoZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHQgZsO8ciDigJ5CaXR0ZSBhdXN3w6RobGVu4oCcJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ0F1c3dhaGwgV2VydCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdBdXN3YWhsIGRlcyBhbmdlemVpZ3RlbiBOYW1lbnMnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBdXN3YWhsIGRlcyDigJ5CZXRyZWZmc+KAnCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTmFtZSBkZXIgT3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ8OcYmVybWl0dGVsdGVyIFdlcnQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4nOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wdGlvbmVuIHp1ciBNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1ppZWwtRS1NYWlsLUFkcmVzc2UnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOYW1lIGRlciBaaWVsZGF0ZWknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAn4oCeVm9uIChOYW1lKeKAnCBkZXIgRS1NYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdMb2NrZXJlIEUtTWFpbC3DnGJlcnByw7xmdW5nIHZlcndlbmRlbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdWZXJ3ZW5kZXQgZWluZSBsb2NrZXJlIMOcYmVycHLDvGZ1bmcgZGVyIEUtTWFpbCAoZXJsYXVidCB6LiBCc3AuIOKAnnhAeeKAnCBhbnN0YXR0IGRlcyBlcmZvcmRlcmxpY2hlbiDigJ54QHkuZGXigJwpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ+KAnlZvbiAoRS1NYWlsLUFkcmVzc2Up4oCcIGRlciBFLU1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdaZWljaGVua29kaWVydW5nIGRlciBFLU1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0xpc3RlbmZlbGRiYXNpZXJ0ZSBFLU1haWwtRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdEYXRlaW5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0JldHJlZmZ6ZWlsZSBkZXIgRS1NYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFybmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGFyc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnRWluc2F0emJlcmVpdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmljaHQgZWluc2F0emJlcmVpdCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2VpdGUsIGF1ZiBkaWUgbmFjaCBkZW0gVmVyc2FuZCBnZXNwcnVuZ2VuIHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdCaXR0ZSBmw7xnZW4gU2llIGVpbiBGZWxkIGhpbnp1LCBtaXQgZGVtIGRpZSBCZW51dHplcmVpbmdhYmVuIHZlcmFyYmVpdGV0IHdlcmRlbi4gU2llIGvDtm5uZW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdkaWVzZSBUYXN0ZW5rb21iaW5hdGlvbiB2ZXJ3ZW5kZW4sJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtdWxhci1BbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybXVsYXJmZWxkZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGZWxkLUlEJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnRmVsZC1BbGlhc2UgYW56ZWlnZW4nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0FrdGl2aWVyZW4gU2llIGRpZXMsIHdlbm4gYmVpbSBCZWFyYmVpdGVuIGRlcyBGb3JtdWxhcnMgZGVyIEZlbGQtQWxpYXMgYW5nZXplaWd0IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGZWxkbmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZlbGQtQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRGV0YWlscyB6dXIgT3B0aW9uc2ZlbGQtR3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWxkdHlwJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd1bSBlaW4gRmVsZCB6dXIgRm9ybXVsYXJ2ZXJhcmJlaXR1bmcgenUgZXJzdGVsbGVuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdOZXVlcyBGb3JtdWxhciBoaW56dWbDvGdlbic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWZXJzaW9uIGRlcyBGb3JtQnVpbGRlci1Nb2R1bHMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnQWxzIEhpbGZlIHp1ciBGZWhsZXJiZXNlaXRpZ3VuZyB3aXJkIGRpZSBWZXJzaW9uc251bW1lciBkZXMgRm9ybUJ1aWxkZXItTW9kdWxzIGluIGVpbmVtIEtvbW1lbnRhciBlaW5nZWJldHRldC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ05ldWVzIEZlbGQgaGluenVmw7xnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGV4dCBmw7xyIGRlbiDigJ5BYnNlbmRlbuKAnC1Lbm9wZic7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ0tub3BmLVRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdTb2xsIGRlbSBWZXJzZW5kZW4tS25vcGYgZWluIEphdmFzY3JpcHQgaGluenVnZWbDvGd0IHdlcmRlbiwgdW0gZGVuIG1laHJmYWNoZW4gVmVyc2FuZCBkZXMgRm9ybXVsYXJzIHp1IHZlcmhpbmRlcm4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdTaWNoZXJoZWl0c3NjcmlwdCBoaW56dWbDvGdlbic7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnVGV4dCBmw7xyIGRlbiDigJ5XZWl0ZXLigJwtS25vcGYgKGbDvHIgbWVocnNlaXRpZ2UgRm9ybXVsYXJlKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGV4dCBmw7xyIGRlbiDigJ5adXLDvGNr4oCcLUtub3BmIChmw7xyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbGQtw5xiZXJwcsO8ZnVuZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ1p1IMO8YmVycHLDvGZlbmRlcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUy1JRCBmw7xyIGRpZXNlcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLUtsYXNzZSBmw7xyIGRpZXNlcyBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGbDvHIgZGllc2VzIEZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZXIgVGFnLCBkZXIgdm9yIGRlciBBbnplaWdlIGRlcyBGb3JtdWxhcnMgYXVzZ2Vmw7xocnQgd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnQmVudXR6ZXJkZWZpbmllcnRlciBUYWcsIGRlciB2b3IgZGVyIEFuemVpZ2UgZGVzIEZvcm11bGFycyBhdWZnZXJ1ZmVuIHdpcmQgKGJlaSBtZWhyc2VpdGlnZW4gRm9ybXVsYXJlbiB3aXJkIGVyIGJlaSBqZWRlciBlaW56ZWxuZW4gU2VpdGUgZGVzIEZvcm11bGFycyBhdWZnZXJ1ZmVuKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZXIgVGFnLCBkZXIgd8OkaHJlbmQgZGVyIEZvcm11bGFycHLDvGZ1bmcgYXVmZ2VydWZlbiB3aXJkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHp1ciBLZW5uemVpY2hudW5nIGRlciBQZmxpY2h0ZmVsZGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUGZsaWNodGZlbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0VyZm9yZGVydCB6d2luZ2VuZCBlaW5lIEFudHdvcnQgaW4gZGllc2VtIEZlbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnRGllc2VuIEZlbGRuYW1lbiBpbSBGb3JtdWxhciB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlIGRlcyBGZWxkaW5oYWx0cyAoMCBvZGVyIGxlZXIgYmVkZXV0ZXQgb2huZSBMaW1pdCknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ0FuenV6ZWlnZW5kZXIgc3RhdGlzY2hlciBUZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVnZXgtw5xiZXJwcsO8ZnVuZyc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQW56YWhsIGRlciBhbnp1emVpZ2VuZGVuIFplaWxlbic7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdOdXIgbGVzZW4nOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0tlaW5lIFZvcmVpbnN0ZWxsdW5nJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2VpdGUsIGF1ZiBkaWUgbmFjaCDDnGJlcnByw7xmdW5nIHdlaXRlcmdlbGVpdGV0IHdpcmQnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RpZXNlciByZWd1bMOkcmUgQXVzZHJ1Y2sgd2lyZCBudXIgdmVyd2VuZGV0LCB3ZW5uIGRpZSBBcnQgZGVyIMOcYmVycHLDvGZ1bmcgYXVmIGVpbmUgUmVnZXgtT3B0aW9uIGVpbmdlc3RlbGx0IGlzdC4gR2ViZW4gU2llIGVpbmVuIHZvbGxzdMOkbmRpZ2VuIHJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgaW4gUGVybC1TeW50YXggZWluLCBlaW5zY2hsaWXDn2xpY2ggU2NocsOkZ3N0cmljaGVuIGFtIEFuZmFuZyB1bmQgRW5kZSB1bmQg4oCcRmxhZ3PigJ07IHouIEIuOiA8Y29kZT4vaW1hZ2VcLihcZCspL2k8L2NvZGU+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1BmbGljaHRmZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnRmVobGVyIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnQW56ZWlnZXR5cCBkZXMgRm9ybXVsYXJzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGZWhsZXItTWVsZHVuZ2VuIHZvciBkZW4gQmVudXR6ZXJuIHZlcmJlcmdlbi4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFLU1haWwtVm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsZSBHcsO2w59lIGbDvHIgaG9jaHp1bGFkZW5kZSBEYXRlaWVuIChpbiBLQiknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEaWVzZXMgTGltaXQgaXN0IGVpbmUgRXJnw6RuenVuZyBkZXIgVm9yZ2FiZW4gYXVzIGRlciBQSFAtIG9kZXIgU2VydmVyLUtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdEYXMgVmVyemVpY2huaXMsIGluIGRhcyBkaWUgRGF0ZWllbiBnZXNwZWljaGVydCB3ZXJkZW4gc29sbGVuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnWnVnZWxhc3NlbmUgRGF0ZWllbmR1bmdlbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnR2ViZW4gU2llIGhpZXIgZWluZSBBdWZ6w6RobHVuZyBkZXIgenVnZWxhc3NlbmVuIERhdGVpZW5kdW5nZW4gamV3ZWlscyBnZXRyZW5udCBkdWNoIGVpbiBLb21tYSBlaW4gKG9obmUgUHVua3QsIHouIEIuIOKAnmpwZyxnaWYsanBlZ+KAnCkuIExlZXJ6ZWljaGVuIHdlcmRlbiBpZ25vcmllcnQuIE9obmUgRWludHJhZyBnZWx0ZW4ga2VpbmUgQmVzY2hyw6Rua3VuZ2VuLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQmVzY2hyw6Rua3VuZ2VuIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdCZXNjaHLDpG5rdW5nZW4gZGVyIEdyw7bDn2UgdW5kIGRlciBEYXRlaWVuZHVuZ2VuIG1pdCBkZW0gVXBsb2FkLUZlbGQgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdWb3JsYWdlIGbDvHIgZGllIEZvcm11bGFyYW56ZWlnZSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NlaXRlICVzIHZvbiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRGFzIEZlbGQgaGF0IGtlaW5lIGVyd2VpdGVydGVuIE9wdGlvbmVuLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCwgZGVyIGJlaSB1bmdlbmF1ZW4gRWluZ2FiZW4genVyw7xja2dlZ2ViZW4gd2lyZCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRGFzIExpc3RlbmZlbGQgZsO8ciBzY2huZWxsZXMgSGluenVmw7xnZW4gdm9uIEZlbGRlcm4gaW4gRm9ybXVsYXJlbiBha3RpdmllcmVuPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0RhcyBMaXN0ZW5mZWxkIGbDvHIgc2NobmVsbGVzIEhpbnp1ZsO8Z2VuIHZvbiBGZWxkZXJuIGFrdGl2aWVyZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTY2huZWxsZSBGZWxkZXJzdGVsbHVuZyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1dlbm4gU2llIGRpZXMgYWt0aXZpZXJlbiwga8O2bm5lbiBwcm8gSVAtQWRyZXNzZSBtYXhpbWFsIDEwIEUtTWFpbHMgdmVyc2FuZHQgd2VyZGVuIChwcm8gU3R1bmRlKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRWluZmFjaGVuIEFudGktU3BhbS1TY2h1dHogYWt0aXZpZXJlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ0ZlbGQtSURzIGFuemVpZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ1dlbm4gU2llIGRpZXNlcyBGZWxkIGFrdGl2aWVyZW4sIHdlcmRlbiBkaWUgRmVsZC1JRHMgYmVpbSBCZWFyYmVpdGVuIGRlcyBGb3JtdWxhcnMgYW5nZXplaWd0JzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdFaW4gRm9ybXVsYXIgYWxzIFhNTC1EYXRlaSBob2NobGFkZW4nOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0RpZXNlbiBGb3JtdWxhcm5hbWVuIHZlcndlbmRlbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLUZvcm11bGFyLUltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0RpZXNlbiBGb3JtdWxhci1BbGlhcyB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0VpbmUgSFRNTC1FLU1haWwgZXJ6ZXVnZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGlzY2ggdmVyw7ZmZmVudGxpY2hlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIG1pdCBkZXIgVVJMIGRlciBGb3JtdWxhcnNlaXRlIHZlcsO2ZmZlbnRsaWNoZW4/IChkaWVzIMO8YmVyc2NocmVpYnQgZGllIHdlaXRlciB1bnRlbiBiZW5hbm50ZSBTZWl0ZW4tTGluay1PcHRpb24pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkLUxpbmstVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJkLUxpbmstVGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBhdWYgZGllIFNlaXRlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1dlbm4gU2llIGRhcyBDQVBUQ0hBLU1vZHVsIGluc3RhbGxpZXJlbiwga8O2bm5lbiBTaWUgw7xiZXIgZWluIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+4oCeQ0FQVENIQeKAnDwvYT4gSWhyIEZvcm11bGFyIHZvciBTcGFtIHNjaMO8dHplbi4gV2VpdGVyZSBJbmZvcm1hdGlvbmVuIGZpbmRlbiBTaWUgaW0gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Q2FwdGNoYS1Qcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdDQVBUQ0hBIHZlcndlbmRlbiwgdW0gZGVuIEZvcm11bGFydmVyc2FuZCB6dSBzY2jDvHR6ZW4/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzZXMgRmVsZCwgdW0gSWhyIEZvcm11bGFyIG1pdHRlbHMgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfYmxhbmsiPiJDYXB0Y2hhIjwvYT4gdm9yIFNwYW0genUgc2Now7x0emVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCaXR0ZSBiZXN0w6R0aWdlbiBTaWUsIGRhc3MgU2llIGtlaW4gbWFzY2hpbmVsbGVzIFNjcmlwdCBzaW5kLCBpbmRlbSBTaWUgZGllIEJ1Y2hzdGFiZW4gYXVzIGRlbSBCaWxkIGVpbmdlYmVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdUZXh0IGJlaSBmYWxzY2ggZWluZ2VnZWJlbmVtIENBUFRDSEEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0RlciBlaW5nZWdlYmVuZSBDQVBUQ0hBLVRleHQgd2FyIGZhbHNjaC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGlsZmV0ZXh0IGbDvHIgQ0FQVENIQSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdGw7xyIG5pY2h0IGFrdGl2aWVydGUgS29udHJvbGxrw6RzdGNoZW4ga2VpbmUgV2VydGUgw7xiZXJtaXR0ZWxuJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQWt0aXZpZXJlbiBTaWUgZGllcywgd2VubiBudXIgYmVpIGFrdGl2aWVydGVtIEtvbnRyb2xsa8Okc3RjaGVuIFdlcnRlIHp1csO8Y2tnZWdlYmVuIHdlcmRlbiBzb2xsZW4uJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIExpbmtzJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdaaWVsLVVSTCBkZXMgTGlua3MnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdIw6RrY2hlbiB2b3JlaW5nZXN0ZWxsdCBzZXR6ZW4/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICcyNC1TdHVuZGVuLUFuemVpZ2UgdmVyd2VuZGVuPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0EuTS4nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1AuTS4nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdTbWFydHktVGFncyBpbiBkZW4gRmVsZGVybiB2ZXJhcmJlaXRlbj8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1plaWxlbiAoSGlud2VpczogRGllcyBrYW5uIGR1cmNoIENTUyDDvGJlcnNjaHJpZWJlbiB3ZXJkZW4pJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdTcGFsdGVuIChIaW53ZWlzOiBEaWVzIGthbm4gZHVyY2ggQ1NTIMO8YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWlscyBkZXMgSGF1cHRmb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ1ZvcmVpbmdlc3RlbGx0IGxlZXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnVm9yZWluZ2VzdGVsbHQgbGVlciAoZGVha3RpdmllcnQgZGllIFZvcmVpbnN0ZWxsdW5nIGbDvHIgZGFzIGhldXRpZ2UgRGF0dW0pJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEZW4gQW5tZWxkZS1OYW1lbiBkZXMgQmVudXR6ZXJzIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEZW4gVm9ybmFtZW4gZGVzIEJlbnV0emVycyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEZW4gTmFjaG5hbWVuIGRlcyBCZW51dHplcnMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnRGllIEJlbnV0emVybGlzdGUgYXVmIEJlbnV0emVyIGRlciBzcGV6aWZpemllcnRlbiBHcnVwcGUgYmVzY2hyw6Rua2VuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ1ZlcnNjaGzDvHNzZWxuIHZvbiBpbiBkZXIgRGF0ZW5iYW5rIGdlc3BlaWNoZXJ0ZW4gRGF0ZW4nOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ1plcnRpZmlrYXQgZsO8ciBkaWUgVmVyc2NobMO8c3NlbHVuZyB2b24gRGF0ZW4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnS2VubndvcnRzYXR6IG9kZXIgUGZhZCB6dSBlaW5lciBEYXRlaSBkaWUgZGVuIEtlbm53b3J0c2F0eiBlbnRow6RsdC4gKEJlaSB2ZXJ3ZW5kdW5nIHZvbiBPcGVuU1NMIGlzdCBkaWVzIGRlciBLZW5ud29ydHNhdHogZsO8ciBkZW4gcHJpdmF0ZW4gU2NobMO8c3NlbCknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlciBTY2hsw7xzc2VsIGbDvHIgZGllIERhdGVudmVyc2NobMO8c3NlbHVuZyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnVmVyc2NobMO8c3NlbHRlIFNwZWljaGVydW5nIG5pY2h0IHZlcmbDvGdiYXInOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdCaXR0ZSBpbnN0YWxsaWVyZW4gU2llIGRhcyBPcGVuU1NMIE1vZHVsIG9kZXIgZGllIFBIUCBtY3J5cHQgQmlibGlvdGhlayB3ZW5uIFNpZSB2ZXJzY2hsw7xzc2VsdGUgRGF0ZW4gaW4gZGVyIERhdGVuYmFuayBzcGVpY2hlcm4gbcO2Y2h0ZW4uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ0JpdHRlIHByw7xmZW4gU2llIG9iIElocmUgUEhQIEluc3RhbGxhdGlvbiBDVVJMIHVudGVyc3TDvHR6dC4gU2llaGUgYXVjaCBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2RlL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdJbSBNZWhyc3ByYWNoZW5tb2R1cyAoTUxFKSBzdGFydGVuJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdWZXJzY2hsw7xzc2VsdW5nc2JpYmxpb3RoZWsnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ1ZlcnNjaGzDvHNzZWx1bmdzYmlibGlvdGhlayc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTC1CaWJsaW90aGVrJzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgQmlibGlvdGhlayc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2xpc3RpdDInXSA9ICdadXIgw5xiZXJtaXR0bHVuZyBkZXIgRGF0ZW4gYW4gZGFzIE1vZHVsIOKAnkxpc3RJdEV4dGVuZGVk4oCcLCBtdXNzIGVzIMO8YmVyaGF1cHQgaW5zdGFsbGllcnQgc2Vpbic7CiRsYW5nWyd0aXRsZV9saXN0aXQyX2luc3RhbmNlJ10gPSAnTGlzdEl0RXh0ZW5kZWQtSW5zdGFueic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ1ZlcmJpbmR1bmcgbWl0IEZyb250ZW5kLVVzZXItTW9kdWwnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdCaXR0ZSBpbnN0YWxsaWVyZW4gU2llIGRhcyBGcm9udGVuZC1Vc2VyLU1vZHVsLCB1bSBlaW4gRm9ybXVsYXIgdW5kIGRlc3NlbiBEYXRlbiBtaXQgZWluZW0gYmVzdGltbXRlbiBCZW51dHplciB6dSB2ZXJiaW5kZW4uJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm1cJ3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnVmVyc2NobMO8c3NlbHVuZyc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbXCdGT1JNXCddPyc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ1ZvbGxzdMOkbmRpZ2UgVVJMLCBpbmtsdXNpdmUgUHJvdG9rb2xsIHVuZCBWZXJ6ZWljaG5pc3BmYWQgKHouQi4gaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnRm9ybXVsYXItRW1wZsOkbmdlci1VUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybXVsYXJtZXRob2RlJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdGZWxkIOKAniVz4oCcIGVpbmVyIEZvcm11bGFyYWJzZW5kdW5nc3ZhcmlhYmxlIHp1d2Vpc2VuJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG9fZmllbGQnXSA9ICdGZWxkIOKAniVz4oCcIGRpZXNlbSBGZWxkIHp1d2Vpc2VuOic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnenVzw6R0emxpY2hlIERhdGVuw7xiZXJtaXR0bHVuZyc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAidXNlcj1zdGV2ZStqb2JzJmVtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdGZWxkIGluIMOcYmVybWl0dGx1bmcgZWluc2NobGllw59lbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnRGF0ZSBjb21wb25lbnQgZmllbGQgb3JkZXIgKGZvciBpbnB1dCknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIGZvcm1fYnVpbGRlciBkaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddID0gJ0Zvcm1hdDog4oCebeKAnCBmw7xyIE1vbmF0LCDigJ5k4oCcIGbDvHIgVGFnLCB1bmQg4oCeeeKAnCBmw7xyIEphaHI7IFdlcnRlIGR1cmNoIEJpbmRlc3RyaWNoZSB0cmVubmVuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdOdXIgaW4gR3J1cHBlICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0RlbSBCZW51dHplciBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdWZXJ3ZW5kZSB6dWbDpGxsaWdlIFphaGxlbiBzdGF0dCBmZXN0IHZvcmdlZ2ViZW5lcic7CiRsYW5nWyd0aXRsZV9udW1iZXJzX3RvX2dlbmVyYXRlJ10gPSAnQW56YWhsIGRlciBnZW5lcmllcnRlbiBOdW1tZXJuJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0RpZXNlcyBGZWxkIGthbm4gbGVlciBnZWxhc3NlbiB3ZXJkZW4nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVuIGbDvHIgZGllIFZvcmxhZ2UnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmVyZsO8Z2JhcmUgVmFyaWFibGVuJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAtVmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdWZXJzYW5kZGF0dW0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0lociBTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAtQWRyZXNzZSBkZXMgRm9ybXVsYXJhYnNlbmRlcnMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGRlciBGb3JtdWxhcnNlaXRlJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyLVZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWItWmVpY2hlbic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKERpZXNlcyBGZWxkIHdpcmQgYmVpIFZlcndlbmR1bmcgZGVzIFVwbG9hZHMgTW9kdWxzIGlnbm9yaWVydCknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGl2ZSBGZWxkbmFtZW4ga8O2bm5lbiB3ZWNoc2Vsd2Vpc2UgdmVyd2VuZGV0IHdlcmRlbiAoZGllcyBpc3QgaW5zYmVzb25kZXJlIGRhbm4gbsO8dHpsaWNoLCB3ZW5uIFNtYXJ0eSBQcm9ibGVtZSBtaXQgWmVpY2hlbiBhdcOfZXJoYWxiIHZvbiBBU0NJSSAzMi0xMjYgaGF0KS4gPGJyIC8+V2VubiBTaWUgZGllc2UgZGVtIEZvcm11bGFyIGhpbnp1ZsO8Z2VuLCBzaW5kIHdlaXRlcmUgRmVsZGVyIHZlcmbDvGdiYXIuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRGllcyBpc3QgZWluZSB3ZWl0ZXJlIE9wdGlvbiwgdW0gdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqIG9kZXIgJGZsZF8jX29iaiBkaWUgRmVsZHdlcnRlIGFienVmcmFnZW4gKGplZGVzIEZlbGQgZW50aMOkbHQgZWluIE9iamVrdCk6PGJyIC8+DQo8dGFibGU+DQo8dHIgY2xhc3M9XCdvZGRcJz48dGQ+bmFtZTwvdGQ+PHRkPkZlbGQtbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZlbGR0eXA8L3RkPjwvdHI+DQo8dHIgY2xhc3M9XCdvZGRcJz48dGQ+aWQ8L3RkPjx0ZD5JbnRlcm5lIEZlbGQtSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+TWVuc2NoZW4tbGVzYmFyZXIgV2VydDwvdGQ+PC90cj4NCjx0ciBjbGFzcz1cJ29kZFwnPjx0ZD52YWx1ZUFycmF5PC90ZD48dGQ+QXJyYXkgZGVyIEZlbGR3ZXJ0ZTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8ZW0+QmVpc3BpZWw6PC9lbT57JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdJbmZvcm1hdGlvbmVuIHp1ciBGb3JtYXRpZXJ1bmcgZmluZGVuIFNpZSA8YSBocmVmPSJodHRwOi8vZGUucGhwLm5ldC9tYW51YWwvZGUvZnVuY3Rpb24uZGF0ZS5waHAiPmluIGRlciBQSFAtQmVzY2hyZWlidW5nPC9hPi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRGllc2VzIEZlbGQgZW50aMOkbHQnOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ0dlYmVuIFNpZSBlaW5lIERhdGVpIGltIEZvcm1CdWlsZGVyL3RlbXBsYXRlcy8gT3JkbmVyIGFuLiBCZWkgRGF0ZWl0eXAgVFhUIHdpcmQgZGllc2VzIEZlbGQgaWdub3JpZXJ0Lic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+DQpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+DQombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4NCkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gIkJhc2ljIi48YnIgLz4NClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICJSVEYiIGFzIEZpbGUgVHlwZSBhbmQgIkFkdmFuY2VkIiBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0JlaSBUWFQgYW0gQW5mYW5nIGRlciBEYXRlaSBwbGF6aWVydC4gQmVpIFJURiB3aXJkIGRlciBQbGF0emhhbHRlciAlJUhFQURFUiUlIGluIGRlciBUZW1wbGF0ZS1EYXRlaSBlcnNldHp0Lic7CiRsYW5nWydoZWxwX2ZpbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnQmVpIFRYVCBhbSBFbmRlIGRlciBEYXRlaSBwbGF6aWVydC4gQmVpIFJURiB3aXJkIGRlciBQbGF0emhhbHRlciAlJUZPT1RFUiUlIGluIGRlciBUZW1wbGF0ZS1EYXRlaSBlcnNldHp0Lic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJ8KrIFp1csO8Y2sgenVtIEZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdFaW5lIEJlaXNwaWVsLVZvcmxhZ2UgZXJzdGVsbGVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0VpbmUgQmVpc3BpZWwtSFRNTC1Wb3JsYWdlIGVyc3RlbGxlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0VpbmUgQmVpc3BpZWwtSGVhZGVyLVZvcmxhZ2UgZXJzdGVsbGVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnRWluZSBCZWlzcGllbC1Gb290ZXItVm9ybGFnZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdFaW5lbiBCZWlzcGllbC1IZWFkZXIgZXJzdGVsbGVuJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2VpbiBUYWJ1bGF0b3ItWmVpY2hlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVm9ybGFnZSBmw7xyIGVpbmUgWmVpbGUgZGVyIGF1c2dlZ2ViZW5lbiBEYXRlaSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1ZvcmxhZ2UgZsO8ciBkZW4gSGVhZGVyIGRlciBhdXNnZWdlYmVuZW4gRGF0ZWknOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdWb3JsYWdlIGbDvHIgZGVuIEZvb3RlciBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnVm9ybGFnZSBlaW5lciB6dSB2ZXJ3ZW5kZW5kZW4gUlRGLURhdGVpJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnVm9ybGFnZSBmw7xyIEF1c2dhYmUnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ10gPSAnRWluZW4gRGF0ZWl0eXBlbiB3w6RobGVuJzsKJGxhbmdbJ3RpdGxlX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnRWluZW4gUlRGLVZvcmxhZ2VudHlwZW4gd8OkaGxlbic7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHp1ciBCZXN0w6R0aWd1bmcgZGVzIEZvcm11bGFycyc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1dlcnQgKHNpZWhlIFJlZ2lzdGVya2FydGUgRXJ3ZWl0ZXJ1bmdlbiwgd2VubiBTaWUgU21hcnR5LVRhZ3MgdmVyd2VuZGVuKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdHVtcy1Gb3JtYXQgKHNpZWhlIDxhIGhyZWY9Imh0dHA6Ly9kZS5waHAubmV0L21hbnVhbC9kZS9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PSJfYmxhbmsiPlBIUC1EYXR1bXNmb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGbDvHIgZGVuIFRleHRiZXJlaWNoIHZlcndlbmRlbiAobnVyIGluIGRlciBBZG1pbmlzdHJhdGlvbik/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnVmVyaGFsdGVuIG5hY2ggZGVtIEZvcm11bGFydmVyc2FuZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnQmVzY2hyaWZ0dW5nIGRlciDigJ5TZW5kZW7igJwtS25vcGZzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGllcmJhcmVzIEZlbGQgTnIuICVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnQXVmIGRpZXNlciBTZWl0ZSBrw7ZubmVuIFNpZSBkZW4gRm9ybXVsYXJ2ZXJzYW5kIGFucGFzc2VuLiBFcyB3aXJkIGplZG9jaCBOSUNIVCBmZXN0Z2VsZWd0LCB3aWUgZGllIHZlcnNhbmR0ZW4gRGF0ZW4gdmVyYXJiZWl0ZXQgd2VyZGVuLiBEYWbDvHIgbcO8c3NlbiBTaWUgSWhyZW0gRm9ybXVsYXIgZWluIHNlcGFyYXRlcyBGZWxkIGhpbnp1ZsO8Z2VuLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnQmVnaW5uIEphaHJlc2JlcmVpY2gnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdFbmRlIEphaHJlc2JlcmVpY2gnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBKYWhyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKE1pdCAtMSB3aXJkIGRhcyBha3R1ZWxsZSBKYWhyIGFscyBWb3JlaW5zdGVsbHVuZyB2ZXJ3ZW5kZXQpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdOYWNoZGVtIGRhcyBGb3JtdWxhciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdBbnp1emVpZ2VuZGUgQW50d29ydCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdHVtIMO8YmVybWl0dGVsdCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0dW0gZ2VwcsO8ZnQgKGR1cmNoIGRlbiBBZG1pbmlzdHJhdG9yKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0dW0gZ2VwcsO8ZnQgKGR1cmNoIGRlbiBWZXJzZW5kZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1ZlcnNhbmQtVm9ybGFnZSBhbnplaWdlbic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnV2VpdGVybGVpdGVuIGF1ZiBkaWUgU2VpdGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdEaWVzZXMgVGVtcGxhdGUgd2lyZCBhbmdlemVpZ3QsIG5hY2hkZW0gZGFzIEZvcm11bGFyIHZlcnNhbmR0IHd1cmRlLiBEaWVzZXMgVGVtcGxhdGUgd2lyZCBuaWNodCB2ZXJ3ZW5kZXQsIHVtIEUtTWFpbHMgenUgZXJ6ZXVnZW4gb2RlciBhbmRlcmUgRm9ybXVsYXItT3B0aW9uZW4gYXVzenVmw7xocmVuLiBGYWxscyBlcnfDvG5zY2h0LCBrw7ZubmVuIFNpZSBkaWVzZSBUZW1wbGF0ZXMgaW4gZGVyIOKAnmVyd2VpdGVydGVu4oCcIFJlZ2lzdGVya2FydGUgZsO8ciBkaWVzZSBGZWxkZXIgZmVzdGxlZ2VuLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnWmllbHNlaXRlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ0VyZm9yZGVydCBGZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdTb2xsIGbDvHIgZGllIEZlbGRlciBlaW4gTmFtZSBmZXN0Z2VsZWd0IHdlcmRlbj8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdFcmZvcmRlcnQgZWluZGV1dGlnZSBGZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1NvbGwgZsO8ciBkaWUgRmVsZGVyIGVpbiBlaW5kZXV0aWdlciBOYW1lIGZlc3RnZWxlZ3Qgd2VyZGVuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnVm9ybGFnZSBsYWRlbic7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdFaW5lbiBUZXh0IGbDvHIgZGVuIEtub3BmIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbiBUZXh0IGbDvHIgZGVuIEtub3BmIGzDtnNjaGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGlsZmV0ZXh0LCBkZXIgZsO8ciBkaWVzZXMgRmVsZCBhbmdlemVpZ3Qgd2lyZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdWYXJpYWJsZW4gYWxzIFphaGwgb2RlciBTdHJpbmcgaW50ZXJwcmV0aWVyZW4nOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbnNyZWloZW5mb2xnZSc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnV2VubiBtZWhyIGFscyBlaW4gRmVsZCBiZXJlY2huZXQgd2VyZGVuIG11c3MsIHdlcmRlbiBkaWUgQmVyZWNobnVuZyB2b24gZGVyIG5pZWRyaWdzdGVuIHp1ciBow7ZjaHN0ZW4gT3JkbnVuZ3NudW1tZXIgaGluIGR1cmNoZ2Vmw7xocnQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnWmVpY2hlbmtldHRlIChrZWluZSBMZWVyemVpY2hlbiB6d2lzY2hlbiBkZW4gRmVsZGVybik/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdadSBiZXJlY2huZW5kZXIgV2VydCc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQmVyZWNobmV0L1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdaZWljaGVua2V0dGUnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ1phaGwnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEYXMgRm9ybXVsYXIgaW5saW5lIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIGJlZGV1dGV0LCBkYXNzIGRhcyBGb3JtdWxhciBkZW4ge2Ntc19tb2R1bGV9LVRhZyBlcnNldHp0LCBhbmRlcmVuZmFsbHMgd2lyZCBkZXIge2NvbnRlbnR9LVRhZyBlcnNldHp0Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhcmR3ZXJ0IGbDvHIgZGFzIEZlbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0JlaSBLbGljayBhdWYgZGFzIEZlbGQgZGllIHZvcmVpbmdlc3RlbGx0ZW4gV2VydGUgZW50ZmVybmVuPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzZXMgRmVsZCwgd2VubiBkZXIgdm9yZWluZ2VzdGVsbHRlIFdlcnQgYmVpIEtsaWNrIGF1ZiBkYXMgRmVsZCBlbnRmZXJudCB3ZXJkZW4gc29sbC4gRGEgZGFmw7xyIEphdmFTY3JpcHQgdmVyd2VuZGV0IHdpcmQsIHRyaXR0IGVpbiBGZWhsZXIgYXVmLCB3ZW5uIFNpZSBpbiBkZW0gdm9yZ2VnZWJlbmVuIFRleHQgZWluZmFjaGUgQW5mw7xocnVuZ3N6ZWljaGVuICgiIG9kZXIgXCcpIHZlcndlbmRlbi4gVmVyd2VuZGVuIHNpZSBkYWhlciB0eXBvZ3JhZmlzY2gga29ycmVrdGUgQW5mw7xocnVuZ3N6ZWljaGVuICjihpIgaHR0cDovL2RlLndpa2lwZWRpYS5vcmcvd2lraS9BbmYlQzMlQkNocnVuZ3N6ZWljaGVuI0RpcmVrdGVfRWluZ2FiZV9wZXJfVGFzdGF0dXIpLiBFaW4gSmF2YVNjcmlwdC1GZWhsZXIga2FubiBhdWNoIGJlaSBhbmRlcmVuIEphdmFTY3JpcHQtdW5mcmV1bmRsaWNoZW4gWmVpY2hlbiBhdWZ0cmV0ZW4uJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRWluZSBob2NoZ2VsYWRlbmUgRGF0ZWkgbmFjaCBkZXIgVmVyYXJiZWl0dW5nIChFLU1haWwtVmVyc2FuZCkgdm9tIFNlcnZlciBsw7ZzY2hlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YVNjcmlwdCBmw7xyIGRhcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ0VpbmVuIHZvbGxzdMOkbmRpZ2VuIEphdmFTY3JpcHQtQXVmcnVmIGVpbmdlYmVuLCBlaW5zY2hsaWXDn2xpY2ggZGVzIEVyZWlnbmlzc2VzLCBhdWYgZGFzIHJlYWdpZXJ0IHdlcmRlbiBzb2xsLCB6LiBCLiA8Y29kZT5vbmNsaWNrPSJ5b3VyZm4oKSI8L2NvZGU+JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YVNjcmlwdCBmw7xyIGRlbiBGb3JtdWxhcnZlcnNhbmQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ0VpbmVuIHZvbGxzdMOkbmRpZ2VuIEphdmFzY3JpcHQtQXVmcnVmIGVyc3RlbGxlbiwgZWluc2NobGllw59saWNoIGRlcyBFcmVpZ25pc3NlcywgYXVmIGRhcyByZWFnaWVydCB3ZXJkZW4gc29sbCwgei4gQi4gPGNvZGU+b25jbGljaz0ieW91cmZuKCkiPC9jb2RlPi48YnIgLz5EaWVzIGZ1bmt0aW9uaWVydCBtw7ZnbGljaGVyd2Vpc2UgbmljaHQgcmljaHRpZywgd2VubiBkYXMgU2ljaGVyaGVpc3NrcmlwdCB2ZXJ3ZW5kZXQgd2lyZC4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdXw6RobGVuIFNpZSBoaWVyIGtlaW5lIHp1ZsOkbGxpZ2UgQWRyZXNzZSDigJMgZWluaWdlIEhvc3RpbmctQW5iaWV0ZXIgdmVyc2VuZGVuPGJyIC8+a2VpbmUgRS1NYWlscywgd2VubiBkZXIgRG9tYWlubmFtZSBuaWNodCBtaXQgZGVtIGFrdHVlbGxlbjxiciAvPkhvc3RuYW1lbiDDvGJlcmVpbnN0aW1tdCAodmVyd2VuZGVuIFNpZSB6dW0gQmVpc3BpZWwgZXR3YXMgd2llIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0JlbsO2dGlnZW4gU2llIG5vY2ggbWVociBGZWxkdHlwZW4/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1p1IHZpZWxlIHZlcndpcnJlbmRlIEZlbGR0eXBlbj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdJbiBkZW4gZXJ3ZWl0ZXJ0ZW4gTW9kdXMgd2VjaHNlbG4nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdJbiBkZW4gZWluZmFjaGVuIE1vZHVzIHdlY2hzZWxuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RhdGVpIGluIGZvbGdlbmRlbSBWZXJ6ZWljaG5pcyBzcGVpY2hlcm4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdGw7xyIGRpZXNlcyBWZXJ6ZWljaG5pcyBtdXNzIElociBXZWJzZXJ2ZXIgZGllIFNjaHJlaWJiZXJlY2h0aWd1bmcgaGFiZW48YnIgLz4gU2V0emVuIFNpZSBkaWVzZSBiZWkgQmVkYXJmIHZpYSBjaG1vZCA3NzcuPGJyIC8+QXXDn2VyZGVtIHNvbGx0ZW4gU2llIGRhcmF1ZiBhY2h0ZW4sIGRhc3Mga2VpbmUgUEhQLVZlcnplaWNobmlzLUJlc2NocsOkbmt1bmdlbiBiZXN0ZWhlbi4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ1plaWNoZW4sIHdlbGNoZXMgZGllIFplaWxlbnVtYnLDvGNoZSBlcnNldHplbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xhc3NlbiBTaWUgZGllc2VzIEZlbGQgbGVlciwgd2VubiBhbGxlIFplaWxlbnVtYnLDvGNoZSBtaXQgYXVzZ2VnZWJlbiB3ZXJkZW4gc29sbGVuJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdEZW0gQmVudXR6ZXIgZWluZSBLb3BpZSBkZXMgRm9ybXVsYXJzIHNjaGlja2VuPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIGbDvHIgZGFzIEtvbnRyb2xsa8Okc3RjaGVuIChmYWxscyBkdXJjaCBkZW4gQmVudXR6ZXIgYXVzZ2V3w6RobHQpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnTWlyIGVpbmUgS29waWUgZGVzIEZvcm11bGFycyBzY2hpY2tlbic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnRGFzIMOcYmVyc2NocmVpYmVuIGRlcyBCZXRyZWZmcyBlcmxhdWJlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnRGFtaXQgZXJsYXViZW4gU2llLCBkYXNzIGRlciBpbSBMaXN0ZW5mZWxkIGZlc3RnZWxlZ3RlIEJldHJlZmYgZGVyIEUtTWFpbCDDvGJlcnNjaHJpZWJlbiB3ZXJkZW4ga2Fubi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdBbnplaWdlbMOkbmdlJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW1hbGUgQW50d29ydGzDpG5nZSc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnRWluZ2FiZSB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU29sbGVuIGJlaSBkZXIgS2VubndvcnRlaW5nYWJlIFN5bWJvbGUgYW5zdGF0dCBlaW5mYWNoZW0gVGV4dCBhbmdlemVpZ3Qgd2VyZGVuPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ0RhcyBLZW5ud29ydCBzdGltbXQgbmljaHQgbWl0ICVzIMO8YmVyZWluISc7CiRsYW5nWydiYWNrX3RvcCddID0gJ1p1csO8Y2sgenVyIEZvcm1CdWlsZGVyLUhhdXB0c2VpdGUnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXZWxjaGUgRS1NYWlsLUhlYWRlciBzb2xsZW4gZGllc2UgRWluZ2FiZSBlcmhhbHRlbj8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ0xlZXJ6ZWljaGVuIG5pY2h0IGFscyBnw7xsdGlnZW4gRWludHJhZyBha3plcHRpZXJlbic7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdCZWkgUGZsaWNodGZlbGRlcm4gbXVzcyBkZXIgQmVudXR6ZXIgYWxwaGFudW1lcmlzY2hlIFplaWNoZW4gc3RhdHQgTGVlcnplaWNoZW4gZWluZ2ViZW4uJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1NpZSBtw7xzc2VuIGVpbmVuIGRlciDigJ5TcGVpY2hlcm7igJwtS27DtnBmZSB2ZXJ3ZW5kZW4gdW0gZGllIG5ldWUgRmVsZHJlaWhlbmZvbGdlIHp1IMO8YmVybmVobWVuLic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ0ltIFRleHQgSFRNTDUtUGxhdHpoYWx0ZXIgYW5zdGF0dCBKYXZhc2NyaXB0IHZlcndlbmRlbic7CiRsYW5nWyd0aXRsZV9lbWFpbF9jY19hZGRyZXNzJ10gPSAnQWRyZXNzZShuKSwgYW4gZGllIGVpbmUgS29waWUgZ2VzZW5kZXQgd2VyZGVuIHNvbGwuIE1laHJlcmUgQWRyZXNzZW4gZHVyY2ggS29tbWFzIHRyZW5uZW4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9iY2MnXSA9ICdCbGluZGtvcGllIHNlbmRlbic7CiRsYW5nWyd0aXRsZV9zZW5kX3VzaW5nJ10gPSAnRS1NYWlsLUFkcmVzc2llcnVuZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b19tb2RpZnknXSA9ICdFLU1haWwtRmVsZCB6dW0gaGluenVmw7xnZW4gdm9uIENDLUFkcmVzc2VuJzsKJGxhbmdbJ3RpdGxlX21vZGlmaWVzJ10gPSAnS29waWUgKENDKSB6dSDigJ4lc+KAnCBoaW56dWbDvGdlbic7CiRsYW5nWydiY2NfZmllbGQnXSA9ICdFbXBmw6RuZ2VyIGVpbmVyIEJsaW5ka29waWUgKEJDQyknOwokbGFuZ1snY2NfZmllbGQnXSA9ICdFbXBmw6RuZ2VyIGVpbmVyIEtvcGllIChDQyknOwokbGFuZ1sndG9fZmllbGQnXSA9ICdOb3JtYWxlIEVtcGbDpG5nZXInOwokbGFuZ1snYmNjJ10gPSAnQmxpbmRrb3BpZSc7CiRsYW5nWydjYyddID0gJ0tvcGllJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdEYXMgQ29tcGFueURpcmVjdG9yeS1Nb2R1bCBpc3QgbmljaHQgdmVyZsO8Z2JhciEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmllbWFscyc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdEZW0gQmVudXR6ZXIgZWluZSBBdXN3YWhsIGFuYmlldGVuIChLb250cm9sbGvDpHN0Y2hlbiknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0ltbWVyJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnRS1NYWlsLUFkcmVzc2Ug4oCeVm9u4oCcJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJ0UtTWFpbC1BZHJlc3NlIOKAnkFudHdvcnQgYW7igJwnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCZWlkZSBFLU1haWwtQWRyZXNzZW4gKOKAnlZvbuKAnCAmIOKAnkFudHdvcnQgYW7igJwpJzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ0F1ZmtsYXBwbWVuw7wnOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnQXVzd2FobGxpc3RlIChlaW5mYWNoKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ0F1c3dhaGxsaXN0ZSAobWVocmZhY2gpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW9rbm9wZi1HdXBwZSc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdIaW53ZWlzOiBBdXNnYWJlIGltIEZvcm1hdDxici8+IkZpcm1lbm5hbWUiPT4iV2VydCInOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnV8OkaGxlbiBTaWUgZWluZSBLYXRlZ29yaWUgKG9kZXIgbWVocmVyZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uXCdzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnV8OkaGxlIEJlbnV0emVyZWluZ2FiZSc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoQWxzbyB0YWtlIGEgbG9vayBhdCB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiBpZiB5b3Ugd2FudCB0byBzZXQgYSBVRFQgZm9yIGZvcm0gdmFsaWRhdGlvbiknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ0VuZGphaHInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHktRGF0ZW4gb2RlciAtTG9naWssIGRpZSBtaXQgZGllc2VtIEZlbGQgZ2VzZW5kZXQgd2VyZGVuIHNvbGxlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnQ2FuIGJlIHNtYXJ0eSBkYXRhLCBqYXZhc2NyaXB0LCBvciBzb21lIG90aGVyIGRhdGEgeW91IHdhblwndCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdMYWJlbHMgZWluc2NobGllc3Nlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdEaWVzZXMgRmVsZCBtaXQgc2VpbmVuIEdlc2Nod2lzdGVybiB2ZXJrbsO8cGZlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdFwncyBzaWJsaW5nLiBNYWtlcyBwb3NzaWJsZSBjb250cm9sbGluZyB0aGlzIGZpZWxkIHdpdGggc2VsZWN0ZWQgc2libGluZyBjb250cm9scy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdWZXJzdGVja2UgS29udHJvbGxidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ0hpbndlaXMnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnRWludHLDpGdlIGRlbSBTdWNoLU1vZHVsIHp1Z8OkbmdsaWNoIG1hY2hlbic7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChhdcOfZXJoYWxiIGRlcyBXZWItV3VyemVsdmVyemVpY2huaXNzZXMpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnVmVyw6RuZGVyYmFyIGltIEZvcm1Ccm93c2VyLUFkbWluPyc7CiRsYW5nWyd0aXRsZV9hY3RpdmVfb25seSddID0gJ1NvbGxlbiBudXIgYWt0aXZlIEJlbnV0ZXIgaW5rbHVkaWVydCB3ZXJkZW4/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdEZXIgYmVudXR6ZXJkZWZpbmllcnRlIFRhZyBoYXQgZWluZW4gRmVobGVyIHp1csO8Y2tnZWdlYmVuJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdEZXIgYmVudXR6ZXJkZWZpbmllcnRlIFRhZyAlcyBoYXQgZWluZW4gRmVobGVyIHp1csO8Y2tnZWdlYmVuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkRhcyBDYXRhbG9nZXItTW9kdWwgc2NoZWludCBuaWNodCBpbnN0YWxsaWVydCBvZGVyIGFrdGl2IHp1IHNlaW4uPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOVU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhcmR2b3JsYWdlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJlbGxlbnZvcmxhZ2UsIFRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbGVudm9ybGFnZSwgVGl0ZWwgb2Jlbic7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdWb3JsYWdlIHZvbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIElocmUgVm9ybGFnZSBtaXQgZGVyIGF1c2dld8OkaGx0ZW4gVm9ybGFnZSDDvGJlcnNjaHJlaWJlbj8gKEF1Y2gsIHdlbm4gU2llIGRpZXMgYmVzdMOkdGlnZW4sIG3DvHNzZW4gU2llIGRpZSDDhG5kZXJ1bmcgc3BlaWNoZXJuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWhsZXIgYmVpbSBCZXJlY2huZW4gdm9uIOKAniVz4oCcLic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnS2VpbmUgSW5mb3JtYXRpb25lbiDDvGJlciBkZW4gSFRUUF9SRUZFUkVSIHZlcmbDvGdiYXIgKHdhaHJzY2hlaW5saWNoIGF1ZmdydW5kIGRlciB2ZXJ3ZW5kZXRlbiBFLU1haWwtUHLDvGZ1bmcpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdGZWhsZXIgYmVpbSDDnGJlcnByw7xmZW4gZGVyIFBhcmFtZXRlci4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEUtTWFpbCBrb3JyZWt0IGtvcGllcnQgd3VyZGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdGZWhsZXIgYmVpIGRlciDDnGJlcnByw7xmdW5nLiBCaXR0ZSBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIFVSTCBhdXMgSWhyZXIgRS1NYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyIMOcYmVycHLDvGZ1bmcuIERpZXNlcyBGb3JtdWxhciBlbnRow6RsdCBrZWluIEZlbGQgenVyIMOcYmVycHLDvGZ1bmcgZGVyIEUtTWFpbCEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdIaW56dWbDvGdlbiwgQmVhcmJlaXRlbiB1bmQgVmVyd2FsdGVuIHZvbiBpbnRlcmFrdGl2ZW4gRm9ybXVsYXJlbic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2FkbWluJ10gPSAnU2llIG3DvHNzZW4gZWluZW4gQWRtaW5pc3RyYXRvciBhbmdlYmVuJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKS4gSWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLiBJZiB5b3UgdXNlIENvbXB1dGVkL1BIUCBldmFsdWF0aW9uLCB5b3UgY2FuDQp1c2UgYW55IGZ1bmN0aW9uIHlvdSB3YW50LCBidXQgeW91IG5lZWQgdG8gcXVvdGUgdGhpbmdzIChzdWJzdGl0dXRpb24gb2NjdXJzIGJlZm9yZSBldmFsdWF0aW9uKSwgZS5nLiwgc3Vic3RyKFwnJGZsZF8yMlwnLDAsMikuXCckZmxkXzIzXCcuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ01vZHVsLVNjaG5pdHRzdGVsbGUgdmVyd2VuZGVuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4NClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT1cJ1wnfQ0KCXthc3NpZ24gdmFyPUNkIHZhbHVlPVwnXCd9DQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0NCgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnOjpcJ3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCcgY2hlY2tlZD0iY2hlY2tlZCJcJ30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+DQoJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9InskZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9IiBuYW1lPSJ7JEZCaWR9W10iIHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgwqN7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0iY2F0IiBzdW1tYXJ5dGVtcGxhdGU9IllvdXJfRkJfdGVtcGxhdGUifTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnSWhyZW4gVGFnIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTcOkcnonOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV6ZW1iZXInOwokbGFuZ1snQUYnXSA9ICdBZmdoYW5pc3Rhbic7CiRsYW5nWydBWCddID0gJ0FsYW5kIEluc2Vsbic7CiRsYW5nWydBTCddID0gJ0FsYmFuaWVuJzsKJGxhbmdbJ0RaJ10gPSAnQWxnZXJpZW4nOwokbGFuZ1snQVMnXSA9ICdBbWVyaWthbmlzY2ggU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmt0aXMnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIHVuZCBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5pZW4nOwokbGFuZ1snQU0nXSA9ICdBcm1lbmllbic7CiRsYW5nWydBVyddID0gJ0FydWJhJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGllbic7CiRsYW5nWydBVCddID0gJ8OWc3RlcnJlaWNoJzsKJGxhbmdbJ0FaJ10gPSAnQXNlcmJhaWRzY2hhbic7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluJzsKJGxhbmdbJ0JCJ10gPSAnQmFyYmFkb3MnOwokbGFuZ1snQkQnXSA9ICdCYW5nbGFkZXNjaCc7CiRsYW5nWydCWSddID0gJ1dlacOfcnVzc2xhbmQnOwokbGFuZ1snQkUnXSA9ICdCZWxnaWVuJzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmllbic7CiRsYW5nWydCQSddID0gJ0Jvc25pZW4gdW5kIEhlcnplZ293aW5hJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0LUluc2VsJzsKJGxhbmdbJ0JSJ10gPSAnQnJhc2lsaWVuJzsKJGxhbmdbJ0lPJ10gPSAnQnJpdGlzY2hlcyBUZXJyaXRvcml1bSBpbSBJbmRpc2NoZW4gT3plYW4nOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmllbic7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGknOwokbGFuZ1snS0gnXSA9ICdLYW1ib2RzY2hhJzsKJGxhbmdbJ0NNJ10gPSAnS2FtZXJ1bic7CiRsYW5nWydDQSddID0gJ0thbmFkYSc7CiRsYW5nWydDViddID0gJ0thcCBWZXJkZSc7CiRsYW5nWydLWSddID0gJ0NheW1hbi1JbnNlbG4nOwokbGFuZ1snQ0YnXSA9ICdaZW50cmFsYWZyaWthbmlzY2hlIFJlcHVibGlrJzsKJGxhbmdbJ1REJ10gPSAnVHNjaGFkJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGUnOwokbGFuZ1snQ04nXSA9ICdDaGluYSc7CiRsYW5nWydDWCddID0gJ1dlaWhuYWNodHNpbnNlbG4nOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSW5zZWxuJzsKJGxhbmdbJ0NPJ10gPSAnS29sdW1iaWVuJzsKJGxhbmdbJ0tNJ10gPSAnQ29tb3Jvcyc7CiRsYW5nWydDRyddID0gJ0tvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnS29uZ28sIERlbW9rcmF0aXNjaGUgUmVwdWJsaWsnOwokbGFuZ1snQ0snXSA9ICdPc3Rlcmluc2Vsbic7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EnOwokbGFuZ1snQ0knXSA9ICdJdm9pcmUgKEVsZmVuYmVpbmvDvHN0ZSknOwokbGFuZ1snSFInXSA9ICdLcm9hdGllbiAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnS3ViYSc7CiRsYW5nWydDWSddID0gJ1p5cGVybic7CiRsYW5nWydDWiddID0gJ1RzY2hlY2hpc2NoZSBSZXB1Ymxpayc7CiRsYW5nWydESyddID0gJ0TDpG5lbWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJzsKJGxhbmdbJ0RNJ10gPSAnRG9taW5pY2EnOwokbGFuZ1snRE8nXSA9ICdEb21pbmlrYW5pc2NoZSBSZXB1Ymxpayc7CiRsYW5nWydUUCddID0gJ8OWc3RsaWNoZXIgVGltb3InOwokbGFuZ1snRUMnXSA9ICdFY3VhZG9yJzsKJGxhbmdbJ0VHJ10gPSAnw4RneXB0ZW4nOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvcic7CiRsYW5nWydHUSddID0gJ8OEcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydFUiddID0gJ0VyaXRyZWEnOwokbGFuZ1snRUUnXSA9ICdFc3RsYW5kJzsKJGxhbmdbJ0VUJ10gPSAnw4R0aGlvcGllbic7CiRsYW5nWydGSyddID0gJ0ZhbGtsYW5kLUluc2VsbiAoTWFsdmluYXMpJzsKJGxhbmdbJ0ZPJ10gPSAnRmFyb2UgSW5zZWxuJzsKJGxhbmdbJ0ZKJ10gPSAnRmlqaSc7CiRsYW5nWydGSSddID0gJ0Zpbm5sYW5kJzsKJGxhbmdbJ0ZSJ10gPSAnRnJhbmtyZWljaCc7CiRsYW5nWydGWCddID0gJ0ZyYW5rcmVpY2gnOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSc7CiRsYW5nWydQRiddID0gJ0ZyYW56w7ZzaXNjaCBQb2x5bmVzaWVuJzsKJGxhbmdbJ1RGJ10gPSAnRnJhbnrDtnNpc2NoZSBTw7xkbGljaGUgVGVycml0b3JpZW4nOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uIChNYXplZG9uaWVuKSc7CiRsYW5nWydHQSddID0gJ0dhYnVuJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmlhJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpZW4nOwokbGFuZ1snREUnXSA9ICdEZXV0c2NobGFuZCc7CiRsYW5nWydHSCddID0gJ0doYW5hJzsKJGxhbmdbJ0dJJ10gPSAnR2licmFsdGFyJzsKJGxhbmdbJ0dCJ10gPSAnR3Jvw59icml0YW5uaWVuIChVSyknOwokbGFuZ1snR1InXSA9ICdHcmllY2hlbmxhbmQnOwokbGFuZ1snR0wnXSA9ICdHcsO2bmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEnOwokbGFuZ1snR04nXSA9ICdHdWluZWEnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hUJ10gPSAnSGFpdGknOwokbGFuZ1snSE0nXSA9ICdIw7ZydGVuIHVuZCBNY0RvbmFsZCBJbnNlbG4nOwokbGFuZ1snSE4nXSA9ICdIb25kdXJhcyc7CiRsYW5nWydISyddID0gJ0hvbmdrb25nJzsKJGxhbmdbJ0hVJ10gPSAnVW5nYXJuJzsKJGxhbmdbJ0lTJ10gPSAnSXNsYW5kJzsKJGxhbmdbJ0lOJ10gPSAnSW5kaWVuJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb25lc2llbic7CiRsYW5nWydJUiddID0gJ0lyYW4nOwokbGFuZ1snSVEnXSA9ICdJcmFrJzsKJGxhbmdbJ0lFJ10gPSAnSXJsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYWVsJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4nOwokbGFuZ1snSVQnXSA9ICdJdGFsaWVuJzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5JzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWlrYSc7CiRsYW5nWydKUCddID0gJ0phcGFuJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuaWVuJzsKJGxhbmdbJ0taJ10gPSAnS2FzYWNoc3Rhbic7CiRsYW5nWydLRSddID0gJ0tlbmlhJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGknOwokbGFuZ1snS1AnXSA9ICdOb3Jka29yZWEnOwokbGFuZ1snS1InXSA9ICdTw7xka29yZWEnOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQnOwokbGFuZ1snS0cnXSA9ICdLaXJnaXNpc3Rhbic7CiRsYW5nWydMQSddID0gJ0xhb3MnOwokbGFuZ1snTFYnXSA9ICdMZXR0bGFuZCc7CiRsYW5nWydMQiddID0gJ0xpYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpZW4nOwokbGFuZ1snTFknXSA9ICdMaWJ5ZW4nOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvJzsKJGxhbmdbJ0xUJ10gPSAnTGl0YXVlbic7CiRsYW5nWydMVSddID0gJ0x1eGVtYnVyZyc7CiRsYW5nWydNTyddID0gJ01hY2F1JzsKJGxhbmdbJ01HJ10gPSAnTWFkYWdhc2thcic7CiRsYW5nWydNVyddID0gJ01hbGF3aSc7CiRsYW5nWydNWSddID0gJ01hbGF5c2lhJzsKJGxhbmdbJ01WJ10gPSAnTWFsZGl2ZW4nOwokbGFuZ1snTUwnXSA9ICdNYWxpJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEnOwokbGFuZ1snTUgnXSA9ICdJbnNlbG4gdm9uIE1hcnNjaGFsbCc7CiRsYW5nWydNUSddID0gJ01hcnRpbmlxdWUnOwokbGFuZ1snTVInXSA9ICdNYXVyZXRhbmllbic7CiRsYW5nWydNVSddID0gJ01hdXJpdGl1cyc7CiRsYW5nWydZVCddID0gJ01heW90dGUnOwokbGFuZ1snTVgnXSA9ICdNZXhpa28nOwokbGFuZ1snRk0nXSA9ICdNaWtyb25lc2llbic7CiRsYW5nWydNQyddID0gJ01vbmFrbyc7CiRsYW5nWydNRCddID0gJ01vbGRhd2llbic7CiRsYW5nWydNQSddID0gJ01hcm9ra28nOwokbGFuZ1snTU4nXSA9ICdNb25nb2xlaSc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQnOwokbGFuZ1snTVonXSA9ICdNb3NhbWJpcXVlJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hcic7CiRsYW5nWydOQSddID0gJ05hbWliaWVuJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUnOwokbGFuZ1snTlAnXSA9ICdOZXBhbCc7CiRsYW5nWydOTCddID0gJ05pZWRlcmxhbmRlJzsKJGxhbmdbJ0FOJ10gPSAnTmllZGVybMOkbmRpc2NoZSBBbnRpbGxlbic7CiRsYW5nWydOVCddID0gJ05ldXRyYWxlIFpvbmUnOwokbGFuZ1snTkMnXSA9ICdOZXVrYWxlZG9uaWVuJzsKJGxhbmdbJ05aJ10gPSAnTmV1c2VlbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmlrYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGstSW5zZWwnOwokbGFuZ1snTVAnXSA9ICdOw7ZyZGxpY2hlIE1hcmlhbmVuLUluc2Vsbic7CiRsYW5nWydOTyddID0gJ05vcndlZ2VuJzsKJGxhbmdbJ09NJ10gPSAnT21hbic7CiRsYW5nWydQSyddID0gJ1Bha2lzdGFuJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUnOwokbGFuZ1snUFMnXSA9ICdQYWzDpHN0aW5lbnNpc2NoZXMgVGVycml0b3JpdW0nOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YS1OZXVndWluZWEnOwokbGFuZ1snUFknXSA9ICdQYXJhZ3VheSc7CiRsYW5nWydQRSddID0gJ1BlcnUnOwokbGFuZ1snUEgnXSA9ICdQaGlsaXBwaW5lbic7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BMJ10gPSAnUG9sZW4nOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCc7CiRsYW5nWydQUiddID0gJ1B1ZXJ0byBSaWNvJzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXInOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uJzsKJGxhbmdbJ1JPJ10gPSAnUnVtw6RuaWVuJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lzY2hlIEbDtmRlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUnVhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSB1bmQgUy4gU2FuZHdpY2ggaW5zZWxuJzsKJGxhbmdbJ0tOJ10gPSAnU2FpbnQgS2l0dHMgdW5kIE5ldmlzJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEnOwokbGFuZ1snVkMnXSA9ICdTYWludCBWaW5jZW50ICYgR3JlbmFkaW5lbic7CiRsYW5nWydXUyddID0gJ1NhbW9hJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIHVuZCBQcmluY2lwZSc7CiRsYW5nWydTQSddID0gJ1NhdWRpLUFyYWJpZW4nOwokbGFuZ1snU04nXSA9ICdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ10gPSAnU2V5Y2hlbGxlbic7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTRyddID0gJ1NpbmdhcHVyJzsKJGxhbmdbJ1NJJ10gPSAnU2xvd2VuaWVuJzsKJGxhbmdbJ1NLJ10gPSAnU2xvd2FraXNjaGUgUmVwdWJsaWsnOwokbGFuZ1snU0InXSA9ICdTb2xvbW9uLUluc2Vsbic7CiRsYW5nWydTTyddID0gJ1NvbWFsaWEnOwokbGFuZ1snWkEnXSA9ICdTw7xkYWZyaWthJzsKJGxhbmdbJ0VTJ10gPSAnU3Bhbmllbic7CiRsYW5nWydMSyddID0gJ1NyaSBMYW5rYSc7CiRsYW5nWydTSCddID0gJ1N0LiBIZWxlbmEnOwokbGFuZ1snUE0nXSA9ICdTdC4gUGllcnJlIHVuZCBNaXF1ZWxvbic7CiRsYW5nWydTRCddID0gJ1N1ZGFuJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICYgSmFuIE1heWVuIEluc2Vsbic7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1NjaHdlZGVuJzsKJGxhbmdbJ0NIJ10gPSAnU2Nod2Vpeic7CiRsYW5nWydTWSddID0gJ1N5cmllbic7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhZHNjaGlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW5zYW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIHVuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5lc2llbic7CiRsYW5nWydUUiddID0gJ1TDvHJrZWknOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4nOwokbGFuZ1snVEMnXSA9ICdUw7xya2VuIHVuZCBDYWljb3MgSW5zZWxuJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1VHJ10gPSAnVWdhbmRhJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluZSc7CiRsYW5nWydBRSddID0gJ1ZlcmVpbmlndGUgQXJhYmlzY2hlIEVtaXJhdGUnOwokbGFuZ1snVUsnXSA9ICdWZXJlaW5pZ3RlcyBLw7ZuaWdyZWljaCc7CiRsYW5nWydVUyddID0gJ1ZlcmVpbmlndGUgU3RhYXRlbiB2b24gQW1lcmlrYSc7CiRsYW5nWydVTSddID0gJ0FiZ2VsZWdlbmVuIGtsZWluZSAgVVMtSW5zZWxuJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSc7CiRsYW5nWydVWiddID0gJ1VzYmVraXN0YW4nOwokbGFuZ1snVlUnXSA9ICdWYW51YXR1JzsKJGxhbmdbJ1ZBJ10gPSAnU3RhYXQgVmF0aWthbnN0YWR0JzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldG5hbSc7CiRsYW5nWydWRyddID0gJ0p1bmdmZXJuLUluc2VsbiAoQnJpdGlzY2gpJzsKJGxhbmdbJ1ZJJ10gPSAnSnVuZ2Zlcm4tSW5zZWxuIChVLlMuKSc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyB1bmQgRnV0dW5hIEluc2Vsbic7CiRsYW5nWydFSCddID0gJ1dlc3RzYWhhcmEnOwokbGFuZ1snWUUnXSA9ICdKZW1lbic7CiRsYW5nWydZVSddID0gJ0p1Z29zbGF3aWVuJzsKJGxhbmdbJ1pNJ10gPSAnU2FtYmlhJzsKJGxhbmdbJ1pXJ10gPSAnU2ltYmFid2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0JlaSBkZXIgVmVyYXJiZWl0dW5nIGRlcyB2ZXJzYW5kdGVuIEZvcm11bGFycyBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gVmVyc2FuZDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyIMOcYmVyZ2FiZSBkZXIgRGF0ZWkgYW4gZGFzIFVwbG9hZHMtTW9kdWw6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0tvbm50ZSBkYXMgVXBsb2Fkcy1Nb2R1bCBuaWNodCBmaW5kZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0ZlaGxlciBiZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWkgJXMgKHRlbXBvcsOkcmVyIE5hbWUgJXMgZGVzIFR5cHMgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRmVobGVyOiBEYXRlaSBrb25udGUgbmljaHQgZ2VzcGVycnQgd2VyZGVuLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBuaWNodCBhdXNnZXfDpGhsdCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogYXVzZ2V3w6RobHQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyLVZlcnNhbmQnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RGllIEUtTWFpbC1Wb3JsYWdlIHd1cmRlIG5vY2ggbmljaHQgZmVzdGdlbGVndCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IEtvbm50ZSBkYXMgZXJmb3JkZXJsaWNoZSBDTVNNYWlsZXItTW9kdWwgbmljaHQgZmluZGVuISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdCZW51dHplcmdlcHLDvGZ0ZSDDnGJlcm1pdHRsdW5nICVzIHZvbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQXVzZsO8aHJlbiwgd2VubiBlaW4gRm9ybXVsYXIgbWl0IGRlbSBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGJlaW0gVmVyc2FuZCBlaW5lcyBGb3JtQnVpbGRlci1Gb3JtdWxhcnMgZWluIEZlaGxlciBhdWZnZXRyZXRlbiBpc3QnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbiBGb3JtQnVpbGRlci1Gb3JtdWxhciBhbmdlemVpZ3Qgd3VyZGUnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkF1c2bDvGhyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBkZW0gRm9ybUJ1aWxkZXIgdmVyc2FuZHQgd3VyZGUuPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gZGVyIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGRpZSBpbnRlcm5lIEZvcm11bGF0LUlEIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSB2ZXJ3ZW5kZXQgZWluZW4gdm9yZ2VnZWJlbmVuIFdlcnQgZsO8ciBlaW4gZmVzdGdlbGVndGVzIEZlbGQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkF1c2bDvGhyZW4sIHdlbm4gYmVpbSBWZXJzYW5kIGVpbmVzIEZvcm1CdWlsZGVyLUZvcm11bGFycyBlaW4gRmVobGVyIGF1ZmdldHJldGVuIGlzdDwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGRpZSBpbnRlcm5lIEZvcm11bGFyLUlEIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIGVpbmUgTGlzdGUgYWxsZXIgYmVrYW5udGUgRmVobGVyIChzdHJpbmcpPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+QXVzZsO8aHJlbiwgd2VubiBlaW4gRm9ybUJ1aWxkZXItRm9ybXVsYXIgYW5nZXplaWd0IHd1cmRlPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gZGllIGludGVybmUgRm9ybXVsYXItSUQgKGludCk8L2xpPg0KPC91bD4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnQW50d29ydC1JRC4gV2lyZCB2b20gRm9ybUJyb3dzZXItTW9kdWwgdmVyd2VuZGV0JzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdTdGFuZGFyZHdlcnRlIGRlciBGZWxkZXI7IHNpZWhlIE1vZHVsLUhpbGZlJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZlbGQtSUQgZsO8ciBpbnRlcm5lIE9wZXJhdGlvbmVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtdWxhcm5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxhci1JRCBmw7xyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdBbGxnZW1laW5lIFBhcmFtZXRlciBmw7xyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+U3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBCZXJlY2h0aWd1bmcg4oCeTW9kaWZ5IEZvcm1z4oCcIA0KZsO8ciBkaWUgQmVudXR6ZXIgZ2VzZXR6dCBpc3QsIHdlbGNoZSBkaWUgRmVlZGJhY2stRm9ybXVsYXJlIGFkbWluaXN0cmllcmVuIHdlcmRlbi4gU29sbGVuIGRpZSBXZXJ0ZSBhdXMgZGVtIEZvcm11bGFyIHBlciBFLU1haWwgdmVyc2FuZHQgd2VyZGVuLCANCnN0ZWxsZW4gU2llIGViZW5mYWxscyBzaWNoZXIsIGRhc3MgZGllIEtvbmZpZ3VyYXRpb24gZW50c3ByZWNoZW5kIGFrdHVhbGlzaWVydCB3dXJkZS48L3A+DQo8cD5BQ0hUVU5HOiBXw6RocmVuZCBkZXIgQmVhcmJlaXR1bmcgZGFyZiBkYXMgamV3ZWlsaWdlIEZvcm11bGFyIA0KQmVhcmJlaXR1bmcgbmljaHQgYWt0aXYgc2VpbiAoPW51dHpiYXIgZsO8ciBkaWUgR8Okc3RlIElocmVyIEhvbWVwYWdlKS4gU2llIHNvbGx0ZW4gZGFoZXIgZGVuIEZvcm11bGFyLVRhZyBlcnN0IGRhbm4gaW4gZWluZSBha3RpdmUgSW5oYWx0c3NlaXRlIGVpbmbDvGdlbiwgd2VubiBkYXMgRm9ybXVsYXIga29tcGxldHQgZXJzdGVsbHQgaXN0LiBBbmRlcmVuZmFsbHMga2FubiBlcyB6dSBmZWhsZXJoYWZ0ZW4gRXJnZWJuaXNzZW4ga29tbWVuLjwvcD4NCjxwPkhpbndlaXM6IERpZXNlIFZlcnNpb24gdW50ZXJzdMO8dHp0IGtlaW5lIHBhcmFsbGVsZSBCZWFyYmVpdHVuZyB2b24gRm9ybXVsYXJlbiBkdXJjaCBtZWhyZXJlIEFkbWluaXN0cmF0b3Jlbi4gU3RlbGxlbiBTaWUgZGFoZXIgc2ljaGVyLCBkYXNzIGVpbiBGb3JtdWxhciBqZXdlaWxzIG51ciB2b24gZWluZW0gQWRtaW5pc3RyYXRvciBiZWFyYmVpdGV0IHdpcmQuPC9wPic7CiRsYW5nWydoZWxwX2NvbnRlbnRfZ2VuZXJhbCddID0gJzxoMz5Nb2R1bGJlc2NocmVpYnVuZzwvaDM+DQo8cD5EYXMgRm9ybUJ1aWxkZXItTW9kdWwgZXJsYXVidCBJaG5lbiwgRmVlZGJhY2stRm9ybXVsYXJlIHp1IGVyc3RlbGxlbiwgZXJ3ZWl0ZXJ0IHVtIGRpZSBGw6RoaWdrZWl0LCBlaW5nZWdlYmVuZSBEYXRlbiBhdWNoIGluIGVpbmVyIERhdGVuYmFuayBhYmxlZ2VuIHp1IGvDtm5uZW4uIFp1c2FtbWVuIG1pdCBkZW0gRm9ybUJyb3dzZXItTW9kdWwga8O2bm5lbiBTaWUgZWluc2V0emVuLCB1bSBlaW5mYWNoZSBEYXRlbmJhbmstQW53ZW5kdW5nZW4gc2VsYnN0IHp1IGVyc3RlbGxlbi48L3A+DQo8cD5EaWUgdm9tIEZvcm1CdWlsZGVyIGVyemV1Z3RlbiBGb3JtdWxhcmUga8O2bm5lbiBpbiBTZWl0ZW52b3JsYWdlbiANCnVuZC9vZGVyIFNlaXRlbiBlaW5nZWbDvGd0IHdlcmRlbi4gSW4gZGllIEZvcm11bGFlciBrw7ZubmVuIHZlcnNjaGllZGVuZSBBcnRlbiB2b24gRGF0ZW4gZWluZ2VnZWJlbiB3ZXJkZW4uIERpZXNlIEVpbmdhYmVuIA0KPHA+Rm9ybXVsYXJmZWxkZXJuIHdlcmRlbiBOYW1lbiB6dWdld2llc2VuLiBEaWVzZSBOYW1lbiBpZGVudGlmaXppZXJlbiBJaHJlIEZvcm11bGFyZmVsZGVyLCBuaWNodCBudXIgYXVmIGRlbSBCaWxkc2NoaXJtIGFscyBCZXplaWNobnVuZ2VuIGRpZSBkZW0gQmVudXR6ZXIgZGllbmVuLCBzb25kZXJuIGF1Y2ggaW4gZGVuIERhdGVuIHdlbm4gc2llIHZlcnNjaGlja3Qgd2VyZGVuLiBEYW1pdCB3aXJkIHNpY2hlcmdlc3RlbGx0IGRhc3MgU2llIGRhcyBzZWhlbiB3YXMgZGVyIE51dHplciBlaW5nZWdlYmVuIGhhdC4gPGJyPg0KRGVuIE5hbWVuIHdpZSBlaW5lIEZyYWdlIHp1IGdlc3RhbHRlbiBpc3QgZWluZSBzZWhyIGhhbmRsaWNoZSBBcnQgdW5kIFdlaXNlIGRlbSBOdXR6ZXIgenUgdmVybWl0dGVsbiB3YXMgaGllciB2b24gaWhtIGVyd2FydGV0IHdpcmQuIDxicj4NClZpZWxlIEZlbGRlciBoYWJlbiBiZWlkZXMsIE5hbWVuIHVuZCBXZXJ0ZS4gRGllIE5hbWVuLCBkaWUgZGVtIE51dHplciBhbmdlemVpZ3Qgd2VyZGVuIHVuZCBkaWUgV2VydGUsIGRhcyBzaW5kIGRpZSBkaWUgZ2VzcGVpY2hlcnQgd2VyZGVuIHdlbm4gZGVyIE51dHplciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0LiBEaWUgV2VydGUgc2luZCB3ZWRlciB2b20gQmVudXR6ZXIgZWluc2VoYmFyIG5vY2ggaW0gSFRNTCwgc29taXQgaXN0IGVzIHNpY2hlciBzaWUgZsO8ciBFbWFpbC1BZHJlc3NlbiB1c3cuIHp1IHZlcndlbmRlbi4gPC9wPg0KPHA+RWluaWdlIEZlbGRlciBrw7ZubmVuIG1laHJlcmUgV2VydGUgb2RlciBOYW1lbi9XZXJ0ZSBQYWFyZSBoYWJlbi4gV2VubiBTaWUgenVlcnN0IGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuLCBrYW5uIGVzIG3DtmdsaWNoIHNlaW4sIGRhc3MgbmljaHQgZ2Vuw7xnZW5kIEVpbmdhYmVmZWxkZXIgdm9yaGFuZGVuIHNpbmQsIHVtIGRpZSBXZXJ0ZSBlaW56dXRyYWdlbi4gVW0gbWVociBNw7ZnbGljaGtlaXRlbiB6dSBlcmhhbHRlbiBXZXJ0ZSBlaW56dXRyYWdlbiwgYmVudXR6ZW4gU2llIGRlbiBTY2hhbHRlciBhbSB1bnRlcmVuIEVuZGUgZGVyIFNlaXRlIGbDvHIgd2VpdGVyZSBPcHRpb25lbi48L3A+DQo8cD5GZWxkZXJuIGvDtm5uZW4gVmFsaWRpZXJ1bmdzcmVnZWxuIHp1Z2V3aWVzZW4gd2VyZGVuLCB3ZWxjaGUgamUgbmFjaCBGZWxkdHlwIHVudGVyc2NoaWVkbGljaCBzZWluIGvDtm5uZW4uIERpZXNlIFJlZ2VsbiBoZWxmZW4gc2ljaGVyenVzdGVsbGVuIGRhc3MgZGVyIE51dHplciBnw7xsdGlnZSBEYXRlbiBlaW5naWJ0LiBBdcOfZXJkZW0gaXN0IGVzIG3DtmdsaWNoLCBGZWxkZXIgc2VwZXJhdCBtaXQgZWluZW0g4oCed2lyZCBiZW7DtnRpZ3TigJwgenUgbWFya2llcmVuLCBkYW1pdCB3aXJkIGRlciBOdXR6ZXIgc296dXNhZ2VuIOKAnmdlend1bmdlbuKAnCBFaW5nYWJlbiB6dSBtYWNoZW4uIDwvcD4NCjxwPkZlbGRlcm4ga8O2bm5lbiBhdWNoIENTUy1LbGFzc2VuIHp1Z2V3aWVzZW4gd2VyZGVuLiBFcyB3ZXJkZW4gZGllIEVpbmdhYmVmZWxkZXIgbWl0IGVpbmVtIERJViBUYWcgdW5kIGRhenVnZWjDtnJpZ2VyIENTUy1LbGFzc2UgdW1nZWJlbjsgc29taXQga8O2bm5lbiBTaWUgSWhyIEZvcm11bGFyIHNlbGJzdCBnZXN0YWx0ZW4uIFVtIGRpZXMgZWZmaXppZW50IG51dHplbiB6dSBrw7ZubmVuLCBzb2xsdGVuIGluIGRlbiBRdWVsbHRleHQgZGVzIEZvcm11bGFyZXMgZ2VoZW4gdW5kIGRhbm4gSWhyZW4gQ1NTLUNvZGUgc2NocmVpYmVuLiA8L3A+JzsKJGxhbmdbJ2hlbHBfY29udGVudF9maWVsZHMnXSA9ICc8aDM+RmVsZGVyIHp1bSBGb3JtdWxhciBoaW56dWbDvGdlbjwvaDM+DQo8aDQ+U3RhbmRhcmRlaW5nYWJlZmVsZGVyPC9oND4NCjx0YWJsZT4NCgk8dGhlYWQ+DQoJCTx0cj4NCgkJCTx0aCBzY29wZT0iY29sIj5GZWxkdHlwPC90aD4NCgkJCTx0aCBzY29wZT0iY29sIj5CZXNjaHJlaWJ1bmc8L3RoPg0KCQk8L3RyPg0KCTwvdGhlYWQ+DQoJPHRib2R5Pg0KCQk8dHI+DQoJCQk8dGggc2NvcGU9InJvdyI+VGV4dGVpbmdhYmVmZWxkPC90aD4NCgkJCTx0ZD5EaWVzIGlzdCBkYXMgU3RhbmRhcmRlaW5nYWJlZmVsZC4gU2llIGvDtm5uZW4gZGllIEzDpG5nZSBkZXIgZWlnZWdlYmVuZW4gWmVpY2hlbiB3w6RobGVuIHVuZCB2ZXJzY2hpZWRlbmUgVmFsaWRpZXJ1bmdzZnVua3Rpb25lbiBhdWYgZGllc2UgRmVsZCBhbndlbmRlbi48L3RkPg0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8dGggc2NvcGU9InJvdyI+VGV4dGJlcmVpY2g8L3RoPg0KCQkJPHRkPkRpZXMgaXN0IGVpbiBncm/Dn2VzLCBmb3JtZnJlaWVzLCBtZWhyemVpbGlnZXMgVGV4dGVpbmdhYmVmZWxkLjwvdGQ+DQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0aCBzY29wZT0icm93Ij5Lb250cm9sbGvDpHN0Y2hlbjwvdGg+DQoJCQk8dGQ+RGllcyBpc3QgZGFzIFN0YW5kYXJkLUtvbnRyb2xsa8Okc3RjaGVuPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRoIHNjb3BlPSJyb3ciPktvbnRyb2xsa8Okc3RjaGVuZ3J1cHBlPC90aD4NCgkJCTx0ZD5EYXMgaXN0IGVpbmUgU2FtbWx1bmcgdm9uIEtvbnRyb2xsa8Okc3RjaGVuLCBkaWUgdW50ZXIgZWluZW0gZ2VtZWluc2FtZW4gTmFtZW4gZ3J1cHBpZXJ0IHNpbmQsIHVuZCB3byBlaW5lIE1laHJmYWNoYXVzd2FobCBlcm3DtmdsaWNodCB3aXJkLiBXZWl0ZXJoaW4ga8O2bm5lbiBTaWUgZWluZXMgb2RlciBtZWhyZXJlIGFscyBQZmxpY2h0ZmVsZChlcikgbWFya2llcmVuLiBTb21pdCBpc3QgZGVyIE51dHplciBnZXp3dW5nZW4gZWluZSBvZGVyIG1laHJlcmUgS29udHJvbGxrw6RzdGNoZW4gZGllc2VyIEdydXBwZSBhdXN6dXfDpGhsZW4uPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRoIHNjb3BlPSJyb3ciPlJhZGlva25vcGZncnVwcGU8L3RoPg0KCQkJPHRkPkRhcyBpc3QgZWluZSBTYW1tbHVuZyB2b24gUmFkaW9rbsO2cGZlbiwgYmVpIGRlbmVuIG51ciBlaW5lIGVpbnppZ2UgQXVzd2FobG3DtmdsaWNoa2VpdCBiZXN0ZWh0LjwvdGQ+DQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0aCBzY29wZT0icm93Ij5BdXN3YWhsZmVsZCAoZWluZmFjaCk8L3RoPg0KCQkJPHRkPkVpbiBlaW5mYWNoZXMgQXVzd2FobGZlbGQgZXJtw7ZnbGljaHQsIHdpZSBlaW5lIFJhZGlva25vcGZncnVwcGUsIG51ciBlaW5lIGVpbnppZ2UgQXVzd2FobCwgaXN0IGFiZXIga29tcGFrdGVyIHVuZCBkYWhlciBiZWkgc2VociB2aWVsZW4gT3B0aW9uZW4gZ2VlaWduZXQuPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRoIHNjb3BlPSJyb3ciPkF1c3dhaGxmZWxkIChtZWhyZmFjaCk8L3RoPg0KCQkJPHRkPkVpbiBtZWhyZmFjaGVzIEF1c3dhaGxmZWxkIGVybcO2Z2xpY2h0LCB3aWUgZWluZSBLb250cm9sbGvDpHN0Y2hlbmdydXBwZSwgZWluZSBNZWhyZmFjaGF1c3dhaGwsIGlzdCBhYmVyIGtvbXBha3RlciB1bmQgZGFoZXIgYmVpIHNlaHIgdmllbGVuIE9wdGlvbmVuIGdlZWlnbmV0LjwvdGQ+DQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0aCBzY29wZT0icm93Ij5VUy1CdW5kZXNzdGFhdGVuPC90aD4NCgkJCTx0ZD5EaWVzIGlzdCBlaW4gQXVzd2FobGZlbGQgKGVpbmZhY2gpIG1pdCBzw6RtdGxpY2hlbiBVUy1CdW5kZXNzdGFhdGVuLjwvdGQ+DQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0aCBzY29wZT0icm93Ij5Mw6RuZGVyYXVzd2FobDwvdGg+DQoJCQk8dGQ+RGllcyBpc3QgZWluIGVpbmZhY2hlcyBBdXN3YWhsZmVsZCBtaXQgYWxsZW4gTMOkbmRlcm4gZGVyIEVyZGUuPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRoIHNjb3BlPSJyb3ciPkRhdHVtc2F1c3dhaGw8L3RoPg0KCQkJPHRkPkRpZXMgaXN0IGVpbmUgR3J1cHBlIHZvbiBkcmVpIGVpbmZhY2hlbiBBdXN3YWhsZmVsZGVybiAoamUgZWlucyBmw7xyIFRhZywgTW9uYXQgdW5kIEphaHIpLCB1bSBkZW0gQmVudXR6ZXIgZGllIE3DtmdsaWNoa2VpdCB6dSBnZWJlbiwgZWluIERhdHVtIGF1c3p1d8OkaGxlbi48L3RkPg0KCQk8L3RyPg0KCTwvdGJvZHk+DQo8L3RhYmxlPg0KDQo8dWw+DQo8bGk+RS1NYWlsLXNwZXppZmlzY2hlIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5FbWFpbCBWb24gIEFkcmVzcyBGZWxkLiBIaWVyIGvDtm5uZW4gU2llIElocmUgRW1haWwtQWRyZXNzZSBlaW5nZWJlbi4gRGllc2Ugd2lyZCBpbiBkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgaW0gRmVsZCBWb24gKE1haWxhZHJlc3NlKTogYW5nZWdlYmVuLjwvbGk+DQogICAgPGxpPkVtYWlsIFZvbiBOYW1lIEZlbGQuIEhpZXIga8O2bm5lbiBTaWUgSWhyZW4gTmFtZW4gZWluZ2ViZW4uIERpZXNlIHdpcmQgaW4gZGVyIGdlbmVyaWVydGVuIEVtYWlsIGltIEZlbGQgTmFtZSAoQWJzZW5kZXJuYW1lKTogYW5nZWdlYmVuLjwvbGk+DQoNCjwvdWw+PC9saT4NCg0KPGxpPktvbnRyb2xsZmVsZGVyIGbDvHIgZGllIEFuemVpZ2U8dWw+DQo8bGk+U2VpdGVudW1icnVjaCAtIGRhcyBlcm3DtmdsaWNodCBJaG5lbiBkaWUgQXVmdGVpbHVuZyBJaHJlcyBGZWVkYmFjay1Gb3JtdWxhcnMgaW4gbWVocmVyZSBTZWl0ZW4uIERpZSBFaW5nYWJlbiBqZWRlciBTZWl0ZSB3ZXJkZW4NCnVuYWJow6RuZ2lnIHZvbmVpbmFuZGVyIGdlcHLDvGZ0LiBEYXMgaXN0IGluc2Jlc29uZGVyZSBiZWkgT25saW5lLVVtZnJhZ2VuIMOkdcOfZXJzdCB2b3J0ZWlsaGFmdC48L2xpPg0KPGxpPi1TdGF0aXNjaGVyIFRleHQuIERhbWl0IGvDtm5uZW4gU2llIElocmVtIEZvcm11bGFyIGVpbmZhY2hlbiBUZXh0IGhpbnp1ZsO8Z2VuIG9kZXIgZXMgYmVzY2hyaWZ0ZW4uIERpZXMgaXN0IGbDvHIgQXVzZsO8bGxoaW53ZWlzZSwgSGlsZmVuIHVzdy4gc2VociBuw7x0emxpY2gsIGluc2Jlc29uZGVyZSB3ZW5uIFNpZSBmw7xyIGRpZSBBbnplaWdlIGRlcyBGb3JtdWxhcnMga2VpbiBhbmdlcGFzc3RlcyBUZW1wbGF0ZSB2ZXJ3ZW5kZW4uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm11bGFyIFwnSGFuZGxpbmdcJw0KICA8dWw+DQogICAgPGxpPipFbWFpbCBFcmdlYm5pcyBiYXNpZXJlbmQgYXVmIGRlbSBQdWxsZG93bi4gRGllcyBpc3QgaGlsZnJlaWNoIGbDvHIgSW50ZXJuZXRzZWl0ZW4gd28gS29tbWVudGFyZSDDvGJlciBkaWUgQW5nZWxlZ2VuaGVpdCBpbiBkZW4gQmV0cmVmZiBnZXNjaHJpZWJlbiB3ZXJkZW4uIHouQi4gQnVncyB3ZXJkZW4genVtIEVudHdpY2tsZXIgZ2VzZW5kZXQsIE1hcmtldGluZyBGcmFnZW4genUgZWluZXIgUGVyc29uLCBGcmFnZW4genVtIFZlcmthdWYgenUgZWluZXIgYW5kZXJlbiBQZXNvbiB1c3cuIERhcyBQdWxsZG93biBNZW7DvCB3aXJkIG1pdCBCZXRyZWZmcyBoaW50ZXJsZWd0IHVuZCBqZWRlciB3aXJkIHp1IGVpbmVyIHNwZXppZmlzY2hlbiBNYWlsYWRyZXNzZSB2ZXJzYW5kdC4gU2llIGVyc3RlbGxlbiBkZW4gamV3ZWlsaWdlbiBCZXRyZWZmIHdlbm4gU2llIGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuIG9kZXIgZWRpdGllcmVuLiBXZW5uIFNpZSBlaW4gc29sY2hlcyBQdWxsZG93biBNZW7DvCBiZW51dHplbiwgbXVzcyBkZXIgTnV0emVyIGVpbmUgQXVzd2FobCBkZXMgQmV0cmVmZnMgd8OkaGxlbiB1bSBkYXMgRm9ybXVsYXIgYWJzY2hpY2tlbiB6dSBrw7ZubmVuLiBEaWVzZXMgQXVzd2FobGZlbGQgaXN0IGbDvHIgZGVuIE51dHplciBzaWNodGJhciBhYmVyIGRpZSBNYWlsYWRyZXNzZW4gZGllIGRhaGludGVyIHN0ZWhlbiB3ZXJkZW4gd2VkZXIgSWhtIG5vY2ggaW0gSFRNTCBhbmdlemVpZ3QuPC9saT4NCg0KICAgIDxsaT4qRW1haWwgRXJnZWJuaXMgYW4gQWRyZXNzZShuKSBzZW5kZW4uIERpZXMgc2VuZGV0IGRpZSBEYXRlbiBhbiBlaW5lIHZvcmhlciBhbmdlZ2ViZW5lIE1haWxhZHJlc3NlLiBEaWUgTWFpbGFkcmVzc2Uobikga8O2bm5lbiBTaWUgYW5nZWJlbiB3ZW5uIFNpZSBlaW4gc29sY2hlcyBGZWxkIGdlbmVyaWVyZW4uIERhcyBGZWxkIHVuZCBkZXIgTmFtZSBpc3QgZsO8ciBkZW4gTnV0emVyIG5pY2h0IHNpY2h0YmFyLiBBdWNoIG5pY2h0IGltIFF1ZWxsdGV4dC48L2xpPg0KICAgIDxsaT4qRGF0ZW4gaW4gRGF0ZW5iYW5rIHNwZWljaGVybi4gRGllcyBzcGVpY2hlcnQgZGllIGFiZ2VnZWJlbmVuIERhdGVuIGluIGVpbmVyIGludGVybmVuIERhdGVuYmFuay4gRGllc2UgRWluc3RlbGx1bmcgdmVyd2VuZGVuIFNpZSBtZWlzdGVuIGluIFZlcmJpbmR1bmcgbWl0IGRlbSBNb2R1bCBGb3JtQnJvd3Nlci48L2xpPg0KICAgIDxsaT4qVmFsaWRpZXJ1bmcgw7xiZXIgZGllIE1haWxhZHJlc3NlLiBEaWVzIGlzdCBlaW4gc2VociBsZWlzdHVuZ3Nmw6RoaWdlcyBGZWxkLiBFcyBzdGVsbHQgZGVtIEJlbnV0emVyIGVpbiB2b3JnZWdlYmVuZXMgRWluZ2FiZWZlbGQgZsO8ciBzZWluZSBNYWlsYWRyZXNzZSB6dXIgVmVyZsO8Z3VuZy4gV2VubiBkaWVzZXIgZGFzIEZvcm11bGFyIGFic2NoaWNrdCB3aXJkIGRpZSDDnGJlcm1pdHRsdW5nIG5pY2h0IGRpcmVrdCBhdXNnZWbDvGhydCwgc29uZGVybiBzY2hpY2t0IGRlbSBOdXR6ZXIgZWluZSBNYWlsIG1pdCBlaW5lbSBjb2RpZXJ0ZW4gTGluay4gRXJzdCB3ZW5uIGRpZXNlciBMaW5rIGdlZHLDvGNrdCB3aXJkIHdpcmQgZGFzIEZvcm11bGFyIHZhbGlkaWVydCB1bmQgZGllIEVpbmdhYmVuIGFiZ2VzY2hpY2t0LjwvbGk+DQogICAgPGxpPipJbiBEYXRlaSBTY2hyZWliZW4uIERpZXNlIE9wdGlvbiBncmVpZnQgZGllIERhdGVuIGFiIHVuZCBzY2hyZWlidCBzaWUgaW4gZWluZSBUZXh0ZGF0ZWkuIFNpZSBrw7ZubmVuIGRlbiBOYW1lbiB1bmQgZGFzIERhdGVpZm9ybWF0IGJlc3RpbW1lbi4gRGllc2UgRGF0ZWllbiB3ZXJkZW4gaW4gZGFzIEF1c2dhYmV2ZXJ6ZWljaG5pcyBkZXMgTW9kdWwgSW5zdGFsbGF0aW9ucyBWZXJ6ZWljaG5pc3NlcyBnZXNjaHJpZWJlbi4gVm9ycmF1c2dlc2V0enQgaXN0LCBkYXNzIGRlciBTZXJ2ZXIgZGllIG5vdHdlbmRpZ2VuIFNjaHJlaWJyZWNodGUgdmVyZ2ViZW4gaGF0Lg0KICAgIDwvdWw+PC9saT4NCjwvdWw+DQo8aDM+VGVtcGxhdGVzIGbDvHIgRW1haWwgdW5kIGVpbmZhY2hlIERhdGVpZW48L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIEVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIFdlbm4gU2llIHNlbGJzdCBrZWluZSBUZW1wbGF0ZXMgZXJzdGVsbGVuIHdvbGxlbiwgd2lyZCBGb3JtQnVpbGRlciBkaWUgbmFjaCBzZWluZXIgRWluc2Now6R0enVuZyBiZXN0ZSBMw7ZzdW5nIHZlcndlbmRlbiwgZGllIHNvIGZ1bmt0aW9uaWVydCwgd2llIFNpZSB3b2xsZW4gb2RlciBhdWNoIG5pY2h0LiBTaWUga8O2bm5lbiBqZWRlcnplaXQgYXVmIOKAnkVpbiBNdXN0ZXItVGVtcGxhdGUgZXJzdGVsbGVu4oCcIGtsaWNrZW4gdW5kIGRhbm4gZGllIEVyZ2Vibmlzc2UgYW5wYXNzZW4uPC9wPg0KPHA+QmVhY2h0ZW4gU2llLCBkYXNzIG5ldSBoaW56dWdlZsO8Z3RlIEZlbGRlciBuaWNodCBtZWhyIGF1dG9tYXRpc2NoIGRlbSBUZW1wbGF0ZSBoaW56dWdlZsO8Z3Qgd2VyZGVuLCB3ZW5uIGVzIGVpbm1hbCBnZcOkbmRlcnQgd3VyZGUuIEF1cyBkaWVzZW0gR3J1bmQgaXN0IGVzIGRhcyBCZXN0ZSwgd2VubiBTaWUgZXJzdCB6dW0gU2NobHVzcyBkYXMgVGVtcGxhdGUgZsO8ciBkYXMgRm9ybXVsYXIgZXJzdGVsbGVuLjwvcD4nOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+T3B0aW9uYWxlciBIaWxmZXRleHQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkXCdzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9IiI+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydoZWxwX2NvbnRlbnRfY29uZmlndXJhdGlvbiddID0gJzxoMz5CZWthbm50ZSBQcm9ibGVtZTwvaDM+DQo8dWw+DQo8bGk+RWluaWdlIEZlbGR0eXBlbiwgZGllIGltIEZlZWRiYWNrRm9ybS1Nb2R1bCBlbnRoYWx0ZW4gd2FyZW4sIHNpbmQgaW4gRm9ybUJ1aWxkZXIgbmljaHQgaW1wbGVtZW50aWVydC4gV2VubiBlaW4gQmVkYXJmIGbDvHIgZGllc2UgRmVsZGVyIHZvcmhhbmRlbiBpc3QsIHdlcmRlIGljaCBzaWUgaGluenVnZWbDvGdlbi48L2xpPg0KPGxpPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBrYW5uIGdlZ2Vud8OkcnRpZyBub2NoIG5pY2h0IGF1ZiBkaWUgRGF0ZW4gZGVzIEZyb250ZW5kVXNlcnMtTW9kdWxzIHp1Z3JlaWZlbi4gRGllcyBpc3QgYWJlciBnZXBsYW50LjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgdW50ZXJzdMO8dHp0IGdlZ2Vud8OkcnRpZyBub2NoIGtlaW5lIFByZXR0eSBVUkxzLCBkaWVzIHNvbGx0ZSBqZWRvY2gga2VpbiBQcm9ibGVtIHNlaW4sIGRhIGRpZSBBdXNnYWJlbiBCZW51dHplcnNlaXRlIHNlaHIgZWluZmFjaCBnZWhhbHRlbiBpc3QuPC9saT4NCjwvdWw+DQoNCjxoMz5GZWhsZXJzdWNoZTwvaDM+DQo8b2w+PGxpPiBBbHMgZXJzdGVzIHNvbGx0ZW4gU2llIHByw7xmZW4sIG9iIFNpZSBDTVNtcyBpbiBlaW5lciBWZXJzaW9uID4gMS4wIHZlcndlbmRlbi48L2xpPg0KPGxpPiBJbSB6d2VpdGVuIFNjaHJpdHQgc29sbHRlbiBTaWUgZGllIFByb2JsZW1lIGJlaSBkZXIgVmVyd2VuZHVuZyB2b24gV1lTSVdZRy1FZGl0b3JlbiBpbSBBYnNjaG5pdHQNCiA8ZW0+RWluIEZvcm11bGFyIGVpbmVyIFNlaXRlIGhpbnp1ZsO8Z2VuPC9lbT4gbGVzZW4gdW5kIHZlcnN0ZWhlbi48L2xpPg0KPGxpPldlbm4gU2llIGluIGVpbmVyIHZvbSBGb3JtQnVpbGRlciBnZW5lcmllcnRlbiBFbWFpbCBiZXN0aW1tdGUgRmVsZGVyIHZlcm1pc3Nlbiwgw7xiZXJwcsO8ZmVuIFNpZSwgb2IgZGllIEZlbGRlciBpbSBUZW1wbGF0ZSBlbnRoYWx0ZW4gc2luZCwgdW5kIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBTaWUgZGllIGZlaGxlbmRlbiBGZWxkZXIgYXVjaCB0YXRzw6RjaGxpY2ggZGVmaW5pZXJ0IGhhYmVuLiBBdWNoIHdlbm4gZXMgbmljaHQga2xhciBlcnNpY2h0bGljaCBzY2hlaW50LCBrYW5uIGVzIGR1cmNoYXVzIG51ciBlaW4gZ2FueiBlaW5mYWNoZXIgRmVobGVyIHNlaW4uPC9saT4NCjxsaT4gVmVyc3VjaGVuIFNpZSwgYXVmIExpbmtzIHVuZCBJY29ucyB6dSBrbGlja2VuIHVuZCBiZW9iYWNodGVuIGdlbmF1LCB3YXMgcGFzc2llcnQuPC9saT4NCjxsaT4gRGllIGxldHp0ZSBNw7ZnbGljaGtlaXQgaXN0LCBtaXIgZGFzIFByb2JsZW0gcGVyIEVtYWlsIG1pdHp1dGVpbGVuIG9kZXIgbWljaCBpbSBJUkMtQ2hhdCBhbnp1c3ByZWNoZW4sIGRhbWl0IHdpciBkYXMgUHJvYmxlbSBnZW1laW5zYW0gYmVoZWJlbi48L2xpPg0KPC9vbD4gDQo8cD5EaWVzIGlzdCBlaW5lIHNlaHIgZnLDvGhlIFZlcnNpb24sIGVpbiB1bmdldGVzdGV0ZXMgQmV0YS1SZWxlYXNlLCB1bmQgc2VociB3YWhyc2NoZWlubGljaCBpc3QgZXMgZmVobGVyaGFmdC4gT2J3b2hsIGljaCBhbGxlcyBnZXRhbiBoYWJlLCB3YXMgaWNoIGtvbm50ZSwgDQp1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3Mgc2ljaCBrZWluZSBncsO2w59lcmVuIOKAnldhbnplbuKAnCBlaW5nZXNjaGxpY2hlbiBoYWJlbiwgbXVzc3RlIGljaCB3w6RocmVuZCBkZXMgVGVzdGVucyBmZXN0c3RlbGxlbiwgZGFzcyBkYXMgUHJvZ3JhbW0gDQpzaWViZW4gS2FrZXJsYWtlbiwgendlaSBPaHJ3w7xybWVyLCBlaW5lIGtsZWluZSBGYW1pbGllIHZvbiBCbGF0dGzDpHVzZW4gdW5kIGVpbmUgV2FuZGVyc3RhYmhldXNjaHJlY2tlIGVudGhpZWx0LiBTaWUgZnJhw59lbiBhdWNoDQpOYWNoYmFycyBiw7ZzZW4ga2xlaW5lbiBrbMOkZmZlbmRlbiBIdW5kLCB3b2bDvHIgaWNoIHVuZW5kbGljaCBkYW5rYmFyIHdhci48L3A+DQo8cD5EYXMgZmluYWxlIFJlbGVhc2Ugd2lyZCBCdWdmaXhlcywgZWluZSBEb2t1bWVudGF0aW9uIHVuZCBiZWRpbmd1bmdzbG9zZSBMaWViZSBlbnRoYWx0ZW4uPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+RGllc2VzIE1vZHVsIGJlaW5oYWx0ZXQga2VpbmVuIGtvbW1lcnppZWxsZW4gU3VwcG9ydC4gU2llIGvDtm5uZW4gamVkb2NoIMO8YmVyIGRpZSBmb2xnZW5kZSBXZWdlIEhpbGZlIHp1IGRlbSBNb2R1bCBlcmhhbHRlbjo8L3A+DQo8dWw+DQo8bGk+RsO8ciBkaWUgbGV0enRlIFZlcnNpb24gZGllc2VzIE1vZHVscywgRkFRcywgZGVtIFZlcnNhbmQgZWluZXMgRmVobGVycmVwb3J0cyBvZGVyIGRlbSBLYXVmIGtvbW1lcnppZWxsZW4gU3VwcG9ydCBiZXN1Y2hlbiBzaWUgYml0dGUgY2FsZ3V5cyBIb21lcGFnZSB1bnRlciA8YSBocmVmPSJodHRwOi8vdGVjaGNvbS5keW5kbnMub3JnIj50ZWNoY29tLmR5bmRucy5vcmc8L2E+LjwvbGk+DQo8bGk+RWluZSB3ZWl0ZXJlIERpc2t1c3Npb24genUgZGllc2VtIE1vZHVsIGlzdCBhdWNoIGluIGRlbiBGb3JlbiB2b24gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGU8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkRlciBBdXRvciBjYWxndXkxMDAwLCBpc3QgaMOkdWZpZyBpbSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+TGV0enRsaWNoIGVycmVpY2hlbiBTaWUgZGVuIEF1dG9yIGF1Y2ggw7xiZXIgZWluZSBkaXJla3RlIEVtYWlsLjwvbGk+ICANCjwvdWw+JzsKJGxhbmdbJ2hlbHBfY29udGVudF9hYm91dCddID0gJzxoMz5Db3B5cmlnaHQgdW5kIExpemVuejwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4oc2pnQGNtc21vZHVsZXMuY29tKTwvYT4uIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD4NCjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlcsO2ZmZlbnRsaWNodC4gU2llIG3DvHNzZW4gZGllc2VyIExpemVueiB6dXN0aW1tZW4sIGJldm9yIFNpZSBkYXMgTW9kdWwgdmVyd2VuZGVuLjwvcD4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/el_GR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ86UzrfOvM65zr/Phc+BzrPPjM+CIM+Gzr/Pgc68z47OvSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ86UzrXOvSDOtM+MzrjOt866zrUgz4TPjc+Azr/PgiDOs865zrEgz4TOvyDOoM61zrTOr86/JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ86Vz4DOuc67zq3Ovs+EzrUgzq3Ovc6xICjOriDPgM61z4HOuc+Dz4PPjM+EzrXPgc6xKSBjYXRhbG9nZXIgzrHOvc+EzrnOus61zq/OvM61zr3OsSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLc6jzrXPhCDPgM61zrTOr8+Jzr0gz4TOrc67zr/Pgic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctzqPOtc+EIM+AzrXOtM6vz4nOvSDOsc+Bz4fOric7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ86gzrXOtM6vzr8gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICfOms+JzrTOuc66z4zPgic7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ86az4nOtM65zrrPjM+CICjOvs6xzr3OrCDOs865zrEgzrXPgM6xzrvOrs64zrXPhc+DzrcpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ86gzrXOtM6vzr8gzrrOtc65zrzOrc69zr/PhSAozqDOv867zrvOsc+AzrvPjCknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnzqDOtc+BzrnOv8+Hzq4gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnzprOv8+FzrzPgM6vJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ86gzrXOtM6vzr8gzrXOu86tzrPPh86/z4UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICfOn868zqzOtM6xIM+AzrXOtM6vzr/OvSDOtc67zq3Os8+Hzr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+CIM+Azq/Ovc6xzrrOsc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+CIM+Azq/Ovc6xzrrOsc+CIM6Iz4TOv8+Fz4InOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnzqDOv867z4XOtc+AzrnOu86/zrPOric7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICfOlc+AzrnOu86/zrPOrc6xz4Igz4DOv867zrnPhM61zq/Osc+CICBVLlMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnzpXPgM65zrvOv86zzq3Osc+CICDOtc+AzrHPgc+Hzq/Osc+CIM6azrHOvc6xzrTOrCc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ86Vz4DOuc67zr/Os86tzrHPgiDOp8+Oz4HOsc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnzpXPgM65zrvOv86zzq3Osc+CIM63zrzOtc+Bzr/OvM63zr3Or86xz4InOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICfOlc+AzrnOu86/zrPOrc6xz4Igzo/Pgc6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICfOn868zqzOtM6xIM+BzqzOtM65zr/Otc+AzrnOu86/zrPOrc+Jzr0nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKiDOkc+Azr/Pg8+Ez4zOu863IM68zrUgRW1haWwgzrPOuc6xIM+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+Azr/PhSDOss6xz4POr862zrXPhM6xzrkgz4PPhM63zr0gzrXPgM65zrvOv86zzq4gzpHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDPgM6vzr3Osc66zrEgKFB1bGxkb3duKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrHPgc+HzrXOr86/IM6zzrnOsSDPhM6xIM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsSDPgM6/z4UgzrLOsc+Dzq/Ots61z4TOsc65IM+Dz4TOt869IM61z4DOuc67zr/Os86uIM6Rzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4Ugz4DOr869zrHOus6xIChQdWxsZG93biknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrHPgc+HzrXOr86/KM6xKSDPgM6/z4UgzrLOsc+Dzq/Ots61z4TOtSDPg861IM+Azr/Ou867zrHPgM67zq3PgiDOtc+AzrnOu86/zrPOrc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyrOkc69zrHOus6xz4TOtc+NzrjOt869z4POtyDPg861IM+DzrXOu86vzrTOsSwgz4DOv8+FIM6yzrHPg86vzrbOtc+EzrHOuSDPg8+EzrfOvSDOtc+AzrnOu86/zrPOriDOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+FIM+Azq/Ovc6xzrrOsSAoUHVsbGRvd24pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyrOkc+Azr/Pg8+Ez4zOu863IM68zrUgRW1haWwgz4PPhM63zr0gzrTOuc61z43OuM+Fzr3Pg863KM61zrnPgiknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKs6Vz4DOsc67zq7OuM61z4XPg863IM68zq3Pg8+JIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqzpHPgM6/z4PPhM6/zrvOriDOsc69z4TOuc6zz4HOrM+Gzr/PhSDPh8+BzrfPg865zrzOv8+Azr/Ouc+Ozr3PhM6xz4Igz4TOvyBFbWFpbCDOsc+Azr8gz4TOvyDPgM61zrTOr86/ICJGcm9tIEFkZHJlc3MiLic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJyrOlc6zzrPPgc6xz4bOtyDPg861ICDOkc+AzrvPjCDOsc+Bz4fOtc6vzr8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrLOrM+DzrcgzrTOtc60zr/OvM6tzr3Pic69JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJyrOkc+Azr/OuM6uzrrOtc+Fz4POtyDOkc+Azr/PhM61zrvOtc+DzrzOrM+Ez4nOvSDOsc+Az4wgz4TOt869IM+AzrHOu86xzrnPjM+EzrXPgc63IM6tzrrOtM6/z4POtyBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqzprOu86uz4POtyDOvM65zrHPgiDOtc+EzrnOus6tz4TOsc+CIM+Hz4HOt8+Dz4TOriDOvM6xzrbOryDOvM61IM+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqzpHPgM6/z4PPhM6/zrvOriDPg861IM68zrnOsSDOtc69zq3Pgc6zzrXOuc6xIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKs6Rz4DOv8+Dz4TOv867zq4gRW1haWwgz4POtSDOvM65zrEgzrrOsc64zr/Pgc65zrbPjM68zrXOvc63IM6xz4DPjCDPhM6/zr0gz4fPgc63z4PPhM6uIM60zrnOtc+NzrjPhc69z4POtyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqzpHPgM6/z4PPhM6/zrvOriBFbWFpbCDPg8+Ezr/OvSDOtM65zrHPh861zrnPgc65z4PPhM6uIM+Ezr/PhSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy3Okc67zrvOsc6zzq4gz4POtc67zq/OtM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICfOnM61z4TOsc+Gz4zPgc+Ez4nPg863IM6Rz4HPh861zq/Ov8+FJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAiRnJvbSBBZGRyZXNzIiAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4PPhM6/IEVtYWlsIM+Ezr/PhSDPgM61zrTOr86/z4UgICJGcm9tIEFkZHJlc3MgQWdhaW4iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAgIkZyb20gTmFtZSIgJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAgIlN1YmplY3QiJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLc6jz4TOsc+EzrnOus+MIM66zrXOr868zrXOvc6/JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLc6jz4TOsc+EzrnOus+Mz4Igz4XPgM61z4HPg8+Nzr3OtM61z4POvM6/z4InOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICfPhc+AzrXPgc+Dz43Ovc60zrXPg868zr/PgiAozpXOuc+DzrHOs8+JzrPOriDOsc+Azr8gz4fPgc6uz4PPhM63KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLc6az4HPhc+Gz4wgz4DOtc60zq/Ovyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctzqXPgM6/zrvOv86zzrnOts+MzrzOtc69zr8gz4DOtc60zq/Ovyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy3OnM6/zr3Osc60zrnOus+Mz4IgzrHOus6tz4HOsc65zr/PgiAozqPPhc+BzrnOsc66z4zPgiknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctzprOu86uz4POtyDOtc+EzrnOus6tz4TOsc+CIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ86gzrXOtM6vzr8gzrrOsc+EzrHOu8+MzrPOv8+FIM61z4TOsc65z4HOtc6vzrHPgiAnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy3OoM61zrTOr86/IM60zrnOtc+AzrHPhs6uz4IgTW9kdWxlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ86nz4nPgc6vz4IgzpXPgM6xzrvOrs64zrXPhc+DzrcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnzpHPgc65zrjOvM63z4TOuc66z4wnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnzpHOus6tz4HOsc65zr/Pgic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnzpHPgc65zrjOvM+Mz4Igz4TOt867zrXPhs+Ozr3Ov8+FIM6zzrnOsSBVUyc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICfOoM+Bzq3PgM61zrkgzr3OsSDOtc+AzrnOu861z4fOuM61zq8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ86kzrHPjc+EzrnPg863IM+Dz4XOvc6uzrjOv8+Fz4Igzq3Ous+Gz4HOsc+DzrfPgiAoUmVndWxhciBFeHByZXNzaW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICfOp8+Jz4HOr8+CIM+EzrHPjc+EzrnPg863IM+Dz4XOvc6uzrjOv8+Fz4Igzq3Ous+Gz4HOsc+DzrfPgiAoUmVndWxhciBFeHByZXNzaW9uKSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnzpTOtc69IM60z4zOuM63zrrOtSDPhM65zrzOriDPg861IM+Fz4DOv8+Hz4HOtc+Jz4TOuc66z4wgz4DOtc60zq/Ovyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ86gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOvM65zrEgz4TOuc68zq4gzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDOsc+BzrnOuM68zrfPhM65zrrOriDPhM65zrzOriDOs865zrEgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzrzOuc6xIM6tzrPOus+Fz4HOtyDOus6xz4TOsc+Hz47Pgc63z4POtyDOs865zrEgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ86gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOvM65zrEgzrHOus6tz4HOsc65zrEgzrHPgc65zrjOvM63z4TOuc66zq4gz4TOuc68zq4gzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDOrc6zzrrPhc+BzrcgzrTOuc61z43OuM+Fzr3Pg863IM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UgzrPOuc6xICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ86XIM60zrnOtc+NzrjPhc69z4POtyDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM60zrXOvSDPhM6xzrnPgc65zqzOts61zrkgz4PPhM63zr0gz4TOuc68zq4gz4TOv8+FICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzq3Ovc6xzr0gzq3Os866z4XPgc6/IM6xz4HOuc64zrzPjCDPhM63zrvOtc+Gz47Ovc6/z4UgzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDPg8+Fzr3OtM61zrjOtc6vz4TOtSDOs865zrEgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPhc+Ezq4gz4TOtyDPhs+Mz4HOvM6xJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyIlcyIgzrTOtc69IM+GzrHOr869zrXPhM6xzrkgzr3OsSDOtc6vzr3Osc65IM68zrnOsSDOrc6zzrrPhc+BzrcgzrTOuc61z43OuM+Fzr3Pg863IM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzrzOuc6xIM+EzrnOvM6uIM+Azr/PhSDOtM61zr0gzrXOr869zrHOuSDOvM61zrPOsc67z43PhM61z4HOtyDOsc+Az4wgJXMgz4fOsc+BzrHOus+Ezq7Pgc61z4InOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDPhM65zrzOriDPgM6/z4UgzrXOr869zrHOuSDPhM6/z4XOu86sz4fOuc+Dz4TOv869ICVzIM+HzrHPgc6xzrrPhM6uz4HOtc+CJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnzqfOsc+BzrHOus+Ezq7Pgc6xz4Igz4DOv8+FIM64zrEgz4fPgc63z4POuc68zr/PgM6/zrnOt864zrXOryDPic+CIM60zrnOsc+Hz4nPgc65z4PPhM65zrrPjCDPg861IM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsSDPgM6/z4UgzrjOsSDOtc+AzrnPg8+Ez4HOrc+Izr/Phc69IM+AzrXPgc65z4PPg8+Mz4TOtc+BzrXPgiDOsc+Az4wgzrzOr86xIM+EzrnOvM6tz4InOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ86YzrEgz4DPgc6tz4DOtc65IM69zrEgzq3Ph861z4TOtSDPhM63zr0gIiVzIiDOrM60zrXOuc6xIM6zzrnOsSDPhM63zr0gzrXOus+Ezq3Ou861z4POtyDPhM63z4Igz4PPhc6zzrrOtc66z4HOuc68zq3Ovc63z4Igz4DPgc6szr7Ot8+CLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ86jz4XOs86zzr3Pjs68zrchIM6UzrXOvSDOrc+HzrXPhM61IM61z4DOsc+BzrrOriDOtM65zrrOsc65z47OvM6xz4TOsSDOs865zrEgzr3OsSDOsc+Azr/Ous+Ezq7Pg861z4TOtSDPgM+Bz4zPg86yzrHPg863IM+DzrUgzrHPhc+Ez4wgz4TOvyDPhM68zq7OvM6xLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnzpcgz4TOsc6+zrnOvc+MzrzOt8+Dzrcgz4TPic69IM+AzrXOtM6vz4nOvSDOtc69zrfOvM61z4HPjs64zrfOus61Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfOlyDPhs+Mz4HOvM6xIM60zrnOsc6zz4HOrM+GzrfOus61Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnzqTOvyDPgM61zrTOr86/IM60zrnOsc6zz4HOrM+GzrfOus61Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICfOlc69zrfOvM61z4HPjs64zrfOus6xzr0gzr/OuSDPgc+FzrjOvM6vz4POtc65z4IuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnzqDPgc6tz4DOtc65IM69zrEgzrXPgM65zrvOrc6+zrXPhM61IM+Ezr8gIiVzIiDOs865zrEgzr3OsSDPg8+Fzr3Otc+Hzq/Pg861z4TOtS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ86gz4HOrc+AzrXOuSDOvc6xIM66zrHOuM6/z4HOr8+DzrXPhM61IM+Ezr/Phc67zqzPh865z4PPhM6/zr0gzrzOr86xIM60zrnOtc+NzrjPhc69z4POtyDPgM+Bzr/Ov8+BzrnPg868zr/PjSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnzpXOr8+Dz4TOtSDPg86vzrPOv8+Fz4HOv8+CIM+Mz4TOuSDOuM6tzrvOtc+EzrUgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDPhM63IM+Gz4zPgc68zrEgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICfOlc6vz4PPhM61IM+Dzq/Os86/z4XPgc6/z4Igz4zPhM65IM64zq3Ou861z4TOtSDOvc6xIM60zrnOsc6zz4HOrM+IzrXPhM61IM+Ezr8gz4DOtc60zq/OvyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnzp/OuSDPgM+Bzr/Ot86zzrzOrc69zrXPgiDOtc+AzrnOu86/zrPOrc+CIM60zrXOvSDOtc6vzr3Osc65IM60zrnOsc64zq3Pg865zrzOtc+CIM6tz4nPgiDPjM+Ezr/PhSDOvyDPhM+Nz4DOv8+CIM+AzrXOtM6vzr/PhSDOvc6xIM+Bz4XOuM68zrnPg8+EzrXOry4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICfOpM6/IM+Mzr3Ov868zrEgz4TOv8+FIM+AzrXOtM6vzr/PhSAiJXMiIM61zq/Ovc6xzrkgzq7OtM63IM+DzrUgz4fPgc6uz4POty4gzqDOsc+BzrHOus6xzrvOv8+NzrzOtSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM68zr/Ovc6xzrTOuc66zqwgzr/Ovc+MzrzOsc+EzrEgzrPOuc6xIM+EzrEgz4DOtc60zq/OsSwgzq4gIM6xz4DOtc69zrXPgc6zzr/PgM6/zrnOrs+DzrXPhM61IM+EzrEgzrzOv869zrHOtM65zrrOrCDOv869z4zOvM6xz4TOsSDPgM61zrTOr8+Jzr0gz4PPhM65z4Igz4HPhc64zrzOr8+DzrXOuc+CIM+Ezr/PhSDOtM63zrzOuc6/z4XPgc6zzr/PjSDPhs6/z4HOvM+Jzr0uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICfOpM6xIM+AzrXOtM6vzrEgz4DPgc6tz4DOtc65IM69zrEgzq3Ph86/z4XOvSDPjM69zr/OvM6xLCDOtc66z4TPjM+CIM6xzr0gzrrOsc+EzrHPgc6zzrfOuM61zq8gzrHPhc+Ezq4gzrcgzrXPgM65zrvOv86zzq4gzrHPgM+MIM+EzrnPgiDPgc+FzrjOvM6vz4POtc65z4IuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ86Rzr3Pjs69z4XOvM6/z4InOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ86czq7Ous6/z4I6ICVzICc7CiRsYW5nWydib3hlcyddID0gJyVzIM66zr/Phc+EzrnOrCc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgzrXPgM65zrvOv86zzq3Pgic7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIM+HzrHPgc6xzrrPhM63z4HOtc+CLic7CiRsYW5nWydvcmRlciddID0gJ86jzrXOuc+BzqwnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbzrHOus6xzrjPjM+BzrnPg8+Ezr9dJzsKJGxhbmdbJ2FkZGVkJ10gPSAnz4DPgc6/z4PPhM6tzrjOt866zrUnOwokbGFuZ1sndXBkYXRlZCddID0gJ861zr3Ot868zrXPgc+OzrjOt866zrUnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnzpXPgM65zrvOv86zzq3PgiDPhM6xzr7Ouc69z4zOvM63z4POt8+CIM6zzrnOsSDPhM63zr0gzq3Ovs6/zrTOvyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnzpXPgM65zrvOv86zzq4gzrXOvc+Mz4InOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICfOlc+AzrnOu86/zrPOriDPhM+Nz4DOv8+FJzsKJGxhbmdbJ3RvJ10gPSAnzqDPgc+Mz4InOwokbGFuZ1sneWVzJ10gPSAnzp3Osc6vJzsKJGxhbmdbJ25vJ10gPSAnzozPh865JzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICfPgM6xz4HOsc67zq7PgM+EzrXPgic7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgz4DOuc64zrHOvc6sIM6xz4HPh861zq/OsSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIM+Az4HOv86/z4HOuc+DzrzOv86vJzsKJGxhbmdbJ3NhdmUnXSA9ICfOkc+Azr/OuM6uzrrOtc+Fz4POtyc7CiRsYW5nWydhZGQnXSA9ICfOoM+Bzr/Pg864zq7Ous63JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ86Vzr3Ot868zq3Pgc+Jz4POtyc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ86Rz4DOv864zq7Ous61z4XPg863IM66zrHOuSDPg8+Fzr3Orc+HzrXOuc6xIM+EzrfPgiDOtc+BzrPOsc+Dzq/Osc+CJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnzqDOu863z4HOv8+Gzr/Pgc6vzrXPgic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICfOkc+Fz4TPjM68zrHPhM6xJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnzqbPjM+BzrzOtc+CJzsKJGxhbmdbJ2Zvcm0nXSA9ICfOps+Mz4HOvM6xICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfOoc+FzrjOvM6vz4POtc65z4InOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ86XIM6xz4DOsc65z4TOv8+FzrzOrc69zrcgzrrOsc+EzqzPg8+EzrHPg863IM6zzrnOsSDPhM6/IM+AzrXOtM6vzr8gzrXOvc63zrzOtc+Bz47OuM63zrrOtS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnzpzOrc6zzrnPg8+Ezr8gzpzOrc6zzrXOuM6/z4InOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICfOpM+Nz4DOv865JzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICfOlc+AzrnPhM+BzrXPgM+MzrzOtc69zr/OuSDPhM+Nz4DOv865IM6xz4HPh861zq/Pic69JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnzqTOvyDOsc+Bz4fOtc6vzr8gzrXOr869zrHOuSDPgM6/zrvPjSDOvM61zrPOrM67zr8hIM6kzr8gzrzOrc6zzrnPg8+Ezr8gzrXPgM65z4TPgc61z4DPhM+MIM68zq3Os861zrjOv8+CIM61zq/Ovc6xzrk6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnzpHPhc+Ez4zPgiDOvyDPhM+Nz4DOv8+CIM6xz4HPh861zq/Ov8+FIM61zr3OtM6tz4fOtc+EzrHOuSDOvc6xIM68zrfOvSDPhs6/z4HPhM+JzrjOtc6vLiDOoM6xz4HOsc66zrHOu86/z43OvM61IM6yzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM63ICDOus6xz4TOrM67zrfOvs63IM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDOtc6vzr3Osc65IM+Dz4nPg8+Ezq4uJzsKJGxhbmdbJ3VwbG9hZCddID0gJ86czrXPhM6xz4bPjM+Bz4TPic+DzrcnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ86XIM+Gz4zPgc68zrEgzrXOuc+Dzq7Ph864zrfOus61Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICfOlyDOtc65z4POsc6zz4nOs86uIM+EzrfPgiDPhs+Mz4HOvM6xz4IgzrHPgM6tz4TPhc+HzrUhISDOpc+AzqzPgc+HzrXOuSDOus6sz4DOv865zr8gz4DPgc+MzrLOu863zrzOsSDOvM61IM+Ezr8gzrHPgc+HzrXOr86/IFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIM+DzrXOuc+Bzq3Pgic7CiRsYW5nWydjb2xzJ10gPSAnJXMgz4PPhM6uzrvOtc+CJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMs+Oz4HOvyDPgc6/zrvPjM65JzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNM+Oz4HOvyDPgc6/zrvPjM65JzsKJGxhbmdbJ2hvdXInXSA9ICfOj8+BzrEnOwokbGFuZ1snbWluJ10gPSAnzpvOtc+Az4TPjCc7CiRsYW5nWydtZXJpZCddID0gJ86czrXPg863zrzOss+BzrnOvc+Mz4InOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ86jzrXOuc+Bzqw6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnzpXPhc+HzrHPgc65z4PPhM+OISDOv865IM+AzrHPgc6xz4TOt8+Bzq7Pg861zrnPgiDPg86xz4Igzq3Ph86/z4XOvSDOu863z4bOuM61zq8uJzsKJGxhbmdbJ2VkaXQnXSA9ICfOlc+AzrXOvs61z4HOs86xz4POr86xJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ86UzrnOsc6zz4HOsc+Gzq4nOwokbGFuZ1snZGF5J10gPSAnzpfOvM6tz4HOsSc7CiRsYW5nWydtb24nXSA9ICfOnM6uzr3Osc+CJzsKJGxhbmdbJ3llYXInXSA9ICfOp8+Bz4zOvc6/z4InOwokbGFuZ1snbm9uZSddID0gJyjPhM6vz4DOv8+EzrEpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyAnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICfOpM6/IE1vZHVsZSDOsc+AzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ86XIM6tzrrOtM6/z4POtyAgJXMgIM+Ezr/PhSBNb2R1bGUgzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnzqTOvyBNb2R1bGUgzrXOvc63zrzOtc+Bz47OuM63zrrOtSDPg8+EzrfOvSDOrc66zrTOv8+DzrcgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ86gzq/Pg8+JLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICfOkc+Azr/Pg8+Ezr/Ou86uIM+Gz4zPgc68zrHPgic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICfOo8+Fzr3Orc+HzrXOuc6xLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfOlc+AzrnOu861zrPOvM6tzr3Ovyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICfOkc+AzrXPgM65zrvOtc6zzrzOrc69zr8nOwokbGFuZ1sndGFiX21haW4nXSA9ICfOms+Fz4HOr8+Jz4InOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ86hz4XOuM68zq/Pg861zrnPgiDOtc68z4bOrM69zrnPg863z4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICfOkc+Azr/Pg8+Ezr/Ou86uIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ86hz4XOuM68zq/Pg861zrnPgiDOn8+Az4TOv861zrvOrc6zz4fOv8+FJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ86gz4HOv8+Hz4nPgc63zrzOrc69zrXPgiDPgc+FzrjOvM6vz4POtc65z4InOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnzqDPgc+Mz4TPhc+Azr8gzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOsc+Azr/Pg8+Ezr/Ou86uz4InOwokbGFuZ1sndGFiX3VkdCddID0gJ86UzrnOsc+Dz43Ovc60zrXPg863IM68zrUgVURUJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+zp/OuSDOvM61z4TOsc6yzrvOt8+Ezq3PgiBTbWFydHkgzrXOr869zrHOuSDOrc6zzrrPhc+BzrXPgiDOs865zrEgz4TOvyDPgM61zrTOr86/LjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOoM61z4HOuc+Dz4PPjM+EzrXPgc+Jzr0gzpXPgM65zrvOv86zz47OvSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TPic69IM61z4DOuc67zrXOs868zq3Ovc+Jzr0gzrXPgM65zrvOv86zz47OvSc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ86gz4HOv8+DzrjOrs66zrcgz4DOtc+BzrnPg8+Dz4zPhM61z4HOv869IENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICfOlM65zrHOs8+BzrHPhs6uIM+Ez4nOvSDOtc+AzrnOu861zrPOvM6tzr3Pic69IENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM66zrHOuSDOrM67zrvOt8+CIM60zrnOtc+NzrjPhc69z4POt8+CJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnzpTOuc6xzrPPgc6xz4bOriDPhM+Jzr0gzrXPgM65zrvOtc6zzrzOrc69z4nOvSDOtM65zrXPhc64z43Ovc+DzrXPic69JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ86gz4HOv8+DzrjOrc+Dz4TOtSDOus6xzrkgzqzOu867zr8gz4DPgc6/zr/Pgc65z4POvM+MJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TPic69IM61z4DOuc67zrXOs868zq3Ovc+Jzr0gz4DPgc6/zr/Pgc65z4POvM+Ozr0nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICfOoM6sz4HOsSDPgM6/zrvOu86sIM68zrfOvc+NzrzOsc+EzrEgzrfOu861zrrPhM+Bzr/Ovc65zrrOv8+NIM+EzrHPh8+FzrTPgc6/zrzOtc6vzr/PhSDOrc+Hzr/Phc69IM+Dz4TOsc67zrjOtc6vIM6xz4DPjCDPhM63zr0gSVAgzrTOuc61z43OuM+Fzr3Pg86uIM+DzrHPgi7OnyDOus+OzrTOuc66zrHPgiDOs865zrEgQW50aS1TcGFtIM6tz4fOtc65IM61zrzPgM6/zrTOr8+DzrXOuSDPhM63zr0gz4DOsc+BzqzOtM6/z4POty4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnzqXPgM6/z4jOr86xIM6zzrnOsSBzcGFtIM6xz4DPjCDPhM63zr0gSVAgICVzICzOtyDOv8+Azr/Or86xIM61zq/Ovc6xzrkgz4DOu86tz4nOvSDOvM+AzrvOv866zrHPgc65z4POvM6tzr3Oty4nOwokbGFuZ1sncmVvcmRlciddID0gJ86Rzr3Osc60zrnOrM+EzrHOvs63IM+AzrXOtM6vz4nOvSc7CiRsYW5nWydjYW5jZWwnXSA9ICfOkc66z43Pgc+Jz4POtyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICfOpM65zrzOrjogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ86gzrHPgc6xzrrOrM+Ez4kgzrXOr869zrHOuSDOvM65zrEgzrvOr8+Dz4TOsSDOvM61IM+EzrEgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCDPgM6/z4UgzrTOuc6xz4TOr864zrXOvc+EzrHOuSDOsc+Az4wgz4TOvyAgbW9kdWxlIENhdGFsb2dlci48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICJyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUiPGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAibXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzIjxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICfOnM65zrEgzrrOsc69zr/Ovc65zrrOriDOrc66z4bPgc6xz4POtyAocmVndWxhciBleHByZXNzaW9uKSDPgM6/z4UgzrjOsSDOtc+AzrnPhM+Bzq3PiM61zrkgz4TOvyDPhs65zrvPhM+BzqzPgc65z4POvM6xIM+Ez4nOvSDOsc69z4TOuc66zrXOr868zrXOvc+Jzr0gY2F0YWxvZ2VyIM66zrHPhM6sIM+Mzr3Ov868zrEnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICfOpM6/IM+Nz4jOv8+CIM+Ezr/PhSDPgM61zrTOr86/z4UgbXVsdGlzZWxlY3QnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ86azrHOvc6/zr3Ouc66zq4gzq3Ous+Gz4HOsc+DzrcgKFJlZ3VsYXIgRXhwcmVzc2lvbikgzrPOuc6xIM6Mzr3Ov868zrEgzqDOtc60zq/Ov8+FIENhdGFsb2dlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICfOjs+Izr/PgiDPgM61zrTOr86/z4UnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnzprOsc+EzqzOu86/zrPOv8+CIM+Az4HOv86/z4HOuc+DzrzOv8+NIM6zzrnOsSDPhM6xIM6xz4HPh861zq/OsSDOtc6+z4zOtM6/z4UnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICfOlc+EzrnOus6tz4TOsSDOus6xzrjOv8+BzrnOts+MzrzOtc69zrcgzrHPgM+MIM+Ezr/OvSDPh8+Bzq7Pg8+EzrcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ86jzrXOu86vzrTOsSDOs865zrEgzr3OsSDOtc+AzrnPg8+Ez4HOrc+IzrXPhM61IM68zrUgz4PPhc69zrTOrc+DzrzOv8+Fz4Igz4POtSDOvM61z4TOsc+Gzr/Pgc+Ez47Pg861zrnPgic7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ86lz4DOv86yzrvOrs64zrfOus61IGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICfOms6xz4TOt86zzr/Pgc6vzrXPgiDOvM61z4TOsc+Gzr/Pgc+Ez47Pg861z4nOvSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ86Rz4DOv8+Dz4TOv867zq4gzrHPhc+Ezr/PjSDPhM6/z4UgzrHPgc+HzrXOr86/z4Ugz4PPhM6/IHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ86lz4DPjM68zr3Ot868zrEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICfOnM6tzrPOuc+Dz4TOvyDOnM6uzrrOv8+CJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnzpXPhM65zrrOrc+EzrEgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICfOlc+EzrnOus6tz4TOsSBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ86kzrnOvM6uIM+Mz4TOsc69IM61z4DOuc67zrXOs861zq8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnzqTOuc68zq4gzrXOrM69IM60zrXOvSDOrc+HzrXOuSDOtc+AzrnOu861zrPOtc6vJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4Igzr/OvM6szrTOsc+CIENoZWNrYm94JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ86UzrnOsc6zz4HOsc+Gzq4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyLOlc+AzrnOu86/zrPOriDOtc69z4zPgiIgzprOtc6vzrzOtc69zr8nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnzpXPgM65zrvOv86zzq4gz4TOuc68zq7Pgic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICfOlc68z4bOsc69zrnOts+MzrzOtc69zr8gzozOvc6/zrzOsSDOtc+AzrnOu86/zrPOrs+CJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnzpjOrc68zrEgzrXPgM65zrvOv86zzq7Pgic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OtyDOtc+AzrnOu86/zrPOric7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrcgzrXPgM65zrvOv86zzq4nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc63IM61z4DOuc67zr/Os86uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnzozOvc6/zrzOsSDOlc+AzrnOu86/zrPOrs+CJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ86kzrnOvM6uIM+Fz4DOv86yzrvOrs64zrfOus61JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICfOlc+AzrnOu86/zrPOrc+CIM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4Ugz4DOr869zrHOus6xIChQdWxsZG93biknOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ86Vz4DOuc67zr/Os86tz4Igz4DOv867z4XOtc+AzrnOu86/zrPOrs+CIChNdWx0aXNlbGVjdCknOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ86UzrnOtc+NzrjPhc69z4POtyBFbWFpbCDPgM+Bzr/Ov8+BzrnPg868zr/PjSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ86Mzr3Ov868zrEgzrHPgc+HzrXOr86/z4Ugz4DPgc6/zr/Pgc65z4POvM6/z40nOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIs6Rz4DPjCDPjM69zr/OvM6xIiAgzrPOuc6xIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICfOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+HzrHOu86xz4HOriDOtc+AzrnOus+Nz4HPic+DzrcgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnzqfPgc63z4POuc68zr/PgM6/zrnOrs+Dz4TOtSDPh86xzrvOsc+Bzq4gzrXPgM65zrrPjc+Bz4nPg863IGVtYWlsIChlLmcuLCDOtc+Azq3PhM+BzrXPiM61ICJ4QHkiIM6xzr3PhM6vIM6zzrnOsSDPhM6/IM+Dz4XOvc6uzrjPic+CIM6xz4DOsc65z4TOv8+NzrzOtc69zr8gInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcizpHPgM+MIM60zrnOtc+NzrjPhc69z4POtyIgzrPOuc6xIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnzprPic60zrnOus6/z4DOv86vzrfPg863IM+HzrHPgc6xzrrPhM6uz4HPic69IEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4IgRW1haWxlciDOss6xz4POuc62z4zOvM61zr3OvyDPg861IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/IM+Azq/Ovc6xzrrOsSAoUHVsbGRvd24pJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ86Mzr3Ov868zrEgzrHPgc+HzrXOr86/z4UnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ86Yzq3OvM6xIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ86Mzr3Ov868zrEgz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnzprOsc+EzqzPg8+EzrHPg863IM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ86Iz4TOv865zrzOv865IM6zzrnOsSDOtc6zzrrOsc+EzqzPg8+EzrHPg863JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICfOlM61zr0gzrXOr869zrHOuSDOrc+Ezr/Ouc68zr8nOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ86jzrXOu86vzrTOsSDOsc69zrHOus6xz4TOtc+NzrjPhc69z4POt8+CIM68zrXPhM6sIM+EzrfOvSDOsc+Azr/Pg8+Ezr/Ou86uIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ86gzrHPgc6xzrrOsc67zrXOr8+DzrjOtSDOvc6xIM+Az4HOv8+DzrjOrc+DzrXPhM61IM6tzr3OsSDPgM61zrTOr86/IM+Dz4TOtyDPhs+Mz4HOvM6xIM6zzrnOsSDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zrfOuM61zq8gz4PPhM6/zr0gzrXOu86tzrPPh86/IM+Ezr/OvSDOtM61zrTOv868zq3Ovc6/zr0gz4TOv8+FIM+Hz4HOrs+Dz4TOty4gzpzPgM6/z4HOtc6vz4TOtSDOvc6xJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6xz4XPhM6uzr0gz4TOtyDPg8+Fzr3PhM+MzrzOtc+Fz4POtyc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnzqjOtc+FzrTPjs69z4XOvM6/IM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ86ozrXPhc60z47Ovc+FzrzOvyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ86gzrXOtM6vzrEgz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSWQgzqDOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnzpXOvM+GzqzOvc65z4POtyDOqM61z4XOtM+Ozr3Phc68zr/PhSDPhM+Jzr0gzqDOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICfOms6szr3Ov869z4TOsc+CIM66zrvOuc66IM+DzrUgzrHPhc+Ez4wgzrjOsSDOtc68z4bOsc69zq/Ots6/zr3PhM6xzrkgz4TOsSDPiM61z4XOtM+Ozr3Phc68zrEgz4TPic69IM+AzrXOtM6vz4nOvSDOus6xz4TOrCDPhM63zr0gz4DPgc6/z4POuM6uzrrOtyDOriDPhM63zr0gzrXPgM61zr7Otc+BzrPOsc+Dzq/OsSDOvM65zrHPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ86Mzr3Ov868zrEgz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnzqjOtc+FzrTPjs69z4XOvM6/IM+AzrXOtM6vzr/PhSDOus6xzrkgz4zOvc6/zrzOsSBET00gaWQgKENTUyBpZCknOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnzpvOtc+Az4TOv868zq3Pgc61zrnOtc+CIM6/zrzOrM60zrHPgiBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ86kz43PgM6/z4Igz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICfOs865zrEgzr3OsSDOtM63zrzOuc6/z4XPgc6zzq7Pg861z4TOtSDOrc69zrEgz4DOtc60zq/OvyDPh861zrnPgc65z4POvM6/z40gz4TOt8+CIM+Gz4zPgc68zrHPgi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOvc6tzrHPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnzpXOvM+GzrHOvc65z4POtyDPhM63z4IgzrXOus60zr/Pg863z4Igz4TOv8+FICBGb3JtIEJ1aWxkZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnzpHPhc+Ez4wgzrjOsSDOtc68z4bOsc69zq/Pg861zrkgz4TOv869IM6xz4HOuc64zrzPjCDPhM63z4Igzq3Ous60zr/Pg863z4Igz4TOv8+FIEZvcm0gQnVpbGRlciAgzrzOrc+DzrEgz4POtSDOrc69zrEgz4PPh8+MzrvOuc6/LCDOs865zrEgzr3OsSDOss6/zrfOuM6uz4POtc65IM+Ezr/OvSDOtc69z4TOv8+AzrnPg868z4wgz4PPhs6xzrvOvM6sz4TPic69JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM69zq3Ov8+FIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICfOms61zq/OvM61zr3OvyDOus6/z4XOvM+AzrnOv8+NIM6xz4DOv8+Dz4TOv867zq7Pgic7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ86azrXOuc68zrXOvc+MIM66zr/Phc68z4DOuc6/z40nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICfOoM+Bz4zPg864zrXPg863IM66z47OtM65zrrOsSBKYXZhc2NyaXB0IM+Dz4TOvyDOus6/z4XOvM+Azq8gzrHPgM6/z4PPhM6/zrvOrs+CIM+Azr/PhSDOuM6xIM6yzr/Ot864zq7Pg861zrkgz4PPhM63zr0gz4DPgc+MzrvOt8+Izrcgz4DOv867zrvOsc+AzrvPjs69IM+Fz4DOv86yzr/Ou8+Ozr0/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM66z47OtM65zrrOsSBzY3JpcHQgzrHPg8+GzqzOu861zrnOsc+CJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICfOms61zq/OvM61zr3OvyDOs865zrEgz4TOvyDOus6/z4XOvM+Azq8gIs6Vz4DPjM68zrXOvc6/IiAgKM6nz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4POtSDPhs+Mz4HOvM61z4IgzrzOtSDPgM6/zrvOu86tz4Igz4POtc67zq/OtM61z4IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICfOms61zq/OvM61zr3OvyDOs865zrEgz4TOvyDOus6/z4XOvM+Azq8gIs6gz4HOv863zrPOv8+NzrzOtc69zr8iICjOp8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM+DzrUgz4bPjM+BzrzOtc+CIM68zrUgz4DOv867zrvOrc+CIM+DzrXOu86vzrTOtc+CKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnzpXPgM65zrrPjc+Bz4nPg863IM6gzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ86gzrXOtM6vzr8gzrPOuc6xIM61z4DOuc66z43Pgc+Jz4POtyc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgzrPOuc6xIM+Ezr8gz4DOtc60zq/Ovyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyDOs865zrEgz4TOt869IM+Gz4zPgc68zrEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIM6zzrnOsSDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ86Vz4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyDPgM6/z4UgzrrOsc67zrXOr8+EzrHOuSDPgM+BzrnOvSDPhM63zr0gzrXOvM+GzqzOvc65z4POtyDPhM63z4IgzqbPjM+BzrzOsc+CICjOms6xzrvOtc6vz4TOtSDOvM+Mzr3OvyDOvM65zrEgz4bOv8+BzqwpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ86Vz4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyDPgM6/z4UgzrrOsc67zrXOr8+EzrHOuSDPgM+BzrnOvSDPhM63zr0gzrXOvM+GzqzOvc65z4POtyDPhM63z4IgzqbPjM+BzrzOsc+CICAozprOsc67zrXOr8+EzrUgz4POtSDOus6szrjOtSDPg861zrvOr860zrEgzrHOvSDOrc+HzrXOuSDPgM6/zrvOu86xz4DOu86tz4Igz4POtc67zq/OtM61z4Igzrcgz4bPjM+BzrzOsSknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICfOlc+EzrnOus6tz4TOsSDPh8+Bzq7Pg8+Ezrcgz4DOv8+FIM66zrHOu861zq/PhM6xzrkgz4zPhM6xzr0gzrPOr869zrXPhM6xzrkgzrXPgM65zrrPjc+Bz4nPg863IM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICfPg8+NzrzOss6/zrvOvyDPgM6/z4UgzrXPgM65z4POt868zqzOvc61zrkgz4TOsSDOsc+AzrHOuc+Ezr/Pjc68zrXOvc6xIM+AzrXOtM6vzrEgKM+Dz4XOvc6uzrjPic+CICopJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnzpHPgM6xzrnPhM61zq/PhM6xzrknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ86Rz4DOsc65z4TOtc65z4TOsc65IM68zrnOsSDOsc+AzqzOvc+EzrfPg863IM6zzrkgXCfOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ86Rz4DPjM66z4HPhc+IzrcgzrXPhM65zrrOrc+EzrHPgic7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICfOms+Bz43Oss61zrkgz4TOvyDPjM69zr/OvM6xIM+Ezr/PhSDPgM61zrTOr86/z4Ugz4PPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnzqPPhM6xz4TOuc66z4wgzrrOtc6vzrzOtc69zr8gzrPOuc6xIM61zrzPhs6szr3Ouc+DzrcnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICfOms6xzr3PjM69zrXPgiBSZWdleCDOs865zrEgzrXPgM65zrrPjc+Bz4nPg863JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICfOkc+BzrnOuM68z4zPgiDOk8+BzrHOvM68z47OvSDOs865zrEgz4TOt869IM6xz4DOtc65zrrPjM69zrnPg863JzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ86cz4zOvc6/IM6zzrnOsSDOsc69zqzOs869z4nPg863JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICfOp8+Jz4HOr8+CIM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICfOo861zrvOr860zrEgzrHOvc6xzrrOsc+EzrXPjc64z4XOvc+DzrfPgiDOvM61z4TOrCDPhM63zr0gzrHPgM6/zrTOv8+Hzq4nOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ86Rz4XPhM6uIM63IM66zrHOvc6/zr3Ouc66zq4gzq3Ous+Gz4HOsc+DzrcgKHJlZ3VsYXIgZXhwcmVzc2lvbikgz4fPgc63z4POuc68zr/PgM6/zq/Ot8+EzrHOuSDOvM+Mzr3OvyDOsc69ICDPhM6/ICJ2YWxpZGF0aW9uIHR5cGUiICDOtc6vzr3Osc65IM+Bz4XOuM68zrnPg868zq3Ovc6/IM6zzrnOsSAgIHJlZ2V4LiDOoM61z4HOuc67zrHOvM6yzqzOvc61zrkgzq3Ovc6xIM6/zrvOv866zrvOt8+Bz4nOvM6tzr3OvyDPg861z4QgzrXOvc+Ezr/Ou8+Ozr0gz4zOvM6/zrnOvyDOvM61IM+EzrfPgiAgUGVyLCDOvM61IHN0YXJ0L3N0b3Agc2xhc2hlcyDOus6xzrkgZmxhZ3MgKM6gLs6nLiwgIi9pbWFnZVxcLihcXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxXCdkICc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ86Rz4DPjM66z4HPhc+Izrcgz4PPhs6xzrvOvM6sz4TPic69JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICfOpM+Nz4DOv8+CIM6xz4DOtc65zrrPjM69zrnPg863z4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICfOkc+Azr/PhM+Bzq3PiM+EzrHOuSDPhM6xIGRlYnVnIC8gzrzOt869z43OvM6xz4TOsSDOu86szrjOv8+Fz4IgzrHPgM+MIM+Ezr8gzr3OsSDOtM6/z4XOvSDOv865IM+Hz4HOrs+Dz4TOtc+CLiAnOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyBFbWFpbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICfOnM6tzrPOuc+Dz4TOvyDOvM6tzrPOtc64zr/PgiDOsc+Bz4fOtc6vzr/PhSDOs865zrEgzrzOtc+EzrHPhs+Mz4HPhM+Jz4POtyAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ86fIM+AzrXPgc65zr/Pgc65z4POvM+Mz4IgzrHPhc+Ez4zPgiDOtc6vzr3Osc65IM61z4DOuc+AzrvOrc6/zr0gzrHPgM+MIM6/z4DOv865zrHOtM6uz4DOv8+EzrUgz4zPgc65zrEgzrrOsc64zr/Pgc6vzrbOv869z4TOsc65IM6xz4DPjCDPhM63zr0gcGhwICDOriDPhM63zr0gz4DOsc+BzrHOvM61z4TPgc6/z4DOv86vzrfPg863IM+Ezr/PhSDOtM65zrHOus6/zrzOuc+Dz4TOri4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICfOlc+AzrnPhM+BzrXPgM+MzrzOtc69zrXPgiDOlc+AzrXOus+EzqzPg861zrnPgic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnzpvOr8+Dz4TOsSDOtM65zrHPh8+Jz4HOuc+DzrzOrc69zrcgzrzOtSDOus+OzrzOsSAsIM+Hz4nPgc6vz4Igz4TOt869IM+EzrXOu861zq/OsS4gKM6gLs6nLiwgImpwZyxnaWYsanBlZyIpLiDOpM6xIM66zrXOvc6sIM6xzrPOvc6/zr/Pjc69z4TOsc65LCDOsc69IM60zrXOvSDPg8+FzrzPgM67zrfPgc+JzrjOtc6vIM+Ez4zPhM61IM60zrXOvSDPhc+AzqzPgc+Hzr/Phc69IM+AzrXPgc65zr/Pgc65z4POvM6/zq8gz4PPhM65z4IgzrXPgM61zrrPhM6sz4POtc65z4Igz4TPic69IM6xz4HPh861zq/Pic69Lic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnzqDOtc+BzrnOv8+BzrnPg868zr/OryDOtc68z4bOrM69zrnPg863z4I/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4TPic69IM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDOus6xzrkgzrXPgM61zrrPhM6sz4POtc+Jzr0gzrPOuc6xIM+Ezr8gz4DOtc60zq/OvyDOvM61z4TOsc+Gz4zPgc+Ez4nPg863z4I/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOs865zrEgz4TOt869IM61zrzPhs6szr3Ouc+Dzrcgz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ86jzrXOu86vzrTOsSAlcyDOsc+Az4wgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ86kzr8gz4DOtc60zq/OvyDOtM61zr0gzq3Ph861zrkgRmllbGQgz4DPgc6/zrfOs868zq3Ovc61z4IgzrXPgM65zrvOv86zzq3Pgic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnzprOtc6vzrzOtc69zr8gz4DOv8+FIM61z4DOuc+Dz4TPgc6tz4bOtc+EzrUgzrPOuc6xIM6xz4DPgc6/z4POtM65z4zPgc65z4PPhM63IM+EzrnOvM6uIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnzpXOvc61z4HOs86/z4DOv86vzrfPg863IM6zz4HOrs6zzr/Pgc63z4Igz4DPgc6/z4POuM6uzrrOt8+CIM+AzrXOtM6vz4nOvSDOvM61IM+Hz4HOrs+DzrcgzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDOvM61zr3Ov8+NIChwdWxsZG93bikgzrPOuc6xIM+EzrnPgiDPhs+Mz4HOvM61z4I/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnzpXOvc61z4HOs86/z4DOv86vzrfPg863IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4UgzrzOtc69zr/PjSAocHVsbGRvd24pIM6zz4HOrs6zzr/Pgc63z4Igz4DPgc6/z4POuM6uzrrOt8+CIM+AzrXOtM6vz4nOvT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ86Tz4HOrs6zzr/Pgc63IM+Az4HOv8+DzrjOrs66zrcgz4DOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnzprOrM69zr/Ovc+EzrHPgiDOus67zrnOuiDPg861IM6xz4XPhM+MIM64zrEgzrzPgM6/z4HOv8+Nzr0gzr3OsSDPg8+EzrHOu86/z43OvSDOvM+Mzr3OvyDOrc+Jz4IgMTAgzrzOt869z43OvM6xz4TOsSDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM6xz4DPjCDOvM65zrEgz4PPhc6zzrrOtc66z4HOuc68zq3Ovc63IM60zrnOtc+NzrjPhc69z4POtyBJUCAozrHOvc6sIM+Oz4HOsSkuICc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICfOlc69zrXPgc6zzr/PgM6/zq/Ot8+DzrcgzrHPgM67zqwgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCBhbnRpLXNwYW07JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICfOlc68z4bOrM69zrnPg863IElEcyDPgM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnzprOrM69zr/Ovc+EzrHPgiDOus67zrnOuiDPg861IM6xz4XPhM+MIM64zrEgzrXPgM65z4TPgc6tz4jOtc65IM+EzrfOvSDOtc68z4bOrM69zrnPg863IM+Ez4nOvSBpZHMgIM+Ez4nOvSDPgM61zrTOr8+Jzr0gzrrOsc+Ezqwgz4TOt869IM+Az4HOv8+DzrjOrs66zrcgzq4gz4TOt869IM61z4DOtc6+zrXPgc6zzrHPg86vzrEgzrzOuc6xz4Igz4bPjM+BzrzOsc+CICc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnzpzOtc+EzrHPhs+Mz4HPhM+Jz4POtyDPhs+Mz4HOvM6xz4IgzrHPgM+MIM6xz4HPh861zq/OvyBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ86nz4HOrs+DzrcgzrHPhc+Ezr/PjSDPhM6/z4Ugzr/Ovc+MzrzOsc+Ezr/PgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ86VzrnPg86xzrPPic6zzrcgz4bOv8+BzrzOrM+CIFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ86nz4HOrs+DzrcgzrHPhc+Ezr/PjSDPhM6/z4Ugz4jOtc+FzrTPjs69z4XOvM6/z4Ugz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICfOlM63zrzOuc6/z4XPgc6zzq/OsSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ86Rz4XPhM+MzrzOsc+Ezr8gVVJMPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnzp3OsSDPg8+FzrzPgM67zrfPgc+JzrjOtc6vIM6xz4XPhM+MzrzOsc+EzrEgz4TOvyAgVVJMIM6xz4DPjCDPhM63zr0gz4POtc67zq/OtM6xIM+Azr/PhSDOss+Bzq/Pg866zrXPhM6xzrkgzrcgz4bPjM+BzrzOsT8gKM6xz4XPhM+MIM+Fz4DOtc+BzrnPg8+Hz43Otc65IM+EzrfPgiDOtc+AzrnOu86/zrPOrs+CIM+Dz4XOvc60zq3Pg868zr/PhSDPgM6xz4HOsc66zqzPhM+JKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdVUkwgzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3Ov8+FIM+Dz4XOvc60zq3Pg868zr/PhSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICfOms61zq/OvM61zr3OvyDOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/z4Ugz4PPhc69zrTOrc+DzrzOv8+FJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICfOo8+Nzr3OtM61z4POvM6/z4Igz4POtSDPg861zrvOr860zrEgz4TOv8+FIM6Zz4PPhM+Mz4TOv8+Azr/PhSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICfOnM+Azr/Pgc61zq/PhM61IM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6fz4DPhM6/zq3Ou861zrPPh86/IDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiDOs865zrEgz4TOt869IM+Az4HOv8+Dz4TOsc+Dzq/OsSDPhM63z4Igz4bPjM+BzrzOsc+CIM6xzr0gzq3Ph861z4TOtSDOtc6zzrrOsc+EzrHPg8+EzrfOvM6tzr3OvyDPhM6/IENhcHRjaGEgbW9kdWxlLiDOs865zrEgz4DOtc+BzrnPg8+Dz4zPhM61z4HOtc+CIM+AzrvOt8+Bzr/Phs6/z4HOr861z4IgLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj7OtM61zq/PhM61IM+Ezr8gQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICfOp8+Bzq7Pg863IM6fz4DPhM6/zrXOu86tzrPPh86/z4UgzrPOuc6xIM+EzrfOvSDPgM+Bzr/Pg8+EzrHPg86vzrEgzrHPgM+MIM66zrHOus+MzrLOv8+FzrvOtc+CIM6xz4DOv8+Dz4TOv867zq3Pgj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ86Vz4DOuc67zrXOvs+EzrUgzrPOuc6xIM+Az4HOv8+Dz4TOsc+Dzq/OsSDPhM63z4Igz4bOrM+BzrzOsc+CIM68zrUgz4TOt869IM68zq3OuM6/zrTOvyDPhM6/z4Ugzp/PgM+Ezr/Otc67zq3Os8+Hzr/PhSAgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM+AzrvOt866z4TPgc6/zrvOv86zzq7Pg8+EzrUgz4TOvyDOus61zq/OvM61zr3OvyDPgM6/z4Ugz4bOsc6vzr3Otc+EzrHOuSDPg8+EzrfOvSDOtc65zrrPjM69zrEuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ86bzrHOvc64zrHPg868zq3Ovc6/IM66zrXOr868zrXOvc6/IM6fz4DPhM6/zrXOu86tzrPPh86/z4UnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ86fIM6fz4DPhM6/zq3Ou861zrPPh86/z4IgzrTOtc69IM61zrnOvc6xzrkgz4PPic+Dz4TPjM+CLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICfOms61zq/OvM61zr3OvyDOss6/zrfOuM61zq/Osc+CIM6zzrnOsSDPhM6/zr0gzp/PgM+Ezr/Orc67zrXOs8+Hzr8nOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnzp3OsSDOvM63zr0gz4XPgM6/zrLOu863zrjOv8+Nzr0gzr/OuSDPhM65zrzOrc+CIM6xz4DPjCDPhM6xIM6xz4DOtc+AzrnOu861zrPOvM6tzr3OsSDOus6/z4XPhM65zqwgKGNoZWNrYm94KSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ86kz4POrc66zrHPgc61IM+Ezr8gzrHOvSDOuM6tzrvOtc+EzrUgzrzPjM69zr8gz4TOsSDOtc+AzrnOu861zrPOvM6tzr3OsSDOus6/z4XPhM65zqwoY2hlY2tib3gpIM69zrEgzrXPgM65z4PPhM+Bzq3PiM6/z4XOvSDPhM65zrzOrc+CLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnzpXPhM65zrrOrc+EzrEgTGluayc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnIFVSTCDPg8+Fzr3OtM6tz4POvM6/z4Ugz4DPgc6/zr/Pgc65z4POvM6/z40nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICfOlc+AzrnOu861zrPOvM6tzr3OvyDOsc+Azr8gz4DPgc6/zrXPgM65zrvOv86zzq4/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICfOp8+Bzq7Pg863IDI0z4nPgc6/z4Ugz4HOv867zr/Os865zr/PjT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICfOoM6cJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICfOnM6cJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnzqfPgc6uz4POtyBzbWFydHkgdGFncyDOs865zrEgz4TOvyDPgM61zrTOr86/Pyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnzqPOtc65z4HOrc+CICjPg863zrzOtc6vz4nPg863OiDOsc+Fz4TPjCDOvM+Azr/Pgc61zq8gzr3OsSDPgM6xz4HOsc66zrHOvM+GzrjOtc6vIM6xz4DPjCBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICfOo8+Ezq7Ou861z4IgKM+DzrfOvM61zq/Pic+Dzrc6IM6xz4XPhM+MIM68z4DOv8+BzrXOryDOvc6xIM+AzrHPgc6xzrrOsc68z4bOuM61zq8gzrHPgM+MIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnzpvOtc+Az4TOv868zq3Pgc61zrnOtc+CIM66z43Pgc65zrHPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ86gz4HOv861z4DOuc67zr/Os86uIM+DzrUgzrrOtc69z4wnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OvyDPg861IM66zrXOvc+MICjOkc+Azr/Otc+AzrnOu86tzr7PhM61IM6zzrnOsSDPhM63zr0gz4POt868zrXPgc65zr3OriDOt868zrXPgc6/zrzOt869zq/OsSDPic+CIM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8pJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICfOlc68z4bOrM69zrnPg863IM+Ezr/PhSDPiM61z4XOtM+Ozr3Phc68zr/PhSDPhM6/z4Ugz4fPgc6uz4PPhM63Pyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICfOlc68z4bOrM69zrnPg863IM+Ezr/PhSDOv869z4zOvM6xz4TOv8+CIM+Ezr/PhSDPh8+Bzq7Pg8+Ezrc/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPhM6/z4UgzrXPgM65zrjOrc+Ezr/PhSDPhM6/z4Ugz4fPgc6uz4PPhM63Pyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ86gzrXPgc65zr/Pgc6vz4POtc65IM+Ezr/OvSDOus6xz4TOrM67zr/Os86/IM+Ez4nOvSDPh8+BzrfPg8+Ez47OvSDPg8+Ezr/Phc+CIM+Hz4HOrs+Dz4TOtc+CIM+Dz4XOs866zrXOus+BzrnOvM6tzr3Ot8+CIM6/zrzOrM60zrHPgic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICfOms+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDOtM61zrTOv868zq3Ovc+Jzr0gz4DOv8+FIM6xz4DOv864zrfOus61z43Ov869z4TOsc65IM+Dz4TOtyDOss6sz4POtyDOtM61zrTOv868zq3Ovc+Jzr0nOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ86gzrnPg8+Ezr/PgM6/zrnOt8+EzrnOus+MIChDZXJ0aWZpY2F0ZSkgzrPOuc6xIM+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDPhM+Jzr0gzrTOtc60zr/OvM6tzr3Pic69JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ86jz4XOvc64zrfOvM6xz4TOuc66zq4gz4bPgc6sz4POtyDOriDPhM63zr0gzrTOuc6xzrTPgc6/zrzOriDPgM+Bzr/PgiDPhM6/IM6xz4HPh861zq/OvyDPgM6/z4Ugz4DOtc+BzrnOrc+HzrXOuSDPg8+Fzr3OuM63zrzOsc+EzrnOus6uIM+Gz4HOrM+DzrcuICjOkc69IM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgT3BlblNTTCwgzrHPhc+Ezq4gzrXOr869zrHOuSDOtyDPg8+Fzr3OuM63zrzOsc+EzrnOus6uIM+Gz4HOrM+DzrcgzrPOuc6xIM+Ezr8gzrnOtM65z4nPhM65zrrPjCDOus67zrXOuc60zq8pJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ86kzrHOvs65zr3PjM68zrfPg863IM6zzrnOsSDPgM61zrTOr86xIM68zrUgzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+DzrcgSGFzaD8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICfOmc60zrnPic+EzrnOus+MIM66zrvOtc65zrTOryDOs865zrEgzr3OsSDPhM6/IM+Hz4HOt8+DzrnOvM6/z4DOv865zq7Pg861z4TOtSDPg8+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDOtM61zrTOv868zq3Ovc+Jzr0nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICfOkc+Fz4TPjCDOus+BzrnPgM+Ezr/Os8+BzrHPhs61zrkgz4TOsSDPgM61zrTOr86xIM+EzrHOvs65zr3PjM68zrfPg863z4IsIM6xzrvOu86sIM6xz4bOrs69zrXOuSDPhM6xIM+Az4HPjs+EzrEgzrPPgc6szrzOvM6xz4TOsSDPh8+Jz4HOr8+CIM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863LiDOms+Bz4XPgM+Ezr/Os8+BzrHPhs65zrrOrCwgzrHPhc+Ez4wgzrTOt868zrnOv8+Fz4HOs861zq8gzrzOuc6xIM61z4XPgM6szrjOtc65zrEsIM6xzrvOu86sIM6zzrnOsSDPhM6/z4XPgiDPgM61z4HOuc+Dz4PPjM+EzrXPgc6/z4XPgiDPh8+Bzq7Pg8+EzrXPgiwgzrXOr869zrHOuSDOsc+Azr/OtM61zrrPhM+MLg0KzpXOr869zrHOuSDPg8+FzrzOss65zrLOsc+DzrzPjM+CIM68zrXPhM6xzr7PjSDPhM63z4IgzrHPg8+GzqzOu861zrnOsc+CIM66zrHOuSDPhM63IM60z4XOvc6xz4TPjM+EzrfPhM6xIM69zrEgz4TOsc6+zrnOvc6/zrzOrs+DzrXPhM61IM+EzrnPgiDOtc6zzrPPgc6xz4bOrc+CLiAgzpcgz4TOsc6+zrnOvc+MzrzOt8+DzrcgzrPOr869zrXPhM6xzrkgzrrOsc+Ezqwgz4DPgc6/z4POrc6zzrPOuc+DzrcsIM6xzrvOu86sIM6xz4HOus61z4TOrCDOus6xzrvOrC4gzpXOrM69IM60zrXOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPhc+Ezq7OvSDPhM63zr0gzrXPgM65zrvOv86zzq4sIM+EzrEgz4DOtc60zq/OsSDOsc+Azr/OuM63zrrOtc+Nzr/Ovc+EzrHOuSDPg861IM66zrHOuM6xz4HPjCDOus61zq/OvM61zr3Ovy4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICfOlyDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDPhM63z4IgzrHPgM6/zrjOrs66zrXPhc+DzrfPgiDOtM61zr0gzrXOr869zrHOuSDOtM65zrHOuM6tz4POuc68zrcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICfOoM6xz4HOsc66zrHOu861zq/Pg864zrUgzr3OsSDOtc6zzrrOsc+EzrHPg8+Ezq7Pg861z4TOtSDPhM6/IE9wZW5TU0wgbW9kdWxlIM6uIM+EzrfOvSAgz4XPgM6/z4PPhM6uz4HOuc6+zrcgbWNyeXB0ICDOtc6szr0gIM61z4DOuc64z4XOvM61zq/PhM61IM+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDOtM61zrTOv868zq3Ovc+Jzr0uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ86gzrHPgc6xzrrOsc67z44gIM6yzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM6tz4fOtc+EzrUgz4TOt869IM+Fz4DOv8+Dz4TOrs+BzrnOvs63IENVUkwgzrXOvc61z4HOs86/z4DOv865zrfOvM6tzr3OtyDPg8+EzrfOvSBQSFAuIM6UzrXOr8+EzrUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnzqfPgc6uz4POtyDPg8+EzrfOvSDOrc66zrTOv8+DzrcgTUxFJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICfOkc67zrvOsc6zzrcgzrPOuc6xIM+EzrfOvSDPhc+Azr/Pg8+EzrfPgc63zr7OtyDPhM6/z4UgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiAuICDOnM63zr0gz4TOvyDOtc+AzrnOu86tzr7Otc+EzrUgzrHOvSDOtM61zr0gzq3Ph861z4TOtSDPhM63zr0gzq3Ous60zr/Pg863IE1MRSEuJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ86SzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM6tz4fOtc+EzrUgzrXPgM65zrvOrc6+zrXOuSDPhM6/IM65zrTOuc+Jz4TOuc66z4wgzrrOu861zrnOtM6vIM+Azr/PhSDOtc6vzr3Osc65IM66zrHPhM6szrvOu863zrvOvyDOs865zrEgz4TOvyDPgM65z4PPhM6/z4DOv865zrfPhM65zrrPjCDPgM6/z4Ugz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDOs865zrEgz4TOt869IM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863JzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ86SzrnOss67zrnOv864zq7Ous63IM6az4HPhc+Az4TOv86zz4HOrM+GzrfPg863z4InOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnzpXOu86tzrPOvs+EzrUgzrHPhc+Ez4wgzrPOuc6xIM69zrEgzrrPgc+Fz4DPhM6/zrPPgc6xz4bOt864zr/Pjc69IM+EzrEgzrHPgM6/zrjOt866zrXPhc68zq3Ovc6xIM60zrXOtM6/zrzOrc69zrEuIM6Rz4XPhM+MIM66zrHOuM65z4PPhM6sIM6xzrrPjM68zrcgz4DOuc6/IM60z43Pg866zr/Ou86/ICjOsc67zrvOrCDPjM+HzrkgzrHOtM+Nzr3Osc+Ezr8pIM6zzrnOsSDPhM6/z4XPgiDPh86szrrOtc+BICDOvc6xIM60zr/Phc69IM+EzrnPgiDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ86fzrkgz4DOsc+BzrHOus6sz4TPiSDOtc+AzrnOu86/zrPOrc+CIM65z4PPh8+Nzr/Phc69IM68z4zOvc6/IM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDPhM63zr0gzrLOuc6yzrvOuc6/zrjOrs66zrcgzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+DzrfPgiBPcGVuU1NMJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ86SzrnOss67zrnOv864zq7Ous63IM6az4HPhc+Az4TOv86zz4HOrM+GzrfPg863z4InOwokbGFuZ1snb3BlbnNzbCddID0gJ86SzrnOss67zrnOv864zq7Ous63IE9wZW5TU0wnOwokbGFuZ1snbWNyeXB0J10gPSAnzpLOuc6yzrvOuc6/zrjOrs66zrcgUEhQIG1jcnlwdCc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ86jz43Ovc60zrXPg863IM68zrUgz4fPgc6uz4PPhM63IEZyb250ZW5kJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnzpXOs866zrHPhM6xz4PPhM6uz4PPhM61IM+Ezr8gRnJvbnRlbmQgbW9kdWxlIM6zzrnOsSDOvc6xIM+Dz4XOvc60zq3Pg861z4TOtSDOvM65zrEgz4bPjM+BzrzOsSDOus6xzrkgz4TOsSDOtM61zrTOv868zq3Ovc6xIM+EzrfPgiDPg861IM6tzr3OsSDPg8+FzrPOus61zrrPgc65zrzOrc69zr8gz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICfOlc+AzrnOu86tzr7PhM61IM6xz4XPhM+MICDOs865zrEgz4TOt869IM+Dz43Ovc60zrXPg863IM60zrXOtM6/zrzOrc69z4nOvSDOvM+Mzr3OvyDOvM61IM+Ezr/Phc+CIM+Dz4XOvc60zrXOtM61zrzOrc69zr/Phc+CIGZyb250LWVuZCDPh8+Bzq7Pg8+EzrXPgi4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ86az4HPhc+Az4TOv86zz4HOrM+GzrfPg863JzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ86Vzr7Osc6zz4nOs86uIM+Gz4zPgc68zrHPgiDOvM61IM6xzr3Osc+Gzr/Pgc6sIM+DzrUgVURUIM+Jz4IgJHBhcmFtc1tcJ0ZPUk1cJ10/KM6czrfOvSDPhM6/IM66zqzOvc61z4TOtSDOsc+Fz4TPjCwgzrHOvSDPgM+Bz4zOus61zrnPhM6xzrkgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgz4TOt869IHByaW50X3IoJHBhcmFtcykpJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnzp/Ou8+MzrrOu863z4HOvyDPhM6/IFVSTCwgzr3OsSDPgM61z4HOuc67zrHOvM6yzqzOvc61zrkgz4TOvyDPgM+Bz4nPhM+MzrrOv867zrvOvyDOus6xzrkgz4TOt869IM60zrnOsc60z4HOv868zq4gKM6gLs6nLiwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnVVJMIM+Fz4DOv86yzr/Ou86uz4Igz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ86czq3OuM6/zrTOv8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnzqPPhc+Dz4fOtc+EzrnPg868z4zPgiDPhM6/z4Ugz4DOtc60zq/Ov8+FICAiJXMiIM+DzrUgzrzOtc+EzrHOss67zrfPhM6uIM6xz4DOv8+Dz4TOv867zq7PgiDPhM63z4Igz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICfOo8+FzrzPgM67zrfPgc+JzrzOsc+EzrnOus6sIM+Dz4fPjM67zrnOsSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICfOn8+EzrnOtM6uz4DOv8+EzrUgz4DOv8+FIM64zrEgz4DPgc6/z4POsc+Bz4TOrM+EzrHOuSDPg8+EzrfOvSDPhc+Azr/Oss6/zrvOriwgz4POtSBVUkwtzrrPic60zrnOus6/z4DOv865zrfOvM6tzr3OtyDOvM6/z4HPhs6uICguIM6gLs6nLiwgInVzZXIgPVN0ZXZlK0pvYnMmZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ86jz4XOvM+AzrXPgc65zrvOrM6yzrXPhM61IM+AzrXOtM6vzr8gz4PPhM63zr0gzqXPgM6/zrLOv867zq4nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnzqTOsSDOtM61zrTOv868zq3Ovc6xIM64zrEgzrHPgM6/zrjOt866zrXPjc6/zr3PhM6xzrkgz4POtSDOvM6/z4HPhs6uIFhNTCDPg8+Ezr8gW1BSRUZJWCBfbW9kdWxlX2ZiX2Zyb21icm93c2VyXSDPgM6vzr3Osc66zrEgz4TOt8+CIM6yzqzPg863z4IgzrTOtc60zr/OvM6tzr3Pic69Lic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICfOo8+GzqzOu868zrEhIM6Vzq/PhM61IM+Ezr8gzq3Ovc+Ez4XPgM6/IM60zrXOvSDOrc+HzrXOuSDOus6xzrzOr86xIM+Dz4fOrc+DzrcgzrzOtSBmb3JtX2J1aWxkZXIsIM6uIM60zrXOvSDOvM+Az4zPgc61z4POtSDOvc6xIM6xz4HPh865zrrOv8+Azr/Ouc63zrjOtc6vICjOu8+MzrPPiSAgz4DPgc6/zrLOu863zrzOrM+Ez4nOvSDOvM69zq7OvM63z4I/KSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnzpzPjM69zr8gz4PPhM63zr0gzr/OvM6szrTOsSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICfOlc68z4bOrM69zrnPg863IM+Dz4TOv869IM+Hz4HOrs+Dz4TOtz8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnzqTOvyDPgM61zrTOr86/IM+Az4HOrc+AzrXOuSDOvc6xIM68zrXOr869zrXOuSDOus61zr3PjCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICfOnM61z4TOsc6yzrvOt8+Ezq3PgiDOs865zrEgz4DPgc+Mz4TPhc+Azr8nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnzpTOuc6xzrjOrc+DzrnOvM61z4IgzpzOtc+EzrHOss67zrfPhM6tz4InOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ86czrXPhM6xzrLOu863z4TOriBQSFAgJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnzpfOvM61z4HOv868zrfOvc6vzrEgzqXPgM6/zrLOv867zq7Pgic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnzp8gzrTOuc6xzrrOv868zrnPg8+Ezq7PgiDPg86xz4InOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnzpcgzrTOuc61z43OuM+Fzr3Pg863IElQIM+Ezr/PhSDOsc+Ez4zOvM6/z4Ugz4DOv8+FIM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+DzrHOuSDPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgz4TOt8+CIM+DzrXOu86vzrTOsc+CIM+Azr/PhSDPgM61z4HOuc6tz4fOtc65IM+EzrfOvSDPhs+Mz4HOvM6xJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ86IzrrOtM6/z4POtyBGb3JtQnVpbGRlcic7CiRsYW5nWydoZWxwX3RhYiddID0gJ86nzrHPgc6xzrrPhM6uz4HOsc+CIFRhYic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ86kzrEgz4jOtc+FzrTPjs69z4XOvM6xIM+Ez4nOvSDPgM61zrTOr8+Jzr0gzrzPgM6/z4HOv8+Nzr0gzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc63zrjOv8+Nzr0gzrXOvc6xzrvOu86xzrrPhM65zrrOrCjOuc60zrnOsc6vz4TOtc+BzrEgz4fPgc6uz4POuc68zr8gzrHOvSDPhM6/IFNtYXJ0eSDOtM61zr0gz4PPhc69zrXPgc6zzqzOts61z4TOsc65IM68zrUgz4fOsc+BzrHOus+Ezq7Pgc61z4IgzqzOu867zr/Phc+CIM61zrrPhM+Mz4Igz4TOv8+FIEFTQ0lJIDMyLTEyNikgJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPm5hbWU8L3RkPjx0ZCBjbGFzcz0ib2RkIj5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9Im9kZCI+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAieyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnzpTOtc6vz4TOtSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz7PhM6/ICDOtc6zz4fOtc65z4HOr860zrnOvyDPhM63z4IgUEhQIDwvYT4gzrPOuc6xIM6yzr/Ors64zrXOuc6xIM+Dz4TOt869IM68zr/Pgc+Gzr/PgM6/zq/Ot8+Dzq4gzrfOvM61z4HOv868zrfOvc6vzrHPgi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnzpzOtc+EzrHOss67zrfPhM6uJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ86Rzr3PhM65z4DPgc6/z4PPjs+AzrXPhc+Dzrcgz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnwqsgzqDOr8+Dz4kgz4PPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM+Az4HOv8+Ez43PgM6/z4UnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM+Az4HOv8+Ez43PgM6/z4UgSFRNTCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ86UzrfOvM65zr/Phc+BzrPOr86xIM60zrXOr86zzrzOsc+Ezr/PgiDPgM+Bzr/PhM+Nz4DOv8+FIM6azrXPhs6xzrvOr860zrHPgic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ86UzrfOvM65zr/Phc+BzrPOr86xIM60zrXOr86zzrzOsc+Ezr/PgiDPgM+Bzr/PhM+Nz4DOv8+FIM6lz4DOv8+Dzq3Ou865zrTOv8+FJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM6azrXPhs6xzrvOr860zrHPgic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICfOvyDPh86xz4HOsc66z4TOrs+BzrHPgiB0YWInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6/IM6zzrnOsSDOvM65zrEgzrPPgc6xzrzOvM6uIM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDOtc6+z4zOtM6/z4UnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOs865zrEgz4TOt869IM66zrXPhs6xzrvOr860zrEgz4TOv8+FIM6xz4HPh861zq/Ov8+FIM61zr7PjM60zr/PhSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ86gz4HPjM+Ez4XPgM6/IM6zzrnOsSDPhM6/IM+Fz4DOv8+Dzq3Ou865zrTOvyDPhM6/z4UgzrHPgc+HzrXOr86/z4UgzrXOvs+MzrTOv8+FJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgVVJMIM6zzrnOsSDOvc6xIM66zqzOvc61z4TOtSDOus67zrnOuiDOs865zrEgz4TOt869IM61z4DOsc67zq7OuM61z4XPg863IM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICfOnM61z4TOsc6yzrvOt8+Ezq4gKM6UzrXPgiDPhM63zr0gzrrOsc+Bz4TOrc67zrEgzrPOuc6xIM6gz4HOv8+Hz4nPgc63zrzOrc69zr/Phc+CIM6xzr0gzrPOr869zrXPhM61IM+Hz4HOrs+DzrcgzrXPhM65zrrOtc+Ez47OvSBTbWFydHkgKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ86czr/Pgc+Gzq4gzrfOvM61z4HOv868zrfOvc6vzrEgKM6yzrHPg865z4POvM6tzr3OvyDPg8+Ezr8gPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+IM+Az4HPjM+Ez4XPgM6/IM63zrzOtc+Bzr/OvM63zr3Ouc+Ozr0gz4TOt8+CIFBIUDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnzqfPgc6uz4POtyBXWVNJV1lHIM6zzrnOsSDPhM63z4Igz4DOtc+BzrnOv8+HzrXPgiDOus61zrnOvM6tzr3Ov8+FICjOkc+Az4wgz4TOt869IM68zrXPgc65zqwgz4TOv8+FIM60zrnOsc+HzrXOuc+BzrnPg8+Ezq4gzrzPjM69zr8pPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ86jz4XOvM+AzrXPgc65z4bOv8+BzqwgIM6lz4DOv86yzr/Ou86uz4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICfOlc+EzrnOus6tz4TOtc+CIM6zzrnOsSDPhM6xIM66zr/Phc68z4DOuc6sIM+Fz4DOv86yzr/Ou86uz4InOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICfOpM6xzr7Ouc69z4zOvM63z4POtyDPgM61zrTOr8+Jzr0gIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnzpHPhc+Ezq4gzrcgz4POtc67zq/OtM6xIM+DzrHPgiDOtc+AzrnPhM+Bzq3PgM61zrkgzr3OsSDPgM+Bzr/Pg86xz4HOvM+Mz4POtc+EzrUgz4TOt869IM+Fz4DOv86yzr/Ou86uIM+EzrfPgiDPhs+Mz4HOvM6xz4IuIM6UzrXOvSDOsc+Dz4fOv867zrXOr8+EzrHOuSDOvM61IM+Ezr8gz4TOuSDOs86vzr3Ov869z4TOsc65IM+EzrEgz4XPgM6/zrLOsc67zrvPjM68zrXOvc6xIM60zrXOtM6/zrzOrc69zrEuIM6cz4DOv8+BzrXOr8+EzrUgzr3OsSDPhM6/IM6/z4HOr8+DzrXPhM61IM6xz4XPhM+MICDOvM61IM+EzrfOvSDPgM+Bzr/Pg864zq7Ous63IM+AzrXOtM6vz4nOvSAizpTOuc6szrjOtc+DzrfPgiIgz4PPhM63zr0gz4bPjM+BzrzOsSDPg86xz4IuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICfOlc66zrrOr869zrfPg863IM+AzrXPgc65z4zOtM6/z4UgzrXPhM+Ozr0nOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICfOpM6tzrvOv8+CIM+AzrXPgc65z4zOtM6/z4UgzrXPhM+Ozr0nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OvyDOrc+Ezr/Pgic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyjOoc+NzrjOvM65z4POtyDPg861IC0xIM6zzrnOsSDOvc6xIM61zq/Ovc6xzrkgz4TOvyDPhM+Bzq3Ph86/zr0gzq3PhM6/z4Igz4TOvyDPgM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/KSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnzpzOtc+Ezqwgz4TOt869IM+Fz4DOv86yzr/Ou86uIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnzpXOvM+GzqzOvc65z4POtyDOkc+AzqzOvc+EzrfPg863z4InOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICfOl868zrXPgc6/zrzOt869zq/OsSDOpc+Azr/Oss6/zrvOrs+CJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICfOl868zrXPgc6/zrzOt869zq/OsSDOrc6zzrrPgc65z4POt8+CICjOsc+Azr8gz4TOv869IM60zrnOsc+HzrXOuc+BzrnPg8+Ezq4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICfOl868zrXPgc6/zrzOt869zq/OsSDOrc6zzrrPgc65z4POt8+CICjOsc+Azr8gz4TOv869IM6xz4DOv8+Dz4TOv867zq3OsSknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnzpXOvM+GzqzOvc65z4POtyAgIs6gz4HOv8+Ez4XPgM6/z4UgzrHPgM6/z4PPhM6/zrvOt8+CIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnzpHOvc6xzrrOsc+EzrXPjc64z4XOvc+Dzrcgz4PPhM63zr0gz4POtc67zq/OtM6xIM+Ezr/PhSDOmc+Dz4TPjM+Ezr/PgM6/z4UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICfOkc+Fz4TPjCDPhM6/IM+Az4HPjM+Ez4XPgM6/IM61zrzPhs6xzr3Or862zrXPhM61IM+Dz4TOv869IM+Hz4HOrs+Dz4TOtyDOvM61z4TOrCDPhM63zr0gz4XPgM6/zrLOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgi4gzpHPhc+Ez4wgz4TOvyDPgM+Bz4zPhM+Fz4DOvyDOtM61zr0gzq3Ph861zrkgzrXPgM6vz4DPhM+Jz4POtyDPg8+EzrEgzrzOt869z43OvM6xz4TOsSDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM6uIM+DzrUgzqzOu867zrXPgiDOvM6/z4HPhs6tz4IgzrTOuc6szrjOtc+DzrfPgiDPhM+Jzr0gzrTOtc60zr/OvM6tzr3Ov869IC0gzrXPg861zq/PgiDOv8+Bzq/Ots61z4TOtSDOsc+Fz4TOrCDPhM6xIM+Az4HPjM+Ez4XPgM6xICjOus6xz4TOrCDPgM61z4HOr8+Az4TPic+DzrcpIM+Dz4TOt869ICDOus6xz4HPhM6tzrvOsSDOs865zrEgIs+Az4HOv8+Hz4nPgc63zrzOrc69zr/Phc+CIi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ86jzrXOu86vzrTOsSDPgM+Bzr/Ov8+BzrnPg868zr/PjSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICfOkc+AzrHOuc+Ezr/Pjc69z4TOsc65IM6/zr3PjM68zrHPhM6xIM+AzrXOtM6vz4nOvSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ86Rz4DOsc65z4TOtc6vz4TOsc65IM+EzrEgz4DOtc60zq/OsSDOvc6xIM6tz4fOv8+Fzr0gz4zOvc6/zrzOsT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICfOkc+AzrHOuc+Ezr/Pjc69z4TOsc65IM68zr/Ovc6xzrTOuc66zqwgzr/Ovc+MzrzOsc+EzrEgz4DOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICfOnc6xIM6xz4DOsc65z4TOv8+Nzr3PhM6xzrkgzrzOv869zrHOtM65zrrOrCDOv869z4zOvM6xz4TOsSDOs865zrEgz4TOsSDPgM61zrTOr86xPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICfOkc69zrHOtM65zqzPhM6xzr7OtyDPgM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ86mz4zPgc+Ez4nPg863IM+Az4HOv8+Ez43PgM6/z4UnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnzprOtc6vzrzOtc69zr8gzrrOv8+FzrzPgM65zr/PjSDPgM+Bzr/Pg864zq7Ous63z4InOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnzprOtc6vzrzOtc69zr8gzrrOv8+FzrzPgM65zr/PjSDOtM65zrHOs8+BzrHPhs6uz4InOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICfOms61zq/OvM61zr3OvyDOss6/zq7OuM61zrnOsc+CIM6zzrnOsSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnzpXPgM61zr7Otc+BzrPOsc+Dzq/OsSDPhM+Jzr0gzrzOtc+EzrHOss67zrfPhM+Ozr0gz4nPgiDOsc+BzrnOuM68zr/Pjc+CIM6uIM+Dz4XOvM6yzr/Ou86/z4POtc65z4HOrc+CJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnzqTOsc6+zrnOvc+MzrzOt8+DzrcgzpXPgM61zr7Otc+BzrPOsc+Dzq/Osc+CJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICfOlc6szr0gz4XPgM6sz4HPh86/z4XOvSDPgM61z4HOuc+Dz4PPjM+EzrXPgc6xIM6xz4DPjCDOrc69zrEgz4XPgM6/zrvOv86zzrnOts+MzrzOtc69zrEgzqDOtc60zq/OsSAszr8gz4XPgM6/zrvOv86zzrnPg868z4zPgiDOuM6xIM6zzq/Ovc61zrkgzrHPgM+MIM+Ezr/OvSDOvM65zrrPgc+Mz4TOtc+Bzr8gzrHPgc65zrjOvM+MIM+EzrHOvs65zr3PjM68zrfPg863z4Igz4DPgc6/z4Igz4TOv869IM+Fz4jOt867z4zPhM61z4HOvyDOsc+BzrnOuM68z4wgJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICfOpM65zrzOriDOs865zrEgz4TOv869IM+Fz4DOv867zr/Os865z4POvM+MJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ86RzrvPhs6xz4HOuc64zrzOt8+EzrnOus+MJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICfOkc+BzrnOuM68zrfPhM65zrrPjCc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ86Rz4DOtc65zrrPjM69zrnPg863IM+EzrfPgiDPhs+Mz4HOvM6xz4IgIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ86kzr8gSW5saW5lIM+DzrfOvM6xzq/Ovc61zrkgzr/PhM65ICDOus6szrjOtSDPhs+Mz4HOvM6xIM+Azr/PhSDOsc66zr/Ou86/z4XOuM61zq8gzrHOvc+EzrnOus6xzrjOuc+Dz4TOrCDPhM63zr0gzrXPhM65zrrOrc+EzrEge0Zvcm1CdWlsZGVyfSwgzrXOvc+JIM6xzr0gzrXOuc69zrHOuSBub24taW5saW5lIM6xzr3PhM65zrrOsc64zrnPg8+Ezqwgz4TOt869IM61z4TOuc66zq3PhM6xIHtjb250ZW50fSAuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc63IM+EzrnOvM6uIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnzprOsc64zrHPgc65z4POvM+Mz4Igz4TOv8+FIM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr/PhSDOvM61IM66zrvOuc66Pyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICfOlc+AzrnOu86tzr7PhM61ICDOs865zrEgzr3OsSDOus6xz4TOsc+BzrPOtc6vz4POtc+EzrUgz4TOt869IM+Az4HOv861z4DOuc67zrXOs868zq3Ovc63IM+EzrnOvM6uIM+Mz4TOsc69IM6/IM+Hz4HOrs+Dz4TOt8+CIM66zqzOvc61zrkgzrrOu865zrogz4POtSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8uIM6UzrXOtM6/zrzOrc69zr/PhSDPjM+EzrkgzrHPhc+Ez4wgz4fPgc63z4POuc68zr/PgM6/zrnOtc6vIM66z47OtM65zrrOsSBqYXZhc2NyaXB0ICDOsc69IM6yzqzOu861z4TOtSDOvM6/zr3OrCDOtc65z4POsc6zz4nOs865zrrOrCAoXCcpIM+Dz4TOvyDPgM+Bzr/Otc+AzrnOu861zrPOvM6tzr3OvyDOus61zq/OvM61zr3OvywgzrjOsSDOsc+Azr/PhM+Nz4fOtc65LiDOhs67zrvOv865IM68zrcgz4bOuc67zrnOus6/zq8gz4DPgc6/z4IgamF2YXNjcmlwdCAgz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrzPgM6/z4HOv8+Nzr0gzrXPgM6vz4POt8+CIM69zrEgz4DPgc6/zrrOsc67zq3Pg86/z4XOvSDPgM+Bz4zOss67zrfOvM6xLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TOv8+FIM6xz4HPh861zq/Ov8+FIM+Azr/PhSDOvM61z4TOsc+Gzr/Pgc+Ez47OuM63zrrOtSDOsc+Az4wgz4TOv869IHNlcnZlciDOvM61z4TOsSDPhM63zr0gzrXPgM61zr7Otc+BzrPOsc+Dzq/OsSDPhM6/z4UgKM66zrHOvc+Mzr3Otc+CIGVtYWlsKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCDOs865zrEgz4TOvyDOoM61zrTOr86/JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ86jz4XOvc+EzqzOvs+EzrUgz4DOu86uz4HPic+CIM+EzrfOvSDOus67zq7Pg863ICBKYXZhc2NyaXB0LCDPg8+FzrzPgM61z4HOuc67zrHOvM6yzrHOvc6/zrzOrc69zr/PhSDPhM6/z4UgzrPOtc6zzr/Ovc+Mz4TOv8+CIM+Azr/PhSDOuM6tzrvOtc+EzrUgzr3OsSDPgM6xzrPOuc60zrXPjc+DzrXPhM61LCDOoC7Opy4sIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgzqbPjM+BzrzOsc+CIM6xz4DOv8+Dz4TOv867zq7Pgic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnzqPPhc69z4TOrM6+z4TOtSDPgM67zq7Pgc+Jz4Igz4TOt869IM66zrvOrs+DzrcgIEphdmFzY3JpcHQsIM+Dz4XOvM+AzrXPgc65zrvOsc68zrLOsc69zr/OvM6tzr3Ov8+FIM+Ezr/PhSDOs861zrPOv869z4zPhM6/z4Igz4DOv8+FIM64zq3Ou861z4TOtSDOvc6xIM+AzrHOs865zrTOtc+Nz4POtc+EzrUsIM6gLs6nLiwgb25jbGljaz0ieW91cmZuKCkiPGJyIC8+zpHPhc+Ez4wgz4DOuc64zrHOvc+Mzr0gzr3OsSDOvM63zr0gzrvOtc65z4TOv8+Fz4HOs861zq8gzrrOsc67zqwgzrrOsc65IM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDPhM63zr0gzrXPgM65zrvOv86zzq4gIs+DzrXOvc6sz4HOuc6/IM6xz4PPhs6xzrvOtc6vzrHPgiIgz4DOsc+BzrHPgM6szr3PiS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICfOnM63zr0gzrXPgM65zrvOrc6+zrXPhM61IM68zrnOsSDPhM+Fz4fOsc6vzrEgzrTOuc61z43OuM+Fzr3Pg863IM61zrTPjiAtIM+Azr/Ou867zr/OryBJU1BzICA8YnIgLz4gzrTOtc69IM64zrEgz4DOsc+BzrHOtM+Oz4POv8+Fzr0gz4TOvyDPhM6xz4fPhc60z4HOv868zrXOr86/IM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDOrc69zrEgzrTOuc6xz4bOv8+BzrXPhM65zrrPjCDPjM69zr/OvM6xIM+Ezr/OvM6tzrEgzrHPgM+MIM+Ezr8gz4DPgc6xzrPOvM6xz4TOuc66z4w8YnIgLz4ozqAuzqcuLCDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM66zrHPhM65IM+DzrHOvSDPjM69zr/OvM6xQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICfOp8+BzrXOuc6szrbOtc+Dz4TOtSDPgM61z4HOuc+Dz4POv8+Ezq3Pgc6/z4XPgiDPhM+Nz4DOv8+Fz4Igz4DOtc60zq/Pic69PyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnzqDOrM+BzrEgz4DOv867zrvOv86vIM+Dz4XOs866zrXPh8+FzrzOrc69zr/OuSDPhM+Nz4DOv865IM+AzrXOtM6vz4nOvT8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnzpHOu867zrHOs86uIM+DzrUgzqDPgc6/z4fPic+BzrfOvM6tzr3OvyDPgM61z4HOuc6yzqzOu867zr/OvSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ86RzrvOu86xzrPOriDPg861IM6Rz4DOu8+MIM+AzrXPgc65zrLOrM67zrvOv869JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ86mzqzOus61zrvOv8+CIM6zzrnOsSDPhM63zr0gzrHPgM6/zrjOrs66zrXPhc+Dzrcgz4TOv8+FIM6xz4HPh861zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnzqDPgc6tz4DOtc65IM69zrEgzrXOr869zrHOuSDOus6xz4TOrM67zr/Os86/z4Igz4TOv8+FIHdlYiBzZXJ2ZXIgz4DOv8+FIM6tz4fOtc+EzrUgz4TOtyDOtM65zrrOsc65zr/OtM6/z4POr86xIM69zrEgzrPPgc6sz4jOtc+EzrUuIDxiciAvPiDOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+EzrfOvSBjaG1vZCA3NzcsIM6xzr0gzq3Ph861z4TOtSDPgM+Bzr/Oss67zq7OvM6xz4TOsS4gPGJyIC8+IM6Vz4DOr8+DzrfPgiwgzrXOu86tzrPOvs+EzrUgzrPOuc6xIM69zrEgzrTOtc6vz4TOtSDPjM+EzrkgzrTOtc69IM6tz4fOtc+EzrUgz4DOtc+BzrnOv8+BzrnPg868zr/Pjc+CIM+Ezr/PhSDOus6xz4TOsc67z4zOs86/z4Ugz4PPhM63zr0gUEhQLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnzqfOsc+BzrHOus+Ezq7Pgc6xz4IgzrHOvc+EzrnOus6xz4TOrM+Dz4TOsc+DzrfPgiDOs865zrEgz4TOv869IM+HzrHPgc6xzrrPhM6uz4HOsSDOsc67zrvOsc6zzq7PgiDOs8+BzrHOvM68zq7PgihOTCkgzrrOsc65IM+Ezr/OvSDPh86xz4HOsc66z4TOrs+BzrEgzrXPgM65z4PPhM+Bzr/Phs6uz4IoTEYpJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ86Rz4bOrs+Dz4TOtSDPhM6/IM66zrXOvc+MIM6zzrnOsSDOvc6xIM61z4DOuc+Ez4HOrc+Azr/Ovc+EzrHOuSDOv865IM+HzrHPgc6xzrrPhM6uz4HOtc+CIM6xzrvOu86xzrPOrs+CIM6zz4HOsc68zrzOrs+CIM66zrHOuSDOtc+AzrHOvc6xz4bOv8+BzqzPgiDPg8+EzrfOvSDOrc6+zr/OtM6/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICfOnc6xIM+Dz4TOrc67zr3Otc+EzrUgzrHOvc+Ezq/Os8+BzrHPhs6/IM+EzrfPgiDOsc+Azr/Pg8+Ezr/Ou86uz4Igz4PPhM6/zr0gz4fPgc6uz4PPhM63Pyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnzpXPhM65zrrOrc+EzrEgzrPOuc6xIM+Ezr8gIENoZWNrYm94ICjOtc6szr0gz4TOvyDOtc+AzrnOu86tzr7Otc65IM6/IM+Hz4HOrs+Dz4TOt8+CKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ86jz4TOtc6vzrvOtSDOvM6/z4UgzrHOvc+Ezq/Os8+BzrHPhs6/IM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ86dzrEgzrXPgM65z4TPgc6tz4DOtc+EzrUgzrHOvc+EzrnOus6xz4TOrM+Dz4TOsc+Dzrcgz4TOv8+FIM6Yzq3OvM6xz4TOv8+CPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICfOlc+AzrnPhM+Bzq3PgM61zrkgz4TOvyDPgM61zrTOr86/ICLOmM6tzrzOsSIgz4TOv8+FIEVtYWlsIM69zrEgzrHOvc+EzrnOus6xzrjOuc+Dz4TOrM+EzrUgzrHPgM+MIM61z4DOuc67zr/Os86uIM+Ezr/PhSDOsc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+FIM68zrXOvc6/z40gKCBwdWxsZG93bikuJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnzpzOrs66zr/PgiDPgM+Bzr/Oss6/zrvOrs+CJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnzpXOu86sz4fOuc+Dz4TOvyDOvM6uzrrOv8+CIM6xz4DOrM69z4TOt8+DzrfPgic7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnzpHPgM+MzrrPgc+Fz4jOtyDOtc65z4PPjM60zr/PhSc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICfOnc6xIM60zrXOr8+Hzr3Otc65IM+Dz43OvM6yzr/Ou86xIM6xzr3PhM6vIM6zzrnOsSDOsc+AzrvPjCDOus61zq/OvM61zr3OvyDPjM+EzrHOvSDOvyDPh8+Bzq7Pg8+EzrfPgiDOtc65z4POrM6zzrXOuSDPhM6/zr0gzrrPic60zrnOus+MIM+Az4HPjM+DzrLOsc+DzrfPgj8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICfOnyDOms+JzrTOuc66z4zPgiDPgM+Bz4zPg86yzrHPg863z4IgzrTOtc69IM+EzrHOuc+BzrnOrM62zrXOuSAlcyc7CiRsYW5nWydiYWNrX3RvcCddID0gJ86Vz4DOuc+Dz4TPgc6/z4bOriDPg8+EzrfOvSDOus+Nz4HOuc6xIM+DzrXOu86vzrTOsSDPhM6/z4UgIM60zrfOvM65zr/Phc+BzrPOv8+NIM+Gzr/Pgc68z47OvSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ86gzr/Ouc61z4IgzrrOtc+GzrHOu86vzrTOtc+CIM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UgzrjOsSDPgM+Bzq3PgM61zrkgzr3OsSDOrc+HzrXOuSDOsc+Fz4TOriDOtyDOtc6vz4POv860zr/Pgj8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ86czrfOvSDOsc+Azr/OtM6tz4fOtc+Dz4TOtSDPhM6/IM66zrXOvc+MLCDPic+CIM6tzrPOus+Fz4HOtyDOsc+AzqzOvc+EzrfPg863JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ86VzqzOvSDOrc69zrEgz4DOtc60zq/OvyDOsc+AzrHOuc+EzrXOr8+EzrHOuSwgz4TPjM+EzrUgzr8gzq3Ou861zrPPh86/z4IgzrjOsSDOsc+AzrHOuc+Ezq7Pg861zrkgz4zPhM65IM6/IM+Hz4HOrs+Dz4TOt8+CIM64zrEgzrTPjs+DzrXOuSDOvM61z4HOuc66zr/Pjc+CIM6xzrvPhs6xz4HOuc64zrzOt8+EzrnOus6/z43PgiDPh86xz4HOsc66z4TOrs+BzrXPgiDOus6xzrkgz4zPh865IM66zrXOvc6sJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICfOpM6/IENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSDOtM61zr0gzrXOr869zrHOuSDOtM65zrHOuM6tz4POuc68zr8hJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ86gzr/PhM6tJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ86Uz47Pg8+EzrUgz4PPhM6/zr0gz4fPgc6uz4PPhM63IM61z4DOuc67zr/Os86uIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ86gzqzOvc+EzrEnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgZW1haWwgIs6Rz4DPjCIgJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJ86UzrnOtc+NzrjPhc69z4POtyBlbWFpbCAizpHPgM6szr3PhM63z4POty3Oo861Iic7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ86UzrnOtc+NzrjPhc69z4POtyBlbWFpbCDOus6xzrkgz4PPhM6xIM60z4XOvyAizpHPgM+MIiDOus6xzrkgIs6Rz4DOrM69z4TOt8+DzrctzqPOtSInOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnzpHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr8gzrzOtc69zr/PjSAoRHJvcGRvd24pJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ86Vz4DOuc67zr/Os86uIM67zq/Pg8+EzrHPgiAozrzOv869zq4pJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnzpXPgM65zrvOv86zzq4gzrvOr8+Dz4TOsc+CICjPgM6/zrvOu86xz4DOu86uKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlvIEdyb3VwICc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICfOo863zrzOtc6vz4nPg863OiDOlyDOrc6+zr/OtM6/z4IgzrjOsSDOtc6vzr3Osc65IM+Fz4DPjCDPhM63IM68zr/Pgc+Gzq4gPGJyLz4gIs+Ezr8gz4zOvc6/zrzOsSDPhM63z4IgzrXPhM6xzrnPgc61zq/Osc+CIj0+Is+EzrnOvM6uIic7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICfOlc+AzrnOu86tzr7PhM61IM66zrHPhM63zrPOv8+Bzq/OsSAoz4DOv867zrvOsc+AzrvOriknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ86UzrXOr86+z4TOtSDPhM63zr0gz4TOuc68zq4gzrXPgM61zr7Ors6zzrfPg863z4Igz4TOv8+FIM+AzrXOtM6vzr/PhSjOvM6/zr3PjCk8ZW0+z4DPgc6/zrHOuc+BzrXPhM65zrrPjDwvIGVtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ86Vz4DOuc67zr/Os86uIM61zrnPg8+MzrTOv8+FIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcozpXPgM6vz4POt8+CLCDPgc6vzr7PhM61IM68zrnOsSDOvM6xz4TOuc6sIM+Dz4TOt869IM66zrHPgc+Ezq3Ou86xIM6lz4DOv86yzr/Ou86uIM6mz4zPgc68zrHPgiwgzrHOvSDOuM6tzrvOtc+EzrUgzr3OsSDOv8+Bzq/Pg861z4TOtSDPhM6/IFVEVCDOs865zrEgzrXPgM65zrrPjc+Bz4nPg863IM+Gz4zPgc68zrHPgiknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ86kzq3Ou86/z4Igzq3PhM6/z4XPgic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ86jz4TOv865z4fOtc6vzrEgU21hcnR5IM6uICDOu86/zrPOuc66zq4gz4DOv8+FIM61zq/Ovc6xzrkgzrHPgM6xz4HOsc6vz4TOt8+Ezr8gzr3OsSDPg8+EzrHOu861zq8gzrzOtSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW5cJ3QgdG8gc2VudCBhbG9uZyB3aXRoIHRoaXMgZmllbGQuPGJyIC8+R29lcyB0cm91Z2h0IHNtYXJ0eSBjb21waWxlciwgc28gcmVtZWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ86dzrEgz4PPhc68z4DOtc+BzrnOu86xzrzOss6szr3Otc65IM61z4TOuc66zq3PhM61z4InOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnzpzOtSDPhM63zr0gzrXOvc61z4HOs86/z4DOv86vzrfPg863IM+AzrXPgc65zrvOsc68zrLOrM69zr/Ovc+EzrHOryDOtc+EzrnOus6tz4TOtc+CIM+Dz4TOt869IM6tzr7Ov860zr8uIM+AzrHPgc6szrTOtc65zrPOvM6xIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnzqPPjc69zrTOtc+Dzq4gzrHPhc+Ezr/PjSDPhM6/z4Ugz4DOtc60zq/Ov8+FIM68zrUgz4TOt869IM+Az4HOv861z4DOuc67zr/Os86uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICfOpM6/IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/IM68zrXOvc6/z40gKERyb3Bkb3duKSDPgM6xz4HOsc64zq3PhM61zrkgz4zOu861z4Igz4TOt8+CIM+Az4HOv861z4DOuc67zr/Os86tz4Igz4TOv8+FIM61zr0gzrvPjM6zz4kgz4DOtc60zq/Ov8+FIM66zrHOuSDPg86xz4IgzrXPgM65z4TPgc6tz4DOtc65IM69zrEgz4PPhc69zrTOrc+DzrXPhM61IM6xz4XPhM+MIM+Ezr8gz4DOtc60zq/OvyDPg861IM68zrnOsSDOsc+Az4wgz4TOuc+CIM+Az4HOv861z4DOuc67zr/Os86tz4IuIM6Vz4DOuc+Ez4HOrc+AzrXOuSDPhM6/zr0gzq3Ou861zrPPh86/IM+Ezr/PhSDPgM61zrTOr86/z4UgzrzOtSDPhM6xIM61z4DOuc67zrXOs868zq3Ovc6xIM66zr/Ovc+Ez4HPjM67Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ86az4HPjc6yzrXOuSDPhM6xIM66zr/Phc68z4DOuc6sIM61zrvOrc6zz4fOv8+FJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICfOms+Bz43Oss61zrkgz4TOsSDOtc68z4DPgc+Mz4POuM65zrEgKGZyb25kZW5kKSDOus6/z4XOvM+AzrnOrCDOtc67zq3Os8+Hzr/PhSDOs865zrEgzrHPhc+Ez4wgz4TOvyDPgM61zrTOr86/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICfOlyDOtc+EzrnOus6tz4TOsSDPh8+Bzq7Pg8+EzrcgzrXPgM6tz4PPhM+BzrXPiM61IM+Dz4bOrM67zrzOsS4nOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ86XIM61z4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyAlcyDOtc+Azq3Pg8+Ez4HOtc+IzrUgz4PPhs6szrvOvM6xLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPs6kzr8gQ2F0YWxvZ2VyIG1vZHVsZSDOtM61zr0gzrXOr869zrHOuSDOtc6zzrrOsc+EzrXPg8+EzrfOvM6tzr3Ovy/Otc69zrXPgc6zzr/PgM6/zrnOt868zq3Ovc6/Ljwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnzqDOoc6fzqPOn86nzpchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/IM+Az4HPjM+Ez4XPgM6/JzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDPgM6vzr3Osc66zrEsIM6/zrkgzqTOr8+EzrvOv865IM6xz4HOuc+Dz4TOtc+BzqwnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gz4DOr869zrHOus6xLCDOv865IM6kzq/PhM67zr/OuSDOtc+AzqzOvc+JJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ86gz4HPjM+Ez4XPgM6/IM6xz4DPjCAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICfOlc6vz4PPhM61IM+Dzq/Os86/z4XPgc6/zrkgz4zPhM65IM64zq3Ou861z4TOtSDOvc6xIM6xzr3PhM65zrrOsc+EzrHPg8+Ezq7Pg861z4TOtSDPhM6/IM+Az4HPjM+Ez4XPgM+MIM+DzrHPgiDOvM61IM+Ezr8gzrXPgM65zrvOtc6zzrzOrc69zr8gz4DPgc+Mz4TPhc+Azr87ICjOkc66z4zOvM6xIM66zrkgzrHOvSDPgM61zq/PhM61IM61zr3PhM6szr7Otc65LCDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM6xz4DOv864zrfOus61z43Pg861z4TOtSDPhM65z4IgzrHOu867zrHOs86tz4IpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ86jz4bOrM67zrzOsSDOus6xz4TOrCDPhM6/zr0gz4XPgM6/zrvOv86zzrnPg868z4wgz4TOv8+FICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICfOlM61zr0gz4XPgM6sz4HPh86/z4XOvSDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CIEhUVFBfUkVGRVJFUiDOtM65zrHOuM6tz4POuc68zrXPgiAozrrOsc+Ezqwgz4DOrM+DzrEgz4DOuc64zrHOvc+Mz4TOt8+EzrEgzrvPjM6zz4kgz4TOt8+CIM+Hz4HOrs+DzrfPgiDPhM63z4IgzrXPgM65zrrPjc+Bz4nPg863z4IgIEVtYWlsIM6nz4HOrs+Dz4TOtyknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ86jz4bOrM67zrzOsSDPgM6xz4HOsc68zq3PhM+Bzr/PhSDOtc+AzrnOus+Nz4HPic+DzrfPgi4gIM6gzrHPgc6xzrrOsc67z44gzrLOtc6yzrHOuc+JzrjOtc6vz4TOtSDPjM+EzrkgzrHOvc+EzrnOs8+BzqzPiM6xz4TOtSDPhM63IM60zrnOtc+NzrjPhc69z4POtyBVUkwgzrHPgM+MIM+Ezr8gZW1haWwgz4POsc+CIM+Dz4nPg8+EzqwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICfOo8+GzqzOu868zrEgzrXPgM65zrrPjc+Bz4nPg863z4IuIM6gzrHPgc6xzrrOsc67z44gzrLOtc6yzrHOuc+JzrjOtc6vz4TOtSDPjM+EzrkgzrHOvc+EzrnOs8+BzqzPiM6xz4TOtSDPhM63IM60zrnOtc+NzrjPhc69z4POtyBVUkwgzrHPgM+MIM+Ezr8gZW1haWwgz4POsc+CIM+Dz4nPg8+EzqwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICfOo8+GzqzOu868zrEgzrXPgM65zrrPjc+Bz4nPg863z4IuIM6UzrXOvSDPhc+AzqzPgc+HzrXOuSDPgM61zrTOr86/IM61z4DOuc66z43Pgc+Jz4POt8+CIGUtbWFpbCDPg861IM6xz4XPhM6uIM+EzrfOvSDPhs+Mz4HOvM6xISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnzqTOvyDOoM+Bz4zPhM+Fz4DOvyDPhM63z4Igz4bPjM+BzrzOsc+CIM61zr3Ot868zrXPgc+OzrjOt866zrUgz4PPhM6/IM+AzrvOsc6vz4POuc6/IM+EzrfPgiDOsc69zrHOss6szrjOvM65z4POt8+CIM+EzrfPgiDOrc66zrTOv8+DzrfPgiDOsc+Az4wgMC4zIM+DzrUgMC40LiDOnM+Azr/Pgc61zq8gzr3OsSDPh8+BzrXOuc6xz4PPhM61zq8gzr3OsSDOs86vzr3Ov8+Fzr0gzr/Pgc65z4POvM6tzr3Otc+CIM60zrnOv8+BzrjPjs+DzrXOuc+CLiDOkc69IM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4TOt869IM+Az4HOv861z4DOuc67zrXOs868zq3Ovc63IM+Gz4zPgc68zrEsIM6xz4DOu86sIM6xzr3PhM65zrrOsc+EzrHPg8+Ezq7Pg8+EzrUgzrHPhc+Ez4wgz4TOvyDPgM+Bz4zPhM+Fz4DOvyDOvM61IM+Ezr8gIs6gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8iIM+Hz4HOt8+DzrnOvM6/z4DOv865z47Ovc+EzrHPgiDPhM6/IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/IM68zrXOvc6/z40gKHB1bGxkb3duKSDPgM6xz4HOsc+AzqzOvc+JLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICfOoM+Bzr/Pg864zq7Ous63LCDOtc+AzrXOvs61z4HOs86xz4POr86xIM66zrHOuSDOtM65zrHPh861zq/Pgc65z4POtyDPhM+Jzr0gzrTOuc6xzrTPgc6xz4PPhM65zrrPjs69IM6mzr/Pgc68z47OvSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ86VzqzOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM+Ezr8gzrHOvs65zr/Ou8+MzrPOt8+DzrcgzrHOu8+GzrHPgc65zrjOvM63z4TOuc66zr/PjSAoU3RyaW5nKSAsIM63IM68z4zOvc63IM67zrXOuc+Ezr/Phc+BzrPOr86xIM+Azr/PhSDOtM65zrHPhM6vzrjOtc+EzrHOuSDOtc6vzr3Osc65IM63IM6xzrvOu863zrvOv8+Fz4fOr86xICgrKSwgzrXOvc+OIM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6xz4HOuc64zrzOt8+EzrnOus6uIChOdW1lcmljKSDOsc6+zrnOv867z4zOs863z4POtyDOrc+HzrXPhM61IM+EzrnPgiDOss6xz4POuc66zq3PgiAsIM6xz4DOu86sIM68zrHOuM63zrzOsc+EzrnOus6sICgsICssIC0sICosIC8sKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnzqfPgc63z4POuc68zr/PgM6/zq/Ot8+Dzrcgz4TOt8+CIM60zrnOtc+AzrHPhs6uz4Igz4TOv8+FIE1vZHVsZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPs6kzr8gz4DOtc60zq/OvyDOsc+Fz4TPjCDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM6xzrkgz4nPgiDPgM+NzrvOtyDOtc65z4PPjM60zr/PhSDOs865zrEgzqzOu867zrEgbW9kdWxlcyE8L2I+DQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCdcJ30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJ1wnfQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT1cJzo6XCd8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPVwnIGNoZWNrZWQ9ImNoZWNrZWQiXCd9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0iUHJvZHVjdERpcmVjdG9yeUl0ZW0iPg0KCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSIgbmFtZT0ieyRGQmlkfVtdIiB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pIMKjeyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9ImNhdCIgc3VtbWFyeXRlbXBsYXRlPSJZb3VyX0ZCX3RlbXBsYXRlIn08L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ86gz4HOv8+DzrjOrs66zrcgzrXPhM65zrrOrc+EzrHPgiDPg86xz4InOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnzpnOsc69zr/Phc6sz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ86mzrXOss+Bzr/Phc6sz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ86czqzPgc+EzrnOv8+CJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICfOkc+Az4HOr867zrnOv8+CJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnzpzOrM65zr/Pgic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICfOmc6/z43Ovc65zr/Pgic7CiRsYW5nWydkYXRlX2p1bHknXSA9ICfOmc6/z43Ou865zr/Pgic7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ86Rz43Os86/z4XPg8+Ezr/Pgic7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ86jzrXPgM+Ezq3OvM6yz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnzp/Ous+Ez47Oss+BzrnOv8+CJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICfOnc6/zq3OvM6yz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ86UzrXOus6tzrzOss+BzrnOv8+CJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICfOo8+FzrPOs869z47OvM63ISDOpc+Azq7Pgc6+zrUgzq3Ovc6xIM67zqzOuM6/z4Igz4PPhM63zr0gz4XPgM6/zrLOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgiDPg86xz4IuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIM67zqzOuM6/z4IgzrHPgM6/z4PPhM6/zrvOrs+COiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnzqPPhs6szrvOvM6xIM6xz4DOv8+Dz4TOv867zq7PgiDOsc+Bz4fOtc6vzr/PhSDPg8+Ezr8gdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ86UzrXOvSDOss+Bzq/Pg866z4kgz4TOvyB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnzqPPhs6szrvOvM6xIM6czrXPhM6xz4bPjM+Bz4TPic+DzrfPgi/Oo8+Fzr3Ot868zrzOrc69zr/PhSDOsc+Bz4fOtc6vzr/PhSDOs865zrEgJXMgKHRtcF9uYW1lOiVzLCDPhM6/z4Ugz4TPjc+Azr/PhSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICfOo8+GzqzOu868zrEuICDOlM61zr0gzrzPgM6/z4HPjiDOvc6xIM66zrvOtc65zrTPjs+Dz4kgz4TOvyDOsc+Bz4fOtc6vzr8uJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnzqDPgc6/zrXPgM65zrvOv86zzq46IM6xz4DOtc+AzrnOu861zrPOvM6tzr3Ovyc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfOoM+Bzr/Otc+AzrnOu86/zrPOrjogzrXPgM65zrvOtc6zzrzOrc69zr8nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIM6lz4DOv86yzr/Ou86uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPs6UzrXOvSDOrc+HzrXOuSDPgc+FzrjOvM65z4PPhM61zq8gz4DPgc+Mz4TPhc+Azr8gzrPOuc6xIEVtYWlsIM6xzrrPjM68zrEhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiDOlM6tzr0gzrLPgc6vz4POus+JIM+Ezr8gbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnzp8gz4fPgc6uz4PPhM63z4IgzrXOvc6tzrrPgc65zr3OtSDPhM63zr0gz4XPgM6/zrLOv867zq4gJXMgzrHPgM+MICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICfOk861zrPOv869z4zPgiDPgM6/z4UgzrXOvc61z4HOs86/z4DOv865zrXOr8+EzrHOuSDPjM+EzrHOvSDOvM65zrEgz4bPjM+BzrzOsSDPhM6/z4UgRm9ybUJ1aWxkZXIgzrHPgM6/z4PPhM6tzrvOvc61z4TOsc65JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ86TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM+Fz4DOrM+Bzr7Otc65IM67zqzOuM6/z4IgzrrOsc+Ezqwgz4TOt869IM6xz4DOv8+Dz4TOv867zq4gz4bPjM+BzrzOsc+CIM+Ezr/PhSBGb3JtQnVpbGRlcic7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ86TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM+Mz4TOsc69IM68zrnOsSDPhs+Mz4HOvM6xIM+Ezr/PhSBGb3JtQnVpbGRlciDOtc68z4bOsc69zq/Ots61z4TOsc65JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD7Ok861zrPOv869z4zPgiDPgM6/z4UgzrXOvc61z4HOs86/z4DOv865zrXOr8+EzrHOuSDPjM+EzrHOvSDOvM65zrEgz4bPjM+BzrzOsSDPhM6/z4UgRm9ybUJ1aWxkZXIgzrHPgM6/z4PPhM6tzrvOvc61z4TOsc65LjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPs6TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM+Fz4DOrM+Bzr7Otc65IM67zqzOuM6/z4IgzrrOsc+Ezqwgz4TOt869IM6xz4DOv8+Dz4TOv867zq4gz4bPjM+BzrzOsc+CIM+Ezr/PhSBGb3JtQnVpbGRlcjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+zpPOtc6zzr/Ovc+Mz4Igz4DOv8+FIM61zr3Otc+BzrPOv8+Azr/Ouc61zq/PhM6xzrkgz4zPhM6xzr0gz4zPhM6xzr0gzrzOuc6xIM+Gz4zPgc68zrEgz4TOv8+FIEZvcm1CdWlsZGVyIM61zrzPhs6xzr3Or862zrXPhM6xzrk8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCDOsc+AzqzOvc+EzrfPg863z4IuIM6nz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrHOuSDOsc+Az4wgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrXPgiDPhM65zrzOrc+CIM+AzrXOtM6vz4nOvTsgIM6UzrXPgiDPhM63zr0gzrLOv86uzrjOtc65zrEgz4TOv8+FIG1vZHVsZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdJRCDPgM61zrTOuc6/z4UgzrPOuc6xIM61z4PPic+EzrXPgc65zrrOrc+CIM60zrnOtc+BzrPOsc+Dzq/Otc+CJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICfOjM69zr/OvM6xIM+Gz4zPgc68zrHPgic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIM+Gz4zPgc68zrHPgiDOs865zrEgzrXPg8+Jz4TOtc+BzrnOus6tz4IgzrTOuc61z4HOs86xz4POr861z4InOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICfOk861zr3Ouc66zq3PgiDPgM6xz4HOrM68zrXPhM+Bzr/OuSDOs865zrEgzrXPg8+Jz4TOtc+BzrnOus6tz4IgzrTOuc61z4HOs86xz4POr861z4IuJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+zpzOtc+EzrHOss67zrfPhM6tz4IgzrPOuc6xIM6gz4HPjM+Ez4XPgM6/IM6mz4zPgc68zrHPgjwvaDM+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICfOnyDOlM63zrzOuc6/z4XPgc6zz4zPgiDPhs6/z4HOvM+Ozr0gKEZvcm1CdWlsZGVyKSDOtc6zzrrOsc+EzrHPg8+EzqzOuM63zrrOtS7OoM6xz4HOsc66zrHOu8+OIM+Dz4XOvM6yzr/Phc67zrXPhc+EzrXOr8+EzrUgz4TOt869IM6yzr/Ors64zrXOuc6xIM6zzrnOsSDPhM6/IG1vZHVsZS4nOwokbGFuZ1snaGVscCddID0gJzxoMz7OpM6vIM66zqzOvc61zrkgzrHPhc+Ez4w/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdFwncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGgNCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwncmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09XCdzYW1wbGVfZm9ybVwnfTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2VcJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgiKSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+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+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5CdXR0b24uIFRoaXMgZG9lbnNcJ3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+UGFzc3dvcmQuIFRoaXMgaXMgYW4gYXN0ZXJpc2tlZC1vdXQgdGV4dCBmaWVsZCwgdXNlZnVsIGZvciBwYXNzd29yZHMuPC9saT4NCjxsaT5QYXNzd29yZCBBZ2FpbiAodmVyaWZ5KS4gVGhpcyBpcyBhIGZpZWxkIHRoYXQgbXVzdCBtYXRjaCBhIFBhc3N3b3JkIGZpZWxkIGZvciBzdWJtaXNzaW9uDQp0byBzdWNjZWVkLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAiRnJvbSBOYW1lIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICJTdWJqZWN0IiBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPGxpPi1Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8L3VsPjwvbGk+DQo8bGk+LU1vZHVsZSBJbmNsdWRlIFRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIG90aGVyIG1vZHVsZSBvdXRwdXQgaW50byB5b3VyIGZvcm0sIGUuZy4sIGEgbGlzdCBvZiBwcm9kdWN0cyBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUuPC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbXCdmaWVsZF9uYW1lXCddLCBhbmQgYXMgJHBhcmFtc1tcJ2ZpZWxkX2FsaWFzXCddIChpZiBkZWZpbmVkKS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlXCdzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+DQo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPg0KDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byBcJ2RlZmF1bHRfdmFsdWVcJy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb25cJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntGb3JtQnVpbGRlciBmb3JtPVwnbXlfZm9ybVwnIHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49XCdkZWZhdWx0X3ZhbHVlXCd9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAiU2hvdyBGaWVsZCBJRHMiPC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91XCdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoaWNoIHlvdSBjYW4gdXNlLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91XCd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXRcJ3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcg0KcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQ0Kd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+DQo8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdA0KYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLg0KVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7Rm9ybUJ1aWxkZXIgYWN0aW9uPVwnZmV1c2VyZm9ybVwnIGZvcm09XCdmb3JtX25hbWVcJ30uPC9wPg0KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuDQpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0DQpmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+DQo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQ0KaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdA0KZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPg0KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdA0KeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQNCnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cg0Kc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwNCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lDQpjYXJ0ZWwuPC9lbT48L3A+DQo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPg0KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPg0KDQo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZA0KVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1tcJ2ZpZWxkX25hbWVcJ10sIGFuZA0KYXMgJHBhcmFtc1tcJ2ZpZWxkX2FsaWFzXCddIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4NCjxsaT5Vc2VyIFRhZyBGaWVsZC4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVEVCwgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4NCjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVxcXCdzIGh1bWFuLXJlYWRhYmxlIHJlc3VsdHMuIFRoZSBVRFQgc2hvdWxkIGRvIHdoYXRldmVyDQp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZA0KdmFsdWUgYmVpbmcgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKS4gVGhpcw0KaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5DQpvZiB0aGUgZm9ybS48L2xpPg0KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZQ0KZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZA0KZXZlcnkgdGltZSBhbnkgcGFnZSBvZiB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQgKGluY2x1ZGluZyB3aGVuIHZhbGlkYXRpb24gZmFpbHMpLjwvbGk+DQo8L3VsPg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+UnVuIGluIE1MRSBNb2RlLiBUaGlzIGNoYW5nZXMgc29tZSBxdWVyaWVzIGFnYWluc3QgdGhlIGNvbnRlbnQgdGFibGUgdG8gdHJ5IHRvIHByZXZlbnQgdWdseSBjcmFzaGVzIHVuZGVyIHRoZSBNTEUgZm9yay4gQ2hlY2tpbmcgdGhpcyB3aWxsIGNhdXNlIHVnbHkgY3Jhc2hlcyBpZiB5b3UgYXJlIE5PVCBydW5uaW5nIHRoZSBNTEUgZm9yay48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIG5vIGxvbmdlciBzZXQgYnkgZGVmYXVsdC4gQ2hlY2tpbmcgaXQgd2lsbCBoaWRlIHRoZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0aGF0IHdvdWxkIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91XCdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiANCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICJGb3JtQnVpbGRlciBEZWZhdWx0IiB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkNCmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPnZhbHVlfSApLg0KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4NCjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+UmVzcG9uc2UgSUQgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQo8aDM+Q3JlZGl0czwvaDM+DQo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToNCjx1bD4NCjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiPkJhbHRpYyBpbnN0aXR1dGUgb2YgYWR2YW5jZWQgdGVjaG5vbG9neTwvYT4gLSBmdW5kaW5nIDwvbGk+DQo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+DQo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4NCjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+DQo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4NCjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPg0KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+DQo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4NCjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+DQo8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4NCjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+DQo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4NCjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPg0KPC91bD4NCjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSVwnbGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPg0KPGgzPk1pc2NlbGxhbmVvdXMgTm90ZXM8L2gzPg0KPHVsPg0KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4NCjwvdWw+DQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgVVJMcywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD4NCjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPg0KPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4NCjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3VcJ3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZFwncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJ3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXRcJ3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAiSGlkZSBFcnJvcnMiIGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0XCdzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSVwndmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3JcJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuDQpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbg0KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzDQpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQ0Kc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuY3J5cHRlZCIgdmFsdWU9Ii0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tDQoiPg0KPC9mb3JtPjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE5NjYzNTIzMjktMTI3NTIzMTMyMTE5MSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzUyMzIzMzcuMS4yLnV0bWNzcj1nb29nbGV8dXRtY2NuPShvcmdhbmljKXx1dG1jbWQ9b3JnYW5pY3x1dG1jdHI9Y21zbXMgZG93bmxvYWQgbW9kdWxlIHRyYW5zbGF0ZSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEzMTE2Mzc1MTAuMTI3NTIzMTMyMS4xMjc1MjQ0OTUyLjEyNzUzMzA5ODkuMyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEZyb21GRVVQcm9wZXJ0eSddID0gJypFbWFpbCBhIHVzdWFyaW9zIHF1ZSBjb2luY2lkYW4gY29uIHVuYSBwcm9waWVkYWQgZGUgRkVVJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVGlwbyBkZSBDYW1wbyBzaW4gY29uZmlndXJhcic7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY2Npb25hciB1bm8gKG8gbWFzKSBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW4gZGUgRmllbGRzZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUNvbWllbnpvIGRlIEZpZWxkc2V0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnRW50cmFkYSBkZSBUZXh0byc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdFbnRyYWRhIGRlIG4mdWFjdXRlO21lcm8gSFRNTDUnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdFbnRyYWRhIGRlIEVtYWlsIEhUTUw1ICc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdFbnRyYWRhIGRlIFVSTCBIVE1MNSAnOwokbGFuZ1snZmllbGRfdHlwZV9TaXRlQWRtaW5GaWVsZCddID0gJ0FkbWluaXN0cmFkb3IgZGUgU2l0aW8nOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcmQtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnUmVwZXRpciBQYXNzd29yZCAodmVyaWZpY2FyKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdFbnRyYWRhIGRlIFRleHRvIChNJnVhY3V0ZTtsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJyZBYWN1dGU7cmVhIGRlIFRleHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdCb3Qmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2FqYSBkZSBUaWxkZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dydXBvIENhamFzIGRlIFRpbGRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0Rlc3BsZWdhYmxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdTZWxlY3RvciBkZSBBJm50aWxkZTtvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBFc3RhZG9zIGRlIFUuUy4nOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnU2VsZWNjaW9uYWRvciBkZSBwcm92aW5jaWEgQ2FuYWRpZW5zZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1NlbGVjdG9yIGRlIFBhaXNlcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1NlbGVjdG9yIGRlIEZlY2hhcyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1NlbGVjdG9yIGRlIEhvcmFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnR3J1cG8gQm90Jm9hY3V0ZTtuZXMgZGUgUmFkaW8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVudmlhciBFbWFpbCBkZSBSZXN1bHRhZG9zIEJhc2FkbyBlbiBMaXN0YSBEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKkd1YXJkYXIgUmVzdWx0YWRvcyBhIEFyY2hpdm8gQmFzYWRvIGVuICBMaXN0YSBEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqR3VhcmRhciBSZXN1bHRhZG9zIGEgQXJjaGl2byhzKSBCYXNhZG8ocykgZW4gTSZ1YWN1dGU7bHRpcGxlIFNlbGVjY2lvbmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjY2lvbmFyIGEgUCZhYWN1dGU7Z2luYSBCYXNhZGEgZW4gTGlzdGEgRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVudmlhciBFbWFpbCBkZSBSZXN1bHRhZG9zIGEgRGlyZWNjaSZvYWN1dGU7bihlcykgQ29uZmlndXJhZGFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGFyLXZpYS1EaXJlY2NpJm9hY3V0ZTtuIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OywgeSBlbnZpYXIgY29waWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXNjcmliaXIgUmVzdWx0YWRvcyBhIEFyY2hpdm8gUGxhbm8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqR3VhcmRhciByZXN1bHRhZG9zIGEgdW4gJnVhY3V0ZTtuaWNvIGFyY2hpdm8gcGxhbm8gcG9yIGNhZGEgZW52JmlhY3V0ZTtvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgZW4gQmFzZSBkZSBEYXRvcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqR3VhcmRhciBSZXN1bHRhZG9zIHBhcmEgTW9kdWxvIEZvcm1Ccm93c2VyIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypMbGFtYXIgYSB1bmEgVGFnIGRlZmluaWRhIHBvciBVc3VhcmlvIGNvbiBsb3MgUmVzdWx0YWRvcyBkZWwgRm9ybSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypFbnZpYXIgYSB1bmEgYWNjaSZvYWN1dGU7biBkZSBmb3JtdWxhcmlvIGFyYml0cmFyaWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVudmlhciBFbWFpbCBhIERpcmVjY2lvbiBFbWFpbCBTdW1pbmlzdHJhZGEgcG9yIFVzdWFyaW8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVudmlhciBFbWFpbCBhIFVzdWFyaW8gQWRtaW5pc3RyYXRpdm8gZGUgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW52aWFyIEVtYWlsIGRlIHJlc3VsdGFkb3MgYmFzYWRvIGVuIGNhbXBvcyBkZWwgZnJvbnRlbmQnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1Db3J0ZSBkZSBQJmFhY3V0ZTtnaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnU3ViaXIgQXJjaGl2byc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0Rlc2RlIERpcmVjY2kmb2FjdXRlO24mcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0RlIERpcmVjY2kmb2FjdXRlO24mcXVvdDsgZGUgbnVldm8nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdDYW1wbyBFbWFpbCAmcXVvdDtEZXNkZSBOb21icmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdDYW1wbyBFbWFpbCAmcXVvdDtBc3VudG8mcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9DQ0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgQ2FyYm9uIENvcHkgKENDKSBBZGRyZXNzIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVRleHRvIEVzdCZhYWN1dGU7dGljbyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1FbmxhY2UgRXN0JmFhY3V0ZTt0aWNvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnRW5sYWNlIChFbnRyYWRvIHBvciBVc3VhcmlvKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUNhbXBvIE9jdWx0byc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ2FtcG8gQ29tcHV0YWRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLU51bWVybyBlbnRlcm8gdW5pY28gKHNlcmlhbCknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctTGxhbWFyIGEgVGFnIERlZmluaWRhIHBvciBlbCBVc3VhcmlvIChVRFQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDYW1wbyBEaXJlY3RvcmlvIGRlIGxhIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy1DYW1wbyBkZSBJbnRlcmZheiBkZSBNJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hFeHRlbmRlZEZpZWxkJ10gPSAnQ2hlY2tib3ggZXh0ZW5kaWRvJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ1NpbiBWYWxpZGFyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bSZlYWN1dGU7cmljbyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdFbnRlcm8nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOJnVhY3V0ZTttZXJvIGRlIFRlbCZlYWN1dGU7Zm9ubyAoVVNBKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZWJlIENoZXF1ZWFyc2UnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0lndWFsYSBFeHByZXNpJm9hY3V0ZTtuIFJlZ3VsYXInOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm8gSWd1YWxhIEV4cHJlc2kmb2FjdXRlO24gUmVndWxhcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtcHR5J10gPSAnQ2FuJiMwMzk7dCBiZSBlbXB0eSc7CiRsYW5nWydyZXF1aXJlZCddID0gJ1JlcXVlcmlkbyc7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdObyBSZXF1ZXJpZG8nOwokbGFuZ1snbm90X2F2YWlsYWJsZSddID0gJ05vIERpc3BvbmlibGUnOwokbGFuZ1snZXJyb3JfZW1haWxmcm9tZmV1cHJvcCddID0gJ0Vycm9yIGVuIGNvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTm8gc2UgcHVkbyBlbmNvbnRyYXIgZWwgbSZvYWN1dGU7ZHVsbyBGcm9udEVuZFVzZXJlcy4gRXN0ZSBjYW1wbyBubyBmdW5jaW9uYXImYWFjdXRlOyc7CiRsYW5nWydlcnJvcl9ub2ZldWRlZm5zJ10gPSAnTm8gc2UgZW5jb250ciZvYWN1dGU7IG5pbmd1bmEgcHJvcGllZGFkIEZFVS4gRXN0ZSBjYW1wbyBubyB0ZW5kciZhYWN1dGU7IG5pbmd1bmEgZnVuY2kmb2FjdXRlO24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ05vIHNlIGluZGljJm9hY3V0ZTsgZWwgdmFsb3IgcGFyYSB1biBjYW1wbyByZXF1ZXJpZG8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biB2YWxvciBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIG4mdWFjdXRlO21lcm8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1bmEgZW50cmFkYSB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biB2YWxvciBlbnRlcm8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1bmEgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0xhIGRpcmVjY2kmb2FjdXRlO24gZGUgRW1haWwgbm8gY29pbmNpZGUgY29uIGxhIGRlICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUG9yIGZhdm9yIGluZ3Jlc2UgdW4gbiZ1YWN1dGU7bWVybyBkZSB0ZWwmZWFjdXRlO2Zvbm8gdiZhYWN1dGU7bGlkbyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1BvciBmYXZvciBpbmljaWUgc2VzaSZvYWN1dGU7biBwYXJhIHV0aWxpemFyIGVzdGUgZm9ybXVsYXJpbyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmaWV4Y2w7JnF1b3Q7JXMmcXVvdDsgbm8gcGFyZWNlIHNlciB1bmEgZGlyZWNjaSZvYWN1dGU7biBkZSBlbWFpbCB2JmFhY3V0ZTtsaWRhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUG9yIGZhdm9yIGluZ3Jlc2UgdW4gdmFsb3IgcXVlIG5vIHRlbmdhIG0mYWFjdXRlO3MgZGUgJXMgY2FyYWN0ZXJlcyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQb3IgZmF2b3IgaW50cm9kdXpjYSB1biB2YWxvciBjb24gYWwgbWVub3MgJXMgY2FyYWN0ZXJlcyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NhcmFjdGVyIGEgdXRpbGl6YXIgY29tbyBkZWxpbWl0YWRvciBlbiByZXN1bHRhZG9zIHF1ZSBvZnJlY2VuIG0mYWFjdXRlO3MgZGUgdW4gdmFsb3InOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1VzdGVkIG5lY2VzaXRhIHRlbmVyIGVsIHBlcm1pc28gJnF1b3Q7JXMmcXVvdDsgcGFyYSByZWFsaXphciBsYSBvcGVyYWNpJm9hY3V0ZTtuLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJyZpZXhjbDtQZXJkJm9hY3V0ZTtuISBQZXJvIHVzdGVkIG5vIHRpZW5lIHByaXZpbGVnaW9zIGFkZWN1YWRvcyBwYXJhIGluZ3Jlc2FyIGEgJmVhY3V0ZTtzdGEgc2VjY2kmb2FjdXRlO24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdTZSBhY3R1YWxpeiZvYWN1dGU7IGVsIG9yZGVuIGRlIGxvcyBjYW1wb3MuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyaW8gZWxpbWluYWRvLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnQ2FtcG8gZWxpbWluYWRvLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmFjaSZvYWN1dGU7biBBY3R1YWxpemFkYS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEZWJlIGNvbnRyb2xhciBhICZxdW90OyVzJnF1b3Q7IHBhcmEgcG9kZXIgY29udGludWFyLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnJmlleGNsO0RlYmUgaW5kaWNhciBhbCBtZW5vcyB1bmEgZGlyZWNjaSZvYWN1dGU7biBkZSBkZXN0aW5vISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICcmaWV4Y2w7RXN0JmFhY3V0ZTsgc2VndXJvIHF1ZSBxdWllcmUgZWxpbWluYXIgZWwgZm9ybXVsYXJpbyAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJyZpZXhjbDtFc3QmYWFjdXRlOyBzZWd1cm8gcXVlIHF1aWVyZSBlbGltaW5hciBlbCBjYW1wbyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnTGFzIG9wY2lvbmVzIGF2YW56YWRhcyBubyBlc3QmYWFjdXRlO24gZGlzcG9uaWJsZXMgaGFzdGEgcXVlIG5vIHNlIGhheWEgZmlqYWRvIGVsIHRpcG8gZGUgY2FtcG8uJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRWwgbm9tYnJlIGRlIGNhbXBvICZxdW90OyVzJnF1b3Q7IHlhIGVzdCZhYWN1dGU7IGVuIHVzby4gUG9yIGZhdm9yIHVzZSBub21icmVzIGRlIGNhbXBvcyAmdWFjdXRlO25pY29zLCBvIGRlc2hhYmlsaXRlIG5vbWJyZXMgZGUgY2FtcG9zICZ1YWN1dGU7bmljb3MgZW4gbGEgY29uZmlndXJhY2kmb2FjdXRlO24gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnTG9zIGNhbXBvcyBkZWJlbiB0ZW5lciBub21icmUsIHNhbHZvIHF1ZSBsbyBkZXNoYWJpbGl0ZSBlbiBsYSBjb25maWd1cmFjaSZvYWN1dGU7biBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MuJzsKJGxhbmdbJ25vX2ZpZWxkX2Fzc2lnbmVkJ10gPSAnTm8gaGF5IGNhbXBvIGFzaWduYWRvIHBhcmEgICVzJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0FuJm9hY3V0ZTtuaW1vJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMb25nOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGNhamFzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcGNpb25lcyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNhcmFjdC4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlbic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tzaW4gZXNwZWNpZmljYXJdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWdyZWdhZG8nOwokbGFuZ1sndXBkYXRlZCddID0gJ2FjdHVhbGl6YWRvJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09yZGVuYXIgb3BjaW9uZXMgYWwgc2FsaXInOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0VsZWdpciBVbm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdFbGVnaXIgVGlwbyc7CiRsYW5nWyd0byddID0gJ0EnOwokbGFuZ1sneWVzJ10gPSAnU2knOwokbGFuZ1snbm8nXSA9ICdObyAnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2VwdG9yZXMnOwokbGFuZ1snZmllbGRzJ10gPSAnY2FtcG9zJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBhcmNoaXZvcyBwb3NpYmxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3Rpbm9zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHdWFyZGFyJzsKJGxhbmdbJ2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0d1YXJkYXIgeSBDb250aW51YXIgRWRpdGFuZG8nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2kmb2FjdXRlO24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b20mYWFjdXRlO3RpY28nOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmlvcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXJpbyAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0VzdGFkbyBkZSBjYW1wbyByZXF1ZXJpZG8gYWN0dWFsaXphZG8uJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gTSZhYWN1dGU7eC4nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbmNpb25lcyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlwb3MgZGUgYXJjaGl2b3MgcGVybWl0aWRvcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJyZpZXhjbDtBcmNoaXZvIHN1YmlkbyBlcyBtdXkgZ3JhbmRlISBUYW1hJm50aWxkZTtvIG0mYWFjdXRlO3guIGVzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0VzdGUgdGlwbyBkZSBhcmNoaXZvIG5vIHB1ZWRlIHNlciBzdWJpZG8uIFBvciBmYXZvciBjb250cm9sYXIgcXVlIGxhIGV4dGVuc2kmb2FjdXRlO24gZXMgY29ycmVjdGEuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1N1YmlyJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcmlvIEltcG9ydGFkby4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnJmlleGNsO0ZhbGwmb2FjdXRlOyBsYSBpbXBvcnRhY2kmb2FjdXRlO24gZGVsIGZvcm11bGFyaW8hIEh1Ym8gcHJvYmxlbWEgY29uIGVsIGZvcm1hdG8gZGVsIGFyY2hpdm8gWE1MLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgZmlsYXMnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHVtbmFzJzsKJGxhbmdbJzEyX2hvdXInXSA9ICdSZWxvaiBkZSAxMiBIb3Jhcyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnUmVsb2ogZGUgMjQgSG9yYXMnOwokbGFuZ1snaG91ciddID0gJ0hvcmEnOwokbGFuZ1snbWluJ10gPSAnTWludXRvJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW5vJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSYW5nbzogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICcmaWV4Y2w7R3JhY2lhcyEgU2UgcmVjaWJpJm9hY3V0ZTsgc3UgZW52JmlhY3V0ZTtvLic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmFyJzsKJGxhbmdbJ2RheSddID0gJ0QmaWFjdXRlO2EnOwokbGFuZ1snbW9uJ10gPSAnTWVzJzsKJGxhbmdbJ3llYXInXSA9ICdBJm50aWxkZTtvJzsKJGxhbmdbJ25vbmUnXSA9ICcobmluZ3VubyknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTSZvYWN1dGU7ZHVsbyBkZXNpbnN0YWxhZG8uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ0luc3RhbGFkYSB2ZXJzaSZvYWN1dGU7biAlcyBkZWwgbSZvYWN1dGU7ZHVsby4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdTZSBhY3R1YWxpem8gZWwgbSZvYWN1dGU7ZHVsbyBhIGxhIHZlcnNpJm9hY3V0ZTtuICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdWb2x2ZXIuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0VudmlhciBGb3JtdWxhcmlvJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVhci4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlcXVlYWRvJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1NpbiBjaGVxdWVhcic7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1ByaW5jaXBhbCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnQ29uZmlndXJhciBWaXN0YSBkZWwgRm9ybSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRW52JmlhY3V0ZTtvIGRlbCBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ29uZmlndXJhY2lvbmVzIGRlIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQ29uZmlnLiBBdmFuemFkYXMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnUGxhbnRpbGxhIGRlbCBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgRW52aWFkbyc7CiRsYW5nWyd0YWJfdWR0J10gPSAnSW50ZWdyYWNpJm9hY3V0ZTtuIFVEVCc7CiRsYW5nWyd0aXRsZV9mZXVfcHJvcGVydHknXSA9ICdQcm9waWVkYWQgZGUgRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydpbmZvX2ZldV9wcm9wZXJ0eSddID0gJ1Mmb2FjdXRlO2xvIGNpZXJ0byB0aXBvIGRlIHByb3BpZWRhZGVzIHB1ZWRlbiB1dGxpemFyc2UgcGFyYSBzZXIgY290ZWphZG9zIChsaXN0YXMgZGVzcGxlZ2FibGVzLCBjYW1wb3MgbXVsdGktc2VsZWNjaSZvYWN1dGU7biwgZXRjKSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPkxhcyB2YXJpYWJsZXMgU21hcnR5IHNvbiB2JmFhY3V0ZTtsaWRhcyBlbiBlc3RlIGNhbXBvLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWdyZWdhciBNJmFhY3V0ZTtzIE9wY2lvbmVzJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRWxpbWluYXIgT3BjaW9uZXMgTWFyY2FkYXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZ3JlZ2FyIE0mYWFjdXRlO3MgQ2FqYXMgZGUgVGlsZGFyJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRWxpbWluYXIgQ2FqYXMgZGUgVGlsZGFyIE1hcmNhZGFzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWdyZWdhciBPdHJhIERpcmVjY2kmb2FjdXRlO24nOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdFbGltaW5hciBEaXJlY2Npb25lcyBNYXJjYWRhcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZ3JlZ2FyIE90cm8gRGVzdGlubyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdFbGltaW5hciBEZXN0aW5vcyBNYXJjYWRvcyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1NlIGhhbiBnZW5lcmFkbyBkZW1hc2lhZG9zICBlbWFpbHMgZGVzZGUgc3UgRGlyZWNjaSZvYWN1dGU7biBJUC4gQyZvYWN1dGU7ZGlnbyBBbnRpLVNwYW0gaGEgcHJldmVuaWRvIGVsIGVudiZpYWN1dGU7by4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU2UgaW50ZXJydW1waSZvYWN1dGU7IGVudmlvIHNvc3BlY2hhZG8gcG9yIFNwYW0gZGVzZGUgSVAgJXMuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVuYXIgQ2FtcG9zJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZhbG9yIGNvbmZpZ3VyYWRvOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1sndGl0bGVfdGV4dGZpZWxkX2xhYmVsJ10gPSAnRXRpcXVldGEgZGUgQ2FtcG8gZGUgVGV4dG8nOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdNb3N0cmFyIENhbXBvIGRlIFRleHRvPyc7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdVbmEgZXhwcmVzaSZvYWN1dGU7biByZWd1bGFyIHBhcmEgcGVybWl0aXIgZmlsdHJhciBpdGVtcyBkZSBDYXRhbG9nZXIgcG9yIG5vbWJyZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ0FsdHVyYSBkZWwgY2FtcG8gZGUgc2VsZWNjaSZvYWN1dGU7biBtdWx0aXBsZSc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnQWx0dXJhIGRlIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0RpcmVjdG9yaW8gRGVzdGlubyBkZSBhcmNoaXZvcyBkZSBzYWxpZGEnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdUYWcgRGVmaW5pZGEgcG9yIFVzdWFyaW8nOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgYSBkb25kZSB2b2x2ZXIgY29uIGVubGFjZXMgc3ViaWRvcyc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0VudmlhZG8gY29uIGVsIGNvbnN0cnVjdG9yIGRlIGZvcm11bGFyaW9zJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdDYXRlZ29yJmlhY3V0ZTthIGRlIHN1YmlkYXMnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdFbnZpYXIgZXN0ZSBhcmNoaXZvIGFsIG0mb2FjdXRlO2R1bG8gZGUgc3ViaWRhcyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICcmaXF1ZXN0O1Blcm1pdGlyIGxhIHNvYnJlZXNjcml0dXJhIGRlIGFyY2hpdm9zIHByZXZpb3MgYWwgc3ViaXI/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnRWwgYXJjaGl2byBzdWJpZG8gZGViZXImaWFjdXRlO2EgcmVlbXBsYXphciBlbCBhcmNoaXZvIGFudGVyaW9yIHNpIHRpZW5lbiBlbCBtaXNtbyBub21icmU/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ1Blcm1pdGlyIFNvYnJlZXNjcml0dXJhJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnTm8gU29icmVlc2NyaWJpcic7CiRsYW5nWydmaWxlX2FscmVhZHlfZXhpc3RzJ10gPSAnRWwgYXJjaGl2byAlcyB5YSBleGlzdGUsIHkgbm8gcHVlZGUgc2VyIHNvYnJlZXNjcml0byc7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ1BsYW50aWxsYSBkZSBOb21icmUgZGUgQXJjaGl2byc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ09yaWdpbmFsIGZpbGUgZXh0ZW5zaW9uIChpbmNsdWRlcyB0aGUgJnF1b3Q7LiZxdW90OyknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdFbGltaW5hciBlbCBub21icmUgZGUgYXJjaGl2byBlbiBlbWFpbHMgeSBmb3JtdWxhcmlvcyBxdWUgZWwgdXN1YXJpbyBwdWVkZSB2ZXInOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfYXR0YWNobWVudCddID0gJ05vIHBvZXJtaXRpciBhZGp1bnRhciBhcmNoaXZvcyBjb24gZW1haWxzJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdQYXJhIHJlbm9tYnJhciBsb3MgYXJjaGl2b3MgYWwgc3ViaXIsIGNyZWFyIGxhIHBsYW50aWxsYSBhcXUmaWFjdXRlOy4gRGVqZSBlbiBibGFuY28gcGFyYSBwcmVzZXJ2YXIgZWwgbm9tYnJlIGRlIGFyY2hpdm8gb3JpZ2luYWwuJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xleWVuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdMb25naXR1ZCBNJmFhY3V0ZTt4aW1hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpcXVldGEgZGUgQ2FqYSBkZSBUaWxkZSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aXF1ZXRhIGRlIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3IgY3VhbmRvIHRpZW5lIHRpbGRlLic7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxvciBjdWFuZG8gbm8gdGllbmUgdGlsZGUuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhbGxlcyBkZSBHcnVwbyBkZSBDYWphIGRlIFRpbGRlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJyZpcXVlc3Q7RWxpbWluYXI/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHRvICZxdW90O0VsZWdpciBVbm8mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgZGUgc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOb21icmUgZGUgU2VsZWNjaSZvYWN1dGU7biBhIE1vc3RyYXInOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBc3VudG8gZGUgU2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU2VsZWNjaSZvYWN1dGU7biBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1NlbGVjY2kmb2FjdXRlO24gcG9yIERlZmVjdG8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTZWxlY2NpJm9hY3V0ZTtuIHBvciBkZWZlY3RvJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tYnJlIGRlIE9wY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgRW52aWFkbyc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnT3BjaW9uZXMgZGUgRGVzcGxlZ2FibGUnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wY2lvbmVzIGRlIE11bHRpc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCBkZSBEZXN0aW5vJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tYnJlIGRlIEFyY2hpdm8gZGUgRGVzdGlubyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtEZXNkZSBub21icmUmcXVvdDsgcGFyYSBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNhciB2YWxpZGFjaSZvYWN1dGU7biBkZSBlbWFpbCByZWxhamFkYSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2FyIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGRpcmVjY2kmb2FjdXRlO24gZW1haWwgcmVsYWphZGEgKHAuZWouLCBwZXJtaXRlICZxdW90O3hAeSZxdW90OyBlbiB2ZXogZGUgcmVxdWVyaXIgYSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtEZXNkZSBkaXJlY2NpJm9hY3V0ZTtuJnF1b3Q7IHBhcmEgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdDb25maWd1cmFjaSZvYWN1dGU7biBkZSBjJm9hY3V0ZTtkaWZpY2FjaSZvYWN1dGU7biBkZSBjYXJhY3RlcmVzIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdEZXRhbGxlcyBwYXJhIEVtaXNvci1FbWFpbCBjb24gYmFzZSBEZXNwbGVnYWJsZSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb21icmUgZGUgYXJjaGl2byc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTCZpYWN1dGU7bmVhIEFzdW50byBkZSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb21icmUgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0VzdGFkbyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnTGlzdG8gcGFyYSBzdSBEZXNhcnJvbGxvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdObyBlc3QmYWFjdXRlOyBMaXN0byc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIGRpcmlnaXJzZSBsdWVnbyBkZWwgZW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQb3IgZmF2b3IgYWdyZWd1ZSB1biBjYW1wbyBhbCBmb3JtdWxhcmlvIHBhcmEgcXVlIGxvIGluZ3Jlc2FkbyBwb3IgZWwgdXN1YXJpbyBwdWVkYSBzZXIgbWFuZWphZG8uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnUHVlZGUgdXNhciBlc3RlIGF0YWpvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdDYW1wb3MgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0lkIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnTW9zdHJhciBBbGlhc2VzIGRlIGxvcyBjYW1wb3MnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ01hcmNhciBlc3RvIHZhIGEgbW9zdHJhciBsb3MgYWxpYXNlcyBkZSBjYW1wb3MgY3VhbmRvIHNlIGFncmVnYSBvIGVkaXRhIHVuYSBmb3JtYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tYnJlIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQWxpYXMgZGUgQ2FtcG8nOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRGV0YWxsZXMgZGUgR3J1cG8gQm90Jm9hY3V0ZTtuIGRlIFJhZGlvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUaXBvIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdwYXJhIGNyZWFyIHVuIGNhbXBvIGRlIG1hbmVqbyBkZWwgZm9ybXVsYXJpby4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWdyZWdhciBOdWV2byBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJyZpcXVlc3Q7TW9zdHJhciBWZXJzaSZvYWN1dGU7biBkZWwgTSZvYWN1dGU7ZHVsbz8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdMYSB2ZXJzaSZvYWN1dGU7biBkZWwgbSZvYWN1dGU7ZHVsbyBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBpbnN0YWxhZG8gc2UgaW5jbHVpciZhYWN1dGU7IGVuIGNvbWVudGFyaW9zLCBheXVkYSBhbCBoYWNlciBkZWJ1Zyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWdyZWdhciBOdWV2byBDYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdCb3Qmb2FjdXRlO24gZGUgUHJ1ZWJhIEVudiZpYWN1dGU7byBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnVGV4dG8gZGVsIEJvdCZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJyZpcXVlc3Q7QWdyZWdhbW9zIEphdmFzY3JpcHQgYWwgQm90Jm9hY3V0ZTtuIGRlIEVudiZpYWN1dGU7byBxdWUgYXl1ZGFyJmFhY3V0ZTsgYSBwcmV2ZW5pciBtJnVhY3V0ZTtsdGlwbGVzIGVudiZpYWN1dGU7b3MgZGVsIGZvcm11bGFyaW8/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZ3JlZ2FyIHNjcmlwdCBkZSBzZWd1cmlkYWQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1NpZ3VpZW50ZSZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1ByZXZpbyZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnQ2FtcG8gYSBWYWxpZGFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ2lkIENTUyBwYXJhIGVzdGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDbGFzZSBDU1MgcGFyYSBlc3RlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ2xhc2UgQ1NTIHBhcmEgZXN0ZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVURUIGEgc2VyIGxsYW1hZGEgYW50ZXMgZGUgcXVlIGVsIGZvcm11bGFyaW8gc2VhIG1vc3RyYWRvIHBvciBwcmltZXJhIHZleiAocyZvYWN1dGU7bG8gc2UgbGxhbWEgdW5hIHNvbGEgdmV6KSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdVRFQgYSBzZXIgbGxhbWFkYSBhbnRlcyBkZSBxdWUgZWwgZm9ybXVsYXJpbyBzZWEgZGVzcGxlZ2FkbyB0b2RhcyBsYXMgdmVjZXMgKGVzIGxsYW1hZGEgZW4gY2FkYSBwJmFhY3V0ZTtnaW5hIGRlIGZvcm11bGFyaW9zIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdVRFQgYSBzZXIgbGxhbWFkYSBkdXJhbnRlIGxhIHZhbGlkYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnUyZpYWN1dGU7bWJvbG8gcGFyYSBpZGVudGlmaWNhciBjYW1wb3MgcmVxdWVyaWRvcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVlcmlkbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnU2UgcmVxdWllcmUgdW5hIHJlc3B1ZXN0YSBwYXJhIGVzdGUgQ2FtcG8nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ09jdWx0YXIgRXRpcXVldGEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnT2N1bHRhciBlbCBub21icmUgZGUgZXN0ZSBjYW1wbyBlbiBlbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ0xvbmdpdHVkIG0mYWFjdXRlO3hpbWEgZGVsIGNvbnRlbmlkbyBkZWwgY2FtcG8gKDAgPSBpbGltaXRhZG8pJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdUZXh0byBlc3QmYWFjdXRlO3RpY28gYSBtb3N0cmFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhY2kmb2FjdXRlO24gZGUgUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ04mdWFjdXRlO21lcm8gZGUgTCZpYWN1dGU7bmVhcyBhIG1vc3RyYXInOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnU29sbyBMZWN0dXJhJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBlcyBQb3IgRGVmZWN0byc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1AmYWFjdXRlO2dpbmEgYSBkb25kZSBpciBkZXNwdSZlYWN1dGU7cyBkZSBhcHJvYmFyJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdFc3RhIGV4cHJlc2kmb2FjdXRlO24gcmVndWxhciBzZSB1c2FyJmFhY3V0ZTsgcyZvYWN1dGU7bG8gc2kgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGVzIHB1ZXN0byBhIHVuYSBvcGNpJm9hY3V0ZTtuIHJlZ2V4LXJlbGFjaW9uYWRhLiBJbmNsdXllIHVuIGNvbXBsZXRvIHJlZ2V4IGVzdGlsbyBQZXJsLCBpbmNsdXllbmRvIGFkZW0mYWFjdXRlO3MgbGFzIGJhcnJhcyBkZSBjb21pZW56by9wYXJhciB5IGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcXVlcmlkbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ09jdWx0YXIgRXJyb3Jlcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVGlwbyBkZSBGb3JtdWxhcmlvIE1vc3RyYWRvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW5pciBxdWUgbWVuc2FqZXMgZGUgZGVidWcgLyBlcnJvciBsb3MgdmVhIGVsIHVzdWFyaW8uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gbSZhYWN1dGU7eGltbyBkZSBhcmNoaXZvIGEgc3ViaXIgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdFc3RhIGxpbWl0YWNpJm9hY3V0ZTtuIHNlIGFncmVnYSBhIGxhcyBmaWphZGFzIHBvciBsYSBjb25maWd1cmFjaSZvYWN1dGU7biBkZSBwaHAgeSBlbCBzZXJ2aWRvciB3ZWInOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ0RpcmVjdG9yaW8gZW4gZG9uZGUgZ3VhcmRhciBsb3MgYXJjaGl2b3MnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25lcyBQZXJtaXRpZGFzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyYXIgdW5hIGxpc3RhIHNlcGFyYWRhIHBvciBjb21hcywgZXhjbHV5ZW5kbyBlbCBwdW50byAocC5lai4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIExvcyBlc3BhY2lvcyBzb24gaWdub3JhZG9zLiBTaSBkZWphIGVzdG8gZW4gYmxhbmNvIHNpZ25pZmljYSBxdWUgbm8gaGF5IHJlc3RyaWNjaW9uZXMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICcmaXF1ZXN0O01vc3RyYXIgcmVzdHJpY2Npb25lcz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnJmlxdWVzdDtNb3N0cmFyIGN1YWxxdWllciByZXN0cmljY2kmb2FjdXRlO24gZGUgdGFtYSZudGlsZGU7byB5IGV4dGVuc2kmb2FjdXRlO24gY29uIGVsIGFyY2hpdm8gYSBzdWJpcj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBhIHV0aWxpemFyIHBhcmEgTW9zdHJhciBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUCZhYWN1dGU7Z2luYSAlcyBkZSAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRWwgY2FtcG8gbm8gdGllbmUgb3BjaW9uZXMgYXZhbnphZGFzLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dG8gYSBkZXZvbHZlciBwYXJhIHZhbG9yZXMgZGUgY2FtcG8gc2luIGVzcGVjaWZpY2FyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICcmaXF1ZXN0O0hhYmlsaXRhIGRlc3BsZWdhYmxlIGRlIGFncmVnYWRvIHImYWFjdXRlO3BpZG8gZGUgY2FtcG9zIGVuIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJyZpcXVlc3Q7SGFiaWxpdGFtb3MgZGVzcGxlZ2FibGUgZGUgYWdyZWdhZG8gciZhYWN1dGU7cGlkbyBkZSBjYW1wb3M/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdBZ3JlZ2FyIHImYWFjdXRlO3BpZGFtZW50ZSBjYW1wb3MnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHMmb2FjdXRlO2xvIDEwIGVtYWlscyBhIHNlciBkaXNwYXJhZG9zIHBvciB1bmEgZGlyZWNjaSZvYWN1dGU7biBJUCBkYWRhIChwb3IgaG9yYSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJyZpcXVlc3Q7SGFiaWxpdGFyIGNhcmFjdGVyJmlhY3V0ZTtzdGljYXMgZWxlbWVudGFsZXMgcGFyYSBhbnRpLXNwYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb3N0cmFyIElEcyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHZlciBpZHMgZGUgY2FtcG9zIGN1YW5kbyBzZSBhZ3JlZ2EgbyBlZGl0YSB1biBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdTdWJpciBmb3JtdWxhcmlvIGRlc2RlIGFyY2hpdm8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2FyIGVzdGUgbm9tYnJlIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ0ltcG9ydGFyIEZvcm11bGFyaW8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNhciBlc3RlIGFsaWFzIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJyZpcXVlc3Q7R2VuZXJhciBlbWFpbCBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJyZpcXVlc3Q7UHVibGljYXIgYXV0b20mYWFjdXRlO3RpY2FtZW50ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJyZpcXVlc3Q7UHVibGljYXJsbyBhdXRvbSZhYWN1dGU7dGljYW1lbnRlIGNvbiBsYSBVUkwgZGUgbGEgcCZhYWN1dGU7Z2luYSBxdWUgY29udGllbmUgZWwgZm9ybXVsYXJpbz8gKGVzdG8gc29icmVzY3JpYmUgbGEgb3BjaSZvYWN1dGU7biBkZSBhYmFqbyBkZSBlbmxhY2UgZGUgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1VybCBwb3IgZGVmZWN0byBkZWwgZW5sYWNlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1RleHRvIHBvciBkZWZlY3RvIGRlbCBlbmxhY2UnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0VubGFjZSBhIHAmYWFjdXRlO2dpbmEgZGVsIHNpdGlvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1VzdGVkIHB1ZWRlIHVzYXIgYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHBhcmEgcHJvdGVnZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGxvcyBmb3JtdWxhcmlvcy4gUGFyYSBlc28gaW5zdGFsZSBlbCBtJm9hY3V0ZTtkdWxvLiBQb3IgbSZhYWN1dGU7cyBpbmZvcm1hY2kmb2FjdXRlO24sIGRlIHVuYSB2dWVsdGEgcG9yIGVsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnByb2plY3RvIENhcHRjaGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJyZpcXVlc3Q7VXNhciBDYXB0Y2hhIHBhcmEgcHJvdGVqZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnT2JzZXJ2ZSBhcXUmaWFjdXRlOyBwYXJhIHByb3RlZ2VyIGEgc3UgZm9ybXVsYXJpbyBjb24gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUG9yIGZhdm9yIGNvbmZpcm1lIHF1ZSB1c3RlZCBubyBlcyB1biBzY3JpcHQgaW5ncmVzYW5kbyBsb3MgY2FyYWN0ZXJlcyBkZSBsYSBpbWFnZW4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0Vycm9yIGVuIGVsIHRleHRvIHBhcmEgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnRWwgQ2FwdGNoYSBubyBlcyBjb3JyZWN0by4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVGV4dG8gZGUgYXl1ZGEgcGFyYSBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ05vIGVudmlhciB2YWxvcmVzIGRlIGNhamFzIHNpbiB0aWxkYXInOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdUaWxkYXIgZXN0byBzaSBkZXNlYSBxdWUgbGFzIGNhamFzIHRpbGRhZGFzIHJlZ3Jlc2VuIHVuIHZhbG9yJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdFdGlxdWV0YSBkZSBFbmxhY2UnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VybCBkZSBEZXN0aW5vIGRlIEVubGFjZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJyZpcXVlc3Q7Q2hlcXVlYXIgcG9yIERlZmVjdG8/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICcmaXF1ZXN0O1VzYW1vcyByZWxvaiBkZSAyNC1ob3Jhcz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdhbSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAncG0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICcmaXF1ZXN0O1Byb2Nlc2Ftb3Mgc21hcnR5IHRhZ3MgZGVudHJvIGRlIGNhbXBvcz8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ0ZpbGFzIChub3RhOiBlc3RvIHB1ZWRlIHNlciBzb2JyZXNjcml0byBwb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1uYXMgKG5vdGE6IGVzdG8gcHVlZGUgc2VyIHNvYnJlc2NyaXRvIHBvciBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0RldGFsbGVzIGRlIEZvcm11bGFyaW8gUHJpbmNpcGFsJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdQb3IgZGVmZWN0byBlbiBibGFuY28nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnUG9yIGRlZmVjdG8gZW4gYmxhbmNvIChEZXNtYXJxdWUgcGFyYSBxdWUgcG9yIGRlZmVjdG8gc2VhIGxhIGZlY2hhIGFjdHVhbCknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ01vc3RyYXIgZWwgTm9tYnJlIGRlbCBVc3VhcmlvPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdNb3N0cmFyIGVsIFByaW1lciBOb21icmUgZGVsIFVzdWFyaW8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnTW9zdHJhciBlbCBBcGVsbGlkbyBkZWwgVXN1YXJpbz8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmluZ2lyIGxpc3RhIGRlIHVzdWFyaW9zIGEgdXN1YXJpb3MgZGUgdW4gZ3J1cG8gZXNwZWNpZmljbyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyaXB0YXIgZGF0b3MgZ3VhcmRhZG9zIGVuIGxhIGJhc2UgZGUgZGF0b3MnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYWRvIHBhcmEgZW5jcmlwdGFjaSZvYWN1dGU7biBkZSBkYXRvcy4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICcmaXF1ZXN0O09yZGVuYXIgY2FtcG9zIHBvciBIYXNoPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ0xMYXZlIHByaXZhZGEgYSB1dGlsaXphciBwYXJhIGVuY3JpcHRhciBkYXRvcy4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ0VuY3JpcHRhY2kmb2FjdXRlO24gZGUgYWxtYWNlbmFtaWVudG8gbm8gZGlzcG9uaWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBDVVJMIHN1cHBvcnQgYWN0aXZlIGluIHlvdXIgUEhQIGluc3RhbGwuIFNlZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdFamVjdXRhciBlbiBtb2RvIE1MRSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2FtYmlhL1NvcG9ydGEgZWwgZm9yayBDTVNNUyBNdWx0aS1MZW5ndWFqZS4gTm8gbWFycXVlIGVzdGEgb3BjaSZvYWN1dGU7biBzaSBubyBlc3QmYWFjdXRlOyBjb3JyaWVuZG8gbGEgdmVyc2kmb2FjdXRlO24gTUxFJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdMaWJyZXImaWFjdXRlO2EgZGUgZW5jcmlwdGFjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDaGVjayB0aGlzIHRvIGVuY3J5cHQgdGhlIHN0b3JlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IChidXQgbm90IGltcG9zc2libGUpIGZvciBoYWNrZXJzIHRvIHZpZXcgdGhlIGluZm9ybWF0aW9uLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ0xhcyBzaWd1aWVudGVzIG9wY2lvbmVzIHMmb2FjdXRlO2xvIGVzdCZhYWN1dGU7biBkaXNwb25pYmxlcyBzaSB1c3RlZCBlc3QmYWFjdXRlOyB1c2FuZG8gbGEgbGlicmVyJmlhY3V0ZTthIGRlIGVuY3JpcHRhY2kmb2FjdXRlO24gT3BlblNTTCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdMaWJyZXImaWFjdXRlO2EgZGUgRW5jcmlwdGFjaSZvYWN1dGU7bic7CiRsYW5nWydvcGVuc3NsJ10gPSAnTGlicmVyJmlhY3V0ZTthIE9wZW5TU0wnOwokbGFuZ1snbWNyeXB0J10gPSAnTGlicmVyJmlhY3V0ZTthIFBIUCBtY3J5cHQnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyaXB0YWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnVVJMIGNvbXBsZXRhLCBpbmNsdXllbmRvIHByb3RvY29sbyB5IHJ1dGEgKGVqLiBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdVUkwgZGUgZW52JmlhY3V0ZTtvIGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnTSZlYWN1dGU7dG9kbyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdFbnYmaWFjdXRlO29zIGFkaWNpb25hbGVzJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ0FueXRoaW5nIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBzdWJtaXNzaW9uIHBheWxvYWQsIGluIFVSTC1lbmNvZGVkIGZvcm0gKC5lLmcsICZxdW90O3VzZXI9c3RldmUram9icyZhbXA7ZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ0luY2x1aXIgY2FtcG8gZW4gRW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdMb3MgZGF0b3Mgc2VyJmFhY3V0ZTtuIGFsbWFjZW5hZG9zIGVuIGxhIHRhYmxhIFtQUkVGSVhdX21vZHVsZV9mYl9mb3JtYnJvd3NlciBkZSBsYSBiYXNlIGRlIGRhdG9zLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICcmaWV4Y2w7RXJyb3IhIEVsIGZvcm11bGFyaW8gbm8gdGllbmUgY2FtcG8gZGUgZGlzcG9zaWNpJm9hY3V0ZTtuIHBhcmEgRm9ybSBCcm93c2VyLCBvICZlYWN1dGU7c3RlIGZhbGwmb2FjdXRlOyBlbiBpbnN0YW5jaWFyc2UgKCZpcXVlc3Q7ZGViaWRvIGEgcHJvYmxlbWFzIGRlIG1lbW9yaWE/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVc2UgJnF1b3Q7bSZxdW90OyBwYXJhIE1lcywgJnF1b3Q7ZCZxdW90OyBwYXJhIEQmaWFjdXRlO2EsIHkgJnF1b3Q7eSZxdW90OyBwYXJhIEEmbnRpbGRlO28uIFNlcGFyZSBsb3MgZWxlbWVudG9zIGNvbiBndWlvbmVzLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnU29sbyBlbiBlbCBncnVwbyAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdNb3N0cmFyIGFsIHVzdWFyaW8/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXNhciBnZW5lcmFkb3IgZGUgbiZ1YWN1dGU7bWVyb3MgYWxlYXRvcmlvcyBlbiB2ZXogZGUgZXN0JmFhY3V0ZTt0aWNvJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdDdWFudG9zIG51bWVyb3MgYSBnZW5lcmFyIGVuIGVsIHByb2Nlc28nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRXN0ZSBjYW1wbyBwdWVkZSBkZWphcnNlIHZhYyZpYWN1dGU7byc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgcGFyYSBQbGFudGlsbGEnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIERpc3BvbmlibGVzJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdGZWNoYSBkZSBFbnYmaWFjdXRlO28nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1N1IHNlcnZpZG9yJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0RpcmVjY2kmb2FjdXRlO24gSVAgZGUgbGEgcGVyc29uYSBxdWUgdXNhIGVsIGZvcm11bGFyaW8nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGRlIGxhIHAmYWFjdXRlO2dpbmEgcXVlIGNvbnRpZW5lIGVsIGZvcm11bGFyaW8nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnVmVyc2kmb2FjdXRlO24gRm9ybUJ1aWxkZXIgJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnUyZpYWN1dGU7bWJvbG8gZGUgdGFidWxhY2kmb2FjdXRlO24nOwokbGFuZ1snaGVscF9pZ25vcmVkX2lmX3VwbG9hZCddID0gJyhlc3RlIGNhbXBvIHNlIGlnbm9yYSBzaSB1c2EgZWwgbSZvYWN1dGU7ZHVsbyBVcGxvYWRzIHBhcmEgbWFuZWphciBsb3MgYXJjaGl2b3MpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnTm9tYnJlcyBkZSBjYW1wbyBhbHRlcm5hZG9zIHNlIHB1ZWRlbiB1c2FyIGVuIGZvcm1hIGludGVyY2FtYmlhYmxlIChlc3BlY2lhbG1lbnRlICZ1YWN1dGU7dGlsIHNpIFNtYXJ0eSBzZSBhdGFzY2EgY29uIGNhcmFjdGVyZXMgZnVlcmEgZGVsIHJhbmdvIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90cm9zIGNhbXBvcyBlc3RhciZhYWN1dGU7biBkaXNwb25pYmxlcyBhcyZpYWN1dGU7IGNvbW8gbG9zIGFncmVndWUgYWwgZm9ybXVsYXJpby4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdBIGxvcyBjYW1wb3MgcXVlIHRpZW5lbiB2YWxvcmVzIG0mdWFjdXRlO2x0aXBsZXMgc2UgcHVlZGUgdGFtYmkmZWFjdXRlO24gbGxlZ2FyIGEgZWxsb3MgdiZpYWN1dGU7YSBlbCB2YWxvciBzbWFydHkgZGUgJGZpZWxkbmFtZV9hcnJheSAgbyAgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnVmVhIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPmVsIE1hbnVhbCBQSFA8L2E+IHBhcmEgYXl1ZGEgZGUgZm9ybWF0b3MuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlICc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdDYW1wbyBSZXByZXNlbnRhZG8nOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ0VzcGVjaWZpcXVlIHVuIGFyY2hpdm8gbG9jYWxpemFkbyBlbiBlbCBkaXJlY3RvcmlvIEZvcm1CdWlsZGVyL3RlbXBsYXRlcy8NCkVzdGUgY2FtcG8gc2VyJmFhY3V0ZTsgaWdub3JhZG8gc2kgdXNhIFRYVCBjb21vIHRpcG8gZGUgYXJjaGl2by4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Jhc2ljOiBVc2UgdGhlIHRleHRhcmVhIGJlbG93IHRvIGxheW91dCB0aGUgZmllbGQgbmFtZXMvdmFsdWVzIGluIGEgc2luZ2xlIGJsb2NrLjxiciAvPg0KQWR2YW5jZWQ6IFNwZWNpZnkgU21hcnR5IHZhcmlhYmxlcyBpbiB0aGUgUlRGIFRlbXBsYXRlIEZpbGUgYXMgeW91IHdvdWxkIGJlbG93LCBidXQgYXJyYW5nZSB0aGVtIGhvd2V2ZXIgeW91IGxpa2UgYW5kIGFkZCBmb3JtYXR0aW5nLjxiciAvPg0KJm5ic3A7WW91IGNhbiBzdGlsbCB1c2UgdGhlICUlSEVBREVSJSUgYW5kICUlRk9PVEVSJSUgc2VjdGlvbnMgaW4gdGhlIFJURiBmaWxlLic7CiRsYW5nWydoZWxwX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBIZWFkZXIgVGVtcGxhdGUuPGJyIC8+DQpGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGSUVMRFMlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUgaWYgUlRGIFRlbXBsYXRlIFR5cGUgaXMgc2V0IHRvICZxdW90O0Jhc2ljJnF1b3Q7LjxiciAvPg0KVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgaWYgdXNpbmcgJnF1b3Q7UlRGJnF1b3Q7IGFzIEZpbGUgVHlwZSBhbmQgJnF1b3Q7QWR2YW5jZWQmcXVvdDsgYXMgUlRGIFRlbXBsYXRlIFR5cGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUhFQURFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRk9PVEVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVm9sdmVyIGFsIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWFyIFBsYW50aWxsYSBkZSBFamVtcGxvJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWFyIFBsYW50aWxsYSBkZSBFamVtcGxvIEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhciBQbGFudGlsbGEgY29uIEVuY2FiZXphZG8gZGUgTXVlc3RyYSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0NyZWFyIHBsYW50aWxsYSBkZSBQaSZlYWN1dGU7IGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhciBFbmNhYmV6YWRvIGRlIEVqZW1wbG8nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAndW4gY2FyYWN0ZXIgdGFiJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgcGFyYSBhcmNoaXZvIGRlIHNhbGlkYSBkZSB1bmEgbCZpYWN1dGU7bmVhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnUGxhbnRpbGxhIHBhcmEgZWwgZW5jYWJlemFkbyBkZSBhcmNoaXZvIGRlIHNhbGlkYSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1BsYW50aWxsYSBkZWwgcGkmZWFjdXRlOyBkZWwgYXJjaGl2byBkZSBzYWxpZGEnOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgYSB1c2FyIHBvciBlbCBhcmNoaXZvIFJURic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBSZXN1bHRhZG9zJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdHlwZSddID0gJ1NlbGVjY2lvbmUgdW4gdGlwbyBkZSBhcmNoaXZvIHBhcmEgdXNhcic7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ1NlbGVjY2lvbmVzIHVuYSBwbGFudGlsbGEgUlRGJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgZG9uZGUgaGFjZXIgY2xpY2sgcGFyYSBjb25maXJtYXIgZWwgZm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbG9yICh2ZWEgbGEgc29sYXBhIEF2YW56YWRvIHNpIHVzdGVkIHVzYSB0YWdzIHNtYXJ0eSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0Zvcm1hdG8gZGUgRmVjaGEgKGVzdCZhYWN1dGU7bmRhciA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5Gb3JtYXRvcyBkZSBGZWNoYSBQSFA8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzYXIgZWRpdG9yIFdZU0lXWUcgcGFyYSAmQWFjdXRlO3JlYSBkZSB0ZXh0byAoJmlxdWVzdDtzJm9hY3V0ZTtsbyBwYXJhIEFkbWluPyknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdDb21wb3J0YW1pZW50byBkZWwgRm9ybXVsYXJpbyBkZSBFbnYmaWFjdXRlO28nOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0V0aXF1ZXRhcyBkZSBCb3Qmb2FjdXRlO25lcyBkZSBFbnYmaWFjdXRlO28nOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdDYW1wbyBPcmRlbmFibGUgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnRXN0YSBwJmFhY3V0ZTtnaW5hIGxlIHBlcm1pdGUgYWRhcHRhciBhIHN1IGd1c3RvIGVsIEVudiZpYWN1dGU7byBkZWwgRm9ybXVsYXJpby4gTm8gZGV0ZXJtaW5hIHF1ZSBoYXImYWFjdXRlOyBlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBjb24gbGEgZGF0YSBlbnZpYWRhLiBFc3RvICZ1YWN1dGU7bHRpbW8gbG8gcHVlZGUgZXN0YWJsZWNlciBhZ3JlZ2FuZG8gY2FtcG9zIGRlICAmcXVvdDtEaXNwb3NpY2kmb2FjdXRlO24mcXVvdDsgYSBzdSBmb3JtdWxhcmlvLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnQ29taWVuemEgcmFuZ28gZGUgYSZudGlsZGU7byc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0ZpbiByYW5nbyBkZSBhJm50aWxkZTtvJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0EmbnRpbGRlO28gcG9yIERlZmVjdG8nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoUG9uZXIgYSAtMSBwYXJhIHF1ZSBlbCBhJm50aWxkZTtvIHBvciBkZWZlY3RvIHNlYSBlbCBhY3R1YWwpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdMdWVnbyBxdWUgZWwgZm9ybXVsYXJpbyBzZWEgZW52aWFkbyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwdWVzdGEgYSBtb3N0cmFyJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnRmVjaGEgZGUgZW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdGZWNoYSBkZSBhcHJvYmFjaSZvYWN1dGU7biAocG9yIGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRmVjaGEgZGUgYXByb2JhY2kmb2FjdXRlO24gKHBvciBxdWllbiBlbnYmaWFjdXRlO2EpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ01vc3RyYXIgJnF1b3Q7UGxhbnRpbGxhIGRlIEVudmlhZG8mcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyaWdpciBhIHAmYWFjdXRlO2dpbmEgZGVsIHNpdGlvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRXN0YSBwbGFudGlsbGEgZXMgcGFyYSBzZXIgbW9zdHJhZGEgYWwgdXN1YXJpbyB1bmEgdmV6IGVudmlhZG8gZWwgZm9ybXVsYXJpby4gRXN0YSBwbGFudGlsbGEgbm8gYWZlY3RhIGEgbG9zIGVtYWlscyBnZW5lcmFkb3MgdSBvdHJhcyBkaXNwb3NpY2lvbmVzIHBhcmEgZWwgZm9ybXVsYXJpbyAtLSBwdWVkZSBjb25maWd1cmFyIGEgZXN0YXMgJnVhY3V0ZTtsdGltYXMgcGxhbnRpbGxhcyAoZG9uZGUgc2VhIGFwcm9waWFkbykgZW4gbGEgc29sYXBhICZxdW90O2F2YW56YWRvJnF1b3Q7IHBhcmEgbG9zIGNhbXBvcyBxdWUgdGllbmVuIGxhIGRpc3BvbmliaWxpZGFkLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBEZXN0aW5vJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVlcmlyIE5vbWJyZSBkZSBDYW1wb3MnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICcmaXF1ZXN0O1NlIHJlcXVpZXJlIHF1ZSBsb3MgY2FtcG9zIHRlbmdhbiBub21icmU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWVyaXIgTm9tYnJlIGRlIENhbXBvcyAmVWFjdXRlO25pY29zJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICcmaXF1ZXN0O1NlIHJlcXVpZXJlIHF1ZSBsb3Mgbm9tYnJlcyBkZSBjYW1wb3Mgc2VhbiAmdWFjdXRlO25pY29zPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVuYXIgQ2FtcG9zJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDYXJnYXIgcGxhbnRpbGxhJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FncmVnYXIgdGV4dG8gZGUgQm90Jm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0VsaW1pbmFyIHRleHRvIGRlIEJvdCZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ1RleHRvIGRlIGF5dWRhIGEgbW9zdHJhciBjb24gZXN0ZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXRhciBsYXMgdmFyaWFibGVzIGNvbW8gc2kgZnVlcmFuIG4mdWFjdXRlO21lcm9zIG8gZnJhc2VzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnT3JkZW4gZGUgSW50ZXJwcmV0YWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdTaSBleGlzdGUgbSZhYWN1dGU7cyBkZSB1biBDYW1wbyBDb21wdXRhZG8sIGVsIG9yZGVuIGRlIGxvcyBjJmFhY3V0ZTtsY3Vsb3MgaXImYWFjdXRlOyBkZXNkZSBhcXVlbGxvcyBkZSBuJnVhY3V0ZTttZXJvIGRlIG9yZGVuIG0mYWFjdXRlO3MgYmFqbyBhIGxvcyBkZSBuJnVhY3V0ZTttZXJvIGRlIG9yZGVuIG0mYWFjdXRlO3MgYWx0byc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdDYWRlbmEgKHNpbiBlc3BhY2lvcyBlbnRyZSBjYW1wb3MpPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsb3IgYSBjb21wdXRhcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQ29tcHV0YWRvL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdGcmFzZSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtJmVhY3V0ZTtyaWNvJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnJmlxdWVzdDtNb3N0cmFyIGVsIGZvcm11bGFyaW8gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIHNpZ25pZmljYSBxdWUgY3VhbHF1aWVyIHJlc3VsdGFkbyBkZWwgZm9ybXVsYXJpbyByZWVtcGxhemEgZWwgdGFnIHtjbXNfbW9kdWxlfSwgbm9uLWlubGluZSByZWVtcGxhemEgZWwgdGFnIHtjb250ZW50fS4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1ZhbG9yIHBvciBkZWZlY3RvIHBhcmEgZWwgY2FtcG8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJyZpcXVlc3Q7TGltcGlhciBwb3IgZGVmZWN0byBhbCBzZWxlY2Npb25hcj8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnU2VsZWNjaW9uZSBlc3RvIHBhcmEgbGltcGlhciBlbCB2YWxvciBwb3IgZGVmZWN0byBjdWFuZG8gdW4gdXN1YXJpbyBzZWxlY2Npb25lIGVzdGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdCb3JyYXIgYXJjaGl2byBzdWJpZG8gZGVzcHVlcyBkZSBwcm9jZXNhciAoZGlzcG9zaWNpb25lcyBkZSBlbWFpbCknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgcGFyYSBlbCBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBkZSBFbnZpbyBkZSBGb3JtYSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdObyB1dGlsaWNlIGN1YWxxdWllciBkaXJlY2NpJm9hY3V0ZTtuIGFsIGF6YXIgLS0gTXVjaG9zIElTUDxiciAvPiBubyBlbnZpYXJhbiBlbCBlbWFpbCBzaSB1dGlsaXphIHVuIGRvbWluaW8gZGlmZXJlbnRlIGEgc3UgdmVyZGFkZXJvIDxiciAvPm5vbWJyZSBkZSBob3N0IChlai4gdXNlIGFsZ28gY29tbyBub21icmVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lY2VzaXRhIG1hcyB0aXBvcyBkZSBhcmNoaXZvcz8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnRGVtYXNpYWRvcyB0aXBvcyBkZSBhcmNoaXZvcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnQ2FtYmlhciBhIE1vZG8gQXZhbnphZG8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdDYW1iaWFyIGEgTW9kbyBTaW1wbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3JpbyBwYXJhIGd1YXJhciBlbCBhcmNoaXZvJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnRXN0ZSBuZWNlc2l0YSBzZXIgdW4gZGlyZWN0b3JpbyBhbCBjdWFsIHN1IHNlcnZpZG9yIHdlYiB0ZW5nYSBwZXJtaXNvcyBkZSBlc2NyaXR1cmEuPGJyIC8+DQpDaG1vZCA3NzcgU2kgdGllbmUgcHJvYmxlbWFzL2R1ZGFzIDxiciAvPg0KVGFtYmkmZWFjdXRlO24gdmVyaWZpcXVlIHF1ZSBubyB0aWVuZSByZXN0cmljY2lvbmVzIGVuIGVsIGRpcmVjdG9yaW8gUEhQLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnU2ltYm9sbyBkZSByZWVtcGxhem8gcGFyYSByZXRvcm5vL251ZXZhIGxpbmVhJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0RlamFyIHZhY2lvIHBhcmEgcGVybWl0aXIgZGVzcGxpZWd1ZSBkZSByZXRvcm5vL251ZXZhcyBsaW5lYXMgJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdFbnZpYXIgdW5hIGNvcGlhIGRlbCBlbnZpbyBhbCB1c3VhcmlvPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnRXRpcXVlcmEgcGFyYSBsYSBjYWphIGRlIHRpbGRhciAoZWxlY2NpJm9hY3V0ZTtuIGRlbCB1c3VhcmlvKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ0Vudmlhcm1lIHVuYSBjb3BpYSBkZSBsYSBmb3JtYSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnJmlxdWVzdDtQZXJtaXRpciBxdWUgZWwgYXN1bnRvIHNlYSBzb2JyZWVzY3JpdG8/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJw0KQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdMb25naXR1ZCBhIG1vc3RyYXInOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNJmlhY3V0ZTtuaW1hIGxvbmdpdHVkIGRlIHJlc3B1ZXN0YSc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnRXNjb25kZXIgZW50cmFkYSc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdVdGlsaXphciBzJmlhY3V0ZTttYm9sb3MgZW4gdmV6IGRlIHRleHRvIHBsYW5vIGN1YW5kbyBlbCB1c3VhcmlvIGludHJvZHVjZSBzdSBwYXNzd29yZD8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdMb3MgcGFzc3dvcmQgbm8gY29pbmNpZGVuICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnVm9sdmVyIGEgbGEgUCZhYWN1dGU7Z2luYSBQcmluY2lwYWwgZGUgRm9ybUJ1aWxkZXInOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICcmaXF1ZXN0O0N1YWxlcyBlbmNhYmV6YWRvcyBkZSBlbWFpbCBkZWJlciZpYWN1dGU7YSBkZSBwb2JsYXIgZXN0ZSBjYW1wbz8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ05vIGFjZXB0YXIgZXNwYWNpbyBlbiBibGFuY28gY29tbyByZXNwdWVzdGEgdiZhYWN1dGU7bGlkYSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdTaSB1biBjYW1wbyBlcyByZXF1ZXJpZG8sIE1hcmNhciBlc3RvIHJlcXVlcmlyJmFhY3V0ZTsgcXVlIGxvcyB1c3VhcmlvcyBwb25nYW4gY2FyYWN0ZXJlcyBhbGZhbnVtJmVhY3V0ZTtyaWNvcyB5IG5vIHNvbGFtZW50ZSBlc3BhY2lvcy4nOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnWW91IG11c3QgY2xpY2sgb25lIG9mIHRoZSAmcXVvdDtzYXZlJnF1b3Q7IGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXRpbGl6YXIgbWFyY2Fkb3IgZGUgcG9zaWNpJm9hY3V0ZTtuIChwbGFjZWhvbGRlcikgSFRNTDUgZW4gbHVnYXIgZGUgSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9jY19hZGRyZXNzJ10gPSAnQWRkcmVzcyhlcykgdG8gZW1haWwgYXMgQ2FyYm9uIGNvcHkgKENDKS4gVXNlIGNvbW1hcyB0byBkZWxpbWl0IG11bHRpcGxlIGFkZHJlc3Nlcy4nOwokbGFuZ1sndGl0bGVfdXNlX2JjYyddID0gJ1VzZSBCbGluZCBjYXJib24gY29weSAoQkNDIGluc3RlYWQgb2YgQ0MpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNpbmcnXSA9ICdNYWlsIEFkZHJlc3NpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fbW9kaWZ5J10gPSAnRW1haWwgZmllbGQgdG8gYWRkIENDIGFkZHJlc3MnOwokbGFuZ1sndGl0bGVfbW9kaWZpZXMnXSA9ICdBZGQgQ0MgdG8gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYmNjX2ZpZWxkJ10gPSAnJnF1b3Q7QkNDJnF1b3Q7IHJlY2lwaWVudHMnOwokbGFuZ1snY2NfZmllbGQnXSA9ICcmcXVvdDtDQyZxdW90OyByZWNpcGllbnRzJzsKJGxhbmdbJ3RvX2ZpZWxkJ10gPSAnTm9ybWFsICgmcXVvdDtUbyZxdW90OyByZWNpcGllbnRzKSc7CiRsYW5nWydiY2MnXSA9ICdCQ0MnOwokbGFuZ1snY2MnXSA9ICdDQyc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUhJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ051bmNhJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0RhciBvcGNpJm9hY3V0ZTtuIGFsIHVzdWFyaW8gKGNhamEgZGUgdGlsZGFyKSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnU2llbXByZSc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnQSZudGlsZGU7byBGaW5hbCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eSBkYXRhIG9yIGxvZ2ljIHRoYXQgaXMgbWVhbnQgdG8gYmUgc2VudCB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW50IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ0luY2x1aXIgZXRpcXVldGFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCddID0gJ0VuYWJsaW5nIHRoaXMgaW5jbHVkZXMgbGFiZWxzIHRvIG91dHB1dC4gZXhhbXBsZSAtIGxhYmVsOiB2YWx1ZSxsYWJlbDI6IHZhbHVlMic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5ncyddID0gJ0xpbmsgdGhpcyBmaWVsZCB0byBpdCYjMDM5O3Mgc2libGluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdCYjMDM5O3Mgc2libGluZy4gTWFrZXMgcG9zc2libGUgY29udHJvbGxpbmcgdGhpcyBmaWVsZCB3aXRoIHNlbGVjdGVkIHNpYmxpbmcgY29udHJvbHMuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJ10gPSAnT2N1bHRhciBib3RvbmVzIGRlIGNvbnRyb2wnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ09jdWx0YXIgYm90b25lcyBkZSBjb250cm9sIGVuIGVsIGZyb250ZW5kIHBhcmEgZXN0ZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RlJ10gPSAnTm90YSc7CiRsYW5nWyd0aXRsZV9jaGFuZ2luZ190cmlnZ2Vyc19yZWluZGV4J10gPSAnQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmVpbmRleCBvZiAqYWxsKiBzYXZlZCByZWNvcmRzLCBzbyBpdCBjb3VsZCB0YWtlIGEgd2hpbGUuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ0F0dGVtcHRlZCB1cGxvYWQgb2YgaWxsZWdhbCBmaWxlIHR5cGUgKCVzKSBmcm9tICVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGUnXSA9ICdNYWtlIHJlY29yZHMgYWNjZXNzaWJsZSB0byBTZWFyY2ggTW9kdWxlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0NoZWNraW5nIHRoaXMgd2lsbCBtYWtlIGFsbCBzdWJtaXR0ZWQgZGF0YSBhY2Nlc3NpYmxlIHRvIHRoZSBTZWFyY2ggTW9kdWxlLiBETyBOT1QgdXNlIHRoaXMgaWYgeW91IGVuY3J5cHQgeW91ciBkYXRhIC0tIHRoZSBpbmZvcm1hdGlvbiBnZXRzIGV4cG9zZWQgdG8gc2VhcmNoIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuY3J5cHRlZCEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J10gPSAnJXMgKG91dHNpZGUgd2ViIHJvb3QpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnRWRpdGFibGUgaW4gRm9ybUJyb3dzZXIgQWRtaW4/JzsKJGxhbmdbJ3RpdGxlX2FjdGl2ZV9vbmx5J10gPSAnT25seSBpbmNsdWRlIGFjdGl2ZSB1c2Vycz8nOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ1VzZXIgZGVmaW5lZCB0YWcgJXMgcmV0dXJuZWQgYW4gZXJyb3IuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+RWwgbW9kdWxvIENhdGFsb2dlciBubyBwYXJlY2UgZXN0YXIgaW5zdGFsYWRvL2FjdGl2by48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ0FEVkVSVEVOQ0lBISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgVGFibGEsIFQmaWFjdXRlO3R1bG9zIGEgbGEgaXpxdWllcmRhJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBUYWJsYSwgVCZpYWN1dGU7dHVsb3MgYWwgdG9wZSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdQbGFudGlsbGEgZGUgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnJmlxdWVzdDtFc3QmYWFjdXRlOyBzZWd1cm8gcXVlIHF1aWVyZSBzb2JyZSBlc2NyaWJpciBzdSBwbGFudGlsbGEgY29uIGxhIHBsYW50aWxsYSBzZWxlY2Npb25hZGE/IChBJnVhY3V0ZTtuIGN1YW5kbyB1c3RlZCBkaWdhIE9LLCBuZWNlc2l0YXImYWFjdXRlOyBndWFyZGFyIGxvcyBjYW1iaW9zKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciBhbCBjYWxjdWxhciAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIGhheSBpbmZvIGRpc3BvbmlibGUgZGUgSFRUUF9SRUZFUkVSIChwcm9iYWJsZW1lbnRlIGRlYmlkbyBhbCB1c28gZGUgbGEgVmFsaWRhY2kmb2FjdXRlO24gZGVsICBFbWFpbCBkZSBVc3VhcmlvKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRXJyb3IgZGUgUGFyJmFhY3V0ZTttZXRybyBkZSBWYWxpZGFjaSZvYWN1dGU7bi4gJmlleGNsO1BvciBmYXZvciBhc2VnJnVhY3V0ZTtyZXNlIHF1ZSBoYSBjb3BpYWRvIGVsIFVSTCBkZSBzdSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIGNvcnJlY3RhbWVudGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdFcnJvciBlbiBSZXNwdWVzdGEgZGUgVmFsaWRhY2kmb2FjdXRlO24uICZpZXhjbDtQb3IgZmF2b3IgYXNlZyZ1YWN1dGU7cmVzZSBxdWUgaGEgY29waWFkbyBlbCBVUkwgZGUgc3UgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCBjb3JyZWN0YW1lbnRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRXJyb3IgZW4gUmVzcHVlc3RhIGRlIFZhbGlkYWNpJm9hY3V0ZTtuLiAmaWV4Y2w7Tm8gaGF5IGNhbXBvIGRlIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGVtYWlsIGVuIGVzdGUgZm9ybXVsYXJpbyEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0xhIHBsYW50aWxsYSBkZWwgZm9ybXVsYXJpbyBmdWUgcHVlc3RhIGFsIGQmaWFjdXRlO2EgYXV0b20mYWFjdXRlO3RpY2FtZW50ZSBjb21vIHBhcnRlIGRlbCBhY3R1YWxpemFkbyBkZSBsYSB2ZXJzaSZvYWN1dGU7biAwLjMgYSBsYSB2ZXJzaSZvYWN1dGU7biAwLjQuIFVzdGVkIGRlYmVyJmFhY3V0ZTsgaGFjZXIgYWxndW5vcyBhanVzdGVzLiBTaSBlc3QmYWFjdXRlOyB1dGlsaXphbmRvIGVsIGZvcm11bGFyaW8gcG9yIGRlZmVjdG8sIHNpbXBsZW1lbnRlIHJlbXBsYWNlIGVzdGEgcGxhbnRpbGxhIGNvbiAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzYW5kbyBlbCBkZXNwbGVnYWJsZSBkZSBhcnJpYmEuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FncmVndWUsIGVkaXRlIHkgYWRtaW5pc3RyZSBGb3JtdWxhcmlvcyBpbnRlcmFjdGl2b3MnOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9hZG1pbiddID0gJ0RlYmUgZXNwZWNpZmljYXIgdW4gYWRtaW5pc3RyYWRvcic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ1NpIHVzdGVkIHV0aWxpemEgZXZhbHVhY2kmb2FjdXRlO24gZGUgU3RyaW5nLCBsYSAmdWFjdXRlO25pY2Egb3BlcmFjaSZvYWN1dGU7biBkaXNwb25pYmxlIGVzIGNvbmNhdGVuYWNpJm9hY3V0ZTtuICgrKSwgbWllbnRyYXMgcXVlIHNpIHVzYSBldmFsdWFjaSZvYWN1dGU7biBudW0mZWFjdXRlO3JpY2EgdXN0ZWQgdGllbmUgYyZhYWN1dGU7bGN1bG9zIG1hdGVtJmFhY3V0ZTt0aWNvcyBiJmFhY3V0ZTtzaWNvcyB5IG11eSBzaW1wbGVzICgsICssIC0sICosIC8sICkuIFNpIHV0bGl6YSBldmFsdWFjaSZvYWN1dGU7biBDb21wdXRhZGEvUEhQLCBwdWVkZSB1dGlsaXphciBjdWFscXVpZXIgZnVuY2kmb2FjdXRlO24gcGVybyBuZWNlc2l0YSBlbnRyZWNvbWlsbGFyIGxhcyBjb3NhcyAoaGF5IHN1YnN0aXR1Y2kmb2FjdXRlO24gYW50ZXMgZGUgbGEgZXZhbHVhY2kmb2FjdXRlO24sIHBvciBlai4gc3Vic3RyKCYjMDM5OyRmbGRfMjImIzAzOTssMCwyKS4mIzAzOTskZmxkXzIzJiMwMzk7Lic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdVc2luZyBNb2R1bGUgSW50ZXJmYWNlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4NClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7Pg0KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdBZ3JlZ3VlIHN1IGV0aXF1ZXRhJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0VuZXJvJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJyZXJvJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJ6byc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQWJyaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXlvJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmlvJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGlvJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQWdvc3RvJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGllbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3R1YnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZpZW1icmUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RpY2llbWJyZSc7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBTCddID0gJ0FsYmFuaWEnOwokbGFuZ1snRFonXSA9ICdBbGdlcmlhJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBhbmQgQmFyYnVkYSc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluYSc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEnOwokbGFuZ1snQVcnXSA9ICdBcnViYSc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpYSc7CiRsYW5nWydBVCddID0gJ0F1c3RyaWEnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyc7CiRsYW5nWydCSCddID0gJ0JhaHJhaW4nOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXSA9ICdCaWVsb3J1c2lhJzsKJGxhbmdbJ0JFJ10gPSAnQiZlYWN1dGU7bGdpY2EnOwokbGFuZ1snQlonXSA9ICdCZWxpemUnOwokbGFuZ1snQkonXSA9ICdCZW5pbic7CiRsYW5nWydCTSddID0gJ0Jlcm11ZGEnOwokbGFuZ1snQlQnXSA9ICdCaHV0YW4nOwokbGFuZ1snQlcnXSA9ICdCb3Rzd2FuYSc7CiRsYW5nWydCTyddID0gJ0JvbGl2aWEnOwokbGFuZ1snQkEnXSA9ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0IElzbGFuZCc7CiRsYW5nWydCUiddID0gJ0JyYXppbCc7CiRsYW5nWydJTyddID0gJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSc7CiRsYW5nWydCTiddID0gJ0JydW5laSBEYXJ1c3NhbGFtJzsKJGxhbmdbJ0JHJ10gPSAnQnVsZ2FyaWEnOwokbGFuZ1snQkYnXSA9ICdCdXJraW5hIEZhc28nOwokbGFuZ1snQkknXSA9ICdCdXJ1bmRpJzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kaWEnOwokbGFuZ1snQ00nXSA9ICdDYW1lcm9vbic7CiRsYW5nWydDQSddID0gJ0NhbmFkYSc7CiRsYW5nWydDViddID0gJ0NhcGUgVmVyZGUnOwokbGFuZ1snS1knXSA9ICdDYXltYW4gSXNsYW5kcyc7CiRsYW5nWydDRiddID0gJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydURCddID0gJ0NoYWQnOwokbGFuZ1snQ0wnXSA9ICdDaGlsZSc7CiRsYW5nWydDTiddID0gJ0NoaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCc7CiRsYW5nWydDQyddID0gJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJzsKJGxhbmdbJ0NPJ10gPSAnQ29sb21iaWEnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zJzsKJGxhbmdbJ0NHJ10gPSAnQ29uZ28nOwokbGFuZ1snQ0QnXSA9ICdDb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0snXSA9ICdDb29rIElzbGFuZHMnOwokbGFuZ1snQ1InXSA9ICdDb3N0YSBSaWNhJzsKJGxhbmdbJ0NJJ10gPSAnSXZvaXJlIChJdm9yeSBDb2FzdCknOwokbGFuZ1snSFInXSA9ICdDcm9hdGlhIChIcnZhdHNrYSknOwokbGFuZ1snQ1UnXSA9ICdDdWJhJzsKJGxhbmdbJ0NZJ10gPSAnQ3lwcnVzJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMnOwokbGFuZ1snREsnXSA9ICdEZW5tYXJrJzsKJGxhbmdbJ0RKJ10gPSAnRGppYm91dGknOwokbGFuZ1snRE0nXSA9ICdEb21pbmljYSc7CiRsYW5nWydETyddID0gJ0RvbWluaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydUUCddID0gJ0Vhc3QgVGltb3InOwokbGFuZ1snRUMnXSA9ICdFY3VhZG9yJzsKJGxhbmdbJ0VHJ10gPSAnRWd5cHQnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvcic7CiRsYW5nWydHUSddID0gJ0VxdWF0b3JpYWwgR3VpbmVhJzsKJGxhbmdbJ0VSJ10gPSAnRXJpdHJlYSc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWEnOwokbGFuZ1snRVQnXSA9ICdFdGhpb3BpYSc7CiRsYW5nWydGSyddID0gJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRkonXSA9ICdGaWppJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCc7CiRsYW5nWydGUiddID0gJ0ZyYW5jZSc7CiRsYW5nWydGWCddID0gJ0ZyYW5jZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5JzsKJGxhbmdbJ1BGJ10gPSAnRnJlbmNoIFBvbHluZXNpYSc7CiRsYW5nWydURiddID0gJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snR0EnXSA9ICdHYWJvbic7CiRsYW5nWydHTSddID0gJ0dhbWJpYSc7CiRsYW5nWydHRSddID0gJ0dlb3JnaWEnOwokbGFuZ1snREUnXSA9ICdHZXJtYW55JzsKJGxhbmdbJ0dIJ10gPSAnR2hhbmEnOwokbGFuZ1snR0knXSA9ICdHaWJyYWx0YXInOwokbGFuZ1snR0InXSA9ICdHcmVhdCBCcml0YWluIChVSyknOwokbGFuZ1snR1InXSA9ICdHcmVlY2UnOwokbGFuZ1snR0wnXSA9ICdHcmVlbmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEnOwokbGFuZ1snR04nXSA9ICdHdWluZWEnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hUJ10gPSAnSGFpdGknOwokbGFuZ1snSE0nXSA9ICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc7CiRsYW5nWydITiddID0gJ0hvbmR1cmFzJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nJzsKJGxhbmdbJ0hVJ10gPSAnSHVuZ2FyeSc7CiRsYW5nWydJUyddID0gJ0ljZWxhbmQnOwokbGFuZ1snSU4nXSA9ICdJbmRpYSc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpYSc7CiRsYW5nWydJUiddID0gJ0lyYW4nOwokbGFuZ1snSVEnXSA9ICdJcmFxJzsKJGxhbmdbJ0lFJ10gPSAnSXJlbGFuZCc7CiRsYW5nWydJTCddID0gJ0lzcmFlbCc7CiRsYW5nWydJTSddID0gJ0lzbGUgb2YgTWFuJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbHknOwokbGFuZ1snSkUnXSA9ICdKZXJzZXknOwokbGFuZ1snSk0nXSA9ICdKYW1haWNhJzsKJGxhbmdbJ0pQJ10gPSAnSmFwYW4nOwokbGFuZ1snSk8nXSA9ICdKb3JkYW4nOwokbGFuZ1snS1onXSA9ICdLYXpha2hzdGFuJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEnOwokbGFuZ1snS0knXSA9ICdLaXJpYmF0aSc7CiRsYW5nWydLUCddID0gJ0tvcmVhIChOb3J0aCknOwokbGFuZ1snS1InXSA9ICdLb3JlYSAoU291dGgpJzsKJGxhbmdbJ0tXJ10gPSAnS3V3YWl0JzsKJGxhbmdbJ0tHJ10gPSAnS3lyZ3l6c3Rhbic7CiRsYW5nWydMQSddID0gJ0xhb3MnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWEnOwokbGFuZ1snTEInXSA9ICdMZWJhbm9uJzsKJGxhbmdbJ0xJJ10gPSAnTGllY2h0ZW5zdGVpbic7CiRsYW5nWydMUiddID0gJ0xpYmVyaWEnOwokbGFuZ1snTFknXSA9ICdMaWJ5YSc7CiRsYW5nWydMUyddID0gJ0xlc290aG8nOwokbGFuZ1snTFQnXSA9ICdMaXRodWFuaWEnOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUnOwokbGFuZ1snTUcnXSA9ICdNYWRhZ2FzY2FyJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpJzsKJGxhbmdbJ01ZJ10gPSAnTWFsYXlzaWEnOwokbGFuZ1snTVYnXSA9ICdNYWxkaXZlcyc7CiRsYW5nWydNTCddID0gJ01hbGknOwokbGFuZ1snTVQnXSA9ICdNYWx0YSc7CiRsYW5nWydNSCddID0gJ01hcnNoYWxsIElzbGFuZHMnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pYSc7CiRsYW5nWydNVSddID0gJ01hdXJpdGl1cyc7CiRsYW5nWydZVCddID0gJ01heW90dGUnOwokbGFuZ1snTVgnXSA9ICdNZXhpY28nOwokbGFuZ1snRk0nXSA9ICdNaWNyb25lc2lhJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvJzsKJGxhbmdbJ01EJ10gPSAnTW9sZG92YSc7CiRsYW5nWydNQSddID0gJ01vcm9jY28nOwokbGFuZ1snTU4nXSA9ICdNb25nb2xpYSc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQnOwokbGFuZ1snTVonXSA9ICdNb3phbWJpcXVlJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hcic7CiRsYW5nWydOQSddID0gJ05hbWliaWEnOwokbGFuZ1snTlInXSA9ICdOYXVydSc7CiRsYW5nWydOUCddID0gJ05lcGFsJzsKJGxhbmdbJ05MJ10gPSAnTmV0aGVybGFuZHMnOwokbGFuZ1snQU4nXSA9ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyc7CiRsYW5nWydOVCddID0gJ05ldXRyYWwgWm9uZSc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXSA9ICdOZXcgWmVhbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJzsKJGxhbmdbJ05PJ10gPSAnTm9yd2F5JzsKJGxhbmdbJ09NJ10gPSAnT21hbic7CiRsYW5nWydQSyddID0gJ1Bha2lzdGFuJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUnOwokbGFuZ1snUFMnXSA9ICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ10gPSAnUGFyYWd1YXknOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZXMnOwokbGFuZ1snUE4nXSA9ICdQaXRjYWlybic7CiRsYW5nWydQTCddID0gJ1BvbGFuZCc7CiRsYW5nWydQVCddID0gJ1BvcnR1Z2FsJzsKJGxhbmdbJ1BSJ10gPSAnUHVlcnRvIFJpY28nOwokbGFuZ1snUUEnXSA9ICdRYXRhcic7CiRsYW5nWydSRSddID0gJ1JldW5pb24nOwokbGFuZ1snUk8nXSA9ICdSb21hbmlhJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUndhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMnOwokbGFuZ1snTEMnXSA9ICdTYWludCBMdWNpYSc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgJmFtcDsgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSc7CiRsYW5nWydTTSddID0gJ1NhbiBNYXJpbm8nOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEnOwokbGFuZ1snU04nXSA9ICdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ10gPSAnU2V5Y2hlbGxlcyc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTRyddID0gJ1NpbmdhcG9yZSc7CiRsYW5nWydTSSddID0gJ1Nsb3ZlbmlhJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljJzsKJGxhbmdbJ1NCJ10gPSAnU29sb21vbiBJc2xhbmRzJzsKJGxhbmdbJ1NPJ10gPSAnU29tYWxpYSc7CiRsYW5nWydaQSddID0gJ1NvdXRoIEFmcmljYSc7CiRsYW5nWydFUyddID0gJ1NwYWluJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSc7CiRsYW5nWydQTSddID0gJ1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydTRCddID0gJ1N1ZGFuJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUnOwokbGFuZ1snU0onXSA9ICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1N3ZWRlbic7CiRsYW5nWydDSCddID0gJ1N3aXR6ZXJsYW5kJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWEnOwokbGFuZ1snVFcnXSA9ICdUYWl3YW4nOwokbGFuZ1snVEonXSA9ICdUYWppa2lzdGFuJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEnOwokbGFuZ1snVEgnXSA9ICdUaGFpbGFuZCc7CiRsYW5nWydURyddID0gJ1RvZ28nOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1JzsKJGxhbmdbJ1RPJ10gPSAnVG9uZ2EnOwokbGFuZ1snVFQnXSA9ICdUcmluaWRhZCBhbmQgVG9iYWdvJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpYSc7CiRsYW5nWydUUiddID0gJ1R1cmtleSc7CiRsYW5nWydUTSddID0gJ1R1cmttZW5pc3Rhbic7CiRsYW5nWydUQyddID0gJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyc7CiRsYW5nWydUViddID0gJ1R1dmFsdSc7CiRsYW5nWydVRyddID0gJ1VnYW5kYSc7CiRsYW5nWydVQSddID0gJ1VrcmFpbmUnOwokbGFuZ1snQUUnXSA9ICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc7CiRsYW5nWydVSyddID0gJ1VuaXRlZCBLaW5nZG9tJzsKJGxhbmdbJ1VTJ10gPSAnVW5pdGVkIFN0YXRlcyc7CiRsYW5nWydVTSddID0gJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5JzsKJGxhbmdbJ1VaJ10gPSAnVXpiZWtpc3Rhbic7CiRsYW5nWydWVSddID0gJ1ZhbnVhdHUnOwokbGFuZ1snVkEnXSA9ICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc7CiRsYW5nWydWRSddID0gJ1ZlbmV6dWVsYSc7CiRsYW5nWydWTiddID0gJ1ZpZXQgTmFtJzsKJGxhbmdbJ1ZHJ10gPSAnVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJzsKJGxhbmdbJ1ZJJ10gPSAnVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc7CiRsYW5nWydFSCddID0gJ1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ1lFJ10gPSAnWWVtZW4nOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhJzsKJGxhbmdbJ1pNJ10gPSAnWmFtYmlhJzsKJGxhbmdbJ1pXJ10gPSAnWmltYmFid2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJyZpZXhjbDtQZXJkJm9hY3V0ZTtuISBTZSBwcmVzZW50Jm9hY3V0ZTsgdW4gZXJyb3IgZW4gZWwgbWFuZWpvIGRlbCBlbnYmaWFjdXRlO28gZGUgc3UgZm9ybXVsYXJpby4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRXJyb3IgZGUgZW52JmlhY3V0ZTtvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvczogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbWV0aWRvIHBvciBhcmNoaXZvIGFsIG0mb2FjdXRlO2R1bG8gZGUgc3ViaWRhczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTm8gc2UgcHVkbyBoYWxsYXIgZWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdTdWJpci9BZGp1bnRvLCBlcnJvciBlbiBhcmNoaXZvICVzIChub21icmVfdG1wOiAlcywgZGVsIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIE5vIHNlIHB1ZWRlIG9idGVuZXIgYmxvcXVlbyBkZSBhcmNoaXZvLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRldGVybWluYWRvOiBzaW4gdGlsZGFyJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRldGVybWluYWRvOiB0aWxkYWRvJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdFbnYmaWFjdXRlO28gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPiZpZXhjbDtMYSBwbGFudGlsbGEgZGUgZW1haWwgdG9kYXYmaWFjdXRlO2Egbm8gc2UgY29uZmlndXImb2FjdXRlOyEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3M6ICZpZXhjbDtObyBzZSBlbmN1ZW50cmEgZWwgbSZvYWN1dGU7ZHVsbyByZXF1ZXJpZG8gQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdFbnYmaWFjdXRlO28gZGUgdXN1YXJpbyBhcHJvYmFkbyAlcyBkZXNkZSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBlbnZpYWRvJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0Fjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBzaSBoYXkgdW4gZXJyb3IgY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdBY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIG1vc3RyYWRvJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5BY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8uPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+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+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNjk2Mzg4NzMwLjEzNjAyODcyNTIuMTM2MDI4NzI1Mi4xMzYwMjg3MjUyLjEnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzNjAyODcyNTIuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0xvbWFrZXJha2VudGFqYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxGcm9tRkVVUHJvcGVydHknXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGlhIGsmYXVtbDt5dHQmYXVtbDtqaWxsZSwgam90a2EgdmFzdGFhdmF0IEZyb250IEVuZCBVc2VycyAtbGlzJmF1bWw7b3NhbiBhc2V0dXN0YSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0tlbnQmYXVtbDtuIHR5eXBwaSZhdW1sOyBlaSBvbGUgYXNldGV0dHUnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVmFsaXRzZSB5a3NpIHRhaSB1c2VhbXBpYSBrYXRhbG9naWtvaGRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctIEtlbnR0JmF1bWw7cnlobSZhdW1sO24gKGZpZWxkc2V0KSBhbGt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy0gS2VudHQmYXVtbDtyeWhtJmF1bWw7biAoZmllbGRzZXQpIGxvcHB1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNU51bWJlckZpZWxkJ10gPSAnSFRNTDUgbnVtZXJva2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBzJmF1bWw7aGsmb3VtbDtwb3N0aWtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0hUTUw1IFVSTC1rZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1NpdGVBZG1pbkZpZWxkJ10gPSAnU2l2dXN0b24geWxsJmF1bWw7cGl0JmF1bWw7aiZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdTYWxhc2FuYSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1NhbGFzYW5hIHV1ZGVsbGVlbiAodmFybWVubnVzKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGlrZW50dCZhdW1sOyAodXNlaXRhKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdGlhbHVlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdQYWluaWtlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1ZhbGludGFsYWF0aWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ1ZhbGludGFsYWF0aWtrb3J5aG0mYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnQWxhc3ZldG92YWxpa2tvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdWdW9zaWFsYXN2ZXRvdmFsaWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNb25pdmFsaW50YSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdPc2F2YWx0aW92YWxpa2tvIChVU0EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0thbmFkYW4gcHJvdmluc3NpdCAtdmFsaWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ01hYXZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdQJmF1bWw7aXYmYXVtbDt5c3ZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdBaWthdmFsaW50YSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1ZhbGludGFwYWxsb3J5aG0mYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKiBMJmF1bWw7aGV0JmF1bWw7IHZhc3RhdWtzZXQgYWxhc3ZldG92YWxpa29uIG11a2Fpc2VzdGknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJyogVGFsbGVubmEgdmFzdGF1a3NldCBhbGFzdmV0b3ZhbGlrb24gbXVrYWlzZXN0aSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgdXNlaXNpaW4gdGllZG9zdG9paGluIGVyaSB2YWxpbnRvamVuIG11a2Fpc2VzdGknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKiBPaGphYSBzaXZ1bGxlIGFsYXN2ZXRvdmFsaWtvbiBtdWthYW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKiBMJmF1bWw7aGV0JmF1bWw7IHZhc3RhdWtzZXQgYXNldGV0dHVpaGluIHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXR0ZWlzaWluJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJyogVGFya2lzdGFzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKiBTJmF1bWw7aGsmb3VtbDtwb3N0aSAmcXVvdDtTJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlc3RhJnF1b3Q7IGtlbnQmYXVtbDtzdCZhdW1sOywgamEgbCZhdW1sO2hldCZhdW1sOyBrb3Bpb2knOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgdGllZG9zdG9vbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSddID0gJyogS2lyam9pdGEgdHVsb2tzZXQgZXJpbGxpc2VlbiB0aWVkb3N0b29uIGpva2Fpc2VsbGEgbCZhdW1sO2hldHlza2VycmFsbGEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHRpZXRva2FudGFhbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqIFRhbGxlbm5hIHR1bG9rc2V0IEZvcm1Ccm93c2VyIHYuMyBtb2R1dWxpbGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKiBLdXRzdSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7JmF1bWw7IHRhZ2lhIGxvbWFra2VlbiB0dWxva3NpbGxhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKiBMJmF1bWw7aGV0JmF1bWw7IHZhcGFhdmFsaW50YWlzZWVuIGxvbWFrZSB0b2ltaW50b29uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJyogTCZhdW1sO2hldCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7JmF1bWw7biBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlc2Vlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGkgQ01TOm4geWxsJmF1bWw7cGl0b2smYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgdHVsb2tzZXQgcyZhdW1sO2hrJm91bWw7cG9zdGlsbGEgcmlpcHB1ZW4ganVsa2lzZW4gcHVvbGVuIGtlbnRpc3QmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy0gU2l2dW52YWlodG8nOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdUaWVkb3N0b24gbGF0YXVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGluICZxdW90O0wmYXVtbDtoZXR0JmF1bWw7aiZhdW1sOyZxdW90OyBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGluICZxdW90O0wmYXVtbDtoZXR0JmF1bWw7aiZhdW1sOyZxdW90OyBrZW50dCZhdW1sOyB1dWRlbGxlZW4nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW4gJnF1b3Q7TmltaSZxdW90OyBrZW50dCZhdW1sOyZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiAmcXVvdDtBaWhlJnF1b3Q7IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ0NFbWFpbEFkZHJlc3NGaWVsZCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiBrb3Bpb2tlbnR0JmF1bWw7IChDQyknOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctIEtpaW50ZSZhdW1sOyB0ZWtzdGknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctIEtpaW50ZSZhdW1sOyBsaW5ra2knOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5ra2kgKEsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBzeSZvdW1sO3R0JmF1bWw7bSZhdW1sOyknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy0gUGlpbG90ZXR0dSBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctIExhc2tldHR1IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLSBZa3NpbCZvdW1sO2l2JmF1bWw7IGtva29uYWlzbHVrdSAoc2FyamFudW1lcm8pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLSBLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7IHRhZ2lrdXRzdSc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ1lyaXR5c2hha2VtaXN0b24ga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy0gTW9kdXVsaW4gbGlpdHR5bSZhdW1sO24ga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdWYWxpbnRhcnV1dHUgbGFhamVubmV0dHUnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdGFya2lzdHVzdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZWVyaW5lbic7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdLb2tvbmFpc2x1a3UnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUHVoZWxpbm51bWVybyAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1ZhbGludGEgdmFhZGl0YWFuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdUYXJraXN0YSBzJmF1bWw7JmF1bWw7bm4mb3VtbDtubXVrYWlzZWxsYSBsYXVzZWtrZWVsbGEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnS2VudCZhdW1sO24gYXJ2byBlaSBvbGUgbSZhdW1sOyZhdW1sO3JpdHRlbHluIG11a2FpbmVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1wdHknXSA9ICdFaSB2b2kgb2xsYSB0eWhqJmF1bWw7JzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnUGFrb2xsaW5lbic7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdWYXBhYWVodG9pbmVuJzsKJGxhbmdbJ25vdF9hdmFpbGFibGUnXSA9ICdFaSBzYWF0YXZpbGxhJzsKJGxhbmdbJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnXSA9ICdWaXJoZSBrZW50JmF1bWw7biBhc2V0dWtzaXNzYSc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0Zyb250RW5kVXNlcnMtbGlzJmF1bWw7b3NhYSBlaSBsJm91bWw7eXR5bnl0LiBUJmF1bWw7bSZhdW1sOyBrZW50dCZhdW1sOyBlaSB0b2ltaS4nOwokbGFuZ1snZXJyb3Jfbm9mZXVkZWZucyddID0gJ1NvcGl2YWEgRnJvbnRFbmRVc2Vycy1hc2V0dXN0YSBlaSBsJm91bWw7eXR5bnl0LiBUJmF1bWw7bSZhdW1sOyBrZW50dCZhdW1sOyBlaSB0b2ltaS4nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ1ZhYWRpdHVzdGEga2VudCZhdW1sO3N0JmF1bWw7IHB1dXR0dXUgYXJ2byc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ09sZSBoeXYmYXVtbDsgamEgYW5uYSBhcnZvIGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdTeSZvdW1sO3QmYXVtbDsgbnVtZXJvIGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdBcnZvIGVpIG9sZSBzYWxsaXR0dSBrZW50JmF1bWw7c3MmYXVtbDsgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdTeSZvdW1sO3QmYXVtbDsga29rb25haXNsdWt1IGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlbiBhcnZvIGVpIHZhc3RhYSBhcnZvYSBrZW50JmF1bWw7c3MmYXVtbDsgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcHVoZWxpbm51bWVybyBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnT2xlIGh5diZhdW1sOyBqYSBraXJqYXVkdSBzaXMmYXVtbDtsbGUgayZhdW1sO3l0dCZhdW1sO2VuIHQmYXVtbDt0JmF1bWw7IGxvbWFrZXR0YSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBlaSBuJmF1bWw7eXQmYXVtbDsgb2xldmFuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdLZW50JmF1bWw7biBtYWtzaW1pcGl0dXVzIG9uICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdBbm5hIGFydm8sIGpva2Egb24gdiZhdW1sO2hpbnQmYXVtbDsmYXVtbDtuICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0Vyb3Rpbm1lcmtraSBrZW50aWxsZSwgam90a2EgcGFsYXV0dGF2YXQgZW5lbW0mYXVtbDtuIGt1aW4geWhkZW4gYXJ2b24nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1RhcnZpdHNldCAmcXVvdDslcyZxdW90OyBvaWtldWRldCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7a3Nlc2kgdCZhdW1sO3QmYXVtbDsgdG9pbWludG9hJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2ludWxsYSBlaSBvbGUgdGFydml0dGF2aWEgb2lrZXVrc2lhJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdLZW50dGllbiBqJmF1bWw7cmplc3R5cyBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnTG9tYWtlIHBvaXN0ZXR0dSc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnS2VudHQmYXVtbDsgcG9pc3RldHR1JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0FzZXR1a3NldCBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdTaW51biB0YXJ2aXRzZWUgdmFsaXRhICZxdW90OyVzJnF1b3Q7IGphdGthYWtzZXNpJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdWJmF1bWw7aGludCZhdW1sOyZhdW1sO24geWtzaSBrb2hkZSB0YXJ2aXRhYW4nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnSGFsdWF0a28gdmFybWFzdGkgcG9pc3RhYSBsb21ha2tlZW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0hhbHVhdGtvIHZhcm1hc3RpIHBvaXN0YWEga2VudCZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnTGlzJmF1bWw7YXNldHVrc2V0IGVpdiZhdW1sO3Qgb2xlIHZhbGl0dGF2aXNzYSBlbm5lbiBrZW50JmF1bWw7biB0eXlwaW4gdmFsaW50YWEnOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdLZW50JmF1bWw7biBuaW1pICZxdW90OyVzJnF1b3Q7IG9uIGpvIGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnS2VudCZhdW1sO2xsJmF1bWw7IHR1bGVlIG9sbGEgbmltaSc7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ0tlbnR0JmF1bWw7JmF1bWw7IGVpIG9sZSBtJmF1bWw7JmF1bWw7cml0ZWx0eTogJXMnOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnVHVudGVtYXRvbic7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAncGl0dXVzOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGxhYXRpa2tvYSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsaW50YWEnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBtZXJra2kmYXVtbDsuJzsKJGxhbmdbJ29yZGVyJ10gPSAnSiZhdW1sO3JqZXN0eXMnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbZWkgYW5uZXR0dV0nOwokbGFuZ1snYWRkZWQnXSA9ICdsaXMmYXVtbDt0dHknOwokbGFuZ1sndXBkYXRlZCddID0gJ3AmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdKJmF1bWw7cmplc3R5cyBhc2V0dWtzZXQgdHVsb3N0ZWVzc2EnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZhbGl0c2UgeWtzaSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1ZhbGl0c2UgdHl5cHBpJzsKJGxhbmdbJ3RvJ10gPSAnVmFzdGFhbm90dGFqYSc7CiRsYW5nWyd5ZXMnXSA9ICdLeWxsJmF1bWw7JzsKJGxhbmdbJ25vJ10gPSAnRWknOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3Zhc3RhYW5vdHRhamF0JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ2tlbnQmYXVtbDt0JzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBtYWhkb2xsaXN0YSB0aWVkb3N0b2EnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBtJmF1bWw7JmF1bWw7ciZhdW1sO25wJmF1bWw7JmF1bWw7dCZhdW1sOyc7CiRsYW5nWydzYXZlJ10gPSAnVGFsbGVubmEnOwokbGFuZ1snYWRkJ10gPSAnTGlzJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1AmYXVtbDtpdml0JmF1bWw7JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVGFsbGVubmEgamEgamF0a2EgbXVva2thdXN0YSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ1RpZWRvdCc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWFhdHRpbmVuJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnTG9tYWtrZWV0JzsKJGxhbmdbJ2Zvcm0nXSA9ICdMb21ha2UgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0FzZXR1a3NldCc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnS2VudCZhdW1sO24gJnF1b3Q7dmFhZGl0dHUmcXVvdDsgdGlsYSBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrc2ltaWtva28nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQJmF1bWw7JmF1bWw7dHRlZXQnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1NhbGxpdHV0IHRpZWRvc3RvdHl5cGl0JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTCZhdW1sO2hldGV0dHkgdGllZG9zdG8gb24gbGlpYW4gc3V1cmkuIFN1dXJpbiBzYWxsaXR0dSBrb2tvIG9uOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RpZWRvc3RvbiB0eXlwcGkmYXVtbDsgZWkgb2xlIHNhbGxpdHR1LiBUYXJraXN0YSB0aWVkb3N0b24gdHl5cHBpLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXRhYSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnTG9tYWtlIHR1b3R1JzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0xvbWFra2VlbiB0dW9udGkgZXAmYXVtbDtvbm5pc3R1aS4gWE1MLXRpZWRvc3RvbiBtdW9kb3NzYSBvbGkgdmlyaGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByaXZpJmF1bWw7JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzYXJha2V0dGEnOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXR1bm5pbiBrZWxsbyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdHVubmluIGtlbGxvJzsKJGxhbmdbJ2hvdXInXSA9ICdUdW50aSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dXR0aSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFhbmknOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0FsdWU6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnS2lpdG9zLiBMb21ha2Ugb24gdGFsbGVubmV0dHUnOwokbGFuZ1snZWRpdCddID0gJ011b2trYWEnOwokbGFuZ1snZGVsZXRlJ10gPSAnUG9pc3RhJzsKJGxhbmdbJ2RheSddID0gJ1AmYXVtbDtpdiZhdW1sOyc7CiRsYW5nWydtb24nXSA9ICdLdXVrYXVzaSc7CiRsYW5nWyd5ZWFyJ10gPSAnVnVvc2knOwokbGFuZ1snbm9uZSddID0gJyhlaSBtaXQmYXVtbDsmYXVtbDtuKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1dWxpbiBhc2VubnVzIHBvaXN0ZXR0dSc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1dWxpbiB2ZXJzaW8gJXMgYXNlbm5ldHR1Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHV1bGkgcCZhdW1sO2l2aXRldHR5IHZlcnNpb29uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUYWthaXNpbi4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnTCZhdW1sO2hldCZhdW1sOyBsb21ha2UnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnSmF0a2EnOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1ZhbGl0dHUnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnRWkgdmFsaXR0dSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1AmYXVtbDsmYXVtbDtzaXZ1JzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdMb21ha2tlZW4gdHVsb3N0dXNhc2V0dWtzZXQnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0xvbWFra2VlbiBsJmF1bWw7aGV0eXMnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhLWFzZXR1a3NldCc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdMaXMmYXVtbDthc2V0dWtzZXQnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTG9tYWtrZWVuIG1hbGxpJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdMJmF1bWw7aGV0eXNtYWxsaSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURULWludGVncmFhdGlvJzsKJGxhbmdbJ3RpdGxlX2ZldV9wcm9wZXJ0eSddID0gJ0Zyb250RW5kVXNlcnMtYXNldHVzJzsKJGxhbmdbJ2luZm9fZmV1X3Byb3BlcnR5J10gPSAnQWlub2FzdGFhbiB0aWV0dHlqJmF1bWw7IGFzZXR1c3R5eXBwZWomYXVtbDsgdm9pZGFhbiBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHZhc3RhYXZ1dWtzaWVuIGV0c2ltaXNlZW4gKHB1ZG90dXN2YWxpa290LCBtb25pdmFsaW50YWtlbnQmYXVtbDt0IGpuZS4pJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+VCZhdW1sO3NzJmF1bWw7IGtlbnQmYXVtbDtzcyZhdW1sOyB2b2l0IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgc21hcnR5LW11dXR0dWppYTwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHZhbGludG9qYSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1BvaXN0YSB2YWxpdHV0IHZhbGlubmF0JzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHZhbGludGFsYWF0aWtvaXRhJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnUG9pc3RhIHZhbGl0dXQgdmFsaW50YWxhYXRpa290JzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kgb3NvaXRlJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnUG9pc3RhIHZhbGl0dXQgb3NvaXR0ZWV0JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0xpcyZhdW1sOyZhdW1sOyB1dXNpIGtvaGRlJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1BvaXN0YSB2YWxpdHV0IGtvaHRlZXQnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdJUC1vc29pdHRlZXN0YXNpIG9uIHR1bGx1dCBsaWlhbiBtb250YSBzJmF1bWw7aGsmb3VtbDtwb3N0aWEuIFJvc2thcG9zdGl0dW5uaXN0dXMgb24gZXN0JmF1bWw7bnl0IGwmYXVtbDtoZXR5a3NldC4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWFoZG9sbGluZW4gcm9za2Fwb3N0aSBJUC1vc29pdHRlZXN0YSAlcyBlc3RldHR5Lic7CiRsYW5nWydyZW9yZGVyJ10gPSAnVXVkZWxsZWVuaiZhdW1sO3JqZXN0JmF1bWw7IGtlbnR0aSZhdW1sOyc7CiRsYW5nWydjYW5jZWwnXSA9ICdQZXJ1JzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ0Fydm86ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdBbGxhIG9uIGxpc3RhdHR1bmEgYXR0cmlidXV0dGVqYSwgam90a2Egb3ZhdCBrJmF1bWw7eXQmb3VtbDtzcyZhdW1sOyBLYXRhbG9vZ2ltb2R1dWlzc2EuPGJyIC8+Vm9pdCBteSZvdW1sO3MgdmFpaHRvZWh0b2lzZXN0aSBhbnRhYSBzYWxsaXR0dWphIGFydm9qZW4gbGFhanV1a3NpYSwgYXJ2b2phIHRhaSB1c2VpdGEgYXJ2b2phLCBqb2lsbGEgc3VvZGF0ZXRhYW4gbGlzdGEga29odGVpc3RhLCBqb3RrYSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZSBuJmF1bWw7eXRldCZhdW1sOyZhdW1sO24uPGJyLz4NCjxici8+DQo8c3Ryb25nPkFydm9qZW4gbGFhanV1ZGV0Ojwvc3Ryb25nPjxici8+DQpMYWFqdXVkZXQgdm9pdmF0IG9sbGEgbSZhdW1sOyZhdW1sO3JpdGVsdHlsdCZhdW1sOyBtaW5pbWktIGphIG1ha3NpbWlhcnZvamVuIG11a2FhbiB0JmF1bWw7bGwmYXVtbDsgc3ludGFrc2lsbGE6ICZxdW90O3JhbmdlOiBtaW5hcnZvIHRvIG1heGFydm8mcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VXNlYW1waSBhcnZvOjwvc3Ryb25nPjxici8+DQpNJmF1bWw7JmF1bWw7cml0ZWxsJmF1bWw7a3Nlc2kgdXNlYW1tYW4gYXJ2b24gYXR0dHJpYnV1dGlsbGUsIGsmYXVtbDt5dCZhdW1sOyBzeW50YWtzaWEgJnF1b3Q7bXVsdGk6IGFydm8xfGFydm8yfGFydm8zJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlBpaWxvdGV0dHVqZW4ga2VudHRpZW4gYXJ2b3Q8L3N0cm9uZz48YnIvPg0KTSZhdW1sOyZhdW1sO3JpdGVsbCZhdW1sO2tzaSBhcnZvbiBwaWlsb3RldHVzdGEga2VudCZhdW1sO3N0JmF1bWw7LCBrJmF1bWw7eXQmYXVtbDsgc3ludGFrc2lhIHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWyd0aXRsZV90ZXh0ZmllbGRfbGFiZWwnXSA9ICdUZWtzdGlrZW50JmF1bWw7biBuaW1pa2UnOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdOJmF1bWw7eXQmYXVtbDsgdGVrc3Rpa2VudHQmYXVtbDs/JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1MmYXVtbDsmYXVtbDtubiZvdW1sO2xsaW5lbiBtdXV0dHVqYSwgam9rYSBzYWxsaWkga2F0YWxvZ2lrb2h0ZWVkZW4gc3VvZGF0dGFtaXNlbiBuaW1lbiBtdWthYW4nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdNb25pdmFsaW50YWtlbnQmYXVtbDtuIGtvcmtldXMnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0thdGFsb2dpa29odGVlbiBuaW1lbiBzJmF1bWw7JmF1bWw7bm4mb3VtbDtsbGluZW4gbXV1dHR1amEnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnS2VudCZhdW1sO24ga29ya2V1cyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdUYWxsZW5udXNrYW5zaW8gdGllZG9zdG9pbGxlJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaXZ1LCBqb2xsZSBwYWxhdGFhbiBsJmF1bWw7aGV0eXNsaW5rZWlzdCZhdW1sOyc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0wmYXVtbDtoZXRldHR5IGxvbWFrZXJha2VudGFqYW4ga2F1dHRhJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdMJmF1bWw7aGV0eWtzZW4ga2F0ZWdvcmlhJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnTCZhdW1sO2hldCZhdW1sOyB0JmF1bWw7bSZhdW1sOyB0aWVkb3N0byBsJmF1bWw7aGV0eXNtb2R1dWxpbGxlJzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZSddID0gJ1NhbGxpIGwmYXVtbDtoZXR5a3NlbiB5bGlraXJqb2l0dGFhIHZhbmhhdCB0aWVkb3N0b3Q/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnUGl0JmF1bWw7aXNpayZvdW1sOyBsJmF1bWw7aGV0ZXR0JmF1bWw7diZhdW1sO24gdGllZG9zdG9uIHlsaWtpcmpvaXR0YWEgb2xlbWFzc2FvbGV2YSB0aWVkb3N0bywgam9zIHNlIG9uIHNhbWFuIG5pbWluZW4/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ1NhbGxpIHlsaWtpcmpvaXR1cyc7CiRsYW5nWydub292ZXJ3cml0ZSddID0gJyZBdW1sO2wmYXVtbDsgc2FsbGkgeWxpa2lyam9pdHVzdGEnOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddID0gJ1RpZWRvc3RvICVzIG9uIGpvIG9sZW1hc3NhIGVpayZhdW1sOyBzaXQmYXVtbDsgdm9pZGEgeWxpa2lyam9pdHRhYS4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXSA9ICdUaWVkb3N0b25pbWlwb2hqYSc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ0Fsa3VwZXImYXVtbDtpbmVuIHRpZWRvc3RvcCZhdW1sOyZhdW1sO3RlIChzaXMmYXVtbDtsdCZhdW1sOyZhdW1sOyAmcXVvdDsuJnF1b3Q7LW1lcmtpbiknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdTdXBpc3RhIHRpZWRvc3RvbmltaSBzJmF1bWw7aGsmb3VtbDtwb3N0ZWlzc2EgamEgbG9tYWtrZWlzc2EsIGpvdGthIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7IG4mYXVtbDtrZWUuJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2F0dGFjaG1lbnQnXSA9ICdFc3QmYXVtbDsgdGllZG9zdG9uIGxpaXR0JmF1bWw7bWluZW4gcyZhdW1sO2hrJm91bWw7cG9zdGVpaGluJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdMdW8gcG9oamEgdCZhdW1sO3NzJmF1bWw7LCBqb3MgdGllZG9zdG8gdXVkZWxsZWVubmltZXQmYXVtbDsmYXVtbDtuIGwmYXVtbDtoZXR5a3NlbiB5aHRleWRlc3MmYXVtbDsuIEomYXVtbDt0JmF1bWw7IHR5aGomYXVtbDtrc2ksIGpvcyBhbGt1cGVyJmF1bWw7aW5lbiBuaW1pIHMmYXVtbDtpbHl0ZXQmYXVtbDsmYXVtbDtuLic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdTZWxpdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYWtzaW1pcGl0dXVzJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnVmFsaW50YWxhYXRpa29uIG90c2lra28nOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdWYWxpbnRhcGFsbG9uIG90c2lra28nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ0Fydm8gdmFsaXR0dW5hJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ0Fydm8gdmFsaXRzZW1hdHRvbWFuYSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnVmFsaW50YWxhYXRpa2tvcnlobSZhdW1sO24gdGllZG90JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1BvaXN0YT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmFsaXRzZSB5a3NpJnF1b3Q7IHRla3N0aSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxpbm5hbiBhcnZvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1ZhbGlubmFuIG4mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgbmltaSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ZhbGlubmFuIG90c2lra28nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ09sZXR1c3ZhbGludGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdPbGV0dXN2YWxpbnRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnT2xldHVzdmFsaW50YSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ1ZhbGlubmFuIG5pbWknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnTCZhdW1sO2hldGV0dHkgYXJ2byc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnQWxhc3ZldG92YWxpa29uIHZhbGlubmF0JzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNb25pdmFsaW5uYW4gdmFpaHRvZWhkb3QnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1Zhc3RhYW5vdHRhamFuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnS29oZGV0aWVkb3N0b24gbmltaSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtOaW1pJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3RpaW4nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0smYXVtbDt5dCZhdW1sOyBsJm91bWw7eXMmYXVtbDsmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdHRlZW4gdGFya2lzdHVzdGEnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnSyZhdW1sO3l0JmF1bWw7IGwmb3VtbDt5cyZhdW1sOyZhdW1sOyBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlbiB0YXJraXN0dXN0YSAoZXNpbWVya2lrc2kgc2FsbGkgJnF1b3Q7eEB5JnF1b3Q7LCBzZW4gc2lqYWFuIGV0dCZhdW1sOyB2YWFkaXRhYW4mcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtMJmF1bWw7aGV0dCZhdW1sO2omYXVtbDtuIG9zb2l0ZSZxdW90OyBzJmF1bWw7aGsmb3VtbDtwb3N0aWluJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGluIG1lcmtpc3Qmb3VtbDtrb29kYXVzJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdBbGFzdmV0b3ZhbGlra29vbiBwZXJ1c3R1dmF0IGwmYXVtbDtoZXR0JmF1bWw7aiZhdW1sO24gdGllZG90JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ1RpZWRvc3RvbmltaSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGluIGFpaGUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTG9tYWtrZWVuIG5pbWknOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdMb21ha2tlZW4gdGlsYSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1ZhbG1pcyBrJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7a3NpJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdFaSB2YWxtaXMnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpdnUsIGpvbGxlIGwmYXVtbDtoZXR5a3NlbiBqJmF1bWw7bGtlZW4gc2lpcnJ5dCZhdW1sOyZhdW1sO24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ0xpcyZhdW1sOyZhdW1sOyBsb21ha2tlZXNlZW4ga2VudHQmYXVtbDssIGpvdHRhIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBhbnRhbWEgdGlldG8gayZhdW1sO3NpdGVsbCZhdW1sOyZhdW1sO24uIFZvaXQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHQmYXVtbDt0JmF1bWw7IG9pa29wb2xrdWEnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0xvbWFra2VlbiBhbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnTG9tYWtrZWVuIGtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnS2VudCZhdW1sO24gdHVubmlzdGUnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdOJmF1bWw7eXQmYXVtbDsga2VudHRpZW4gYWxpYWtzZXQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ1QmYXVtbDttJmF1bWw7biBrbGlra2FhbWluZW4gbiZhdW1sO3l0dCZhdW1sOyZhdW1sOyBrZW50dGllbiBhbGlha3NldCwga3VuIGxpcyZhdW1sO3QmYXVtbDsmYXVtbDtuIHRhaSBtdW9rYXRhYW4gbG9tYWtldHRhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdLZW50JmF1bWw7biBuaW1pJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnS2VudCZhdW1sO24gYWxpYXMgamEgRE9NIGlkIChDU1MgaWQpIGF0dHJpYnV1dHRpJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1ZhbGludGFyeWhtJmF1bWw7biB0aWVkb3QnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0tlbnQmYXVtbDtuIHR5eXBwaSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnbHVvZGFrc2VzaSBsb21ha2tlZW4gayZhdW1sO3NpdHRlbHlrZW50JmF1bWw7bic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBsb21ha2UnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGxvbWFrZS1lZGl0b3JpbiB2ZXJzaW8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVCZhdW1sO20mYXVtbDsgbGlpdHQmYXVtbDsmYXVtbDsgYXNlbm5ldHR1bmEgb2xldmFuIExvbWFrZXJha2VudGFqYW4gdmVyc2lvbiBrb21tZW50dGlpbiB2aXJoZWlkZW4gZXRzaW1pc2VuIGhlbHBvdHRhbWlzZWtzaSc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kga2VudHQmYXVtbDsnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnTG9tYWtrZWVuIEwmYXVtbDtoZXQmYXVtbDstcGFpbmlra2VlbiB0ZWtzdGknOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdQYWluaWtrZWVuIHRla3N0aSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0xpcyZhdW1sOyZhdW1sOyBsb21ha2tlZW4gTCZhdW1sO2hldCZhdW1sOy1wYWluaWtrZWVzZWVuIEphdmFTY3JpcHQta29vZGksIGpva2EgYXV0dGFhIGVzdCZhdW1sO20mYXVtbDsmYXVtbDtuIHVzZWFtbWF0IGwmYXVtbDtoZXR5a3NldD8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0xpcyZhdW1sOyZhdW1sOyB0dXJ2YWtvb2RpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdMb21ha2tlZW4gU2V1cmFhdmEtcGFpbmlra2VlbiB0ZWtzdGkgKEsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB2YWluIG1vbmlzaXZ1aXNpbGxhIGxvbWFra2VpbGxhKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnTG9tYWtrZWVuIEVkZWxsaW5lbi1wYWluaWtrZWVuIHRla3N0aSAoSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHZhaW4gbW9uaXNpdnVpc2lsbGEgbG9tYWtrZWlsbGEpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdLZW50JmF1bWw7biB0YXJraXN0dXMnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdUYXJraXN0ZXR0YXZhIGtlbnR0JmF1bWw7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUy1pZCB0JmF1bWw7bGxlIGtlbnQmYXVtbDtsbGUnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdMb21ha2tlZW4gQ1NTLWx1b2trYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdLZW50JmF1bWw7biBDU1MtbHVva2thJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7IHRhZ2ksIGpvdGEga3V0c3V0YWFuIGVubmVuIGt1aW4gbG9tYWtlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBlbnNpbW0mYXVtbDtpbmVuIGtlcnJhbiAoa3V0c3V0YWFuIHZhaW4ga2VycmFuKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7IHRhZ2ksIGpvdGEga3V0c3V0YWFuIGVubmVuIGt1aW4gbG9tYWtlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBlbnNpbW0mYXVtbDtpbmVuIGtlcnJhbiAoa3V0c3V0YWFuIGpva2Fpc2VsbGEgbW9uaXNpdnVpc2VuIGxvbWFra2VlbiBzaXZ1bGxhKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSwgam90YSBrdXRzdXRhYW4gbG9tYWtrZWVuIHRhcmtpc3R1a3Nlc3NhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnVmFhZGl0dHVqZW4ga2VudHRpZW4gc3ltYm9saSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1ZhYWRpdGFhbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVmFhZGl0YWFuIHZhc3RhdXMgdCZhdW1sO2gmYXVtbDtuIGtlbnR0JmF1bWw7JmF1bWw7bic7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGlpbG90YSBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1BpaWxvdGEga2VudCZhdW1sO24gbmltaSBsb21ha2tlZWxsYSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdLZW50JmF1bWw7biBzaXMmYXVtbDtsbCZhdW1sO24gbWFrc2ltaXBpdHV1cyAoMCB0YWkgdHloaiZhdW1sOyB0YXJrb2l0dGFhIHJham9pdHRhbWF0b250YSknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ04mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsga2lpbnRlJmF1bWw7IHRla3N0aSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ0smYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgcyZhdW1sOyZhdW1sO25uJm91bWw7bm11a2FpbmVuIGxhdXNla2UnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0t1aW5rYSBtb250YSByaXZpJmF1bWw7IG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bic7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdWYWluIGx1a3UnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0VpIG9sZXR1c3RhJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2l2dSwgam9sbGUgc2lpcnJ5dCZhdW1sOyZhdW1sO24gaHl2JmF1bWw7a3N5bm4mYXVtbDtuIGomYXVtbDtsa2Vlbic7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVCZhdW1sO3QmYXVtbDsgcyZhdW1sOyZhdW1sO25uJm91bWw7bGxpc3QmYXVtbDsgbXV1dHR1amFhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biwgam9zIHRhcmtpc3R1c3R5eXBwaW4mYXVtbDsgb24gcmVnZXhpaW4gbGlpdHR5diZhdW1sOyB2YWxpbnRhLiBTaXMmYXVtbDtsdCZhdW1sOyZhdW1sOyBrb2tvIFBlcmwtdHl5bGlzZW4gcmVnZXhpbiwgbXVrYWFuIGx1a2llbiBhbG9pdHVzL3B5cyZhdW1sO3l0eXMgdmlub3ZpaXZhdCBqYSBsaXB1dCAoZXNpbS4gJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdQYWtvbGxpbmVuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnUGlpbG90YSB2aXJoZWV0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdMb21ha2tlZW4gbiZhdW1sO3l0Jm91bWw7biB0eXlwcGknOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0VzdCZhdW1sOyBrYWlra2llbiBkZWJ1ZyB2aWVzdGllbiBuJmF1bWw7eXR0JmF1bWw7bWluZW4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBwb2hqYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdTaWlycmV0dCZhdW1sO3YmYXVtbDtuIHRpZWRvc3RvbiBtYWtzaW1pa29rbyAoa2lsb3RhdnVpbmEpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGllZG9zdG9uIG1ha3NpbWlrb2tvb24gdmFpa3V0dGFhIHQmYXVtbDttJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0eWtzZW4gbGlzJmF1bWw7a3NpIHBocC10dWxraW4gamEgd2ViLXBhbHZlbGltZW4gYXNldHVrc2lzc2Egb2xldmF0IHJham9pdHVrc2V0Lic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnSGFrZW1pc3RvLCBqb25uZSB0aWVkb3N0b3QgdGFsbGVubmV0YWFuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnU2FsbGl0dXQgdGllZG9zdG9wJmF1bWw7JmF1bWw7dHRlZXQnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1N5Jm91bWw7dCZhdW1sOyBwaWxrdWlsbGEgZXJvdGV0dHUgbGlzdGEgcCZhdW1sOyZhdW1sO3R0ZWlzdCZhdW1sOywgaWxtYW4gcGlzdGV0dCZhdW1sOyAoZXNpbS4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gViZhdW1sO2xpbHkmb3VtbDtudGVqJmF1bWw7IGVpIGh1b21pb2lkYS4gSm9zIGomYXVtbDt0JmF1bWw7dCB0JmF1bWw7bSZhdW1sO24gdHloaiZhdW1sO2tzaSwgcmFqb2l0dXN0YSBlaSBvbGUuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdOJmF1bWw7eXQmYXVtbDsgcmFqb2l0dWtzZXQnOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGtlbnQmYXVtbDtsbGUgbSZhdW1sOyZhdW1sO3JpdGVsbHl0IGtva28tIGphIHRpZWRvc3RvdHl5cHBpcmFqb2l0dWtzZXQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdMb21ha2tlZW4gbiZhdW1sO3l0dCZhdW1sO21pc2VlbiBrJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IG1hbGxpJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2l2dSAlcyAvICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdLZW50JmF1bWw7bGxlIGVpIG9sZSBsaXMmYXVtbDthc2V0dWtzaWEnOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0aSwgam9rYSBuJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7dHQmb3VtbDttaWxsZSBrZW50dGllbiBhcnZvaWxsZSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnQWt0aXZvaSBrZW50dGllbiBwaWthbGlzJmF1bWw7eXMgbG9tYWtrZWlzaWluIHB1ZG90dXN2YWxpa29zdGE/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnQWt0aXZvaSBrZW50dGllbiBwaWthbGlzJmF1bWw7eXM/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdQaWthbGlzJmF1bWw7eXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdUJmF1bWw7bSZhdW1sOyB2YWxpbnRhIHNhbGxpaSBtYWtzaW1pc3NhYW4gMTAgcyZhdW1sO2hrJm91bWw7cG9zdGlhIHNhbWFzdGEgSVAtb3NvaXR0ZXN0YSB0dW5uaXNzYSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdBa3Rpdm9pIHJvc2thcG9zdGllc3RvdD8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ04mYXVtbDt5dCZhdW1sOyBrZW50dGllbiBpZDp0JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ1QmYXVtbDttJmF1bWw7biBrbGlra2FhbWluZW4gc2FsbGlpIGtlbnR0aWVuIHR1bm5pc3RlaWRlbiBuJmF1bWw7eXR0JmF1bWw7bWlzZW4sIGt1biBsdW9kYWFuIHRhaSBtdW9rYXRhYW4gbG9tYWtldHRhJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7IGxvbWFrZSBYTUwtdGllZG9zdG9zdGEnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0smYXVtbDt5dCZhdW1sOyB0JmF1bWw7dCZhdW1sOyBsb21ha2tlZW4gbmltZSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gLXR1b250aSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0smYXVtbDt5dCZhdW1sOyB0JmF1bWw7dCZhdW1sOyBsb21ha2tlZW4gYWxpYXN0YSc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnTHVvIEhUTUwtbXVvdG9pbmVuIHMmYXVtbDtoayZvdW1sO3Bvc3RpPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1QmYXVtbDt5dCZhdW1sOyBhdXRvbWFhdHRpc2VzdGknOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ1QmYXVtbDt5dCZhdW1sOyBhdXRvbWFhdHRpc2VzdGkgVVJMLW9zb2l0dGVlbGxhLCBqb3NzYSBsb21ha2Ugc2lqYWl0c2VlPyAodCZhdW1sO20mYXVtbDsgeWxpa2lyam9pdHRhYSBzaXZ1c3RvbiBzaXZ1bGlua2tpIC1hc2V0dWtzZW4gYWxhcHVvbGVsbGEpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ09sZXR1cyBVUkwtbGlua2tpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ09sZXR1cyB0ZWtzdGkgbGlua2lsbGUnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmtraSBzaXZ1c3RvbiBzaXZ1dW4nOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVm9pdCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYWEmcXVvdDs8L2E+IHN1b2phdGFrc2VzaSBsb21ha2tlaWRlbiBsJmF1bWw7aGV0dCZhdW1sO21pc2VuLCBqb3MgYXNlbm5hdCBDYXB0Y2hhLW1vZHV1bGluLiA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5MaXMmYXVtbDt0aWV0b2EgQ2FwdGNoYS1wcm9qZWt0aXN0YTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuayZvdW1sOyBDYXB0Y2hhLXN1b2phdXN0YSB0aWVkb3N0b2plbiBzaWlycm9zc2E/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdWYWxpdHNlLCBqb3MgaGFsdWF0IHN1b2phdGEgbG9tYWtrZWVuIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+Q2FwdGNoYWxsYTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ09sZSBoeXYmYXVtbDsgamEga2lyam9pdGEgYWxhcHVvbGVsbGEgb2xldmF0IGtpcmphaW1ldC4gVmFybWlzdGFtbWUgdCZhdW1sO20mYXVtbDtuIGF2dWxsYSwgZXR0ZXQgb2xlIHJvc2thcG9zdGlyb2JvdHRpLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdDYXB0Y2hhIHRla3N0aSBvbGkgdmlyaGVlbGxpbmVuJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIGVpIG9sbHV0IG9pa2Vpbi4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnQXZ1c3RldGVrc3RpIENhcHRjaGFsbGUnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnJkF1bWw7bCZhdW1sOyBsJmF1bWw7aGV0JmF1bWw7IGFydm9qYSB2YWxpbnRhbGFhdGlrb2lsbGUsIGpvaXRhIGVpIG9sZSB2YWxpdHR1JzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnVmFsaXRzZSB0JmF1bWw7bSZhdW1sOywgam9zIGhhbHVhdCBldHQmYXVtbDsgYWlub2FzdGFhbiB2YWxpdHV0IHZhbGludGFsYWF0aWtvdCBwYWxhdXR0YXZhdCBhcnZvbi4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmtpbiB0ZWtzdGknOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmtpbiBrb2hkZW9zb2l0ZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ09sZXR1a3NlbmEgdmFsaXR0dT8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0smYXVtbDt5dCZhdW1sOyAyNC10dW5uaW4ga2VsbG9hPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ0smYXVtbDtzaXR0ZWxlIHNtYXJ0eXRhZ2l0IGtlbnQmYXVtbDtzcyZhdW1sOz8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpdmkmYXVtbDsgKGh1b21hYTogdm9pdCB5bGlraXJqb2l0dGFhIHQmYXVtbDttJmF1bWw7biBDU1M6bGwmYXVtbDspJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdTYXJha2V0dGEgKGh1b21hYTogdm9pdCB5bGlraXJqb2l0dGFhIHQmYXVtbDttJmF1bWw7biBDU1M6bGwmYXVtbDspJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0xvbWFra2VlbiBwZXJ1c3RpZWRvdCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnT2xldHVrc2VuYSB0eWhqJmF1bWw7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ09sZXR1a3NlbmEgdHloaiZhdW1sOyAob3RhIHZhbGludGEgcG9pcywgam9zIGhhbHVhdCBldHQmYXVtbDsgb2xldHVrc2VuYSBvbiB0JmF1bWw7bSZhdW1sOyBwJmF1bWw7aXYmYXVtbDspJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdOJmF1bWw7eXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gZXR1bmltaT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdOJmF1bWw7eXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHN1a3VuaW1pPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jham9pdGEgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtsaXN0YSB2YWluIHRpZXR5biByeWhtJmF1bWw7biBqJmF1bWw7c2VuaWluJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ1N1b2phYSB0aWV0b2thbnRhYW4gdGFsbGVubmV0dXQgdGllZG90JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdTdW9qYXR1biB0aWVkb24gc2VydGlmaWthYXR0aSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdTYWxhaW5lbiBsYXVzZSB0YWkgcG9sa3UgdGllZG9zdG9vbiwgam9zc2Egb24gc2FsYWluZW4gbGF1c2UuIChKb3MgayZhdW1sO3l0JmF1bWw7dCBPcGVuU1NMOiZhdW1sOyZhdW1sOywgdCZhdW1sO20mYXVtbDsgb24gc2FsYWluZW4gbGF1c2UgeWtzaXR5aXNlbGxlIGF2YWltZWxsZSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnU2Vrb2l0YSBqYW90dGVsdWtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnWWtzaXR5aW5lbiBhdmFpbiwgam90YSBrJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gdGllZG9uIHN1b2phYW1pc2Vlbic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1QmYXVtbDttJmF1bWw7IHNla29pdHRhYSBqYW90dGVsdWtlbnQmYXVtbDt0LCBtdXR0YSBqJmF1bWw7dHQmYXVtbDsmYXVtbDsgZW5zaW1tJmF1bWw7aXNldCBraXJqYWltZXQgc3VvamFhbWF0dGEuIEtyeXB0b2xvZ2lhbiBrYW5uYWx0YSwgdCZhdW1sO20mYXVtbDsgbHVvIHRpZXRvdHVydmEtYXVrb24sIG11dHRhIG9uIHVzZWltbWlsbGUgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtsbGUgaHl2JmF1bWw7a3N5dHQmYXVtbDt2JmF1bWw7IHJhdGthaXN1IHR1cnZhbGxpc3V1ZGVuIGphIHRpZXRvamVuIGomYXVtbDtyamVzdCZhdW1sO21pc2VuIG1haGRvbGxpc3V1ZGVuIHYmYXVtbDtsaWxsJmF1bWw7LiBUaWV0b2plbiBqJmF1bWw7cmplc3RlbHlzdCZhdW1sOyB0dWxlZSBsaWtpYXJ2b2lzdGEsIG11dHRhIHNpbHRpIHN1aHRlZWxsaXNlbiBwYWlra2Fuc2EgcGl0JmF1bWw7diZhdW1sOyZhdW1sOy4gSm9zIGV0IGsmYXVtbDt5dCZhdW1sOyB0JmF1bWw7dCZhdW1sOyBhc2V0dXN0YSwgaiZhdW1sO3JqZXN0eXNrZW50JmF1bWw7dCB0YWxsZW5uZXRhYW4gdGF2YWxsaXNlbmEgdGVrc3RpbiZhdW1sOy4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdWYXJhc3RvbiBzdW9qYXVzIGVpIG9sZSBzYWF0YXZpbGxhJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnQXNlbm5hIE9wZW5TU0wgbW9kdXVsaSB0YWkgbWNyeXB0IHR1a2ksIGpvcyBoYWx1YXQgbGFpdHRhYSB0aWV0b2thbm5hbiBzdW9qYXVrc2VuIHAmYXVtbDsmYXVtbDtsbGUuJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1Rhcmtpc3RhLCBldHQmYXVtbDsgc2ludWxsYSBvbiBDVVJMLXR1a2kgYWt0aWl2aXNlbmEgUEhQLWFzZW5udWtzZXNzYS4gS2F0c28gaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnQWphIE1MRS10aWxhc3NhJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdNdXV0dGFhIGphIHR1a2VlIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gcnVua29hLiAmQXVtbDtsJmF1bWw7IHZhbGl0c2UgdCZhdW1sO3QmYXVtbDssIGpvcyBldCBrJmF1bWw7eXQmYXVtbDsgTUxFLXZlcnNpb3RhLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdWYXJtaXN0YSwgZXR0JmF1bWw7IHZhbGl0c2V0IHlrc2l0eWlzZW4gYXZhaW1lbiwgam9rYSBvbiBzb3BpdmEgc2VydGlmaWthYXRpbGxlLCBqb3RhIGsmYXVtbDt5dCZhdW1sO3QgdGlldG9qZW4gc3VvamFhbWlzZWVuLic7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdTdW9qYXVza2lyamFzdG8nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnVmFsaXRzZSB0JmF1bWw7bSZhdW1sOywgam9zIGhhbHVhdCBzdW9qYXRhIHRhbGxlbm5ldHVuIHRpZWRvbi4gVCZhdW1sO20mYXVtbDsgdGVrZWUgaGFra2VyaWVuIHZhaWtlYW1tYWtzaSAobXV0dGEgZWkgbWFoZG90dG9tYWtzaSkgbiZhdW1sO2hkJmF1bWw7IHRpZXRvamEuJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnQWxsYSBvbGV2YXQgYXNldHVrc2V0IHAmYXVtbDt0ZXYmYXVtbDt0IGFpbm9hc3RhYW4sIGpvcyBrJmF1bWw7eXQmYXVtbDt0IE9wZW5TU0wtc3VvamF1c2tpcmphc3RvYS4nOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnU3VvamF1c2tpcmphc3RvJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMLWtpcmphc3RvJzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUDpuIG1jcnlwdC1raXJqYXN0byc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ1NpdnVzdG9uIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7c2lkb3MnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdBc2VubmEgRnJvbnRlbmQgVXNlciAtbW9kdXVsaSwgam9zIGhhbHVhdCB5aGRpc3QmYXVtbDsmYXVtbDsgbG9tYWtrZWVuIGphIHNlbiB0aWVkb3QgdGlldHR5eW4gayZhdW1sO3l0dCZhdW1sO2omYXVtbDsmYXVtbDtuLic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQXNldGEgcCZhdW1sOyZhdW1sO2xsZSwgam9zIGhhbHVhdCBsdWtpdGEgcCZhdW1sOyZhdW1sO3N5biB0JmF1bWw7aCZhdW1sO24gbG9tYWtrZWVzZWVuIGFpbm9hc3RhYW4gc2lzJmF1bWw7bGxlIGtpcmphdXR1bmVpbGxlIGsmYXVtbDt5dHQmYXVtbDtqaWxsZS4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ1N1b2phdXMnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAoZG8gbm90IGRvIHRoaXMgaWYgeW91IGFyZSBnb2luZyB0byBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdLb2tvIHVybC1vc29pdGUsIG11a2FhbiBsdWtpZW4gcHJvdG9rb2xsYSBqYSBwb2xrdSAoZXNpbS4gaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5a3NlbiBVUkwtb3NvaXRlJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0xvbWFra2VlbiB0YXBhJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdMaXMmYXVtbDtsJmF1bWw7aGV0eXMnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnTWl0JmF1bWw7IHRhaGFuc2EgbCZhdW1sO2hldHlrc2VlbiBsaXMmYXVtbDt0dCZhdW1sO3YmYXVtbDsmYXVtbDsgdGlldG9hLCB1cmwta29vZGF0dXNzYSBtdW9kb3NzYSAoZXNpbS4gJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnU2lzJmF1bWw7bGx5dCZhdW1sOyBrZW50dCZhdW1sOyBsJmF1bWw7aGV0eWtzZWVuJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdUaWVkb3QgdGFsbGVubmV0YWFuIFhNTC1tdW9kb3NzYSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgdGlldG9rYW50YXRhdWx1dW4uJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ1ZpcmhlISBKb2tvIGxvbWFra2VlbGxhIGVpIG9sZSBmb3JtX2J1aWxkZXIgbSZhdW1sOyZhdW1sO3JldHQmYXVtbDssIHRhaSBzZW4gbGF0YWFtaW5lbiBlcCZhdW1sO29ubmlzdHVpIChtYWhkb2xsaW5lbiBtdWlzdGlvbmdlbG1hPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXNlICZxdW90O20mcXVvdDsgZm9yIE1vbnRoLCAmcXVvdDtkJnF1b3Q7IGZvciBEYXksIGFuZCAmcXVvdDt5JnF1b3Q7IGZvciBZZWFyLiBTZXBhcmF0ZSB0aGUgaXRlbXMgYnkgaHlwaGVucy4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1ZhaW4gcnlobSZhdW1sO3NzJmF1bWw7ICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZT8nOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdVc2UgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW5zdGVhZCBvZiBzdGF0aWMnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvdyBtYW55IG51bWJlcnMgdG8gZ2VuZXJhdGUgaW4gcHJvY2Vzcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdLZW50dCZhdW1sOyB2b2lkYWFuIGomYXVtbDt0dCZhdW1sOyZhdW1sOyB0eWhqJmF1bWw7a3NpJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1BvaGphbiBtdXV0dHVqYXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnU2FhdGF2aWxsYSBvbGV2YXQgbXV1dHR1amF0JzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAtbXV1dHR1amEnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdMJmF1bWw7aGV0eXNwdm0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1BhbHZlbGltZXNpJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0xvbWFra2VlbiBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gSVAtb3NvaXRlJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ0xvbWFrZXNpdnVuIHVybC1vc29pdGUnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnTG9tYWtlcmFrZW50YWphbiB2ZXJzaW8nOwokbGFuZ1snaGVscF90YWInXSA9ICdTYXJrYWlubWVya2tpJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXSA9ICcoVGhpcyBmaWVsZCBpZ25vcmVkIGlmIHlvdSB1c2UgdGhlIFVwbG9hZHMgbW9kdWxlIHRvIG1hbmFnZSBmaWxlcyknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdWYWlodG9laHRvaXNpYSBrZW50dGllbiBuaW1pJmF1bWw7IHZvaWRhYW4gayZhdW1sO3l0dCZhdW1sOyZhdW1sOyByaXN0aWluIChrJmF1bWw7eXQmYXVtbDtubiZvdW1sO2xsaXN0JmF1bWw7IGVyaXR5aXNlc3RpLCBqb3MgU21hcnR5IHR1a2VodGlpIG1lcmtrZWloaW4sIGpvdGthIG92YXQgQVNDSUkgMzItMTI2Om4gdWxrb3B1b2xlbGxhKS4gPGJyIC8+TXV1dCBrZW50JmF1bWw7dCBvdmF0IGsmYXVtbDt5dGV0dCZhdW1sO3Zpc3MmYXVtbDssIGt1biBsaXMmYXVtbDsmYXVtbDt0IG5paXQmYXVtbDsgbG9tYWtrZWVzZWVuLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0omYXVtbDtsbGVlbiB1dXNpIHRhcGEsIGpvbGxhIHZvaWRhYW4gcCZhdW1sOyZhdW1sO3N0JmF1bWw7IGsmYXVtbDtzaWtzaSBrZW50dGllbiBhcnZvaWhpbiwgdHl5bGlpbiAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgbWlzcyZhdW1sOyBqb2thaW5lbiBrZW50dCZhdW1sOyBvbiBvYmpla3RpIHNpcyZhdW1sO2x0JmF1bWw7ZW46PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnS2F0c28gPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+UEhQOm4gbWFudWFhbGlzdGE8L2E+IG9oamVpdGEgbXVvdG9pbHV1bi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHR1amEnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnVXVkZWxsZWVubiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBrZW50dCZhdW1sOyc7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIGZpbGUgbG9jYXRlZCBpbiB0aGUgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLyBmb2xkZXIuIFRoaXMgZmllbGQgaXMgaWdub3JlZCBpZiB5b3UgdXNlIFRYVCBhcyB5b3VyIGZpbGUgdHlwZS4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Jhc2ljOiBVc2UgdGhlIHRleHRhcmVhIGJlbG93IHRvIGxheW91dCB0aGUgZmllbGQgbmFtZXMvdmFsdWVzIGluIGEgc2luZ2xlIGJsb2NrLjxiciAvPg0KQWR2YW5jZWQ6IFNwZWNpZnkgU21hcnR5IHZhcmlhYmxlcyBpbiB0aGUgUlRGIFRlbXBsYXRlIEZpbGUgYXMgeW91IHdvdWxkIGJlbG93LCBidXQgYXJyYW5nZSB0aGVtIGhvd2V2ZXIgeW91IGxpa2UgYW5kIGFkZCBmb3JtYXR0aW5nLjxiciAvPg0KJm5ic3A7WW91IGNhbiBzdGlsbCB1c2UgdGhlICUlSEVBREVSJSUgYW5kICUlRk9PVEVSJSUgc2VjdGlvbnMgaW4gdGhlIFJURiBmaWxlLic7CiRsYW5nWydoZWxwX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBIZWFkZXIgVGVtcGxhdGUuPGJyIC8+DQpGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGSUVMRFMlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUgaWYgUlRGIFRlbXBsYXRlIFR5cGUgaXMgc2V0IHRvICZxdW90O0Jhc2ljJnF1b3Q7LjxiciAvPg0KVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgaWYgdXNpbmcgJnF1b3Q7UlRGJnF1b3Q7IGFzIEZpbGUgVHlwZSBhbmQgJnF1b3Q7QWR2YW5jZWQmcXVvdDsgYXMgUlRGIFRlbXBsYXRlIFR5cGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUhFQURFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRk9PVEVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGFrYWlzaW4gbG9tYWtrZWVzZWVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdMdW8gZXNpbWVya2tpcG9oamEnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnTHVvIEhUTUwtcG9oamFuIGVzaW1lcmtraSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0x1byB5bCZhdW1sO3R1bm5pc3RlcG9oamFuIGVzaW1lcmtraSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0x1byBhbGF0dW5uaXN0ZXBvaGphbiBlc2ltZXJra2knOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMdW8geWwmYXVtbDt0dW5uaXN0ZWVuIGVzaW1lcmtraSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdzYXJha2VuJmF1bWw7cHAmYXVtbDtpbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnUG9oamEsIGpvdGEgayZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHR1bG9zdGV0dGF2YW4gdGllZG9zdG9uIHlrc2l0dCZhdW1sO2lzZXNzJmF1bWw7IHJpdmlzcyZhdW1sOyc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1BvaGphLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0dWxvc3RldHRhdmFuIHRpZWRvc3RvbiB5bCZhdW1sO3R1bm5pc3RlZXNzYSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1BvaGphLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0dWxvc3RldHRhdmFuIHRpZWRvc3RvbiBhbGF0dW5uaXN0ZWVzc2EnOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBSVEYgZmlsZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdHlwZSddID0gJ0Nob29zZSBhIGZpbGUgdHlwZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdDaG9vc2UgYW4gUlRGIHRlbXBsYXRlIHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VybC1vc29pdGUsIGpvdGEga2xpa2F0YWFuIGxvbWFra2VlbiB2YWh2aXN0YW1pc2Vrc2knOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdBcnZvIChrYXRzbyBNb25pcHVvbGluZW4gdiZhdW1sO2xpbGVodGksIGpvcyBrJmF1bWw7eXQmYXVtbDt0IHNtYXJ0eXRhZ2VqYSknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdQJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO24gbXVvdG8gKG9sZXR1cyA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFA6biBwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO24gbXVvZG90PC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLJmF1bWw7eXQmYXVtbDsgV1lTSVdZRy1lZGl0b3JpYSB0ZWtzdGlrZW50aXNzJmF1bWw7IChhaW5vYXN0YWFuIHlsbCZhdW1sO3BpdG8tb3Npb3NzYSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4gayZhdW1sO3l0dCZhdW1sO3l0eW1pbmVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdMJmF1bWw7aGV0eXNwYWluaWtrZWlkZW4gb3RzaWtvdCc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ0omYXVtbDtyamVzdGVsdCZhdW1sO3YmYXVtbDsga2VudHQmYXVtbDsgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDsgc2l2dSBzYWxsaWkgc2ludW4gbXVva2F0YSBsb21ha2tlZW4gbCZhdW1sO2hldHQmYXVtbDttaXN0JmF1bWw7LiBTZSBlaSBtJmF1bWw7JmF1bWw7cml0dGVsZSBtaXQmYXVtbDsgbCZhdW1sO2hldGV0eWlsbGUgdGllZG9pbGxlIHRlaGQmYXVtbDsmYXVtbDtuLiBWb2l0IG0mYXVtbDsmYXVtbDtyaXRlbGwmYXVtbDsgc2VuIGxpcyZhdW1sOyZhdW1sO20mYXVtbDtsbCZhdW1sOyBsb21ha2tlZXNlZW4gayZhdW1sO3NpdHRlbHlrZW50dGkmYXVtbDsuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdWdW9zaWpha3NvbiBhbGt1JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnVnVvc2lqYWtzb24gbG9wcHUnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnT2xldHVzdnVvc2knOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoQXNldGEgYXJ2b2tzaSAtMSwgam9zIG9sZXR1a3NlbmEgb24ga3VsdXZhIHZ1b3NpKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ04mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgdmFzdGF1cyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0wmYXVtbDtoZXRldHR5JzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdIeXYmYXVtbDtrc3ltaXNwdm0gKHlsbCZhdW1sO3BpdCZhdW1sO2omYXVtbDspJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdIeXYmYXVtbDtrc3ltaXNwdm0gKGwmYXVtbDtoZXR0JmF1bWw7aiZhdW1sOyknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTiZhdW1sO3l0JmF1bWw7ICZxdW90O0wmYXVtbDtoZXR5c3BvaGphJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPaGphYSBzaXZ1c3RvbiBzaXZ1bGxlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVCZhdW1sO3QmYXVtbDsgcG9oamFhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biwga3VuIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBzaXZ1IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIGxvbWFra2VlbiBsJmF1bWw7aGV0dCZhdW1sO21pc2VuIGomYXVtbDtsa2Vlbi4gVCZhdW1sO20mYXVtbDsgZWkgdmFpa3V0YSBsdW90dWloaW4gcyZhdW1sO2hrJm91bWw7cG9zdGVpaGluIHRhaSBsb21ha2tlZW4gayZhdW1sO3NpdHRlbHl5biAtLSBhc2V0YXQgbmUgcG9oamF0IChzaWVsbCZhdW1sOyBtaXNzJmF1bWw7IHRhcnBlZWxsaXN0YSkgJnF1b3Q7TW9uaXB1b2xpbmVuJnF1b3Q7IHYmYXVtbDtsaWxlaGRlc3MmYXVtbDsgbmlpc3MmYXVtbDsgayZhdW1sO3NpdHRlbHlrZW50aXNzJmF1bWw7Lic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnS29oZGVzaXZ1JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1ZhYWRpIGtlbnR0aWVuIG5pbWV0JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnVmFhZGl0YWFua28ga2VudGlsbGUgbmltaT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdWYWFkaSB5a3NpbCZvdW1sO2xsaXNldCBrZW50dCZhdW1sO25pbWV0JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWYWFkaXRhYW5rbyBrZW50aWxsZSB5a3NpbCZvdW1sO2xsaXNldCBuaW1ldD8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnVXVkZWxsZWVuaiZhdW1sO3JqZXN0JmF1bWw7IGtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYXRhYSBwb2hqYSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgcGFpbmlra2VlbiB0ZWtzdGknOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnUG9pc3RhIHBhaW5pa2tlZW4gdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnVCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIGthbnNzYSBuJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IG9oamV0ZWtzdGknOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnVHVsa2l0c2UgYXJ2b3Qgam9rbyBudW1lcm9pa3NpIHRhaSBtZXJra2lqb25vaWtzaSc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ1R1bGtpbnRhaiZhdW1sO3JqZXN0eXMnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0pvcyBsYXNrZXR0YXZpYSBrZW50dGkmYXVtbDsgb24gZW5lbW0mYXVtbDtuIGt1aW4geWtzaSwgbmUgbGFza2V0YWFuIGFsZW1tYXN0YSBqJmF1bWw7cmplc3R5c251bWVyb3N0YSBpc29pbXBhYW4nOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnU3RyaW5nIChubyBzcGFjZXMgYmV0d2VlbiBmaWVsZHMpPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnTGFza2V0dGF2YSBhcnZvJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdDb21wdXRlZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnTWVya2tpam9ubyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZWVyaW5lbic7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ04mYXVtbDt5dCZhdW1sOyBsb21ha2Ugc2lqb2l0ZXR0dW5hPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnU2lqb2l0ZXR0dSB0YXJrb2l0dGFhLCBldHQmYXVtbDsgbG9tYWtrZWVuIGphdGtvIGtvcnZhYSB7Y21zX21vZHVsZX0gdGFnaW4sIHNpam9pdHRhbWF0b24ga29ydmFhIHtjb250ZW50fSB0YWdpbi4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0tlbnQmYXVtbDtuIG9sZXR1c2Fydm8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ1R5aGplbm4mYXVtbDsgb2xldHVzYXJ2b3Q/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ1ZhbGl0c2UgdCZhdW1sO20mYXVtbDssIGpvcyBoYWx1YXQgdHloamVudCZhdW1sOyZhdW1sOyBvbGV0dXNhcnZvdCBrZW50aXN0JmF1bWw7LCBrdW4gayZhdW1sO3l0dCZhdW1sO2omYXVtbDsga2xpa2thYSBuaWloaW4uIEtvc2thIHQmYXVtbDttJmF1bWw7IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgSmF2YVNjcmlwdGkmYXVtbDsgdmVydGFhbWlzZWVuLCBzZSBlaSB0b2ltaSwgam9zIGxhaXRhdCBsYWluYXVzbWVya2tlaiZhdW1sOyAoJiMwMzk7KSBvbGV0dXN0ZWtzdGlpc2kuIE11dXQgSmF2YVNjcmlwdGluIGthbnNzYSBlcCZhdW1sO3lodGVlbnNvcGl2YXQgbWVya2l0IHZvaXZhdCBteSZvdW1sO3MgdHVvdHRhYSBvbmdlbG1pYS4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdQb2lzdGEgbCZhdW1sO2hldGV0dHkgdGllZG9zdG8gcGFsdmVsaW1lbHRhIGsmYXVtbDtzaXR0ZWx5biBqJmF1bWw7bGtlZW4gKHMmYXVtbDtoayZvdW1sO3Bvc3RpbiBqJmF1bWw7cmplc3RlbHkpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdLZW50JmF1bWw7biBKYXZhU2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ1RlZSB0JmF1bWw7c3QmYXVtbDsga29rbyBKYXZhU2NyaXB0IGt1dHN1LCBtdWthYW4gbHVraWVuIHRhcGFodHVtYW4sIGpvbmthIGhhbHVhdCBuYXBhdGEsIGVzaW0uIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdMb21ha2tlZW4gbCZhdW1sO2hldHlrc2VuIEphdmFTY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ1RlZSB0JmF1bWw7c3QmYXVtbDsga29rbyBKYXZhU2NyaXB0IGt1dHN1LCBtdWthYW4gbHVraWVuIHRhcGFodHVtYW4sIGpvbmthIGhhbHVhdCBuYXBhdGEsIGVzaW0uIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VCZhdW1sO20mYXVtbDsgZWkgdG9kZW5uJmF1bWw7ayZvdW1sO2lzZXN0aSB0b2ltaSwgam9zIGsmYXVtbDt5dCZhdW1sO3QgJnF1b3Q7dHVydmFzY3JpcHRpJnF1b3Q7IGFzZXR1c3RhIHlsJmF1bWw7cHVvbGVsbGEuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnJkF1bWw7bCZhdW1sOyB2YWxpdHNlIHZhaW4gc2F0dHVtYW52YXJhaXN0YSBvc29pdGV0dGEgdCZhdW1sO2gmYXVtbDtuIC0tIG1vbmV0IHBhbHZlbHVudGFyam9hamF0IGVpdiZhdW1sO3QgbCZhdW1sO2hldCZhdW1sOyBzJmF1bWw7aGsmb3VtbDtwb3N0aWEsIGpvcyBtdXVzdGEga3VpbiBvbWFzdGEgZG9tYWlub3NvaXR0ZWVzdGEgKGVsaSBlc2ltZXJraWtzaSBuaW1pQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdUYXJ2aXRzZXRrbyBsaXMmYXVtbDsmYXVtbDsga2VudHQmYXVtbDt0eXlwcGVqJmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdMaWlhbiBtb250YSBzZWtvaXR0YXZhYSBrZW50dCZhdW1sO3R5eXBwaSZhdW1sOz8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdWYWloZGEgZWRpc3R5bmVlc2VlbiB0aWxhbic7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1ZhaWhkYSBwZXJ1c3RpbGFhbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdIYWtlbWlzdG8sIGpvaG9uIHRpZWRvc3RvIHRhbGxlbm5ldGFhbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1QmYXVtbDttJmF1bWw7biB0JmF1bWw7eXR5eSBvbGxhIGhha2VtaXN0bywgam9ob24gcGFsdmVsaW1lbGxhIHZvaWRhYW4ga2lyam9pdHRhYTxiciAvPkFzZXRhIENITU9EIDc3Nywgam9zIHNpbnVsbGEgb24gb25nZWxtaWEuPGJyIC8+VGFya2lzdGEgbXkmb3VtbDtzLCBldHQmYXVtbDsgc2ludWxsYSBlaSBvbGUgUEhQOm4gaGFrZW1pc3RvcmFqb2l0dWtzaWEuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdVdWRldCByaXZpdCBqYSByaXZpbnZhaWhkb3Qga29ydmFhdmEgbWVya2tpJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0omYXVtbDt0JmF1bWw7IHR5aGomYXVtbDtrc2ksIGpvcyBzYWxsaXQgdXVkZXQgcml2aXQgamEgcml2aW52YWloZG90IHR1bG9zdGVlc3NhJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdMJmF1bWw7aGV0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIGtvcGlvaSB2aWVzdGlzdCZhdW1sOz8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ090c2lra28gdmFsaW50YXJ1dWR1bGxlIChqb3MgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHZhbGl0c2VtYSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdMJmF1bWw7aGV0JmF1bWw7IG1pbnVsbGUga29waW9pIGxvbWFra2Vlc3RhJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdTYWxsaSBhaWhlZW4ga29ydmFhbWluZW4nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnU2FsbGkgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsga29ydmF0YSBwdWRvdHVzdmFsaWtvbiBhaWhlLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ04mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgcGl0dXVzJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnVmFzdGF1a3NlbiBtaW5pbWlwaXR1dXMnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ1BpaWxvdGEgc3kmb3VtbDt0ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdOJmF1bWw7eXQmYXVtbDsgc3ltYm9saXQgdGF2YWxsaXN0ZW4gbWVya2tpZW4gc2lqYXN0YSBzYWxhc2Fub2plbiBrb2hkYWxsYT8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdTYWxhc2FuYSBlaSB2YXN0YWEgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdUYWthaXNpbiBMb21ha2VyYWtlbnRhamFuIHAmYXVtbDsmYXVtbDtzaXZ1bGxlJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnTWl0ayZhdW1sOyBzJmF1bWw7aGsmb3VtbDtwb3N0aW4gb3RzYWtrZWV0IHQmYXVtbDttJmF1bWw7biBzeSZvdW1sO3R0ZWVuIHBpdCZhdW1sO2lzaSB0JmF1bWw7eXR0JmF1bWw7JmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnJkF1bWw7bCZhdW1sOyBzYWxsaSBwZWxra2kmYXVtbDsgdiZhdW1sO2xpbHkmb3VtbDtudGVqJmF1bWw7IHZhc3RhdWtzZXNzYSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdKb3Mga2VudHQmYXVtbDsgb24gcGFrb2xsaW5lbiwgdCZhdW1sO20mYXVtbDtuIHZhbGl0c2VtaW5lbiB2YWF0aWksIGV0dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3Qga2lyam9pdHRhdmF0IGtpcmphaW1pYSB0YWkgbnVtZXJvaXRhLCBlaXYmYXVtbDt0ayZhdW1sOyBhaW5vYXN0YWFuIHYmYXVtbDtsaWx5Jm91bWw7bnRlaiZhdW1sOyc7CiRsYW5nWyd0aXRsZV9tdXN0X3NhdmVfb3JkZXInXSA9ICdZb3UgbXVzdCBjbGljayBvbmUgb2YgdGhlICZxdW90O3NhdmUmcXVvdDsgYnV0dG9ucyB0byBtYWtlIHlvdXIgbmV3IGZpZWxkIG9yZGVyIHBlcm1hbmVudC4nOwokbGFuZ1sndGl0bGVfaHRtbDUnXSA9ICdVc2UgSFRNTDUgcGxhY2Vob2xkZXIgdGV4dCBpbnN0ZWFkIG9mIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfZW1haWxfY2NfYWRkcmVzcyddID0gJ0FkZHJlc3MoZXMpIHRvIGVtYWlsIGFzIENhcmJvbiBjb3B5IChDQykuIFVzZSBjb21tYXMgdG8gZGVsaW1pdCBtdWx0aXBsZSBhZGRyZXNzZXMuJzsKJGxhbmdbJ3RpdGxlX3VzZV9iY2MnXSA9ICdVc2UgQmxpbmQgY2FyYm9uIGNvcHkgKEJDQyBpbnN0ZWFkIG9mIENDKSc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzaW5nJ10gPSAnTWFpbCBBZGRyZXNzaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX21vZGlmeSddID0gJ0VtYWlsIGZpZWxkIHRvIGFkZCBDQyBhZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX21vZGlmaWVzJ10gPSAnQWRkIENDIHRvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2JjY19maWVsZCddID0gJyZxdW90O0JDQyZxdW90OyByZWNpcGllbnRzJzsKJGxhbmdbJ2NjX2ZpZWxkJ10gPSAnJnF1b3Q7Q0MmcXVvdDsgcmVjaXBpZW50cyc7CiRsYW5nWyd0b19maWVsZCddID0gJ05vcm1hbCAoJnF1b3Q7VG8mcXVvdDsgcmVjaXBpZW50cyknOwokbGFuZ1snYmNjJ10gPSAnQkNDJzsKJGxhbmdbJ2NjJ10gPSAnQ0MnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ1lyaXR5c2hha2VtaXN0by1tb2R1dWxpIGVpIG9sZSBzYWF0YXZpbGxhISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdFaSBrb3NrYWFuJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0FubmEgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHZhbGl0YSAodmFsaW50YXJ1dXR1KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWluYSc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1snb3B0aW9uX3JlcGx5J10gPSAnJnF1b3Q7UmVwbHktVG8mcXVvdDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdTZWsmYXVtbDsgJnF1b3Q7RnJvbSZxdW90OyBldHQmYXVtbDsgJnF1b3Q7UmVwbHktVG8mcXVvdDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdHRlZXQnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnUHVkb3R1c3ZhbGlra28nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnVmFsaW50YWxpc3RhICh5a3NpKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1ZhbGludGFsaXN0YSAodXNlYW1waSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdWYWxpbnRhcGFsbG9yeWhtJmF1bWw7JzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ0h1b21hYTogVHVsb3N0dXMgb24gbXVvZG9zc2E8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnVmFsaXRzZSBrYXRlZ29yaWEgKHVzZWFtcGkpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXSA9ICdIYWUga2VudCZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHlrc2VuIGFydm8gKHlrc2l0dCZhdW1sO2luZW4pIDxlbT52YXBhYWVodG9pbmVuPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXSA9ICdWYWxpdHNlIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBzeSZvdW1sO3R0JmF1bWw7bSZhdW1sOyB0aWV0byc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoS2F0c28gbXkmb3VtbDtzIExvbWFra2VlbiBsJmF1bWw7aGV0eXMgLXYmYXVtbDtsaWxlaHRlJmF1bWw7LCBqb3MgaGFsdWF0IGFzZXR0YWEgVURUOm4gbG9tYWtrZWVuIHRhcmtpc3R1a3NlbGxlKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnUCZhdW1sOyZhdW1sO3R0eW1pc3Z1b3NpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnU21hcnR5dGFnaSB0YWkgbG9naWlra2EsIGpva2EgbCZhdW1sO2hldGV0JmF1bWw7JmF1bWw7biB0JmF1bWw7bSZhdW1sO24ga2VudCZhdW1sO24gbXVrYW5hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdWb2kgc21hcnR5ZGF0YSwgamF2YXNjcmlwdCB0YWkgbXV1IGRhdGEsIGpvbmthIGhhbHVhdCBsJmF1bWw7aGV0dCZhdW1sOyZhdW1sOyB0JmF1bWw7bSZhdW1sO24ga2VudCZhdW1sO24gbXVrYW5hLjxiciAvPk1lbmVlIHNtYXJ0eXJha2VudGFqYW4gbCZhdW1sO3BpLCBqb3RlbiBtdWlzdGEgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyB7bGl0ZXJhbH17L2xpdGVyYWx9IHRhZ2VqYSA8c2NyaXB0Pjwvc2NyaXB0PiBrYW5zc2EuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgb3RzaWtvdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdUJmF1bWw7bSZhdW1sO24gYXNldHRhbWluZW4gcCZhdW1sOyZhdW1sO2xsZSBsaWl0dCZhdW1sOyZhdW1sOyBvdHNpa290IHR1bG9zdHVrc2Vlbi4gZXNpbWVya2lrc2kgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5raXQmYXVtbDsgdCZhdW1sO20mYXVtbDsga2VudHQmYXVtbDsgc2VuIHNpc2FydWtzaWluJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICdQdWRvdHVzdmFsaWtrbyBrYWlraXN0YSB0JmF1bWw7bSZhdW1sO24ga2VudCZhdW1sO24gc2lzYXJ1a3Npc3RhIGphIHNhbGxpaSBzaW51biBsaW5raXR0JmF1bWw7JmF1bWw7IHQmYXVtbDttJmF1bWw7biBrZW50JmF1bWw7biBqb2hvbmtpbiBzZW4gc2lzYXJ1a3NlZW4uIE1haGRvbGxpc3RhYSBteSZvdW1sO3Mga2VudCZhdW1sO24gaGFsbGlubmFuIHZhbGl0dHVqZW4gc2lzYXJ1c3RlbiBrb250cm9sbGVpbGxhLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ1BpaWxvdGEgaGFsbGludGFwYWluaWtrZWV0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdQaWlsb3R0YWEganVsa2lzdGVuIHNpdnVqZW4gaGFsbGludGFwYWluaWtrZWV0IHQmYXVtbDtsdCZhdW1sOyBrZW50JmF1bWw7bHQmYXVtbDsuJzsKJGxhbmdbJ3RpdGxlX25vdGUnXSA9ICdOb3RlJzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXSA9ICdDaGFuZ2luZyBhbnkgb2YgdGhlIGFib3ZlIGZpZWxkcyB3aWxsIHRyaWdnZXIgYSByZWluZGV4IG9mICphbGwqIHNhdmVkIHJlY29yZHMsIHNvIGl0IGNvdWxkIHRha2UgYSB3aGlsZS4nOwokbGFuZ1snaWxsZWdhbF9maWxlJ10gPSAnQXR0ZW1wdGVkIHVwbG9hZCBvZiBpbGxlZ2FsIGZpbGUgdHlwZSAoJXMpIGZyb20gJXMnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZSddID0gJ01ha2UgcmVjb3JkcyBhY2Nlc3NpYmxlIHRvIFNlYXJjaCBNb2R1bGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ10gPSAnQ2hlY2tpbmcgdGhpcyB3aWxsIG1ha2UgYWxsIHN1Ym1pdHRlZCBkYXRhIGFjY2Vzc2libGUgdG8gdGhlIFNlYXJjaCBNb2R1bGUuIERPIE5PVCB1c2UgdGhpcyBpZiB5b3UgZW5jcnlwdCB5b3VyIGRhdGEgLS0gdGhlIGluZm9ybWF0aW9uIGdldHMgZXhwb3NlZCB0byBzZWFyY2ggd2hldGhlciBvciBub3QgaXQgaXMgZW5jcnlwdGVkISc7CiRsYW5nWyd1cGxvYWRlZF9vdXRzaWRlX3dlYnJvb3QnXSA9ICclcyAob3V0c2lkZSB3ZWIgcm9vdCknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXSA9ICdFZGl0YWJsZSBpbiBGb3JtQnJvd3NlciBBZG1pbj8nOwokbGFuZ1sndGl0bGVfYWN0aXZlX29ubHknXSA9ICdPbmx5IGluY2x1ZGUgYWN0aXZlIHVzZXJzPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpIHBhbGF1dHRpIHZpcmhlZW4nOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSAlcyBwYWxhdXR0aSB2aXJoZWVuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkthdGFsb29naW1vZHV1bGlhIGVpIG9sZSBhc2VubmV0dHUgdGFpIHNlIGVpIG9sZSBha3RpaXZpc2VuYS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1ZBUk9JVFVTISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnT2xldHVzcG9oamEnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhdWx1a2tvcG9oamEsIG90c2lra28gdmFzZW1tYWxsYSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYXVsdWtrb3BvaGphLCBvdHNpa2tvIHlsJmF1bWw7cHVvbGVsbGEnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU2l2dXBvaGphICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ09sZXRrbyB2YXJtYSwgZXR0JmF1bWw7IGhhbHVhdCBrb3J2YXRhIHNpdnVwb2hqYW4gdmFsaXR1bGxhIHBvaGphbGxhPyAoVmFpa2thIHZhbGl0c2V0IE9LLCBzaW51biB0JmF1bWw7eXR5eSBzaWx0aSB0YWxsZW50YWEgbXV1dG9rc2V0KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdWaXJoZSBsYXNrZXR0YWVzc2EgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdIVFRQX1JFRkVSRVIgdGlldG9hIGVpIG9sZSBzYWF0YXZpbGxhIChsdXVsdGF2YXN0aSBqb2h0dXUgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHMmYXVtbDtoayZvdW1sO3Bvc3RpbiB0YXJraXN0dWtzZXN0YSknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1Rhcmtpc3R1c3BhcmFtZXRyaW4gdmlyaGUuIFRhcmtpc3RhLCBldHQmYXVtbDsga29waW9pdCB1cmwtb3NvaXR0ZWVuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc3Rhc2kgb2lrZWluISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVGFya2lzdHVzdmlyaGUuIFRhcmtpc3RhLCBldHQmYXVtbDsga29waW9pdCB1cmwtb3NvaXR0ZWVuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc3Rhc2kgb2lrZWluISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVGFya2lzdHVzdmlyaGUuIFQmYXVtbDtzcyZhdW1sOyBsb21ha2tlZXNzYSBlaSBvbGUgcyZhdW1sO2hrJm91bWw7cG9zdGluIHRhcmtpc3R1c2tlbnR0JmF1bWw7JmF1bWw7ISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnTG9tYWtrZWVuIHBvaGphIHAmYXVtbDtpdml0ZXR0aWluIGF1dG9tYWF0dGlzZXN0aSB2ZXJzaW9zdGEgMC4zIHZlcnNpb29uIDAuNCBwJmF1bWw7aXZpdHlrc2VuIG9zYW5hLiBTaW51biB0YXJ2aXRzZWUgZWhrJmF1bWw7IHRlaGQmYXVtbDsga29yamF1a3NpYS4gSm9zIGsmYXVtbDt5dCZhdW1sO3Qgb2xldHVzbG9tYWtldHRhLCB5a3NpbmtlcnRhaXNlc3RpIGtvcnZhYSBwb2hqYSAmcXVvdDtvbGV0dWtzZWxsYSZxdW90OyB5bCZhdW1sO3B1b2xlbGxhIG9sZXZhc3NhIHB1ZG90dXN2YWxpa29zc2EuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0xpcyZhdW1sOyZhdW1sOywgbXVva2thYSBqYSBoYWxsaW5ub2kgaW50ZXJha3RpaXZpYSBsb21ha2tlaXRhLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2FkbWluJ10gPSAnTXVzdCBzcGVjaWZ5IGFuIEFkbWluJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSm9zIGsmYXVtbDt5dCZhdW1sO3QgbWVya2tpam9ub2plbiB0YXJraXN0dXN0YSwgYWlub2EgdG9pbWVucGlkZSBzYWF0YXZpbGxhIG9uIGxpcyZhdW1sO3lzICgrKSwgam9zIHRhYXMgayZhdW1sO3l0JmF1bWw7dCBudW1lZXJpc3RhIHRhcmtpc3R1c3RhLCB2b2l0IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgeWtzaW5rZXJ0YWlzdGEgbWF0ZW1hdGlpa2thYSAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdLJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gbW9kdXVsaWsmYXVtbDt5dHQmb3VtbDtsaWl0dHltJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4NClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7Pg0KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdGFnaXNpJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ3RhbW1pa3V1JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdoZWxtaWt1dSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnbWFhbGlza3V1JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdodWh0aWt1dSc7CiRsYW5nWydkYXRlX21heSddID0gJ3RvdWtva3V1JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ2tlcyZhdW1sO2t1dSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdoZWluJmF1bWw7a3V1JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnZWxva3V1JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnc3l5c2t1dSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdsb2tha3V1JzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdtYXJyYXNrdXUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ2pvdWx1a3V1JzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4nOwokbGFuZ1snQVgnXSA9ICdBbGFuZCBJc2xhbmRzJzsKJGxhbmdbJ0FMJ10gPSAnQWxiYW5pYSc7CiRsYW5nWydEWiddID0gJ0FsZ2VyaWEnOwokbGFuZ1snQVMnXSA9ICdBbWVyaWNhbiBTYW1vYSc7CiRsYW5nWydBRCddID0gJ0FuZG9ycmEnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEnOwokbGFuZ1snQUknXSA9ICdBbmd1aWxsYSc7CiRsYW5nWydBUSddID0gJ0FudGFyY3RpY2EnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIGFuZCBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5hJzsKJGxhbmdbJ0FNJ10gPSAnQXJtZW5pYSc7CiRsYW5nWydBVyddID0gJ0FydWJhJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGlhJzsKJGxhbmdbJ0FUJ10gPSAnQXVzdHJpYSc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlqYW4nOwokbGFuZ1snQlMnXSA9ICdCYWhhbWFzJzsKJGxhbmdbJ0JIJ10gPSAnQmFocmFpbic7CiRsYW5nWydCQiddID0gJ0JhcmJhZG9zJzsKJGxhbmdbJ0JEJ10gPSAnQmFuZ2xhZGVzaCc7CiRsYW5nWydCWSddID0gJ0JlbGFydXMnOwokbGFuZ1snQkUnXSA9ICdCZWxnaXVtJzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmlhJzsKJGxhbmdbJ0JBJ10gPSAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSc7CiRsYW5nWydCViddID0gJ0JvdXZldCBJc2xhbmQnOwokbGFuZ1snQlInXSA9ICdCcmF6aWwnOwokbGFuZ1snSU8nXSA9ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmlhJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvJzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSc7CiRsYW5nWydLSCddID0gJ0NhbWJvZGlhJzsKJGxhbmdbJ0NNJ10gPSAnQ2FtZXJvb24nOwokbGFuZ1snQ0EnXSA9ICdDYW5hZGEnOwokbGFuZ1snQ1YnXSA9ICdDYXBlIFZlcmRlJzsKJGxhbmdbJ0tZJ10gPSAnQ2F5bWFuIElzbGFuZHMnOwokbGFuZ1snQ0YnXSA9ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVEQnXSA9ICdDaGFkJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGUnOwokbGFuZ1snQ04nXSA9ICdDaGluYSc7CiRsYW5nWydDWCddID0gJ0NocmlzdG1hcyBJc2xhbmQnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyc7CiRsYW5nWydDTyddID0gJ0NvbG9tYmlhJzsKJGxhbmdbJ0tNJ10gPSAnQ29tb3Jvcyc7CiRsYW5nWydDRyddID0gJ0NvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnQ29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJzsKJGxhbmdbJ0NLJ10gPSAnQ29vayBJc2xhbmRzJzsKJGxhbmdbJ0NSJ10gPSAnQ29zdGEgUmljYSc7CiRsYW5nWydDSSddID0gJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJzsKJGxhbmdbJ0hSJ10gPSAnQ3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSc7CiRsYW5nWydDWSddID0gJ0N5cHJ1cyc7CiRsYW5nWydDWiddID0gJ0N6ZWNoIFJlcHVibGljJzsKJGxhbmdbJ0RLJ10gPSAnRGVubWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJzsKJGxhbmdbJ0RNJ10gPSAnRG9taW5pY2EnOwokbGFuZ1snRE8nXSA9ICdEb21pbmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVFAnXSA9ICdFYXN0IFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvcic7CiRsYW5nWydFRyddID0gJ0VneXB0JzsKJGxhbmdbJ1NWJ10gPSAnRWwgU2FsdmFkb3InOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydFUiddID0gJ0VyaXRyZWEnOwokbGFuZ1snRUUnXSA9ICdFc3RvbmlhJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWEnOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXSA9ICdGYXJvZSBJc2xhbmRzJzsKJGxhbmdbJ0ZKJ10gPSAnRmlqaSc7CiRsYW5nWydGSSddID0gJ0ZpbmxhbmQnOwokbGFuZ1snRlInXSA9ICdGcmFuY2UnOwokbGFuZ1snRlgnXSA9ICdGcmFuY2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSc7CiRsYW5nWydQRiddID0gJ0ZyZW5jaCBQb2x5bmVzaWEnOwokbGFuZ1snVEYnXSA9ICdGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMnOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24nOwokbGFuZ1snR00nXSA9ICdHYW1iaWEnOwokbGFuZ1snR0UnXSA9ICdHZW9yZ2lhJzsKJGxhbmdbJ0RFJ10gPSAnR2VybWFueSc7CiRsYW5nWydHSCddID0gJ0doYW5hJzsKJGxhbmdbJ0dJJ10gPSAnR2licmFsdGFyJzsKJGxhbmdbJ0dCJ10gPSAnR3JlYXQgQnJpdGFpbiAoVUspJzsKJGxhbmdbJ0dSJ10gPSAnR3JlZWNlJzsKJGxhbmdbJ0dMJ10gPSAnR3JlZW5sYW5kJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkYSc7CiRsYW5nWydHUCddID0gJ0d1YWRlbG91cGUnOwokbGFuZ1snR1UnXSA9ICdHdWFtJzsKJGxhbmdbJ0dUJ10gPSAnR3VhdGVtYWxhJzsKJGxhbmdbJ0dOJ10gPSAnR3VpbmVhJzsKJGxhbmdbJ0dXJ10gPSAnR3VpbmVhLUJpc3NhdSc7CiRsYW5nWydHWSddID0gJ0d1eWFuYSc7CiRsYW5nWydIVCddID0gJ0hhaXRpJzsKJGxhbmdbJ0hNJ10gPSAnSGVhcmQgYW5kIE1jRG9uYWxkIElzbGFuZHMnOwokbGFuZ1snSE4nXSA9ICdIb25kdXJhcyc7CiRsYW5nWydISyddID0gJ0hvbmcgS29uZyc7CiRsYW5nWydIVSddID0gJ0h1bmdhcnknOwokbGFuZ1snSVMnXSA9ICdJY2VsYW5kJzsKJGxhbmdbJ0lOJ10gPSAnSW5kaWEnOwokbGFuZ1snSUQnXSA9ICdJbmRvbmVzaWEnOwokbGFuZ1snSVInXSA9ICdJcmFuJzsKJGxhbmdbJ0lRJ10gPSAnSXJhcSc7CiRsYW5nWydJRSddID0gJ0lyZWxhbmQnOwokbGFuZ1snSUwnXSA9ICdJc3JhZWwnOwokbGFuZ1snSU0nXSA9ICdJc2xlIG9mIE1hbic7CiRsYW5nWydJVCddID0gJ0l0YWx5JzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5JzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWljYSc7CiRsYW5nWydKUCddID0gJ0phcGFuJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuJzsKJGxhbmdbJ0taJ10gPSAnS2F6YWtoc3Rhbic7CiRsYW5nWydLRSddID0gJ0tlbnlhJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGknOwokbGFuZ1snS1AnXSA9ICdLb3JlYSAoTm9ydGgpJzsKJGxhbmdbJ0tSJ10gPSAnS29yZWEgKFNvdXRoKSc7CiRsYW5nWydLVyddID0gJ0t1d2FpdCc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4nOwokbGFuZ1snTEEnXSA9ICdMYW9zJzsKJGxhbmdbJ0xWJ10gPSAnTGF0dmlhJzsKJGxhbmdbJ0xCJ10gPSAnTGViYW5vbic7CiRsYW5nWydMSSddID0gJ0xpZWNodGVuc3RlaW4nOwokbGFuZ1snTFInXSA9ICdMaWJlcmlhJzsKJGxhbmdbJ0xZJ10gPSAnTGlieWEnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvJzsKJGxhbmdbJ0xUJ10gPSAnTGl0aHVhbmlhJzsKJGxhbmdbJ0xVJ10gPSAnTHV4ZW1ib3VyZyc7CiRsYW5nWydNTyddID0gJ01hY2F1JzsKJGxhbmdbJ01HJ10gPSAnTWFkYWdhc2Nhcic7CiRsYW5nWydNVyddID0gJ01hbGF3aSc7CiRsYW5nWydNWSddID0gJ01hbGF5c2lhJzsKJGxhbmdbJ01WJ10gPSAnTWFsZGl2ZXMnOwokbGFuZ1snTUwnXSA9ICdNYWxpJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEnOwokbGFuZ1snTUgnXSA9ICdNYXJzaGFsbCBJc2xhbmRzJzsKJGxhbmdbJ01RJ10gPSAnTWFydGluaXF1ZSc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWEnOwokbGFuZ1snTVUnXSA9ICdNYXVyaXRpdXMnOwokbGFuZ1snWVQnXSA9ICdNYXlvdHRlJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWNvJzsKJGxhbmdbJ0ZNJ10gPSAnTWljcm9uZXNpYSc7CiRsYW5nWydNQyddID0gJ01vbmFjbyc7CiRsYW5nWydNRCddID0gJ01vbGRvdmEnOwokbGFuZ1snTUEnXSA9ICdNb3JvY2NvJzsKJGxhbmdbJ01OJ10gPSAnTW9uZ29saWEnOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0JzsKJGxhbmdbJ01aJ10gPSAnTW96YW1iaXF1ZSc7CiRsYW5nWydNTSddID0gJ015YW5tYXInOwokbGFuZ1snTkEnXSA9ICdOYW1pYmlhJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUnOwokbGFuZ1snTlAnXSA9ICdOZXBhbCc7CiRsYW5nWydOTCddID0gJ05ldGhlcmxhbmRzJzsKJGxhbmdbJ0FOJ10gPSAnTmV0aGVybGFuZHMgQW50aWxsZXMnOwokbGFuZ1snTlQnXSA9ICdOZXV0cmFsIFpvbmUnOwokbGFuZ1snTkMnXSA9ICdOZXcgQ2FsZWRvbmlhJzsKJGxhbmdbJ05aJ10gPSAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc7CiRsYW5nWydOSSddID0gJ05pY2FyYWd1YSc7CiRsYW5nWydORSddID0gJ05pZ2VyJzsKJGxhbmdbJ05HJ10gPSAnTmlnZXJpYSc7CiRsYW5nWydOVSddID0gJ05pdWUnOwokbGFuZ1snTkYnXSA9ICdOb3Jmb2xrIElzbGFuZCc7CiRsYW5nWydNUCddID0gJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyc7CiRsYW5nWydOTyddID0gJ05vcndheSc7CiRsYW5nWydPTSddID0gJ09tYW4nOwokbGFuZ1snUEsnXSA9ICdQYWtpc3Rhbic7CiRsYW5nWydQVyddID0gJ1BhbGF1JzsKJGxhbmdbJ1BTJ10gPSAnUGFsZXN0aW5pYW4gVGVycml0b3J5JzsKJGxhbmdbJ1BBJ10gPSAnUGFuYW1hJzsKJGxhbmdbJ1BHJ10gPSAnUGFwdWEgTmV3IEd1aW5lYSc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5JzsKJGxhbmdbJ1BFJ10gPSAnUGVydSc7CiRsYW5nWydQSCddID0gJ1BoaWxpcHBpbmVzJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4nOwokbGFuZ1snUEwnXSA9ICdQb2xhbmQnOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCc7CiRsYW5nWydQUiddID0gJ1B1ZXJ0byBSaWNvJzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXInOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uJzsKJGxhbmdbJ1JPJ10gPSAnUm9tYW5pYSc7CiRsYW5nWydSVSddID0gJ1J1c3NpYW4gRmVkZXJhdGlvbic7CiRsYW5nWydSVyddID0gJ1J3YW5kYSc7CiRsYW5nWydHUyddID0gJ1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuJzsKJGxhbmdbJ0tOJ10gPSAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEnOwokbGFuZ1snVkMnXSA9ICdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJzsKJGxhbmdbJ1dTJ10gPSAnU2Ftb2EnOwokbGFuZ1snU00nXSA9ICdTYW4gTWFyaW5vJzsKJGxhbmdbJ1NUJ10gPSAnU2FvIFRvbWUgYW5kIFByaW5jaXBlJzsKJGxhbmdbJ1NBJ10gPSAnU2F1ZGkgQXJhYmlhJzsKJGxhbmdbJ1NOJ10gPSAnU2VuZWdhbCc7CiRsYW5nWydTQyddID0gJ1NleWNoZWxsZXMnOwokbGFuZ1snU0wnXSA9ICdTaWVycmEgTGVvbmUnOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvcmUnOwokbGFuZ1snU0knXSA9ICdTbG92ZW5pYSc7CiRsYW5nWydTSyddID0gJ1Nsb3ZhayBSZXB1YmxpYyc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyc7CiRsYW5nWydTTyddID0gJ1NvbWFsaWEnOwokbGFuZ1snWkEnXSA9ICdTb3V0aCBBZnJpY2EnOwokbGFuZ1snRVMnXSA9ICdTcGFpbic7CiRsYW5nWydMSyddID0gJ1NyaSBMYW5rYSc7CiRsYW5nWydTSCddID0gJ1N0LiBIZWxlbmEnOwokbGFuZ1snUE0nXSA9ICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAnOwokbGFuZ1snU0QnXSA9ICdTdWRhbic7CiRsYW5nWydTUiddID0gJ1N1cmluYW1lJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuIElzbGFuZHMnOwokbGFuZ1snU1onXSA9ICdTd2F6aWxhbmQnOwokbGFuZ1snU0UnXSA9ICdTd2VkZW4nOwokbGFuZ1snQ0gnXSA9ICdTd2l0emVybGFuZCc7CiRsYW5nWydTWSddID0gJ1N5cmlhJzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuJzsKJGxhbmdbJ1RKJ10gPSAnVGFqaWtpc3Rhbic7CiRsYW5nWydUWiddID0gJ1RhbnphbmlhJzsKJGxhbmdbJ1RIJ10gPSAnVGhhaWxhbmQnOwokbGFuZ1snVEcnXSA9ICdUb2dvJzsKJGxhbmdbJ1RLJ10gPSAnVG9rZWxhdSc7CiRsYW5nWydUTyddID0gJ1RvbmdhJzsKJGxhbmdbJ1RUJ10gPSAnVHJpbmlkYWQgYW5kIFRvYmFnbyc7CiRsYW5nWydUTiddID0gJ1R1bmlzaWEnOwokbGFuZ1snVFInXSA9ICdUdXJrZXknOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4nOwokbGFuZ1snVEMnXSA9ICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnOwokbGFuZ1snVFYnXSA9ICdUdXZhbHUnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEnOwokbGFuZ1snVUEnXSA9ICdVa3JhaW5lJzsKJGxhbmdbJ0FFJ10gPSAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnOwokbGFuZ1snVUsnXSA9ICdVbml0ZWQgS2luZ2RvbSc7CiRsYW5nWydVUyddID0gJ1VuaXRlZCBTdGF0ZXMnOwokbGFuZ1snVU0nXSA9ICdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4nOwokbGFuZ1snVlUnXSA9ICdWYW51YXR1JzsKJGxhbmdbJ1ZBJ10gPSAnVmF0aWNhbiBDaXR5IFN0YXRlIChIb2x5IFNlZSknOwokbGFuZ1snVkUnXSA9ICdWZW5lenVlbGEnOwokbGFuZ1snVk4nXSA9ICdWaWV0IE5hbSc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSc7CiRsYW5nWydWSSddID0gJ1ZpcmdpbiBJc2xhbmRzIChVLlMuKSc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSc7CiRsYW5nWydZRSddID0gJ1llbWVuJzsKJGxhbmdbJ1lVJ10gPSAnWXVnb3NsYXZpYSc7CiRsYW5nWydaTSddID0gJ1phbWJpYSc7CiRsYW5nWydaVyddID0gJ1ppbWJhYndlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdMb21ha2tlZW4gbCZhdW1sO2hldHlrc2VzcyZhdW1sOyB0YXBhaHR1aSB2aXJoZS4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXJpbiBsJmF1bWw7aGV0eXN2aXJoZTogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ1ZpcmhlIHRpZWRvc3RvbiBhbnRhbWlzZXNzYSBsJmF1bWw7aGV0eXNtb2R1dWxpbGxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdMJmF1bWw7aGV0eXNtb2R1dWxpYSBlaSBsJm91bWw7eXR5bnl0JzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdUYXBhaHR1aSB2aXJoZSBsJmF1bWw7aGV0ZXR0JmF1bWw7ZXNzJmF1bWw7IHRhaSBsaWl0ZXR0JmF1bWw7ZXNzJmF1bWw7IHRpZWRvc3RvYSAlcyAodG1wX25hbWU6ICVzLCB0eXlwcGkgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnVmlyaGUuIFRpZWRvc3RvYSBlaSB2b2lkYSBsdWtpdGEuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnT2xldHVzOiB2YWxpdHNlbWF0dGEnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnT2xldHVzOiB2YWxpdHR1JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlcmluIGwmYXVtbDtoZXR5cyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5TJmF1bWw7aGsmb3VtbDtwb3N0aXBvaGphYSBlaSBvbGUgYXNldGV0dHUhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0xvbWFrZXJha2VudGFqYXI6IFZhYWRpdHR1YSBtb2R1dWxpYSBDTVNNYWlsZXIgZWkgbCZvdW1sO3lkeSEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIGh5diZhdW1sO2tzeW0mYXVtbDsgbCZhdW1sO2hldHlzICVzICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdUYXBhaHR1bWEsIGpvdGEga3V0c3V0YWFuLCBrdW4gTG9tYWtlcmFrZW50YWphbiBsb21ha2UgbCZhdW1sO2hldGV0JmF1bWw7JmF1bWw7bic7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdUYXBhaHR1bWEsIGpvdGEga3V0c3V0YWFuLCBrdW4gdGFwYWh0dXUgdmlyaGUgTG9tYWtlcmFrZW50YWphbiBsb21ha2tlZW4gbCZhdW1sO2hldHQmYXVtbDttaXNlc3MmYXVtbDsnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdUYXBhaHR1bWEsIGpvdGEga3V0c3V0YWFuLCBrdW4gTG9tYWtlcmFrZW50YWphbiBsb21ha2UgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5UYXBhaHR1bWEsIGpvdGEga3V0c3V0YWFuLCBrdW4gTG9tYWtlcmFrZW50YWphbiBsb21ha2UgbCZhdW1sO2hldGV0JmF1bWw7JmF1bWw7bi48L3A+DQo8aDQ+UGFyYW1ldHJpdDwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTG9tYWtrZWVuIG5pbWkgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBTaXMmYXVtbDtpbmVuIGxvbWFra2VlbiB0dW5uaXN0ZSAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gQW5uYSBvbGV0dXNhcnZvIGtlbnQmYXVtbDtsbGUsIGpvbGxhIG9uIG0mYXVtbDsmYXVtbDtyaXRlbHR5IG5pbWkuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5UYXBhaHR1bWEsIGpvdGEga3V0c3V0YWFuLCBrdW4gTG9tYWtlcmFrZW50YWphbiBsb21ha2tlZW4gbCZhdW1sO2hldHQmYXVtbDttaXNlc3MmYXVtbDsgdGFwYWh0dXUgdmlyaGU8L3A+DQo8aDQ+UGFyYW1ldHJpdDwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTG9tYWtrZWVuIG5pbWkgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBTaXMmYXVtbDtpbmVuIGxvbWFra2VlbiB0dW5uaXN0ZSAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBMaXN0YSB0dW5uZXR1aXN0YSB2aXJoZWlzdCZhdW1sOyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5UYXBhaHR1bWEsIGpvdGEga3V0c3V0YWFuLCBrdW4gTG9tYWtlcmFrZW50YWphbiBsb21ha2UgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuPC9wPg0KPGg0PlBhcmFtZXRyaXQ8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExvbWFra2VlbiBuaW1pIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gU2lzJmF1bWw7aW5lbiBsb21ha2tlZW4gdHVubmlzdGUgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Zhc3RhdXN0dW5uaXN0ZS4gVCZhdW1sO3QmYXVtbDsgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnS2VudHRpZW4gb2xldHVzYXJ2b3Q7IGthdHNvIGxpcyZhdW1sO3RpZXRvYSBtb2R1dWxpbiBvaGplaXN0YSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdLZW50JmF1bWw7biB0dW5uaXN0ZSBzaXMmYXVtbDtpc2lsbGUgdG9pbWlubm9pbGxlJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdMb21ha2tlZW4gbmltaSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0xvbWFra2VlbiB0dW5uaXN0ZSBzaXMmYXVtbDtpc2lsbGUgdG9pbWlubm9pbGxlJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnWWxlaXNldCBwYXJhbWV0cml0IHNpcyZhdW1sO2lzaWxsZSB0b2ltaW5ub2lsbGUnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTk3NTA1ODE5NS0xMzA5NTg0Njk0NzM1JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTM2MTg5NTEyMS4xMzE0ODg4NjQ4LjEzMTQ4ODg2NDguMTMxNDg4ODY0OC4xJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzE0ODg4NjQ4LjEuMS51dG1jc3I9KGRpcmVjdCl8dXRtY2NuPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEzMTQ4ODg2NDgnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFpcmVzIChGb3JtIEJ1aWxkZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEZyb21GRVVQcm9wZXJ0eSddID0gJypFbnZveWVyIGF1eCB1dGlsaXNhdGV1cnMgRkVVIHF1aSBjb3JyZXNwb25kZW50IMOgIHVuZSBjZXJ0YWluZSBwcm9wcmnDqXTDqSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cGUgZGUgY2hhbXAgbm9uIHJlbnNlaWduw6knOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU8OpbGVjdGlvbm5lciB1biAob3UgcGx1c2lldXJzKSBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW4gZGUgY2hhbXAgcmVuc2VpZ27DqSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRMOpYnV0IGRlIGNoYW1wIHJlbnNlaWduw6knOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdMaWduZSBkZSB0ZXh0ZSBzaW1wbGUnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNU51bWJlckZpZWxkJ10gPSAnRW50csOpZSBOb21icmUgSFRNTDUnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdFbnRyw6llIEVtYWlsIEhUTUw1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0VudHLDqWUgVVJMIEhUTUw1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU2l0ZUFkbWluRmllbGQnXSA9ICdBZG1pbmlzdHJhdGlvbiBkdSBzaXRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRGaWVsZCddID0gJ01vdCBkZSBwYXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ01vdCBkZSBwYXNzZSAow6Agbm91dmVhdSBwb3VyIHbDqXJpZmljYXRpb24pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0xpZ25lcyBkZSB0ZXh0ZSBtdWx0aXBsZXMnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnWm9uZSBkZSB0ZXh0ZSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnQm91dG9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0Nhc2Ugw6AgY29jaGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3JvdXBlIGRlIGNhc2VzIMOgIGNvY2hlcic7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdNZW51IGTDqXJvdWxhbnQnOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ01lbnUgZMOpcm91bGFudCBhbm7DqWUnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnU8OpbGVjdGlvbiBtdWx0aXBsZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdTw6lsZWN0aW9ubmVyIHVuIMOpdGF0IGRlcyBVU0EnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnU8OpbGVjdGlvbm5lciB1bmUgUHJvdmluY2UgZHUgQ2FuYWRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnU8OpbGVjdGlvbm5lciB1biBwYXlzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnU8OpbGVjdGlvbm5lciB1bmUgZGF0ZSc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1PDqWxlY3Rpb25uZXIgdW5lIGhldXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnR3JvdXBlIGRlIGJvdXRvbnMgcmFkaW8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkFkcmVzc2VyIHBhciBtYWlsIGxlcyByw6lzdWx0YXRzIGFwcsOocyBjaG9peCBwYXIgbWVudSBkw6lyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F1dmVnYXJkZXIgbGVzIHLDqXN1bHRhdHMgdmVycyB1biBmaWNoaWVyIGFwcsOocyBjaG9peCBwYXIgbWVudSBkw6lyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXV2ZWdhcmRlciBlbiBmaWNoaWVyKHMpIGxlcyByw6lzdWx0YXRzIGRlcyBzw6lsZWN0aW9ucyBtdWx0aXBsZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyaWdlciB2ZXJzIGxhIHBhZ2Ugw6AgcGFydGlyIGRcJ3VuIG1lbnUgZMOpcm91bGFudCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW52b3llciBwYXIgbWFpbCBsZXMgcsOpc3VsdGF0cyBhdXggYWRyZXNzZXMgZm91cm5pZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRpb24gdmlhIGFkcmVzc2UgbWFpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKk1haWwgY2hhbXAgIkZyb20gQWRkcmVzcyIsIGV0IGVudm9pZSBjb3BpZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJyrDiWNyaXJlIGxlcyByw6lzdWx0YXRzIGRhbnMgdW4gZmljaGllcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSddID0gJypFY3JpcmUgbGVzIHLDqXN1bHRhdHMgdmVycyB1biBmaWNoaWVyIMOgIGNoYXF1ZSBzb3VtaXNzaW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9ja2VyIGxlcyByw6lzdWx0YXRzIGRhbnMgbGEgYmFzZSBkZSBkb25uw6llcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvY2tlciBsZXMgcsOpc3VsdGF0cyBwb3VyIGxlIG1vZHVsZSBGb3JtQnJvd3NlciB2MC4zL3YwLjQnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQXBwZWxlciB1bmUgYmFsaXNlIHV0aWxpc2F0ZXVyIGF2ZWMgbGVzIHLDqXN1bHRhdHMgZHUgZm9ybXVsYWlyZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypTb3VtZXR0cmUgw6AgdW5lIHF1ZWxjb25xdWUgYWN0aW9uIHN1ciBsZSBmb3JtdWxhaXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbnZveWVyIHBhciBtYWlsIGF1eCB1dGlsaXNhdGV1cnMgYXlhbnQgZm91cm5pIHVuZSBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypNYWlsIHZlcnMgbFwnYWRtaW5pc3RyYXRldXIgZHUgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW52b3llciBwYXIgZS1tYWlsIGVuIGZvbmN0aW9uIGRlcyBjaGFtcHMgc2Fpc2lzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2F1dCBkZSBwYWdlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmljaGllciDDoCBlbnZveWVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAiRnJvbSBBZHJlc3NlIic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAiRnJvbSBBZHJlc3NlIiDDoCBub3V2ZWF1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAiRnJvbSBOb20iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAiU3VqZXQiJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ0NFbWFpbEFkZHJlc3NGaWVsZCddID0gJ0NoYW1wIGR1IG1haWwgZW4gQ29waWUgQ29uZm9ybWUgKENDKSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXh0ZSBzdGF0aXF1ZSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1MaWVuIHN0YXRpcXVlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGllbiAodXRpbGlzYXRldXIgY29ubnUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctQ2hhbXAgY2FjaMOpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1DaGFtcCBjYWxjdWzDqSc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1FbnRpZXIgdW5pcXVlIChTw6lyaWUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLUFwcGVsIGRcJ3VuZSBiYWxpc2UgdXRpbGlzYXRldXInOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDaGFtcCBDb21wYW55IERpcmVjdG9yeSc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLUNoYW1wIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdjYXNlIGRlIHZhbGlkYXRpb24gw6l0ZW5kdWUnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnU2FucyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bcOpcmlxdWUnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnRW50aWVyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0FkcmVzc2UgbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOdW3DqXJvIGRlIHTDqWzDqXBob25lIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnRG9pdCDDqnRyZSB2w6lyaWZpw6knOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1ZhbGlkZXIgbFwnZXhwcmVzc2lvbiByZWd1bGnDqHJlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ05lIHBhcyB2YWxpZGVyIGxcJ2V4cHJlc3Npb24gcmVndWxpw6hyZSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtcHR5J10gPSAnTmUgcGV1dCDDqnRyZSB2aWRlJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnTsOpY2Vzc2FpcmUnOwokbGFuZ1snbm90X3JlcXVpcmVkJ10gPSAnRmFjdWx0YXRpZic7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTm9uIGRpc3BvbmlibGUnOwokbGFuZ1snZXJyb3JfZW1haWxmcm9tZmV1cHJvcCddID0gJ0VycmV1ciBsb3JzIGR1IHBhcmFtw6l0cmFnZSBkdSBjaGFtcCc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0xlIG1vZHVsZSBHZXN0aW9uIGRlcyB1dGlsaXNhdGV1cnMgZHUgc2l0ZSAoRnJvbnRFbmRVc2VycykgblwnYSBwYXMgw6l0w6kgdHJvdXbDqS4gQ2UgY2hhbXAgbmUgZm9uY3Rpb25uZXJhIHBhcy4nOwokbGFuZ1snZXJyb3Jfbm9mZXVkZWZucyddID0gJ0F1Y3VuZSBwcm9wcmnDqXTDqSBGRVUgdHJvdXbDqWUuIENlIGNoYW1wIG5lIGZvbmN0aW9ubmVyYSBwYXMuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdVbiBjaGFtcCBvYmxpZ2F0b2lyZSBuXCdhIHBhcyDDqXTDqSByZW1wbGknOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdWZXVpbGxleiBlbnRyZXIgdW5lIHZhbGV1ciBwb3VyICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuIG5vbWJyZSBwb3VyICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgY29ycmVjdGUgcG91ciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgZW50acOocmUgcG91ciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBtYWlsIHZhbGlkZSBwb3VyICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0xcJ2FkcmVzc2UgbWFpbCBuZSBjb3JyZXNwb25kIHBhcyDDoCBsYSB2YWxldXIgZGUgIiUgcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWZXVpbGxleiBlbnRyZXIgdW4gbnVtw6lybyBkZSB0w6lsw6lwaG9uZSB2YWxpZGUgcG91ciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ01lcmNpIGRlIHZvdXMgY29ubmVjdGV6IHBvdXIgdXRpbGlzZXIgY2UgZm9ybXVsYWlyZSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICciJXMiIG5lIHNlbWJsZSBwYXMgw6p0cmUgdW5lIGFkcmVzc2UgbWFpbCB2YWxpZGUgISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgblwnYXlhbnQgcGFzIHBsdXMgZGUgJXMgY2FyYWN0w6hyZXMnOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgYXUgbWluaW11bSBkZSAlIHMgY2FyYWN0w6hyZXMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhY3TDqHJlIHV0aWxpc8OpIGNvbW1lICJzw6lwYXJhdGV1ciIgZGFucyBsZXMgZm9ybXVsYWlyZXMgcmXDp3VzIGNvbnRlbmFudCBwbHVzIGRcJ3VuZSB2YWxldXImbmJzcDsnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0lsIHZvdXMgZmF1dCBsYSBwZXJtaXNzaW9uICIlcyIgcG91ciBleMOpY3V0ZXIgY2V0dGUgb3DDqXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdEw6lzb2zDqSAhIFZvdXMgblwnYXZleiBwYXMgbGVzIGRyb2l0cyBzdWZmaXNhbnRzIHBvdXIgYWNjw6lkZXIgw6AgY2V0dGUgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ09yZHJlIGRlcyBjaGFtcHMgbWlzIMOgIGpvdXIuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFpcmUgc3VwcHJpbcOpLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnQ2hhbXAgc3VwcHJpbcOpLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aW9uIG1pc2Ugw6Agam91ci4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdWw6lyaWZpZXogIiVzIiBwb3VyIHBvdXZvaXIgY29udGludWVyLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnVm91cyBkZXZleiBwcsOpY2lzZXIgYXUgbW9pbnMgdW5lIGFkcmVzc2UgZGUgZGVzdGluYXRpb24gISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGUgZm9ybXVsYWlyZSAlcyA/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGUgY2hhbXAgJXMgPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMZXMgb3B0aW9ucyBhdmFuY8OpZXMgbmUgc2Vyb250IGRpc3BvbmlibGVzIHF1ZSBsb3JzcXVlIHF1XCd1biB0eXBlIGRlIGNoYW1wIGF1cmEgw6l0w6kgY2hvaXNpLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0lsIGV4aXN0ZSBkw6lqw6AgdW4gY2hhbXAgIiVzIiB1dGlsaXPDqS4gVXRpbGlzZXogZGVzIG5vbXMgZGUgY2hhbXAgdW5pcXVlcyBvdSBkw6lzYWN0aXZleiBjZXR0ZSBmb25jdGlvbiBkYW5zIGxhIGNvbmZpZ3VyYXRpb24gZGUgRm9ybSBCdWlsZGVyLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnVG91cyBsZXMgY2hhbXBzIGRvaXZlbnQgw6p0cmUgbm9tbcOpcywgc2lub24gZMOpc2FjdGl2ZXogY2V0dGUgZm9uY3Rpb24gZGFucyBsYSBjb25maWd1cmF0aW9uIGRlIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdBdWN1biBjaGFtcCBkw6lzaWduw6kgcG91ciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1lJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMb25ndWV1ciA6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm/DrnRlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyZuYnNwOyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNhcmFjdMOocmVzLic7CiRsYW5nWydvcmRlciddID0gJ09yZHJlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcMOpY2lmacOpXSc7CiRsYW5nWydhZGRlZCddID0gJ2Fqb3V0w6knOwokbGFuZ1sndXBkYXRlZCddID0gJ21pcyDDoCBqb3VyJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1RyaWVyIGxlcyBvcHRpb25zIMOgIGxcJ2V4w6ljdXRpb24mbmJzcDsnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1PDqWxlY3Rpb25uZXotZW4gdW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTw6lsZWN0aW9ubmV6IGxlIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdQb3VyJzsKJGxhbmdbJ3llcyddID0gJ091aSc7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhaXJlcyc7CiRsYW5nWydmaWVsZHMnXSA9ICdjaGFtcHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIGZpY2hpZXJzIHBvc3NpYmxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyZuYnNwOyc7CiRsYW5nWydzYXZlJ10gPSAnU2F1dmVnYXJkZXInOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWyd1cGRhdGUnXSA9ICdNaXNlIMOgIGpvdXInOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXV2ZWdhcmRlciBldCBjb250aW51ZXIgbFwnw6lkaXRpb24nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbiZuYnNwOyc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXF1ZSc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFpcmVzJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxhaXJlICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJm5ic3A7JzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdDaGFtcCByZXF1aXMgbWlzIMOgIGpvdXIuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhaWxsZSBNYXhpbXVtJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyZuYnNwOyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVHlwZXMgZGUgZmljaGllciBhdXRvcmlzw6lzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTGUgZmljaGllciBlbnZvecOpIGVzdCB0cm9wIGxvdXJkICEgTGEgdGFpbGxlIG1heGltdW0gZXN0IGRlIDombmJzcDsnOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdDZSB0eXBlIGRlIGZpY2hpZXIgblwnZXN0IHBhcyBhY2NlcHTDqS4gVmV1aWxsZXogdsOpcmlmaWVyIGxcJ2V4dGVuc2lvbiBkZSB2b3RyZSBmaWNoaWVyLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdFbnZvaSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYWlyZSBJbXBvcnTDqS4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnTFwnaW1wb3J0YXRpb24gZHUgZm9ybXVsYWlyZSBhIMOpY2hvdcOpICEgSWwgeSBhIHVuIHByb2Jsw6htZSBhdmVjIGxlIGZvcm1hdCBkdSBmaWNoaWVyIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIGxpZ25lcyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29sb25uZXMnOwokbGFuZ1snMTJfaG91ciddID0gJ1N1ciAxMiBoZXVyZXMnOwokbGFuZ1snMjRfaG91ciddID0gJ1N1ciAyNCBoZXVyZXMnOwokbGFuZ1snaG91ciddID0gJ0hldXJlJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSZuYnNwOyc7CiRsYW5nWydtZXJpZCddID0gJ03DqXJpZGllbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnT3JkcmUgOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ01lcmNpICEgVm90cmUgZm9ybXVsYWlyZSBhIMOpdMOpIHJlw6d1Lic7CiRsYW5nWydlZGl0J10gPSAnw4lkaXRlcic7CiRsYW5nWydkZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snZGF5J10gPSAnSm91cic7CiRsYW5nWydtb24nXSA9ICdNb2lzJzsKJGxhbmdbJ3llYXInXSA9ICdBbm7DqWUnOwokbGFuZ1snbm9uZSddID0gJyhBdWN1biknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJm5ic3A7JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGTDqXNpbnN0YWxsw6kuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGzDqWUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIG1pcyDDoCBqb3VyIMOgIGxhIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1JldG91ci4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRW52b3llcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdTdWl2YW50Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDb2Now6knOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTm9uIGNvY2jDqSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1ByaW5jaXBhbCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnUGFyYW3DqHRyZXMgZFwnYWZmaWNoYWdlIGR1IEZvcm11bGFpcmUnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Vudm9pIGR1IEZvcm11bGFpcmUnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdPcHRpb25zIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnT3B0aW9ucyBhdmFuY8OpZXMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnR2FiYXJpdCBkdSBGb3JtdWxhaXJlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGxcJ2Vudm9pJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdJbnTDqWdyYXRpb24gZGUgYmFsaXNlIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ3RpdGxlX2ZldV9wcm9wZXJ0eSddID0gJ1Byb3ByacOpdMOpIEZyb250RW5kVXNlcnMnOwokbGFuZ1snaW5mb19mZXVfcHJvcGVydHknXSA9ICdTZXVsZW1lbnQgY2VydGFpbnMgdHlwZXMgZGUgcHJvcHJpw6l0w6kgcGV1dmVudCDDqnRyZSB1dGlsaXPDqXMgcG91ciBjb3Jyb2JvcmVyIChtZW51cyBkw6lyb3VsYW50cywgY2hhbXBzIGRlIHPDqWxlY3Rpb24gbXVsdGlwbGUsIGV0Yy4pLic7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPkxlcyB2YXJpYWJsZXMgU21hcnR5IHNvbnQgYWN0aXZlcyBkYW5zIGNlIGNoYW1wLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWpvdXRlciBwbHVzIGRcJ29wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTdXBwcmltZXIgbGVzIG9wdGlvbnMgc8OpbGVjdGlvbm7DqWVzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWpvdXRlciBkXCdhdXRyZXMgYm/DrnRlcyBkZSB2w6lyaWZpY2F0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnU3VwcHJpbWVyIGxlcyBib8OudGVzIGRlIHbDqXJpZmljYXRpb24gc8OpbGVjdGlvbm7DqWVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWpvdXRlciBkXCdhdXRyZXMgYWRyZXNzZXMgbWFpbCc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1N1cHByaW1lciBsZXMgYWRyZXNzZXMgbWFpbCBzw6lsZWN0aW9ubsOpZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWpvdXRlciBkXCdhdXRyZXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1N1cHByaW1lciBsZXMgZGVzdGluYXRpb25zIHPDqWxlY3Rpb25uw6llcyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1Ryb3AgZGUgbWFpbHMgc29udCBnw6luw6lyw6lzIMOgIHBhcnRpciBkZSB2b3RyZSBhZHJlc3NlIElQICEgTGUgc3lzdMOobWUgYW50aS1zcGFtIGEgw6l0w6kgYWN0aXbDqSBldCBsZXMgYWRtaW5pc3RyYXRldXJzIGR1IHNpdGUgZW4gb250IMOpdMOpIGluZm9ybcOpcy4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnRGUgcG9zc2libGVzIHNwYW1zIHByb3ZlbmFudCBkZSBsXCdJUCAlcyBvbnQgw6l0w6kgc3RvcHDDqXMuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSw6lvcmdhbmlzZXIgbGVzIGNoYW1wcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZhbGV1ciBkb25uw6llIDogJXMnOwokbGFuZ1sndGl0bGVfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdDYXRhbG9nZSBkZXMgY2hhbXBzIGRcJ2F0dHJpYnV0JzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyIC8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIgLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIgLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAicmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlIjxiciAvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxiciAvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAibXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzIjxiciAvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxiciAvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyIC8+DQo8YnIvPic7CiRsYW5nWyd0aXRsZV90ZXh0ZmllbGRfbGFiZWwnXSA9ICdJbnRpdHVsw6kgZGUgY2hhbXAgZGUgdGV4dGUnOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdNb250cmVyIHVuIGNoYW1wIHRleHRlID8nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnVW5lIGV4cHJlc3Npb24gcmVndWxpw6hyZSBwb3VyIGZpbHRyZXIgcGFyIG5vbSBsZXMgaXRlbXMgZGUgQ2F0YWxvZ2VyJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnTGEgaGF1dGV1ciBkdSBjaGFtcCBtdWx0aXBsZSc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnTm9tIGRlIGxcJ2V4cHJlc3Npb24gcmVndWxpw6hyZSBwb3VyIENhdGFsb2dlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdIYXV0ZXVyIGR1IGNoYW1wJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rvc3NpZXIgZGUgZGVzdGluYXRpb24gcG91ciBsZXMgZmljaGllcnMgY3LDqWVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQmFsaXNlIHV0aWxpc2F0ZXVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIGRlIHJldG91ciBwb3VyIGxlcyBsaWVucyBkXCd1cGxvYWRzIChlbnZvaXMpJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnRW52b3nDqSBhdmVjIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdDYXTDqWdvcmllIGRcJ1VwbG9hZHMgKGVudm9pcyknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdFbnZveWVyIGNlIGZpY2hpZXIgYXUgbW9kdWxlIGRcJ3VwbG9hZCc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdBdXRvcmlzZXIgbFwnw6ljcmFzZW1lbWVudCBkZXMgZmljaGllcnMgZMOpasOgIGV4aXN0YW50cyBsb3JzIGRlIGxcJ3VwbG9hZCA/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnTGUgZmljaGllciB1cGxvYWTDqSBkb2l0LWlsIMOpY3Jhc2VyIGxlIGZpY2hpZXIgcHLDqWPDqWRlbW1lbnQgdXBsb2Fkw6kgc1wnaWwgYSBsZSBtw6ptZSBub20gPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdQZXJtZXQgbGUgcmVtcGxhY2VtZW50JzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnTm9uIHJlbXBsYWPDqSc7CiRsYW5nWydmaWxlX2FscmVhZHlfZXhpc3RzJ10gPSAnTGUgZmljaGllciAlcyBleGlzdGUgZMOpasOgLCBldCBuZSBwZXV0IHBhcyDDqnRyZSDDqWNyYXPDqS4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXSA9ICdOb20gZHUgZmljaGllciBnYWJhcml0JzsKJGxhbmdbJ29yaWdpbmFsX2ZpbGVfZXh0ZW5zaW9uJ10gPSAnRXh0ZW5zaW9uIG9yaWdpbmFsZSBkdSBmaWNoaWVyIChsZSAiLiIgY29tcHJpcyknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdTdXBwcmltZXIgbGUgbm9tIGRlIGZpY2hpZXIgZGFucyBsZXMgbWFpbHMgZXQgZGFucyBsZXMgZm9ybXVsYWlyZXMgcG91ciBsXCd1dGlsaXNhdGV1ciBmaW5hbCc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19hdHRhY2htZW50J10gPSAnRW1ww6pjaGVyIGRcJ2F0dGFjaGVyIGRlcyBmaWNoaWVycyBhdXggZW1haWxzJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdQb3VyIHJlbm9tbWVyIHVuIGZpY2hpZXIgcG91ciBsXCd1cGxvYWQsIGNyw6lleiBsZSBnYWJhcml0IGljaS4gTGFpc3NleiB2aWRlIHBvdXIgcHLDqXNlcnZlciBsZSBub20gZHUgZmljaGllciBvcmlnaW5hbCc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMw6lnZW5kZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ0xvbmd1ZXVyIG1heGltdW0mbmJzcDsnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdJbnRpdHVsw6kgZGUgbGEgY2FzZSDDoCBjb2NoZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdJbnRpdHVsw6kgZHUgYm91dG9uIHJhZGlvJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWxldXIgY29jaMOpZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxldXIgbm9uIGNvY2jDqWUmbmJzcDsnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0TDqXRhaWxzIGRlcyBncm91cGVzIGRlIGNhc2VzIMOgIGNvY2hlciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTdXBwcmltZXIgPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0ZSBwZXJzb25uYWxpc2FibGUgInPDqWxlY3Rpb24iJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbGV1ciBzw6lsZWN0aW9ubsOpZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOb20gZFwnYWZmaWNoYWdlIHPDqWxlY3Rpb25uw6kmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTdWpldCBzw6lsZWN0aW9ubsOpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTw6lsZWN0aW9uIHBhciBkw6lmYXV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU8OpbGVjdGlvbiBwYXIgZMOpZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1PDqWxlY3Rpb24gcGFyIGTDqWZhdXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOb20gZGUgbFwnb3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbGV1ciBzb3VtaXNlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcHRpb25zIHBhciBtZW51IGTDqXJvdWxhbnQmbmJzcDsnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wdGlvbnMgZGUgU8OpbGVjdGlvbiBtdWx0aXBsZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnQWRyZXNzZSBtYWlsIGRlIGRlc3RpbmF0aW9uJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tIGR1IGZpY2hpZXIgZGUgZGVzdGluYXRpb24mbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIkZyb20gTmFtZSIgcG91ciBsZSBtYWlsJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVdGlsaXNlciB1bmUgdmFsaWRhdGlvbiBkXCdhZHJlc3NlIG1haWwgcGx1cyBzb3VwbGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQXV0b3Jpc2VyIGxlcyBhZHJlc3NlcyBtYWlsIHNhbnMgZXh0ZW5zaW9uIChjLmEuZCA6IGFjY2VwdGVyICJub21AZG9tYWluZSIgw6AgbGEgcGxhY2UgZGUgIm5vbUBkb21haW5lLmNvbSIgcmVxdWlzIHBhciBkw6lmYXV0KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICciRnJvbSBBZHJlc3NlIiBwb3VyIE1haWwgZGUgbFwnZXhww6lkaXRldXImbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbmNvZGFnZSBkZXMgY2FyYWN0w6hyZXMgZHUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTWVudSBkw6lyb3VsYW50IGJhc8OpIHN1ciBsZXMgZMOpdGFpbHMgZGUgbFwnZW1haWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnTm9tIGR1IGZpY2hpZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0xpZ25lIGR1IHN1amV0IGRhbnMgbGUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb20gZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1dCBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUHLDqnQgw6Agw6p0cmUgZMOpcGxvecOpJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdQYXMgcHLDqnQnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2Ugb8O5IHJlZGlyaWdlciBhcHLDqHMgbFwnZW52b2kgZHUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnQWpvdXRlciB1biBjaGFtcCBhdSBmb3JtdWxhaXJlIHBvdXIgcG91dm9pciBtb2RpZmllciBsZXMgY29udHJpYnV0aW9ucyBkZXMgdXRpbGlzYXRldXJzLiBWb3VzIHBvdXZleic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3V0aWxpc2VyIGNlIHJhY2NvdXJjaSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2hhbXBzIGR1IEZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBkdSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ01vbnRyZXIgbGVzIGNoYW1wcyBBbGlhcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgbW9udHJlcmEgbGVzIGFsaWFzIGRlIGNoYW1wcyBsb3JzIGRlIGxcJ2Fqb3V0IG91IGRlIGxcJ8OpZGl0aW9uIGRcJ3VuIGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05vbSBkZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0FsaWFzIGR1IGNoYW1wIGV0IGF0dHJpYnV0IGlkIERPTSAoaWQgQ1NTKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdEw6l0YWlscyBkZXMgZ3JvdXBlcyBkZSBib3V0b25zIHJhZGlvJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUeXBlIGRlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdwb3VyIGNyw6llciB1biBmb3JtdWxhaXJlIHJhcGlkZW1lbnQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0Fqb3V0ZXIgdW4gbm91dmVhdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ01vbnRyZXIgbGEgdmVyc2lvbiBkZSBGb3JtIEJ1aWxkZXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0NlbGEgaW5kaXF1ZXJhIGRhbnMgdW4gY29tbWVudGFpcmUgbGEgdmVyc2lvbiBpbnN0YWxsw6llIGR1IG1vZHVsZSBGb3JtIEJ1aWxkZXIuIFBhcmZvaXMgdXRpbGUgcG91ciBkw6lidWd1ZXIuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBam91dGVyIHVuIG5vdXZlYXUgY2hhbXAnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGV4dGUgZHUgYm91dG9uIGRcJ2Vudm9pIGR1IGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdUZXh0ZSBkdSBib3V0b24nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBam91dGVyIGR1IEphdmFzY3JpcHQgYXUgYm91dG9uIGRcJ2Vudm9pIGZpbmFsIHBvdXIgYWlkZXIgw6AgbGEgcHLDqXZlbnRpb24gZGVzIGVudm9pcyBtdWx0aXBsZXMgKHNwYW0pID8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0Fqb3V0ZXIgdW4gc2NyaXB0IHPDqWN1cmlzw6kmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHRlIGR1IGJvdXRvbiAic3VpdmFudCIgZHUgZm9ybXVsYWlyZSAodXRpbGlzw6kgcG91ciBsZXMgZm9ybXVsYWlyZXMgY29tcHJlbmFudCBwbHVzaWV1cnMgcGFnZXMpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0ZSBkdSBib3V0b24gInByw6ljw6lkZW50IiBkdSBmb3JtdWxhaXJlICh1dGlsaXPDqSBwb3VyIGxlcyBmb3JtdWxhaXJlcyBjb21wcmVuYW50IHBsdXNpZXVycyBwYWdlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRpb24gZHUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdDaGFtcCDDoCB2YWxpZGVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0lkIENTUyBwb3VyIGNlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ2xhc3NlIENTUyBkZSBjZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NsYXNzZSBDU1MgZGUgY2UgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0JhbGlzZSB1dGlsaXNhdGV1ciDDoCBhcHBlbGVyIGF2YW50IGRcJ2FmZmljaGVyIGxlIGZvcm11bGFpcmUgbGEgcHJlbWnDqHJlIGZvaXMgKGFwcGVsw6llIHVuZSBzZXVsZSBmb2lzKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdCYWxpc2UgdXRpbGlzYXRldXIgw6AgYXBwZWxlciBhdmFudCBkXCdhZmZpY2hlciBsZSBmb3JtdWxhaXJlIChhcHBlbMOpZSDDoCBjaGFxdWUgcGFnZSBwb3VyIGxlcyBmb3JtdWxhaXJlcyBtdWx0aXBhZ2VzKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0JhbGlzZSB1dGlsaXNhdGV1ciDDoCBhcHBlbGVyIHBlbmRhbnQgbGEgdmFsaWRhdGlvbiBkdSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sZSBpbmRpcXVhbnQgdW4gY2hhbXAgb2JsaWdhdG9pcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0NlIGNoYW1wIGV4aWdlIHVuZSByw6lwb25zZSBvYmxpZ2F0b2lyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSW50aXR1bMOpIGNhY2jDqSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdNYXNxdWVyIGxlIG5vbSBkZSBjZSBjaGFtcCBkYW5zIGxlIGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTGEgbG9uZ3VldXIgbWF4aW1hbGUgZHUgY29udGVudSBkXCd1biBjaGFtcCAoMCBvdSB2aWRlIHBhcyBkZSBsaW1pdGUpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdUZXh0ZSBzdGF0aXF1ZSDDoCBhZmZpY2hlciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgmbmJzcDsnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ05vbWJyZSBkZSBsaWduZXMgw6AgYWZmaWNoZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnTGVjdHVyZSBzZXVsZSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnUGFzIGRlIHPDqWxlY3Rpb24gcGFyIGTDqWZhdXQmbmJzcDsnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIGRlIHJlZGlyZWN0aW9uIGFwcsOocyBhY2NlcHRhdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnQ2V0dGUgZXhwcmVzc2lvbiByw6lndWxpw6hyZSBzZXJhIHNldWxlbWVudCB1dGlsaXPDqWUgc2kgInR5cGUgZGUgdmFsaWRhdGlvbiIgZXN0IG1pcyBzdXIgdW5lIG9wdGlvbiBhcHBhcmVudMOpZSByZWdleC4gSW5jbHV0IHVuIHN0eWxlIFBlcmwgcmVnZXggY29tcGxldCwgaW5jbHVhbnQgbGVzIHNsYXNoZXMgZGUgZMOpYnV0IGV0IGZpbiBhaW5zaSBxdWUgbGVzIGZsYWdzIChleGVtcGxlIDogIi9pbWFnZVwuKFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcXVpcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0NhY2hlciBsZXMgZXJyZXVycyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVHlwZSBkXCdhZmZpY2hhZ2UgZHUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnQ2FjaGVyIGF1eCB1dGlsaXNhdGV1cnMgbFwnYWZmaWNoYWdlIGRlcyBtZXNzYWdlcyBkXCdlcnJldXIgb3UgZGUgZGVidWdhZ2UuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkdSBtYWlsJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1RhaWxsZSBtYXhpbXVtIHBvdXIgbFwnZW52b2kgZGUgZmljaGllciAoa2lsb2J5dGVzKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0NldHRlIGxpbWl0YXRpb24gZXN0IGVuIHN1cyBkZXMgbGltaXRlcyBwaHAgb3UgZGUgY2VsbGVzIGRlIGxhIGNvbmZpZ3VyYXRpb24gZHUgc2VydmV1ciB3ZWInOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ1LDqXBlcnRvaXJlIGRcJ2VucmVnaXN0cmVybWVudCBkZXMgZmljaGllcnMmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zIGF1dG9yaXPDqWVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyZXIgdW5lIGxpc3RlIHPDqXBhcsOpZSBwYXIgdW4gY2FyYWN0w6hyZSBhdXRyZSBxdWUgbGUgcG9pbnQsIChleGVtcGxlIDogImpwZywgZ2lmLCBqcGVnIikuIExlcyBlc3BhY2VzIHNlcm9udCBpZ25vcsOpcy4gTGFpc3NlciB2aWVyZ2Ugc2lnbmlmaWUgImF1Y3VuZSByZXN0cmljdGlvbiIuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdBZmZpY2hlciBsZXMgcmVzdHJpY3Rpb25zID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnQWZmaWNoZXIgbGVzIHJlc3RyaWN0aW9ucyBkZSB0YWlsbGVzIGV0IGRcJ2V4dGVuc2lvbnMgcG91ciBsZSBjaGFtcCBkXCd1cGxvYWQgPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCDDoCB1dGlsaXNlciBwb3VyIGFmZmljaGVyIGxlIGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIHN1ciAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnQ2hhbXAgc2FucyBvcHRpb24gYXZhbmPDqWUuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0ZSDDoCByZW52b3llciBwb3VyIGxlcyB2YWxldXJzIGRlIGNoYW1wIG5vbiBzcMOpY2lmacOpZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0F1dG9yaXNlciBsXCdham91dCByYXBpZGUgZGVzIGNoYW1wcyBkZSBmb3JtdWxhaXJlIMOgIGxcJ2FpZGUgZFwndW4gbWVudSBkw6lyb3VsYW50ID8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdBY2PDqHMgcmFwaWRlIGF1IGZvcm11bGFpcmUgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnQWpvdXQgcmFwaWRlIGR1IGNoYW1wJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgbGltaXRlcmEgw6AgMTAgZW1haWxzIHBhciBoZXVyZSBsYSB0cmFuc21pc3Npb24gZGVzIGZvcm11bGFpcmVzIHBvdXIgdW5lIG3Dqm1lIGFkcmVzc2UgSVAuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ09wdGVyIHBvdXIgZGVzIHJlc3RyaWN0aW9ucyBhbnRpLXNwYW0gPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnTW9udHJlciBsZXMgSUQgZGVzIGNoYW1wcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDb2NoZXIgY2V0dGUgY2FzZSBhdXRvcmlzZXJhIGxcJ2FmZmljaGFnZSBkZXMgSUQgZGUgY2hhbXBzIHBlbmRhbnQgbFwnYWpvdXQgb3UgbFwnw6lkaXRpb24gZHUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnSW1wb3J0ZXIgdW4gZm9ybXVsYWlyZSDDoCBwYXJ0aXIgZFwndW4gZmljaGllciBYTUwmbmJzcDsnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1V0aWxpc2VyIGNlIG5vbSBkZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdJbXBvcnRlciB1biBmb3JtdWxhaXJlIGRlIGZvcm1hdCBYTUwmbmJzcDsnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVdGlsaXNlciBjZXQgYWxpYXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0fDqW7DqXJlciB1biBtYWlsIGVuIEhUTUwgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1JlbXBsaXIgYXV0b21hdGlxdWVtZW50ID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ1JlbXBsaXIgYXV0b21hdGlxdWVtZW50IGF2ZWMgbFwnVVJMIGRlIGxhIHBhZ2UgY29udGVuYW50IGxlIGZvcm11bGFpcmUgPyAoQ2VjaSByw6nDqWNyaXJhIGxlIGxpZW4gZGUgbGEgcGFnZSBjaS1kZXNzb3VzKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdMaWVuIFVSTCBwYXIgZMOpZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdUZXh0ZSBwYXIgZMOpZmF1dCBkdSBsaWVuJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaWVuIHBvdXIgbGEgcGFnZSBkdSBzaXRlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1ZvdXMgcG91dmV6IHV0aWxpc2VyPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IHBvdXIgcHJvdMOpZ2VyIGxcJ2Vudm9pIGRlIHZvcyBmb3JtdWxhaXJlcyBlbiBpbnN0YWxsYW50IGxlIG1vZHVsZSBDYXB0Y2hhLiBQb3VyIHBsdXMgZFwnaW5mb3JtYXRpb25zLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5zdWl2ZXogbGUgcHJvamV0IGR1IENhcHRjaGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1V0aWxpc2VyIENhcHRjaGEgcG91ciBwcm90w6lnZXIgbFwnZW52b2kgZGUgdm9zIGZvcm11bGFpcmVzID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NvY2hlciBpY2kgcG91ciBwcm90w6lnZXIgdm9zIGZvcm11bGFpcmVzIGF2ZWMgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdWZXVpbGxleiBjb25maXJtZXIgcXVlIHZvdXMgblwnw6p0ZXMgcGFzIHVuIGF1dG9tYXRlIGVuIHJlY29waWFudCBsZXMgY2FyYWN0w6hyZXMgcHLDqXNlbnRzIHN1ciBsXCdpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRWNoZWMgZGUgbGEgdsOpcmlmaWNhdGlvbiBDYXB0Y2hhJm5ic3A7JzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdMZSBjb2RlIHJlbnRyw6kgZGlmZsOocmUgZGUgbFwnaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1RleHRlIGRcJ2FpZGUgY29uY2VybmFudCBDYXB0Y2hhJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ05lIHBhcyBlbnZveWVyIGxlcyB2YWxldXJzIG5vbi1jb2Now6llcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NvY2hleiBjZWNpIHNpIHZvdXMgdm91bGV6IHNldWxlbWVudCBxdWUgbGVzIGNhc2VzIGNvY2jDqWVzIHJldG91cm5lbnQgZGVzIHZhbGV1cnMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMYWJlbCBkdSBsaWVuJm5ic3A7JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdVUkwgZGUgZGVzdGluYXRpb24gZHUgbGllbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1PDqWxlY3Rpb25uw6kgcGFyIGTDqWZhdXQgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnSGV1cmVzIGRlIDAgw6AgMjQgPyAmbmJzcDsnOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdtYXRpbic7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnYXByw6hzIG1pZGknOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdBdmVjIGRlcyBiYWxpc2VzIFNtYXJ0eSBkYW5zIGxlcyBjaGFtcHMgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnTGlnbmVzIChub3RlIDogcGV1dCDDqnRyZSBtb2RpZmnDqSB2aWEgQ1NTKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sb25uZXMgKG5vdGUgOiBwZXV0IMOqdHJlIG1vZGlmacOpIHZpYSBDU1MpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0FjY3VlaWwgLSBEw6l0YWlscyBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdQYXIgZMOpZmF1dCDDoCB2aWRlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ1BhciBkw6lmYXV0IMOgIHZpZGUgKGTDqWNvY2jDqSBwYXIgZMOpZmF1dCDDoCBsYSBkYXRlIGR1IGpvdXIpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdBZmZpY2hhZ2UgbG9naW4gdXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdBZmZpY2hhZ2UgcHLDqW5vbSB1dGlsaXNhdGV1ciA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnQWZmaWNoYWdlIG5vbSB1dGlsaXNhdGV1ciA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnTGlzdGUgZGVzIHV0aWxpc2F0ZXVycyBwb3VyIGxlIGdyb3VwZSBzcMOpY2lmacOpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0Rvbm7DqWVzIGNyeXB0w6llcyBlbnJlZ2lzdHLDqWVzIGRhbnMgbGEgYmFzZSBkZSBkb25uw6llcyc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdCBkZSBjcnlwdGFnZSBkZXMgZG9ubsOpZXMnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGhyYXNlIHNlY3LDqHRlIG91IGNoZW1pbiB2ZXJzIGxlIGZpY2hpZXIgY29udGVuYW50IGxhIHBocmFzZS4gKFNpIHZvdXMgdXRpbGlzZXogT3BlblNTTCwgY1wnZXN0IGxhIHBocmFzZSBzZWNyw6h0ZSBwb3VyIGxhIGNsw6kgcHJpdsOpZSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFjaGVyIGxlcyBjaGFtcHMgZGUgdHJpID8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdDbMOpIHByaXbDqWUgw6AgdXRpbGlzZXIgcG91ciBsZSBjcnlwdGFnZSBkZXMgZG9ubsOpZXMnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdDZWNpIGhhY2hlIGxlcyBjaGFtcHMgZGUgdHJpLCBtYWlzIGxhaXNzZSBsZXMgcHJlbWnDqHJlcyBsZXR0cmVzIG5vbiBjcnlwdMOpZXMuIENyeXB0b2dyYXBoaXF1ZW1lbnQsIGNlbGEgY3LDqWUgdW5lIHZ1bG7DqXJhYmlsaXTDqSwgbWFpcyByZXN0ZSB1biBjb21wcm9taXMgYWNjZXB0YWJsZSBwb3VyIHVuZSBtYWpvcml0w6kgZFwndXRpbGlzYXRldXJzIGVudHJlIGxhIHPDqWN1cml0w6kgZXQgbGEgcG9zc2liaWxpdMOpIGRlIHRyaWVyIGxlcyBlbnJlZ2lzdHJlbWVudHMuIExlIHRyaSBkZXZpZW50IGFwcHJveGltYXRpZiwgbWFpcyBkZW1ldXJlIGRlIHF1YWxpdMOpIGNvcnJlY3RlLiBTaSB2b3VzIG5cJ3V0aWxpc2V6IHBhcyBjZXR0ZSBvcHRpb24sIGxlcyBjaGFtcHMgZGUgdHJpIHNvbnQgZW5yZWdpc3Ryw6lzIGVuIHRleHRlIGJydXQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnRW5yZWdpc3RyZW1lbnQgY3J5cHTDqSBub24gZGlzcG9uaWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ01lcmNpIGRcJ2luc3RhbGxlciBsZSBtb2R1bGUgT3BlblNTTCBvdSBtY3J5cHQgc2kgdm91cyBzb3VoYWl0ZXogYWN0aXZlciBsZSBjcnlwdGFnZSBkZSBiYXNlIGRlIGRvbm7DqWVzLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdWw6lyaWZpZXogcXVlIHZvdXMgYXZleiBsZXMgZm9uY3Rpb25zIENVUkwgYWN0aXbDqXMgZGFucyB2b3RyZSBpbnN0YWxsYXRpb24gZGUgUEhQLiBWb2lyIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ0V4w6ljdXRlciBlbiBtb2RlIE1MRSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlbWVudHMvc3VwcG9ydCBwb3VyIENNU01TIE11bHRpbGluZ3VlIEVkaXRpb24uIE5lIGNvY2hleiBwYXMgY2V0dGUgb3B0aW9uIHNpIHZvdXMgblwndXRpbGlzZXogcGFzIGxhIHZlcnNpb24gTUxFLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdBc3N1cmV6LXZvdXMgcXVlIHZvdXMgc8OpbGVjdGlvbm5leiBsYSBjbMOpIHByaXbDqWUgcXVpIGVzdCBhcHByb3ByacOpIHBvdXIgbGUgY2VydGlmaWNhdCBxdWUgdm91cyB1dGlsaXNleiBwb3VyIGxlIGNyeXB0YWdlICEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnQmlibGlvdGjDqHF1ZSBkZSBjcnlwdGFnZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDb2NoZXogY2V0dGUgb3B0aW9uIHBvdXIgY3J5cHRlciBsZXMgZG9ubsOpZXMgc3RvY2vDqWVzLiBDZXR0ZSBvcHRpb24gcmVuZCBwbHVzIGRpZmZpY2lsZSAobWFpcyBwYXMgaW1wb3NzaWJsZSkgbFwnYWZmaWNoYWdlIGRlIGxcJ2luZm9ybWF0aW9uIHBvdXIgbGVzIHBpcmF0ZXMgaW5mb3JtYXRpcXVlcy4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdMZXMgb3B0aW9ucyBjaS1kZXNzb3VzIHNcJ2FwcGxpcXVlbnQgdW5pcXVlbWVudCBzaSB2b3VzIHV0aWxpc2V6IGxhIGJpYmxpb3Row6hxdWUgZGUgY3J5cHRhZ2UgT3BlblNTTCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdCaWJsaW90aMOocXVlIGRlIGNyeXB0YWdlJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdCaWJsaW90aMOocXVlIE9wZW5TU0wnOwokbGFuZ1snbWNyeXB0J10gPSAnQmlibGlvdGjDqHF1ZSBQSFAgbWNyeXB0JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnSW50ZXJmYWNlIEZyb250ZW5kIFVzZXInOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdNZXJjaSBkXCdpbnN0YWxsZXIgbGUgbW9kdWxlIEZyb250ZW5kIFVzZXIgcG91ciBjb25uZWN0ZXIgdW4gZm9ybXVsYWlyZSBldCBzZXMgZG9ubsOpZXMgw6AgdW4gdXRpbGlzYXRldXIgc3DDqWNpZmlxdWUnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NvY2hleiBjZXR0ZSBvcHRpb24gcG91ciB2ZXJyb3VpbGxlciBsXCdhY2PDqHMgZGVzIGRvbm7DqWVzIMOgIGxcJ3V0aWxpc2F0ZXVyIGNvbm5lY3TDqSBzdXIgbGUgc2l0ZS4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0NyeXB0YWdlJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydGVyIGxhIHLDqWbDqXJlbmNlIGRlIGZvcm11bGFpcmUgdmVycyB1biBVRFQgZW4gdGFudCBxdWUgJHBhcmFtc1tcJ0ZPUk1cJ10/IChuZSBwYXMgZmFpcmUgY2VsYSBzaSB2b3VzIHV0aWxpc2V6IHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ1VSTCBjb21wbMOodGUgeSBjb21wcmlzIGxlIHByb3RvY29sZSBldCBsZSBjaGVtaW4gKHBhciBleGVtcGxlLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdVUkwgZHUgZm9ybXVsYWlyZSBkZSBzb3VtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ03DqXRob2RlIGR1IGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcHBlciBsZSBjaGFtcCAiJXMiIMOgIGxhIHZhcmlhYmxlIGRlIHNvdW1pc3Npb24gZGUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnU291bWlzc2lvbiBhZGRpdGlvbm5lbGxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ1RvdXQgY2UgcXVpIHBldXQgw6p0cmUgYWpvdXTDqSDDoCBsYSBjaGFyZ2UgZGUgbFwnZW52b2ksIHNvdXMgZm9ybWUgZFwnVVJMIChwYXIgZXguLCAidXNlcj1zdGV2ZStqb2JzJmVtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdXJlIGRhbnMgbGUgY2hhbXAgZGUgc291bWlzc2lvbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnT3JkcmUgZHUgY2hhbXAgY29tcG9zYW50IGRhdGUgKHBvdXIgbFwnZW50csOpZSknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnTGVzIGRvbm7DqWVzIHNlcm9udCBzdG9ja8OpZXMgZGFucyB1biBmb3JtYXQgWE1MIGRhbnMgbGEgdGFibGUgZGUgbGEgYmFzZSBbcHLDqWZpeGVdX21vZHVsZV9mYl9mcm9tYnJvd3Nlcic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJldXIgISBTb2l0IGxlIGZvcm11bGFpcmUgbmUgcG9zc8OoZGUgYXVjdW4gYXJyYW5nZW1lbnQgZGUgZm9ybV9idWlsZGVyLCBzb2l0IGlsIGEgw6ljaG91w6kgw6AgaW5zdGFuY2llciAoZW4gcmFpc29uIGRlIHByb2Jsw6htZXMgZGUgbcOpbW9pcmUgPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXRpbGlzZXIgIm0iIHBvdXIgbW9pcywgImQiIHBvdXIgam91ciwgYW5kICJ5IiBwb3VyIGFubsOpZS4gU8OpcGFyZXogbGVzIGl0ZW1zIHBhciBkZXMgdGlyZXRzLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnU2V1bGVtZW50IHBvdXIgbGUgZ3JvdXBlICVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0FmZmljaGFnZSB1dGlsaXNhdGV1ciA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXRpbGlzZXIgdW4gbm9tYnJlIGFsw6lhdG9pcmUgw6AgbGEgcGxhY2UgZFwndW4gbm9tYnJlIHN0YXRpcXVlJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdDb21iaWVuIGRlIG5vbWJyZXMgw6AgZ8OpbsOpcmVyIGRhbnMgbGUgcHJvY2Vzc3VzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0NlIGNoYW1wIHBldXQgw6p0cmUgbGFpc3PDqSB2aWRlJm5ic3A7JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBwb3VyIGdhYmFyaXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIGF1dG9yaXPDqWVzJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIGRcJ2Vudm9pJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdWb3RyZSBzZXJ2ZXVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0FkcmVzc2UgSVAgZGUgbGEgcGVyc29ubmUgdXRpbGlzYW50IGxlIGZvcm11bGFpcmUnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGRlIGxhIHBhZ2UgY29udGVuYW50IGxlIGZvcm11bGFpcmUnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnVmVyc2lvbiBkZSBGb3JtQnVpbGRlcic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYnVsYXRpb24nOwokbGFuZ1snaGVscF9pZ25vcmVkX2lmX3VwbG9hZCddID0gJyhDZSBjaGFtcCBlc3QgaWdub3LDqSBzaSB2b3VzIHV0aWxpc2V6IGxlIG1vZHVsZSBVcGxvYWRzIHBvdXIgZ8OpcmVyIGxlcyBmaWNoaWVycyknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdMZXMgYXV0cmVzIG5vbXMgZGUgY2hhbXBzIHBldXZlbnQgw6p0cmUgdXRpbGlzw6lzIGRlIGZhw6dvbiBpbnRlcmNoYW5nZWFibGUgKHBhcnRpY3VsacOocmVtZW50IHV0aWxlIHNpIFNtYXJ0eSBibG9xdWUgc3VyIGxlcyBjYXJhY3TDqHJlcyBBU0NJSSBlbiBkZWhvcnMgZGUgMzItMTI2KS4gPGJyIC8+TGVzIGF1dHJlcyBjaGFtcHMgc2Vyb250IGRpc3BvbmlibGVzIHNpIHZvdXMgbGVzIGFqb3V0ZXIgYXUgZm9ybXVsYWlyZS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdVbmUgYXV0cmUgbWFuacOocmUgZFwnYWNjw6lkZXIgYXV4IHZhbGV1cnMgZGUgY2hhbXAgcGV1dCBzZSBmYWlyZSB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIG/DuSBjaGFxdWUgY2hhbXAgZXN0IHVuIG9iamV0IGNvbnRlbmFudCA6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj5uYW1lPC90ZD48dGQgY2xhc3M9Im9kZCI+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPmlkPC90ZD48dGQgY2xhc3M9Im9kZCI+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5wYXIgZXhlbXBsZTwvZW0+LCB2b3VzIHBvdXZleiB1dGlsaXNlciAieyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnQ29uc3VsdGVyIGxlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZnIvZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD0iX2JsYW5rIj5tYW51ZWwgUEhQPC9hPiBwb3VyIHZvdXMgYWlkZXIuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJm5ic3A7JzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0NoYW1wIHJlcHLDqXNlbnTDqSZuYnNwOyc7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3DDqWNpZmlleiB1biBmaWNoaWVyIHNpdHXDqSBkYW5zIGxlIGRvc3NpZXIgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLy4gQ2UgY2hhbXAgZXN0IGlnbm9yw6kgc2kgdm91cyB1dGlsaXNlciB1biBmaWNoaWVyIGRlIHR5cGUgVFhULic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+DQpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+DQombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4NCkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gIkJhc2ljIi48YnIgLz4NClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICJSVEYiIGFzIEZpbGUgVHlwZSBhbmQgIkFkdmFuY2VkIiBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ1BvdXIgbGVzIGZpY2hpZXJzIFRYVCwgY2VjaSBzZXJhIHBsYWPDqSBlbiB0w6p0ZSBkdSBmaWNoaWVyLiBQb3VyIFJURiwgY2VsYSByZW1wbGFjZXJhIGxhIGNoYcOubmUgJSVIRUFERVIlJSBkYW5zIGxlIGdhYmFyaXQuJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdQb3VyIGxlcyBmaWNoaWVycyBUWFQsIGNlY2kgc2VyYSBwbGFjw6kgw6AgbGEgZmluIGR1IGZpY2hpZXIuIFBvdXIgUlRGLCBjZWxhIHJlbXBsYWNlcmEgbGEgY2hhw65uZSAlJUZPT1RFUiUlIGRhbnMgbGUgZ2FiYXJpdC4nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICfCqyBSZXRvdXIgYXUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3LDqWVyIHVuIG1vZMOobGUgZGUgZ2FiYXJpdCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcsOpZXIgdW4gbW9kw6hsZSBkZSBnYWJhcml0IEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcsOpZXIgdW4gbW9kw6hsZSBkXCdlbnTDqnRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnQ3LDqWVyIHVuIGdhYmFyaXQgZGUgcGllZCBkZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3LDqWVyIHVuIG1vZMOobGUgZFwnZW50w6p0ZSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd1bmUgdGFidWxhdGlvbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkXCd1bmUgbGlnbmUgcG91ciBsZXMgZmljaGllcnMgY3LDqWVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnR2FiYXJpdCBkdSBoZWFkZXIgKGVuLXTDqnRlKSBkZXMgZmljaGllcnMgY3LDqWVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAnR2FiYXJpdCBwb3VyIGxlIHBpZWQgZGUgcGFnZSBkdSBmaWNoaWVyIGRlIHNvcnRpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBSVEYgw6AgdXRpbGlzZXInOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdHYWJhcml0IHBvdXIgbGEgc29ydGllJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdHlwZSddID0gJ0Nob2lzaXNzZXogdW4gdHlwZSBkZSBmaWNoaWVyIMOgIHV0aWxpc2VyJzsKJGxhbmdbJ3RpdGxlX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQ2hvaXNpc3NleiB1biBnYWJhcml0IFJURic7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIMOgIHN1aXZyZSBwb3VyIGNvbmZpcm1lciBsZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsZXVyIChyZWdhcmRleiBkYW5zIG9uZ2xldHMgIk9wdGlvbnMgYXZhbmPDqWVzIiBzaSB2b3VzIHV0aWxpc2V6IGRlcyBiYWxpc2VzIFNtYXJ0eSkmbmJzcDsnOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdGb3JtYXQgZFwnYWZmaWNoYWdlIGRlIGxhICg8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2ZyL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9Il9ibGFuayI+ZGF0ZSBQSFAgc3RhbmRhcmQgPC9hPikmbmJzcDsnOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVdGlsaXNlciB1biDDqWRpdGV1ciBXWVNJV1lHIHBvdXIgbGEgem9uZSBkZSB0ZXh0ZSAoY290w6kgYWRtaW4gc2V1bGVtZW50KSA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnQ29tcG9ydGVtZW50IGxvcnMgZGUgbFwnZW52b2kgZHUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnTGFiZWxzIGRlcyBib3V0b25zIGRlIHNvdW1pc3Npb24nOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdUcmkgcGFyIGNoYW1wcyAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdDZXR0ZSBwYWdlIHZvdXMgcGVybWV0IGRlIHBlcnNvbm5hbGlzZXIgbGUgZm9ybXVsYWlyZS4gQ2VsYSBuZSBkw6lmaW5pdCBwYXMgY2UgcXVlIGxlIG1vZHVsZSBGb3JtIEJ1aWxkZXIgZmFpdCBkZXMgZG9ubsOpZXMgcsOpY29sdMOpZXMuIExhIGRlc3RpbmF0aW9uIGRlcyBkb25uw6llcyBzZXJhIGTDqWZpbmllIGRhbnMgbGVzIGNoYW1wcyAiRGlzcG9zaXRpb24iIChjb21tZW7Dp2FudCBwYXIgKi4uLi4gKS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0FubsOpZSBkZSBkw6lidXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdBbm7DqWUgZGUgZmluJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0FubsOpZSBwYXIgZMOpZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyZuYnNwOyhNZXR0cmUgLTEgcG91ciBzaWduaWZpZXIgcXVlIGxcJ2FubsOpZSBwYXIgZMOpZmF1dCBlc3QgbFwnYW5uw6llIGNvdXJhbnRlKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWN0aW9uIGFwcsOocyBsXCdlbnZvaSBkdSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1LDqXBvbnNlIMOgIGFmZmljaGVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnRGF0ZSBFbnZvecOpZSc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3V2w6llIChwYXIgbFwnYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXRlIEFwcHJvdXbDqWUgKHBhciBsYSBwZXJzb25uZSBxdWkgbFwnYSBzb3VtaXNlKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdBZmZpY2hlciB1biByw6lzdW3DqSBkdSBmb3JtdWxhaXJlIGVudm95w6kmbmJzcDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyaWdlciB2ZXJzIHVuZSBwYWdlIGR1IHNpdGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdDZSBnYWJhcml0IHNlcnQgw6AgbFwnYWZmaWNoYWdlIHBvdXIgbFwndXRpbGlzYXRldXIgYXByw6hzIGxcJ2Vudm9pIGR1IGZvcm11bGFpcmUuIENlIGdhYmFyaXQgblwnYSBhdWN1biBlZmZldCBuaSBzdXIgbGVzIG1haWxzLCBuaSBzdXIgZFwnYXV0cmVzIGZvcm11bGFpcmVzIC0gVm91cyBwbGFjZXJleiBjZXMgZ2FiYXJpdHMgKGp1ZGljaWV1c2VtZW50KSBkYW5zIGxcJ29uZ2xldCAib3B0aW9ucyBhdmFuY8OpZXMiLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUGFnZSBkZSBkZXN0aW5hdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOb21tYWdlIGRlcyBjaGFtcHMgcmVxdWlzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnTGVzIGNoYW1wcyBkb2l2ZW50IG9ibGlnYXRvaXJlbWVudCBhdm9pciB1biBub20gPyAoY2FzZSBjb2Now6llID0gb3VpKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0NoYW1wcyDDoCBub20gdW5pcXVlIHJlcXVpcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnTGVzIGNoYW1wcyBkb2l2ZW50IGF2b2lyIGRlcyBub21zIGRpZmbDqXJlbnRzIChjYXNlIGNvY2jDqWUgPSBvdWkpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1LDqW9yZ2FuaXNlciBsZXMgY2hhbXBzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDaGFyZ2VyIGxlIGdhYmFyaXQgJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0Fqb3V0ZXIgdW4gYm91dG9uIHRleHRlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1N1cHByaW1lciB1biBib3V0b24gdGV4dGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdUZXh0ZSBkXCdhaWRlIMOgIGFmZmljaGVyIGF2ZWMgY2UgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcsOpdGVyIGxlcyB2YXJpYWJsZXMgY29tbWUgw6l0YW50IGRlcyBub21icmVzIG91IGRlcyBjaGHDrm5lcyBkZSBjYXJhY3TDqHJlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ09yZHJlIGRcJ2ludGVycHLDqXRhdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnU2kgcGx1cyBkXCd1biBjaGFtcCBkZSBjYWxjdWwgZXhpc3RlLCBpbHMgc2Vyb250IGNhbGN1bMOpIGR1IHBsdXMgcGV0aXQgYXUgcGx1cyBncmFuZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdDaGluZSAocGFzIGRcJ2VzcGFjZXMgZW50cmUgbGVzIGNoYW1wcykgPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsZXVyIGRlIGNhbGN1bCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnVXRpbGlzYXRpb24gZGUgUEhQJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ0NoYcOubmVzIGRlIGNhcmFjdMOocmVzJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmlxdWUnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdNb250cmVyIGxlIGZvcm11bGFpcmUgZW4gbGlnbmUgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnQ29jaMOpIHNpZ25pZmllIHF1ZSBsZSByw6lzdWx0YXQgZGUgbGEgc291bWlzc2lvbiBkdSBmb3JtdWxhaXJlIHJlbXBsYWNlIGxhIGJhbGlzZSB7Y21zX21vZHVsZX0sIG5vbi1jb2Now6kgcmVtcGxhY2UgbGEgYmFsaXNlIHtjb250ZW50fS4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1ZhbGV1ciBwYXIgZMOpZmF1dCBwb3VyIGxlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdFZmZhY2VyIGxhIHZhbGV1ciBwYXIgZMOpZmF1dCBwYXIgdW4gY2xpYyA/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NvY2hlciBjZXR0ZSBjYXNlIHBvdXIgZWZmYWNlciBsYSB2YWxldXIgcGFyIGTDqWZhdXQgcXVhbmQgbFwndXRpbGlzYXRldXIgY2xpcXVlcmEgY2UgY2hhbXAuIFB1aXNxdWUgY2VsYSB1dGlsaXNlIGxhIGNvbXBhcmFpc29uIGRlIGNoYcOubmUgZW4gamF2YXNjcmlwdCwgY2VsYSDDqWNob3VlcmEgc2kgdm91cyBpbnPDqXJleiBkZXMgYmFsaXNlcyBkZSBjaXRhdGlvbiBzaW1wbGVzIGRhbnMgdm90cmUgdGV4dGUgcGFyIGTDqWZhdXQuIFbDqXJpZmllciBsZXMgY2FyYWN0w6hyZXMgdXRpbGlzw6lzIHBvdXIgw6l2aXRlciBsZXMgZXJyZXVycy4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdTdXBwcmltZXIgbGVzIGZpY2hpZXJzIHVwbG9hZMOpcyBkZXB1aXMgbGUgc2VydmV1ciBhcHLDqXMgZXjDqWN1dGlvbiAoZGlzcG9zaXRpb25zIGVtYWlsKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwb3VyIGxlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ldHRyZSBsZSBjb2RlIEphdmFzY3JpcHQsIGluY2x1dCBsZXMgw6l2w6huZW1lbnRzLCBleCA6IG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm11bGFpcmUgZGUgc291bWlzc2lvbiBKYXZhc2NyaXB0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNZXR0cmUgbGUgY29kZSBKYXZhc2NyaXB0LCBlbiBpbmNsdWFudCBsXCfDqXbDqG5lbWVudCBxdWUgdm91cyB2b3VsZXogcGnDqWdlciwgZXggOiBvbmNsaWNrPSJ5b3VyZm4oKSIuPGJyIC8+IE5lIGZvbmN0aW9ubmVyYSBwcm9iYWJsZW1lbnQgcGFzIGJpZW4gc2kgdm91cyB1dGlsaXNleiBsXCdvcHRpb24gZGUgInNjcmlwdCBzw6ljdXJpdMOpIiBjaS1kZXNzdXMuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnTmUgdm91cyBjb250ZW50ZXogcGFzIGRlIGNob2lzaXIgdW5lIGFkcmVzc2UgYWzDqWF0b2lyZSBpY2kgLS0gQmVhdWNvdXAgZGUgZm91cm5pc3NldXJzIDxiciAvPiBuZSBkaXN0cmlidWVyb250IHBhcyBsZSBjb3VycmllciBzaSB2b3VzIHV0aWxpc2V6IHVuIG5vbSBkZSBkb21haW5lIGRpZmbDqXJlbnQgcXVlIHZvdHJlIDxiciAvPiBub20gZFwnaMO0dGUgKHBhciBleGVtcGxlLCB1dGlsaXNleiBxdWVscXVlIGNob3NlIGNvbW1lIG5vbUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnQmVzb2luIGRlIHBsdXMgZGUgdHlwZXMgZGUgY2hhbXBzID8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVHJvcCBkZSB0eXBlcyBkZSBjaGFtcCBjb25mdXMgPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1Bhc3NlciBlbiBtb2RlIGF2YW5jw6knOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdQYXNzZXIgZW4gbW9kZSBzaW1wbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRG9zc2llciBkYW5zIGxlcXVlbCBsZSBmaWNoaWVyIHNlcmEgc2F1dsOpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnQ2UgZG9pdCDDqnRyZSB1biBkb3NzaWVyIGRlIHZvdHJlIHNlcnZldXIgV2ViIGF2ZWMgZGVzIHBlcm1pc3Npb25zIGRcJ8OpY3JpdHVyZTxiciAvPlBhc3Nlei1sZSBlbiBDSE1PRCA3Nzcgc2kgdm91cyBhdmV6IGRlcyBwcm9ibMOobWVzIG91IGRvdXRlcy48YnIgLz5EZSBwbHVzLCB2w6lyaWZpZXogcXVlIHZvdXMgblwnYXZleiBwYXMgZGUgcmVzdHJpY3Rpb24gZGUgcsOpcGVydG9pcmUgUEhQLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTm91dmVsbGUgbGlnbmUvUmV0b3VyIMOgIGxhIGxpZ25lIGVuIHJlbXBsYWNlbWVudCBkZSBjYXJhY3TDqHJlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMYWlzc2VyIHZpZXJnZSBsYSBsaWduZSBwb3VyIHBlcm1ldHRyZSB1bmUgTm91dmVsbGUgbGlnbmUvUmV0b3VyIMOgIGxhIGxpZ25lJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdFbnZveWVyIHVuZSBjb3BpZSBkZSBsYSBzb3VtaXNzaW9uIMOgIGxcJ3V0aWxpc2F0ZXVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0V0aXF1ZXR0ZSBwb3VyIGNhc2Ugw6AgY29jaGVyIChzaSBjaG9peCB1dGlsaXNhdGV1cikmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdNXCdlbnZveWVyIHVuZSBjb3BpZSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBdXRvcmlzZXIgcXVlIGxcJ29iamV0IHNvaXQgYW5udWzDqSA/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0F1dG9yaXNlciBsZXMgY2hhbXBzIGRlIHR5cGUgIlN1amV0IGRlIGxcJ2UtbWFpbCIgw6AgbFwnZW1wb3J0ZXIgc3VyIGxlIHN1amV0IHNww6ljaWZpw6kgZGFucyBsZSBtZW51IGTDqXJvdWxhbnQuJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnQWZmaWNoYWdlIGRlIGxhIGxvbmd1ZXVyJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTG9uZ3VldXIgbWluaW11bSBwb3VyIGxhIHLDqXBvbnNlJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdNYXNxdWVyIGxcJ2VudHLDqWUnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnQWZmaWNoZXIgbGVzIGNhcmFjdMOocmVzIGxvcnNxdWUgbFwndXRpbGlzYXRldXIgZW50cmUgdW4gbW90IGRlIHBhc3NlID8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdMZSBtb3QgZGUgcGFzc2UgbmUgY29ycmVzcG9uZCBwYXMgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdSZXRvdXIgw6AgbGEgcGFnZSBwcmluY2lwYWxlIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnUXVlbGxlcyBlbnTDqnRlcyBkZSBtZXNzYWdlcmllIGRldnJhaWVudCB1dGlsaXNlciBjZXR0ZSBlbnRyw6llID8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ05cJ2FjY2VwdGV6IHBhcyBkXCdlc3BhY2UgdmlkZSBjb21tZSByw6lwb25zZSB2YWxpZGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnU2kgdW4gY2hhbXAgZXN0IHJlcXVpcywgY29jaGVyIGNlY2kgb2JsaWdlcmEgbFwndXRpbGlzYXRldXIgw6AgcmVtcGxpciBhdmVjIGRlcyBjYXJhY3TDqHJlcyBhbHBoYW51bcOpcmlxdWVzLCBwYXMganVzdGUgZGVzIGVzcGFjZXMnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnVm91cyBkZXZleiBjbGlxdWVyIHN1ciB1biBkZXMgYm91dG9ucyDCq1NhdXZlZ2FyZGVywrsgcG91ciB2YWxpZGVyIGxlIG5vdXZlbCBvcmRyZSBkZXMgY2hhbXBzLic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ1V0aWxpc2VyIEhUTUw1IGF1IGxpZXUgZGUgSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9jY19hZGRyZXNzJ10gPSAnQWRyZXNzZShzKSBhdXhxdWVsbGVzIGVudm95ZXIgZW4gQ29waWUgQ2FyYm9uZSAoQ0MpLiBVdGlsaXNleiBkZXMgdmlyZ3VsZXMgcG91ciBzw6lwYXJlciBsZXMgYWRyZXNzZXMuJzsKJGxhbmdbJ3RpdGxlX3VzZV9iY2MnXSA9ICdVdGlsaXNlciBsYSBDb3BpZSBDYXJib25lIEludmlzaWJsZSAoQ0NJKSBhdSBsaWV1IGRlIGxhIENvcGllIENhcmJvbmUgKENDKSc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzaW5nJ10gPSAnQWRyZXNzYWdlIGRlIG1haWwnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fbW9kaWZ5J10gPSAnQ2hhbXAgZW1haWwgcG91ciBham91dGVyIGxcJ2FkcmVzc2UgQ0MnOwokbGFuZ1sndGl0bGVfbW9kaWZpZXMnXSA9ICdBam91dGVyIENDIMOgICIlcyInOwokbGFuZ1snYmNjX2ZpZWxkJ10gPSAnRGVzdGluYXRhaXJlcyAiQ0NJIic7CiRsYW5nWydjY19maWVsZCddID0gJ0Rlc3RpbmF0YWlyZXMgIkNDIic7CiRsYW5nWyd0b19maWVsZCddID0gJ05vcm1hbCAoIlRvIiBkZXN0aW5hdGFpcmVzKSc7CiRsYW5nWydiY2MnXSA9ICdDQ0knOwokbGFuZ1snY2MnXSA9ICdDQyZuYnNwOyc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnTGUgbW9kdWxlIENvbXBhbnkgRGlyZWN0b3J5IG5cJ2VzdCBwYXMgZGlzcG9uaWJsZSAhJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ0phbWFpcyc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdEb25uZSB1biBjaG9peCDDoCBsXCd1dGlsaXNhdGV1ciAoY2FzZSDDoCBjb2NoZXIpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdUb3Vqb3Vycyc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJ0FkcmVzc2UgZW1haWwgcG91ciAiRnJvbSIgKERlKSc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICdBZHJlc3NlIGVtYWlsIHBvdXIgIlJlcGx5LVRvIiAoUsOpcG9uZHJlIMOgKSc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0FkcmVzc2VzIGVtYWlsIHBvdXIgw6AgbGEgZm9pcyAiRnJvbSIgZXQgIlJlcGx5LVRvIic7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdsaXN0LWJveCBkZSBzw6lsZWN0aW9uJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ0xpc3RlIHNpbXBsZSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ0xpc3RlIG11bHRpcGxlJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnR3JvdXBlIGRlIGJvdXRvbnMgcmFkaW8nOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZSA6IGxhIHNvcnRpZSBmb3JtdWxhaXJlIHNlcmE8YnIvPiJjb21wYW55IG5hbWUiPT4idmFsdWUiJzsKJGxhbmdbJ3RpdGxlX3BpY2tfY2F0ZWdvcmllcyddID0gJ0Nob2lzaXNzZXogdW5lIGNhdMOpZ29yaWUgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnRG9ubmUgdW4gY2hhbXAgZGUgZMOpZmluaXRpb24gZGUgbGEgdmFsZXVyICh1bmlxdWUpIDxlbT5vcHRpb248L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob2lzaXIgdW5lIGVudHLDqWUgdXRpbGlzYXRldXInOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKFZvdXMgcG91dmV6IMOpZ2FsZW1lbnQgbmF2aWd1ZXIgZGFucyBsXCdvbmdsZXQgRm9ybXVsYWlyZSBkZSBzb3VtaXNzaW9uIHNpIHZvdXMgc291aGFpdGV6IGTDqWZpbmlyIHVuZSBiYWxpc2UgdXRpbGlzYXRldXIgcG91ciBsZSBmb3JtdWxhaXJlIGRlIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdGaW4gZGUgbFwnYW5uw6llJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnRG9ubsOpZXMgb3UgYmFsaXNlcyBTbWFydHkgcXVpIGRvaXZlbnQgw6p0cmUgZW52b3nDqXMgYXZlYyBjZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnRG9ubsOpZXMgU21hcnR5LCBqYXZhc2NyaXB0LCBvdSB0b3V0ZSBhdXRyZSBkb25uw6llIHF1ZSB2b3VzIHZvdWxleiBlbnZveWVyIGF2ZWMgY2UgY2hhbXAuPGJyIC8+U1wnZXjDqWN1dGUgdmlhIGxlIGNvbXBpbGV1ciBzbWFydHksIHV0aWxpc2VyIGxlcyBiYWxpc2VzIHtsaXRlcmFsfXsvbGl0ZXJhbH0gYXZlYyA8IHNjcmlwdCA+PCAvc2NyaXB0ID4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ0luY2x1dCBsZXMgaW50aXR1bMOpcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdBY3RpdmVyIGNlY2kgaW5jbHV0IGxlcyBpbnRpdHVsw6lzIMOgIGFwcGFyYcOudHJlLiBFeGVtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGllIGNlIGNoYW1wIMOgIHNvbiBwYXJlbnQnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ01lbnUgZMOpcm91bGFudCBxdWkgbGlzdGUgdG91cyBsZXMgcGFyZW50cyBkZSBjZSBjaGFtcCBldCB2b3VzIHBlcm1ldCBkZSBsaWVyIGNlIGNoYW1wIGF2ZWMgdW4gZGUgc2VzIHBhcmVudHMuIFJlbmQgcG9zc2libGUgZGUgY29udHLDtGxlciBjZSBjaGFtcCBhdmVjIGxlcyBjb250csO0bGVzIGR1IHBhcmVudCBzw6lsZWN0aW9ubsOpLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0NhY2hlIGxlcyBib3V0b25zIGRlIGNvbnRyw7RsZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnQ2FjaGUgbGVzIGJvdXRvbnMgZGUgY29udHLDtGxlIGRlIGNlIGNoYW1wIHN1ciBsXCdpbnRlcmZhY2UgcHVibGlxdWUnOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ01vZGlmaWNhdGlvbiBkZSBsXCd1biBkZXMgY2hhbXBzIGNpLWRlc3N1cyBkw6ljbGVuY2hlcmEgdW5lIHLDqS1pbmRleGF0aW9uIGRlICp0b3VzKiBsZXMgZW5yZWdpc3RyZW1lbnRzLCBjZWxhIHBvdXJyYWl0IHByZW5kcmUgdW4gY2VydGFpbiB0ZW1wcy4nOwokbGFuZ1snaWxsZWdhbF9maWxlJ10gPSAnVGVudGF0aXZlIGRlIHTDqWzDqWNoYXJnZW1lbnQgaWxsw6lnYWwgZGUgZmljaGllcnMgZGUgdHlwZSAoJXMpIGRlcHVpcyAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnRmFpcmUgZGVzIGVucmVnaXN0cmVtZW50cyBhY2Nlc3NpYmxlcyBwb3VyIGxlIG1vZHVsZSBkZSByZWNoZXJjaGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ10gPSAnRW4gY29jaGFudCwgY2VsYSByZW5kcmEgdG91dGVzIGxlcyBkb25uw6llcyBhY2Nlc3NpYmxlcyBkYW5zIGxlIG1vZHVsZSBkZSByZWNoZXJjaGUuIE5FIFBBUyB1dGlsaXNlciBjZXR0ZSBvcHRpb24gc2kgdm91cyBjcnlwdGV6IHZvcyBkb25uw6llcyAtLSBMZXMgaW5mb3JtYXRpb25zIHNlcm9udCBzb3VtaXNlcyDDoCBsYSByZWNoZXJjaGUgc2kgdm91cyBjcnlwdGV6IG91IG5vbiAhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChob3JzIGRlIGxhIHJhY2luZSBkdSBzaXRlIHdlYiknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXSA9ICfDiWRpdGFibGUgZGFucyBsXCdhZG1pbmlzdHJhdGlvbiBkdSBtb2R1bGUgRm9ybUJyb3dzZXIgPyc7CiRsYW5nWyd0aXRsZV9hY3RpdmVfb25seSddID0gJ0luY2x1cmUgc2V1bGVtZW50IGxlcyB1dGlsaXNhdGV1cnMgYWN0aWZzID8nOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ0xhIGJhbGlzZSB1dGlsaXNhdGV1ciBhIHJldG91cm7DqSB1bmUgZXJyZXVyJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdsYSBiYWxpc2UgdXRpbGlzYXRldXIgJXMgcmV0dXJuZSB1bmUgZXJyZXVyLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkxlIG1vZHVsZSBDYXRhbG9nZXIgbmUgc2VtYmxlIHBhcyDDqnRyZSBpbnN0YWxsw6kvYWN0aWYuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBVFRFTlRJT04gISc7CiRsYW5nWydzZWxlY3Rfc291cmNlX3RlbXBsYXRlJ10gPSAnU8OpbGVjdGlvbm5lciB1biBnYWJhcml0IHNvdXJjZSA6JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkw6lmYXV0JzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdHYWJhcml0IHRhYmxlYXUsIFRpdHJlcyDDoCBnYXVjaGUnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCB0YWJsZWF1LCBUaXRyZXMgZW4gaGF1dCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdHYWJhcml0IHZlbmFudCBkZSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdcdTAwQ0F0ZXMtdm91cyBzXHUwMEZCciBkZSB2b3Vsb2lyIMOpY3JpcmUgcGFyIGRlc3N1cyB2b3RyZSBnYWJhcml0IGF2ZWMgbGUgZ2FiYXJpdCBzw6lsZWN0aW9ubsOpID8gKG1cdTAwRUFtZSBzaSB2b3VzIGRpdGVzIE9LLCB2b3VzIGRldnJleiBxdWFuZCBtXHUwMEVBbWUgc2F1dmVnYXJkZXIgbGUgY2hhbmdlbWVudCknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyZXVyIGRlIGNhbGN1bCAiJXMiLic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnUGFzIGRcJ2luZm9ybWF0aW9uIEhUVFBfUkVGRVJFUiBkaXNwb25pYmxlIChwcm9iYWJsZW1lbnQgZMO7IMOgIGxcJ3VzYWdlIGRlIHZhbGlkYXRpb24gZFwnRW1haWwgdXRpbGlzYXRldXIpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdFcnJldXIgZHUgcGFyYW3DqHRyZSBkZSB2YWxpZGF0aW9uLiBWw6lyaWZpZXogcXVlIHZvdXMgYXZleiByZWNvcGnDqSBjb3JyZWN0ZW1lbnQgbFwnVVJMIGRlIGxcJ2VtYWlsICEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0VycmV1ciBkZSByw6lwb25zZSBkZSBsYSB2YWxpZGF0aW9uLiBWw6lyaWZpZXogcXVlIHZvdXMgYXZleiByZWNvcGnDqSBjb3JyZWN0ZW1lbnQgbFwnVVJMIGRlIGxcJ2VtYWlsICEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0VycmV1ciBkZSByw6lwb25zZSBkZSBsYSB2YWxpZGF0aW9uLiBBdWN1biBjaGFtcCBkZSB2YWxpZGF0aW9uIGRcJ2VtYWlsIGRhbnMgY2UgZm9ybXVsYWlyZSAhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdMZSBnYWJhcml0IGRlIGZvcm11bGFpcmUgYSDDqXTDqSBtaXMgw6Agam91ciBhdXRvbWF0aXF1ZW1lbnQgZGUgbGEgdmVyc2lvbiAwLjMgdmVycyBsYSB2ZXJzaW9uIDAuNC4gSWwgc2UgcGV1dCBxdWUgdm91cyBheWV6IMOgIGZhaXJlIGNlcnRhaW5lcyBjb3JyZWN0aW9ucy4gU2kgdm91cyB1dGlsaXNleiBsZSBmb3JtdWxhaXJlIHBhciBkw6lmYXV0LCByZW1wbGFjZXogc2ltcGxlbWVudCBjZSBnYWJhcml0IHBhciAiZGVmYXVsdCIgZW4gdXRpbGlzYW50IGxlIG1lbnUgZMOpcm91bGFudCBjaS1kZXNzdXMuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0Fqb3V0LCDDqWRpdGlvbiBldCBnZXN0aW9uIGRlIGZvcm11bGFpcmVzIGludGVyYWN0aWZzJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfYWRtaW4nXSA9ICdEb2l0IHNww6ljaWZpZXIgdW4gYWRtaW5pc3RyYXRldXInOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdTaSB2b3VzIHV0aWxpc2V6IHVuZSDDqXZhbHVhdGlvbiBkZSBjaGHDrm5lIGRlIGNhcmFjdMOocmVzLCBsYSBzZXVsZSBvcMOpcmF0aW9uIHBvc3NpYmxlIGVzdCBsYSBjb25jYXTDqW5hdGlvbiAoKyksIGFsb3JzIHF1ZSBzaSB2b3VzIHV0aWxpc2V6IHVuZSDDqXZhbHVhdGlvbiBudW3DqXJpcXVlLCB2b3VzIGF2ZXogbGVzIHN5bWJvbGVzIGRlIGJhc2UgKCwgKywgLSwgKiwgLywgKS4gU2kgdm91cyB1dGlsaXNleiBsXCfDqXZhbHVhdGlvbiBwYXIgbGUgUEhQLCB2b3VzIHBvdXZleiANCnV0aWxpc2VyIG5cJ2ltcG9ydGUgcXVlbGxlIGZvbmN0aW9uIHZvdXMgdm91bGV6LCBtYWlzIHZvdXMgYXZleiBiZXNvaW4gZGUgY2l0ZXIgZGVzIGNob3NlcyAobGEgc3Vic3RpdHV0aW9uIHNlIHByb2R1aXQgYXZhbnQgbFwnw6l2YWx1YXRpb24pLCBwYXIgZXhlbXBsZSwgc3Vic3RyIChcJyRmbGRfMjJcJywwLDIpLlwnJGZsZF8yM1wnLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdVdGlsaXNlciBsZSBtb2R1bGUgZFwnaW50ZXJmYWNlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+Q2UgY2hhbXAgZXN0IHV0aWxpc8OpIGNvbW1lIHVuIHBvbnQgdmVycyBsZXMgYXV0cmVzIG1vZHVsZXMgITwvYj4NClV0aWxpc2V6LWxlIGVuIGNyw6lhbnQgdm9zIMOpbMOpbWVudHMgZGUgZm9ybXVsYWlyZSBkYW5zIGxlcyBnYWJhcml0cyBkZShzKSBsXCdhdXRyZShzKSBtb2R1bGUocykgcXVlIHZvdXMgdm91bGV6IGluY29ycG9yZXIsIGV0IHV0aWxpc2V6IDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiBwb3VyIGxlIGxpZXIgZW4gcmV0b3VyIHZlcnMgRm9ybUJ1aWxkZXIuIFBhciBleGVtcGxlLCBwb3VyIGluY2x1cmUgbGUgZm9ybXVsYWlyZSBkXCdvcHRpb25zIGJhc8OpIHN1ciBsZSBtb2R1bGUgUHJvZHVjdHMsIGNyw6lleiBsZSBnYWJhcml0IHN1aXZhbnQgZGFucyBQcm9kdWN0cyA6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnXCd9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCdcJ30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCc6OlwnfGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJyBjaGVja2VkPSJjaGVja2VkIlwnfQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9IlByb2R1Y3REaXJlY3RvcnlJdGVtIj4NCgkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0iIG5hbWU9InskRkJpZH1bXSIgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSDCo3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCm/DuSB2b3VzIHBvdXZleiBtZXR0cmUgZGFucyBsXCdlbnRyw6llIGNpLWRlc3NvdXMgcXVlbHF1ZSBjaG9zZSBjb21tZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0iY2F0IiBzdW1tYXJ5dGVtcGxhdGU9IllvdXJfRkJfdGVtcGxhdGUifTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnQWpvdXRlciB2b3RyZSBiYWxpc2UnOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudmllcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRsOpdnJpZXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0F2cmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1aW4nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVpbGxldCc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fvw7t0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYnJlJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9icmUnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYnJlJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEw6ljZW1icmUnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJlJzsKJGxhbmdbJ0FFJ10gPSAnRW1pcmF0cyBBcmFiZXMgVW5pcyc7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJm5ic3A7JzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBldCBCYXJidWRhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEmbmJzcDsnOwokbGFuZ1snQUwnXSA9ICdBbGJhbmllJzsKJGxhbmdbJ0FNJ10gPSAnQXJtw6luaWUnOwokbGFuZ1snQU4nXSA9ICdBbnRpbGxlcyBOw6llcmxhbmRhaXNlcyc7CiRsYW5nWydBTyddID0gJ0FuZ29sYSZuYnNwOyc7CiRsYW5nWydBUSddID0gJ0FudGFyY3RpcXVlJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5lJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EmbmJzcDsnOwokbGFuZ1snQVQnXSA9ICdBdXRyaWNoZSc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpZSc7CiRsYW5nWydBVyddID0gJ0FydWJhJm5ic3A7JzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSXNsYW5kcyZuYnNwOyc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlkamFuJzsKJGxhbmdbJ0JBJ10gPSAnQm9zbmllIGV0IEhlcnrDqWdvdmluZSc7CiRsYW5nWydCQiddID0gJ0JhcmJhZGVzJzsKJGxhbmdbJ0JEJ10gPSAnQmFuZ2xhZGVzaCZuYnNwOyc7CiRsYW5nWydCRSddID0gJ0JlbGdpcXVlJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvJm5ic3A7JzsKJGxhbmdbJ0JHJ10gPSAnQnVsZ2FyaWUnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluJm5ic3A7JzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSZuYnNwOyc7CiRsYW5nWydCSiddID0gJ0LDqW5pbic7CiRsYW5nWydCTSddID0gJ0Jlcm11ZGVzJzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0mbmJzcDsnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmllJzsKJGxhbmdbJ0JSJ10gPSAnQnLDqXNpbCc7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMmbmJzcDsnOwokbGFuZ1snQlQnXSA9ICdCb3V0YW4nOwokbGFuZ1snQlYnXSA9ICdJbGUgQm91dmV0JzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEmbmJzcDsnOwokbGFuZ1snQlknXSA9ICdCZWxhcnVzJm5ic3A7JzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJm5ic3A7JzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhJm5ic3A7JzsKJGxhbmdbJ0NDJ10gPSAnw45sZXMgQ29jb3MgKEtlZWxpbmcpJzsKJGxhbmdbJ0NEJ10gPSAnQ29uZ28sICBSw6lwdWJsaXF1ZSBEw6ltb2NyYXRpcXVlJzsKJGxhbmdbJ0NGJ10gPSAnUsOpcHVibGlxdWUgQ2VudHJhZnJpY2FpbmUnOwokbGFuZ1snQ0cnXSA9ICdDb25nbyZuYnNwOyc7CiRsYW5nWydDSCddID0gJ1N1aXNzZSc7CiRsYW5nWydDSSddID0gJ0l2b2lyZSAoQ8O0dGUgZFwnaXZvaXJlKSc7CiRsYW5nWydDSyddID0gJ8OObGVzIENvb2snOwokbGFuZ1snQ0wnXSA9ICdDaGlsaSc7CiRsYW5nWydDTSddID0gJ0NhbWVyb3VuJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmUnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJlJzsKJGxhbmdbJ0NSJ10gPSAnQ29zdGEgUmljYSZuYnNwOyc7CiRsYW5nWydDVSddID0gJ0N1YmEmbmJzcDsnOwokbGFuZ1snQ1YnXSA9ICdDYXAgVmVydCc7CiRsYW5nWydDWCddID0gJ0lsZSBDaHJpc3RtYXMnOwokbGFuZ1snQ1knXSA9ICdDaHlwcmUnOwokbGFuZ1snQ1onXSA9ICdSw6lwdWJsaXF1ZSBUY2jDqHF1ZSc7CiRsYW5nWydERSddID0gJ0FsbGVtYWduZSc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJm5ic3A7JzsKJGxhbmdbJ0RLJ10gPSAnRGFuZW1hcmsnOwokbGFuZ1snRE0nXSA9ICdEb21pbmlxdWUnOwokbGFuZ1snRE8nXSA9ICdSw6lwdWJsaXF1ZSBEb21pbmljYWluZSc7CiRsYW5nWydEWiddID0gJ0FsZ8OpcmllJzsKJGxhbmdbJ0VDJ10gPSAnRXF1YXRldXInOwokbGFuZ1snRUUnXSA9ICdFc3RvbmllJzsKJGxhbmdbJ0VHJ10gPSAnRWd5cHRlJzsKJGxhbmdbJ0VIJ10gPSAnV2VzdGVybiBTYWhhcmEmbmJzcDsnOwokbGFuZ1snRVInXSA9ICdFcml0aHLDqWUnOwokbGFuZ1snRVMnXSA9ICdFc3BhZ25lJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWUnOwokbGFuZ1snRkknXSA9ICdGaW5sYW5kZSc7CiRsYW5nWydGSiddID0gJ0ZpZGppJzsKJGxhbmdbJ0ZLJ10gPSAnSWxlcyBNYWxvdWluZXMgKE1hbHZpbmFzKSc7CiRsYW5nWydGTSddID0gJ01pY3JvbsOpc2llJzsKJGxhbmdbJ0ZPJ10gPSAnSWxlcyBGZXJvw6snOwokbGFuZ1snRlInXSA9ICdGcmFuY2UmbmJzcDsnOwokbGFuZ1snRlgnXSA9ICdGcmFuY2UgTcOpdHJvcG9saXRhaW5lJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24mbmJzcDsnOwokbGFuZ1snR0InXSA9ICdSb3lhdW1lLVVuaSAoVUspJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkZSc7CiRsYW5nWydHRSddID0gJ0fDqW9yZ2llJzsKJGxhbmdbJ0dGJ10gPSAnR3Vlcm5lc2V5JzsKJGxhbmdbJ0dIJ10gPSAnR2hhbmEmbmJzcDsnOwokbGFuZ1snR0knXSA9ICdHaWJyYWx0YXImbmJzcDsnOwokbGFuZ1snR0wnXSA9ICdHcm/Dq25sYW5kJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmllJzsKJGxhbmdbJ0dOJ10gPSAnR3VpbsOpZSc7CiRsYW5nWydHUCddID0gJ0d1YWRlbG91cGUmbmJzcDsnOwokbGFuZ1snR1EnXSA9ICdHdWluw6llIEVxdWF0b3JpYWwnOwokbGFuZ1snR1InXSA9ICdHcsOoY2UnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLiZuYnNwOyc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSZuYnNwOyc7CiRsYW5nWydHVSddID0gJ0d1YW0mbmJzcDsnOwokbGFuZ1snR1cnXSA9ICdHdWluw6llLUJpc3NhdSc7CiRsYW5nWydHWSddID0gJ0d1eWFuZSc7CiRsYW5nWydISyddID0gJ0hvbmcgS29uZyZuYnNwOyc7CiRsYW5nWydITSddID0gJ8OObGVzIEhlYXJkIGV0IE1jRG9uYWxkJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMmbmJzcDsnOwokbGFuZ1snSFInXSA9ICdDcm9hdGllIChIcnZhdHNrYSknOwokbGFuZ1snSFQnXSA9ICdIYcOvdGknOwokbGFuZ1snSFUnXSA9ICdIb25ncmllJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb27DqXNpZSc7CiRsYW5nWydJRSddID0gJ0lybGFuZGUnOwokbGFuZ1snSUwnXSA9ICdJc3Jhw6tsJzsKJGxhbmdbJ0lNJ10gPSAnSWxlIGRlIE1hbic7CiRsYW5nWydJTiddID0gJ0luZGUnOwokbGFuZ1snSU8nXSA9ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkmbmJzcDsnOwokbGFuZ1snSVEnXSA9ICdJcmFrJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbiZuYnNwOyc7CiRsYW5nWydJUyddID0gJ0lzbGFuZGUnOwokbGFuZ1snSVQnXSA9ICdJdGFsaWUnOwokbGFuZ1snSkUnXSA9ICdKZXJzZXkmbmJzcDsnOwokbGFuZ1snSk0nXSA9ICdKYW1hw69xdWUnOwokbGFuZ1snSk8nXSA9ICdKb3JkYW5pZSc7CiRsYW5nWydKUCddID0gJ0phcG9uJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEmbmJzcDsnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJm5ic3A7JzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kZ2UnOwokbGFuZ1snS0knXSA9ICdLaXJpYmF0aSZuYnNwOyc7CiRsYW5nWydLTSddID0gJ0NvbW9yb3MmbmJzcDsnOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBldCBOZXZpcyc7CiRsYW5nWydLUCddID0gJ0NvcsOpZSAoZHUgTm9yZCknOwokbGFuZ1snS1InXSA9ICdDb3LDqWUgKGR1IFN1ZCknOwokbGFuZ1snS1cnXSA9ICdLb3dlw690JzsKJGxhbmdbJ0tZJ10gPSAnSWxlcyBDYXltYW4nOwokbGFuZ1snS1onXSA9ICdLYXpha2hzdGFuJm5ic3A7JzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyZuYnNwOyc7CiRsYW5nWydMQiddID0gJ0xpYmFuJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWUnOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJm5ic3A7JzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJm5ic3A7JzsKJGxhbmdbJ0xSJ10gPSAnTGliw6lyaWEnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvJm5ic3A7JzsKJGxhbmdbJ0xUJ10gPSAnTGl0aHVhbmllJzsKJGxhbmdbJ0xVJ10gPSAnTHV4ZW1ib3VyZyZuYnNwOyc7CiRsYW5nWydMViddID0gJ0xhdHZpZSc7CiRsYW5nWydMWSddID0gJ0x5YmllJzsKJGxhbmdbJ01BJ10gPSAnTWFyb2MnOwokbGFuZ1snTUMnXSA9ICdNb25hY28mbmJzcDsnOwokbGFuZ1snTUQnXSA9ICdNb2xkYXZpZSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXImbmJzcDsnOwokbGFuZ1snTUgnXSA9ICdJbGVzIE1hcnNoYWxsJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjw6lkb2luZSknOwokbGFuZ1snTUwnXSA9ICdNYWxpJm5ic3A7JzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hciZuYnNwOyc7CiRsYW5nWydNTiddID0gJ01vbmdvbGllJzsKJGxhbmdbJ01PJ10gPSAnTWFjYW8nOwokbGFuZ1snTVAnXSA9ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMmbmJzcDsnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJm5ic3A7JzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pZSc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQmbmJzcDsnOwokbGFuZ1snTVQnXSA9ICdNYWx0ZSc7CiRsYW5nWydNVSddID0gJ8OObGUgTWF1cmljZSc7CiRsYW5nWydNViddID0gJ01hbGRpdmVzJm5ic3A7JzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpJm5ic3A7JzsKJGxhbmdbJ01YJ10gPSAnTWV4aXF1ZSc7CiRsYW5nWydNWSddID0gJ01hbGF5c2llJzsKJGxhbmdbJ01aJ10gPSAnTW96YW1iaXF1ZSZuYnNwOyc7CiRsYW5nWydOQSddID0gJ05hbWliaWUnOwokbGFuZ1snTkMnXSA9ICdOb3V2ZWxsZSBDYWzDqWRvbmllJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXImbmJzcDsnOwokbGFuZ1snTkYnXSA9ICdOb3Jmb2xrIElzbGFuZCZuYnNwOyc7CiRsYW5nWydORyddID0gJ05pZ8OpcmlhJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJm5ic3A7JzsKJGxhbmdbJ05MJ10gPSAnUGF5cyBCYXMnOwokbGFuZ1snTk8nXSA9ICdOb3J2w6hnZSc7CiRsYW5nWydOUCddID0gJ07DqXBhbCc7CiRsYW5nWydOUiddID0gJ05hdXJ1Jm5ic3A7JzsKJGxhbmdbJ05UJ10gPSAnWm9uZSBuZXV0cmUnOwokbGFuZ1snTlUnXSA9ICcmbmJzcDsnOwokbGFuZ1snTlonXSA9ICdOb3V2ZWxsZSBaw6lsYW5kZSAoQW90ZWFyb2EpJzsKJGxhbmdbJ09NJ10gPSAnT21hbiZuYnNwOyc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSZuYnNwOyc7CiRsYW5nWydQRSddID0gJ1DDqXJvdSc7CiRsYW5nWydQRiddID0gJ1BvbHluw6lzaWUgRnJhbsOnYWlzZSc7CiRsYW5nWydQRyddID0gJ1BhcG91YXNpZSBOb3V2ZWxsZSBHdWluw6llJzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZXMmbmJzcDsnOwokbGFuZ1snUEsnXSA9ICdQYWtpc3RhbiZuYnNwOyc7CiRsYW5nWydQTCddID0gJ1BvbG9nbmUnOwokbGFuZ1snUE0nXSA9ICdTdC1QaWVycmUgZXQgTWlxdWVsb24nOwokbGFuZ1snUE4nXSA9ICdQaXRjYWlybiZuYnNwOyc7CiRsYW5nWydQUiddID0gJ1BvcnRvIFJpY28nOwokbGFuZ1snUFMnXSA9ICdUZXJyaXRvaXJlIFBhbGVzdGluaWVuJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwmbmJzcDsnOwokbGFuZ1snUFcnXSA9ICdQYWxhdSZuYnNwOyc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5Jm5ic3A7JzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXImbmJzcDsnOwokbGFuZ1snUkUnXSA9ICdSw6l1bmlvbic7CiRsYW5nWydSTyddID0gJ1JvdW1hbmllJzsKJGxhbmdbJ1JTJ10gPSAnU2VyYmllJzsKJGxhbmdbJ1JVJ10gPSAnRsOpZMOpcmF0aW9uIGRlIFJ1c3NpZSc7CiRsYW5nWydSVyddID0gJ1J3YW5kYSZuYnNwOyc7CiRsYW5nWydTQSddID0gJ0FyYWJpZSBTYW91ZGl0ZSc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyZuYnNwOyc7CiRsYW5nWydTQyddID0gJ1NleWNoZWxsZXMmbmJzcDsnOwokbGFuZ1snU0QnXSA9ICdTb3VkYW4nOwokbGFuZ1snU0UnXSA9ICdTdcOoZGUnOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvdXInOwokbGFuZ1snU0gnXSA9ICdTdC1Iw6lsw6huZSc7CiRsYW5nWydTSSddID0gJ1Nsb3bDqW5pZSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICYgSmFuIE1heWVuIElzbGFuZHMnOwokbGFuZ1snU0snXSA9ICdTbG92YWsgUmVwdWJsaWMmbmJzcDsnOwokbGFuZ1snU0wnXSA9ICdTaWVycmEgTGVvbmUmbmJzcDsnOwokbGFuZ1snU00nXSA9ICdTYW4gTWFyaW4nOwokbGFuZ1snU04nXSA9ICdTw6luw6lnYWwnOwokbGFuZ1snU08nXSA9ICdTb21hbGllJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbSc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGV0IFByaW5jaXBlJzsKJGxhbmdbJ1NWJ10gPSAnU2FuIFNhbHZhZG9yJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWUnOwokbGFuZ1snU1onXSA9ICdTd2F6aWxhbmQmbmJzcDsnOwokbGFuZ1snVEMnXSA9ICdUdXJrcyBldCBDYWljb3MnOwokbGFuZ1snVEQnXSA9ICdUY2hhZCc7CiRsYW5nWydURiddID0gJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyZuYnNwOyc7CiRsYW5nWydURyddID0gJ1RvZ28mbmJzcDsnOwokbGFuZ1snVEgnXSA9ICdUaGHDr2xhbmRlJzsKJGxhbmdbJ1RKJ10gPSAnVGFqaWtpc3RhbiZuYnNwOyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUmbmJzcDsnOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4mbmJzcDsnOwokbGFuZ1snVE4nXSA9ICdUdW5pc2llJzsKJGxhbmdbJ1RPJ10gPSAnVG9uZ2EmbmJzcDsnOwokbGFuZ1snVFAnXSA9ICdUaW1vciBPcmllbnRhbCc7CiRsYW5nWydUUiddID0gJ1R1cnF1aWUnOwokbGFuZ1snVFQnXSA9ICdUcmluaWRhZCBldCBUb2JhZ28nOwokbGFuZ1snVFYnXSA9ICdUdXZhbHUmbmJzcDsnOwokbGFuZ1snVFcnXSA9ICdUYcOvd2FuJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWUnOwokbGFuZ1snVUEnXSA9ICdVa3JhaW5lJm5ic3A7JzsKJGxhbmdbJ1VHJ10gPSAnT3VnYW5kYSc7CiRsYW5nWydVSyddID0gJ1JveWF1bWUgVW5pJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyZuYnNwOyc7CiRsYW5nWydVUyddID0gJ0V0YXRzLVVuaXMnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5Jm5ic3A7JzsKJGxhbmdbJ1VaJ10gPSAnVXpiZWtpc3RhbiZuYnNwOyc7CiRsYW5nWydWQSddID0gJ1ZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpJm5ic3A7JzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCBldCBsZXMgR3JlbmFkaW5lcyc7CiRsYW5nWydWRSddID0gJ1ZlbmV6dWVsYSZuYnNwOyc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSZuYnNwOyc7CiRsYW5nWydWSSddID0gJ1ZpcmdpbiBJc2xhbmRzIChVLlMuKSZuYnNwOyc7CiRsYW5nWydWTiddID0gJ1ZpZXQgTmFtJm5ic3A7JzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSZuYnNwOyc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMmbmJzcDsnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSZuYnNwOyc7CiRsYW5nWydZRSddID0gJ1llbWVuJm5ic3A7JzsKJGxhbmdbJ1lUJ10gPSAnTWF5b3R0ZSZuYnNwOyc7CiRsYW5nWydZVSddID0gJ1l1Z29zbGF2aWUnOwokbGFuZ1snWkEnXSA9ICdBZnJpcXVlIGR1IFN1ZCc7CiRsYW5nWydaTSddID0gJ1phbWJpZSc7CiRsYW5nWydaVyddID0gJ1ppbWJhYndlJm5ic3A7JzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdEw6lzb2zDqSAhIFVuZSBlcnJldXIgYSBlbXDDqmNow6kgbGEgdHJhbnNtaXNzaW9uIGR1IGZvcm11bGFpcmUuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0VycmV1ciBkZSBzb3VtaXNzaW9uIEZvcm1CdWlsZGVyIDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0VycmV1ciBlbiBzb3VtZXR0YW50IHVuIGZpY2hpZXIgYXUgbW9kdWxlIGRcJ3VwbG9hZCA6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ01vZHVsZSBkXCd1cGxvYWQgaW50cm91dmFibGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0VycmV1ciBkXCd1cGxvYWQvYXR0YWNoZW1lbnQgc3VyIGxlIGZpY2hpZXIgJXMgKHRtcF9uYW1lIDogJXMsIGRlIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyZXVyLiBJbXBvc3NpYmxlIGRcJ29idGVuaXIgbGUgYmxvY2FnZSBkdSBmaWNoaWVyLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1BhciBkw6lmYXV0IDogZMOpY29jaMOpJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1BhciBkw6lmYXV0IDogY29jaMOpJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTb3VtaXNzaW9uIHBhciBGb3JtQnVpbGRlcic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5HYWJhcml0IGR1IG1haWwgcGFzIGVuY29yZSBkw6lmaW5pICEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXIgOiBpbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGUgbW9kdWxlIENNU01haWxlciByZXF1aXMgISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVdGlsaXNhdGV1ciBhcHByb3V2YW50IGxhIHNvdW1pc3Npb24gJXMgZGUgJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2w6luZW1lbnQgZMOpY2xlbmNow6kgbG9yc3F1XCd1biBmb3JtdWxhaXJlIEZvcm1CdWlsZGVyIGVzdCBlbnZvecOpJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2w6luZW1lbnQgZMOpY2xlbmNow6kgc1wnaWwgeSBhIHVuZSBlcnJldXIgbG9yc3F1XCd1biBmb3JtdWxhaXJlIEZvcm1CdWlsZGVyIGVzdCBlbnZvecOpJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXbDqW5lbWVudCBkw6ljbGVuY2jDqSBsb3JzcXVcJ3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGFmZmljaMOpJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExlIG5vbSBkdSBmb3JtdWxhaXJlIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gTFwnaWQgaW50ZXJuZSBkdSBmb3JtdWxhaXJlIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBGb3Vybml0IHVuZSB2YWxldXIgcGFyIGTDqWZhdXQgw6AgdW4gY2hhbXAgYXZlYyBsZSBub20gcHLDqWNpc8OpLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExlIG5vbSBkdSBmb3JtdWxhaXJlIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gTFwnaWQgaW50ZXJuZSBkdSBmb3JtdWxhaXJlIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIFVuZSBsaXN0ZSBkZSB0b3V0ZXMgbGVzIGVycmV1cnMgY29ubnVlcyAoc3RyaW5nKTwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxoND5QYXJhbcOodHJlczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTGUgbm9tIGR1IGZvcm11bGFpcmUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBMXCdpZCBpbnRlcm5lIGR1IGZvcm11bGFpcmUgKGludCk8L2xpPg0KPC91bD4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnSUQuIGRlIGxhIHLDqXBvbnNlIHV0aWxpc8OpZSBwYXIgbGUgbW9kdWxlIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdWYWxldXJzIGR1IGNoYW1wIHBhciBkw6lmYXV0OyB2b2lyIGxlIG1vZHVsZSBkXCdhaWRlJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0lEIGR1IGNoYW1wIHBvdXIgbGVzIG9ww6lyYXRpb25zIGludGVybmVzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdOb20gZHUgZm9ybXVsYWlyZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIGR1IGZvcm11bGFpcmUgcG91ciBsZXMgb3DDqXJhdGlvbnMgaW50ZXJuZXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdQYXJhbcOodHJlcyBnw6luw6lyYXV4IHBvdXIgbGVzIG9ww6lyYXRpb25zIGludGVybmVzJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+VmFyaWFibGVzIGR1IEdhYmFyaXQgZGUgRm9ybXVsYWlyZTwvaDM+DQo8cD5Wb3VzIHBvdXZleiBsXCfDqWRpdGVyIHBvdXIgcXVlIGxhIHByw6lzZW50YXRpb24gZGUgdm90cmUgZm9ybXVsYWlyZSBzb2l0IGNvbmZvcm1lIMOgIHZvcyBzb3VoYWl0cy4NCiAgIFBvdXIgcXVlIGxlIGZvcm11bGFpcmUgZm9uY3Rpb25uZSwgdm91cyBkZXZyZXogdG91am91cnMgaW5jbHVyZSBsZXMgdGFncyB7JGZiX2hpZGRlbn0gZXQgeyRzdWJtaXR9LjwvcD4NCg0KPHA+Vm91cyBwb3V2ZXogYWNjw6lkZXIgw6Agdm9zIGNoYW1wcyBkZSBmb3JtdWxhaXJlIGVuIHV0aWxpc2FudCBzb2l0IGxcJ29yZHJlICRmaWVsZHMgc29pdCBkaXJlY3RlbWVudCBwYXIgbGV1cnMgbm9tcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5Wb2ljaSBsZXMgZGlmZsOpcmVudGVzIHZhbGV1cnMgYXBwbGljYWJsZXMgYXV4IGNoYW1wcyA6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5DaGFtcDwvdGg+PHRoPlZhbGV1cjwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIHBvdXIgYWZmaWNoZXIgbGUgY2hhbXAsIHNpbm9uIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgc2kgbGUgY2hhbXAgZXN0IHJlcXVpcywgc2lub24gMDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPkxlIHN5bWJvbGUgc2lnbmFsYW50IGxlcyBjaGFtcHMgb2JsaWdhdG9pcmVzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+TGEgY2xhc3NlIENTUyBkZSBjZSBjaGFtcDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBzaSBsZSBjaGFtcCDDqXTDqSB2YWxpZGUsIHNpbm9uIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHRlIHBvdXIgbGVzIHByb2Jsw6htZXMgZGUgdmFsaWRhdGlvbiwgYXUgY2FzIG/DuSBsZSBjaGFtcCBuZSBzZXJhaXQgcGFzIHZhbGlkw6k8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIHNpIGxlIG5vbSBkdSBjaGFtcHMgZG9pdCByZXN0ZXIgY2FjaMOpLCBzaW5vbiAwPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBzaSBsZSB0eXBlIGRlIGNoYW1wIGEgdW4gbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wIGRvaXQgw6p0cmUgaW50w6lncsOpIGRhbnMgdW4gRElWIChvdSBkYW5zIHVuZSBsaWduZSBkZSB0YWJsZWF1LCBzaSBjXCdlc3Qgdm90cmUgY2hvaXgpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPkxlIG5vbSBkdSBjaGFtcDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+TGUgY2hhbXAgZGUgdGV4dGUgZFwnYWlkZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+TGEgdmFsZXVyIGRlIGNvbnRyw7RsZSBkdSBjaGFtcCAoZXguIDogbGEgdmFsZXVyIGR1IGNoYW1wKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+dW4gYm91dG9uIGRlIGNvbnRyw7RsZSBhc3NvY2nDqSBhdSBjaGFtcCBzaSBjXCdlc3QgcG9zc2libGUgKGV4LiA6IGxlIGJvdXRvbiBzdXBwcmltZXIgcG91ciB1biBjaGFtcCB0ZXh0ZSk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPmxcJyBJRCBkdSBjaGFtcCAodXRpbGUgcG91ciB1biBsYWJlbCBmb3I9ImZvbyI+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+bFwnYWxpYXMgc3DDqWNpZmnDqSBwb3VyIGNlIGNoYW1wPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD5sXCdpZCBpbnRlcm5lIC8gb3BhcXVlIHF1ZSBGb3JtQnVpbGRlciB1dGlsaXNlIHBvdXIgY2UgY2hhbXA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+bGUgdHlwZSBkZSBkb25uw6llcyBkdSBjaGFtcDwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgc2kgbGUgY2hhbXAtPmlucHV0IGVzdCB1bmUgY29sbGVjdGlvbiBkZSBjb250csO0bGVzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIHNpIGxhIGNvbGxlY3Rpb24gZGUgY29udHLDtGxlcyBhIGRlcyBsYWJlbHMgc8OpcGFyw6lzIHBvdXIgY2hhcXVlIGNvbnRyw7RsZTwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkRhbnMgbGUgY2FzIGRcJ3VuIGZvcm11bGFpcmUgw6AgcGx1c2lldXJzIHBhZ2VzLCB2b3VzIGF1cmV6IGF1c3NpIGFjY8OocyDDoCBsYSB2YWxldXIgZGVzIGNoYW1wcyBwcsOpY8OpZGVudHMuIElscyBzb250IGRhbnMgJHByZXZpb3VzIGFycmF5LCBvdSBhY2Nlc3NpYmxlcyBwYXIgbGV1cnMgbm9tcyAoZXguIDogeyRteWZpZWxkLT52YWx1ZX0gKS4NClZvdXMgcG91dmV6IGF1c3NpIHV0aWxpc2VyIFN0YXRpYyBUZXh0IGZpZWxkcywgY2UgcXVpIGNvbnN0aXR1ZSB1bmUgYm9ubmUgZmHDp29uIGRlIHBlcnNvbm5hbGlzZXIgdm9zIGZvcm11bGFpcmVzICE8L3A+DQoNCjxwPkRhbnMgY2VydGFpbnMgY2FzLCBmaWVsZC0+aW5wdXQgZXN0IGVuIGZhaXQgdW4gZ3JvdXBlIGRcJ29iamV0cyBwbHV0w7R0IHF1XCd1bmUgZW50csOpZS4gw4dhIGFycml2ZSwgcGFyIGV4ZW1wbGUsIGRhbnMgQ2hlY2tCb3hHcm91cHMgb3UgUmFkaW9CdXR0b25Hcm91cHMuIERhbnMgY2UgY2FzLCB2b3VzIHBvdXZleiBsZXMgcsOpcMOpdGVyIGF2ZWMgZmllbGQtPmlucHV0LT5uYW1lIGV0IGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPlZvaWNpIGxlcyB2YXJpYWJsZXMgc21hcnR5IGNvbXBsw6ltZW50YWlyZXMgcXVlIHZvdXMgcG91dmV6IHV0aWxpc2VyIDo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsZXVyPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm5vbWJyZSBkZSBwYWdlcyBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGktcGFnZXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bcOpcm8gZGUgbGEgcGFnZSBjb3VycmFudGUgcG91ciB1biBmb3JtdWxhaXJlIG11bHRpLXBhZ2VzPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmFmZmljaGUgInBhZ2UgeCBkZSB5IiBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGktcGFnZXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkxhIGNsYXNzZSBDU1MgcG91ciBsZSBmb3JtdWxhaXJlPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Ob20gZHUgZm9ybXVsYWlyZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPklEIGRlIGxhIGJhc2UgZGUgZG9ubsOpZXMgZHUgZm9ybXVsYWlyZTwvdGQ+PC90cj4NCg0KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgU2kgbGUgZm9ybXVsYWlyZSBlc3QgYWZmaWNow6kgw6AgcGFydGlyIGRlIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgU2kgbGUgZm9ybXVsYWlyZSBlc3QgdmlzdWFsaXPDqSBkZSBsXCdhZG1pbmlzdHJhdGlvbiBkZSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+SUQgZGUgcmV0b3VyIHNpIGxlIGZvcm11bGFpcmUgZXN0IGFmZmljaMOpIMOgIHBhcnRpciBkZSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+Qm91dG9uICJSZWN1bGVyIiBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGlwbGU8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPkJvdXRvbiAiU3VpdmFudCIgb3IgIkVudm95ZXIiICBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGlwbGUsIGFqdXN0ZXIgYXV0b21hdGlxdWVtZW50PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkplIG5lIHNhaXMgcGFzIHBvdXJxdW9pIHZvdXMgdm91bGlleiDDp2EsIG1haXMgbGVzIHZvaWzDoC4uLjwvcD4nOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnRm9ybUJ1aWxkZXIgZXN0IGluc3RhbGzDqS4gTWVyY2kgZGUgY29uc3VsdGVyIGxcJ2FpZGUgZHUgbW9kdWxlIHBvdXIgbGEgZG9jdW1lbnRhdGlvbi4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/hu_HU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gc3plcmtlc3p0xZEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsRnJvbUZFVVByb3BlcnR5J10gPSAnKkVtYWlsIHVzZXJzIG1hdGNoaW5nIGFuIEZFVSBwcm9wZXJ0eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0EgbWV6xZEgdCZpYWN1dGU7cHVzYSBuaW5jcyBiZSZhYWN1dGU7bGwmaWFjdXRlO3R2YSc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBOdW1iZXIgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdQYXNzd29yZCBBZ2FpbiAodmVyaWZ5KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnU3omb3VtbDt2ZWcgdGVyJnV1bWw7bGV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdHb21iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0plbCZvdW1sO2zFkW4mZWFjdXRlO2d5emV0ICc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0plbCZvdW1sO2zFkW4mZWFjdXRlO2d5emV0IGNzb3BvcnQnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ1llYXIgUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGljIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChVc2VyLWVudGVyZWQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctSGlkZGVuIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1Db21wdXRlZCBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1Vc2VyIERlZmluZWQgVGFnIENhbGwnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsZSBJbnRlcmZhY2UgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdDaGVja2JveCBleHRlbmRlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9lbXB0eSddID0gJ0NhbiYjMDM5O3QgYmUgZW1wdHknOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdOb3QgUmVxdWlyZWQnOwokbGFuZ1snbm90X2F2YWlsYWJsZSddID0gJ05vdCBBdmFpbGFibGUnOwokbGFuZ1snZXJyb3JfZW1haWxmcm9tZmV1cHJvcCddID0gJ0Vycm9yIGluIEZpZWxkIFNldHVwJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnVGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGNvdWxkIG5vdCBiZSBmb3VuZC4gIFRoaXMgZmllbGQgd2lsbCBub3QgZnVuY3Rpb24uJzsKJGxhbmdbJ2Vycm9yX25vZmV1ZGVmbnMnXSA9ICdObyBzdWl0YWJsZSBGRVUgcHJvcGVydHkgY291bGQgYmUgZm91bmQuICBUaGlzIGZpZWxkIHdpbGwgbm90IGZ1bmN0aW9uLic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnSyZlYWN1dGU7cmomdXVtbDtrLCB0Jm91bWw7bHRzZSBraSBheiBhbCZhYWN1dGU7YmJpIG1lesWRICZlYWN1dGU7cnQmZWFjdXRlO2smZWFjdXRlO3Q6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFbWFpbCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIHZhbHVlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdQbGVhc2UgbG9nIGluIHRvIHVzZSB0aGlzIGZvcm0nOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnQSBtZXrFkXNvcmVuZGV0IGZyaXNzJmlhY3V0ZTt0ZXR0JnV1bWw7ay4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnQSBmb3Jtb3QgdCZvdW1sO3Imb3VtbDtsdCZ1dW1sO2suJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdBIG1lesWRdCB0Jm91bWw7ciZvdW1sO2x0JnV1bWw7ay4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQSBrb25maWd1ciZhYWN1dGU7Y2kmb2FjdXRlO3QgZnJpc3MmaWFjdXRlO3RldHQmdXVtbDtrLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1lvdSBtdXN0IGNoZWNrICZxdW90OyVzJnF1b3Q7IGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAmcXVvdDslcyZxdW90OyBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ25vX2ZpZWxkX2Fzc2lnbmVkJ10gPSAnTm8gZmllbGQgYXNzaWduZWQgZm9yICVzJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnU29ycmVuZCc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaW5jcyBtZWdhZHZhXSc7CiRsYW5nWydhZGRlZCddID0gJ2hvenomYWFjdXRlO2FkdmEnOwokbGFuZ1sndXBkYXRlZCddID0gJ2ZyaXNzJmlhY3V0ZTt0dmUnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnSyZlYWN1dGU7cmomdXVtbDtrLCB2JmFhY3V0ZTtsYXNzem9uJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWyd5ZXMnXSA9ICdJZ2VuJzsKJGxhbmdbJ25vJ10gPSAnTmVtJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdjJmlhY3V0ZTttemV0dGVrJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ2ZpZWxkcyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ01lbnQmZWFjdXRlO3MnOwokbGFuZ1snYWRkJ10gPSAnSG96eiZhYWN1dGU7YWQmYWFjdXRlO3MnOwokbGFuZ1sndXBkYXRlJ10gPSAnRnJpc3MmaWFjdXRlO3QmZWFjdXRlO3MnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdNZW50JmVhY3V0ZTtzICZlYWN1dGU7cyBhIHN6ZXJrZXN6dCZlYWN1dGU7cyBmb2x5dGF0JmFhY3V0ZTtzYSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybSZhYWN1dGU7Y2kmb2FjdXRlOyc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWt1cyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1vayc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXImYWFjdXRlO2NpJm9hY3V0ZTsnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0EgbWV6xZEgayZvdW1sO3RlbGV6xZFzJmVhY3V0ZTtnaSAmYWFjdXRlO2xsYXBvdCZhYWN1dGU7dCBmcmlzcyZpYWN1dGU7dGV0dCZ1dW1sO2suJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gbSZlYWN1dGU7cmV0JzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnS2l0ZXJqZXN6dCZlYWN1dGU7c2VrJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdNZWdlbmdlZGV0dCBmJmFhY3V0ZTtqbCB0JmlhY3V0ZTtwdXNvayc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdGZWx0Jm91bWw7bHQmZWFjdXRlO3MnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0EgZm9ybW90IGltcG9ydCZhYWN1dGU7bHR1ay4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBzb3InOwokbGFuZ1snY29scyddID0gJyVzIG9zemxvcCc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgJm9hY3V0ZTtyJmFhY3V0ZTtzICZvYWN1dGU7cmEnOwokbGFuZ1snMjRfaG91ciddID0gJzI0ICZvYWN1dGU7ciZhYWN1dGU7cyAmb2FjdXRlO3JhJzsKJGxhbmdbJ2hvdXInXSA9ICcmT2FjdXRlO3JhJzsKJGxhbmdbJ21pbiddID0gJ1BlcmMnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnVGFydG9tJmFhY3V0ZTtueTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdLJm91bWw7c3omb3VtbDtuaiZ1dW1sO2shIFYmYWFjdXRlO2xhc3phaXQgdG92JmFhY3V0ZTtiYiZpYWN1dGU7dG90dHVrLic7CiRsYW5nWydlZGl0J10gPSAnU3plcmtlc3p0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1Qmb3VtbDtybCZlYWN1dGU7cyc7CiRsYW5nWydkYXknXSA9ICdOYXAnOwokbGFuZ1snbW9uJ10gPSAnSCZvYWN1dGU7bmFwJzsKJGxhbmdbJ3llYXInXSA9ICcmRWFjdXRlO3YnOwokbGFuZ1snbm9uZSddID0gJygmdXVtbDtyZXMpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdWaXNzemEuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0VsayZ1dW1sO2xkJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1RvdiZhYWN1dGU7YmIuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZWNrZWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnVW5jaGVja2VkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybSBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0FkdmFuY2VkIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm0gVGVtcGxhdGUnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1sndGFiX3VkdCddID0gJ1VEVCBJbnRlZ3JhdGlvbic7CiRsYW5nWyd0aXRsZV9mZXVfcHJvcGVydHknXSA9ICdGcm9udEVuZFVzZXJzIFByb3BlcnR5JzsKJGxhbmdbJ2luZm9fZmV1X3Byb3BlcnR5J10gPSAnT25seSBjZXJ0YWluIHByb3BlcnR5IHR5cGVzIGNhbiBiZSB1c2VkIGZvciBtYXRjaGluZyAoZHJvcGRvd25zLCBtdWx0aXNlbGVjdCBmaWVsZHMsIGV0YykuJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJyZVYWN1dGU7amFiYiBjJmVhY3V0ZTtsIGhvenomYWFjdXRlO2FkJmFhY3V0ZTtzYSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLaWplbCZvdW1sO2x0IGMmZWFjdXRlO2xvayB0Jm91bWw7cmwmZWFjdXRlO3NlJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnQXogYWwmYWFjdXRlO2JiaSBJUCBjJmlhY3V0ZTttZXQgc3BhbS1neWFuJnVhY3V0ZTsgbWlhdHQgYmxva2tvbHR1azogJXMnOwokbGFuZ1sncmVvcmRlciddID0gJ01lesWRayAmYWFjdXRlO3RyZW5kZXomZWFjdXRlO3NlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ00mZWFjdXRlO2dzZW0nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnQmUmYWFjdXRlO2xsJmlhY3V0ZTt0b3R0ICZlYWN1dGU7cnQmZWFjdXRlO2s6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWyd0aXRsZV90ZXh0ZmllbGRfbGFiZWwnXSA9ICdUZXh0ZmllbGQgbGFiZWwnOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdTaG93IHRleHRmaWVsZD8nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZpZWxkIEhlaWdodCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1VzZXIgRGVmaW5lZCBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlJ10gPSAnQWxsb3cgdXBsb2FkIHRvIG92ZXJ3cml0ZSBwcmV2aW91c2x5IGZpbGVzPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ1Nob3VsZCB1cGxvYWRlZCBmaWxlIG92ZXJ3cml0ZSBwcmV2aW91c2x5IHVwbG9hZGVkIGZpbGUgaWYgaXQgaGFzIHRoZSBzYW1lIG5hbWU/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ0FsbG93cyBPdmVyd3JpdGluZyc7CiRsYW5nWydub292ZXJ3cml0ZSddID0gJ05vIE92ZXJ3cml0ZSc7CiRsYW5nWydmaWxlX2FscmVhZHlfZXhpc3RzJ10gPSAnRmlsZSAlcyBhbHJlYWR5IGV4aXN0cywgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlbi4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXSA9ICdGaWxlbmFtZSB0ZW1wbGF0ZSc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ09yaWdpbmFsIGZpbGUgZXh0ZW5zaW9uIChpbmNsdWRlcyB0aGUgJnF1b3Q7LiZxdW90OyknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdTdXBwcmVzcyBmaWxlbmFtZSBpbiBlbWFpbHMgYW5kIGZvcm1zIHRoZSBlbmQgdXNlciB3aWxsIHNlZSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19hdHRhY2htZW50J10gPSAnRGVueSBmaWxlIHRvIGJlIGF0dGFjaGVkIHdpdGggZW1haWxzJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdUbyByZW5hbWUgYSBmaWxlIHVwb24gdXBsb2FkaW5nLCBjcmVhdGUgdGhlIHRlbXBsYXRlIGhlcmUuIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIG9yaWdpbmFsIGZpbGVuYW1lJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ0EgJnF1b3Q7SyZlYWN1dGU7cmomdXVtbDtrLCB2JmFhY3V0ZTtsYXNzem9uJnF1b3Q7IHN6Jm91bWw7dmVnZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGaWVsZCB0byBWYWxpZGF0ZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBkdXJpbmcgZm9ybSB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdNYXhpbXVtIGxlbmd0aCBvZiBmaWVsZCBjb250ZW50ICgwIG9yIGJsYW5rIG1lYW5zIG5vIGxpbWl0KSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ1JlYWQgT25seSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlcyBpbnRvJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnZGUuJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdkdS4nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheSYjMDM5O3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIHN0b3JlZCBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdGUgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UuIChJZiB1c2luZyBPcGVuU1NMLCB0aGlzIGlzIHRoZSBwYXNzcGhyYXNlIGZvciB0aGUgcHJpdmF0ZSBrZXkpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1N0b3JhZ2UgRW5jcnlwdGlvbiBVbmF2YWlsYWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBDVVJMIHN1cHBvcnQgYWN0aXZlIGluIHlvdXIgUEhQIGluc3RhbGwuIFNlZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdSdW4gaW4gTUxFIE1vZGUnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ0NoYW5nZXMvc3VwcG9ydCBmb3IgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiBmb3JrLiBEbyBub3QgY2hlY2sgdGhpcyBpZiB5b3UgYXJlIG5vdCBydW5uaW5nIHRoZSBNTEUgdmVyc2lvbi4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnRW5zdXJlIHRoYXQgeW91IHNlbGVjdCB0aGUgcHJpdmF0ZSBrZXkgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IgdGhlIGNlcnRpZmljYXRlIHlvdSBhcmUgdXNpbmcgZm9yIGVuY3J5cHRpb24hJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDaGVjayB0aGlzIHRvIGVuY3J5cHQgdGhlIHN0b3JlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IChidXQgbm90IGltcG9zc2libGUpIGZvciBoYWNrZXJzIHRvIHZpZXcgdGhlIGluZm9ybWF0aW9uLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ1RoZSBvcHRpb25zIGJlbG93IG9ubHkgYXBwbHkgaWYgeW91IGFyZSB1c2luZyB0aGUgT3BlblNTTCBFbmNyeXB0aW9uIGxpYnJhcnknOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIExpYnJhcnknOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciBiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIEZyb250ZW5kIFVzZXIgbW9kdWxlIHRvIGNvbm5lY3QgYSBmb3JtIGFuZCBpdHMgZGF0YSB0byBhIHNwZWNpZmljIHVzZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybSYjMDM5O3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnRW5jcnlwdGlvbic7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/IChkbyBub3QgZG8gdGhpcyBpZiB5b3UgYXJlIGdvaW5nIHRvIHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0VudGlyZSBVUkwsIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgcGF0aCAoZS5nLiwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnRm9ybSBzdWJtaXNzaW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdGb3JtIG1ldGhvZCc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICZxdW90OyVzJnF1b3Q7IHRvIGZvcm0gc3VibWlzc2lvbiB2YXJpYWJsZSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnQWRkaXRpb25hbCBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ0FueXRoaW5nIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBzdWJtaXNzaW9uIHBheWxvYWQsIGluIFVSTC1lbmNvZGVkIGZvcm0gKC5lLmcsICZxdW90O3VzZXI9c3RldmUram9icyZhbXA7ZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ0luY2x1ZGUgZmllbGQgaW4gU3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnRGF0ZSBjb21wb25lbnQgZmllbGQgb3JkZXIgKGZvciBpbnB1dCknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZm9ybWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIEZvcm0gQnJvd3NlciBEaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddID0gJ1VzZSAmcXVvdDttJnF1b3Q7IGZvciBNb250aCwgJnF1b3Q7ZCZxdW90OyBmb3IgRGF5LCBhbmQgJnF1b3Q7eSZxdW90OyBmb3IgWWVhci4gU2VwYXJhdGUgdGhlIGl0ZW1zIGJ5IGh5cGhlbnMuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdVc2UgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW5zdGVhZCBvZiBzdGF0aWMnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvdyBtYW55IG51bWJlcnMgdG8gZ2VuZXJhdGUgaW4gcHJvY2Vzcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2hlbHBfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgZmlsZSBsb2NhdGVkIGluIHRoZSBGb3JtQnVpbGRlci90ZW1wbGF0ZXMvIGZvbGRlci4gVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmIHlvdSB1c2UgVFhUIGFzIHlvdXIgZmlsZSB0eXBlLic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+DQpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+DQombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4NCkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gJnF1b3Q7QmFzaWMmcXVvdDsuPGJyIC8+DQpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAmcXVvdDtSVEYmcXVvdDsgYXMgRmlsZSBUeXBlIGFuZCAmcXVvdDtBZHZhbmNlZCZxdW90OyBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlSEVBREVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydoZWxwX2ZpbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGT09URVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEZvb3RlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGZvb3RlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFJURiBmaWxlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvdXRwdXQnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ10gPSAnQ2hvb3NlIGEgZmlsZSB0eXBlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Nob29zZSBhbiBSVEYgdGVtcGxhdGUgdHlwZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnRGF0ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgc3VibWl0dGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGV4dCB0byBkaXNwbGF5IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJpbmcgKG5vIHNwYWNlcyBiZXR3ZWVuIGZpZWxkcyk/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdDb21wdXRlZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3omb3VtbDt2ZWcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWt1cyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWVkIG1vcmUgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1N3aXRjaCB0byBBZHZhbmNlZCBNb2RlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU3dpdGNoIHRvIFNpbXBsZSBNb2RlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdCYWNrIHRvIEZvcm1CdWlsZGVyIE1haW4gUGFnZSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1doaWNoIGVtYWlsIGhlYWRlcnMgc2hvdWxkIHRoaXMgaW5wdXQgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdEbyBub3QgYWNjZXB0IGJsYW5rIHNwYWNlIGFzIHZhbGlkIHJlc3BvbnNlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0lmIGEgZmllbGQgaXMgcmVxdWlyZWQsIGNoZWNraW5nIHRoaXMgd2lsbCByZXF1aXJlIHRoYXQgcGVvcGxlIHB1dCBpbiBzb21lIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBub3QganVzdCBzcGFjZXMnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnWW91IG11c3QgY2xpY2sgb25lIG9mIHRoZSAmcXVvdDtzYXZlJnF1b3Q7IGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXNlIEhUTUw1IHBsYWNlaG9sZGVyIHRleHQgaW5zdGVhZCBvZiBKYXZhc2NyaXB0JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHkgZGF0YSBvciBsb2dpYyB0aGF0IGlzIG1lYW50IHRvIGJlIHNlbnQgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdDYW4gYmUgc21hcnR5IGRhdGEsIGphdmFzY3JpcHQsIG9yIHNvbWUgb3RoZXIgZGF0YSB5b3Ugd2FudCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5rIHRoaXMgZmllbGQgdG8gaXQmIzAzOTtzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXQmIzAzOTtzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0hpZGUgY29udHJvbCBidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFrZSByZWNvcmRzIGFjY2Vzc2libGUgdG8gU2VhcmNoIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWyd0aXRsZV9mYnJfZWRpdCddID0gJ0VkaXRhYmxlIGluIEZvcm1Ccm93c2VyIEFkbWluPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnVXNpbmcgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+DQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4NCgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnQWRkIHlvdXIgdGFnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBTCddID0gJ0FsYmFuaWEnOwokbGFuZ1snRFonXSA9ICdBbGdlcmlhJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBhbmQgQmFyYnVkYSc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluYSc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEnOwokbGFuZ1snQVcnXSA9ICdBcnViYSc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpYSc7CiRsYW5nWydBVCddID0gJ0F1c3RyaWEnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyc7CiRsYW5nWydCSCddID0gJ0JhaHJhaW4nOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXSA9ICdCZWxhcnVzJzsKJGxhbmdbJ0JFJ10gPSAnQmVsZ2l1bSc7CiRsYW5nWydCWiddID0gJ0JlbGl6ZSc7CiRsYW5nWydCSiddID0gJ0JlbmluJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSc7CiRsYW5nWydCVCddID0gJ0JodXRhbic7CiRsYW5nWydCVyddID0gJ0JvdHN3YW5hJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSc7CiRsYW5nWydCQSddID0gJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXSA9ICdCb3V2ZXQgSXNsYW5kJzsKJGxhbmdbJ0JSJ10gPSAnQnJhemlsJzsKJGxhbmdbJ0lPJ10gPSAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0nOwokbGFuZ1snQkcnXSA9ICdCdWxnYXJpYSc7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGknOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RpYSc7CiRsYW5nWydDTSddID0gJ0NhbWVyb29uJzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhJzsKJGxhbmdbJ0NWJ10gPSAnQ2FwZSBWZXJkZSc7CiRsYW5nWydLWSddID0gJ0NheW1hbiBJc2xhbmRzJzsKJGxhbmdbJ0NGJ10gPSAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJzsKJGxhbmdbJ1REJ10gPSAnQ2hhZCc7CiRsYW5nWydDTCddID0gJ0NoaWxlJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmEnOwokbGFuZ1snQ1gnXSA9ICdDaHJpc3RtYXMgSXNsYW5kJzsKJGxhbmdbJ0NDJ10gPSAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSc7CiRsYW5nWydLTSddID0gJ0NvbW9yb3MnOwokbGFuZ1snQ0cnXSA9ICdDb25nbyc7CiRsYW5nWydDRCddID0gJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc7CiRsYW5nWydDSyddID0gJ0Nvb2sgSXNsYW5kcyc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EnOwokbGFuZ1snQ0knXSA9ICdJdm9pcmUgKEl2b3J5IENvYXN0KSc7CiRsYW5nWydIUiddID0gJ0Nyb2F0aWEgKEhydmF0c2thKSc7CiRsYW5nWydDVSddID0gJ0N1YmEnOwokbGFuZ1snQ1knXSA9ICdDeXBydXMnOwokbGFuZ1snQ1onXSA9ICdDemVjaCBSZXB1YmxpYyc7CiRsYW5nWydESyddID0gJ0Rlbm1hcmsnOwokbGFuZ1snREonXSA9ICdEamlib3V0aSc7CiRsYW5nWydETSddID0gJ0RvbWluaWNhJzsKJGxhbmdbJ0RPJ10gPSAnRG9taW5pY2FuIFJlcHVibGljJzsKJGxhbmdbJ1RQJ10gPSAnRWFzdCBUaW1vcic7CiRsYW5nWydFQyddID0gJ0VjdWFkb3InOwokbGFuZ1snRUcnXSA9ICdFZ3lwdCc7CiRsYW5nWydTViddID0gJ0VsIFNhbHZhZG9yJzsKJGxhbmdbJ0dRJ10gPSAnRXF1YXRvcmlhbCBHdWluZWEnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhJzsKJGxhbmdbJ0VFJ10gPSAnRXN0b25pYSc7CiRsYW5nWydFVCddID0gJ0V0aGlvcGlhJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJzsKJGxhbmdbJ0ZPJ10gPSAnRmFyb2UgSXNsYW5kcyc7CiRsYW5nWydGSiddID0gJ0ZpamknOwokbGFuZ1snRkknXSA9ICdGaW5sYW5kJzsKJGxhbmdbJ0ZSJ10gPSAnRnJhbmNlJzsKJGxhbmdbJ0ZYJ10gPSAnRnJhbmNlLCAgTWV0cm9wb2xpdGFuJzsKJGxhbmdbJ0dGJ10gPSAnR3Vlcm5zZXknOwokbGFuZ1snUEYnXSA9ICdGcmVuY2ggUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ10gPSAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjZWRvbmlhKSc7CiRsYW5nWydHQSddID0gJ0dhYm9uJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmlhJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpYSc7CiRsYW5nWydERSddID0gJ0dlcm1hbnknOwokbGFuZ1snR0gnXSA9ICdHaGFuYSc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhcic7CiRsYW5nWydHQiddID0gJ0dyZWF0IEJyaXRhaW4gKFVLKSc7CiRsYW5nWydHUiddID0gJ0dyZWVjZSc7CiRsYW5nWydHTCddID0gJ0dyZWVubGFuZCc7CiRsYW5nWydHRCddID0gJ0dyZW5hZGEnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlJzsKJGxhbmdbJ0dVJ10gPSAnR3VhbSc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSc7CiRsYW5nWydHVyddID0gJ0d1aW5lYS1CaXNzYXUnOwokbGFuZ1snR1knXSA9ICdHdXlhbmEnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCBJc2xhbmRzJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMnOwokbGFuZ1snSEsnXSA9ICdIb25nIEtvbmcnOwokbGFuZ1snSFUnXSA9ICdIdW5nYXJ5JzsKJGxhbmdbJ0lTJ10gPSAnSWNlbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb25lc2lhJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbic7CiRsYW5nWydJUSddID0gJ0lyYXEnOwokbGFuZ1snSUUnXSA9ICdJcmVsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYWVsJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4nOwokbGFuZ1snSVQnXSA9ICdJdGFseSc7CiRsYW5nWydKRSddID0gJ0plcnNleSc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EnOwokbGFuZ1snSlAnXSA9ICdKYXBhbic7CiRsYW5nWydKTyddID0gJ0pvcmRhbic7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW55YSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcnRoKSc7CiRsYW5nWydLUiddID0gJ0tvcmVhIChTb3V0aCknOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyc7CiRsYW5nWydMViddID0gJ0xhdHZpYSc7CiRsYW5nWydMQiddID0gJ0xlYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSc7CiRsYW5nWydMWSddID0gJ0xpYnlhJzsKJGxhbmdbJ0xTJ10gPSAnTGVzb3Robyc7CiRsYW5nWydMVCddID0gJ0xpdGh1YW5pYSc7CiRsYW5nWydMVSddID0gJ0x1eGVtYm91cmcnOwokbGFuZ1snTU8nXSA9ICdNYWNhdSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXInOwokbGFuZ1snTVcnXSA9ICdNYWxhd2knOwokbGFuZ1snTVknXSA9ICdNYWxheXNpYSc7CiRsYW5nWydNViddID0gJ01hbGRpdmVzJzsKJGxhbmdbJ01MJ10gPSAnTWFsaSc7CiRsYW5nWydNVCddID0gJ01hbHRhJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyc7CiRsYW5nWydNUSddID0gJ01hcnRpbmlxdWUnOwokbGFuZ1snTVInXSA9ICdNYXVyaXRhbmlhJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzJzsKJGxhbmdbJ1lUJ10gPSAnTWF5b3R0ZSc7CiRsYW5nWydNWCddID0gJ01leGljbyc7CiRsYW5nWydGTSddID0gJ01pY3JvbmVzaWEnOwokbGFuZ1snTUMnXSA9ICdNb25hY28nOwokbGFuZ1snTUQnXSA9ICdNb2xkb3ZhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2Njbyc7CiRsYW5nWydNTiddID0gJ01vbmdvbGlhJzsKJGxhbmdbJ01TJ10gPSAnTW9udHNlcnJhdCc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyJzsKJGxhbmdbJ05BJ10gPSAnTmFtaWJpYSc7CiRsYW5nWydOUiddID0gJ05hdXJ1JzsKJGxhbmdbJ05QJ10gPSAnTmVwYWwnOwokbGFuZ1snTkwnXSA9ICdOZXRoZXJsYW5kcyc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRzIEFudGlsbGVzJzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhbCBab25lJzsKJGxhbmdbJ05DJ10gPSAnTmV3IENhbGVkb25pYSc7CiRsYW5nWydOWiddID0gJ05ldyBaZWFsYW5kIChBb3RlYXJvYSknOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEnOwokbGFuZ1snTkUnXSA9ICdOaWdlcic7CiRsYW5nWydORyddID0gJ05pZ2VyaWEnOwokbGFuZ1snTlUnXSA9ICdOaXVlJzsKJGxhbmdbJ05GJ10gPSAnTm9yZm9sayBJc2xhbmQnOwokbGFuZ1snTVAnXSA9ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnOwokbGFuZ1snTk8nXSA9ICdOb3J3YXknOwokbGFuZ1snT00nXSA9ICdPbWFuJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4nOwokbGFuZ1snUFcnXSA9ICdQYWxhdSc7CiRsYW5nWydQUyddID0gJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSc7CiRsYW5nWydQRyddID0gJ1BhcHVhIE5ldyBHdWluZWEnOwokbGFuZ1snUFknXSA9ICdQYXJhZ3VheSc7CiRsYW5nWydQRSddID0gJ1BlcnUnOwokbGFuZ1snUEgnXSA9ICdQaGlsaXBwaW5lcyc7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BMJ10gPSAnUG9sYW5kJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyc7CiRsYW5nWydRQSddID0gJ1FhdGFyJzsKJGxhbmdbJ1JFJ10gPSAnUmV1bmlvbic7CiRsYW5nWydSTyddID0gJ1JvbWFuaWEnOwokbGFuZ1snUlUnXSA9ICdSdXNzaWFuIEZlZGVyYXRpb24nOwokbGFuZ1snUlcnXSA9ICdSd2FuZGEnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLic7CiRsYW5nWydLTiddID0gJ1NhaW50IEtpdHRzIGFuZCBOZXZpcyc7CiRsYW5nWydMQyddID0gJ1NhaW50IEx1Y2lhJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyc7CiRsYW5nWydXUyddID0gJ1NhbW9hJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc7CiRsYW5nWydTQSddID0gJ1NhdWRpIEFyYWJpYSc7CiRsYW5nWydTTiddID0gJ1NlbmVnYWwnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVzJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lJzsKJGxhbmdbJ1NHJ10gPSAnU2luZ2Fwb3JlJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaWEnOwokbGFuZ1snU0snXSA9ICdTbG92YWsgUmVwdWJsaWMnOwokbGFuZ1snU0InXSA9ICdTb2xvbW9uIElzbGFuZHMnOwokbGFuZ1snU08nXSA9ICdTb21hbGlhJzsKJGxhbmdbJ1pBJ10gPSAnU291dGggQWZyaWNhJzsKJGxhbmdbJ0VTJ10gPSAnU3BhaW4nOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EnOwokbGFuZ1snU0gnXSA9ICdTdC4gSGVsZW5hJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSBhbmQgTWlxdWVsb24gJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4nOwokbGFuZ1snU1InXSA9ICdTdXJpbmFtZSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJc2xhbmRzJzsKJGxhbmdbJ1NaJ10gPSAnU3dhemlsYW5kJzsKJGxhbmdbJ1NFJ10gPSAnU3dlZGVuJzsKJGxhbmdbJ0NIJ10gPSAnU3dpdHplcmxhbmQnOwokbGFuZ1snU1knXSA9ICdTeXJpYSc7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW56YW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5pc2lhJzsKJGxhbmdbJ1RSJ10gPSAnVHVya2V5JzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1VHJ10gPSAnVWdhbmRhJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluZSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJzsKJGxhbmdbJ1VLJ10gPSAnVW5pdGVkIEtpbmdkb20nOwokbGFuZ1snVVMnXSA9ICdVbml0ZWQgU3RhdGVzJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyc7CiRsYW5nWydVWSddID0gJ1VydWd1YXknOwokbGFuZ1snVVonXSA9ICdVemJla2lzdGFuJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSc7CiRsYW5nWydWQSddID0gJ1ZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpJzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldCBOYW0nOwokbGFuZ1snVkcnXSA9ICdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLiknOwokbGFuZ1snV0YnXSA9ICdXYWxsaXMgYW5kIEZ1dHVuYSBJc2xhbmRzJzsKJGxhbmdbJ0VIJ10gPSAnV2VzdGVybiBTYWhhcmEnOwokbGFuZ1snWUUnXSA9ICdZZW1lbic7CiRsYW5nWydZVSddID0gJ1l1Z29zbGF2aWEnOwokbGFuZ1snWk0nXSA9ICdaYW1iaWEnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBuZXZlJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxiciAvPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48YnIgLz4NClBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjxiciAvPg0KQWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+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+RW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+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+DQo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gDQpzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAmcXVvdDtGb3JtQnVpbGRlciBEZWZhdWx0JnF1b3Q7IHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQ0KdGhhdCB5b3UgdXNlIGZvciBwYWdlcyB0aGF0IGNvbnRhaW4geW91ciBmb3JtLjwvcD4gIA0KPHA+VGhpcyBkZWZhdWx0IENTUyB3YXMgZ3JhY2lvdXNseSBwcm92aWRlZCBieSBQYXVsIE5vb25lLjwvcD4NCg0KDQo8aDM+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+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+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQmIzAzOTtzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzIGV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhIHNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjIxMjA5NTU5NzIuMTMxMjc4MjU3My4xMzEyNzgyNTczLjEzMTI3ODI1NzMuMSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTMxMjc4Mjg1Nyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMxMjc4MjU3My4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTUxMzkwOTkwLTEzMTI3ODI4NTczMTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxGcm9tRkVVUHJvcGVydHknXSA9ICcqRW1haWwgZGkgdXRlbnRpIGNoZSBjb3JyaXNwb25kb25vIGFkIHVuYSBwcm9wcmlldCZhZ3JhdmU7IEZFVSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcG8gZGVsIGNhbXBvIG5vbiBpbXBvc3RhdG8nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZXppb25hIHVubyAobyBwaSZ1Z3JhdmU7KSBlbGVtZW50aSBkZWwgY2F0YWxvZ28nOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW5lIEZpZWxkc2V0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1Jbml6aW8gRmllbGRzZXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdJbnB1dCB0ZXN0dWFsZSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdJbnB1dCBOdW1lcmljbyBIVE1MNSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0lucHV0IEVtYWlsIEhUTUw1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0lucHV0IFVSTCBIVE1MNSc7CiRsYW5nWydmaWVsZF90eXBlX1NpdGVBZG1pbkZpZWxkJ10gPSAnQW1taW5pc3RyYXRvcmUgZGVsIFNpdG8nOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdSaXBldGVyZSBQYXNzd29yZCAodmVyaWZpY2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0lucHV0IFRlc3R1YWxlIChNdWx0aXBsbyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnQXJlYSBkaSBUZXN0byc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnUHVsc2FudGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cHBvIGRpIENoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdNZW51IGEgdGVuZGluYSc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnU2VsZXppb25lIEFubm8nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnU2VsZXppb25lIE11bHRpcGxhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBTdGF0aSBVLlMuQS4nOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIHByb3ZpbmNpZSBDYW5hZGVzaSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBOYXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIERhdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlemlvbmUgT3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnR3J1cHBvIGRpIFJhZGlvIEJ1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqSW52aWEgcGVyIEVtYWlsIGkgUmlzdWx0YXRpIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiBiYXNlIGFsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiB1biBmaWxlIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZXppb25hIGxhIHBhZ2luYSBtb2RpZmljYW5kbyBsYSBzZWxlemlvbmUgZGVsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypJbnZpYSBwZXIgRW1haWwgaSByaXN1bHRhdGkgcGVyIGltcG9zdGFyZSBsJiMwMzk7aW5kaXJpenpvL2knOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYSB0cmFtaXRlIGluZGlyaXp6byBFbWFpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkludmlhIGNvcGlhIEVtYWlsIGFsIGNhbXBvICZxdW90O0RhIEluZGlyaXp6byZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY3JpdmkgaSByaXN1bHRhdGkgaW4gdW4gZmlsZSBub24gZm9ybWF0dGF0byc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSddID0gJypTY3JpdmkgcmlzdWx0YXRpIGluIHVuIGZpbGUgbm9uIGZvcm1hdHRhdG8gdW5pdm9jbyBwZXIgb2duaSBpbnZpbyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIG5lbCBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIHBlciBpbCBtb2R1bG8gRm9ybUJyb3dzZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqSW52b2NhIHVuIFRhZyBkZWZpbml0byBkYWxsJiMwMzk7dXRlbnRlIGNvbiBpIHJpc3VsdGF0aSBkZWwgbW9kdWxvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKkludmlhIGFkIHVuIGF6aW9uZSBtb2R1bG8gcGVyc29uYWxpenphdGEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkludmlhIHBlciBlbWFpbCBhbGwmIzAzOTtpbmRpcml6em8gZm9ybml0byBkYWxsJiMwMzk7dXRlbnRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCBhbGwmIzAzOTthZG1pbiBkZWwgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqSW52aWEgRW1haWwgYmFzYXRhIHN1aSBjYW1waSBsYXRvIHV0ZW50ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTGlzdEl0RXh0ZW5kZWQnXSA9ICcqU2FsdmEgaSByaXN1bHRhdGkgcGVyIExpc3RJdEV4dGVuZGVkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctSW50ZXJydXppb25lIGRpIHBhZ2luYSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0NhcmljYSBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnSW52aWEgcGVyIEVtYWlsIGlsIGNhbXBvICZxdW90O0Zyb20gQWRkcmVzcyZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnSW52aWEgcGVyIEVtYWlsIGlsIGNhbXBvICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBkaSBudW92byc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIE5hbWUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdJbnZpYSBwZXIgRW1haWwgaWwgY2FtcG8gJnF1b3Q7U3ViamVjdCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0NDRW1haWxBZGRyZXNzRmllbGQnXSA9ICdJbnZpYSBwZXIgRW1haWwgaW4gQ29waWEgQ2FyYm9uZSAoQ0MpIGFsIGNhbXBvIEluZGlyaXp6byc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXN0byBTdGF0aWNvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLUxpbmsgU3RhdGljbyc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKGluc2VyaXRvIGRhbGwmIzAzOTt1dGVudGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctQ2FtcG8gTmFzY29zdG8nOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNhbXBvIENvbXBpbGF0byc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1JbnRlcm8gVW5pY28gKFNlcmlhbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLUluc2VyaW1lbnRvIFRhZyBEZWZpbml0byBkYWxsJiMwMzk7dXRlbnRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnQ2FtcG8gQ29tcGFueSBEaXJlY3RvcnknOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy1DYW1wbyBNb2R1bG8gSW50ZXJmYWNjaWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdDYXNlbGxhIGRpIENvbnRyb2xsbyBlc3Rlc2EnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTmVzc3VuYSB2YWxpZGF6aW9uZSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljbyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlcm8nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnSW5kaXJpenpvIEVtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bWVybyB0ZWxlZm9uaWNvIChVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ0RldmUgZXNzZXJlIHNwdW50YXRvJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdDb2luY2lkZSBjb24gdW4mIzAzOTtFc3ByZXNzaW9uZSBSZWdvbGFyZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOb24gY29pbmNpZGUgY29uIHVuJiMwMzk7RXNwcmVzc2lvbmUgUmVnb2xhcmUnOwokbGFuZ1sndmFsaWRhdGlvbl9lbXB0eSddID0gJ05vbiBwdSZvZ3JhdmU7IGVzc2VyZSB2dW90byc7CiRsYW5nWydyZXF1aXJlZCddID0gJ1JpY2hpZXN0byc7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdOb24gbmVjZXNzYXJpbyc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTm9uIGRpc3BvbmliaWxlJzsKJGxhbmdbJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnXSA9ICdFcnJvcmUgbmVsbGUgaW1wb3N0YXppb25pIGRlbCBjYW1wbyc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ01vZHVsbyBGcm9udEVuZFVzZXJzIG5vbiB0cm92YXRvLiBRdWVzdG8gY2FtcG8gbm9uIGZ1bnppb25lciZhZ3JhdmU7Lic7CiRsYW5nWydlcnJvcl9ub2ZldWRlZm5zJ10gPSAnTm9uICZlZ3JhdmU7IHN0YXRhIHRyb3ZhdGEgYWxjdW5hIHByb3ByaWV0YSBGRVUgY29ycmlzcG9uZGVudGUuIFF1ZXN0byBjYW1wbyBub24gZnVuemlvbmVyJmFncmF2ZTsuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdVbiB2YWxvcmUgbm9uICZlZ3JhdmU7IHN0YXRvIGluc2VyaXRvIHBlciB1biBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0luc2VyaXJlIHVuIG51bWVybyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgaW50ZXJvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdJbnNlcmlyZSB1biBpbmRpcml6em8gZW1haWwgdmFsaWRvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnSW5kaXJpenpvIEVtYWlsIG5vbiBjb2luY2lkZSBjb24gdmFsb3JlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnSW5zZXJpcmUgdW4gbnVtZXJvIGRpIHRlbGVmb25vIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnRWZmZXR0dWF0ZSBsJiMwMzk7YWNjZXNzbyBwZXIgdXRpbGl6emFyZSBxdWVzdG8gbW9kdWxvJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5vbiBzZW1icmEgZXNzZXJlIHVuIGluZGlyaXp6byBlbWFpbCB2YWxpZG8hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdJbnNlcml0ZSB1biB2YWxvcmUgbm9uIHBpJnVncmF2ZTsgbHVuZ28gZGkgJXMgY2FyYXR0ZXJpJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ0ludGVyaXRlIHVuIHZhbG9yZSBzaSBhbG1lbm8gJXMgY2FyYXR0ZXJpJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2FyYXR0ZXJlIGRhIHVzYXJlIGNvbWUgZGVsaW1pdGF0b3JlIG5laSByaXN1bHRhdGkgY2hlIHJlc3RpdHVpc2Nvbm8gcGkmdWdyYXZlOyBkaSB1biB2YWxvcmUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0F2ZXRlIGJpc29nbm8gZGVsIHBlcm1lc3NvICZxdW90OyVzJnF1b3Q7IHBlciBlc2VndWlyZSBxdWVzdGEgb3BlcmF6aW9uZS4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTcGlhY2VudGUhIE5vbiBhdmV0ZSBpIHByaXZpbGVnaSBuZWNlc3NhcmkgcGVyIGFjY2VkZXJlIGEgcXVlc3RhIHNlemlvbmUuJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdPcmRpbmUgZGVpIGNhbXBpIGFnZ2lvcm5hdG8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ01vZHVsbyBlbGltaW5hdG8uJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdDYW1wbyBlbGltaW5hdG8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXppb25lIGFnZ2lvcm5hdGEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRG92ZXRlIHNlbGV6aW9uYXJlICZxdW90OyVzJnF1b3Q7IHBlciBjb250aW51YXJlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRG92ZXRlIHNwZWNpZmljYXJlIGFsbWVubyB1biBpbmRpcml6em8gZGkgZGVzdGluYXppb25lISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgY2FuY2VsbGFyZSBpbCBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnU2lldGUgc2ljdXJpIGRpIHZvbGVyIGNhbmNlbGxhcmUgaWwgY2FtcG8gJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ09wemlvbmkgYXZhbnphdGUgbm9uIHNvbm8gZGlzcG9uaWJpbGkgZmlubyBhbGxhIHNjZWx0YSBkZWwgdGlwbyBkaSBjYW1wby4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdJbCBub21lIGRlbCBjYW1wbyAmcXVvdDslcyZxdW90OyAmZWdyYXZlOyBnaSZhZ3JhdmU7IGluIHVzby4gU2kgcHJlZ2EgZGkgdXNhcmUgbm9taSBkZWkgY2FtcGkgdW5pdm9jaSwgbyBkaXNhYmlsaXRhcmUgbm9taSBkZWkgY2FtcGkgdW5pdm9jaSBuZWxsYSBjb25maWd1cmF6aW9uZSBkaSBGb3JtIEJ1aWxkZXIuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdJIGNhbXBpIGRldm9ubyBhdmVyZSB1biBub21lLCBhIG1lbm8gZGkgZGlzYWJpbGl0YXJlIGwmIzAzOTtvcHppb25lIG5lbGxhIGNvbmZpZ3VyYXppb25lIGRpIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdOZXNzdW4gY2FtcG8gYXNzZWduYXRvIHBlciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW1vJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMdW5naGV6emE6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgY2FzZWxsZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJSBvcHppb25pJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJSBjYXJhdHRlcmkuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkaW5lJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcGVjaWZpY2F0b10nOwokbGFuZ1snYWRkZWQnXSA9ICdhZ2dpdW50byc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWdnaW9ybmF0byc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRpbmEgbGUgb3B6aW9uaSBuZWxsJiMwMzk7b3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlemlvbmFyZSB1bm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlemlvbmFyZSB0aXBvJzsKJGxhbmdbJ3RvJ10gPSAnQSc7CiRsYW5nWyd5ZXMnXSA9ICdTJmlncmF2ZTsnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhcmknOwokbGFuZ1snZmllbGRzJ10gPSAnQ2FtcGknOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyUgcG9zc2liaWxpIGZpbGUnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hemlvbmknOwokbGFuZ1snc2F2ZSddID0gJ1NhbHZhJzsKJGxhbmdbJ2FkZCddID0gJ0FnZ2l1bmdpJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FnZ2lvcm5hJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2FsdmEgZSBjb250aW51YSBjb24gbGEgbW9kaWZpY2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hemlvbmUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydmb3JtcyddID0gJ01vZHVsaSc7CiRsYW5nWydmb3JtJ10gPSAnTW9kdWxvICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF6aW9uZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdG8gZGVsIGNhbXBvIHJpY2hpZXN0byBhZ2dpb3JuYXRvLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaXBpIGRpIGZpbGUgcGVybWVzc2knOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdJbCBmaWxlIGNhcmljYXRvICZlZ3JhdmU7IHRyb3BwbyBncmFuZGUhIExhIGRpbWVuc2lvbmUgbWFzc2ltYSAmZWdyYXZlOzonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdRdWVzdG8gdGlwbyBkaSBmaWxlIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBjYXJpY2F0by4gU2kgcHJlZ2EgZGkgdmVyaWZpY2FyZSBjaGUgbCYjMDM5O2VzdGVuc2lvbmUgc2lhIGNvcnJldHRhLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdDYXJpY2EnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0YXRvLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnRhemlvbmUgZGVsIEZvcm0gZmFsbGl0YSEgQyYjMDM5OyZlZ3JhdmU7IHVuIHByb2JsZW1hIGNvbiBpbCBmb3JtYXRvIGRlbCBmaWxlIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpZ2hlJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xvbm5lJzsKJGxhbmdbJzEyX2hvdXInXSA9ICdGb3JtYXRvIDEyIG9yZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnRm9ybWF0byAyNCBvcmUnOwokbGFuZ1snaG91ciddID0gJ09yZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGknOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0dhbW1hIFZhbG9yaTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdHcmF6aWUhIElsIHZvc3RybyBpbnNlcmltZW50byAmZWdyYXZlOyBzdGF0byByaWNldnV0by4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmEnOwokbGFuZ1snZGF5J10gPSAnR2lvcm5vJzsKJGxhbmdbJ21vbiddID0gJ01lc2UnOwokbGFuZ1sneWVhciddID0gJ0Fubm8nOwokbGFuZ1snbm9uZSddID0gJyhuZXNzdW5vKSc7CiRsYW5nWydjc3MnXSA9ICdTdGlsaSBDU1MnOwokbGFuZ1snbm90aWNlJ10gPSAnTk9USUZJQ0EnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0dlbmVyYWxlJzsKJGxhbmdbJ2Fib3V0J10gPSAnSW5mb3JtYXppb25pJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ01vZGVsbGknOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdBdmFuemF0byc7CiRsYW5nWydzdHlsaW5nJ10gPSAnU3RpbGknOwokbGFuZ1sndGVhbSddID0gJ0dydXBwbyc7CiRsYW5nWydjb250cmlidXRvcnMnXSA9ICdDb2xsYWJvcmF0b3JpJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxvIGRpc2luc3RhbGxhdG8uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ1ZlcnNpb25lIG1vZHVsbyAlcyBpbnN0YWxsYXRhLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsbyBhZ2dpb3JuYXRvIGFsbGEgdmVyc2lvbmUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ0luZGlldHJvLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdJbnZpYSBGb3JtJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVhLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdTZWxlemlvbmF0byc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdEZXNlbGV6aW9uYXRvJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUHJpbmNpcGFsZSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnSW1wb3N0YXppb25pIGRpIHZpc3VhbGl6emF6aW9uZSBkZWwgRm9ybSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnSW52aW8gZGVsIEZvcm0nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdJbXBvc3RhemlvbmkgQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdJbXBvc3RhemlvbmkgQXZhbnphdGUnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTW9kZWxsbyBNb2R1bG8nOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ01vZGVsbG8gcGVyIGwmIzAzOTtpbnZpbyc7CiRsYW5nWyd0YWJfdWR0J10gPSAnSW50ZWdyYXppb25lIFVEVCc7CiRsYW5nWyd0aXRsZV9mZXVfcHJvcGVydHknXSA9ICdQcm9wcmlldCZhZ3JhdmU7IEZyb250RW5kVXNlcnMnOwokbGFuZ1snaW5mb19mZXVfcHJvcGVydHknXSA9ICdQZXIgY2VyY2FyZSBjb3JyaXNwb25kZW56ZSBwb3Nzb25vIGVzc2VyZSB1dGlsaXp6YXRpIHNvbG8gYWxjdW5pIHRpcGkgZGkgcHJvcHJpZXQmYWdyYXZlOyAobWVudSBhIHRlbmRpbmEsIGNhbXBpIGEgc2VsZXppb25lIG11bHRpcGxhLCBldGMuKS4nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5MZSBWYXJpYWJpbGkgc21hcnR5IHNvbm8gYWNjZXR0YXRlIHBlciBxdWVzdG8gY2FtcG8uPGVtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FnZ2l1bmdpIHBpJnVncmF2ZTsgb3B6aW9uaSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0VsaW1pbmEgbGUgb3B6aW9uaSBzZWxlemlvbmF0ZSc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FnZ2l1bmdpIHBpJnVncmF2ZTsgQ2FzZWxsZSBhIHNwdW50YSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0VsaW1pbmEgbGUgQ2FzZWxsZSBzZWxlemlvbmF0ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FnZ2l1bmdpIHVuIGFsdHJvIEluZGlyaXp6byc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0VsaW1pbmEgZ2xpIEluZGlyaXp6aSBzZWxlemlvbmF0aSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZ2dpdW5naSB1biBhbHRybyBEZXN0aW5hdGFyaW8nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRWxpbWluYSBpIERlc3RpbmF0YXJpIHNlbGV6aW9uYXRpJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVHJvcHBlIG1haWwgZ2VuZXJhdGUgZGFsIFZvc3RybyBpbmRpcml6em8gSVAuIElsIGNvZGljZSBBbnRpLVNwYW0gaGEgaW1wZWRpdG8gbGEgc3BlZGl6aW9uZS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU29zcGV0dG8gc3BhbSBkYWxsJiMwMzk7aW5kaXJpenpvIElQICVzIC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jpb3JkaW5hIGNhbXBpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsbGEnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsb3JlIGltcG9zdGF0bzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ1NvdHRvICZlZ3JhdmU7IHByZXNlbnRlIHVuYSBsaXN0YSBkaSBhdHRyaWJ1dGkgZGlzcG9uaWJpbGkgZGFsIE1vZHVsbyBDYXRhbG9nZXIuPGJyLz5Qb3RldGUgc2NlZ2xpZXJlIGRpIHNwZWNpZmljYXJlIGdydXBwaSBvIHZhbG9yaSBjb25zZW50aXRpLCBvcHB1cmUgbnVtZXJvc2kgdmFsb3JpIGRhIHV0aWxpenphcmUgY29tZSBmaWx0cm8gcGVyIGwmIzAzOTtlbGVuY28gZGkgdmFsb3JpIG1vc3RyYXRpIGFnbGkgdXRlbnRpLjxici8+DQo8YnIvPg0KPHN0cm9uZz5HcnVwcGkgZGkgdmFsb3JpOjwvc3Ryb25nPjxici8+DQpJIEdydXBwaSBkaSB2YWxvcmkgcG9zc29ubyBlc3NlcmUgaW5kaWNhdGkgc3BlY2lmaWNhbmRvIHVuIHZhbG9yZSBtaW5pbW8gZSBtYXNzaW1vIGNvbiBxdWVzdGEgc2ludGFzc2kgJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbG9yaSBNdWx0aXBsaTo8L3N0cm9uZz48YnIvPg0KUGVyIGluZGljYXJlIFZhbG9yaSBNdWx0aXBsaSBwZXIgdW4gYXR0cmlidXRvIHV0aWxpenphdGUgbGEgc2ludGFzc2kgJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbG9yaSBkYSBDYW1waSBOYXNjb3N0aTwvc3Ryb25nPjxici8+DQpQZXIgaW5kaWNhcmUgdW4gdmFsb3JlIGRhIHVuIGNhbXBvIG5hc2Nvc3RvIHV0aWxpenphdGUgbGEgc2ludGFzc2kgeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ3RpdGxlX3RleHRmaWVsZF9sYWJlbCddID0gJ0V0aWNoZXR0YSBjYW1wbyBkaSB0ZXN0byc7CiRsYW5nWyd0aXRsZV9zaG93X3RleHRmaWVsZCddID0gJ01vc3RyYXJlIGNhbXBvIGRpIHRlc3RvPyc7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdVbmEgZXNwcmVzc2lvbmUgcmVnb2xhcmUgcGVyIHBlcm1ldHRlcmUgaWwgZmlsdHJhZ2dpbyBkZWdsaSBJdGVtIGRpIENhdGFsb2dlciBwZXIgbm9tZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ0xhIGFsdGV6emEgZGVsIGNhbXBvIG11bHRpc2VsZWN0JzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdFc3ByZXNzaW9uZSByZWdvbGFyZSBkZWdsaSBJdGVtIG5hbWUgZGkgQ2F0YWxvZ2VyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0NhbXBvIEFsdGV6emEnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQ2FydGVsbGEgZGkgZGVzdGluYXppb25lIHBlciBpIGZpbGUgZGkgdXNjaXRhJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVGFnIERlZmluaXRvIGRhbGwmIzAzOTtVdGVudGUnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2luYSBkaSByaXRvcm5vIGNvbiBpbCBsaW5rIGRpIHVwbG9hZCc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0ludmlhdG8gY29uIEZvcm1CdWlkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdGVnb3JpYSBkaSBVcGxvYWQnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdJbnZpYSBxdWVzdG8gZmlsZSBhbCBtb2R1bG8gZGkgdXBsb2FkJzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZSddID0gJ1Blcm1ldHRlcmUgYWkgZmlsZSBjYXJpY2F0aSBkaSBzb3ZyYXNjcml2ZXJlIGkgZmlsZSBwcmVjZWRlbnRpPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ0lsIGZpbGUgY2FyaWNhdG8gcHUmb2dyYXZlOyBzb3ZyYXNjcml2ZXJlIGZpbGUgcHJlZXNpc3RlbnRpIHNlIGhhbm5vIGxvIHN0ZXNzbyBub21lPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdQZXJtZXR0ZXJlIFNvdnJhc2NyaXR0dXJhJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnTmVzc3VuYSBTb3ZyYXNjcml0dHVyYSc7CiRsYW5nWydmaWxlX2FscmVhZHlfZXhpc3RzJ10gPSAnSWwgZmlsZSAlcyAmZWdyYXZlOyBnaSZhZ3JhdmU7IGVzaXN0ZW50ZSBlIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBzb3ZyYXNjcml0dG8uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcmVuYW1lJ10gPSAnTW9kZWxsbyBkaSBub21lIGZpbGUnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXSA9ICdFc3RlbnNpb25lIGZpbGUgb3JpZ2luYWxlIChpbmNsdXNvICZxdW90Oy4mcXVvdDspJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2ZpbGVuYW1lJ10gPSAnTm9uIHZpc3VhbGl6emFyZSBpbCBub21lIGRlbCBmaWxlIG5lbGxlIGVtYWlsIGUgbmVpIG1vZHVsaSB2aXN1YWxpenphdGkgZGFsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19hdHRhY2htZW50J10gPSAnVmlldGEgZ2xpIGFsbGVnYXRpIG5lbGxlIGVtYWlsJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdDcmVhdGUgcXVpIHVuIG1vZGVsbG8gcGVyIHJpbm9taW5hcmUgdW4gZmlsZSBwcmltYSBkZWwgY2FyaWNhbWVudG8gLiBMYXNjaWF0ZSB2dW90byBwZXIgY29uc2VydmFyZSBpbCBub21lIGZpbGUgb3JpZ2luYWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXNzaW1hIGx1bmdoZXp6YSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0V0aWNoZXR0YSBkZWwgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdFdGljaGV0dGEgZGVsIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3JlIHF1YW5kbyBzZWxlemlvbmF0byc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxvcmUgcXVhbmRvIG5vbiBzZWxlemlvbmF0by4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldHRhZ2xpIGRlbCBHcnVwcG8gZGkgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRWxpbWluYXJlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXN0byAmcXVvdDtTZWxlemlvbmFyZSBVbm8mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVmFsb3JlIHNlbGV6aW9uYXRvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGV6aW9uYSBpbCBub21lIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGV6aW9uZSBPZ2dldHRvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTZWxlemlvbmUgcHJlZGVmaW5pdGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTZWxlemlvbmUgcHJlZGVmaW5pdGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTZWxlemlvbmUgcHJlZGVmaW5pdGEnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOb21lIG9wemlvbmUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsb3JlIGludmlhdG8nOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ09wemlvbmkgTWVudSBhIHRlbmRpbmEnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wemlvbmkgTXVsdGlzZWxlY3QnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0luZGlyaXp6byBlbWFpbCBkaSBkZXN0aW5hemlvbmUnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOb21lIGZpbGUgZGVzdGluYXppb25lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ0NhbXBvICZxdW90O0RhJnF1b3Q7IChub21lKSBwZXIgbGUgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzYSB1bmEgdmFsaWRhemlvbmUgc2VtcGxpY2UgZGkgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNhIHVuYSB2YWxpZGF6aW9uZSBzZW1wbGljZSBkaSBlbWFpbCAoZXMuLCBwZXJtZXR0ZSAmcXVvdDt4QHkmcXVvdDsgaW52ZWNlIGRpIHJpY2hpZWRlcmUgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7SW5kaXJpenpvIE1pdHRlbnRlJnF1b3Q7IHBlciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0luc2llbWUgZGkgY2FyYXR0ZXJpIGRpIGVuY29kaW5nIHBlciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnRGV0dGFnbGkgaW52aW8gZW1haWwgY29uIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ05vbWUgRmlsZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnT2dnZXR0byBkZWxsYSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb21lIEZvcm0nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdTdGF0byBkZWwgRm9ybSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1Byb250byBwZXIgbCYjMDM5O3V0aWxpenpvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb24gcHJvbnRvJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdpbmEgYSBjdWkgZGlyaWdlcmUgZG9wbyBsJiMwMzk7aW52aW8gZGVsIG1vZHVsbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnSW5zZXJpdGUgdW4gY2FtcG8gbmVsIG1vZHVsbyBwZXIgbGEgZ2VzdGlvbmUgZGVsbGUgaW5mb3JtYXppb25pIGluc2VyaXRlIGRhbGwmIzAzOTt1dGVudGUuIFBvdGV0ZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzYXJlIHF1ZXN0YSBzY29yY2lhdG9pYSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZGVsIE1vZHVsbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2FtcGkgTW9kdWxvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSWQgY2FtcG8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdNb3N0cmEgQWxhaXMgZGVpIENhbXBpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdTZWxlemlvbmFuZG9sbyB2ZXJyYW5ubyB2aXN1YWxpenphdGkgZ2xpIGFsaWFzIGRlaSBjYW1waSBkdXJhbnRlIGxhIGNyZWF6aW9uZSBvIGxhIG1vZGlmaWNhIGRpIHVuIG1vZHVsbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0NhbXBvIEFsaWFzIGUgYXR0cmlidXRvIElEIERPTSAoQ1NTIElEKSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdEZXR0YWdsaSBkZWwgZ3J1cHBvIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBjYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAncGVyIGNyZWFyZSB1biBjYW1wbyBkaSBnZXN0aW9uZSBkZWwgbW9kdWxvLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZ2dpdW5naSBudW92byBNb2R1bG8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTW9zdHJhIGxhIHZlcnNpb25lIGRpIEZvcm0gQnVpbGRlcj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdRdWVzdG8gaW5zZXJpc2NlIGxhIHZlcnNpb25lIGluc3RhbGxhdGEgZGkgRm9ybSBCdWlsZGVyIGluIHVuIGNvbW1lbnRvIHBlciBhaXV0YXJlIGlsIGRlYnVnJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZ2dpdW5nZXJlIG51b3ZvIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1Rlc3RvIGRlbCBwdWxzYW50ZSBkaSBJbnZpbyBkZWwgbW9kdWxvJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnVGVzdG8gZGVsIHB1bHNhbnRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWdnaXVuZ2VyZSBjb2RpY2UgSmF2YXNjcmlwdCBhbCBwdWxzYW50ZSBkaSBJbnZpbyBwZXIgZXZpdGFyZSBlcnJvcmkgZGkgaW52aWkgbXVsdGlwbGk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZ2dpdW5naSBzY3JpcHQgZGkgc2ljdXJlenphJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXN0byBkZWwgUHVsc2FudGUgJnF1b3Q7U3VjY2Vzc2l2byZxdW90OyBkZWwgbW9kdWxvIChwZXIgbW9kdWxpIG11bHRpcGFnaW5hKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGVzdG8gZGVsIFB1bHNhbnRlICZxdW90O1ByZWNlZGVudGUmcXVvdDsgZGVsIG1vZHVsbyAocGVyIG1vZHVsaSBtdWx0aXBhZ2luYSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXppb25lIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnQ2FtcG8gZGEgdmFsaWRhcmUnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnSUQgQ1NTICBwZXIgcXVlc3RvIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnU3RpbGUgQ1NTIHBlciBxdWVzdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdTdGlsZSBDU1MgcGVyIHF1ZXN0byBDYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVGFnIERlZmluaXRvIGRhbGwmIzAzOTtVdGVudGUgZGEgY2hpYW1hcmUgcHJpbWEgY2hlIGlsIG1vZHVsbyB2ZW5nYSB2aXN1YWxpenphdG8gbGEgcHJpbWEgdm9sdGEgKGNoaWFtYXRvIHNvbG8gdW5hIHZvbHRhKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdUYWcgRGVmaW5pdG8gZGFsbCYjMDM5O1V0ZW50ZSBkYSBjaGlhbWFyZSBwcmltYSBjaGUgaWwgbW9kdWxvIHZlbmdhIHZpc3VhbGl6emF0byc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1RhZyBkZWZpbml0byBkYWxsJiMwMzk7dXRlbnRlIGRhIGNoaWFtYXJlIGR1cmFudGUgbGEgdmFsaWRhemlvbmUgZGkgdW4gbW9kdWxvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU2ltYm9sbyBwZXIgbWFyY2FyZSBpbCBDYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JpY2hpZWRlIHVuYSByaXNwb3N0YSBwZXIgcXVlc3RvIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdFdGljaGV0dGEgbmFzY29zdGEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnTmFzY29uZGUgaWwgbm9tZSBkZWwgQ2FtcG8gbmVsIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTHVuZ2hlenphIG1hc3NpbWEgZGVsIGNvbnRlbnV0byBkaSB1biBjYW1wbyAoMCBvIHZ1b3RvIHNpZ25pZmljYSBuZXNzdW4gbGltaXRlKSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnVGVzdG8gc3RhdGljbyBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWdleCBkaSB2YWxpZGF6aW9uZSc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtZXJvIGRpIGxpbmVlIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdTb2xhIExldHR1dGEnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05lc3N1biBWYWxvcmUgcHJlZGVmaW5pdG8nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdpbmEgZG92ZSByZWluZGlyaXp6YXJlIGRvcG8gbCYjMDM5O2FwcHJvdmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnUXVlc3RhIGVzcHJlc3Npb25lIHJlZ29sYXJlIHNhciZhZ3JhdmU7IHV0aWxpenphdGEgc29sbyBzZSAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgY29uZmlndXJhdG8gY29uIGwmIzAzOTtvcHppb25lIHJlZ2V4LXJlbGF0ZWQuIEluY2x1ZGUgdW4gcmVnZXggc3RpbGUgUGVybCwgaW5jbHVzbyBhbmNoZSBsZSBiYXJyZSBzdGFydC9zdG9wIGUgZmxhZ3MgKGVzLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdOYXNjb25kaSBnbGkgRXJyb3JpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdUaXBvIGRpIHZpc3VhbGl6emF6aW9uZSBtb2R1bG8nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZpZW5pIGxhIHZpc3VhbGl6emF6aW9uZSBkZWkgbWVzc2FnZ2kgZGkgZGVidWcvZXJyb3JlIGRhIHBhcnRlIGRlZ2xpIHV0ZW50aS4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ0RpbWVuc2lvbmUgbWFzc2ltYSBkZWwgZmlsZSBkaSB1cGxvYWQgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdRdWVzdGEgbGltaXRhemlvbmUgc2kgYWdnaXVuZ2UgYSBxdWFsc2lhc2kgbGltaXRlIGRlbGxhIGNvbmZpZ3VyYXppb25lIGRpIHBocCBvIGRlbCB3ZWIgc2VydmVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdDYXJ0ZWxsYSBpbiBjdWkgc2FsdmFyZSBpIGZpbGUnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pIHBlcm1lc3NlJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdJbnNlcmlyZSB1bmEgbGlzdGEgc2VwYXJhdGEgZGEgdmlyZ29sZSwgZXNjbHVkZW5kbyBpIHB1bnRpIChlcy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIEdsaSBzcGF6aSBzYXJhbm5vIGlnbm9yYXRpLiBMYXNjaWFuZG8gdnVvdG8gc2lnbmlmaWNhIGNoZSBub24gY2kgc2FyYW5ubyByZXN0cml6aW9uaS4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1Zpc3VhbGl6emF6aW9uZSByaXN0cmV0dGE/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1Zpc3VhbGl6emFyZSBxdWFsc2lhc2kgcmVzdHJpemlvbmUgZGVsbGUgZGltZW5zaW9uZSBlIGVzdGVuc2lvbmUgY29uIGlsIGNhbXBvIHVwbG9hZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzYXRvIHBlciBpbCBGb3JtIGRpIHZpc3VhbGl6emF6aW9uZSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2luYSAlcyBkaSAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnSWwgY2FtcG8gbm9uIGhhIG9wemlvbmkgYXZhbnphdGUuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXN0byBkaSByaXRvcm5vIHBlciB1biB2YWxvcmUgZGkgY2FtcG8gbm9uIHNwZWNpZmljYXRvJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdBYmlsaXRvIGwmIzAzOTthZGRpemlvbmUgdmVsb2NlIGRlbGxlIHRlbmRpbmUgZGVpIEZvcm0/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnQWJpbGl0byBsJiMwMzk7YWRkaXppb25lIHZlbG9jZSBkZWxsYSB0ZW5kaW5lPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnQWdnaXVudGEgcmFwaWRhIENhbXBpJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnU2VsZXppb25hbmRvIHF1ZXN0byBwZXJtZXR0ZXImYWdyYXZlOyBzb2xvIDEwIGVtYWlscyBkaSBlc3NlcmUgYXR0aXZhdGUgZGEgdW4gZGF0byBpbmRpcml6em8gSVAgKHBlciBvcmEpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdBYmlsaXRvIHByaW1pdGl2ZSBkZWdsaSBhbnRpLXNwYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb3N0cmEgSUQgZGVpIGNhbXBpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ1NlbGV6aW9uYW5kb2xvIHBlcm1ldHRlciZhZ3JhdmU7IGxhIHZpc3VhbGl6emF6aW9uZSBkZWdsaSBJRCBkZWkgY2FtcGkgZHVyYW50ZSBsYSBjcmVhemlvbmUgbyBtb2RpZmljYSBkaSBtb2R1bGknOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0NhcmljYSBtb2R1bG8gZGEgZmlsZSBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzYSBxdWVzdG8gbm9tZSBtb2R1bG8nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ0ltcG9ydGEgTW9kdWxvIFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzYSBxdWVzdG8gQWxpYXMgTW9kdWxvJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmFyZSBlbWFpbCBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1BvcG9sYXJlIGF1dG9tYXRpY2FtZW50ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ1JpZW1waXJlIGF1dG9tYXRpY2FtZW50ZSBjb24gbCYjMDM5O1VSTCBkZWxsYSBwYWdpbmEgY2hlIGNvbnRpZW5lIGlsIG1vZHVsbz8gKHNvdnJhc2NyaXZlIGxlIG9wemlvbmkgZGkgbGluayBkaSBwYWdpbmEgc290dG9zdGFudGkpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0luZGlyaXp6byBVUkwgcHJlZGVmaW5pdG8gZGVpIGxpbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnVGVzdG8gcHJlZGVmaW5pdG8gZGVpIGxpbmsnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgYWQgdW5hIHBhZ2luYSBkZWwgc2l0byc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdQb3RldGUgdXRpbGl6emFyZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHBlciBwcm90ZWdnZXJlIGwmIzAzOTtpbnZpbyBkaSB1biBtb2R1bG8gc2UgaW5zdGFsbGF0ZSBpbCBtb2R1bG8gQ2FwdGNoYSBtb2R1bGUuIFBlciBtYWdnaW9yaSBpbmZvcm1hemlvbmkgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+YW5kYXRlIGFsIHByb2dldHRvIENhcHRjaGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzYXJlIENhcHRjaGEgcGVyIHByb3RlZ2dlcmUgbCYjMDM5O2ludmlvIGRlaSBmb3JtPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnU2VsZXppb25hdGUgcGVyIHByb3RlZ2dlcmUgaWwgbW9kdWxvIGNvbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdJbnNlcml0ZSBpIGNhcmF0dGVyaSB2aXN1YWxpenphdGkgZGVsbCYjMDM5O2ltbWFnaW5lIGNvbWUgcHJvY2VkdXJhIGRpIHByb3RlemlvbmUuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ1Rlc3RvIGZhbGxpdG8gcGVyIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgaW5zZXJpdG8gbm9uIGNvcnJldHRvLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdUZXN0byBkaSBhaXV0byBwZXIgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdOb24gaW52aWFyZSB2YWxvcmkgZGVsbGUgY2FzZWxsZSBub24gc2VsZXppb25hdGUnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdTZWxlemlvbmF0ZSBzZSBkZXNpZGVyYXRlIGNoZSB2ZW5nYW5vIHJlc3RpdHVpdGkgc29sbyBpIHZhbG9yaSBkZWxsZSBjYXNlbGxlIHNlbGV6aW9uYXRlJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdFdGljaGV0dGEgcGVyIExpbmsnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VSTCBkaSBkZXN0aW5hemlvbmUgZGVsIGxpbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTZWxlemlvbmF0byBwZXIgZGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1V0aWxpenpvIGZvcm1hdG8gMjQtb3JlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3NhcmUgaSB0YWcgc21hcnR5IGFsbCYjMDM5O2ludGVybm8gZGVpIGNhbXBpPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmlnaGUgKG5vdGE6IHB1Jm9ncmF2ZTsgZXNzZXJlIHNvdnJhc2NyaXR0byB0cmFtaXRlIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbG9ubmUgKG5vdGE6IHB1Jm9ncmF2ZTsgZXNzZXJlIHNvdnJhc2NyaXR0byB0cmFtaXRlIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0dGFnbGkgcHJpbmNpcGFsaSBkZWwgTW9kdWxvJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdWdW90byBwZXIgZGVmYXVsdCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdWdW90byBwZXIgZGVmYXVsdCAoZGVzZWxlemlvbmF0ZSBwZXIgdXRpbGl6emFyZSBsYSBkYXRhIG9kaWVybmEgZGkgZGVmYXVsdCknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ1Zpc3VhbGl6emFyZSBpbCBub21lIGRpIGFjY2Vzc28gZGVsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdWaXN1YWxpenphcmUgaWwgbm9tZSBkZWxsJiMwMzk7dXRlbnRlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnVmlzdWFsaXp6YXJlIGlsIGNvZ25vbWUgZGVsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaW5naSBsYSBsaXN0YSB1dGVudGkgYWdsaSB1dGVudGkgZGkgdW4gZ3J1cHBvIHNwZWNpZmljbyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdDcmlwdGEgaSBkYXRpIHNhbHZhdGkgbmVsIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0byBwZXIgbGEgY3JpcHRhemlvbmUgZGVpIGRhdGknOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnRnJhc2UgZGkgYWNjZXNzbyBvIHBlcmNvcnNvIGRlbCBmaWxlIGNvbnRlbmVudGUgbGEgZnJhc2UgZGkgYWNjZXNzby4gKFNlIHV0aWxpenphdGUgb3BlblNTbCBxdWVzdGEgJmVncmF2ZTsgbGEgZnJhc2UgZGkgYWNjZXNzbyBwZXIgbGEgY2hpYXZlIHByaXZhdGEpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0NyZWFyZSBoYXNoIHBlciBpIGNhbXBpIGRpIG9yZGluYW1lbnRvPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ0NoaWF2ZSBwcml2YXRhIHBlciBsYSBjcmlwdGF6aW9uZSBkZWkgZGF0aSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1F1ZXN0YSBvcHppb25lIGNyZWEgbCYjMDM5O2hhc2ggcGVyIGkgY2FtaSBkaSBvcmRpbmFtZW50bywgbWEgbGFzY2lhIGxlIHByaW1lIGxldHRlcmUgbm9uIGNyaXB0YXRlLiBDcml0dG9ncmFmaWNhbWVudGUgY3JlYSB1bmEgdnVsbmVyYWJpbGl0JmFncmF2ZTssIG1hIHBlciBtb2x0aSB1dGVudGkgJmVncmF2ZTsgdW4gY29tcHJvbWVzc28gYWNjZXR0YWJpbGUgdHJhIHNpY3VyZXp6YSBlIHBvc3NpYmlsaXQmYWdyYXZlOyBkaSBvcmRpbmFyZSBpIGRhdGkuIEwmIzAzOTtvcmRpbmFtZW50byBkaXZlbnRhIGFwcHJvc3NpbWF0aWNvLCBtYSByaW1hcnImYWdyYXZlOyBjb211bnF1ZSBhY2NldHRhYmlsZS4gU2Ugbm9uIHZvbGV0ZSB1dGlsaXp6YXJlIHF1ZXN0YSBvcHppb25lLCBpIGNhbXBpIGRpIG9yZGluYW1lbnRvIHNhcmFubm8gcmVnaXN0cmF0aSBpbiBjaGlhcm8uJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU2FsdmF0YWdnaW8gQ3JpcHRhdG8gbm9uIGRpc3BvbmliaWxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnSW5zdGFsbGF0ZSBpbCBtb2R1bG8gT3BlblNTTCBvIG1jcnlwdCBzZSBkZXNpZGVyYXRlIGFiaWxpdGFyZSBsYSBjcmlwdGF6aW9uZSBkZWwgZGF0YWJhc2UuJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1ZlcmlmaWNhdGUgY2hlIHNpYSBhdHRpdm8gaWwgc3VwcG9ydG8gQ1VSTCBuZWxsYSB2b3N0cmEgaW5zdGFsbGF6aW9uZSBQSFAuIEZhdGUgcmlmZXJpbWVudG8gYSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdFc2VndWkgaW4gbW9kYWxpdCZhZ3JhdmU7IE1MRSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnTW9kaWZpY2Evc3VwcG9ydGEgbGEgdmVyc2lvbmUgQ01TTVMgRWRpemlvbmUgTXVsdGktTGluZ3VhLiBOb24gc2VsZXppb25hdGUgc2Ugbm9uIHN0YXRlIGVzZWd1ZW5kbyBxdWVzdGEgdmVyc2lvbmUuJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ1ZlcmlmaWNhdGUgZGkgYXZlcmUgc2VsZXppb25hdG8gbGEgY2hpYXZlIHByaXZhdGEgYWRhdHRhIGFsIGNlcnRpZmljYXRvIGNoZSBzdGF0ZSB1dGlsaXp6YW5kbyBwZXIgbGEgY3JpcHRhemlvbmUhJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0xpYnJlcmlhIGRpIENyaXB0YXppb25lJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ1NlbGV6aW9uYXRlbG8gcGVyIGNyaXB0YXJlIGkgZGF0aSBzYWx2YXRpLiBDaSZvZ3JhdmU7IHJlbmRlIHBpJnVncmF2ZTsgZGlmZmljaWxlIChtYSBub24gaW1wb3NzaWJpbGUpIGxhIHZpc3VhbGl6emF6aW9uZSBkZWxsZSBpbmZvcm1hemlvbmkgZGEgcGFydGUgZGVnbGkgaGFja2VyLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ2xlIG9wemlvbmkgc290dG9zdGFudGkgc2kgYXBwbGljYW5vIHNvbG8gc2Ugc3RhdGUgdXRpbGl6emFuZG8gbGEgTGlicmVyaWEgZGkgY3JpcHRhemlvbmUgT3BlblNTTCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdMaWJyZXJpYSBkaSBDcmlwdGF6aW9uZSc7CiRsYW5nWydvcGVuc3NsJ10gPSAnTGlicmVyaWEgT3BlblNTTCc7CiRsYW5nWydtY3J5cHQnXSA9ICdMaWJyZXJpYSBQSFAgbWNyeXB0JzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfbGlzdGl0MiddID0gJ2luc3RhbGxhdGUgTGlzdEl0RXh0ZW5kZWQgcGVyIGludmlhcmUgYWwgbW9kdWxvLic7CiRsYW5nWyd0aXRsZV9saXN0aXQyX2luc3RhbmNlJ10gPSAnSXN0YW56YSBMaXN0SXRFeHRlbmRlZCc7CiRsYW5nWyd0aXRsZV9saXN0aXQyX3N0YXRlJ10gPSAnU3RhdG8gZGVsbCYjMDM5O29nZ2V0dG8gTGlzdEl0RXh0ZW5kZWQgKEF0dGl2by9JbmF0dGl2byknOwokbGFuZ1snY29udGVudF9zZWxlY3RfaW5zdGFuY2UnXSA9ICdUdXR0aSBpY2FtcGkgcG9zc29ubyBlc3NlcmUgbWFwcGF0aSBkb3BvIGF2ZXJlIGluc2VyaXRvIHF1ZXN0byBjYW1wbyBuZWwgbW9kdWxvIGxhIHByaW1hIHZvbHRhJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnQWJiaW5hbWVudG8gY29uIEZyb250RW5kdXNlcnMnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdJbnN0YWxsYXRlIGlsIG1vZHVsbyBGcm9udEVuZFVzZXJzIHBlciBjb2xsZWdhcmUgdW4gbW9kdWxvIGUgaSBzdW9pIGRhdGkgYWQgdW4gdXRlbnRlIHNwZWNpZmljbyc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnU2VsZXppb25hdGUgcGVyIHZpbmNvbGFyZSBsJiMwMzk7YWNjZXNzbyB1dGVudGUgYSBxdWVzdG8gbW9kdWxvIGFsbCYjMDM5O3V0ZW50ZSBGRVUgY2hlIGhhIGVmZmV0dHVhdG8gbCYjMDM5O2FjY2Vzc28uJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdDcmlwdGF6aW9uZSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnU29sbyBpbiBncnVwcG8gJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdRdWVzdG8gY2FtcG8gcHUmb2dyYXZlOyBlc3NlcmUgbGFzY2lhdG8gdnVvdG8nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFiaWxpIHBlciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJpbGkgdXRpbGl6emFiaWxpJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICd2YXJpYWJpbGUgUEhQJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0YSBkaSBJbnZpbyc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnVm9zdHJvIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJbmRpcml6em8gSVAgZGVsbGEgcGVyc29uYSBjaGUgc3RhIHVzYW5kbyBpbCBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdWZXJzaW9uZSBGb3JtQnVpbGRlcic7CiRsYW5nWydoZWxwX3RhYiddID0gJ0NhcmF0dGVyZSBUYWJ1bGF0b3JlJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdWZWRlcmUgaWwgIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPk1hbnVhbGUgUEhQPC9hPiBwZXIgdW4gYWl1dG8gc3VsbGEgZm9ybWF0dGF6aW9uZS4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiaWxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBJbmRpZXRybyBhbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAndW4gY2FyYXR0ZXJlIHRhYnVsYXRvcmUnOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1BhcnRlbnphIGRlbGwmIzAzOTtpbnRlcnZhbGxvIEFubm8nOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdGaW5lIGRlbGwmIzAzOTtpbnRlcnZhbGxvIEFubm8nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnQW5ubyBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXR0YSBhIC0xIGFmZmluY2gmZWdyYXZlOyBsJiMwMzk7YW5ubyBwcmVkZWZpbml0byBzaWEgcXVlbGxvIGNvcnJlbnRlKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRG9wbyBjaGUgaWwgZm9ybSAmZWdyYXZlOyBpbnZpYXRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jpc3VsdGF0byBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTW9zdHJhICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyaWdlIGFkIHVuYSBwYWdpbmEgZGVsIHNpdG8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1BhZ2luYSBkaSBkZXN0aW5hemlvbmUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnTm9tZSBkZWwgY2FtcG8gcmljaGllc3RvJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmljaGllZGkgY2hlIGkgY2FtYmkgYWJiaWFubyB1biBub21lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JpY2hpZWRpIG5vbWkgZGVpIGNhbXBpIHVuaXZvY2knOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0kgY2FtcGkgcmljaGllc3RpIGhhbm5vIHVuIG5vbWUgdW5pdm9jbz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmlvcmRpbmEgaSBjYW1waSc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnQ2FyaWNhIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FnZ2l1bmdlcmUgdW4gYm90dG9uZSB0ZXN0dWFsZSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdUZXN0byBkZWwgYm90dG9uZSBkaSBDYW5jZWxsYXppb25lJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1cmUgZGEgY2FsY29sYXJlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZ2EnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWNvJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnTW9zdHJhIGlsIGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIHNpZ25pZmljYSBGb3JtIGNoZSByaXBvc2l6aW9uYW5vIGlsIHRhZyB7Y21zX21vZHVsZX0sIG5vbi1pbmxpbmUgcmlwb3NpemlvbmFubyBpbCB0YWcge2NvbnRlbnR9Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpbCBDYW1wbyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IHBlciBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWVkIG1vcmUgZmllbGQgdHlwZXM/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdDb21tdXRhIGFsIG1vZG8gQXZhbnphdG8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdDb21tdXRhIGFsIG1vZG8gU2VtcGxpY2UnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBwcmVkZWZpbml0byc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgY29uIHRhYmVsbGUsIFRpdG9saSBzdWxsYSBzaW5pc3RyYSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBjb24gdGFiZWxsZSwgVGl0b2xvIGluIHRlc3RhJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGRhICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBzb3ZyYXNjcml2ZXJlIGlsIHZvc3RybyBNb2RlbGxvIGNvbiBxdWVsbG8gc2VsZXppb25hdG8/IChBbmNoZSBkaWNlbmRvIFMmaWdyYXZlOywgZG92ZXRlIHNhbHZhcmUgaWwgY2FtYmlhbWVudG8pJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTmVzc3VuYSBpbmZvcm1hemlvbmUgSFRUUF9SRUZFUkVSIHV0aWxpenphYmlsZSAocHJvYmFiaWxtZW50ZSBkb3Z1dGEgYWxsJiMwMzk7dXNvIGRlbGxhIFZhbGlkYXppb25lIEVtYWlsIFV0YW50ZSknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBQYXJhbWV0cm8uIFNpIHByZWdhIGRpIGNvbnRyb2xsYXJlIGwmIzAzOTtlc2F0dGV6emEgZGVsbGEgY29waWEgZGVsbCYjMDM5O2luZGlyaXp6byBVUkwgZGFsbGEgdm9zdHJhIGVtYWlsISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnRXJyb3JlIGRpIHZhbGlkYXppb25lIG5lbGxhIHJpc3Bvc3RhLiBTaSBwcmVnYSBkaSBjb250cm9sbGFyZSBsJiMwMzk7ZXNhdHRlenphIGRlbGxhIGNvcGlhIGRlbGwmIzAzOTtpbmRpcml6em8gVVJMIGRhbGxhIHZvc3RyYSBlbWFpbCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBuZWxsYSByaXNwb3N0YS4gTmVzc3VuIGNhbXBvIGVtYWlsIHZhbGlkYXRvIGluIHF1ZXN0byBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSAmZWdyYXZlOyBzdGF0byBhZ2dpb3JuYXRvIGF1dG9tYXRpY2FtZW50ZSBkYWxsYSB2ZXJzaW9uZSAwLjMgYWxsYSB2ZXJzaW9uZSAwLjQuIERvdmV0ZSBwZXImb2dyYXZlOyBlZmZldHR1YXJlIGFsY3VuaSBmaXguIFNlIHN0YXRlIHVzYW5kbyBpbCBGb3JtIGRpIGRlZmF1bHQsIHJpcG9zaXppb25hdGUgcXVlc3RvIFRlbXBsYXRlIGNvbiAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzYW5kbyBsYSB0ZW5kaW5hIHNlZ3VlbnRlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZ2dpdW5nZXJlLCBtb2RpZmljYXJlIGUgZ2VzdGlyZSBmb3JtIGludGVyYXR0aXZpJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnU2Ugc3RhdGUgdXNhbmRvIGxhIHZhbHV0YXppb25lIFN0cmluZ2EsIGxhIHNvbGEgb3BlcmF6aW9uZSB1dGlsaXp6YWJpbGUgJmVncmF2ZTsgbGEgY29uY2F0ZW5hemlvbmUgKCspLCBtZW50ZSBzZSB1c2F0ZSBsYSB2YWx1dGF6aW9uZSBOdW1lcm8gYXZldGUgdW4gc2VtcGxpY2Ugb3BlcmF6aW9uZSBtYXRlbWF0aWNhICgrLCAtLCAqLCAvKSc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdHZW5uYWlvJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJicmFpbyc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyem8nOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsZSc7CiRsYW5nWydkYXRlX21heSddID0gJ01hZ2dpbyc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdHaXVnbm8nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnTHVnbGlvJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQWdvc3RvJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2V0dGVtYnJlJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ090dG9icmUnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYnJlJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEaWNlbWJyZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU3BpYWNlbnRlISBDJiMwMzk7JmVncmF2ZTsgc3RhdG8gdW4gZXJyb3JlIG5lbGwmIzAzOTtpbnZpbyBkZWwgZm9ybS4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgZXJyb3JlIGRpIGludmlvOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3JlIG5lbCBmaWxlIHBhc3NhdG8gYWwgbW9kdWxvIFVwbG9hZHM6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ05vbiB0cm92byBpbCBtb2R1bG8gVXBsb2Fkcyc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnRXJyb3JlIG5lbCBVcGxvYWQvQWxsZWdhdG8gc3VsIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgZGkgdGlwbyAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvcmUuIE5vbiByaWVzY28gYWQgb3R0ZW5lcmUgdW4gbG9jayBwZXIgaWwgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdQcmVkZWZpbml0bzogbm9uIG1hcmNhdG8nOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZGVmaW5pdG86IG1hcmNhdG8nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxiciAvPk1vZGVsbG8gcGVyIEVtYWlsIG5vbiBhbmNvcmEgc2V0dGF0byEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IG5vbiBwb3NzbyB0cm92YXJlIGlsIG1vZHVsbyByaWNoaWVzdG8gQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmlzcG9zdGEgSUQuIFVzYXRhIGRhIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0NhbXBvIElEIHBlciBvcGVyYXppb25pIGludGVybmUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05vbWUgRm9ybSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgcGVyIG9wZXJhemlvbmkgaW50ZXJuZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5Fc3NlcmUgc2ljdXJpIGRpIHNldHRhcmUgaSBwZXJtZXNzaSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVyIGdsaSB1dGVudGkgY2hlIGFtbWluaXN0cmFubyBpIGZvcm1zLiBTZSB2b2xldGUgZXNzZXJlIGF2dmlzYXRpIHZpYSBlbWFpbCBkZWdsaSBpbnNlcmltZW50aSwgYWdnaW9ybmFyZSBpbiBtYW5pZXJhIGFwcHJvcHJpYXRhIGxhIENvbmZpZ3VyYXppb25lLjwvcD4NCjxwPlNpIHByZWdhIGRpIHByZXN0YXJlIGF0dGVuemlvbmUgY2hlIHVuIGZvcm0gZGkgZmVlZGJhY2sgbm9uIGRvdnJlYmJlIGVzc2VyZSBhdHRpdm8gKGNpbyZlZ3JhdmU7IHB1YmJsaWNvKSBtZW50cmUgbW9kaWZpY2F0ZSBpbCBmb3JtLiBEb3ZyZXN0ZSBjcmVhcmUgaWwgZm9ybSBlIHBvaSBwb3NpemlvbmFyZSBpbCB0YWcgbmVsbGEgcGFnaW5hIHF1YW5kbyB0ZXJtaW5hdG8uIEFsdHJpbWVudGkgcG9zc29ubyB0b3JuYXJlIGRlaSByaXN1bHRhdGkgZXJyYXRpLjwvcD4NCjxwPkluIGFnZ2l1bnRhLCBxdWVzdGEgdmVyc2lvbmUgbm9uIHN1cHBvcnRhIGxlIG1vZGlmaWNoZSBpbiBwYXJhbGxlbG8gZGVpIGZvcm1zLiBTaSBwcmVnYSBxdWluZGkgY2hlIHNvbG8gdW4gYWRtaW4gYWxsYSB2b2x0YSBtb2RpZmljaGkgdW4gZGF0byBmb3JtLjwvcD4nOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjgzODgxMTM3OS4xMzg1MTI5MTQzLjEzODk3MDcxMjQuMTM4OTc4Mzc3OS41JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM4OTE5ODg3Mi4zLjMudXRtY3NyPXNvbGdlYS5uZXR8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vY21zbXMvYWRtaW4vaW5kZXgucGhwJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1vcyc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0xhdWtlbGlvIHRpcGFzIG5lbnVzdGF0eXRhcyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBwYWJhaWdhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBwcmFkemlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1Bhc3N3b3JkIEFnYWluICh2ZXJpZnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0J1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnSkFWIHZhbHN0aWrFsyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnJlNjYXJvbjthbGllcyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvcyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdMYWlrbyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVB1c2xhcGlvIHRyxatraXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCeWxvcyBhdHNpdW50aW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VsIHBhJnNjYXJvbjt0byAmcXVvdDtOdW8gQWRyZXNhcyZxdW90OyBsYXVrZWxpcyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBWYXJkYXMmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbC4gcGEmc2Nhcm9uO3RvICZxdW90O1RlbWEmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aW7ElyBudW9yb2RhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTnVvcm9kYSAoxK52ZWRhIGxhbmt5dG9qYXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdQYXNsxJdwdGFzIGxhdWthcyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTmV0aWtyaW50aSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1N2ZWlrYXMgc2thacSNaXVzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VsIHBhJnNjYXJvbjt0byBhZHJlc2FzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbC4gbnIuIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVHVyaSBixat0IHBhxb55bcSXdGFzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnUHJpdmFsb21hbSBsYXVrdWkgbmVidXZvIHN1dGVpa3RhIHZlcnTElyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgc2thacSNacWzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgZ2FsaW9qYW7EjWnEhSByZWlrJnNjYXJvbjttxJkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIHN2ZWlrxIUgc2thacSNacWzIGxhdWtlbHlqZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIGdhbGlvamFudMSvIGVsIHBhJnNjYXJvbjt0byBhZHJlc8SFJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQcmEmc2Nhcm9uO29tLCDEr3Zlc2tpdGUgdGVpc2luZ8SFIHRlbGVmb25vIG51bWVyxK8gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmVwYW5hJnNjYXJvbjt1cyDEryBnYWxpb2phbnTEryBlbCBwYSZzY2Fyb247dG8gYWRyZXPEhSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgbmVkYXVnaWF1IGthaXAgICVzIHNpbWJvbGnFsyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnTGF1a2VsacWzIHR2YXJrYSBhdG5hdWppbnRhLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtYSBwYSZzY2Fyb247YWxpbnRhLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnTGF1a2VsaXMgcGEmc2Nhcm9uO2FsaW50YXMuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ051c3RhdHltYWkgYXRuYXVqaW50aS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdUdXJpdGUgcGHFvnltxJd0aSAmcXVvdDslcyZxdW90OyBqZWkgbm9yaXRlIHTEmXN0aSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXIgasWrcyDEr3NpdGlraW7EmXMsIGthZCBub3JpdGUgaSZzY2Fyb247dHJpbnRpIGZvcm3EhSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyIGrFq3MgxK9zaXRpa2luxJlzLCBrYWQgbm9yaXRlIGkmc2Nhcm9uO3RyaW50aSBsYWlrZWzEryAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbmltYXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25lbnVyb2R5dGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAncHJpZMSXdGEnOwokbGFuZ1sndXBkYXRlZCddID0gJ2F0bmF1amludGEnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnUGFzaXJpbmtpdGUgdmllbsSFJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnUGFzaXJpbmtpdGUgdGlwxIUnOwokbGFuZ1sndG8nXSA9ICdLYW0nOwokbGFuZ1sneWVzJ10gPSAnVGFpcCc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F1Z290aSc7CiRsYW5nWydhZGQnXSA9ICdQcmlkxJd0aSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBdG5hdWppbnRpJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F1Z290aSBpciB0xJlzdGkgcmVkYWdhdmltxIUnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2lqYSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtb3MnOwokbGFuZ1snZm9ybSddID0gJyVzIGZvcm1hJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWfFq3JhY2lqYSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBkeWRpcyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1BsxJd0aW5pYWknOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ2xlaWTFvmlhbWkgYnlsxbMgdGlwYWknOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICfErmtlbHRhIGJ5bGEgeXJhIHBlciBkaWRlbMSXLiBNYWtzaW1hbHVzIGR5ZGlzIHlyYTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ8Sua2VsdGknOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm1hIGltcG9ydHVvdGEnOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBlaWx1xI1pxbMnOwokbGFuZ1snY29scyddID0gJyVzIHN0dWxwZWxpxbMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyLW9zIHZhbGFuZMWzIGxhaWtyb2Rpcyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtacWzIHZhbGFuZMWzIGxhaWtyb2Rpcyc7CiRsYW5nWydob3VyJ10gPSAnVmFsYW5kYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dMSXJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1J1b8W+YXM6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnQcSNacWrISBKxatzxbMgcGF0ZWlraW1hcyBidXZvIGdhdXRhcy4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGFndW90aSc7CiRsYW5nWydkZWxldGUnXSA9ICdUcmludGknOwokbGFuZ1snZGF5J10gPSAnRGllbmEnOwokbGFuZ1snbW9uJ10gPSAnTcSXbnVvJzsKJGxhbmdbJ3llYXInXSA9ICdNZXRhaSc7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsaXMgaW5zdGFsaXVvdGFzJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsaW8gJXMgdmVyc2lqYSBpbnN0YWxpdW90YS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGlzIGF0bmF1amludGFzIGlraSAlcyB2ZXJzaWpvcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQXRnYWwuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1BhdGVpa3RpIGZvcm3EhSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdUxJlzdGkuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1Bhxb55bcSXdGEnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmVwYcW+eW3El3RhJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUGFncmluZGluaXMnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm1vcyByb2R5bW8gbnVzdGF0eW1haSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybW9zIHBhdGVpa2ltYXMnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIG51c3RhdHltYWknOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnUGFwaWxkb21pIFNudXN0YXR5bWFpJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1RlbXBsYXRlIExheW91dCBPcHRpb25zJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdQYXRlaWtpbW8gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1ByaWTEl3RpIGRhdWdpYXUgcGFzaXJpbmtpbcWzJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVHJpbnRpIHBhxb55bcSXdHVzIHBhc2lyaW5raW11cyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1ByaWTEl3RpIGRhdWdpYXUgQ2hlY2tib3ggbGF1a8WzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnSSZzY2Fyb247dHJpbnRpIHBhxb55bcSXdHVzIENoZWNrYm94IGxhdWt1cyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWTEl3RpIGtpdMSFIGFkcmVzxIUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdJJnNjYXJvbjt0cmludGkgcGHFvnltxJd0dXMgYWRyZXN1cyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQcmlkxJd0aSBraXTEhSBwYXNreXJpbW8gdmlldMSFJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0kmc2Nhcm9uO3RyaW50aSBwYcW+eW3El3RhcyBwYXNreXJpbW8gdmlldGFzJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUGFrZWlzdGkgbGF1a8WzIGVpbGkmc2Nhcm9uO2t1bcSFJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F0JnNjYXJvbjthdWt0aSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdOdXN0YXR5dGEgdmVydMSXOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0xhdWtvIGF1ayZzY2Fyb247dGlzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdQYXRlaWt0YSBuYXVkb2phbnQgZm9yYmJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ8Sua8SXbGltxbMga2F0ZWdvcmlqYSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NpxbNzdGkgJnNjYXJvbjvEryAgZmFpbMSFIMSvIHVwbG9hZHMgbW9kdWzEryc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnRGlkxb5pYXVzaWFzIGlsZ2lzJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggZXRpa2V0xJcnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gZXRpa2V0xJcnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZlcnTElyBrYWkgcGHFvnltxJd0YSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJ0xJcga2FpIG5lcGHFvnltxJd0YSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdJJnNjYXJvbjt0cmludGk/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1Bhc2lyaW5rdGkgdmllbsSFJnF1b3Q7IHRla3N0YXMnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ05hdWRvdGkgc3VwYXByYXN0aW50xIUgZS4gcGEmc2Nhcm9uO3RvIGFkcmVzbyB0aWtyaW5pbcSFJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgJnF1b3Q7eEB5JnF1b3Q7IGluc3RlYWQgb2YgcmVxdWlyaW5nICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gYWRkcmVzcyZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmFpbG8gcGF2YWRpbmltYXMnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0UuIHBhJnNjYXJvbjt0byB0ZW1vcyBsaW5pamEnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybW9zIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybW9zIGLFq3NlbmEnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmVwYXJlbmd0YSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdudWRvdGkgJnNjYXJvbjvEryB0cnVtcGluxK8nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm1vcyBhbGlhc2FzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybW9zIGxhdWthaSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0xhdWtvIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnUm9keXRpIGZvcm1vcyBhbGlhc3VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdMYXVrbyBwYXZhZGluaW1hcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0xhdWtvIGFsaWFzYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0xhdWtvIHRpcGFzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdQcmlkxJd0aSBuYXVqxIUgZm9ybcSFJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1JvZHl0aSAmcXVvdDtGb3JtxbMga8WrcmltbyZxdW90OyB2ZXJzaWrEhSA/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdQcmlkxJd0aSBuYWrEhSBsYXVrZWzEryc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3Jtb3MgcGF0ZWlraW1vIG15Z3R1a28gdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ015Z3R1a28gdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIFN1Ym1pdCBCdXR0b24gdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ1ByaWTEl3RpIHNhdWd1bW8gc2tyaXB0xIUnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnTGF1a28gdGlrcmluaW1hcyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0xhdWthcyBwYXRpa3JpbmltdWknOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIElEICZzY2Fyb247aWFtIGxhdWt1aSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzxJcgJnNjYXJvbjtpYWkgZm9ybWFpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzxJcgJnNjYXJvbjtpYW0gbGF1a3VpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU2ltYm9saXMgcHJpdmFsb23FsyBsYXVrxbMgxb55bcSXamltdWknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdQcml2YWxvbWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdQcml2YWxvbWFzIGxhdWthcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2zEl3B0aSBldGlrZXTEmSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1Rpa3JpbmltbyBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnUm9kb23FsyBsaW5pasWzIHNrYWnEjWl1cyc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdUaWsgc2thaXR5bXVpJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUHJpdmFsb21hcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NsxJdwdGkga2xhaWRhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybW9zIHJvZHltbyB0aXBhcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFLiBsYWkmc2Nhcm9uO2tvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzaW1hbHVzIMSva2VsaWFtbyBmYWlsbyBkeWRpcyAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1B1c2xhcGlzICVzIGkmc2Nhcm9uOyAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnUm9keXRpIGxhdWvFsyBJRCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnxK52ZXNraXRlIHJhaWTEl3MgaSZzY2Fyb247IHBhdmVpa3NsaXVrby4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheSYjMDM5O3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIHN0b3JlZCBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdGUgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UgZm9yIHByaXZhdGUga2V5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1N0b3JhZ2UgRW5jcnlwdGlvbiBVbmF2YWlsYWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdSdW4gaW4gTUxFIE1vZGUnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ0NoYW5nZXMvc3VwcG9ydCBmb3IgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiBmb3JrLiBEbyBub3QgY2hlY2sgdGhpcyBpZiB5b3UgYXJlIG5vdCBydW5uaW5nIHRoZSBNTEUgdmVyc2lvbi4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnRW5zdXJlIHRoYXQgeW91IHNlbGVjdCB0aGUgcHJpdmF0ZSBrZXkgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IgdGhlIGNlcnRpZmljYXRlIHlvdSBhcmUgdXNpbmcgZm9yIGVuY3J5cHRpb24hJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDaGVjayB0aGlzIHRvIGVuY3J5cHQgdGhlIHN0b3JlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IChidXQgbm90IGltcG9zc2libGUpIGZvciBoYWNrZXJzIHRvIHZpZXcgdGhlIGluZm9ybWF0aW9uLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ1RoZSBvcHRpb25zIGJlbG93IG9ubHkgYXBwbHkgaWYgeW91IGFyZSB1c2luZyB0aGUgT3BlblNTTCBFbmNyeXB0aW9uIGxpYnJhcnknOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIExpYnJhcnknOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciBiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIEZyb250ZW5kIFVzZXIgbW9kdWxlIHRvIGNvbm5lY3QgYSBmb3JtIGFuZCBpdHMgZGF0YSB0byBhIHNwZWNpZmljIHVzZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybSYjMDM5O3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnRW5jcnlwdGlvbic7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/JzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdUaWsgJXMgZ3J1cMSXamUnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnUm9keXRpIG5hdWRvdG9qxIU/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJyZTY2Fyb247aXMgbGF1a2FzIGdhbGkgYsWrdGkgdHUmc2Nhcm9uO8SNaWFzJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIGtpbnRhbWFzaXMnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdQYXRlaWtpbW8gZGF0YSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnSsWrc8WzIHNlcnZlcmlzJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpamEnOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnT3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnS2ludGFtYXNpcyc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTC1FbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnTnVtYXR5dGkgbWV0YWknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdOdWtyZWlwdGkgxK8gc3ZldGFpbsSXcyBwdXNsYXDEryc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGV4dCB0byBkaXNwbGF5IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdFaWx1dMSXJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdTa2FpxI1pdXMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnTnVtYXR5dGEgbGF1a28gdmVydMSXJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ1JlaWtpYSBkYXVnaWF1IGxhdWvFsyB0aXDFsz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1BlcmRhdWcgbGF1a8WzIHRpcMWzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdQZXJqdW5ndGkgxK8gaSZzY2Fyb247cGzEl3N0aW7EmSBtb2TEhSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1Blcmp1bmd0aSDEryBwYXByYXN0xIUgbW9kxIUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTacWzc3RpIGZvcm1vcyBrb3BpasSFIG1hbic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snJ10gPSAnJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05pZWthZGEnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ1Zpc2FkYSc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnRMSWTUVTSU8hJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdOdW1hdHl0YXMgJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICcmU2Nhcm9uO2FibG9uYXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnU2F1c2lzJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWYXNhcmlzJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdLb3Zhcyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQmFsYW5kaXMnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdHZWd1xb7Elyc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdCaXLFvmVsaXMnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnTGllcGEnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdSdWdwasWrdGlzJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnUnVnc8SXamlzJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ1NwYWxpcyc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTGFwa3JpdGlzJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdHcnVvZGlzJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdEZWphISDErnZ5a28ga2xhaWRhIHBhdGVpa2lhbnQgasWrc8WzIGF0c2FreW11cy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybW9zIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuIFlvdSBhbHNvIHNlbGVjdCB0aGUgZGlzcGxheSB0eXBlLiBZb3VyIGNob2ljZXMgYXJlOjwvcD4NCjx1bD4NCjxsaT5UYWJsZS9DU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQgdXNpbmcgSFRNTCB0YWJsZXMuIElmIHlvdSBkb24mIzAzOTt0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gPGRpdj4gdGFncy4gWW91IGNhbiB0aGVuIHN0eWxlIHRoZSBmb3JtIGFzIHlvdSBzZWUgZml0LjwvbGk+DQo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91JiMwMzk7cmUgb24geW91ciBvd24uIFlvdSBoYXZlIHRoZSBwb3dlciB0byBjcmVhdGUgd2hhdGV2ZXIgeW91IHdhbnQuPC9saT4NCjwvdWw+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+DQo8cD5Gb3JtIFNldHRpbmdzIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIGEgbG90IG9mIHRoZSBtZXNzYWdlcyBhbmQgdGV4dCBpbiB0aGUgY29udHJvbHMgZm9yIHlvdXIgZm9ybS4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIHBpY2sgYSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPGg0PlRhYmxlLWJhc2VkIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4NCjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91JiMwMzk7cmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+DQo8dWw+PGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sncWNhJ10gPSAnUDAtNTAzNTYxNjE4LTEyNTM2MzI5MDgyMjQnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41Nzk1NjY3MzQuMTI1MzgzMTQwMi4xMjU3MDk2NzcwLjEyNTc3ODU0MDMuMTQnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjU3Nzg1NDAzLjE0LjEzLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywzODg3NS4wL3RvcGljc2Vlbi5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYWJ5Z2dlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxGcm9tRkVVUHJvcGVydHknXSA9ICcqRS1wb3N0IGJydWtlcmUgc29tIHBhc3NlciBtZWQgZW4gRkVVIGVnZW5za2FwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsdHR5cGUgaWtrZSBzYXR0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ1ZlbGcgZW4gKGVsbGVyIGZsZXJlKSBjYXRhbG9nZXIgYXJ0aWtsZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ0ZlbHRncnVwcGUgU2x1dHQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnRmVsdGdydXBwZSBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1Rla3N0IGlubnNrcml2aW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVOdW1iZXJGaWVsZCddID0gJ0hUTUw1IEFudGFsbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0hUTUw1IEUtcG9zdCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgaW5uZGF0YSc7CiRsYW5nWydmaWVsZF90eXBlX1NpdGVBZG1pbkZpZWxkJ10gPSAnTmV0dHN0ZWRzYWRtaW4nOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ0dqZW50YSBwYXNzb3JkICh2ZXJpZmlzZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1Rla3N0IGlubnNrcml2aW5nIChGbGVyZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0tuYXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJyZBcmluZztyIG5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBbWVyaWthbnNrIHN0YXQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0thbmFkaXNrIHByb3ZpbnMgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZCB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHMtdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IGJhc2VydCBwJmFyaW5nOyBOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbCBCYXNlcnQgcCZhcmluZzsgbmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbChlcikgQmFzZXJ0IHAmYXJpbmc7IEZsZXJlIFZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKk9tZGlyaWdlciB0aWwgU2lkZSBCYXNlcnQgcCZhcmluZzsgTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IHRpbCBiZXN0ZW10ZSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlcmluZy1tZWQtZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgZnJhIGFkcmVzc2UmcXVvdDsgZmVsdCwgb2cgc2VuZCBrb3BpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGZsYXQgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25VbmlxdWVGaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0IHRpbCBlbiBVbmlrIGZsYXQgZmlsIGZvciBodmVydCBpbm5sZWdnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypMYWdyZSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypMYWdyZSByZXN1bHRhdGVyIGZvciBGb3JtQnJvd3NlciBtb2R1bGVuIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypLYWxsIG9wcCBlbiBCcnVrZXJkZWZpbmVydCBUYWdnIG1lZCBza2plbWEgcmVzdWx0YXRlbmUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqIFNlbmQgdGlsIGVuIHZpbGsmYXJpbmc7cmxpZyBza2plbWFoYW5kbGluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgdGlsIEJydWtlci1PcHBnaXR0IEVwb3N0YWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRXBvc3QgdGlsIENNUyBBZG1pbiBicnVrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcyddID0gJypFLXBvc3QgcmVzdWx0YXRlciBiYXNlcnQgcCZhcmluZzsgRnJvbnRlbmQgZmVsdGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25MaXN0SXRFeHRlbmRlZCddID0gJypMYWdyZSByZXN1bHRhdGVyIGZvciBMaXN0SXRFeHRlbmRlZCc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbCBvcHBsYXN0aW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RnJhIGFkcmVzc2UmcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RnJhIGFkcmVzc2UmcXVvdDsgSWdqZW4gRmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFcG9zdCAmcXVvdDtFbW5lJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9DQ0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRS1wb3N0IENhcmJvbiBDb3B5IChDQykgYWRyZXNzZWZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZWtzdCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aXNrIGxlbmtlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGVua2UgKEJydWtlci1vcHBnaXR0KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLVNranVsdCBGZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1CZXJlZ25ldCBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaWsgSW50ZWdlciAoU2VyaWVsbCknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctQnJ1a2VyIERlZmluZXJ0IFRhZ2coVURUKSBrYWxsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsIGdyZW5zZXNuaXR0c2ZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEV4dGVuZGVkRmllbGQnXSA9ICdVdHZpZGV0IEF2a3J5c25pbmdzYm9rcyc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRXBvc3RhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nOyBhdmtyeXNzZXMnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NhbXN2YXJlciB2YW5saWcgdXR0cnlrayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdTYW1zdmFyZXIgaWtrZSBtZWQgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sndmFsaWRhdGlvbl9lbXB0eSddID0gJ0thbiBpa2VrIHYmYWVsaWc7cmUgdG9tJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnUCZhcmluZztrcmV2ZCc7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdGcml2aWxsaWcnOwokbGFuZ1snbm90X2F2YWlsYWJsZSddID0gJ0lra2UgdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnXSA9ICdGZWlsIGkgRmVsdCBvcHBzZXR0JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnRnJvbnRFbmRVc2VycyBtb2R1bGVuIGJsZSBpa2tlIGZ1bm5ldC4gRGV0dGUgZmVsdGV0IHZpbCBpa2tlIGZ1bmdlcmUuJzsKJGxhbmdbJ2Vycm9yX25vZmV1ZGVmbnMnXSA9ICdJbmdlbiBwYXNzZW5kZSBGRVUgZWdlbnNrYXAgYmxlIGZ1bm5ldC4gRGV0dGUgZmVsdGV0IHZpbCBpa2tlIGZ1bmdlcmUuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdFbiB2ZXJkaSBlciBpa2tlIG9wcGdpdHQgZm9yIGV0ICYjMDM5O24mb3NsYXNoO2R2ZW5kaWcmIzAzOTstZmVsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZXQgdGFsbCBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiBneWxkaWcgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnVmVubmxnaXN0IHNrcml2IGlubiBlbiBpbnRlZ2VyIHZlcmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyBlcG9zdGFkcmVzc2UgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFcG9zdGFkcmVzc2VuIGVyIGlra2UgbGlrIHZlcmRpZW4gc2F0dCBpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnVmVubmxpZ3N0IG9wcGdpIGV0IGd5bGRpZyBVUyB0ZWxlZm9ubnVtbWVyIGZvciZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1Zlbm5saWdzdCBsb2dnIGlubiBmb3IgJmFyaW5nOyBiZW55dHRlIGRldHRlIHNramVtYSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBzZXIgaWtrZSB1dCB0aWwgJmFyaW5nOyB2JmFlbGlnO3JlIGVuIGd5bGRpZyBlcG9zdGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdWZW5ubGlnc3Qgb3BwZ2kgZW4gdmVyZGkgc29tIGlra2UgZXIgbGVuZ3JlIGVubiAlcyBib2tzdGF2ZXInOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmVubmxpZ3N0IG9wcGdpIGVuIHZlcmRpIHNvbSBiZXN0JmFyaW5nO3IgYXYgbWluc3QgJXMgYm9rc3RhdmVyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVnbiAmYXJpbmc7IGJydWtlIHNvbSBhdmRlbGVyIGkgcmVzdWx0YXRlciBzb20gaGFyIGZsZXJlIHZlcmRpZXInOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0R1IHRyZW5nZXIgJnF1b3Q7JXMmcXVvdDsgcmV0dGlnaGV0ZW4gZm9yIGt1bm5lIHV0ZiZvc2xhc2g7cmUgZGVuIGhhbmRsaW5nZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnQmVrbGFnZXIhIER1IGhhciBpa2tlIG5vayByZXR0aWdoZXRlciBmb3IgJmFyaW5nOyBmJmFyaW5nOyBhZGdhbmcgdGlsIGRlbiBhdmRlbGluZ2VuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdCByZWtrZWYmb3NsYXNoO2xnZSBvcHBkYXRlcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ1NramVtYSBzbGV0dGV0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsdCBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXNqb24gb3BwZGF0ZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IG0mYXJpbmc7IGtyeXNzZSBhdiAmcXVvdDslcyZxdW90OyBmb3IgJmFyaW5nOyBmb3J0c2V0dGUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nOyBvcHBnaSBpIGRldCBtaW5zdGUgZW4gbSZhcmluZztsLWFkcmVzc2UhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIHNramVtYWV0ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuc2VydGUgdmFsZyBlciBpa2tlIHRpbGdqZW5nZWxpZyBmJm9zbGFzaDtyIGZlbHQtdHlwZSBoYXIgYmxpdHQgc2F0dC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGZWx0IG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWsuIFZlbm5saWdzdCBicnVrIHVuaWtlIGZlbHRuYXZuLCBlbGxlciBzbCZhcmluZzsgYXYga3JhdmV0IHRpbCB1bmlrZSBmZWx0bmF2biBpIFNramVtYWJ5Z2dlciBrb25maWd1cmFzam9uZW4uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGZWx0ZXIgTSZBcmluZzsgbmF2bmVzLCBvbSBkdSBpa2tlIHNsJmFyaW5nO3IgYXYgZGV0dGUgaSBTa2plbWFieWdnZXIga29uZmlndXJhc2pvbmVuLic7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ0luZ2VuIGZlbHQgdGlsZWduZXQgZm9yICVzJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ2RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJva3Nlcic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGJva3N0YXZlcic7CiRsYW5nWydvcmRlciddID0gJ1Jla2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3VzcGVzaWZpc2VydF0nOwokbGFuZ1snYWRkZWQnXSA9ICdMYWd0IHRpbCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnT3BwZGF0ZXJ0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3NtdWxpZ2hldGVyIGZvciB1dGRhdGEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWZWxnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vdHRha2VyZSc7CiRsYW5nWydmaWVsZHMnXSA9ICdmZWx0ZXInOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG11bGlnZSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXJpbmc7bCc7CiRsYW5nWydzYXZlJ10gPSAnTGFncmUgb2cgbHVrayc7CiRsYW5nWydhZGQnXSA9ICdMZWdnIHRpbCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcHBkYXRlcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0JydWsnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hc2pvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNrJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnU2tqZW1hJzsKJGxhbmdbJ2Zvcm0nXSA9ICdTa2plbWEgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXNqb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbHQgbiZvc2xhc2g7ZHZlbmRpZy1zdGF0dXMgb3BwZGF0ZXJ0JzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3MuIHN0Jm9zbGFzaDtycmVsc2UnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWxlbmRlbHNlcic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnTG92bGlnZSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ09wcGxhc3RldCBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbXVtIHN0Jm9zbGFzaDtycmVsc2UgZXI6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVubmUgdHlwZSBmaWwgdmlsIGlra2UgYmxpIGxhc3RldCBvcHAuIFZlbm5saWdzdCBzamVrayBhdCBmaWxlbmRlbHNlbiBlciBrb3JyZWt0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXN0IG9wcCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnU2tqZW1hIGltcG9ydGVydC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnU2tqZW1hIGltcG9ydCBmZWlsZXQhIERldCBvcHBzdG9kIGV0IHByb2JsZW0gbWVkIGZvcm1hdHRldCBwJmFyaW5nOyBYTUwgZmlsZW4uJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByYWRlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyBrbG9ra2UnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyBrbG9ra2UnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXR0JzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4oQU0vUE0pJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdJbnRlcnZhbGw6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGFrayEgRGluIGlubnNlbmRpbmcgaGFyIGJsaXR0IG1vdHRhdHQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1snY3NzJ10gPSAnU3RpbGFyayAoQ1NTKSc7CiRsYW5nWydub3RpY2UnXSA9ICdNRVJLJzsKJGxhbmdbJ2dlbmVyYWwnXSA9ICdHZW5lcmVsdCc7CiRsYW5nWydhYm91dCddID0gJ09tJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ01hbGVyJzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnQXZhbnNlcnQnOwokbGFuZ1snc3R5bGluZyddID0gJ1N0eWxpbmcnOwokbGFuZ1sndGVhbSddID0gJ1RlYW1ldCc7CiRsYW5nWydjb250cmlidXRvcnMnXSA9ICdCaWRyYWdzeXRlcmUnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBhdmluc3RhbGxlcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnNqb24gJXMgaW5zdGFsbGVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBvcHBncmFkZXJ0IHRpbCB2ZXJzam9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxiYWtlLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTZW5kIHNramVtYSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdGb3J0c2V0dC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQXZrcnlzc2V0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgYXZrcnlzc2V0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSG92ZWQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ1NramVtYXZpc25pbmdzIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1NramVtYSBpbm5zZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5zZXJ0ZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ01hbCBsYXlvdXQgdmFsZyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnSW5uc2VuZGluZ3MgbWFsJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgaW50ZWdyYXNqb24nOwokbGFuZ1sndGl0bGVfZmV1X3Byb3BlcnR5J10gPSAnRnJvbnRFbmRVc2VycyBlZ2Vuc2thcCc7CiRsYW5nWydpbmZvX2ZldV9wcm9wZXJ0eSddID0gJ0JhcmUgc3Blc2llbGxlIGVnZW5za2Fwc3R5cGVyIGthbiBiZW55dHRlcyBmb3Iga29ibGluZyAobmVkdHJla2ssIGZsZXJ2YWxnIGZlbHQsIG9zdikuJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlciBlciBneWxkaWdlIGkgZGV0dGUgZmVsdGV0LjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMZWdnIHRpbCBmbGVyZSB2YWxnJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldHQgbWFya2VydGUgdmFsZyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0xlZ2cgdGlsIGZsZXJlIGF2a3J5c25pbmdzYm9rc2VyJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnU2xldHQgbWFya2VydGUgYXZrcnlzbmluZ3Nib2tzZXInOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMZWdnIHRpbCBhbm5lbiBhZHJlc3NlJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU2xldHQgbWFya2VydCBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0xlZ2cgdGlsIGFubmV0IG0mYXJpbmc7bCc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTbGV0dCBtYXJrZXJ0ZSBtJmFyaW5nO2wnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGb3IgbWFuZ2UgZS1wb3N0ZXIgZXIgYmxpdHQgZ2VuZXJlcnQgZnJhIGRpbiBJUC1hZHJlc3NlLiBBbnRpLVNwYW0ga29kZSBoYXIgc3RvcHBldCBsZXZlcmluZ2VuLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdNaXN0ZW5rZWxpZyBzcGFtIGZyYSBJUCAlcyBibGUgc3RvcHBldC4nOwokbGFuZ1sncmVvcmRlciddID0gJ09tc29ydGVyIGZlbHRlcic7CiRsYW5nWydjYW5jZWwnXSA9ICdBdmJyeXQnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmVyZGkgc2F0dDogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ05lZGVuZm9yIGVyIGVuIGxpc3RlIG1lZCBhdHJpYnV0dGVuZSBzb20gZXIgdGlsZ2plbmdlbGlnZSBmcmEgQ2F0YWxvZ2VyIG1vZHVsZW4uPGJyLz4NCkR1IGthbiB2YWxnZnJpdHQgc3Blc2lmaXNlcmUgZ3lsZGlnZSB1dHZhbGcsIHZlcmRpZXIgZWxsZXIgZmxlcmUgdmVyZGllciBzb20gc2thbCBiZW55dHRlcyBmb3IgJmFyaW5nOyBmaWx0cmVyZSBsaXN0ZW4gbWVkIGVuaGV0ZXIgc29tIHZpc2VzIHRpbCBicnVrZXJlbi48YnIvPg0KPGJyLz4NCjxzdHJvbmc+VXR2YWxnOjwvc3Ryb25nPjxici8+DQpVdHZhbGcoUmFuZ2VzKSBrYW4gc3Blc2lmaXNlcmVzIHZlZCAmYXJpbmc7IGltcGxpc2VyZSBlbiBtaW5pbXVtIG9nIG1ha3NpbXVtIHZlcmRpIHZlZCAmYXJpbmc7IGJlbnl0dGUgZGVubmUgc3ludGFrc2VuOiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+RmxlcmUgdmVyZGllcjo8L3N0cm9uZz48YnIvPg0KRm9yICZhcmluZzsgc3Blc2lmaXNlcmUgZmxlcmUgdmVyZGllciBmb3IgZW4gYXRyaWJ1dHQgYmVueXR0ZXIgZHUgc3ludGFrc2VuICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WZXJkaWVyIGZyYSBza2p1bHRlIGZlbHQ8L3N0cm9uZz48YnIvPg0KRm9yICZhcmluZzsgc3Blc2lmaXNlcmUgZW4gdmVyZGkgZnJhIGV0IHNranVsdCBmZWx0IGJlbnl0dGVyIGR1IHN5bnRha3NlbiB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1sndGl0bGVfdGV4dGZpZWxkX2xhYmVsJ10gPSAnVGVrc3RmZWx0IGV0aWtldHQnOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdWaXMgdGVrc3RmZWx0Pyc7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdFbiByZWd1bGFyIGV4cHJlc3Npb24gZm9yICZhcmluZzsgdGlsbGF0ZSBmaWx0cmVyaW5nIGF2IGNhdGFsb2dlciBhcnRpa2xlciBldHRlciBuYXZuJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnSCZvc2xhc2g7eWRlIHAmYXJpbmc7IGZsZXJ2YWxncyBmZWx0ZXQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmVsdCBoJm9zbGFzaDt5ZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnTSZhcmluZztsa2F0YWxvZyBmb3IgdXRzZW5kaW5nIGF2IGZpbGVyJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQnJ1a2VyZGVmaW5lcnQgVGFnZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU2lkZSAmYXJpbmc7IHJldHVybmVyZSB0aWwgbWVkIG9wcGxhc3RpbmdzIGxlbmtlbic7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0lubnNlbmR0IG1lZCBTa2plbWFCeWdnZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ09wcGxhc3RpbmdzIEthdGVnb3JpJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCBkZW5uZSBmaWxlbiB0aWwgb3BwbGFzdGluZ3MgbW9kdWxlbic7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdUaWxsYXQgb3BwbGFzdGluZyAmYXJpbmc7IG92ZXJza3JpdmUgZWtzaXN0ZXJlbmRlIGZpbGVyPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ1NrYWwgb3BwbGFzdGV0IGZpbCBvdmVyc2tyaXZlIHRpZGxpZ2VyZSBvcHBsYXN0ZXQgZmlsIG9tIGRlIGhhciBzYW1tZSBuYXZuPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdUaWxsYXRlciBvdmVyc2tyaXZpbmcnOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdJbmdlbiBvdmVyc2tyaXZpbmcnOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddID0gJ0ZpbGVuICVzIGVrc2lzdGVyZXIgYWxsZXJlZGUsIG9nIGYmYXJpbmc7ciBpa2tlIG92ZXJza3JpdmVzLic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ0ZpbG5hdm4tbWFsJzsKJGxhbmdbJ29yaWdpbmFsX2ZpbGVfZXh0ZW5zaW9uJ10gPSAnT3JpZ2luYWwgZmlsZW5kZWxzZSAoaW5rbHVkZXJ0ICZxdW90Oy4mcXVvdDspJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2ZpbGVuYW1lJ10gPSAnVW5kZXJ0cnlrayBmaWxuYXZuIGkgZS1wb3N0IG9nIHNramVtYWVyIHNsdXR0YnJ1a2VyZW4gdmlsIHNlJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2F0dGFjaG1lbnQnXSA9ICdOZWt0IGZpbGVyICZhcmluZzsgYmxpIGxhZ3QgdmVkIGVwb3N0ZXInOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddID0gJ0ZvciAmYXJpbmc7IGVuZHJlIG5hdm4gcCZhcmluZzsgZW4gZmlsIHZlZCBvcHBsYXN0aW5nLCBvcHByZXR0ZXIgZHUgbWFsZW4gaGVyLiBMYSBzdCZhcmluZzsgdG9tdCBmb3IgJmFyaW5nOyBiZXZhcmUgb3BwcmlubmVsaWdlIGZpbG5hdm4nOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnRmVsdGdydXBwZXRpdHRlbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbXVtIGxlbmdkZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0F2a3J5c25pbmdzYm9rcyBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW9rbmFwcCBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgYXZrcnlzc2V0JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZlcmRpIG4mYXJpbmc7ciBpa2tlIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQXZrcnlzbmluZ3Nib2tzIGdydXBwZSBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTbGV0dD8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmVsZyAmZWFjdXRlO24mcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdVdHZhbGcgdmVyZGknOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnVXR2YWxnIFZpc25pbmdzIE5hdm4nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdVdHZhbGcgZW1uZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmQgdXR2YWxnJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmQgdXR2YWxnJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU3RhbmRhcmQgdXR2YWxnJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsZyBuYXZuJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZlcmRpIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdOZWR0cmVra3MgdmFsZyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnRmxlcnZhbGcgdmFsZyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnTSZhcmluZztsIGVwb3N0YWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ00mYXJpbmc7bCBGaWxuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZvciBlcG9zdCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQnJ1ayBlbmtlbCBlcG9zdCB2ZXJpZmlzZXJpbmcnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQnJ1ayBlbmtlbCBlcG9zdGFkcmVzc2UgdmVyaWZpc2VyaW5nIChmLmVrcy4gdGlsbGF0ICZxdW90O3hAeSZxdW90OyBpc3RlZGV0IGZvciAmYXJpbmc7IGtyZXZlICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZvciBlcG9zdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0Vwb3N0IHRlZ25zZXR0IGtvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTmVkdHJla2stYmFzZXJ0ZSBlcG9zdCBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFcG9zdCBFbW5lIGxpbmplJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ1NqZW1hbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1NramVtYSBzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdGZXJkaWcgZm9yIGFudmVuZGVsc2UnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2UgZmVyZGlnJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIHNramVtYSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVmVubmxpZ3N0IGxlZ2cgdGlsIGV0IGZlbHQgdGlsIHNramVtYWV0IHMmYXJpbmc7IGJydWtlcmVucyBpbm5za3JpdmluZyBibGlyIGJlaGFuZGxldC4gRHUga2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnYnJ1ayBkZW5uZSBzbmFydmVpZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ1NramVtYSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnU2tqZW1hZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbHQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdWaXMgZmVsdCBhbGlhc2VyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICcmQXJpbmc7IHZlbGdlIGRldHRlIHZpbCB2aXNlIGZlbHQgYWxpYXNlciBuJmFyaW5nO3IgZW4gbGVnZ2VyIHRpbCBlbGxlciByZWRpZ2VyZXIgZXQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGZWx0IG5hdm4nOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGZWx0IGFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlva25hcHAgZ3J1cHBlIGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWx0IHR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2ZvciAmYXJpbmc7IGxhZ2UgZXQgc2tqZW1hIGJlaGFuZGxpbmcgZmVsdCc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdMZWdnIHRpbCBueXR0IHNramVtYSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWaXMgU2tqZW1hYnlnZ2VyIHZlcnNqb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGlubmthcHNsZSBkaXR0IHZlcnNqb25zbnVtbWVyIGZvciBTa2plbWFieWdnZXIgbW9kdWxlbiBpIGVuIGtvbW1lbnRhciwgZm9yICZhcmluZzsgaGplbHBlIGkgZmVpbHMmb3NsYXNoO2tpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0xlZ2cgdGlsIG55dHQgZmVsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdTa2plbWEgJnF1b3Q7U2VuZCZxdW90OyB0ZWtzdCBmb3Iga25hcHAnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdUZWtzdCBmb3Iga25hcHAnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdMZWdnIHRpbCBldHQgSmF2YXNjcmlwdCB0aWwgVXRmJm9zbGFzaDtyIGtuYXBwZW4gZm9yICZhcmluZzsgdW5uZyZhcmluZzsgZ2plbnRhdHRlIGlubnNlbmRpbmdlcj8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0xlZ2cgdGlsIFNpa2tlcmhldHMgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdTa2plbWEgJnF1b3Q7TmVzdGUmcXVvdDsgdGVrc3QgZm9yIGtuYXBwIChicnVrdCBwJmFyaW5nOyBmbGVyc2lkZXJzIHNramVtYWVyKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O0ZvcnJpZ2UmcXVvdDsgdGVrc3QgZm9yIGtuYXBwIChicnVrdCBwJmFyaW5nOyBmbGVyc2lkZXJzIHNramVtYWVyKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmVsdHNqZWtrJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmVsdCAmYXJpbmc7IHNqZWtrZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZm9yIGRldHRlIGZlbHRldCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2UgZm9yIGRldHRlIHNramVtYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdCcnVrZXIgZGVmaW5lcnQgdGFnZyhVc2VyIERlZmluZWQgVGFnL1VEVCkgJmFyaW5nOyBrYWxsZSBmJm9zbGFzaDtyIHNramVtYWV0IHZpc2VzIGYmb3NsYXNoO3JzdGUgZ2FuZyAoa2FsbGVzIGt1biBlbiBnYW5nKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdCcnVrZXIgRGVmaW5lcnRlIFRhZ2coVURUKSAmYXJpbmc7IGthbGxlIG9wcCBmJm9zbGFzaDtyIHNramVtYSB2aXNlcyAoYmxpciBrYWxsdCBvcHAgZm9yIGh2ZXIgc2lkZSBmb3IgZmxlcnNpZGUtc2tqZW1hZXIpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnQnJ1a2VyZGVmaW5lcnQgdGFnZyhVRFQpICZhcmluZzsga2FsbGUgb3BwIHVuZGVyIHNramVtYSB2YWxpZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIGZvciAmYXJpbmc7IG1lcmtlIG4mb3NsYXNoO2R2ZW5kaWdlIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdOJm9zbGFzaDtkdmVuZGlnJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdLcmV2IGVuIHJlc3BvbnMgZm9yIGRldHRlIGZlbHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1NranVsIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnU2tqdWwgZGV0dGUgZmVsdGV0cyBuYXZuIHAmYXJpbmc7IHNramVtYWV0JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ01ha3NpbWFsIGxlbmdkZSBwJmFyaW5nOyBmZWx0aW5uaG9sZCAoMCBlbGxlciBibGFuayBiZXR5ciBpbmdlbiBncmVuc2UpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNrIHRla3N0ICZhcmluZzsgdmlzZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJyhSZWdleCkgc2pla2snOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FudGFsbCBsaW5qZXIgJmFyaW5nOyB2aXNlJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ1Nrcml2ZWJlc2t5dHRldCc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW5nZW4gc3RhbmRhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIGdvZGtqZW5uaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXR0ZSB2YW5saWdlIHV0dHJ5a2tldCB2aWwgYmFyZSBibGkgYnJ1a3Qgb20gJnF1b3Q7dmFsaWRlcmluZ3MgdHlwZSZxdW90OyBlciBzYXR0IHRpbCByZWdleC1yZWxhdGVydCB2YWxnLiBJbmtsdWRlciBmdWxsIFBlcmwtc3RpbCByZWdleCwgaW5rbHVkZXJ0IHN0YXJ0L3N0b3BwIHNsYXNoZXIgb2cgZmxhZ2cgKGYuZWtzLiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ09ibGlnLic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NranVsIGZlaWwnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1NramVtYSB2aXNuaW5ncyB0eXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdIaW5kcmUgZmVpbHMmb3NsYXNoO2tpbmcgLyBmZWlsLW1lbGRpbmdlciBmcmEgJmFyaW5nOyB2aXNlcyB0aWwgYnJ1a2VyZW4uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRXBvc3QgbWFsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbXVtIG9wcGxhc3RpbmcgZmlsc3Qmb3NsYXNoO3JyZWxzZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5lIGJlZ3JlbnNuaW5nIGVyIGV0IHRpbGxlZ2cgdGlsIGVuaHZlciBncmVuc2Ugc2F0dCBhdiBwaHAgZWxsZXIgd2Vic2VydmVyIGtvbmZpZ3VyYXNqb25lbic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnS2F0YWxvZyBodm9yIGZpbGVyIHNrYWwgbGFncmVzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnR29ka2plbnRlIGZpbGVuZGVsc2VyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTa3JpdiBlbiBrb21tYS1zZXBhcmVydCBsaXN0ZSwgdXRlbGF0dCBwdW5rdHVtIChmLmVrcy4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbG9tcm9tIHZpbCBibGkgaWdub3JlcnQuICZBcmluZzsgbGEgZGV0dGUgdiZhZWxpZztyZSB0b210IHZpbCBzaSBpbmdlbiByZXN0cmlrc2pvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzIHJlc3RyaWtzam9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1ZpcyBzdCZvc2xhc2g7cnJlbHNlIGVsbGVyIGZpbGVuZGVsc2UtcmVzdHJpa3Nqb25lciBwJmFyaW5nOyBvcHBsYXN0aW5nc2ZlbHRldD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ01hbCAmYXJpbmc7IGJydWtlIGZvciAmYXJpbmc7IHZpc2Ugc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmVsdGV0IGhhciBpbmdlbiBhdmFuc2VydGUgdmFsZy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0ICZhcmluZzsgdmlzZSBmb3IgdXNwZXNpZmlzZXJ0ZSBmZWx0IHZlcmRpZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ011bGlnZ2omb3NsYXNoO3IgcmFzayBmZWx0LXRpbGxlZ2dpbmcgbWVkIG5lZHRyZWtrIGZvciBza2plbWFlcj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdNdWxpZ2dqJm9zbGFzaDtyIG5lZHRyZWtrIGZvciBodXJ0aWcgdGlsbGVnZ2luZyBhdiBmZWx0ZXI/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdIdXJ0aWctdGlsbGVnZyBhdiBmZWx0ZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICcmQXJpbmc7IGhha2UgYXYgZGV0dGUgdmlsIGt1biB0aWxsYXRlIGF0IDEwIGUtcG9zdGVyICZhcmluZzsgYmxpciBnZW5lcmVydCBmcmEgZW4gZ2l0dCBJUCBhZHJlc3NlIChwciB0aW1lKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnU2wmYXJpbmc7IHAmYXJpbmc7IHByaW1pdGl2ZSBhbnRpc3BhbSBlZ2Vuc2thcGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzIEZlbHQgSURlcic7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICcmQXJpbmc7IGhha2UgYXYgZGV0dGUgdmlsIHRpbGxhdGUgdmlzbmluZyBhdiBmZWx0IGlkZXIgdW5kZXIgb3BwcmV0dGVsc2UgZWxsZXIgcmVkaWdlcmluZyBhdiBldCBza2plbWEnOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0xhc3Qgb3BwIHNramVtYSBzb20gWE1MIGZpbCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQmVueXR0IGRldHRlIHNramVtYW5hdm5ldCc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIFNramVtYSBpbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdCZW55dHQgZGV0dGUgc2tqZW1hIGFsaWFzZXQnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyZXIgSFRNTCBlcG9zdD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdGeWxsIHV0IGF1dG9tYXRpc2s/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdGeWxsIHV0IGF1dG9tYXRpc2sgbWVkIFVSTCYjMDM5O2VuIHRpbCBzaWRlbiBzb20gaW5uZWhvbGRlciBza2plbWFldD8gKGRldHRlIG92ZXJzdHlyZXIgTGVua2UgdGlsIG5ldHRzdGVkIHNpZGUgdmFsZ2V0IG5lZGVuZm9yKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFyZCBsZW5rZSBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhcmQgbGVua2UgdGVrc3QnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xlbmtlIHRpbCBuZXR0c3RlZCBzaWRlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ0R1IGthbiBiZW55dHRlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gZm9yICZhcmluZzsgYmVza3l0dGUgc2tqZW1hIGlubnNlbmRpbmdlciBvbSBkdSBpbnN0YWxsZXJlciBDYXB0Y2hhIG1vZHVsZW4uIEZvciBtZXJlIGluZm9ybWFzam9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdCcnVrZSBDYXB0Y2hhIGZvciAmYXJpbmc7IGJlc2t5dHRlIHNramVtYSBpbm5zZW5kaW5nZXI/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdIYWsgYXYgaGVyIGZvciAmYXJpbmc7IGJlc2t5dHRlIGRpdHQgc2tqZW1hIG1lZCBlbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdWZW5ubGlnc3QgYmVrcmVmdCBhdCBkdSBpa2tlIGVyIGV0IHNrcmlwdCB2ZWQgJmFyaW5nOyBza3JpdmUgaW5uIGJva3N0YXZlbmUgZnJhIGJpbGRldC4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmVpbCB0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB0ZWtzdGVuIGJsZSBpa2tlIGtvcnJla3QgaW5uc2tyZXZldC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGplbHBldGVrc3QgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnSWtrZSBzZW5kIHZlcmRpZXIgZm9yIGlra2UtYXZrcnlzc2VkZSBib2tzZXInOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdIYWsgYXYgZGVubmUgb20gZHUga3VuIHZpbCBhdCBhdmtyeXNzZWRlIGJva3NlciBza2FsIGdpIHZlcmRpZXIuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMZW5rZSBldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMZW5rZSBtJmFyaW5nO2wgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQXZrcnlzc2V0IHNvbSBzdGFuZGFyZD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0Jlbnl0dCAyNC10aW1lcnMga2xva2tlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb3Nlc3NlciBzbWFydHkgdGFnZ2VyIGlubmkgZmVsdGVyPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmFkZXIgKG1lcms6IGRldHRlIGthbiBibGkgb3ZlcnN0eXJ0IGF2IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbG9ubmVyIChtZXJrOiBkZXR0ZSBrYW4gYmxpIG92ZXJzdHlydCBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ1NramVtYSBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnU3RhbmRhcmQgZXIgYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnU3RhbmRhcmQgZXIgYmxhbmsgKGZqZXJuIGF2aGFraW5nIGZvciAmYXJpbmc7IGJlbnl0dGUgZGFnZW5zIGRhdG8gc29tIHN0YW5kYXJkKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnVmlzIElubmxvZ2dpbmdzbmF2bihsb2dpbiBuYW1lKT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnVmlzIGJydWtlcmVucyBmb3JuYXZuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ1ZpcyBicnVrZXJlbnMgZXR0ZXJuYXZuPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlZ3JlbnMgYnJ1a2VybGlzdGVuIHRpbCBicnVrZXJlIGkgZW4gc3Blc2lmaWsgZ3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0tyeXB0ZXIgZGF0YSBsYWdyZXQgaSBkYXRhYmFzZW4nOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ1NlcnRpZmlrYXQgZm9yIGtyeXBldGVyaW5nIGF2IGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc29yZGZyYXNlIGVsbGVyIHN0aSB0aWwgZmlsIHNvbSBpbm5laG9sZGVyIHBhc3NvcmRmcmFzZS4gKE9tIE9wZW5TU0wgYmVueXR0ZXMgZXIgZGV0dGUgcGFzc29yZGZyYXNlbiBmb3IgcHJpdmF0biZvc2xhc2g7a2tlbGVuKSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdTbGFkZCBzb3J0ZXJpbmdzZmVsdGVyPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdG4mb3NsYXNoO2trZWwgJmFyaW5nOyBiZW55dHRlIGZvciAmYXJpbmc7IGtyeXB0ZXJlIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdEZXR0ZSBzbGFkZGVyIHNvcnRlcmluZ3NmZWx0ZW5lLCBtZW4gbGFyIGRlIGYmb3NsYXNoO3JzdGUgZiZhcmluZzsgYm9rc3RhdmVuZSB2JmFlbGlnO3JlIHVrcnlwdGVydGUsIGRldHRlIGdpciBlbiBzJmFyaW5nO3JiYXJoZXQsIG1lbiBmb3IgZGUgZmxlc3RlIGJydWtlcmUgZXIgZGV0dGUgZW4gYWtzZXB0YWJlbCBtaWRkZWx2ZWkgbWVsbG9tIHNpa2tlcmhldCBvZyBtdWxpZ2hldGVuIHRpbCAmYXJpbmc7IHNvcnRlcmUgcG9zdGVyLiBTb3J0ZXJpbmdlbiBibGlyIHMmYXJpbmc7bm4gb210cmVudCwgbWVuIGZvcmJsaXIgZ2Fuc2tlIGdvZC4gT20gZHUgaWtrZSBiZW55dHRlciBkZXR0ZSB2YWxnZXQgcyZhcmluZzsgdmlsIHNvcnRlcmluZ3NmZWx0ZXIgYmxpIGxhZ3JldCBpIGtsYXJ0ZWtzdC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdMYWdyaW5nc2tyeXB0ZXJpbmcgaWtrZSB0aWxnamVuZ2VsaWcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdWZW5ubGlnc3QgaW5zdGFsbGVyIE9wZW5TU0wgbW9kdWxlbiBlbGxlciBtY3J5cHQtc3Qmb3NsYXNoO3R0ZSBvbSBkdSAmb3NsYXNoO25za2VyICZhcmluZzsgYmVueXR0ZSBkYXRhYmFzZWtyeXB0ZXJpbmcuJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ0tvbnRyb2xsZXIgYXQgZHUgaGFyIENVUkwgc3Qmb3NsYXNoO3R0ZSBha3RpdiBpIGRpbiBQSFAgaW5zdGFsbGFzam9uLiBTZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdLaiZvc2xhc2g7ciBpIE1MRS1tb2R1cyc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnRW5kcmluZ2VyL3N0Jm9zbGFzaDt0dGUgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gSWtrZSBoYWsgYXYgZm9yIGRldHRlIG9tIGR1IGlra2Uga2omb3NsYXNoO3JlciBNTEUgdmVyc2pvbmVuLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdWJmFlbGlnO3Igc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZlbGdlciBkZW4gcHJpdmF0ZSBuJm9zbGFzaDtra2VsZW4gc29tIHRpbGgmb3NsYXNoO3JlciBzZXJ0aWZpa2F0ZXQgZHUgYmVueXR0ZXIgZm9yIGtyeXB0ZXJpbmdlbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnS3J5cHRlcmluZ3NiaWJsaW90ZWsnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnSGFrIGF2IGRlbm5lIGZvciAmYXJpbmc7IGtyeXB0ZXJlIGRlIGxhZ3JlZGUgZGF0YS4gRGV0dGUgZ2omb3NsYXNoO3IgZGV0IG1lciB2YW5za2VsaWcgKG1lbiBpa2tlIHVtdWxpZykgZm9yIGhhY2tlcmUgJmFyaW5nOyBsZXNlIGluZm9ybWFzam9uZW4uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVmFsZ2VuZSBuZWRlbmZvciBlciBrdW4gZ3lsZGlnZSBvbSBkdSBiZW55dHRlciBPcGVuU1NMIEVuY3J5cHRpb24gYmlibGlvdGVrZXQnOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnS3J5cHRlcmluZ3NiaWJsaW90ZWsnOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgYmlibGlvdGVrJzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgYmlibGlvdGVrJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfbGlzdGl0MiddID0gJ1Zlbm5saWdzdCBpbnN0YWxsZXIgTGlzdEl0RXh0ZW5kZWQgZm9yICZhcmluZzsgc2VuZGUgZXQgc2tqZW1hIHRpbCBtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX2xpc3RpdDJfaW5zdGFuY2UnXSA9ICdMaXN0SXRFeHRlbmRlZCBpbnN0YW5zJzsKJGxhbmdbJ3RpdGxlX2xpc3RpdDJfc3RhdGUnXSA9ICdMaXN0SXRFeHRlbmRlZCBFbGVtZW50IHRpbHN0YW5kIChha3Rpdi9wYXNzaXYpJzsKJGxhbmdbJ2NvbnRlbnRfc2VsZWN0X2luc3RhbmNlJ10gPSAnQWxsZSBmZWx0IGthbiBrb2JsZXMgbiZhcmluZztyIGRldHRlIGZlbHRldCBlciBsYWd0IHRpbCBza2plbWFldCc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgdGlsa29ibGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1Zlbm5saWdzdCBpbnN0YWxsZXIgRnJvbnRlbmQgVXNlciBtb2R1bGVuIGZvciAmYXJpbmc7IGtvYmxlIGV0IHNramVtYSBvZyBkZXRzIGRhdGEgdGlsIGVuIHNwZXNpZmlrIGJydWtlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnSGFrIGF2IGRlbm5lIGZvciAmYXJpbmc7IGwmYXJpbmc7c2UgZnJvbnQtZW5kIHRpbGdhbmcgdGlsIGRhdGEgaSBkZXR0ZSBza2plbWEgdGlsIGRlbiBpbm5sb2dnZWRlIGZyb250LWVuZCBicnVrZXJlbi4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0tyeXB0ZXJpbmcnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRWtzcG9ydGVyZSBza2plbWFyZWZmZXJhbnNlIHRpbCBVRFQgc29tICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/IChpa2tlIGdqJm9zbGFzaDtyIGRldHRlIG9tIGR1IHNrYWwga2omb3NsYXNoO3JlICBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdIZWxlIG5ldHRhZHJlc3NlbiwgaW5rbHVkZXJ0IHByb3Rva29sbGVuIG9nIGJhbmUgKGYuZWtzLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdTa2plbWFpbm5zZW5kaW5ncyBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnU2tqZW1hIG1ldG9kZSc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnS29ibGUgZmVsdGV0ICZxdW90OyVzJnF1b3Q7IHRpbCBza2plbWFpbm5zZW5kaW5ncyB2YXJpYWJlbGVuJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG9fZmllbGQnXSA9ICdLb2JsZSBmZWx0ICZxdW90OyVzJnF1b3Q7IHRpbCBmZWx0JzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdZdHRlcmxpZ2VyZSBpbm5zZW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ05vZSAmYXJpbmc7IGJsaSBsYWd0IHRpbCBpbm5zZW5kaW5ncyBwYXlsb2FkIGkgVVJMLWtvZGV0IGZvcm0gKEVrc2VtcGVsICZxdW90O3VzZXI9c3RldmUram9icyZhbXA7ZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ0lua2x1ZGVyIGZlbHRldCBpIGlubnNlbmRpbmdlbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnUmVra2VmJm9zbGFzaDtsZ2UgZm9yIGRhdG8ga29tcG9uZW50LWZlbHRldCAoZm9yIGlubnNrcml2aW5nKSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHZpbCBibGkgbGFncmV0IGkgZXQgWE1MIGZvcm1hdCBpIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJlbGxlbi4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRmVpbCEgRW50ZW4gc2tqZW1hZXQgaGFyIGluZ2VuIGZvcm1fYnVpbGRlciBkaXNwb3Npc2pvbiwgZWxsZXIgZGV0IGZlaWxldCBpIGxhc3RpbmcgKHBnYSBtaW5uZSBwcm9ibGVtZXI/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdCZW55dHQgJnF1b3Q7bSZxdW90OyBmb3IgbSZhcmluZztuZWQsICZxdW90O2QmcXVvdDsgZm9yIGRhZywgb2cgJnF1b3Q7eSZxdW90OyBmb3IgJmFyaW5nO3IuIFNraWxsIGVsZW1lbnRlbmUgbWVkIGJpbmRlc3RyZWsuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdLdW4gaSBncnVwcGUgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVmlzIHRpbCBicnVrZXI/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnQmVueXR0IHRpbGZlbGRpZyBudW1tZXJnZW5lcmF0b3IgaSBzdGVkZXQgZm9yIHN0YXRpc2snOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0h2b3IgbWFuZ2UgbnVtbWVyIHNrYWwgZ2VuZXJlcmVzIGkgcHJvc2Vzc2VuJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0RldHRlIGZlbHRldCBrYW4gZHUgbGEgdiZhZWxpZztyZSBibGFua3QnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVyIGZvciBtYWwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVGlsZ2plbmdlbGlnZSB2YXJpYWJsZXInOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJlbCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGlubmxldmVyaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkcmVzc2UgdGlsIHBlcnNvbmVuIHNvbSBicnVrZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnTGluayB0aWwgc2lkZW4gc29tIGlubmVob2xkZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2pvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYnVsYXIgdGVnbic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKERldHRlIGZlbHRldCBibGlyIGlnbm9yZXJ0IGh2aXMgZHUgYnJ1a2VyIE9wcGxhc3RpbmcgbW9kdWxlbiB0aWwgJmFyaW5nOyBiZWhhbmRsZSBmaWxlciknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlbmF0aXZlIGZlbHRuYXZuIGthbiBiZW55dHRlcyB1dGJ5dHRiYXJ0IChzcGVzaWVsdCBueXR0aWcgb20gU21hcnR5IHByb3Rlc3RlcmVyIHAmYXJpbmc7IGJva3N0YXZlciB1dGVuZm9yIEFTQ0lJIDMyLTEyNikuIDxiciAvPkFuZHJlIGZlbHQgdmlsIGJsaSB0aWxnamVuZ2VsaWdlIG4mYXJpbmc7ciBkdSBsZWdnZXIgZGVtIHRpbCBza2plbWFldC4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2UgPGEgaHJlZj0mIzAzOTtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJiMwMzk7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0ZXJpbmdzIGhqZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJlbCc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGZWx0IHJlcHJlc2VudGVydCc7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3Blc2lmaXNlciBlbiBmaWwgaSBGb3JtQnVpbGRlci90ZW1wbGF0ZXMvIG1hcHBlbi4gRGV0dGUgZmVsdGV0IGJsaXIgaWdub3JlcnQgb20gZGUgYmVueXR0ZXIgVFhUIHNvbSBkaW4gZmlsdHlwZS4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Jhc2ljOiBCcnVrIHRla3N0ZmVsdGV0IG5lZGVuZm9yIHRpbCBsYXlvdXQgZmVsdG5hdm5lbmUvdmVyZGllciBpICZlYWN1dGU7biBlbmtlbHQgYmxva2sgPGJyIC8+Lg0KQXZhbnNlcnQ6IEFuZ2kgU21hcnR5IHZhcmlhYmxlciBpIFJURiBtYWxmaWwgc29tIGR1IHZpbGxlIGdqb3J0IG5lZGVuZm9yLCBtZW4gb3JkbmUgZGVtIHNsaWsgZHUgdmlsIG9nIGxlZ2dlIHRpbCBmb3JtYXRlcmluZyA8YnIgLz4uDQpEdSBrYW4gZm9ydHNhdHQgYnJ1a2UlJSBIRUFERVIlJSBvZyUlRk9PVEVSJSUgc2Vrc2pvbmVyIGkgUlRGLWZpbGVuLic7CiRsYW5nWydoZWxwX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdmlsIGRldHRlIHYmYWVsaWc7cmUgdW1pZGRlbGJhcnQgZXR0ZXIgSGVhZGVyIE1hbC4gPGJyIC8+DQpGb3IgUlRGLCB2aWwgZGVubmUgZXJzdGF0dGUlJUZJRUxEUyUlIHN0cmVuZyBpIG1hbGZpbGVuIGh2aXMgUlRGIFRlbXBsYXRlIFR5cGUgZXIgc2F0dCB0aWwgJnF1b3Q7QmFzaWMmcXVvdDsuIDxiciAvPg0KRGV0dGUgZmVsdGV0IHZpbCBibGkgaWdub3JlcnQgaHZpcyBkdSBicnVrZXIgJnF1b3Q7UlRGJnF1b3Q7IHNvbSBmaWx0eXBlIG9nICZxdW90O0FkdmFuY2VkJnF1b3Q7IHNvbSBSVEYgbWFsdHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHZpbCBkZXR0ZSB2JmFlbGlnO3JlIHBsYXNzZXJ0IHAmYXJpbmc7IHRvcHBlbiBhdiBmaWxlbi4gRm9yIFJURiwgdmlsIGRlbm5lIGVyc3RhdHRlJSVIRUFERVIlJSBzdHJlbmcgaSBtYWxlbiBmaWxlbi4nOwokbGFuZ1snaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHZpbCBkZW5uZSBibGkgcGxhc3NlcnQgcCZhcmluZzsgYnVubmVuIGF2IGZpbGVuLiBGb3IgUlRGLCB2aWwgZGVubmUgZXJzdGF0dGUlJUZPT1RFUiUlIHN0cmVuZyBpIG1hbGZpbGVuLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsYmFrZSB0aWwgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdMYWcgZWtzZW1wZWxtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnT3BwcmV0dCBFa3NlbXBlbCBIVE1MLWVwb3N0IG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgSGVhZGVyIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgRm9vdGVyIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0xhZyBla3NlbXBlbCBvdmVyc2tyaWZ0JzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0IHRhYnVsYXRvciB0ZWduJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWwgZm9yICZlYWN1dGU7biBsaW5qZSBhdiB1dGRhdGEgZmlsZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdNYWwgZm9yIGhvZGV0IHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ01hbCBmb3IgYnVubnRla3N0ZW4gcCZhcmluZzsgdXRkYXRhIGZpbGVuJzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnTWFsIFJURiBmaWwgJmFyaW5nOyBiZW55dHRlJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnTWFsIGZvciB1dGRhdGEnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ10gPSAnVmVsZyBlbiBmaWx0eXBlICZhcmluZzsgYmVueXR0ZSc7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ1ZlbGcgZW4gUlRGIG1hbHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ0xpbmsgJmFyaW5nOyBrbGlra2UgZm9yIHNramVtYSBiZWtyZWZ0ZWxzZSc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZlcmRpIChzZSBBdmFuc2VydCBmbGlrZW4gb20gZHUgYmVueXR0ZXIgU21hcnR5IHRhZ2dlciknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRvIGZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnQnJ1a2UgV1lTSVdZRyByZWRpZ2VyZXIgZm9yIHRla3N0IG9tciZhcmluZztkZXQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnT3BwZiZvc2xhc2g7cnNlbCBmb3IgU2tqZW1hIElubnNlbmRpbmcnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0V0aWtldHQgZm9yIElubnNlbmRpbmdza25hcHBlbic7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRlcmJhcnQgZmVsdCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdEZW5uZSBzaWRlbiBsYXIgZGVnIHRpbHBhc3NlIFNramVtYSBJbm5zZW5kaW5nLiBEZXQgYmVzdGVtbWVyIGlra2UgaHZhIFNramVtYWJ5Z2dlciBnaiZvc2xhc2g7ciBtZWQgZGUgaW5uc2VuZHRlIGRhdGEuIERldHRlIGthbiBkdSBzZXR0ZSBvcHAgdmVkICZhcmluZzsgbGVnZ2UgdGlsICZxdW90O0Rpc3Bvc2lzam9uJnF1b3Q7KGdlbXl0dCkgZmVsdGVyIHRpbCBkaXR0IHNramVtYS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzbHV0dCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFyZCAmYXJpbmc7cic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXR0IHRpbCAtMSBmb3IgYXQgc3RhbmRhcmQgJmFyaW5nO3Igc2thbCBibGkgbiZhcmluZzt2JmFlbGlnO3JlbmRlICZhcmluZztyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRXR0ZXIgc2tqZW1hZXQgZXIgc2VuZHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9ucyBzb20gc2thbCB2aXNlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdG8gaW5uc2VuZHQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdG8gZ29ka2plbnQgKGF2IGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0byBnb2RramVudCAoYXYgaW5uc2VuZGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdWaXMgJnF1b3Q7SW5uc2VuZGluZ3MgbWFsJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPbWRpcmlnZXIgdGlsIG5ldHRzaWRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGVubmUgbWFsZW4gZXIgZm9yIGRldCBzb20gc2thbCB2aXNlcyB0aWwgYnJ1a2VyZW4gZXR0ZXIgZXQgc2tqZW1hIGVyIGlubnNlbmR0LiBEZW5uZSBtYWxlbiBoYXIgaW5nZW4gdmlya25pbmcgcCZhcmluZzsgZXBvc3Qgc29tIGdlbmVyZXJlcyBlbGxlciBhbmRyZSBza2plbWFnZW15dHRlciAgLS0gZHUgc2V0dGVyIGRlIG1hbGVuZSAoaHZvciBkZXQgZXIgcmVsZXZhbnQpIGkgJnF1b3Q7YXZhbnNlcnQmcXVvdDsgZmxpa2VuIHAmYXJpbmc7IGRpc3NlIGdlbXl0dGVuZXMgZmVsdGVyLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnTSZhcmluZztsIFNpZGUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnS3JldiBGZWx0bmF2bic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyZXYgYXQgZmVsdGVyIHNrYWwgaGEgZXR0IG5hdm4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnS3JldiB1bmlrZSBmZWxuYXZuJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLcmV2IGF0IGZlbHRlciBza2FsIGhhIHVuaWtlIGZlbHRuYXZuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdPbXNvcnRlciBmZWx0ZXInOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xhc3QgbWFsJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0xlZ2cgdGlsIEtuYXBwIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1NsZXR0IEtuYXBwIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGplbHBldGVrc3QgJmFyaW5nOyB2aXNlIGZvciBkZXR0ZSBmZWx0ZXQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnRm9ydG9sayB2YXJpYWJsZXIgdGlsICZhcmluZzsgdiZhZWxpZztyZSBudW1tZXIgZWxsZXIgc3RyZW5nZXInOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdUb2xrbmluZ3NyZWtrZXJmJm9zbGFzaDtsZ2UnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ09tIG1lciBlbm4gZXQgQmVyZWduZXQgZmVsdCBla3Npc3RlcmVyLCB2aWwgZGUgYmxpIGJlcmVnbmV0IGZyYSBkZXQgbGF2ZXN0ZSByZWtrZWYmb3NsYXNoO2xnZW51bW1lcmV0IHRpbCBkZXQgaCZvc2xhc2g7eWVzdGUgcmVra2VmJm9zbGFzaDtsZ2VudW1tZXJldCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJlbmcgKGluZ2VuIG1lbGxvbXJvbSBtZWxsb20gZmVsdGVyKT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZlcmRpICZhcmluZzsgYmVyZWduZSc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQmVyZWduZWRlL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJlbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bW1lcmlzayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1ZpcyBza2plbWEgaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnTWVkIElubGluZSBtZW5lcyBhdCBlbmh2ZXIgb3BwZiZvc2xhc2g7bGdpbmcgZXJzdGF0dGVyIHtjbXNfbW9kdWxlfSB0YWdnZW4sIG5vbi1pbmxpbmUgZXJzdGF0dGVyIHtjb250ZW50fSB0YWdnZW4uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdTdGFuZGFyZCB2ZXJkaSBmb3IgZmVsdCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAndCZvc2xhc2g7bSBzdGFuZGFyZCB2ZWQga2xpa2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0hhayBhdiBkZW5uZSBvbSBkdSB2aWwgYXQgc3RhbmRhcmQgdmVyZGkgc2thbCBmamVybmVzIG4mYXJpbmc7ciBicnVrZXJlbiBrbGlra2VyIGkgZGV0dGUgZmVsdGV0LiBTaWRlbiBkZXR0ZSBiZW55dHRlciBlbiBqYXZhc2tyaXB0IHN0cmluZyBzYW1tZW5saWduaW5nIHZpbCBkZXR0ZSBmZWlsZSBvbSBkdSBzZXR0ZXIgZW5rbGUgYW5mJm9zbGFzaDtyc2Vsc3RlZ24gaSBkaW4gc3RhbmRhcmR0ZWtzdC4gQW5kcmUgaWtrZS1qYXZhc2tyaXB0IGVnbmVkZSB0ZWduIGthbiBvZ3MmYXJpbmc7IGYmYXJpbmc7IGRldHRlIHRpbCAmYXJpbmc7IGZlaWxlLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1NsZXR0IG9wcGxhc3RlZGUgZmlsZXIgZnJhIHNlcnZlcmVuIGV0dGVyIHByb3Nlc3NlcmluZyAoZXBvc3QgZGlzcG9zaXNqb25lciknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnR2omb3NsYXNoO3IgZGV0dGUgdGlsIGRldCBmdWxsc3RlbmRpZ2UgamF2YXNrcmlmcHRrYWxsZXQsIGlua2x1ZGVydCBoZW5kZWxzZW4gZHUgdmlsIGZhbmdlLCBmLmVrcy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdTa2plbWFpbm5zZW5kaW5ncyBqYXZhc2tyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdHaiZvc2xhc2g7ciBkZXR0ZSB0aWwgZGV0IGZ1bGxzdGVuZGlnZSBqYXZhc2tyaWZwdGthbGxldCwgaW5rbHVkZXJ0IGhlbmRlbHNlbiBkdSB2aWwgZmFuZ2UsIGYuZWtzLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5EZXR0ZSB2aWwgdHJvbGlnIGlra2UgZnVuZ2VyZSBnb2R0IG9tIGR1IGJlbnl0dGVyICZxdW90O1Npa2tlaGV0c2tyaXB0JnF1b3Q7IG9wc2pvbmVuIG92ZW5mb3IuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnSWtrZSBzZXR0IGVuIHRpbGZlbGRpZyBhZHJlc3NlIGhlciAtLSBtYW5nZSBJU1BlciB2aWxsPGJyIC8+aWtrZSBsZXZlcmUgZXBvc3RlbiBvbSBkdSBiZW55dHRlciBldCBhbm5ldCBkb21lbmVuYXZuIGVubiBkaXR0IGZha3Rpc2tlPGJyIC8+dmVydHNuYXZuIChmLmVrcy4gYmVueXR0IG5vZSBzb20gbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnQmVob3YgZm9yIGZsZXJlIHRlbHR0eXBlcj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnRm9yIG1hbmdlIGZvcnZpcnJlbmRlIGZlbHR0eXBlcj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdCeXR0IHRpbCBhdmFuc2VydCBtb2R1cyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ0J5dHQgdGlsIGVua2VsIG1vZHVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0thdGFsb2cgJmFyaW5nOyBsYWdyZSBmaWxlbiBpJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnRGV0dGUgbSZhcmluZzsgdiZhZWxpZztyZSBlbiBrYXRhbG9nIHNvbSB3ZWJzZXJ2ZXJlbiBoYXIgcmV0dGlnaGV0ZXIgdGlsICZhcmluZzsgc2tyaXZlIGkuIDxiciAvPg0KQ2htb2QgZGVubmUgdGlsIDc3NyBodmlzIGR1IGhhciBwcm9ibGVtZXIvZXIgaSB0dmlsLiA8YnIgLz4NClNqZWtrIG9ncyZhcmluZzsgZm9yICZhcmluZzsgc2UgYXQgZHUgaWtrZSBoYXIgUEhQIGthdGFsb2cgcmVzdHJpa3Nqb25lci4gPGJyIC8+DQpEZXJzb20gZmVsdGV0IGVyIHRvbXQsIHZpbCBkZXR0ZSBiZW55dHRlIHN0YW5kYXJkIHVwbG9hZHMga2F0YWxvZ2VuICgkIGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdKS4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ055IGxpbmplL0xpbmplc2tpZnQoTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4pIGVyc3RhdG5pbmdzdGVnbic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMYSBkZXR0ZSB2JmFlbGlnO3JlIGJsYW5rdCBmb3IgJmFyaW5nOyB0aWxsYXRlIE55IGxpbmplL0xpbmplc2tpZnQgaSByZXN1bHRhdHZpc25pbmdlbic7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBicnVraWVyZW4gZW4ga29waSBhdiBpbm5zZW5kaW5nZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdFdGlrZXR0IGZvciBhdmtyeXNzbmluZ3Nib2tzIChvbSBicnVrZXJlbiB2ZWxnZXIpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZWcgZW4ga29waSBhdiBza2plbWFldCc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnVGlsbGF0IEVtbmUoc3ViamVjdCkgJmFyaW5nOyBibGkgb3ZlcnN0eXJ0Pyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdUaWxsYXQgJiMwMzk7RXBvc3QgJnF1b3Q7U3ViamVjdCZxdW90OyBmZWx0ZXImIzAzOTsgJmFyaW5nOyBvdmVyc3R5cmUgRW1uZShzdWJqZWN0KSBzcGVzaWZpc2VydCBpIG5ldHJla2tzdmFsZ2V0Lic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0xlbmdkZSAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNaW5pbXVtIGxlbmdkZSBwJmFyaW5nOyBzdmFyJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdTa2p1bCBpbm5kYXRhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1ZpcyBzeW1ib2xlciBpIHN0ZWRldCBmb3IgdGVrc3QgbiZhcmluZztyIGJydWtlciBza3JpdmVyIHBhc3NvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc29yZCBzYW1zdmFyZXIgaWtrZSBtZWQgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdUaWxiYWtlIHRpbCBGb3JtQnVpbGRlciBob3ZlZHNpZGVuJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnSHZpbGtlIGUtcG9zdCBob2RlciBiJm9zbGFzaDtyIGRldHRlIGlubmRhdGFmZWx0IGZ5bGxlIHV0Pyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnSWtrZSBnb2R0YSBtZWxsb21yb20gc29tIGd5bGRpZyBzdmFyJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ09tIGV0IGZlbHQgZXIgcCZhcmluZztrcmV2ZCwgdmlsIGF2a3J5c3NpbmcgYXYgZGV0dGUgdmFsZyBrcmV2ZSBhdCBmb2xrIHNrcml2ZXIgaW5uIGFsZmFudW1tZXJpc2tlIGJva3N0YXZlciBvZyBpa2tlIGJhcmUgbWVsbG9tcm9tJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ0R1IG0mYXJpbmc7IGtsaWtrZSBlbiBhdiAmcXVvdDtsYWdyZSZxdW90Oy1rbmFwcGVuZSBmb3IgJmFyaW5nOyBnaiZvc2xhc2g7cmUgZGluIG55ZSBmZWx0cmVra2VmJm9zbGFzaDtsZ2UgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ0JydWsgSFRNTDUgcGxhc3Nob2xkZXJ0ZWtzdCBpIHN0ZWRldCBmb3IgSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9jY19hZGRyZXNzJ10gPSAnQWRkcmVzc2UocikgJmFyaW5nOyBlLXBvc3RlIHNvbSBDYXJib24gY29weSAoQ0MpLiBCcnVrIGtvbW1hIGZvciAmYXJpbmc7IGF2Z3JlbnNlIGZsZXJlIGFkcmVzc2VyLic7CiRsYW5nWyd0aXRsZV91c2VfYmNjJ10gPSAnQmVueXR0IEJsaW5kIGNhcmJvbiBjb3B5IChCQ0MgaSBzdGVkZXQgZm9yIENDKSc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzaW5nJ10gPSAnRS1wb3N0IGFkcmVzc2VyaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX21vZGlmeSddID0gJ0UtcG9zdGZlbHQgJmFyaW5nOyBsZWdnZSB0aWwgQ0MgYWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9tb2RpZmllcyddID0gJ0xlZ2cgQ0MgdGlsICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2JjY19maWVsZCddID0gJyZxdW90O0JDQyZxdW90OyBtb3R0YWtlcmUnOwokbGFuZ1snY2NfZmllbGQnXSA9ICcmcXVvdDtDQyZxdW90OyBtb3R0YWtlcmUnOwokbGFuZ1sndG9fZmllbGQnXSA9ICdOb3JtYWxlICgmcXVvdDtUbyZxdW90OyBtb3R0YWtlcmUpJzsKJGxhbmdbJ2JjYyddID0gJ0JDQyc7CiRsYW5nWydjYyddID0gJ0NDJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGVuIGVyIGlra2UgdGlsZ2plbmdlbGlnISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdBbGRyaSc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaSBicnVrZXJlbiBldCB2YWxnIChhdmtyeXNzbmluZ3Nib2tzKSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWxsdGlkJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnJnF1b3Q7RnJhJnF1b3Q7IGUtcG9zdGFkcmVzc2UnOwokbGFuZ1snb3B0aW9uX3JlcGx5J10gPSAnJnF1b3Q7U3Zhci10aWwmcXVvdDsgZS1wb3N0YWRyZXNzZSc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0ImYXJpbmc7ZGUgJnF1b3Q7RnJhJnF1b3Q7IG9nICZxdW90O1N2YXItdGlsJnF1b3Q7IGUtcG9zdGFkcmVzc2VuZSc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdOZWR0cmVrayc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdWYWxnbGlzdGUgKGVua2VsdCknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdWYWxnbGlzdGUgKGZsZXJlKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlva25hcHBncnVwcGUnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTWVyazogVXRkYXRhIHZpbCB2JmFlbGlnO3JlIHAmYXJpbmc7IGZvcm1lbjxici8+JnF1b3Q7ZmlybWFuYXZuJnF1b3Q7PT4mcXVvdDt2ZXJkaSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdWZWxnIGVuIGthdGVnb3JpIChmbGVyZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1ZlbGcgZXQgZmVsdCBEZWZpbmlzam9uc3ZlcmRpIChlbmtlbCkgPGVtPnZhbGdmcml0dDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnVmVsZyBicnVrZXItaW5uZGF0YSc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoVGEgb2dzJmFyaW5nOyBlbiB0aXR0IHAmYXJpbmc7IFNramVtYWlubnNlbmRpbmdzZmFuZW4gb20gZHUgJm9zbGFzaDtuc2tlciAmYXJpbmc7IHNldHRlIGVuIFVEVCBmb3Igc2tqZW1hdmFsaWRlcmluZyknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ1NsdXR0ICZhcmluZztyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnU21hcnR5IGRhdGEgZWxsZXIgbG9naWtrIHNvbSBlciBtZW50IGZvciAmYXJpbmc7IGJsaSBzZW5kdCBtZWQgZGV0dGUgZmVsdGV0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdLYW4gdiZhZWxpZztyZSBzbWFydHlkYXRhLCBqYXZhc2tyaXB0IGVsbGVyIG5vZSBhbm5lbiBkYXRhIGR1IHZpbCBzZW5kZSBzYW1tZW4gbWVkIGRldHRlIGZlbHRldC48YnIgLz5HJmFyaW5nO3IgZ2plbm5vbSBzbWFydHkga29tcGlsZXJlcmVuLCBzJmFyaW5nOyBodXNrICZhcmluZzsgYmVueXR0ZXtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFnZ2VyIHNhbW1lbiBtZWQgPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ0lua2x1ZGVyIGV0aWtldHRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICcmQXJpbmc7IGFrdGl2ZXJlIGRldHRlIGlua2x1ZGVyZXIgZXRpa2V0dGVyIGkgdXRkYXRhLiBFa3NlbXBlbCAtIGV0aWtldHQ6IHZlcmRpLGV0aWtldHQyOiB2ZXJkaTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMZW5rIGRldHRlIGZlbHQgdGlsIGRldHMgZXR0ZXJmJm9zbGFzaDtsZ2VyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICdOZWR0cmVra3NsaXN0ZSBsaXN0ZXIgYWxsZSBldHRlcmYmb3NsYXNoO2xnZXJlIGF2IGRldHRlIGZlbHQgb2cgdGlsbGF0ZXIgZGVnICZhcmluZzsgbGVua2UgZGV0dGUgZmVsdGV0IHRpbCBlbiBhdiBkZXRzIGV0dGVyZiZvc2xhc2g7bGdlcmUuIERldHRlIGdqJm9zbGFzaDtyIGRldCBtdWxpZyAmYXJpbmc7IGtvbnRyb2xsZXJlIGRldHRlIGZlbHRldCBtZWQgdmFsZ3RlIGV0dGVyZiZvc2xhc2g7bGdlciBrb250cm9sbGVyLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ1NranVsIGtvbnRyb2xsa25hcHBlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnU2tqdWxlciBrb250cm9sbGtuYXBwZXIgZm9yIGRldHRlIGZlbHQgcCZhcmluZzsgZnJvbmVuZCc7CiRsYW5nWyd0aXRsZV9ub3RlJ10gPSAnTWVyayc7CiRsYW5nWyd0aXRsZV9jaGFuZ2luZ190cmlnZ2Vyc19yZWluZGV4J10gPSAnJkFyaW5nOyBlbmRyZSBub2VuIGF2IGRlIG92ZW5uZXZudGUgZmVsdGVuZSB2aWwgdXRsJm9zbGFzaDtzZSBlbiBSZWluZGV4IGF2ICYjMDM5O2FsbGUmIzAzOTsgbGFncmVkZSBwb3N0ZXIsIHMmYXJpbmc7IGRldHRlIGthbiB0YSBlbiBzdHVuZC4nOwokbGFuZ1snaWxsZWdhbF9maWxlJ10gPSAnRm9ycyZvc2xhc2g7a3RlIG9wcGxhc3RpbmcgYXYgdWxvdmxpZyBmaWx0eXBlICglcykgZnJhICVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGUnXSA9ICdHaiZvc2xhc2g7ciBwb3N0ZXIgdGlsZ2plbmdlbGlnIGZvciBzJm9zbGFzaDtrZW1vZHVsZW4nOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ10gPSAnSGFrZSBhdiBkZXR0ZSB2aWwgZ2omb3NsYXNoO3JlIGFsbGUgaW5uc2VuZHRlIGRhdGEgdGlsZ2plbmdlbGlnIGZvciBzJm9zbGFzaDtrZW1vZHVsZW4uIElLS0UgQlJVSyBkZW5uZSBodmlzIGR1IGtyeXB0ZXJlciBkaW5lIGRhdGEgLS0gaW5mb3JtYXNqb25lbiBibGlyIHRpbGdqZW5nZWxpZyBmb3IgcyZvc2xhc2g7ayBvbSBkZW4gZXIga3J5cHRlcnQgZWxsZXIgaWtrZSEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J10gPSAnJXMgKHV0ZW5mb3Igd2ViIHJvdCknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXSA9ICdSZWRpZ2VyYmFydCBpIEZvcm1Ccm93c2VyIGFkbWluaXN0cmFzam9uZW4/JzsKJGxhbmdbJ3RpdGxlX2FjdGl2ZV9vbmx5J10gPSAnQmFyZSBpbmtsdWRlciBha3RpdmUgYnJ1a2VyZT8nOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ0JydWtlciBkZWZpbmVydCB0YWdnKFVzZXIgRGVmaW5lZCBUYWcvVURUKSByZXR1cm5lcnRlIGVuIGZlaWwnOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ0JydWtlciBkZWZpbmVydCB0YWdnKFVzZXIgRGVmaW5lZCBUYWcvVURUKSAlcyByZXR1cm5lcnRlIGVuIGZlaWwuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZW4gc2VyIGlra2UgdXQgdGlsICZhcmluZzsgdiZhZWxpZztyZSBpbnN0YWxsZXJ0L2FrdGl2Ljwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnQURWQVJTRUwhJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBtYWwnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbCBtYWwsIEV0aWtldHQgdGlsIHZlbnN0cmUnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFiZWxsIG1hbCwgRXRpa2V0dCBvdmVyZm9yJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ01hbCBmcmEgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBvdmVyc2tyaXZlIGRpbiBtYWwgbWVkIGRlbiB2YWxndGUgbWFsZW4/IChTZWx2IG9tIGR1IHN2YXJlciBPSywgdmlsIGR1IGZvcnRzYXR0IG0mYXJpbmc7dHRlIGxhZ3JlIGVuZHJpbmdlbiknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRmVpbCB1bmRlciBiZXJlZ25pbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdJbmdlbiBIVFRQX1JFRkVSRVIgaW5mb3JtYXNqb24gdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUGFyYW1ldGVyIGZlaWwuIFZlbm5saWdzdCBzamVrayBhdCBkdSBrb3BpZXJ0ZSBsaW5rZW4gZnJhIGRpbiBlcG9zdCBrb3JyZWt0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFJlc3BvbnMgZmVpbC4gVmVubmxpZ3N0IHNqZWtrIGF0IGR1IGtvcGllcnRlIGxpbmtlbiBmcmEgZGluIGVwb3N0IGtvcnJla3QhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUmVzcG9ucyBmZWlsLiBJbmdlbiBlcG9zdC1zamVrayBmZWx0IGkgZGV0dGUgc2tqZW1hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdTa2plbWEgbWFsZW4gYmxlIG9wcGRhdGVydCBhdXRvbWFnaXNrIHNvbSBkZWwgYXYgb3BwZ3JhZGVyaW5nIGZyYSB2ZXJzam9uIDAuMyB0aWwgdmVyc2pvbiAwLjQuIER1IHRyZW5nZXIga2Fuc2tqZSAmYXJpbmc7IGdqJm9zbGFzaDtyZSBub2VuIG1hbnVlbGxlIGZpa3Nlci4gT20gZHUgYmVueXR0ZXIgc3RhbmRhcmRza2plbWFldCwga2FuIGR1IGVua2VsdCBieXR0ZSBkZXQgbWVkICZxdW90O2RlZmF1bHQmcXVvdDsgdmVkICZhcmluZzsgYmVueXR0ZSBuZWR0cmVra21lbnllbiBvdmVuZm9yLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdMZWdnIHRpbCwgcmVkaWdlciBvZyBoJmFyaW5nO25kdGVyIGludGVyYWt0aXZlIHNramVtYWVyJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfYWRtaW4nXSA9ICdNJmFyaW5nOyBzcGVzaWZpc2VyZSBlbiBhZG1pbic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0h2aXMgZHUgYnJ1a2VyIFN0cmluZyBldmFsdWVyaW5nLCB2aWwgZGVuIGVuZXN0ZSBvcGVyYXNqb25lbiBzb20gZXIgdGlsZ2plbmdlbGlnIHYmYWVsaWc7cmUgc2FtbWVuc2V0bmluZyAoKykuIEh2aXMgZHUgYmVueXR0ZXIgTnVtbWVyKE51bWJlcikgZXZhbHVlcmluZyBzJmFyaW5nOyBoYXIgZHUgZGUgaGVsdCBlbmtsZSBtYXRlbWF0aXNrZSAoLCssIC0sICosIC8sKS4gDQpIdmlzIGR1IGJydWtlciBCZXJlZ25lZGUvUEhQIGV2YWx1ZXJpbmcsIGthbiBkdQ0KYnJ1a2UgZGUgZnVua3Nqb25lbmUgZHUgdmlsLCBtZW4gZHUgbSZhcmluZzsgc2l0ZXJlIHRpbmcgKHN1YnN0aXR1c2pvbiBza2plciBmJm9zbGFzaDtyIGV2YWx1ZXJpbmcpLCBmb3IgZWtzZW1wZWwgc3Vic3RyKCYjMDM5OyRmbGRfMjImIzAzOTssMCwyKS4mIzAzOTskZmxkXzIzJiMwMzk7Lic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdCZW55dHRlIG1vZHVsZ3JlbnNlc25pdHQnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5EZXR0ZSBmZWx0ZXQgYnJ1a2VzIHNvbSBlbiBpbm5nYW5nc3BvcnQgdGlsIGFuZHJlIG1vZHVsZXIhPC9iPg0KQmVueXR0IGRldCB2ZWQgJmFyaW5nOyBvcHByZXR0ZSBkaW5lIHNramVtYWVsZW1lbnRlciBpIG1hbGVuZSBpIGFuZHJlIG1vZHVsZXIgZHUgJm9zbGFzaDtuc2tlciAmYXJpbmc7IGlubmxlbW1lLCBvZyBiZW55dHQgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IGZvciAmYXJpbmc7IGtvYmxlIGRldHRlIHRpbGJha2UgdGlsIEZvcm1CdWlsZGVyLiBGLmVrcy4gZm9yICZhcmluZzsgaW5rbHVkZXJlIHNramVtYSBhbHRlcm5hdGl2ZXIgYmFzZXJ0IHAmYXJpbmc7IFByb2R1Y3RzIG1vZHVsZW4sIG9wcHJldHQgZiZvc2xhc2g7bGdlbmRlIG1hbCBpIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7Pg0KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQpodm9yIGR1IGkgaW5uZGF0YSBuZWRlbmZvciBzZXR0ZXIgaW5uIG5vZSBzbGlrdCBzb20gIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ1NldHQgaW5uIGRpbiB0YWdnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFycyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZXNlbWJlcic7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJzsKJGxhbmdbJ0FYJ10gPSAnJkFyaW5nO2xhbmQnOwokbGFuZ1snQUwnXSA9ICdBbGJhbmlhJzsKJGxhbmdbJ0RaJ10gPSAnQWxnZXJpZSc7CiRsYW5nWydBUyddID0gJ0FtZXJpa2Fuc2sgU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmt0aXMnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIG9nIEJhcmJ1ZGEnOwokbGFuZ1snQVInXSA9ICdBcmdlbnRpbmEnOwokbGFuZ1snQU0nXSA9ICdBcm1lbmlhJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEnOwokbGFuZ1snQVUnXSA9ICdBdXN0cmFsaWEnOwokbGFuZ1snQVQnXSA9ICcmT3NsYXNoO3N0ZXJpa2UnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyc7CiRsYW5nWydCSCddID0gJ0JhaHJhaW4nOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXSA9ICdCZWxhcnVzJzsKJGxhbmdbJ0JFJ10gPSAnQmVsZ2lhJzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmlhJzsKJGxhbmdbJ0JBJ10gPSAnQm9zbmlhIG9nIEhlcnplZ292aW5hJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0IElzbGFuZCc7CiRsYW5nWydCUiddID0gJ0JyYXNpbCc7CiRsYW5nWydJTyddID0gJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSc7CiRsYW5nWydCTiddID0gJ0JydW5laSBEYXJ1c3NhbGFtJzsKJGxhbmdbJ0JHJ10gPSAnQnVsZ2FyaWEnOwokbGFuZ1snQkYnXSA9ICdCdXJraW5hIEZhc28nOwokbGFuZ1snQkknXSA9ICdCdXJ1bmRpJzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kaWEnOwokbGFuZ1snQ00nXSA9ICdDYW1lcm9vbic7CiRsYW5nWydDQSddID0gJ0NhbmFkYSc7CiRsYW5nWydDViddID0gJ0NhcGUgVmVyZGUnOwokbGFuZ1snS1knXSA9ICdDYXltYW4gSXNsYW5kcyc7CiRsYW5nWydDRiddID0gJ1NlbnRyYWwgQWZyaWthbnNrZSBSZXB1Ymxpa2snOwokbGFuZ1snVEQnXSA9ICdDaGFkJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGUnOwokbGFuZ1snQ04nXSA9ICdLaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCc7CiRsYW5nWydDQyddID0gJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJzsKJGxhbmdbJ0NPJ10gPSAnQ29sb21iaWEnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zJzsKJGxhbmdbJ0NHJ10gPSAnS29uZ28nOwokbGFuZ1snQ0QnXSA9ICdLb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0snXSA9ICdDb29rIElzbGFuZHMnOwokbGFuZ1snQ1InXSA9ICdDb3N0YSBSaWNhJzsKJGxhbmdbJ0NJJ10gPSAnSXZvaXJlIChJdm9yeSBDb2FzdCknOwokbGFuZ1snSFInXSA9ICdLcm9hdGlhIChIcnZhdHNrYSknOwokbGFuZ1snQ1UnXSA9ICdDdWJhJzsKJGxhbmdbJ0NZJ10gPSAnQ3lwcnVzJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMnOwokbGFuZ1snREsnXSA9ICdEYW5tYXJrJzsKJGxhbmdbJ0RKJ10gPSAnRGppYm91dGknOwokbGFuZ1snRE0nXSA9ICdEb21pbmljYSc7CiRsYW5nWydETyddID0gJ0RvbWluaWthbnNrZSBSZXB1Ymxpa2snOwokbGFuZ1snVFAnXSA9ICcmT3NsYXNoO3N0IFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvcic7CiRsYW5nWydFRyddID0gJ0VneXB0JzsKJGxhbmdbJ1NWJ10gPSAnRWwgU2FsdmFkb3InOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydFUiddID0gJ0VyaXRyZWEnOwokbGFuZ1snRUUnXSA9ICdFc3RvbmlhJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWEnOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZHMmb3NsYXNoO3llbmUgKE1hbHZpbmFzKSc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRkonXSA9ICdGaWppJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCc7CiRsYW5nWydGUiddID0gJ0ZyYW5rcmlrZSc7CiRsYW5nWydGWCddID0gJ0ZyYW5rcmlrZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5JzsKJGxhbmdbJ1BGJ10gPSAnRnJhbnNrIFBvbHluZXNpYSc7CiRsYW5nWydURiddID0gJ0ZyYW5zayBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snR0EnXSA9ICdHYWJvbic7CiRsYW5nWydHTSddID0gJ0dhbWJpYSc7CiRsYW5nWydHRSddID0gJ0dlb3JnaWEnOwokbGFuZ1snREUnXSA9ICdUeXNrbGFuZCc7CiRsYW5nWydHSCddID0gJ0doYW5hJzsKJGxhbmdbJ0dJJ10gPSAnR2licmFsdGFyJzsKJGxhbmdbJ0dCJ10gPSAnU3RvcmJyaXRhbm5pYSAoVUspJzsKJGxhbmdbJ0dSJ10gPSAnSGVsbGFzJzsKJGxhbmdbJ0dMJ10gPSAnR3Imb3NsYXNoO25ubGFuZCc7CiRsYW5nWydHRCddID0gJ0dyZW5hZGEnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlJzsKJGxhbmdbJ0dVJ10gPSAnR3VhbSc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSc7CiRsYW5nWydHVyddID0gJ0d1aW5lYS1CaXNzYXUnOwokbGFuZ1snR1knXSA9ICdHdXlhbmEnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCAmT3NsYXNoO3llbmUnOwokbGFuZ1snSE4nXSA9ICdIb25kdXJhcyc7CiRsYW5nWydISyddID0gJ0hvbmcgS29uZyc7CiRsYW5nWydIVSddID0gJ1VuZ2Fybic7CiRsYW5nWydJUyddID0gJ0lzbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb25lc2lhJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbic7CiRsYW5nWydJUSddID0gJ0lyYWsnOwokbGFuZ1snSUUnXSA9ICdJcmxhbmQnOwokbGFuZ1snSUwnXSA9ICdJc3JhZWwnOwokbGFuZ1snSU0nXSA9ICdJc2xlIG9mIE1hbic7CiRsYW5nWydJVCddID0gJ0l0YWxpYSc7CiRsYW5nWydKRSddID0gJ0plcnNleSc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EnOwokbGFuZ1snSlAnXSA9ICdKYXBhbic7CiRsYW5nWydKTyddID0gJ0pvcmRhbic7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW55YSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcmQpJzsKJGxhbmdbJ0tSJ10gPSAnS29yZWEgKFN5ZCknOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyc7CiRsYW5nWydMViddID0gJ0xhdHZpYSc7CiRsYW5nWydMQiddID0gJ0xpYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSc7CiRsYW5nWydMWSddID0gJ0xpYnlhJzsKJGxhbmdbJ0xTJ10gPSAnTGVzb3Robyc7CiRsYW5nWydMVCddID0gJ0xpdGF1ZW4nOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUnOwokbGFuZ1snTUcnXSA9ICdNYWRhZ2FzY2FyJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpJzsKJGxhbmdbJ01ZJ10gPSAnTWFsYXlzaWEnOwokbGFuZ1snTVYnXSA9ICdNYWxkaXZlbmUnOwokbGFuZ1snTUwnXSA9ICdNYWxpJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEnOwokbGFuZ1snTUgnXSA9ICdNYXJzaGFsbCBJc2xhbmRzJzsKJGxhbmdbJ01RJ10gPSAnTWFydGluaXF1ZSc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWEnOwokbGFuZ1snTVUnXSA9ICdNYXVyaXRpdXMnOwokbGFuZ1snWVQnXSA9ICdNYXlvdHRlJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWNvJzsKJGxhbmdbJ0ZNJ10gPSAnTWljcm9uZXNpYSc7CiRsYW5nWydNQyddID0gJ01vbmFjbyc7CiRsYW5nWydNRCddID0gJ01vbGRvdmlhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2Njbyc7CiRsYW5nWydNTiddID0gJ01vbmdvbGlhJzsKJGxhbmdbJ01TJ10gPSAnTW9udHNlcnJhdCc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyJzsKJGxhbmdbJ05BJ10gPSAnTmFtaWJpYSc7CiRsYW5nWydOUiddID0gJ05hdXJ1JzsKJGxhbmdbJ05QJ10gPSAnTmVwYWwnOwokbGFuZ1snTkwnXSA9ICdOZWRlcmxhbmQnOwokbGFuZ1snQU4nXSA9ICdOZXRoZXJsYW5kc2tlIEFudGlsbGVuZSc7CiRsYW5nWydOVCddID0gJ05ldXRyYWwgWm9uZSc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXSA9ICdOZXcgWmVhbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJzsKJGxhbmdbJ05PJ10gPSAnTm9yZ2UnOwokbGFuZ1snT00nXSA9ICdPbWFuJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4nOwokbGFuZ1snUFcnXSA9ICdQYWxhdSc7CiRsYW5nWydQUyddID0gJ1BhbGVzdGluc2sgdGVycml0b3JpdW0nOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ10gPSAnUGFyYWd1YXknOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZW5lJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4nOwokbGFuZ1snUEwnXSA9ICdQb2xlbic7CiRsYW5nWydQVCddID0gJ1BvcnR1Z2FsJzsKJGxhbmdbJ1BSJ10gPSAnUHVlcnRvIFJpY28nOwokbGFuZ1snUUEnXSA9ICdRYXRhcic7CiRsYW5nWydSRSddID0gJ1JldW5pb24nOwokbGFuZ1snUk8nXSA9ICdSb21hbmlhJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUndhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMnOwokbGFuZ1snTEMnXSA9ICdTYWludCBMdWNpYSc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgJmFtcDsgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSc7CiRsYW5nWydTTSddID0gJ1NhbiBNYXJpbm8nOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEnOwokbGFuZ1snU04nXSA9ICdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ10gPSAnU2V5Y2hlbGxlcyc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTRyddID0gJ1NpbmdhcG9yZSc7CiRsYW5nWydTSSddID0gJ1Nsb3ZlbmlhJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljJzsKJGxhbmdbJ1NCJ10gPSAnU29sb21vbiBJc2xhbmRzJzsKJGxhbmdbJ1NPJ10gPSAnU29tYWxpYSc7CiRsYW5nWydaQSddID0gJ1N5ZC1BZnJpY2EnOwokbGFuZ1snRVMnXSA9ICdTcGFuaWEnOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EnOwokbGFuZ1snU0gnXSA9ICdTdC4gSGVsZW5hJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSBhbmQgTWlxdWVsb24nOwokbGFuZ1snU0QnXSA9ICdTdWRhbic7CiRsYW5nWydTUiddID0gJ1N1cmluYW1lJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuICZvc2xhc2g7eWVuZSc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1N2ZXJpZ2UnOwokbGFuZ1snQ0gnXSA9ICdTdmVpdHMnOwokbGFuZ1snU1knXSA9ICdTeXJpYSc7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW56YW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5pc2lhJzsKJGxhbmdbJ1RSJ10gPSAnVHlya2lhJzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1VHJ10gPSAnVWdhbmRhJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluYSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJzsKJGxhbmdbJ1VLJ10gPSAnU3RvcmJyaXRhbm5pYSc7CiRsYW5nWydVUyddID0gJ0ZvcmVudGUgU3RhdGVyIEFtZXJpY2EnOwokbGFuZ1snVU0nXSA9ICdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4nOwokbGFuZ1snVlUnXSA9ICdWYW51YXR1JzsKJGxhbmdbJ1ZBJ10gPSAnVmF0aWNhbiBDaXR5IFN0YXRlIChIb2x5IFNlZSknOwokbGFuZ1snVkUnXSA9ICdWZW5lenVlbGEnOwokbGFuZ1snVk4nXSA9ICdWaWV0bmFtJzsKJGxhbmdbJ1ZHJ10gPSAnVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJzsKJGxhbmdbJ1ZJJ10gPSAnVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc7CiRsYW5nWydFSCddID0gJ1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ1lFJ10gPSAnWWVtZW4nOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhJzsKJGxhbmdbJ1pNJ10gPSAnWmFtYmlhJzsKJGxhbmdbJ1pXJ10gPSAnWmltYmFid2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0Jla2xhZ2VyISBEZXQgc2tqZWRkZSBlbiBmZWlsIHVuZGVyIGJlaGFuZGxpbmcgYXYgZGluIHNramVtYSBpbm5zZW5kaW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdTa2plbWFCeWdnZXIgU2VuZGVmZWlsOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRmVpbCB2ZWQgb3ZlcmYmb3NsYXNoO3JpbmcgYXYgZmlsYSB0aWwgb3BwbGFzdGluZ3Ntb2R1bGVuOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLdW5uZSBpa2tlIGZpbm5lIE9wcGxhc3RpbmdzbW9kdWxlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnT3BwbGFzdGluZy9WZWRsZWdnIGZlaWwgcCZhcmluZzsgZmlsICVzICh0ZW1wX25hdm46ICVzLCBhdiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaWwuIFVtdWxpZyAmYXJpbmc7IGVydmVydmUgbCZhcmluZztzIGZvciBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogaWtrZSBhdmhha2V0JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBhdmhha2V0JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTa2plbWFCeWdnZXIgaW5uc2VuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FcG9zdCBtYWwgZW5uJmFyaW5nOyAmYXJpbmc7aWtrZSBhbmdpdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIHNlbmR0LjwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgU2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfJmFtcDtsdDtuYW1lJmFtcDtndDs8L2VtPiAtIFRpbGYmb3NsYXNoO3IgZW4gc3RhbmRhcmQgdmVyZGkgdGlsIGV0IGZlbHQgbWVkIGRldCBvcGdpdHRlIG5hdm5ldC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+SGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBzZW5kdDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVuIGxpc3RlIG1lZCBhbGxlIGtqZW50ZSBmZWlsIChzdHJpbmcpPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+SGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxyaSB2aXN0PC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFNramVtYSBuYXZuZXQgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBEZW4gaW50ZXJuZSBza2plbWEgaWQgKGludCk8L2xpPg0KPC91bD4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIEJydWt0IGF2IFNramVtYVV0Zm9yc2tlcihGb3JtQnJvd3NlciknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ1N0YW5kYXJkIGZlbHZlcmRpZXIgLSBzZSBtb2R1bGhlbHAgZm9yIGluZm8nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmVsdCBJRCBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnU2tqZW1hbmF2bic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ1NramVtYSBJRCBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyZWxsZSBwYXJhbWV0cmUgZm9yIGludGVybmUgb3BlcmFzam9uZXInOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnRm9ybUJ1aWxkZXIgaW5zdGFsbGVydC4gVmVubmxpZ3N0IHNqZWtrIGkgbW9kdWxlbnMgSGplbHAtc2lkZSBmb3IgZG9rdW1lbnRhc2pvbi4nOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPg0KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE1NDQ5NzU3ODkuMTM4OTc3NjY0Mi4xMzg5Nzc2NjQyLjEzODk3NzY2NDIuMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzODk3NzY2NDIuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEZyb21GRVVQcm9wZXJ0eSddID0gJypFLW1haWwgZ2VicnVpa2VycyBkaWUgbWF0Y2hlbiBhYW4gZWVuIEZFVS1laWdlbnNjaGFwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVmVsZHR5cGUgbmlldCBpbmdlc3RlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0ZWVyIGVlbiAob2YgbWVlcikgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctIFZlbGQgZWluZGUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLSBWZWxkIHN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3RpbnZvZXInOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNU51bWJlckZpZWxkJ10gPSAnSFRNTDUgR2V0YWwgSW52b2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ10gPSAnSFRNTDUgRS1tYWlsIEludm9lcic7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW52b2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU2l0ZUFkbWluRmllbGQnXSA9ICdTaXRlIGJlaGVlcmRlcic7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdXYWNodHdvb3JkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnTm9nbWFhbHMgd2FjaHR3b29yZCAodGVyIGNvbnRyb2xlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGludm9lciAobWVlcmRlcmUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1Rla3N0dmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnVG9ldHMnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnU2VsZWN0aWV2YWsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdTZWxlY3RpZXZhay1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdLZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdKYWFyIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ01lZXJrZXV6ZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlbi1raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRlc2UgUHJvdmluY2llLWtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmRlbmtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlqZGtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NlbGVjdGllcm9uZGplcy1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRS1tYWlsIHJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypCZXdhYXIgcmVzdWx0YXRlbiBpbiBlZW4gYmVzdGFuZCBnZWJhc2VlcmQgb3Aga2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqQmV3YWFyIHJlc3VsdGF0ZW4gaW4gYmVzdGFuZGVuIGdlYmFzZWVyZCBvcCBtZWVyLWtldXplbGlqc3Rlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgbmFhciBwYWdpbmEgZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIG5hYXIgaW5nZXN0ZWxkZSBhZHJlcyhzZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGVlci12aWEtbWFpbGFkcmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1tYWlsICJWYW4gQWRyZXMiIFZlbGQsIHZlcnplbmQgZWVuIGtvcGllJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNjaHJpamYgcmVzdWx0YXRlbiBuYWFyIGJlc3RhbmQnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqU2NocmlqZiByZXN1bHRhdGVuIG5hYXIgZWVuIFVuaWVrZSBQbGF0IEJlc3RhbmQgdm9vciBpZWRlcmUgaW56ZW5kaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypSZXN1bHRhdGVuIG9wc2xhYW4gaW4gZGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlNsYSByZXN1bHRhdGVuIG9wIHZvb3IgRm9ybUJyb3dzZXIgTW9kdWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKlN0YXJ0IGVlbiBnZWJydWlrZXJnZWRlZmluaWVlcmRlIHRhZyBtZXQgZGUgZm9ybXVsaWVyIHJlc3VsdGF0ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqVmVyc3R1dXIgbmFhciBlZW4gd2lsbGVrZXVyaWdlIGZvcm11bGllcmFjdGllJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFLW1haWwgbmFhciBoZXQgb3BnZWdldmVuIGUtbWFpbGFkcmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFLW1haWwgbmFhciBDTVMgQWRtaW4gR2VicnVpa2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRT1tYWlsIHJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIGZyb250ZW5kIHZlbGRlbic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLSBQYWdpbmFzY2hlaWRpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCZXN0YW5kIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyJWYW4gQWRyZXMiIGUtbWFpbHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0UtbWFpbCAiVmFuIEFkcmVzIiBIZXJoYWxpbmdzdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJyJWYW4gTmFhbSIgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJyJPbmRlcndlcnAiIGUtbWFpbHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DQ0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRS1tYWlsIENhcmJvbiBDb3B5IChDQykgYWRyZXN2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLSBTdGF0aXNjaGUgVGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctIFN0YXRpc2NoZSBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLSBMaW5rIChpbmdldm9lcmQgZG9vciBnZWJydWlrZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctIFZlcmJvcmdlbiB2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQmVyZWtlbmQgdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy0gVW5pZWsgR2V0YWwgKFNlcmllbnVtbWVyKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy0gQWFucm9lcCBHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSBUYWcgKFVEVCknOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBWZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctIE1vZHVsZSBJbnRlcmZhY2UgVmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RXh0ZW5kZWRGaWVsZCddID0gJ1VpdGdlYnJlaWRlIGNoZWNrYm94JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0dlZW4gdmFsaWRhdGllJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0dlaGVlbCBnZXRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxhZHJlcyc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZm9vbm51bW1lciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ01vZXQgYWFuZ2V2aW5rdCB3b3JkZW4nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ01vZXQgdm9sZG9lbiBhYW4gZWVuIHJlZ3VsaWVyZSBleHByZXNzaWUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnVm9sZG9ldCBuaWV0IGFhbiBkZSByZWd1bGllcmUgZXhwcmVzc2llJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1wdHknXSA9ICdLYW4gbmlldCBsZWVnIHppam4nOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdWZXJlaXN0JzsKJGxhbmdbJ25vdF9yZXF1aXJlZCddID0gJ05pZXQgdmVyZWlzdCc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTmlldCBiZXNjaGlrYmFhcic7CiRsYW5nWydlcnJvcl9lbWFpbGZyb21mZXVwcm9wJ10gPSAnRm91dCBpbiB2ZWxkaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnRGUgRnJvbnRFbmRVc2VycyBtb2R1bGUga2FuIG5pZXQgd29yZGVuIGdldm9uZGVuLiBEaXQgdmVsZCB6YWwgbmlldCBmdW5jdGlvbmVyZW4uJzsKJGxhbmdbJ2Vycm9yX25vZmV1ZGVmbnMnXSA9ICdFciBrYW4gZ2VlbiBicnVpa2JhcmUgRkVVLWVpZ2Vuc2NoYXAgd29yZGVuIGdldm9uZGVuLiBEaXQgdmVsZCB6YWwgbmlldCBmdW5jdGlvbmVyZW4uJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdFZW4gd2FhcmRlIG9udGJyZWVrdCB2b29yIGRpdCB2ZXJwbGljaHRlIHZlbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdWb2VyIGVlbiB3YWFyZGUgaW4gdm9vciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ZvZXIgZWVuIG51bW1lciBpbiBiaWogIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWb2VyIGVlbiBnZWxkaWdlIHdhYXJkZSBpbiBiaWogIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1ZvZXIgZWVuIGdldGFsIGluIGJpaiAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1ZvZXIgZWVuIGdlbGRpZyBlLW1haWxhZHJlcyBpbiBiaWogIiVzIic7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsYWRyZXMga29tdCBuaWV0IG92ZXJlZW4gbWV0IGRlIHdhYXJkZSAlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWb2VyIGVlbiBnZWxkaWcgdGVsZWZvb25udW1tZXIgaXMgdm9vciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1dpbHQgdSB6aWNoIGFsc3R1YmxpZWZ0IGFhbm1lbGRlbiBvbSBkaXQgZm9ybXVsaWVyIHRlIGdlYnJ1aWtlbic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICciJXMiIGlzIGdlZW4gZ2VsZGlnIGUtbWFpbGFkcmVzLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnVm9lciBlZW4gd2FhcmRlIGluIGRpZSBuaWV0IGxhbmdlciBpcyBkYW4gJXMgdGVrZW5zJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiwgbWV0IG1pbmltYWFsICVzIGthcmFrdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1Rla2VuIG9tIHRlIGdlYnJ1aWtlbiBhbHMgc2NoZWlkaW5nIGJpaiByZXN1bHRhdGVuIGRpZSBtZWVyIGRhbiDDqcOpbiB3YWFyZGUgdGVydWdnZXZlbic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnSGV0ICIlcyItcmVjaHQgaXMgdmVyZWlzdCB2b29yIGRpZSBiZXdlcmtpbmcuJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFUgaGVlZnQgb252b2xkb2VuZGUgcmVjaHRlbiBvbSBkZXplIHNlY3RpZSB0ZSBiZW5hZGVyZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdWZWxkdm9sZ29yZGUgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsaWVyIHZlcndpamRlcmQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdWZWxkIHZlcndpamRlcmQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpZSBiaWpnZXdlcmt0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJyIlcyIgbW9ldCBnZXNlbGVjdGVlcmQgemlqbiBvbSBkb29yIHRlIGt1bm5lbiBnYWFuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRXIgbW9ldCB0ZW5taW5zdGUgw6nDqW4gYmVzdGVtbWluZ3NhZHJlcyB3b3JkZW4gb3BnZWdldmVuLic7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGR0eXBlIGluZ2VzdGVsZCBpcy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZSB2ZWxkbmFhbSAiJXMiIGlzIGFsIGluIGdlYnJ1aWsuIEdlYnJ1aWsgdW5pZWtlIHZlbGRuYW1lbiBvZiBzY2hha2VsIHVuaWVrZSB2ZWxkbmFtZW4gdWl0IGluIGRlIEZvcm0gQnVpbGRlci1jb25maWd1cmF0aWUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdWZWxkZW4gbW9ldGVuIGVlbiBuYWFtIGhlYmJlbiwgYmVoYWx2ZSBhbHMgZGV6ZSB1aXRnZXNjaGFrZWxkIHppam4gaW4gZGUgRm9ybSBCdWlsZGVyLWNvbmZpZ3VyYXRpZS4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdHZWVuIHZlbGQgdG9lZ2V3ZXplbiB2b29yICVzJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub25pZW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbmd0ZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyB2YWtrZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGllcyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHRla2Vucyc7CiRsYW5nWydvcmRlciddID0gJ1ZvbGdvcmRlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pZXQgb3BnZWdldmVuXSc7CiRsYW5nWydhZGRlZCddID0gJ3RvZWdldm9lZ2QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2Jpamdld2Vya3QnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydGVlcm9wdGllcyB2YW4gZGUgdWl0dm9lcic7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0ZWVyIMOpw6luJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0ZWVyIFR5cGUnOwokbGFuZ1sndG8nXSA9ICdBYW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ29udHZhbmdlcnMnOwokbGFuZ1snZmllbGRzJ10gPSAndmVsZGVuJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBtb2dlbGlqa2UgYmVzdGFuZGVuJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgYmVzdGVtbWluZ2VuJzsKJGxhbmdbJ3NhdmUnXSA9ICdPcHNsYWFuJzsKJGxhbmdbJ2FkZCddID0gJ1RvZXZvZWdlbic7CiRsYW5nWyd1cGRhdGUnXSA9ICdCaWp3ZXJrZW4nOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdPcHNsYWFuIGVuIGRvb3JnYWFuIG1ldCB3aWp6aWdlbic7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aWUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxpZXJlbic7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsaWVyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aWUnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1ZlbGQgdmVycGxpY2h0ZSB0b2VzdGFuZCBiaWpnZXdlcmt0Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIGdyb290dGUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdVaXRicmVpZGluZ2VuJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUb2VnZXN0YW5lIGJlc3RhbmRzdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdHZcO8cGxvYWQgYmVzdGFuZCBpcyB0ZSBncm9vdC4gRGUgbWF4aW1hbGUgZ3Jvb3R0ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEaXQgdHlwZSBiZXN0YW5kIG1hZyBuaWV0IHdvcmRlbiBnZcO8cGxvYWQuIENvbnRyb2xlZXIgZGUgYmVzdGFuZHNleHRlbnNpZS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxpZXIgZ2XDr21wb3J0ZWVyZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybXVsaWVyIGltcG9ydCBtaXNsdWt0ISBFciB3YXMgZWVuIHByb2JsZWVtIG1ldCBkZSBvcG1hYWsgdmFuIGhldCBYTUwtYmVzdGFuZC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpamVuJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2xvbW1lbic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdXVycyBrbG9rJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC11dXJzIGtsb2snOwokbGFuZ1snaG91ciddID0gJ3V1cic7CiRsYW5nWydtaW4nXSA9ICdtaW51dXQnOwokbGFuZ1snbWVyaWQnXSA9ICdtZXJpZGlhYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1ZlcnphbWVsaW5nOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0JlZGFua3QuIFV3IGJlcmljaHQgaXMgb250dmFuZ2VuLic7CiRsYW5nWydlZGl0J10gPSAnQmV3ZXJrZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGF5J10gPSAnZGFnJzsKJGxhbmdbJ21vbiddID0gJ21hYW5kJzsKJGxhbmdbJ3llYXInXSA9ICdqYWFyJzsKJGxhbmdbJ25vbmUnXSA9ICcoZ2VlbiknOwokbGFuZ1snY3NzJ10gPSAnQ3NzJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlZGXDr25zdGFsZWVyZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxldmVyc2llICVzIGdlw69uc3RhbGxlZXJkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUZXJ1Zy4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnVmVyc3R1cmVuJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1ZlcmRlci4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ05pZXQgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnU3RhcnQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm11bGllcndlZXJnYXZlaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYS1pbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnR2VhdmFuY2VlcmRlIGluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWxpZXJzamFibG9vbic7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnVmVyemVuZHNqYWJsb29uJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpZSc7CiRsYW5nWyd0aXRsZV9mZXVfcHJvcGVydHknXSA9ICdGcm9udEVuZFVzZXJzIEVpZ2Vuc2NoYXAnOwokbGFuZ1snaW5mb19mZXVfcHJvcGVydHknXSA9ICdBbGxlZW4gYmVwYWFsZGUgdHlwZW4gZWlnZW5zY2hhcHBlbiBrdW5uZW4gd29yZGVuIGdlYnJ1aWt0IHZvb3IgaGV0IHpvZWtlbiBuYWFyIG92ZXJlZW5rb21zdGVuIChkcm9wZG93bnMsIG11bHRpc2VsZWN0IHZlbGRlbiwgZXRjKS4nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFiZWxlbiBtb2dlbiBpbiBkaXQgdmVsZCBnZWJydWlrdCB3b3JkZW4uPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdNZWVyIG9wdGllcyB0b2V2b2VnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdWZXJ3aWpkZXJlbiBnZW1hcmtlZXJkZSBvcHRpZXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdWb2VnIG1lZXIgc2VsZWN0aWV2YWtrZW4gdG9lJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlIHNlbGVjdGlldmFra2VuJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnVm9sZ2VuZCBhZHJlcyB0b2V2b2VnZW4nOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdWZXJ3aWpkZXIgZ2VtYXJrZWVyZGUgYWRyZXNzZW4nOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnVm9sZ2VuZGUgYmVzdGVtbWluZyB0b2V2b2VnZW4nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlIGJlc3RlbW1pbmdlbic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0VyIHppam4gdGUgdmVlbCBFLW1haWxzIHZlcnpvbmRlbiB2YW5hZiB1dyBJUC1hZHJlcy4gQW50aS1zcGFtIG1lY2hhbmlzbWUgYmxva2tlZXJ0IGRlIHZlcnplbmRpbmcuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1ZlcmRhY2h0ZSBzcGFtIHZhbiBJUCAlcyBnZWJsb2trZWVyZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ0hlcnNjaGlrIHZlbGRlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyZW4nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnSW5nZXN0ZWxkZSB3YWFyZGU6ICVzJzsKJGxhbmdbJ3RpdGxlX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQ2F0YWxvZ2VyIGF0dHJpYnV0ZW4gdmVsZCc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnSGllcm9uZGVyIHN0YWF0IGVlbiBsaWpzdCBtZXQgYXR0cmlidXRlbiBkaWUgYmVzY2hpa2JhYXIgemlqbiB2YW51aXQgZGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPgkNClUga3VudCBldmVudHVlZWwgZ2VsZGlnIHJlZWtzZW4sIHdhYXJkZW4sIG9mIGVlbiBncm9vdCBhYW50YWwgd2FhcmRlbiBzcGVjaWZpY2VyZW4gZGllIHdvcmRlbiBnZWJydWlrdCBiaWogaGV0IGZpbHRlcmVuIHZhbiBkZSBsaWpzdCB2YW4gb2JqZWN0ZW4gZGllIHdvcmRlbiB3ZWVyZ2VnZXZlbiBhYW4gZGUgZ2VicnVpa2VyLiA8YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmVla3Nlbjo8L3N0cm9uZz48YnIvPg0KUmVla3NlbiBrdW5uZW4gd29yZGVuIG9wZ2VnZXZlbiBkb29yIGVlbiBtaW5pbWFsZSBlbiBtYXhpbWFsZSB3YWFyZGUgdmFuIGhldCBnZWJydWlrIHZhbiBkZXplIHN5bnRheDogInJhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSI8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmVyc2NoaWxsZW5kZSB3YWFyZGVuOjwvc3Ryb25nPjxici8+DQpPbSBlZW4gd2FhcmRlIHRlIHNwZWNpZmljZXJlbiB2b29yIGVlbiBhdHJpYnV1dCwga3VuIGplIGRlIHN5bnRhYyAibXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzIiBnZWJydWlrZW4uPGJyLz4NCjxici8+DQo8c3Ryb25nPldhYXJkZW4gaW4gdmVyYm9yZ2VuIHZlbGRlbjwvc3Ryb25nPjxici8+DQpPbSBlZW4gd2FhcmRlbiB0b2UgdGUga2VubmVuIGFhbiBlZW4gdmVyYm9yZ2VuIHZlbGQsIGdlYnJ1aWt0IHUgZGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWyd0aXRsZV90ZXh0ZmllbGRfbGFiZWwnXSA9ICdUZWtzdHZlbGQgbGFiZWwnOwokbGFuZ1sndGl0bGVfc2hvd190ZXh0ZmllbGQnXSA9ICdUZWtzdHZlbGQgd2VlcmdldmVuPyc7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdFZW4gcmVndWxpZXJlIGV4cHJlc3NpZSBvbSBkZSBjYXRhbG9nZXIgaXRlbXMgdGUgc29ydGVyZW4gb3AgbmFhbSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ0RlIGhvb2d0ZSB2YW4gaGV0IG11bHRpc2VsZWN0IHZlbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hYW0gUmVndWxpZXJlIEV4cHJlc3NpZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdWZWxkIGhvb2d0ZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdCZXN0ZW1taW5nc21hcCB2b29yIHVpdHZvZXJiZXN0YW5kZW4nOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdHZWJydWlrZXJnZWRlZmluZWVyZGUgdGFnIChVRFQpJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdpbmEgb20gbmFhciB0ZXJ1ZyB0ZSBrZXJlbiBtZXQgdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnVmVyem9uZGVuIG1ldCBGb3JtIEJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMtY2F0ZWdvcmllJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU3R1dXIgZGl0IGJlc3RhbmQgbmFhciBkZSB1cGxvYWQtbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZSddID0gJ1RvZXN0YWFuIG9tIGVlcmRlciBnZXVwbG9hZGUgYmVzdGFuZGVuIHRlIG92ZXJzY2hyaWp2ZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnTW9ldCBoZXQgZ2XDvHBsb2FkZSBiZXN0YW5kIGVlcmRlciBnZcO8cGxvYWRlIGJlc3RhbmRlbiBtZXQgZGV6ZWxmZGUgbmFhbSBvdmVyc2NocmlqdmVuPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdTdGEgb3ZlcnNjaHJpanZlbiB0b2UnOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdOaWV0IG92ZXJzY2hyaWp2ZW4nOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddID0gJ0Jlc3RhbmQgJXMgYmVzdGFhdCBhbCBlbiBrYW4gbmlldCBvdmVyc2NocmV2ZW4gd29yZGVuLic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ0Jlc3RhbmRzbmFhbSBzamFibG9vbic7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ09yaWdpbmVlbCBiZXN0YW5kIGV4dGVuc2llIChpbmNsdXNpZWYgZWVuIHB1bnQhKSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ09uZGVyZHJ1ayBiZXN0YW5kc25hYW0gaW4gZS1tYWlscyBlbiBmb3JtdWxpZXJlbiBkaWUgZGUgZWluZGdlYnJ1aWtlciB0ZSB6aWVuIGtyaWpndCc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19hdHRhY2htZW50J10gPSAnV2VpZ2VyIGRpdCBiZXN0YW5kIGFscyBiaWpsYWdlIHZhbiBlLW1haWxzJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdPbSBoZXQgYmVzdGFuZCB0ZSBoZXJub2VtZW4gdGlqZGVucyBoZXQgdXBsb2FkZW4gbW9ldCB1IGhpZXIgZWVuIHRlbXBsYXRlIGFhbm1ha2VuLiBMYWF0IGRpdCB2ZWxkIGxlZWcgYWxzIHUgZGUgb3JpZ2luZWxlIGJlc3RhbmRzbmFhbSB3aWx0IGJlaG91ZGVuLic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdTZWxlY3RpZXZha2xhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnU2VsZWN0aWVyb25kamVsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIGluZGllbiBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIGluZGllbiBuaWV0IGdlc2VsZWN0ZWVyZCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnU2VsZWN0aWV2YWstZ3JvZXBkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1ZlcndpamRlcmVuPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0ZWVyIMOpw6luIiB0ZWtzdDonOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aWV3YWFyZGUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aWV3ZWVyZ2F2ZW5hYW0nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3RpZW9uZGVyd2VycCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhYXJkc2VsZWN0aWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFhcmRzZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aWVuYWFtJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZlcnN0dXVyZGUgd2FhcmRlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0b3B0aWVzJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNZWVya2V1emVvcHRpZXMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Jlc3RlbW1pbmdzIGUtbWFpbGFkcmVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnQmVzdGVtbWluZ3NiZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIlZhbiBOYWFtIiB2b29yIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnR2VicnVpayBlZW52b3VkaWdlIGUtbWFpbHZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdHZWJydWlrIGVlbnZvdWRpZ2UgZS1tYWlsdmFsaWRhdGllIChzdGEgYmlqdm9vcmJlZWxkICJ4QHkiIHRvZSBpLnAudi4gInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICciVmFuIGFkcmVzIiB2b29yIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0UtbWFpbCBrYXJha3RlcnNldCBlbmNvZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0Z2ViYXNlZXJkZSBlLW1haWxkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0Jlc3RhbmRzbmFhbSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRS1tYWlsIG9uZGVyd2VycHJlZ2VsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGllcm5hYW0nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWxpZXJzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdHZXJlZWQgdm9vciBnZWJydWlrJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWV0IGdlcmVlZCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnaW5hIG9tIHRlIHRvbmVuIG5hIHZlcnplbmRpbmcgdmFuIGhldCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1ZvZWcgZWVuIHZlbGQgdG9lIHpvZGF0IGRlIGludm9lciB2YW4gZGUgZ2VicnVpa2VyIHZlcndlcmt0IGthbiB3b3JkZW4uIFUga3VudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2RlemUgc25lbGtvcHBlbGluZyBnZWJydWlrZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxpZXJ2ZWxkZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdWZWxkLUlkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnVG9vbiB2ZWxkLWFsaWFzc2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdEZXplIHNlbGVjdGVyZW4gem9yZ3Qgdm9vciBoZXQgdG9uZW4gdmFuIHZlbGQtYWxpYXNzZW4gdGlqZGVucyB0b2V2b2VnZW4gb2Ygd2lqemlnZW4gdmFuIGVlbiBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ1ZlbGRuYWFtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnVmVsZC1hbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdTZWxlY3RpZXJvbmRqZS1ncm9lcHNkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdWZWxkdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnb20gZWVuIGZvcm11bGllcnZlcndlcmtpbmdzdmVsZCB0ZSBtYWtlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTmlldXcgZm9ybXVsaWVyIHRvZXZvZWdlbic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaWUgdG9uZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGl0IHZvZWd0IGhldCB2ZXJzaWVudW1tZXIgdmFuIGRlIGdlw69uc3RhbGxlZXJkZSBGb3JtQnVpbGRlci1tb2R1bGUgYWxzIGNvbW1lbnRhYXIgdG9lLCBvbSB0ZSBoZWxwZW4gYmlqIGRlYnVnZ2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTmlldXcgdmVsZCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybXVsaWVydmVyemVuZGtub3B0ZWtzdCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ1RvZXRzIHRla3N0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnSmF2YXNjcmlwdCBhYW4gdmVyemVuZGtub3AgdG9ldm9lZ2VuIG9tIG1lZXJkZXJlIHZlcnplbmRpbmdlbiB0ZSB2b29ya29tZW4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdWZWlsaWdoZWlkc3NjcmlwdCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm11bGllciAiVm9sZ2VuZGUiIGtub3B0ZWtzdCAoZ2VicnVpa3QgYmlqIGZvcm11bGllcmVuIHZhbiBtZWVyZGVyZSBwYWdpbmFcJ3MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtdWxpZXIgIlZvcmlnZSIga25vcHRla3N0IChnZWJydWlrdCBiaWogZm9ybXVsaWVyZW4gdmFuIG1lZXJkZXJlIHBhZ2luYVwncyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZlbGR2YWxpZGF0aWUnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdWZWxkIG9tIHRlIHZhbGlkZXJlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgdm9vciBkaXQgdmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUy1rbGFzc2Ugdm9vciBkaXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUy1rbGFzc2Ugdm9vciBkaXQgdmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gdm9vcmRhdCBoZXQgZm9ybXVsaWVyIHppY2h0YmFhciB3b3JkdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiB2b29yZGF0IGhldCBmb3JtdWxpZXIgd29yZHQgZ2V0b29uZCAod29yZHQgYWFuZ2Vyb2VwZW4gb3AgZWxrZSBwYWdpbmEgdmFuIGVlbiBtdWx0aXBhZ2UgZm9ybXVsaWVyKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0FhbiB0ZSByb2VwZW4gdGFnIHRpamRlbnMgZm9ybXVsaWVyIHZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvb2wgb20gdmVyZWlzdGUgdmVsZGVuIHRlIG1hcmtlcmVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnVmVyZWlzdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVmVyZWlzdCBlZW4gYW50d29vcmQgdm9vciBkaXQgdmVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnVmVyYmVyZyBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdWZXJiZXJnIHZlbGRuYWFtIG9wIGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdNYXhpbWFsZSBsZW5ndGUgdmFuIGRlIHZlbGRpbmhvdWQgKDAgb2YgbGVlZyBiZXRla2VudCBnZWVuIGxpbWlldCknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2NoZSB0ZWtzdCBvbSB3ZWVyIHRlIGdldmVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGllIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBYW50YWwgd2VlcmdlZ2V2ZW4gcmVnZWxzJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ0FsbGVlbiBsZXplbic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnR2VlbiBzdGFuZGFhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdUb29uIGRlemUgcGFnaW5hIG5hIGdvZWRrZXVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXplIHJlZ3VsaWVyZSBleHByZXNzaWUgemFsIGFsbGVlbiBnZWJydWlrdCB3b3JkZW4gYWxzICJ2YWxpZGF0aWV0eXBlIiBpbmdlc3RlbGQgaXMgb3AgZWVuIHJlZ2V4LWdlcmVsYXRlZXJkZSBvcHRpZS4gQmV2YXQgZWVuIHZvbGxlZGlnZSBQZXJsLWFjaHRpZ2UgcmVnZXgsIGluY2x1c2llZiBkZSBzdGFydC9zdG9wIHNsYXNoZXMgZW4gdmxhZ2dlbiAoYi52LiwgIi9pbWFnZVwuKFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1ZlcnBsaWNodCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1ZlcmJlcmcgRm91dGVuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtdWxpZXJ3ZWVyZ2F2ZXR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1Zvb3Jrb20gZGVidWctIC8gZm91dG1lbGRpbmdlbiB2b29yIGdlYnJ1aWtlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsc2phYmxvb24nOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW1hbGUgdXBsb2FkIGJlc3RhbmRzZ3Jvb3R0ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0RlemUgYmVncmVuemluZyBpcyBlZW4gdG9ldm9lZ2luZyBvcCBkZSBiZWdyZW56aW5nZW4gZGllIHppam4gaW5nZXN0ZWxkIGluIGRlIFBIUC0gb2Ygd2Vic2VydmVyY29uZmlndXJhdGllLic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnU2VydmVybWFwIG9tIGJlc3RhbmRlbiBpbiBvcCB0ZSBzbGFhbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RvZWdlc3RhbmUgZXh0ZW5zaWVzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdWb2VyIGVlbiBrb21tYSBnZXNjaGVpZGVuIGxpanN0IGluLCB6b25kZXIgZGUgcHVudCAoYi52LiwgImpwZyxnaWYsanBlZyIpLiBTcGF0aWVzIHdvcmRlbiBvdmVyZ2VzbGFnZW4uIExlZWcgbGF0ZW4gYmV0ZWtlbnQgZGF0IGVyIGdlZW4gYmVwZXJraW5nZW4gemlqbi4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0JlcGVya2luZ2VuIHdlZXJnZXZlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnR3Jvb3R0ZS0gZW4gZXh0ZW5zaWViZXBlcmtpbmdlbiB0b25lbiBiaWogaGV0IHVwbG9hZCB2ZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciB3ZWVyZ2F2ZWZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2luYSAlcyB2YW4gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ1ZlbGQgaGVlZnQgZ2VlbiBnZWF2YW5jZWVyZGUgb3B0aWVzLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnR2V0b29uZGUgdGVrc3QgYmlqIG9uZ2VzcGVjaWZpY2VlcmRlIHZlbGR3YWFyZGVuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdTbmVsLXZlbGQtdG9ldm9lZ2VuIHVpdGtsYXBtZW51IGluc2NoYWtlbGVuIHZvb3IgZm9ybXVsaWVyZW4/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnU25lbC12ZWxkLXRvZXZvZWdlbiB1aXRrbGFwbWVudSBpbnNjaGFrZWxlbj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1NuZWwtdmVsZC10b2V2b2VnZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdEaXQgYWFua2xpa2tlbiB6YWwgc2xlY2h0cyAxMCBlLW1haWxzIHRvZXN0YWFuIHZhbnVpdCBlZW4gZ2VnZXZlbnMgSVAtYWRyZXMgKHBlciB1dXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdQcmltaXRpZXZlIGFudGktc3BhbSBmdW5jdGlvbmFsaXRlaXQgaW5zY2hha2VsZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdUb29uIHZlbGQtaWRcJ3MnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnRGl0IGFhbmtsaWtrZW4gbWFha3QgaGV0IHRvbmVuIHZhbiB2ZWxkLWlkXCdzIG1vZ2VsaWprIHRpamRlbnMgdG9ldm9lZ2VuIGVuIHdpanppZ2VuIHZhbiBlZW4gZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybXVsaWVyIHZhbnVpdCBlZW4gWE1MLWJlc3RhbmQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0dlYnJ1aWsgZGV6ZSBmb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwtZm9ybXVsaWVyaW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnR2VicnVpayBkZXplIGZvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVlciBIVE1MIGUtbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aXNjaCBsYWRlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIGxhZGVuIG1ldCBkZSBVUkwgdmFuIGRlIHBhZ2luYSBtZXQgaGV0IGZvcm11bGllcj8gKGRpdCBvdmVyc2NocmlqZnQgZGUgcGFnaW5hbGluay1vcHRpZSBoaWVyb25kZXIpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYWFyZCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFhcmQgbGluayB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBuYWFyIGRlIHNpdGVwYWdpbmEnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVSBrdW50IGdlYnJ1aWsgbWFrZW4gdmFuIDxhIGhyZWY9Imh0dHA6Ly9ubC53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IG9tIHZlcnplbmRpbmdlbiB0ZSBiZXZlaWxpZ2VuIGRvb3IgZGUgQ2FwdGNoYS1tb2R1bGUgdGUgaW5zdGFsbGVyZW4uIFZvb3IgbWVlciBpbmZvcm1hdGllLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj56aWUgaGV0IENhcHRjaGEtcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBnZWJydWlrZW4gb20gZGUgZm9ybXVsaWVydmVyemVuZGluZ2VuIHRlIGJlc2NoZXJtZW4/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdWaW5rIGFhbiBvbSB1dyBmb3JtdWxpZXIgdGUgYmVzY2hlcm1lbiBtZXQgZWVuIDxhIGhyZWY9Imh0dHA6Ly9ubC53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCZXZlc3RpZyBkYXQgdSBnZWVuIHNjcmlwdCBiZW50IGRvb3IgZGUga2FyYWt0ZXJzIGluIGhldCBwbGFhdGplIGluIHRlIHZvZXJlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnVmVya2VlcmRlIHRla3N0IHZvb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbmlldCBnb2VkLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIdWxwdGVrc3Qgdm9vciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ1ZlcnN0dXVyIGdlZW4gd2FhcmRlcyB2b29yIG5pZXQtZ2VzZWxlY3RlZXJkZSB2ZWxkZW4nOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdTZWxlY3RlZXIgZGV6ZSBhbHMgZW5rZWwgd2FhcmRlcyB2ZXJzdHV1cmQgbW9ldGVuIHdvcmRlbiB2b29yIGdlc2VsZWN0ZWVyZGUgdmVsZGVuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rbGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgZG9lbCBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTdGFuZGFhcmQgZ2VzZWxlY3RlZXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnR2VicnVpayAyNC11dXJzIHRpamQ/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnVm9lciBzbWFydHkgdGFncyB1aXQgaW4gaGV0IHZlbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSaWplbiAobGV0IG9wOiBkaXQga2FuIHdvcmRlbiBvdmVyc2NocmV2ZW4gZG9vciBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdLb2xvbW1lbiAobGV0IG9wOiBkaXQga2FuIHdvcmRlbiBvdmVyc2NocmV2ZW4gZG9vciBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0hvb2ZkZm9ybXVsaWVyZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnU3RhbmRhYXJkIG5hYXIgbGVlZyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdTdGFuZGFhcmQgbmFhciBsZWVnIChWaW5ramUgd2VnaGFsZW4gb20gc3RhbmRhYXJkIGRlIGh1aWRpZ2UgZGF0dW0gdGUga3JpamdlbiknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ1Rvb24gem93ZWwgZGUgbG9naW4tbmFhbSBhbHMgZGUgdm9vci0gZW4gYWNodGVybmFhbT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnVG9vbiBnZWJydWlrZXJzIHZvb3JuYWFtPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ1Rvb24gZ2VicnVpa2VycyBhY2h0ZXJuYWFtPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlcGVyayBnZWJydWlrZXJzbGlqc3QgdG90IGdlYnJ1aWtlcnMgaW4gc3BlY2lmaWVrZSBncm9lcCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgb3BnZXNsYWdlbiBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhYXQgdm9vciBkYXRhIGVuY3J5cHRpZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdLZXkgQmVzdGFuZCB2b29yIGVuY3J5cHRpZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHZvb3Igc29ydGVlcnZlbGRlbj8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdHZWhlaW1lIHNsZXV0ZWwgdm9vciBkYXRhIGVuY3J5cHRpZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ0RpdCB6b3JndCB2b29yIGVlbiBoYXNoIHZvb3Igc29ydGVlcnZlbGRlbiwgbWFhciBsYWF0IGRlIGVlcnN0ZSBwYWFyIGxldHRlcnMgb25iZXZlaWxpZ2QuIERpdCB6b3JndCB2b29yIGVlbiBrd2V0c2JhYXJoZWlkLCBtYWFyIHZvb3IgZGUgbWVlc3RlIGdlYnJ1aWtlcnMgaXMgZWVuIGFjY2VwdGFiZWxlIGFmd2VnaW5nIHR1c3NlbiBiZXZlaWxpZ2luZyBlbiBkZSBtb2dlbGlqa2hlaWQgb20gcmVjb3JkcyB0ZSBzb3J0ZXJlbi4gRGUgc29ydGVyaW5nIGlzIGJpaiBiZW5hZGVyaW5nLCBtYWFyIHdlcmt0IGJlaG9vcmxpamsgZ29lZC4gV2FubmVlciB1IGRlemUgb3B0aWUgbmlldCBnZWJydWlrdCwgZGFuIHp1bGxlbiBkZSB2ZWxkZW4gYWxzIHBsYXR0ZSB0ZWtzdCB3b3JkZW4gb3BnZXNsYWdlbi4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdCZXZlaWxpZ2RlIGRhdGFvcHNsYWcgbmlldCBiZXNjaGlrYmFhcic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ0luc3RhbGxlZXIgZGUgT3BlblNTTCBtb2R1bGUgb2YgbWNyeXB0IHN1cHBvcnQgYWxzIHUgZGUgZGF0YWJhc2UgZW5jcnlwdGllIHdpbHQgaW5zY2hha2VsZW4uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ0Fsc3R1YmxpZWZ0IGNvbnRyb2xlZXIgb2YgdSBDVVJMIHN1cHBvcnQgYWN0aWVmIGlzIGluIHV3IFBIUCBpbnN0YWxsYXRpZS4gTGVlcyBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdVaXR2b2VyZW4gaW4gZGUgTUxFIE1vZHVzJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdXaWp6aWcvc3VwcG9ydCB2b29yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpZS4gR2VicnVpayBkZXplIG9wdGllIG5pZXQgaW4gZGUgZ2FuZ2JhcmUgY21zbXMgdmVyc2llLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdab3JnIGVydm9vciBkYXQgdXcgZ2VoZWltZSBzbGV1dGVsIGdlc2NoaWt0IGlzIHZvb3IgaGV0IGNlcnRpZmljYWF0IGRhdCB1IGdlYnJ1aWt0IHZvb3IgZW5jcnlwdGllISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdFbmNyeXB0aWUgQmlibGlvdGhlZWsnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnVmluayBkaXQgYWFuIGFscyB1IGRlIG9wZ2VzbGFnZW4gZGF0YSB3aWx0IGVuY3J5cHRlbi4gRGl0IG1hYWt0IGhldCBtb2VpbGlqa2VyIChtYWFyIG5pZXQgb25tb2dlbGlqaykgdm9vciBoYWNrZXJzIG9tIGRlIGluZm9ybWF0aWUgdGUgYmVraWprZW4uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnRGUgb25kZXJzdGFhbmRlIG9wdGllcyB6aWpuIGFsbGVlbiB2YW4gdG9lcGFzc2luZyBhbHMgdSBPcGVuU1NMIEVuY3J5cHRpZSBCaWJsaW90aGVlayBnZWJydWlrdCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aWUgQmlibGlvdGhlZWsnOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgQmlibGlvdGhlZWsnOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBCaWJsaW90aGVlayc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgdmVyYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ0luc3RhbGxlZXIgZGUgRnJvbnRFbmRVc2VyIG1vZHVsZSBvbSBoZXQgZm9ybXVsaWVyLCBtZXQgYmlqYmVob3JlbmRlIGRhdGEgdGUgdmVyYmluZGVuIG1ldCBlZW4gc3BlY2lmaWVrZSBnZWJydWlrZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ1ZpbmsgZGl0IGFhbiBvbSBmcm9udC1lbmQgdG9lZ2FuZyB0ZSBrb3BwZWxlbiBhYW4gZGUgZGF0YSB2YW4gZGUgYWFuZ2VtZWxkZSBmcm9udC1lbmQgZ2VicnVpa2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnRW5jcnlwdGllJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydGVlciBmb3JtdWxpZXIgcmVmZXJlbnRpZSBuYWFyIGVlbiBVRFQgYWxzICRwYXJhbXNbXCdGT1JNXCddPyc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0dlaGVsZSBVUkwsIGluY2x1c2llZiBwcm90b2NvbCBlbiBwYWQgKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm11bGllciB2ZXJ6ZW5kIHVybCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdGb3JtdWxpZXIgbWV0aG9kZSc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICIlcyIgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdCaWprb21lbmRlIGFhbnZyYWFnJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ0FueXRoaW5nIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBzdWJtaXNzaW9uIHBheWxvYWQsIGluIFVSTC1lbmNvZGVkIGZvcm0gKC5lLmcsICJ1c2VyPXN0ZXZlK2pvYnMmZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ0dlYnJ1aWsgdmVsZCB0aWpkZW5zIGhldCB2ZXJzdHVyZW4nOwokbGFuZ1sndGl0bGVfZGF0ZV9vcmRlciddID0gJ0RhdHVtY29tcG9uZW50IHZvbGdvcmRlICh2b29yIGludm9lciknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3b3JkdCBvcGdlc2xhZ2VuIGluIGVlbiBYTUwgZm9ybWF0IGluIGRlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJlbC4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRm91dCEgT3AgaGV0IGZvcm11bGllciBpcyBnZWVuIGtvcHBlbGluZyBnZW1hYWt0IG1ldCBkZSBtb2R1bGUgRm9ybSBCcm93c2VyIG9mIGVyIGlzIGVlbiBwcm9ibGVlbSBvcGdldHJlZGVuIGJpaiBoZXQgdmVyYmluZGVuIG1ldCBkZXplIG1vZHVsZSAoYmlqdm9vcmJlZWxkIGRvb3IgZ2VoZXVnZW5wcm9ibGVtZW4pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddID0gJ1VzZSAibSIgZm9yIE1vbnRoLCAiZCIgZm9yIERheSwgYW5kICJ5IiBmb3IgWWVhci4gU2VwYXJhdGUgdGhlIGl0ZW1zIGJ5IGh5cGhlbnMuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdBbGxlZW4gaW4gZ3JvZXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVG9vbiBhYW4gZ2VicnVpa2VyPyc7CiRsYW5nWyd0aXRsZV91c2VfcmFuZG9tX2dlbmVyYXRvciddID0gJ0dlYnJ1aWsgd2lsbGVrZXVyaWdlIG51bW1lcnMgaW4gcGxhYXRzIHZhbiBzdGF0aXNjaGUnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvZXZlZWwgbnVtbWVyIGdlbmVyZWdlbiBpbiBlZW4gcHJvY2VzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0RpdCB2ZWxkIG1hZyBsZWVnIGdlbGF0ZW4gd29yZGVuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmVsZW4gdm9vciBzamFibG9vbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJlbGVuIGJlc2NoaWtiYWFyJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFiZWxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0dW0gdmFuIHZlcnplbmRpbmcnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1NlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZHJlcyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgdmFuIGRlIHBhZ2luYSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaWUnOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIga2FyYWt0ZXInOwokbGFuZ1snaGVscF9pZ25vcmVkX2lmX3VwbG9hZCddID0gJyhEaXQgdmVsZCB3b3JkdCBnZW5lZ2VlcmQgYWxzIGplIGRlIFVwbG9hZCBtb2R1bGUgZ2VicnVpa3Qgb20gYmVzdGFuZGVuIHRlIGJlaGVyZW4pJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQW5kZXJlIHZlbGRlbiB6aWpuIGJlc2NoaWtiYWFyIG5hZGF0IHplIHppam4gdG9lZ2V2b2VnZCc7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj5uYW1lPC90ZD48dGQgY2xhc3M9Im9kZCI+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPmlkPC90ZD48dGQgY2xhc3M9Im9kZCI+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ0Jla2lqayA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5kZSBQSFAgaGFuZGxlaWRpbmc8L2E+IHZvb3IgaW5mb3JtYXRpZSBvdmVyIGhldCBmb3JtYXQuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdHZXJlcHJlc2VudGVlcmQgVmVsZCc7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3BlY2lmaWNlZXIgZWVuIGJlc3RhbmQgZGF0IGlzIGdlcGxhYXRzdCBpbiBkZSBGb3JtYnVpbGRlci90ZW1wbGF0ZXMvLW1hcC4gRGl0IHZlbGQgemFsIHdvcmRlbiBnZW5lZ2VlcmQgd2FubmVlciB1IGVlbiB0eHQtYmVzdGFuZCBhbHMgYmVzdGFuZHN0eXBlIGdlYnJ1aWt0Lic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+DQpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+DQombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4NCkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gIkJhc2ljIi48YnIgLz4NClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICJSVEYiIGFzIEZpbGUgVHlwZSBhbmQgIkFkdmFuY2VkIiBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ1Zvb3IgVFhUIHphbCBkaXQgd29yZGVuIGdlcGxhYXRzdCBhYW4gZGUgYm92ZW5rYW50IHZhbiBoZXQgYmVzdGFuZC4gVm9vciBSVEYgemFsIGRpdCBkZSAlJUhFQURFUiUlLXN0cmluZyBpbiBkZSB0ZW1wbGF0ZSB2ZXJ2YW5nZW4uJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdWb29yIFRYVCB6YWwgZGl0IHdvcmRlbiBnZXBsYWF0c3QgYWFuIGRlIG9uZGVya2FudCB2YW4gaGV0IGJlc3RhbmQuIFZvb3IgUlRGIHphbCBkaXQgZGUgJSVGT09URVIlJS1zdHJpbmcgaW4gZGUgdGVtcGxhdGUgdmVydmFuZ2VuLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJ8KrIFRlcnVnIG5hYXIgaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVm9vcmJlZWxkc2phYmxvb24gZ2VuZXJlcmVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZcOrZXIgdm9vcmJlZWxkIEhUTUwgc2phYmxvb24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmXDq2VyIGVlbiB2b29yYmVlbGQgSGVhZGVyIHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnQ3Jlw6tlciBlZW4gdm9vcmJlZWxkIEZvb3RlciBzamFibG9vbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1Zvb3JiZWVsZGtvcHJlZ2VsIGdlbmVyZXJlbic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdlZW4gdGFiLXRla2VuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIGVlbiBlbmtlbGUgcmVnZWwgdmFuIGRlIHVpdGdhYW5kZSBtYWlsJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnU2phYmxvb24gdm9vciBkZSBrb3ByZWdlbCB2YW4gZGUgdWl0Z2FhbmRlIG1haWwnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdTamFibG9vbiB2b29yIGRlIGZvb3RlciB2YW4gZGUgdWl0Z2FhbmRlIG1haWwnOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdTamFibG9vbiBSVEYtYmVzdGFuZCBvbSB0ZSBnZWJydWlrZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9maWxlX3R5cGUnXSA9ICdLaWVzIGVlbiBiZXN0YW5kc3R5cGUgb20gdGUgZ2VicnVpa2VuJzsKJGxhbmdbJ3RpdGxlX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnS2llcyBlZW4gUlRGLXNqYWJsb29uIHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBvbSB0ZSBrbGlra2VuIHZvb3IgZm9ybXVsaWVydmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2FhcmRlICh6aWUgR2VhdmFuY2VlcmQgdGFiYmxhZCBhbHMgdSBTbWFydHkgdGFncyBnZWJydWlrdCknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bSBmb3JtYWF0IChzdGFuZGFhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQLWRhdHVtZm9ybWF0ZW48L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0dlYnJ1aWsgV1lTSVdZRyBlZGl0b3Igdm9vciB0ZWtzdHZlbGQgKGFsbGVlbiB2b29yIGFkbWluKT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kZ2VkcmFnJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdWZXJ6ZW5ka25vcGxhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRlZXJ2ZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0RlemUgcGFnaW5hIG1hYWt0IGFhbnBhc3NlbiB2YW4gRm9ybXVsaWVydmVyemVuZGluZyBtb2dlbGlqay4gSGV0IGJlcGFhbHQgbmlldCB3YXQgRm9ybSBCdWlsZGVyIG1ldCBkZSB2ZXJ6b25kZW4gZGF0YSBkb2V0LiBEaXQga3VudCB1IGluc3RlbGxlbiBkb29yICJEaXNwb3NpdGlvbiIgdmVsZGVuIHRvZSB0ZSB2b2VnZW4gYWFuIGhldCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0JlZ2luIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0VpbmRlIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFhcmRqYWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFN0ZWwgb3AgLTEgaW4gdm9vciBoZXQgc3RhbmRhYXJkamFhciBoZXQgaHVpZGlnZSBqYWFyIHRlIG1ha2VuKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTmEgaGV0IGZvcm11bGllciB2ZXJ6b25kZW4gaXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVhY3RpZSBvbSB0ZSB0b25lbic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ1ZlcnplbmRkYXR1bSc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0dW0gZ2VhY2NvcmRlZXJkIChkb29yIGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0dW0gZ2VhY2NvcmRlZXJkIChkb29yIHZlcnplbmRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnVG9vbiAiVmVyemVuZHNqYWJsb29uIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnVmVyd2lqcyBkb29yIG5hYXIgd2VicGFnaW5hJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGV6ZSBzamFibG9vbiBpcyBvbSB0ZSB0b25lbiBhYW4gZGUgZ2VicnVpa2VyIG5hZGF0IGhldCBmb3JtdWxpZXIgdmVyc3R1dXJkIGlzLiBIZXQgaGVlZnQgZ2VlbiBlZmZlY3Qgb3AgZGUgYWFuZ2VtYWFrdCBlLW1haWxzIG9mIGFuZGVyZSBmb3JtdWxpZXJyZWdlbHMgLS0gZGllIGt1bnQgdSBpbnN0ZWxsZW4gaW4gc2phYmxvbmVuIChpbmRpZW4gdmFuIHRvZXBhc3NpbmcpIGluIGhldCAiZ2VhdmFuY2VlcmQiIHRhYmJsYWQgdm9vciBkZSByZWdlbHZlbGRlbi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Jlc3RlbW1pbmdzcGFnaW5hJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1ZlcnBsaWNodGUgdmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnVmVycGxpY2h0IHZlbGRlbiBvbSBlZW4gbmFhbSB0ZSBoZWJiZW4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnVmVycGxpY2h0IHVuaWVrZSB2ZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1ZlcnBsaWNodCB2ZWxkZW4gb20gZWVuIHVuaWVrZSBuYWFtIHRlIGhlYmJlbj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnSGVyc2NoaWsgdmVsZGVuJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYWFkIHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ1ZvZWcga25vcHRla3N0IHRvZSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdWZXJ3aWpkZXIga25vcHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGVscC10ZWtzdCBvbSB0ZSB0b25lbiBiaWogZGl0IHZlbGQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0ZWVyIHZhcmlhYmVsZW4gYWxzIG51bW1lcnMgb2Ygc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aWUgdm9sZ29yZGUnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0FscyBlciBtZWVyIGRhbiBlZW4gYmVyZWtlbmQgdmVsZCBiZXN0YWF0LCBkYW4genVsbGVuIGRlIHdvcmRlbiBiZXJla2VuZCB2YW4gaGV0IGxhYWdzdGUgcmFuZ251bW1lciB0b3QgaGV0IGhvb2dzdGUgcmFuZ251bW1lcic7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJpbmcgKGdlZW4gc3BhdGllcyB0dXNzZW4gZGUgdmVsZGVuKT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1dhYXJkZSBvbSB0ZSBiZXJla2VuZW4nOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0JlcmVrZW5kL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnVG9vbiBoZXQgZm9ybXVsaWVyIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBiZXRla2VudCBkYXQgaWVkZXIgZm9ybXVsaWVydmVydm9sZ2FjdGllIGRlIHtjbXNfbW9kdWxlfSB0YWcgIGluIGRlIHBhZ2luYSB2ZXJ2YW5ndCwgbm9uLWlubGluZSB2ZXJ2YW5ndCBkZSBnZWhlbGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1N0YW5kYWFyZHdhYXJkZSB2b29yIHZlbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0xlZWcgc3RhbmRhYXJkd2FhcmRlIG1ldCBlZW4ga2xpaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnVmluayBhYW4gb20gZGUgc3RhbmRhYXJkd2FhcmRlIHRlIHZlcndpamRlcmVuIGFscyBlZW4gZ2VicnVpa2VyIG9wIGRpdCB2ZWxkIGtsaWt0Lic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1ZlcndpamRlciBoZXQgZ2XDvHBsb2FkZSBiZXN0YW5kIHZhbiBkZSBzZXJ2ZXIgbmEgaGV0IHByb2Nlcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCB2b29yIHZlbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0ieW91cmZuKCkiJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybXVsaWVyIGluZGllbmVuIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIi48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAic2FmZXR5IHNjcmlwdCIgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0tpZXMgaGllciBuaWV0IHpvbWFhciBlZW4gd2lsbGVrZXVyaWcgbWFpbCBhZHJlcyAtLSB2ZWVsIElTUHMgenVsbGVuPGJyIC8+Z2VnZW5lcmVlcmRlIG1haWx0amVzIG5pZXQgYWZsZXZlcmVuIGJpaiBlZW4gbWFpbGFkcmVzIGRpZSBuaWV0IGRlemVsZmRlIGlzIGFscyBoZXQgZWlnZW4gZG9tZWlubmFhbTxiciAvPihiaWp2LiBnZWJydWlrIGlldHMgem9hbHMgbmFhbUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTWVlciB2ZWxkdHlwZXMgbm9kaWc/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RldmVlbCB2ZXJ3YXJyZW5kZSB2ZWxkdHlwZXM/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnR2EgbmFhciBkZSBnZWF2YW5jZWVyZGUgbW9kdXMnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdHYSBuYWFyIGRlIHNpbXBlbGUgbW9kdXMnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnTWFwIHZvb3IgaGV0IG9wc2xhYW4gdmFuIGJlc3RhbmRlbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ0RpdCBtb2V0IGVlbiBtYXAgemlqbiBvcCB1dyB3ZWJzZXJ2ZXIgbWV0IHNjaHJpamZyZWNodGVuLjxiciAvPkNobW9kIGhldCBuYWFyIDc3NyBhbHMgdSBwcm9ibGVtZW4gb2YgdHdpamZlbHMgaGVlZnQuPGJyIC8+Q29udHJvbGVlciBvb2sgb2YgZXIgZ2VlbiBzcHJha2UgaXMgdmFuIFwnUEhQIGRpcmVjdG9yeSByZXN0cmljdGllc1wnLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmlldXdlIHJlZ2VsIHZlcnZhbmdpbmdza2FyYWt0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVlZyBsYXRlbiBvbSBcJ25pZXV3ZSByZWdlbFwnIHRvZSB0ZSBzdGFhbic7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnVmVyemVuZCBnZWJydWlrZXIgZWVuIGtvcGllJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCB2b29yIGhldCB2aW5rdmFramUgKGtldXplIHZvb3IgZGUgZ2VicnVpa2VyKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1ZlcnplbmQgbWlqIGVlbiBrb3BpZSB2YW4gaGV0IGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ1RvZXN0YWFuIGRhdCBoZXQgT25kZXJ3ZXJwIHdvcmR0IG92ZXJzY2hyZXZlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnU3RhIHRvZSBkYXQgaGV0IHZlbGQgXCdFLW1haWwgT25kZXJ3ZXJwXCcgd29yZHQgb3ZlcnNjaHJldmVuIGRvb3IgaGV0IG9uZGVyd2VycCBnZXNwZWNpZmljZWVyZCBpbiBkZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdTY2hlcm0gbGVuZ3RlJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW1hbGUgcmVhY3RpZSBsZW5ndGUnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ1ZlcmJlcmcgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnTGFhdCBzeW1ib2xlbiB6aWVuIGFscyBlZW4gZ2VicnVpa2VyIHppam4gd2FjaHR3b29yZCBpbnZvZXJkLCBpbiBwbGFhdHMgdmFuIGRlIGRhYWR3ZXJrZWxsaWprZSB0ZWtzdC4nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdXYWNodHdvb3JkIHZvbGRvZXQgbmlldCBhYW4gJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdUZXJ1ZyBuYWFyIEZvcm1CdWlsZGVyIFN0YXJ0IFBhZ2luYSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1dlbGtlIGUtbWFpbCBoZWFkZXJzIG1vZXQgZGV6ZSBpbnB1dCBiZXZhdHRlbj8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ1N0YSBnZWVuIGxlZ2UgcmVhY3RpZXMgKHNwYXRpZXMpIHRvZS4nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnQWxzIGVlbiB2ZWxkIHZlcnBsaWNodCBpcywgZGFuIHphbCBoZXQgYWFudmlua2VuIHZhbiBkaXQgdmFramUgbWVuc2VuIHZlcnBsaWNodGVuIGFsZmFudW1lcmlla2Uga2FyYWt0ZXJzIGluIHRlIHZ1bGxlbiwgbmlldCBhbGxlZW4gc3BhdGllcyc7CiRsYW5nWyd0aXRsZV9tdXN0X3NhdmVfb3JkZXInXSA9ICdZb3UgbXVzdCBjbGljayBvbmUgb2YgdGhlICJzYXZlIiBidXR0b25zIHRvIG1ha2UgeW91ciBuZXcgZmllbGQgb3JkZXIgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ0dlYnJ1aWsgSFRNTDUgcGxhY2Vob2xkZXIgdGVrc3QgaW4gcGxhYXRzIHZhbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2NjX2FkZHJlc3MnXSA9ICdBZHJlcyBvbSBuYWFyIHRvZSB0ZSBtYWlsZW4gYWxzIENhcmJvbiBjb3B5IChDQyknOwokbGFuZ1sndGl0bGVfdXNlX2JjYyddID0gJ0dlYnJ1aWsgQmxpbmQgY2FyYm9uIGNvcHkgKEJDQyBpbiBwbGFhdHMgdmFuIENDKSc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzaW5nJ10gPSAnRS1tYWlsYWRyZXNzZXJpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fbW9kaWZ5J10gPSAnRS1tYWlsdmVsZCBvbSBDQyBhZHJlcyB0b2UgdGUgdm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX21vZGlmaWVzJ10gPSAnVm9lZyBDQyB0b2UgYWFuICIlcyInOwokbGFuZ1snYmNjX2ZpZWxkJ10gPSAnIkJDQyIgb250dmFuZ2Vycyc7CiRsYW5nWydjY19maWVsZCddID0gJyJDQyIgb250dmFuZ2Vycyc7CiRsYW5nWyd0b19maWVsZCddID0gJ05vcm1hYWwgKCJBYW4iIG9udHZhbmdlcnMpJzsKJGxhbmdbJ2JjYyddID0gJ0JDQyc7CiRsYW5nWydjYyddID0gJ0NDJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdEZSBDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbmlldCBhYW53ZXppZyEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTm9vaXQnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnS2V1emUgdmFuIGdlYnJ1aWtlciAodmlua3Zha2plKSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx0aWpkJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnIlZhbiIgZS1tYWlsIGFkcmVzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyJCZWFudHdvb3JkIG5hYXIiIGUtbWFpbCBhZHJlcyc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ1pvd2VsICJWYW4iIGFscyAiQmVhbnR3b29yZCBuYWFyIiBlLW1haWwgYWRyZXNzZW4nOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0aWUgTGlqc3QgKGVua2Vsdm91ZGlnKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdGllIExpanN0IChtZWVydm91ZGlnKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlvIEdyb2VwJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ05vdGU6IE91dHB1dCB3aWxsIGJlIGluIHRoZSBmb3JtIG9mPGJyLz4iY29tcGFueSBuYW1lIj0+InZhbHVlIic7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdLaWVzIGVlbiBjYXRlZ29yaWUgKG1lZXJkZXJlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb25cJ3MgdmFsdWUgKHNpbmdsZSkgPGVtPm9wdGlvbmFsPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXSA9ICdLaWVzIEdlYnJ1aWtlcnMgSW52b2VyJzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhLaWprIG9vayBldmVuIG9uZGVyIGRlIEZvcm11bGllcnZlcnplbmRpbmcgdGFiIGFscyB1IGVlbiBVRFQgd2lsdCBnZWJydWlrZW4gdm9vciBkZSBmb3JtdWxpZXIgdmFsaWRhdGllKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRWluZGphYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHkgZ2VnZXZlbnMgb2YgbG9naWNhIGRpZSBpcyBiZWRvZWxkIG9tIHRlIHdvcmRlbiB2ZXJ6b25kZW4gbWV0IGRpdCB2ZWxkLic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnQ2FuIGJlIHNtYXJ0eSBkYXRhLCBqYXZhc2NyaXB0LCBvciBzb21lIG90aGVyIGRhdGEgeW91IHdhblwndCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdWb2VnIGxhYmVscyB0b2UnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnQWxzIHUgZGl0IGluc2NoYWtlbHQgenVsbGVuIGVyIGxhYmVscyB3b3JkZW4gdG9lZ2V2b2VnZCBhYW4gZGUgb3V0cHV0LiBCaWp2b29yYmVlbGQ6IC0gbGFiZWw6IHdhYXJkZSwgbGFiZWwyOiB3YWFyZGUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnS29wcGVsIGRpdCB2ZWxkIGFhbiBoZXQgYm92ZW5saWdnZW5kZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnRHJvcGRvd25saWpzdGVuIG1ldCBhbGxlIGJvdmVubGlnZ2VuZGUgZWxlbWVudGVuIHZhbiBkaXQgdmVsZCBrdW5uZW4gZ2Vrb3BwZWxkIHdvcmRlbiBhYW4gZWVuIG9uZGVybGlnZ2VuZCBlbGVtZW50LiBEaXQgbWFha3QgaGV0IG1vZ2VsaWprIG9tIGRlemUgdmVsZGVuIHRlIGNvbnRyb2xlcmVuLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ1ZlcmJlcmcgY29udHJvbGVrbm9wcGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdWZXJiZXJnIGZyb250ZW5kIGNvbnRyb2xlIGtub3BwZW4gb3AgZGl0IHZlbGQuJzsKJGxhbmdbJ3RpdGxlX25vdGUnXSA9ICdPcG1lcmtpbmcnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0FscyB1IGVlbiB2YW4gZGUgYm92ZW5zdGFhbmRlIHZlbGRlbiB3aWp6aWd0LCBkYW4gemFsIGRpdCBsZWlkZW4gdG90IGVlbiBoZXJvcGJvdXcgdmFuICphbGxlKiBvcGdlc2xhZ2VuIGJlc3RhbmRlbi4gRGl0IGthbiBkdXMgZW5rZWxlIG9nZW5ibGlra2VuIGR1cmVuLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdHZXByb2JlZXJkIG9tIGVlbiBvbmdlbGRpZyBiZXN0YW5kc3R5cGUgdGUgdXBsb2FkZW4gKCVzKSB2YW4gJXMnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZSddID0gJ01hYWsgcmVjb3JkcyBiZXNjaGlrYmFhciB2b29yIGRlIFpvZWsgTW9kdWxlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0FscyB1IGRpdCBhYW52aW5rdCBkYW4gemFsIGFsbGUgZGF0YSB0b2VnYW5rZWxpamsgd29yZGVuIHZvb3IgZGUgWm9layBNb2R1bGUuIEdlYnJ1aWsgZGl0IE5JRVQgYWxzIHUgZ2VicnVpayBtYWFrdCB2YW4gdmVyc2xldXRlbGRlIGdlZ2V2ZW5zIC0tIGRlIGluZm9ybWF0aWUgemFsIGRhbiBiZXNjaGlrYmFhciB3b3JkZW4gZ2VzdGVsZCB2b29yIHpvZWtvcGRyYWNodGVuIGVuIGRlemUgemlqbiBuaWV0IHZlcnNsZXV0ZWxkISc7CiRsYW5nWyd1cGxvYWRlZF9vdXRzaWRlX3dlYnJvb3QnXSA9ICclcyAoYnVpdGVuIHdlYnJvb3QpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnQWFuIHRlIHBhc3NlbiBpbiBkZSBGb3JtQnJvd3NlciBBZG1pbj8nOwokbGFuZ1sndGl0bGVfYWN0aXZlX29ubHknXSA9ICdBbGxlZW4gYWN0aWV2ZSBnZWJydWlrZXJzIGtvcHBlbGVuPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVWl0IHRlIHZvZXJlbiBVc2VyIERlZmluZWQgVGFnIG5hIGVlbiBmb3V0JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSB0YWcgJXMgZ2VlZnQgZWVuIGZvdXQgYWFuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkRlIENhdGFsb2dlciBtb2R1bGUgaXMgbmlldCBnZcOvbnN0YWxsZWVyZC9hY3RpZWYuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQUFSU0NIVVdJTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmRzamFibG9vbic7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxzamFibG9vbiwgdGl0ZWwgbGlua3MnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFiZWxzamFibG9vbiwgdGl0ZWwgYm92ZW4nOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU2phYmxvb24gdmFuICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZSBzamFibG9vbiB3aWx0IG92ZXJzY2hyaWp2ZW4gbWV0IGhldCBnZXNlbGVjdGVlcmRlIHNqYWJsb29uPzxiciAvPihaZWxmcyBhbHMgdSBPSyBhYW5nZWVmdCwgenVsdCB1IGRlIHZlcmFuZGVyaW5nZW4gZWVyc3QgbW9ldGVuIG9wc2xhYW4pJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0ZvdXQgYmlqIGhldCBiZXJla2VuZW4gdmFuICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdHZWVuIEhUVFBfUkVGRVJFUiBpbmZvcm1hdGllIGJlc2NoaWtiYWFyICh3YWFyc2NoaWpuaWprIGRvb3IgaGV0IGdlYnJ1aWsgdmFuIEUtbWFpbCBHZWJydWlrZXIgVmFsaWRhdGllKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGllLXBhcmFtZXRlci1mb3V0LiBab3JnIGVydm9vciBkYXQgZGUgVVJMIHZhbiB1dyBlbWFpbCBjb3JyZWN0IGdla29waWVlcmQgd29yZHQhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aWUtcmVhY3RpZS1mb3V0LiBab3JnIGVydm9vciBkYXQgZGUgVVJMIHZhbiB1dyBlbWFpbCBjb3JyZWN0IGdla29waWVlcmQgd29yZHQhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uLXJlYWN0aWUtZm91dC4gR2VlbiBlbWFpbHZhbGlkYXRpZXZlbGRlbiBpbiBkaXQgZm9ybXVsaWVyISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybXVsaWVyc2phYmxvb24gaXMgYXV0b21hdGlzY2ggYmlqZ2V3ZXJrdCBhbHMgb25kZXJkZWVsIHZhbiBkZSB1cGdyYWRlIHZhbiB2ZXJzaWUgMC4zIG5hYXIgdmVyc2llIDAuNC4gTW9nZWxpamsgbW9ldCB1IGVlbiBhYW50YWwgemFrZW4gaGVyc3RlbGxlbi4gQWxzIHUgaGV0IHN0YW5kYWFyZHNqYWJsb29uIGdlYnJ1aWt0LCB2ZXJ2YW5nIGRlemUgc2phYmxvb24gZGFuIG1ldCBkZSBzdGFuZGFhcmQsIGRvb3IgZGUgYm92ZW5zdGFhbmRlIGtldXplbGlqc3QgdGUgZ2VicnVpa2VuLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdCZWhlZXIgdmFuIGludGVyYWN0aWV2ZSB3ZWJmb3JtdWxpZXJlbic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2FkbWluJ10gPSAnVSBtb2V0IGVlbiBiZWhlZXJkZXIgb3BnZXZlbic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0FscyB1IHN0cmluZy1ldmFsdWF0aWUgZ2VicnVpa3QsIGlzIGRlIGVuaWdlIGJlc2NoaWtiYXJlIG9wZXJhdG9yICgrKSwgdGVyd2lqbCBiaWogaGV0IGdlYnJ1aWsgdmFuIG51bW1lci1ldmFsdWF0aWUgZWVudm91ZGlnZSB3aXNrdW5kaWdlIGJld2Vya2luZ2VuIG1vZ2VsaWprIHppam4gKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnR2VicnVpayBNb2R1bGUgSW50ZXJmYWNlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4gDQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCdcJ30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJ1wnfQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT1cJzo6XCd8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPVwnIGNoZWNrZWQ9ImNoZWNrZWQiXCd9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0iUHJvZHVjdERpcmVjdG9yeUl0ZW0iPg0KCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSIgbmFtZT0ieyRGQmlkfVtdIiB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pIMKjeyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9ImNhdCIgc3VtbWFyeXRlbXBsYXRlPSJZb3VyX0ZCX3RlbXBsYXRlIn08L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ1V3IHRhZyB0b2V2b2VnZW4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnamFudWFyaSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnZmVicnVhcmknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ21hYXJ0JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdhcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ21laSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdqdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ2p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdhdWd1c3R1cyc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdva3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdub3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnZGVjZW1iZXInOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FFJ10gPSAnVmVyZW5pZ2RlIEVtaXJhdGVuJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4nOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIGVuIEJhcmJ1ZGEnOwokbGFuZ1snQUknXSA9ICdBbmd1aWxsYSc7CiRsYW5nWydBTCddID0gJ0FsYmFuacOrJzsKJGxhbmdbJ0FNJ10gPSAnQXJtZW5pw6snOwokbGFuZ1snQU4nXSA9ICdOZXRoZXJsYW5kc2UgQW50aWxsZW4nOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5pw6snOwokbGFuZ1snQVMnXSA9ICdBbmd1aWxsYSc7CiRsYW5nWydBVCddID0gJ09vc3RlbnJpamsnOwokbGFuZ1snQVUnXSA9ICdBdXN0cmFsacOrJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEnOwokbGFuZ1snQVgnXSA9ICfDhWxhbmQtZWlsYW5kZW4nOwokbGFuZ1snQVonXSA9ICdBemVyYmVpZHpqYW4nOwokbGFuZ1snQkEnXSA9ICdCb3NuacOrIGVuIEhlcnplZ292aW5hJzsKJGxhbmdbJ0JCJ10gPSAnQmFyYmFkb3MnOwokbGFuZ1snQkQnXSA9ICdCYW5nbGFkZXNoJzsKJGxhbmdbJ0JFJ10gPSAnQmVsZ2nDqyc7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmlqZSc7CiRsYW5nWydCSCddID0gJ0JhaHJlaW4nOwokbGFuZ1snQkknXSA9ICdCdXJ1bmRpJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0nOwokbGFuZ1snQk8nXSA9ICdCb2xpdmlhJzsKJGxhbmdbJ0JSJ10gPSAnQnJhemlsacOrJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hXCdzJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0JzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQlknXSA9ICdXaXQtUnVzbGFuZCc7CiRsYW5nWydCWiddID0gJ0JlbGl6ZSc7CiRsYW5nWydDQSddID0gJ0NhbmFkYSc7CiRsYW5nWydDQyddID0gJ0NvY29zIChLZWVsaW5nKSBFaWxhbmRlbic7CiRsYW5nWydDRCddID0gJ0NvbmdvLCBEZW1vY3JhdGlzY2hlIFJlcHVibGllayc7CiRsYW5nWydDRiddID0gJ0NlbnRyYWFsIEFmcmlrYWFuc2UgUmVwdWJsaWVrJzsKJGxhbmdbJ0NHJ10gPSAnQ29uZ28nOwokbGFuZ1snQ0gnXSA9ICdad2l0c2VybGFuZCc7CiRsYW5nWydDSSddID0gJ0l2b29ya3VzdCc7CiRsYW5nWydDSyddID0gJ0Nvb2sgRWlsYW5kZW4nOwokbGFuZ1snQ0wnXSA9ICdDaGlsaSc7CiRsYW5nWydDTSddID0gJ0thbWVyb2VuJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmEnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EnOwokbGFuZ1snQ1UnXSA9ICdDdWJhJzsKJGxhbmdbJ0NWJ10gPSAnS2FhcHZlcmRpc2NoZSBlaWxhbmRlbic7CiRsYW5nWydDWCddID0gJ0NocmlzdG1hc2VpbGFuZCc7CiRsYW5nWydDWSddID0gJ0N5cHJ1cyc7CiRsYW5nWydDWiddID0gJ1RzamVjaGnDqyc7CiRsYW5nWydERSddID0gJ0R1aXRzbGFuZCc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJzsKJGxhbmdbJ0RLJ10gPSAnRGVuZW1hcmtlbic7CiRsYW5nWydETSddID0gJ0RvbWluaWNhJzsKJGxhbmdbJ0RPJ10gPSAnRG9taW5pY2FhbnNlIFJlcHVibGllayc7CiRsYW5nWydEWiddID0gJ0FsZ2FyaWplJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvcic7CiRsYW5nWydFRSddID0gJ0VzdGxhbmQnOwokbGFuZ1snRUcnXSA9ICdFZ3lwdGUnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJzZSBTYWhhcmEnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhJzsKJGxhbmdbJ0VTJ10gPSAnU3BhbmplJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9wacOrJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCc7CiRsYW5nWydGSiddID0gJ0ZpamknOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZCBFaWxhbmRlbiAoTWFsYWRpZXZlbiknOwokbGFuZ1snRk0nXSA9ICdNaWNyb25lc2lhJzsKJGxhbmdbJ0ZPJ10gPSAnRmFyb2UgSXNsYW5kcyc7CiRsYW5nWydGUiddID0gJ0ZyYW5rcmlqayc7CiRsYW5nWydGWCddID0gJ0ZyYW5rcmlqaywgbWV0cm9wb29sJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24nOwokbGFuZ1snR0InXSA9ICdHcm9vdC1Ccml0YW5uacOrJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkYSc7CiRsYW5nWydHRSddID0gJ0dlb3JnacOrJzsKJGxhbmdbJ0dGJ10gPSAnR3Vlcm5zZXknOwokbGFuZ1snR0gnXSA9ICdHaGFuYSc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhcic7CiRsYW5nWydHTCddID0gJ0dyb2VubGFuZCc7CiRsYW5nWydHTSddID0gJ0dhbWJpYSc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSc7CiRsYW5nWydHUCddID0gJ0d1YWRlbG91cGUnOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydHUiddID0gJ0dyaWVrZW5sYW5kJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSBlbiBTLiBTYW5kd2ljaCBFaWxhbmRlbic7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nJzsKJGxhbmdbJ0hNJ10gPSAnSGVhcmQgYW5kIE1jRG9uYWxkIEVpbGFuZGVuJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMnOwokbGFuZ1snSFInXSA9ICdDcm9hdGnDqyc7CiRsYW5nWydIVCddID0gJ0hhw690aSc7CiRsYW5nWydIVSddID0gJ0hvbmdhcmlqZSc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpw6snOwokbGFuZ1snSUUnXSA9ICdJZXJsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYSc7CiRsYW5nWydJTSddID0gJ0lzbGUgb2YgTWFuJzsKJGxhbmdbJ0lOJ10gPSAnSW5kaWEnOwokbGFuZ1snSU8nXSA9ICdCcml0cy1JbmRpc2NoZSBPY2VhbmlzY2ggdGVycmV0b3JpdW0nOwokbGFuZ1snSVEnXSA9ICdJcmFrJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbic7CiRsYW5nWydJUyddID0gJ0lqc2xhbmQnOwokbGFuZ1snSVQnXSA9ICdJdGFsacOrJzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5JzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWljYSc7CiRsYW5nWydKTyddID0gJ0pvcmRhbmnDqyc7CiRsYW5nWydKUCddID0gJ0phcGFuJzsKJGxhbmdbJ0tFJ10gPSAnS2VuaWEnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kamEnOwokbGFuZ1snS0knXSA9ICdLaXJpYmF0aSc7CiRsYW5nWydLTSddID0gJ0NvbW9yb3MnOwokbGFuZ1snS04nXSA9ICdTaW50IEtpdHRzIGVuIE5ldmlzJzsKJGxhbmdbJ0tQJ10gPSAnTm9vcmQtS29yZWEnOwokbGFuZ1snS1InXSA9ICdadWlkLUtvcmVhJzsKJGxhbmdbJ0tXJ10gPSAnS29ld2VpdCc7CiRsYW5nWydLWSddID0gJ0NheW1hbiBlaWxhbmRlbic7CiRsYW5nWydLWiddID0gJ0themFjaHN0YW4nOwokbGFuZ1snTEEnXSA9ICdMYW9zJzsKJGxhbmdbJ0xCJ10gPSAnTGliYW5vbic7CiRsYW5nWydMQyddID0gJ1NpbnQgTHVjaWEnOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpw6snOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvJzsKJGxhbmdbJ0xUJ10gPSAnTGl0aHVhbmlhJzsKJGxhbmdbJ0xVJ10gPSAnTHV4ZW1idXJnJzsKJGxhbmdbJ0xWJ10gPSAnTGV0bGFuZCc7CiRsYW5nWydMWSddID0gJ0xpYmnDqyc7CiRsYW5nWydNQSddID0gJ01hcm9ra28nOwokbGFuZ1snTUMnXSA9ICdNb25hY28nOwokbGFuZ1snTUQnXSA9ICdNb2xkYXZpZSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXInOwokbGFuZ1snTUgnXSA9ICdNYXJzaGFsbCBFaWxhbmRlbic7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snTUwnXSA9ICdNYWxpJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hcic7CiRsYW5nWydNTiddID0gJ01vbmdvbGllJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUnOwokbGFuZ1snTVAnXSA9ICdOb29yZHNlIE1hcmlhbmEgRWlsYW5kZW4nOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pw6snOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0JzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEnOwokbGFuZ1snTVUnXSA9ICdNYXVyaXRhbmnDqyc7CiRsYW5nWydNViddID0gJ01hbGVkaXZlbic7CiRsYW5nWydNVyddID0gJ01hbGF3aSc7CiRsYW5nWydNWCddID0gJ01leGljbyc7CiRsYW5nWydNWSddID0gJ01hbGVpc2nDqyc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUnOwokbGFuZ1snTkEnXSA9ICdOYW1pYmllJzsKJGxhbmdbJ05DJ10gPSAnTmlldXcgQ2FsZWRvbmlhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkYnXSA9ICdOb3Jmb2xrIEVpbGFuZCc7CiRsYW5nWydORyddID0gJ05pZ2VyaWEnOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEnOwokbGFuZ1snTkwnXSA9ICdOZWRlcmxhbmQnOwokbGFuZ1snTk8nXSA9ICdOb29yd2VnZW4nOwokbGFuZ1snTlAnXSA9ICdOZXBhbCc7CiRsYW5nWydOUiddID0gJ05hdXJ1JzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhYWwgZ2ViaWVkJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydOWiddID0gJ05pZXV3LVplZWxhbmQgKEFvdGVhcm9hKSc7CiRsYW5nWydPTSddID0gJ09tYW4nOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BGJ10gPSAnRnJhbnMgUG9sb25lc2nDqyc7CiRsYW5nWydQRyddID0gJ1BhcHVhIE5pZXV3LUd1aW5lYSc7CiRsYW5nWydQSCddID0gJ0ZpbGlwaWpuZW4nOwokbGFuZ1snUEsnXSA9ICdQYWtpc3Rhbic7CiRsYW5nWydQTCddID0gJ1BvbGVuJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSBlbiBNaXF1ZWxvbic7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BSJ10gPSAnUHVlcnRvIFJpY28nOwokbGFuZ1snUFMnXSA9ICdQYWxlc3Rpam5zZSB0ZXJyZXRvcmlhJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwnOwokbGFuZ1snUFcnXSA9ICdQYWxhdSc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5JzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXInOwokbGFuZ1snUkUnXSA9ICdSw6l1bmlvbic7CiRsYW5nWydSTyddID0gJ1JvZW1lbmnDqyc7CiRsYW5nWydSVSddID0gJ1J1c2xhbmQnOwokbGFuZ1snUlcnXSA9ICdSd2FuZGEnOwokbGFuZ1snU0EnXSA9ICdTYW9lZGktQXJhYmnDqyc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gRWlsYW5kZW4nOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVuJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4nOwokbGFuZ1snU0UnXSA9ICdad2VkZW4nOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvcmUnOwokbGFuZ1snU0gnXSA9ICdTdC4gSGVsZW5hJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuacOrJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gRWlsYW5kZW4nOwokbGFuZ1snU0snXSA9ICdTbG92YWFrc2UgcmVwdWJsaWVrJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTTiddID0gJ1NlbmVnYWwnOwokbGFuZ1snU08nXSA9ICdTb21hbGnDqyc7CiRsYW5nWydTUiddID0gJ1N1cmluYW1lJzsKJGxhbmdbJ1NUJ10gPSAnU2FvIFRvbWUgZW4gUHJpbmNpcGUnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvcic7CiRsYW5nWydTWSddID0gJ1NpcmnDqyc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydUQyddID0gJ1R1cmtzZSBhbmQgQ2FpY29zZSBFaWxhbmRlbic7CiRsYW5nWydURCddID0gJ0NoYWQnOwokbGFuZ1snVEYnXSA9ICdGcmFuc2UgWnVpZGdlbGVnZW4gdGVycmV0b3JpYSc7CiRsYW5nWydURyddID0gJ1RvZ28nOwokbGFuZ1snVEgnXSA9ICdUaGFpbGFuZCc7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1JzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuJzsKJGxhbmdbJ1ROJ10gPSAnVHVuZXNpw6snOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUUCddID0gJ09vc3QtVGltb3InOwokbGFuZ1snVFInXSA9ICdUdXJraWplJzsKJGxhbmdbJ1RUJ10gPSAnVHJpbmlkYWQgZW4gVG9iYWdvJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEnOwokbGFuZ1snVUEnXSA9ICdPZWtyYcOvbmUnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEnOwokbGFuZ1snVUsnXSA9ICdWZXJlbmlnZCBLb25pbmtyaWprJzsKJGxhbmdbJ1VNJ10gPSAnS2xlaW5lIGFmZ2VsZWdlbiBlaWxhbmRlbiB2YW4gZGUgVmVyZW5pZ2RlIFN0YXRlbic7CiRsYW5nWydVUyddID0gJ1ZlcmVuaWdkZSBTdGF0ZW4nOwokbGFuZ1snVVknXSA9ICdVcnVndWF5JzsKJGxhbmdbJ1VaJ10gPSAnVXpiZWtpc3Rhbic7CiRsYW5nWydWQSddID0gJ1ZhdGljYWFuc3RhZCc7CiRsYW5nWydWQyddID0gJ1NpbnRWaW5jZW50ICYgZGUgR3JlbmFkaW5lcyc7CiRsYW5nWydWRSddID0gJ1ZlbmV6dWVsYSc7CiRsYW5nWydWRyddID0gJ01hYWdkZW5laWxhbmRlbiAoQnJpdHMpJzsKJGxhbmdbJ1ZJJ10gPSAnTWFhZ2RlbmVpbGFuZGVuIChWUyknOwokbGFuZ1snVk4nXSA9ICdWaWV0bmFtJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyBlbiBGdXR1bmEgRWlsYW5kZW4nOwokbGFuZ1snV1MnXSA9ICdTYW1vYSc7CiRsYW5nWydZRSddID0gJ0plbWVuJzsKJGxhbmdbJ1lUJ10gPSAnTWF5b3R0ZSc7CiRsYW5nWydZVSddID0gJ0pvZWdvZXNsYXZpw6snOwokbGFuZ1snWkEnXSA9ICdadWlkLUFmcmljYSc7CiRsYW5nWydaTSddID0gJ1phbWJpYSc7CiRsYW5nWydaVyddID0gJ1ppbWJhYndlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgRXIgaXMgZWVuIGZvdXQgb3BnZXRyZWRlbiB0aWpkZW5zIGRlIGZvcm11bGllcnZlcndlcmtpbmcuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm0gQnVpbGRlciB2ZXJ6ZW5kaW5nc2ZvdXQ6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdGb3V0IGJpaiBoZXQgdmVyc3R1cmVuIHZhbiBoZXQgYmVzdGFuZCBuYWFyIGRlIHVwbG9hZG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnRGUgVXBsb2FkbW9kdWxlIGtvbiBuaWV0IHdvcmRlbiBnZXZvbmRlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0JpamxhZ2UgZm91dCBiaWogYmVzdGFuZCAlcyAodG1wX25hbWU6ICVzLCB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZvdXQuIEthbiBnZWVuIGxvY2sgdm9vciBiZXN0YW5kIGtyaWpnZW4uJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhYXJkOiBuaWV0LWdlc2VsZWN0ZWVyZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFhcmQ6IGdlc2VsZWN0ZWVyZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybSBCdWlsZGVyIFZlcnplbmRpbmcnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxiciAvPkUtbWFpbHNqYWJsb29uIG5vZyBuaWV0IGluZ2VzdGVsZCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybSBCdWlsZGVyOiBLYW4gZGUgdmVyZWlzdGUgQ01TTWFpbGVyIG1vZHVsZSBuaWV0IHZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnR2VicnVpa2VyIGdvZWRnZWtldXJkZSB2ZXJ6ZW5kaW5nICVzIHZhbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkVlbiBnZWJldXJ0ZW5pcyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVybmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RWVuIGdlYmV1cnRlbmlzIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVlbiBsaWpzdCB2YW4gYWxsZSBiZWtlbmRlIGZvdXRlbiAoc3RyaW5nKTwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkVlbiBnZWJldXJ0ZW5pcyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVybmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPC91bD4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVhY3RpZS1JRC4gR2VicnVpa3QgZG9vciBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhYXJkIHZlbGR3YWFyZGVuOyB6aWUgbW9kdWxlaHVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdWZWxkLUlEIHZvb3IgaW50ZXJuZSBvcGVyYXRpZXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGllcm5hYW0nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxpZXItSUQgdm9vciBpbnRlcm5lIG9wZXJhdGllJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxnZW1lbmUgcGFyYW1ldGVycyB2b29yIGludGVybmUgb3BlcmF0aWVzJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCdkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPiRlbnRyeS0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD4kZW50cnktPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD4kZW50cnktPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD4kZW50cnktPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPiRlbnRyeS0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD4kZW50cnktPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPiRlbnRyeS0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD4kZW50cnktPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPiRlbnRyeS0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD4kZW50cnktPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+JGVudHJ5LT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD4kdG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPiR0aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+JHRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+JGNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPiRmb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPiRmb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+JGluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD4kaW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4NCjx0cj48dGQ+JGZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPiRwcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD4kc3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4nOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnRGUgbW9kdWxlIEZvcm1CdWlsZGVyIGlzIGdlw69uc3RhbGxlZXJkLiBSYWFkcGxlZWcgZGUgSGVscCBwYWdpbmEgdm9vciBtZWVyIGluZm9ybWF0aWUhJzsKJGxhbmdbJ29wdF9tb250aF9pbnB1dF90ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snb3B0X21vbnRoX2lucHV0X251bWJlciddID0gJ051bW1lcic7CiRsYW5nWydvcHRfbW9udGhfaW5wdXRfYm90aCddID0gJ0JlaWRlbic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3RpbWUnXSA9ICdTdGFuZGFhcmQgdGlqZCc7CiRsYW5nWyd0aXRsZV9taW51dGVfaW50ZXJ2YWwnXSA9ICdNaW51dGVuIGludGVydmFsJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0tyZWF0b3IgZm9ybXVsYXJ6eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cCBwb2xhIG5pZSB6b3N0YcWCIHVzdGF3aW9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdXeWJpZXJ6IGplZGVuIGx1YiB3acSZY2VqIHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1Lb25pZWMgcG9sYSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctUG9jesSFdGVrIHBvbGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdQb2xlIHRla3N0b3dlZ28gd3Byb3dhZHphbmlhIChUZXh0IElucHV0KSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBOdW1iZXIgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnSGFzxYJvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnSGFzxYJvICh3ZXJ5ZmlrYWNqYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnUG9sZSB0ZWtzdG93ZWdvIHdwcm93YWR6YW5pYSAod2llbG9rcm90bmUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1BvbGUgdGVrc3Rvd2UgKHRleHQgYXJlYSknOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ1ByenljaXNrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cGEgY2hlY2tib3gmb2FjdXRlO3cnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTGlzdGEgcm96d2lqYWxuYSc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnV3liJm9hY3V0ZTtyIHJva3UnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTGlzdGEgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBzdGFuJm9hY3V0ZTt3IFVTQSc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IHJlZ2lvbiZvYWN1dGU7dyBLYW5hZHknOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IGtyYWp1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBkYXR5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBjemFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBhIHJhZGlvYnV0dG9uJm9hY3V0ZTt3JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypXeXN5xYJhaiB3eW5pa2kgZW1haWxlbSB3eWJyYW55bSB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBwbGlrdSB3eWJpZXJhbmVnbyB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypaYXBpc3ogd3luaWtpIGRvIHBsaWt1KCZvYWN1dGU7dykgd3liaWVyYW5lZ28geiBsaXN0eSB3aWVsb2tyb3RuZWdvIHd5Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUHJ6ZWtpZXJ1aiBkbyBzdHJvbnkgd3licmFuZWogeiBsaXN0eSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqV3nFm2xpaiB3eW5pa2kgcG9kIGVtYWlsKGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlcyBXYWxpZGFjamktcHJ6ZXotZW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwaXN6IHd5bmlraSBkbyB6d3lrxYJlZ28gcGxpa3UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBiYXp5IGRhbnljaCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqWmFwaXN6IHd5bmlrIHcgZm9ybWFjaWUgemdvZG55bSB6IG1vZHXFgmVtIEZvcm1Ccm93c2VyIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypXeXdvxYJhaiB6bmFjem5payB1xbx5dGtvd25pa2EgeiB3eW5pa2FtaSBmb3JtdWxhcnphJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKld5xZtsaWogd3luaWtpIG5hIGVtYWlsIHBvZGFueSBwcnpleiB1xbx5dGtvd25pa2EnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKld5xZtsaWogd3luaWsgZG8gYWRtaW5pc3RyYXRvcmEgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctS29uaWVjIHN0cm9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ1dncnl3YW5pZSBwbGlrdSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7QWRyZXMgb2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7T2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdQb2xlIHcgZW1haWx1ICZxdW90O1R5dHXFgiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZWtzdCBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGluayBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh3cHJvd2Fkem9ueSBwcnpleiB1xbx5dGtvd25pa2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctUG9sZSB1a3J5dGUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVBvbGUgb2JsaWN6ZW5pb3dlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaWthbG55IGlkZW50eWZpa2F0b3IgKG51bWVyIHNlcnlqbnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdCZXogd2FsaWRhY2ppJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyeWN6bmUnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnUGXFgm5vLWxpY3pib3dlIChpbnRlZ2VyKSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdBZHJlcyBlbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOdW1lciB0ZWxlZm9uaWN6bnkgKGZvcm1hdCBVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c2kgem9zdGHEhyB6YXpuYWN6b25lJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTcHJhd2R6YWogcG9wcmF3bm/Fm8SHIHogd3lyYcW8ZW5pZW0gcmVndWxhcm55bSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOaWUgc3BlxYJuaWEgd2FydW5rJm9hY3V0ZTt3IG9rcmXFm2xvbnljaCBwcnpleiBwb2RhbmUgd3lyYcW8ZW5pZSByZWd1bGFybmUnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ1dhcnRvxZvEhyBkbGEgd3ltYWdhbmVnbyBwb2xhIG5pZSB6b3N0YcWCYSBwb2RhbmEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdXcHJvd2Fkxbogd2FydG/Fm8SHIGRsYSBwb2xhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1dwcm93YWTFuiBsaWN6YsSZIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdXcHJvd2FkxbogcG9wcmF3bsSFIHdhcnRvxZvEhyB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdXcHJvd2Fkxbogd2FydG/Fm8SHIHBlxYJuby1saWN6Ym93xIUgdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1dwcm93YWTFuiBwb3ByYXdueSBlbWFpbCB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdXcHJvd2FkxbogcG9wcmF3bnkgbnVtZXIgdGVsZWZvbmljem55Y2ggdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1BsZWFzZSBsb2cgaW4gdG8gdXNlIHRoaXMgZm9ybSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuaWUgd3lkYWplIHNpxJkgcG9wcmF3bnltIGFkcmVzZW0gZW1haWwhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdXcHJvd2Fkxbogd2FydG/Fm8SHIG5pZSBkxYJ1xbxzesSFIG5pxbwgJXMgem5hayZvYWN1dGU7dyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHXFvHl3YW55IGpha28gc2VwYXJhdG9yIHcgd3luaWthY2ggZGFqxIVjeWNoIHdpxJljZWogbmnFvCBqZWRuxIUgd2FydG/Fm8SHJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdQb3RyemVidWplc3ogdXByYXduaWVuaWUgJnF1b3Q7JXMmcXVvdDsgYnkgd3lrb25hxIcgdMSZIG9wZXJhY2rEmSc7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBOaWUgbWFzeiBvZHBvd2llZG5pY2ggdXByYXduaWXFhCBieSBrb3J6eXN0YcSHIHogdGVqIHNla2NqaS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0tvbGVqbm/Fm8SHIHAmb2FjdXRlO2wgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXJ6IHpvc3RhxYIgdXN1bmnEmXR5JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdQb2xlIHpvc3RhxYJvIHVzdW5pxJl0ZSc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFjamEgemFwaXNhbmEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnTXVzaXN6IHphem5hY3p5xIcgJnF1b3Q7JXMmcXVvdDsgYnkgcHJ6ZWrFm8SHIGRhbGVqJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdNdXNpc3ogcG9kYcSHIGNvIG5ham1uaWVqIGplZGVuIGFkcmVzIGRvY2Vsb3d5ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdOYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgZm9ybXVsYXJ6ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnTmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ09wY2plIHphYXdhbnNvd2FuZSBuaWUgc8SFIGRvc3TEmXBuZSwgZG9wJm9hY3V0ZTtraSBuaWUgdXN0YXdpc3ogdHlwdSBwb2xhJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTmF6d2EgcG9sYSAmcXVvdDslcyZxdW90OyBqdcW8IGplc3QgdyBzeXN0ZW1pZS4gVcW8eXdhaiBuaWVwb3d0YXJ6YWxueWNoIG5hencgYWxibyB3ecWCxIVjeiBvZHBvd2llZG5pxIUgb3BjasSZIHcga29uZmlndXJhY2ppIG1vZHXFgnUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xhIG11c3rEhSBtaWXEhyBuYXp3xJksIGRvcCZvYWN1dGU7a2kgbmllIHd5xYLEhWN6eXN6IHRlaiBvcGNqaSB6IGtvbmZpZ3VyYWNqaSBtb2R1xYJ1Lic7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ05vIGZpZWxkIGFzc2lnbmVkIGZvciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0TFgjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzJm9hY3V0ZTt3JzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcGNqaSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1snb3JkZXInXSA9ICdLb2xlam5vxZvEhyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV6bmFuZV0nOwokbGFuZ1snYWRkZWQnXSA9ICdkb2Rhbm8nOwokbGFuZ1sndXBkYXRlZCddID0gJ3pha3R1YWxpem93YW5vJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wY2plIHNvcnRvd2FuaWEgd3lqxZtjaWEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1d5YmllcnogamVkbm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdXeWJpZXJ6IHR5cCc7CiRsYW5nWyd0byddID0gJ0RvJzsKJGxhbmdbJ3llcyddID0gJ1Rhayc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnb2RiaW9yY3knOwokbGFuZ1snZmllbGRzJ10gPSAnZmllbGRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBtb8W8bGl3eWNoIHBsaWsmb2FjdXRlO3cnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBjZWwmb2FjdXRlO3cnOwokbGFuZ1snc2F2ZSddID0gJ1phcGlzeic7CiRsYW5nWydhZGQnXSA9ICdEb2Rhaic7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpenVqJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnWmFwaXN6IGkga29udHludXVqIGVkeWNqxJknOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2plJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXR5Y3puaWUnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcnplJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxhcnogJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYWNqYSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdHVzIHd5bWFnYWxub8WbY2kgcG9sYSB6b3N0YcWCIHpha3R1YWxpem93YW55Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzeW1hbG55IHJvem1pYXInOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdSb3pyemVzemVuaWEnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0RvendvbG9uZSB0eXB5IHBsaWsmb2FjdXRlO3cnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdXZ3J5d2FueSBwbGlrIGplc3QgemEgZHXFvHkhIE1ha3N5bWFsbnkgcm96bWlhciB0bzonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdQbGlraSB0ZWdvIHR5cHUgKHRlZ28gcm96c3plcnplbmlhKSBuaWUgbW9nxIUgYnnEhyB3Z3J5d2FuZSBkbyBuYXN6ZWdvIHN5c3RlbXUuIFNwcmF3ZMW6LCBjenkgcm96c3plcnplbmllIGplc3QgcHJhd2lkxYJvd2UuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1dncnl3YW5pZSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXJ6IHphaW1wb3J0b3dhbnkuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBmb3JtdWxhcnphIHNpxJkgbmllIHBvd2kmb2FjdXRlO2TFgiEgQnnFgiBwcm9ibGVtIHogZm9ybWF0ZW0gcGxpa3UgWE1MLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgd2llcnN6eSc7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sdW1uJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi1nb2R6aW5ueSB6ZWdhcic7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtZ29kemlubnkgemVnYXInOwokbGFuZ1snaG91ciddID0gJ0dvZHppbmEnOwokbGFuZ1snbWluJ10gPSAnTWludXRhJzsKJGxhbmdbJ21lcmlkJ10gPSAnUG/FgnVkbmlrJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdaYWtyZXM6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnRHppxJlraSEgVHdvamEgd3lzecWCa2Egem9zdGHFgmEgb3RyenltYW5hLic7CiRsYW5nWydlZGl0J10gPSAnRWR5dHVqJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0thc3VqJzsKJGxhbmdbJ2RheSddID0gJ0R6aWXFhCc7CiRsYW5nWydtb24nXSA9ICdNaWVzacSFYyc7CiRsYW5nWyd5ZWFyJ10gPSAnUm9rJzsKJGxhbmdbJ25vbmUnXSA9ICcoYnJhayknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdcWCIG9kaW5zdGFsb3dhbnknOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdcWCIHcgd2Vyc2ppICVzIHpvc3RhxYIgemFpbnN0YWxvd2FueS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1xYIgemFrdHVhbGl6b3dhbm8gZG8gd2Vyc2ppICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdQb3dyJm9hY3V0ZTt0Li4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdXecWbbGlqIGZvcm11bGFyeic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdLb250eW51dWouLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1phem5hY3pvbnknOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnT2R6bmFjem9ueSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0fFgiZvYWN1dGU7d25hJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdVc3Rhd2llbmlhIHd5xZt3aWV0bGVuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnV3lzxYJhbmllIGZvcm11bGFyemEnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdVc3Rhd2llbmlhIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnVXN0YXdpZW5pYSBaYWF3YW5zb3dhbmUnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnU3phYmxvbiBmb3JtdWxhcnphJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTemFibG9uIHd5c8WCYW5pYSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURUIEludGVncmF0aW9uJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+Wm1pZW5uZSBzbWFydHkgc8SFIHcgdHltIHBvbHUgZG96d29sb25lITwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnRG9kYWogd2nEmWNlaiBvcGNqaSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIG9wY2plJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnRG9kYWogd2nEmWNlaiBjaGVja2JveC0mb2FjdXRlO3cnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTa2FzdWogemF6bmFjem9uZSBjaGVja2JveC15JzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnRG9kYWoga29sZWpueSBhZHJlcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIGFkcmVzeSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdEb2RhaiBrb2xlam5lZ28gYWRyZXNhdGEgKGNlbCknOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2thc3VqIHd5YnJhbnljaCBhZHJlc2F0Jm9hY3V0ZTt3IChjZWxlKSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1phIGR1xbxvIGVtYWlsaSB6b3N0YcWCbyB3eWdlbmVyb3dhbnljaCB6IHR3b2plZ28gYWRyZXN1IElQLiBTeXN0ZW0gYW50eS1zcGFtb3d5IGp1xbwgbmllIGLEmWR6aWUgbmljIG9kIGNpZWJpZSBkb3N0YXJjemHFgi4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnUG9kZWpyemFueSBzcGFtIHogYWRyZXN1IElQICVzIC0gem9zdGHFgiB6YXRyenltYW55Lic7CiRsYW5nWydyZW9yZGVyJ10gPSAnWm1pZcWEIGtvbGVqbm/Fm8SHIHAmb2FjdXRlO2wnOwokbGFuZ1snY2FuY2VsJ10gPSAnQW51bHVqJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1dhcnRvxZvEhyB1c3Rhd2lvbmE6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdXeXJhxbxlbmllIHJlZ3VsYXJuZSBwb3p3YWxhIGZpbHRyb3dhxIcgd3Bpc3kgbW9kdcWCdSBDYXRhbG9nZXIgcG8gbmF6d2llJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnV3lzb2tvxZtjIGxpc3R5IHdpZWxva3JvdG5lZ28gd3lib3J1JzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdXeXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgbmF6dyB3cGlzJm9hY3V0ZTt3IG1vZHXFgnUgQ2F0YWxvZ2VyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ1d5c29rb8WbxIcgcG9sYSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEb2NlbG93eSBrYXRhbG9nIGRsYSBwbGlrJm9hY3V0ZTt3IHd5dHdhcnphbnljaCBwcnpleiBtb2R1xYI6JzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnWm5hY3puaWsgdcW8eXRrb3duaWthJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTdHJvbmEgcG93cm90dSB6IGxpbmtpZW0gcG8gdXBsb2FkemllJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnV3lzxYJhbm8geiBtb2R1xYJ1IEZvcm1CdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWEgdXBsb2FkdSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1d5xZtsaWogcGxpayBkbyBtb2R1xYJ1IFVwbG9hZHMnOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlJ10gPSAnQWxsb3cgdXBsb2FkIHRvIG92ZXJ3cml0ZSBwcmV2aW91c2x5IGZpbGVzPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ1Nob3VsZCB1cGxvYWRlZCBmaWxlIG92ZXJ3cml0ZSBwcmV2aW91c2x5IHVwbG9hZGVkIGZpbGUgaWYgaXQgaGFzIHRoZSBzYW1lIG5hbWU/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ0FsbG93cyBPdmVyd3JpdGluZyc7CiRsYW5nWydub292ZXJ3cml0ZSddID0gJ05vIE92ZXJ3cml0ZSc7CiRsYW5nWydmaWxlX2FscmVhZHlfZXhpc3RzJ10gPSAnRmlsZSAlcyBhbHJlYWR5IGV4aXN0cywgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlbi4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXSA9ICdGaWxlbmFtZSB0ZW1wbGF0ZSc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ09yaWdpbmFsIGZpbGUgZXh0ZW5zaW9uIChpbmNsdWRlcyB0aGUgJnF1b3Q7LiZxdW90OyknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdTdXBwcmVzcyBmaWxlbmFtZSBpbiBlbWFpbHMgYW5kIGZvcm1zIHRoZSBlbmQgdXNlciB3aWxsIHNlZSc7CiRsYW5nWydmaWxlX3JlbmFtZV9oZWxwJ10gPSAnVG8gcmVuYW1lIGEgZmlsZSB1cG9uIHVwbG9hZGluZywgY3JlYXRlIHRoZSB0ZW1wbGF0ZSBoZXJlLiBMZWF2ZSBibGFuayB0byBwcmVzZXJ2ZSBvcmlnaW5hbCBmaWxlbmFtZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnRMWCdWdvxZvEhyBtYWtzeW1hbG5hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXR5a2lldGEgY2hlY2tib3hhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXR5a2lldGEgcmFkaW9idXR0b25hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZ2R5IHphem5hY3pvbm8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIGdkeSBuaWV6YXpuYWN6b25vJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSBncnVweSBjaGVja2JveCZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTa2Fzb3dhxIcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGVrc3QgZGxhIG9wY2ppICZxdW90O1d5YmllcnogamVkZW4mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hendhIHdhcnRvxZtjaSB6YXpuYWN6ZW5pYSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1RlbWF0IHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYXp3YSBvcGNqaSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdXeXN5xYJhbmEgd2FydG/Fm8SHJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcGNqZSBsaXN0eSByb3p3aWphbG5laic7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3BjamUgbGlzdHkgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0RvY2Vsb3d5IGFkcmVzIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0RvY2Vsb3dhIG5hendhIHBsaWt1JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ1BvbGUgJnF1b3Q7T2QmcXVvdDsgZGxhIGUtbWFpbGEnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1XFvHl3YWogdXByb3N6Y3pvbsSFIHdhbGlkYWNqxJkgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1XFvHl3YWogc3p5YmvEhSB3YWxpZGFjasSZIGRsYSBwb2xhIGVtYWlsIChucC4sIHBvencmb2FjdXRlO2wgbmEgd3Bpc2FuaWUgJnF1b3Q7eEB5JnF1b3Q7IHphbWlhc3Qgc3ByYXdkemFuaWEgc2vFgmFkbmkgdHlwdSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtBZHJlcyBvZCZxdW90OyBkbGEgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnS29kb3dhbmllIHpuYWsmb2FjdXRlO3cgZGxhIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnU3pjemVnJm9hY3V0ZTvFgnkgbGlzdHkgcm96d2lqYWxuZWogZGxhIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOYXp3YSBwbGlrdSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTGluaWEgdHl0dcWCdSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTmF6d2EgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1cyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnR290b3d5IGRvIHdkcm/FvGVuaWEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZWdvdG93eSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU3Ryb25hIHByemVraWVyb3dhbmlhIHBvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdEb2RhaiBwb2xlIG9ic8WCdWdpIGZvcm11bGFyemEsIG9rcmXFm2xhasSFY2UgemFwaXN5d2FuaWUgd3Byb3dhZHpvbnljaCBkYW55Y2guIE1vxbxlc3onOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1xbx5d2FqIHRlZ28gc2tyJm9hY3V0ZTt0dSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnUG9sYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSUQgcG9sYSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Bva2HFvCBhbGlhc3kgcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnWmF6bmFjemVuaWUgdGVnbyBwb2xhIHNwb3dvZHVqZSwgxbxlIGFsaWFzeSBwJm9hY3V0ZTtsIGLEmWTEhSBwb2thenl3YW5lIHBvZGN6YXMgZG9kYXdhbmlhIGx1YiBlZHljamkgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTmF6d2EgcG9sYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0FsaWFzIHBvbGEnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnU3pjemVnJm9hY3V0ZTtseSBncnVweSByYWRpb2J1dHRvbiZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVHlwIHBvbGEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2J5IHN0d29yennEhyBwb2xlIG9ic8WCdWdpIGZvcm11bGFyemEuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0RvZGFqIG5vd3kgZm9ybXVsYXJ6JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Bva2F6dWogd2Vyc2rEmSBtb2R1xYJ1IEtyZWF0b3JhIEZvcm11bGFyenk/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGEgb3BjamEgd3N0YXdpIG51bWVyIHdlcnNqaSBtb2R1xYJ1IEtyZWF0b3JhIEZvcm11bGFyenkgKEZvcm0gQnVpbGRlcikgamFrbyBrb21lbnRhcnogdyB0cmXFm2NpIHN0cm9ueSwgY28gdcWCYXR3aSBkZWJ1Z293YW5pZSBpIGFuYWxpesSZIHN5c3RlbXUuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdEb2RhaiBub3dlIHBvbGUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGVrc3QgcHJ6eWNpc2t1IHd5c8WCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnVGVrc3QgcHJ6eWNpc2t1JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnRG9kYcSHIHNrcnlwdCBKYXZhc2NyaXB0IGRvIG9zdGF0ZWN6bmVnbyBwcnp5Y2lza3Ugd3lzecWCYW5pYSBmb3JtdWxhcnphLCBieSB1bmllbW/FvGxpd2nEhyB3aWVsb2tyb3RuZSBqZWdvIG5hY2nFm25pxJljaWU/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdEb2RhaiBza3J5cHQgYmV6cGllY3plxYRzdHdhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZWtzdCBwcnp5Y2lza3UgJnF1b3Q7TmFzdMSZcG5hIHN0cm9uYSZxdW90OyAodcW8eXdhbnkgcHJ6eSB3aWVsb3N0cm9uaWNvd3ljaCBmb3JtdWxhcnphY2gpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZWtzdCBwcnp5Y2lza3UgJnF1b3Q7UG9wcnplZG5pYSBzdHJvbmEmcXVvdDsgKHXFvHl3YW55IHByenkgd2llbG9zdHJvbmljb3d5Y2ggZm9ybXVsYXJ6YWNoKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnV2FsaWRhY2phIHBvbGEnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGaWVsZCB0byBWYWxpZGF0ZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdLbGFzYSBDU1MgZGxhIHRlZ28gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdLbGFzYSBDU1MgZGxhIHRlZ28gcG9sYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBkdXJpbmcgZm9ybSB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnWm5hayBvem5hY3phasSFY3kgcG9sZSB3eW1hZ2FuZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1d5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdXeW1hZ2FqIHd5cGXFgm5pZW5pYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1VrcnlqIGV0eWtpZXTEmSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdVa3J5aiBuYXp3xJkgdGVnbyBwb2xhIHcgd2lkb2t1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTWFrc3ltYWxuYSBkxYJ1Z2/Fm8SHIHBvbGEgeiB0cmXFm2NpxIUgKDAgbHViIHB1c3RlIG96bmFjemEgYnJhayBsaW1pdHUpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0eWN6bnkgdGVrc3QgZG8gd3nFm3dpZXRsZW5pYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ2V4IChyZWd1xYJrYSkgZG8gd2FsaWRhY2ppJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdMaXN0YSBsaW5paSBkbyB3ecWbd2lldGxlbmlhJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ1R5bGtvIGRvIG9kY3p5dHUnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0JleiB3YXJ0b8WbY2kgZG9tecWbbG55JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU3Ryb25hIHByemVraWVyb3dhbmlhIHBvIHphdHdpZXJkemVuaXUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1d5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnVWtyeWogYsWCxJlkeSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVHlwIHd5xZt3aWV0bGFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnVXN0YXcgd2lhZG9tb8WbY2kgbyBixYLEmWRhY2ggaSBkemlhxYJhbml1IHN5c3RlbXUgKGRlYnVnKSBuaWV3aWRvY3puZSBkbGEgdcW8eXRrb3duaWsmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdTemFibG9uIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzeW1hbG55IHJvem1pYXIgcGxpa3Ugd2dyeXdhbmVnbyAoa2lsb2JhanR5KSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RlbiBsaW1pdCBqZXN0IGRvZGF0a293eW0gbGltaXRlbSAtIG5hIHBld25vIFR3Jm9hY3V0ZTtqIHNlcndlciBsdWIgasSZenlrIFBIUCBtYSBzd29qZSB3xYJhc25lIG9ncmFuaWN6ZW5pYS4nOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGVzIGludG8nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdEb3p3b2xvbmUgcm96c3plcnplbmlhJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdXcGlzeiBsaXN0xJkgcm96c3plcnplxYQgcG8gcHJ6ZWNpbmt1LCBiZXoga3JvcGVrIChucC4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNqZSBixJlkxIUgaWdub3Jvd2FuZS4gUG96b3N0YXdpYWrEhWMgdG8gcG9sZSBwdXN0ZSAtIG5pZSBixJlkemllIG9ncmFuaWN6ZcWEIHcgc3lzdGVtaWUhJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdXecWbd2lldGxhxIcgZG96d29sb25lIHJvenN6ZXJ6ZW5pYT8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnV3nFm3dpZXRsIGthxbxkZSBvZ3JhbmljemVuaWUgcm96bWlhcnUgaSByb3pzemVyemVuaWEgcHJ6eSBwb2xhY2ggd2dyeXdhbmlhIHBsaWsmb2FjdXRlO3c/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdTemFibG9uIGRvIHXFvHljaWEgcHJ6eSBXecWbd2lldGxhbml1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTdHJvbmEgJXMgeiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnVG8gcG9sZSBuaWUgbWEgb3BjamkgemFhd2Fuc293YW55Y2gnOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0IGluZm9ybWFjamkgcHJ6eSBuaWV3cGlzYW5laiB3YXJ0b8WbY2kgcG9sYSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTGlzdGEgbmFkIGZvcm11bGFyemVtLCB1c3ByYXduaWFqxIVjYSBkb2Rhd2FuaWUgbm93eWNoIHAmb2FjdXRlO2wuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnV8WCxIVjeiBsaXN0xJkgc3p5YmtpZWdvIHd5YmllcmFuaWEgbm93ZWdvIHBvbGEgZGxhIGZvcm11bGFyenk/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTenlia2kga3JlYXRvciBub3d5Y2ggcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1phem5hY3phasSFYyB0xJkgb3BjasSZIHBvendvbGlzeiBuYSB3eXPFgmFuaWUgdHlsa28gMTAgZW1haWxpIHogamVkbmVnbyBhZHJlc3UgSVAgLSB3IGNpxIVndSBqZWRuZWogZ29kemlueS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnV8WCxIVjeiBwcnltaXR5d25lIG9wY2plIGFudHktc3BhbW93ZT8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Bva2F6IElEIHAmb2FjdXRlO2wnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnWmF6bmFjemFqxIVjIHTEmSBvcGNqxJkgd3nFm3dpZXRsaSBudW1lciBJRCBnZHkgZG9kYWplc3ogbHViIGVkeXR1amVzeiBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1dncmFqIGZvcm11bGFyeiB6IHBsaWt1IFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVcW8eXdhaiB0ZWogbmF6d3kgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnSW1wb3J0IGZvcm11bGFyemEgWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVcW8eXdhaiB0ZWdvIGFsaWFzdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcnVqIGVtYWlsIGZvcm1hdHUgSFRNTD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdXeXBlxYJuaWHEhyBhdXRvbWF0eWN6bmllPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdHljem5pZSBsaW5rdWplIGRvIHN0cm9ueSBuYSBrdCZvYWN1dGU7cmVqIGplc3QgZm9ybXVsYXJ6ICh0YSBvcGNqYSBuYWRwaXN1amUgcG9uacW8c3rEhSknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRHVuecWbbG55IFVSTCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEb215xZtsbnkgdGVrc3QgbGlua3UnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgZG8gc3Ryb255JzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ01vxbxlc3ogdcW8ecSHIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gZG8gemFiZXpwaWVjem5pYSBmb3JtdWxhcnphIHBvIHphaW5zdGFsb3dhbmlhIG1vZHXFgnUgQ2FwdGNoYS4gV2nEmWNlaiBpbmZvcm1hY2ppIG1vxbxlc3ogem5hbGXFusSHIG5hIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnN0cm9uaWUgcHJvamVrdHU8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1XFvHnEhyBDYXB0Y2hhIGRvIHplYmV6cGllY3plbmlhIGZvcm11bGFyemE/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdaYXpuYWN6IHTEmSBvcGNqxJkgYWJ5IHXFvHl3YcSHIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1dwaXN6IHRla3N0IHogb2JyYXprYSB3IHRvIHBvbGUgKHdpZWxrb8WbxIcgbGl0ZXIgbWEgem5hY3plbmllKSc7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdLb211bmlrYXQgZ2R5IGtvZCBDYXB0Y2hhIGplc3QgbmllcG9wcmF3bnknOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJzx1bD48bGk+VGVrc3QgeiBvYnJhemthIGplc3QgbmllcG9wcmF3bnkuPC9sPjwvdWw+JzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ3Rla3N0IHBvbW9jeSB3ecWbd2lldGxhbnkgdyBmb3JtdWxhcnp1JzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ05pZSB6YXBpc3VqIHptaWVubnljaCBkbGEgbmllemF6bmFjem9ueWNoIGNoZWNrYm94Jm9hY3V0ZTt3JzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnWmF6bmFjeiB0byBwb2xlIGplxZtsaSBjaGNlc3ogYWJ5IHR5bGtvIHphem5hY3pvbmUgY2hlY2tib3h5IHp3cmFjYcWCeSB3YXJ0b8WbY2knOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0V0eWtpZXRhIGxpbmt1JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdEb2NlbG93eSBVUkwgbGlua3UnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdaYXpuYWN6b255IGRvbXnFm2xuaWU/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVxbx5d2FqIHplZ2FyYSAyNC1nb2R6aW5uZWdvPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1ByemV0d2FyemHEhyB0YWdpIFNtYXJ0eSB3IHR5bSBwb2x1JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdXaWVyc3plIChtb8W8ZSBiecSHIG5hZHBpc2FuZSBwcnpleiBzdHlsZSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdLb2x1bW55IChtb8W8ZSBiecSHIG5hZHBpc2FuZSBwcnpleiBzdHlsZSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ1N6Y3plZyZvYWN1dGU7xYJ5IGfFgm93bmUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnRGVmYXVsdCB0byBibGFuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdEZWZhdWx0IHRvIGJsYW5rICh1bmNoZWNrIHRvIGRlZmF1bHQgdG8gdG9kYXkmIzAzOTtzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdXecWbd2lldGxhxIcgbmF6d8SZIHXFvHl0a293bmlrYT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnV3nFm3dpZXRsYcSHIGltacSZIHXFvHl0a293bmlrYT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdXecWbd2lldGxhxIcgbmF6d2lza28gdcW8eXRrb3duaWthPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0xpbWl0dWogbGlzdMSZIHXFvHl0a293bmlrJm9hY3V0ZTt3IGRvIGN6xYJvbmsmb2FjdXRlO3cgbmFzdMSZcHVqxIVjeWNoIGdydXAnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIHN0b3JlZCBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdGUgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UuIChJZiB1c2luZyBPcGVuU1NMLCB0aGlzIGlzIHRoZSBwYXNzcGhyYXNlIGZvciB0aGUgcHJpdmF0ZSBrZXkpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1N0b3JhZ2UgRW5jcnlwdGlvbiBVbmF2YWlsYWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBDVVJMIHN1cHBvcnQgYWN0aXZlIGluIHlvdXIgUEhQIGluc3RhbGwuIFNlZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdSdW4gaW4gTUxFIE1vZGUnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ0NoYW5nZXMvc3VwcG9ydCBmb3IgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiBmb3JrLiBEbyBub3QgY2hlY2sgdGhpcyBpZiB5b3UgYXJlIG5vdCBydW5uaW5nIHRoZSBNTEUgdmVyc2lvbi4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnRW5zdXJlIHRoYXQgeW91IHNlbGVjdCB0aGUgcHJpdmF0ZSBrZXkgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IgdGhlIGNlcnRpZmljYXRlIHlvdSBhcmUgdXNpbmcgZm9yIGVuY3J5cHRpb24hJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDaGVjayB0aGlzIHRvIGVuY3J5cHQgdGhlIHN0b3JlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IChidXQgbm90IGltcG9zc2libGUpIGZvciBoYWNrZXJzIHRvIHZpZXcgdGhlIGluZm9ybWF0aW9uLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ1RoZSBvcHRpb25zIGJlbG93IG9ubHkgYXBwbHkgaWYgeW91IGFyZSB1c2luZyB0aGUgT3BlblNTTCBFbmNyeXB0aW9uIGxpYnJhcnknOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIExpYnJhcnknOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciBiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIEZyb250ZW5kIFVzZXIgbW9kdWxlIHRvIGNvbm5lY3QgYSBmb3JtIGFuZCBpdHMgZGF0YSB0byBhIHNwZWNpZmljIHVzZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybSYjMDM5O3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnRW5jcnlwdGlvbic7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/IChkbyBub3QgZG8gdGhpcyBpZiB5b3UgYXJlIGdvaW5nIHRvIHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0VudGlyZSBVUkwsIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgcGF0aCAoZS5nLiwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnRm9ybSBzdWJtaXNzaW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdGb3JtIG1ldGhvZCc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICZxdW90OyVzJnF1b3Q7IHRvIGZvcm0gc3VibWlzc2lvbiB2YXJpYWJsZSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnQWRkaXRpb25hbCBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ0FueXRoaW5nIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBzdWJtaXNzaW9uIHBheWxvYWQsIGluIFVSTC1lbmNvZGVkIGZvcm0gKC5lLmcsICZxdW90O3VzZXI9c3RldmUram9icyZhbXA7ZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ0luY2x1ZGUgZmllbGQgaW4gU3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnRGF0ZSBjb21wb25lbnQgZmllbGQgb3JkZXIgKGZvciBpbnB1dCknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIGZvcm1fYnVpbGRlciBkaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddID0gJ1VzZSAmcXVvdDttJnF1b3Q7IGZvciBNb250aCwgJnF1b3Q7ZCZxdW90OyBmb3IgRGF5LCBhbmQgJnF1b3Q7eSZxdW90OyBmb3IgWWVhci4gU2VwYXJhdGUgdGhlIGl0ZW1zIGJ5IGh5cGhlbnMuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdUeWxrbyB3IGdydXBpZSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdXecWbd2lldGxpxIcgdcW8eXRrb3duaWtvd2k/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXNlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGluc3RlYWQgb2Ygc3RhdGljJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdIb3cgbWFueSBudW1iZXJzIHRvIGdlbmVyYXRlIGluIHByb2Nlc3MnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVG8gcG9sZSBtb8W8ZSBieWMgcHVzdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnWm1pZW5uZSBkbGEgc3phYmxvbnUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnRG9zdGVwbmUgem1pZW5uZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnWm1pZW5uYSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRhIHd5c8WCYW5pYSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnVHcmb2FjdXRlO2ogc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0FkcmVzIElQIHXFvHl0a293bmlrYSwgdyBjemFzaWUgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBzdHJvbnkgemF3aWVyYWrEhWNlaiBmb3JtdWxhcnonOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnV2Vyc2phIG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1snaGVscF90YWInXSA9ICdabmFrIHRhYnVsYWNqaSc7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXR5d25lIG5hend5IHAmb2FjdXRlO2wgZm9ybXVsYXJ6YSBtb2fEhSBiecSHIHXFvHl3YW5lIHphbWllbm5pZSB6IG5vcm1hbG55bWkgbmF6d2FtaS4gSmVzdCB0byBzemN6ZWcmb2FjdXRlO2xuaWUgcHJ6eWRhdG5lIHByenkgdXp5d2FuaXUgdGFnJm9hY3V0ZTt3IFNtYXJ0eSAoZ2R5xbwgdGVuIG1hIHByb2JsZW15IHogb2JzxYJ1Z8SFIHpuYWsmb2FjdXRlO3cgQVNDSUkgc3BvemEgemFrcmVzdSAzMi0xMjYpLiA8YnIgLz5Jbm5lIHBvbGEgYsSZZMSFIGRvc3RlcG5lIGdkeSBkb2Rhc3ogamUgZG8gZm9ybXVsYXJ6YS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdBYnkgdXp5c2thxIcgZG9zdMSZcCBkbyB3YXJ0b8WbY2kgcCZvYWN1dGU7bCBmb3JtdWxhcnphIG1vxbxlc3ogdcW8ecSHIG5vdGFjamkgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIGdkemllIGthxbxkZSBwb2xlIGplc3Qgb2JpZWt0ZW0gemF3aWVyYWrEhWN5bTo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pk5hendhIHBvbGE8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5UeXAgcG9sYTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pldld27EmXRyem5lIElEIHBvbGE8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+V2FydG/Fm8SHIGN6eXRlbG7EhSBkbGEgY3rFgm93aWVrYTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+VGFibGljYSB3YXJ0b8WbY2kgcG9sYTwvdGQ+PC90cj48L3RhYmxlPg0KPGVtPk5hIHByenlrxYJhZDo8L2VtPiwgbW/FvGVzeiB1xbx5xIcgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU3ByYXdkxbogPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+ZG9rdW1lbnRhY2ppIFBIUDwvYT4gYWJ5IHV6eXNrYcSHIHBvbW9jLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdabWllbm5hJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ1BvbGUgcmVwcmV6ZW50b3dhbmUnOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSBmaWxlIGxvY2F0ZWQgaW4gdGhlIEZvcm1CdWlsZGVyL3RlbXBsYXRlcy8gZm9sZGVyLiBUaGlzIGZpZWxkIGlzIGlnbm9yZWQgaWYgeW91IHVzZSBUWFQgYXMgeW91ciBmaWxlIHR5cGUuJzsKJGxhbmdbJ2hlbHBfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdCYXNpYzogVXNlIHRoZSB0ZXh0YXJlYSBiZWxvdyB0byBsYXlvdXQgdGhlIGZpZWxkIG5hbWVzL3ZhbHVlcyBpbiBhIHNpbmdsZSBibG9jay48YnIgLz4NCkFkdmFuY2VkOiBTcGVjaWZ5IFNtYXJ0eSB2YXJpYWJsZXMgaW4gdGhlIFJURiBUZW1wbGF0ZSBGaWxlIGFzIHlvdSB3b3VsZCBiZWxvdywgYnV0IGFycmFuZ2UgdGhlbSBob3dldmVyIHlvdSBsaWtlIGFuZCBhZGQgZm9ybWF0dGluZy48YnIgLz4NCiZuYnNwO1lvdSBjYW4gc3RpbGwgdXNlIHRoZSAlJUhFQURFUiUlIGFuZCAlJUZPT1RFUiUlIHNlY3Rpb25zIGluIHRoZSBSVEYgZmlsZS4nOwokbGFuZ1snaGVscF91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgSGVhZGVyIFRlbXBsYXRlLjxiciAvPg0KRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRklFTERTJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlIGlmIFJURiBUZW1wbGF0ZSBUeXBlIGlzIHNldCB0byAmcXVvdDtCYXNpYyZxdW90Oy48YnIgLz4NClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICZxdW90O1JURiZxdW90OyBhcyBGaWxlIFR5cGUgYW5kICZxdW90O0FkdmFuY2VkJnF1b3Q7IGFzIFJURiBUZW1wbGF0ZSBUeXBlLic7CiRsYW5nWydoZWxwX2ZpbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVIRUFERVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZPT1RFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFdyJm9hY3V0ZTvEhyBkbyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ1N0dyZvYWN1dGU7cnogcHJ6eWvFgmFkb3d5IHN6YWJsb24gSFRNTCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ1N0dyZvYWN1dGU7cnogcHJ6eWvFgmFkb3d5IHN6YWJsb24gbmFnxYImb2FjdXRlO3drYSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgRm9vdGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnU3R3Jm9hY3V0ZTtyeiBwcnp5a8WCYWRvd3kgbmFnxYImb2FjdXRlO3dlayc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd6bmFrIHRhYnVsYWNqaSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnU3phYmxvbiBqZWRuZWogbGluaWkgcGxpa3Ugd3luaWtvd2Vnbyc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1N6YWJsb24gbmFnxYImb2FjdXRlO3drYSBwbGlrdSB3eW5pa293ZWdvJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBmb290ZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBSVEYgZmlsZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdHlwZSddID0gJ0Nob29zZSBhIGZpbGUgdHlwZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdDaG9vc2UgYW4gUlRGIHRlbXBsYXRlIHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBkbyBrbGlrbm1pxJljaWEgYWJ5IHBvdHdpZXJkemnEhyBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgKHpvYmFjeiB6YWvFgmFka8SZIFphYXdhbnNvd2FuZSwgamXFm2xpIGNoY2VzeiB1ennEhyB0YWcmb2FjdXRlO3cgU21hcnR5KSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0Zvcm1hdCBkYXR5ICg8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5mb3JtYXR5IGRhdHkgdyBQSFA8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1XFvHl3YcSHIGVkeXRvcmEgV1lTSVdZRyBkbGEgcCZvYWN1dGU7bCB0ZWtzdG93eWNoICh0eWxrbyB3IEFkbWluaWUpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ1BvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdQcnp5Y2lza2kgYWtjamkgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1BvbGUgc29ydHVqxIVjZSAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1N0YXJ0IHpha3Jlc3UgbGF0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnS29uaWVjIHpha3Jlc3UgbGF0JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RvbXnFm2xueSByb2snOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoVXN0YXcgamFrbyAtMSBieSBkb215xZtsbnltIGJ5xYIgb2JlY255IHJvayknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ1BvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ09kcG93aWVkxbogZG8gd3nFm3dpZXRsZW5pYSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdGUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IHN1Ym1pdHRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnV3nFm3dpZXRsIHN6YWJsb24gd3lzecWCYW5pYSc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUHJ6ZWtpZXJ1aiBkbyBzdHJvbnkgc2Vyd2lzdSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRG9jZWxvd2Egc3Ryb25hJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ05hend5IHAmb2FjdXRlO2wgc8SFIHd5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnV3ltYWdhaiwgxbxlYnkga2HFvGUgcG9sZSBtaWHFgm8gc3dvasSFIG5henfEmT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdXeW1hZ2FqIHVuaWthbG55Y2ggbmF6dyBwJm9hY3V0ZTtsJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdXeW1hZ2FqLCDFvGVieSB3c3p5c3RraWUgbmF6d3kgcCZvYWN1dGU7bCBiecWCeSB1bmlrYWxuZSAociZvYWN1dGU7xbxuacWCeSBzacSZIG9kIHNpZWJpZSk/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ByemVncnVwdWogcG9sYSc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnWmHFgmFkdWogc3phYmxvbic7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdUZWtzdCBwcnp5Y2lza3UgJnF1b3Q7RG9kYWomcXVvdDsnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O1NrYXN1aiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ1Rla3N0IHBvbW9jeSB3ecWbd2lldGxhbnkgcHJ6eSB0eW0gcG9sdSc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXR1aiB6bWllbm5lIGpha28gbnVtZXJ5IGx1YiDFgmHFhGN1Y2h5IHpuYWtvd2UgKHN0cmluZ2kpJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnUG9yesSFZGVrIGludGVycHJldG93YW5pYSc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSmXFvGVsaSBpc3RuaWVqZSB3acSZY2VqIG5pxbwgamVkbm8gcG9sZSBvYmxpY3plbmlvd2UsIHPEhSBvbmUgcHJ6ZXR3YXJ6YW5lIG9kIG5ham1uaWVqc3plZ28gZG8gbmFqd2nEmWtzemVnbyBudW1lcnUgdyBrb2xlam5vxZtjaSc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJpbmcgKG5vIHNwYWNlcyBiZXR3ZWVuIGZpZWxkcyk/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZG8gb2JsaWN6ZW5pYSc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQ29tcHV0ZWQvUEhQJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ8WBYcWEY3VjaCB6bmFrb3d5IChzdHJpbmcpJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcnljem5lJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnV3nFm3dpZXRsYWogZm9ybXVsYXJ6IHcgdHJlxZtjaSBzdHJvbnkgKGlubGluZSk/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdXecWbd2lldGxhbmllIHcgdHJlxZtjaSBvem5hY3phLCDFvGUgZm9ybXVsYXJ6IHphc3TEmXB1amUgem5hY3puaWsge2Ntc19tb2R1bGV9LCBiZXogdGVnbyB1c3Rhd2llbmlhIGZvcm11bGFyeiB6YXN0xIVwaSAoe2NvbnRlbnR9KS4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1dhcnRvxZvEhyBkb215xZtsbmEgZGxhIHBvbGEnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ1d5Y3p5xZtjacSHIHdhcnRvxZvEhyBkb215xZtsbsSFIHBvIGtsaWtuacSZY2l1Pyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdaYXpuYWN6IHTEmSBvcGNqxJkgYnkgc2lsbmlrIHd5a2Fzb3dhxYIgZG9tecWbbG7EhSB3YXJ0b8WbxIcga2llZHkgdcW8eXRrb3duaWsgbmFjacWbbmllIG5hIHRvIHBvbGUgdyBmb3JtdWxhcnp1JzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnU2thc3VqIHBsaWsgeiBzZXJ3ZXJhIHBvIHByemV0d29yemVuaXUgKHd5c8WCYW5pdSBtYWlsYSknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZGxhIHRlZ28gcG9sYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdVxbx5aiBwZcWCbmVnbyB3eXdvxYJhbmlhIEphdmFzY3JpcHQsd8WCxIVjemFqxIVjIHd5ZGFyemVuaWUsIGt0Jm9hY3V0ZTtyZSBjaGNlc3ogxZtsZWR6acSHICwgbnAuIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGRsYSB3eXN5xYJhbmlhIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnTmllIHd5YmllcmFqIHR1dGFqIGRvd29sbmVnbyBhZHJlc3UtIHdpZWx1IGRvc3Rhd2Mmb2FjdXRlO3cgaW50ZXJuZXRvd3ljaCBuaWUgZG9zdGFyY3p5PGJyIC8+d2lhZG9tb8WbY2kgamXFm2xpIHXFvHlqZXN6IGRvbWVueSBpbm5laiBuacW8IFR3b2phIHfFgmFzbmE8YnIgLz4odcW8eWogbmEgcHJ6a8WCYWQgIGFkbWluQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdQb3RyemVidWplc3ogbm93ZWdvIHR5cHUgcG9sYT8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1phIGR1xbxvIHR5cCZvYWN1dGU7dyBwJm9hY3V0ZTtsPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdQcnplxYLEhWN6IHcgVHJ5YiBaYWF3YW5zb3dhbnknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdQcnplxYLEhWN6IHcgVHJ5YiBQcm9zdHknOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnS2F0YWxvZyBnZHppZSB6YXBpc2FueSBixJlkemllIHBsaWsnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUbyBtdXNpIGJ5xIcga2F0YWxvZyB6IHByYXdhbWkgemFwaXN1IGRsYSBzZXJ3ZXJhLjxiciAvPkplxZtsaSBtYXN6IHfEhXRwbGl3b8WbY2kgdXN0YXcgbWFza8SZIDc3Ny48YnIgLz5TcHJhd2TFuiB0YWvFvGUgY3p5IG5pZSBtYXN6IHVzdGF3aW9ueWNoIHJlc3J0eWtjamkgemFwaXN1IHcga2F0YWxvZ2FjaCB3IGtvbmZpZ3VyYWNqaSBQSFAuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdXeXPFgmHEhyB1xbx5dGtvd25pa293aSBrb3BpxJkgZm9ybXVsYXJ6YT8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0V0eWtpZXRhIGRsYSBDaGVja2JveCAoamXFm2xpIHXFvHl0a293bmlrIGdvIHd5YmllcnplKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1d5xZtsaWogbWkga29wacSZIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ1BvendvbGnEhyBhYnkgdHl0dcWCIHpvc3RhxYIgbmFkcGlzYW55Pyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ1d5xZt3aWV0bCBkxYJ1Z2/Fm8SHJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdXciZvYWN1dGU7YyBkbyBzdHJvbnkgZ8WCJm9hY3V0ZTt3bmVqIG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ011c2lzeiB3eWJyYcSHICZxdW90O3phcGlzeiZxdW90OywgYWJ5IHptaWFueSB3IGtvbGVqbm/Fm2NpIHAmb2FjdXRlO2wgem9zdGHFgnkgemFjaG93YW5lLic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ1VzZSBIVE1MNSBwbGFjZWhvbGRlciB0ZXh0IGluc3RlYWQgb2YgSmF2YXNjcmlwdCc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUhJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05pZ2R5JzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0RhaiB1xbx5dGtvd25pa293aSB3eWImb2FjdXRlO3IgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnWmF3c3plJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnJnF1b3Q7RnJvbSZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCb3RoICZxdW90O0Zyb20mcXVvdDsgYW5kICZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm91cCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdQaWNrIGEgY2F0ZWdvcnkgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdFbmQgeWVhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eSBkYXRhIG9yIGxvZ2ljIHRoYXQgaXMgbWVhbnQgdG8gYmUgc2VudCB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW4mIzAzOTt0IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ0luY2x1ZGUgbGFiZWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCddID0gJ0VuYWJsaW5nIHRoaXMgaW5jbHVkZXMgbGFiZWxzIHRvIG91dHB1dC4gZXhhbXBsZSAtIGxhYmVsOiB2YWx1ZSxsYWJlbDI6IHZhbHVlMic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5ncyddID0gJ0xpbmsgdGhpcyBmaWVsZCB0byBpdCYjMDM5O3Mgc2libGluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdCYjMDM5O3Mgc2libGluZy4gTWFrZXMgcG9zc2libGUgY29udHJvbGxpbmcgdGhpcyBmaWVsZCB3aXRoIHNlbGVjdGVkIHNpYmxpbmcgY29udHJvbHMuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJ10gPSAnSGlkZSBjb250cm9sIGJ1dHRvbnMnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ0hpZGVzIGZyb250ZW5kIGNvbnRyb2wgYnV0dG9ucyBvZiB0aGlzIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9ub3RlJ10gPSAnTm90ZSc7CiRsYW5nWyd0aXRsZV9jaGFuZ2luZ190cmlnZ2Vyc19yZWluZGV4J10gPSAnQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmVpbmRleCBvZiAqYWxsKiBzYXZlZCByZWNvcmRzLCBzbyBpdCBjb3VsZCB0YWtlIGEgd2hpbGUuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ0F0dGVtcHRlZCB1cGxvYWQgb2YgaWxsZWdhbCBmaWxlIHR5cGUgKCVzKSBmcm9tICVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGUnXSA9ICdNYWtlIHJlY29yZHMgYWNjZXNzaWJsZSB0byBTZWFyY2ggTW9kdWxlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0NoZWNraW5nIHRoaXMgd2lsbCBtYWtlIGFsbCBzdWJtaXR0ZWQgZGF0YSBhY2Nlc3NpYmxlIHRvIHRoZSBTZWFyY2ggTW9kdWxlLiBETyBOT1QgdXNlIHRoaXMgaWYgeW91IGVuY3J5cHQgeW91ciBkYXRhIC0tIHRoZSBpbmZvcm1hdGlvbiBnZXRzIGV4cG9zZWQgdG8gc2VhcmNoIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuY3J5cHRlZCEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J10gPSAnJXMgKG91dHNpZGUgd2ViIHJvb3QpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnRWRpdGFibGUgaW4gRm9ybUJyb3dzZXIgQWRtaW4/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdVc2VyIGRlZmluZWQgdGFnICVzIHJldHVybmVkIGFuIGVycm9yLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPk1vZHXFgiBDYXRhbG9nZXIgamVzdCBuaWV6YWluc3RhbG93YW55IGx1YiB3ecWCxIVjem9ueS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1VXQUdBISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3phYmxvbiBkb215xZtsbnknOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gdGFiZWxraSwgdHl0dcWCeSBwbyBsZXdlaic7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdTemFibG9uIHRhYmVsa2ksIHR5dHXFgiBuYSBnJm9hY3V0ZTtyemUnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU3phYmxvbiB6ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0N6eSBuYXBld25vIGNoY2VzeiBuYWRwaXNhxIcgc3cmb2FjdXRlO2ogc3phYmxvbiB3eWJyYW55bSBzemFibG9uZW0/IChOYXdldCBqZcWbbGkgbmFjacWbbmllc3ogT0ssIGLEmWR6aWVzeiBtdXNpYcWCIHphcGlzYWMgem1pYW55KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdCxYLEhWQgcHJ6eSBvYmxpY3phbml1IHdhcnRvxZtjaSAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0JyYWsgaW5mb3JtYWNqaSBvIEhUVFBfUkVGRVJFUic7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnQsWCxIVkIHdhbGlkYWNqaSEgVXBld25paiBzacSZLCDFvGUgc2tvcGlvd2HFgmXFmyBwb3ByYXduaWUgYWRyZXMgeiB3aWFkb21vxZtjaSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0LFgsSFZCB3YWxpZGFjamkhIFVwZXduaWogc2nEmSwgxbxlIHNrb3Bpb3dhxYJlxZsgcG9wcmF3bmllIGFkcmVzIHogd2lhZG9tb8WbY2khJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdCxYLEhWQgd2FsaWRhY2ppISBCcmFrIHBvbGEgZS1tYWlsIHcgZm9ybXVsYXJ6dSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0RvZGF3YWosIGVkeXR1aiBpIHphcnrEhWR6YWogaW50ZXJha3R5d255bWkgZm9ybXVsYXJ6YW1pJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSmXFvGVsaSB1xbx5d2FzeiBld2FsdWFjamkgY2nEhWcmb2FjdXRlO3csIGplZHluxIUgb3BlcmFjasSFIGplc3QgxYLEhWN6ZW5pZSAoKyksIGplxZtsaSB6YcWbIHXFvHl3YXN6IGV3YWx1YWNqaSBudW1lcnljem5laiBtb8W8ZXN6IHNrb3J6eXN0YWMgeiBwb2RzdGF3b3d5Y2ggZHppYcWCYcWEIG1hdGVtYXR5Y3pueWNoICgrLCAtLCAqLCAvKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnVXNpbmcgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+DQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4NCgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnQWRkIHlvdXIgdGFnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ1N0eWN6ZcWEJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdMdXR5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJ6ZWMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0t3aWVjaWXFhCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdDemVyd2llYyc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdMaXBpZWMnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdTaWVycGllxYQnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdXcnplc2llxYQnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnUGHFumR6aWVybmlrJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdMaXN0b3BhZCc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnR3J1ZHppZcWEJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4nOwokbGFuZ1snQVgnXSA9ICdBbGFuZCBJc2xhbmRzJzsKJGxhbmdbJ0FMJ10gPSAnQWxiYW5pYSc7CiRsYW5nWydEWiddID0gJ0FsZ2VyaWEnOwokbGFuZ1snQVMnXSA9ICdBbWVyaWNhbiBTYW1vYSc7CiRsYW5nWydBRCddID0gJ0FuZG9ycmEnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEnOwokbGFuZ1snQUknXSA9ICdBbmd1aWxsYSc7CiRsYW5nWydBUSddID0gJ0FudGFyY3RpY2EnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIGFuZCBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5hJzsKJGxhbmdbJ0FNJ10gPSAnQXJtZW5pYSc7CiRsYW5nWydBVyddID0gJ0FydWJhJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGlhJzsKJGxhbmdbJ0FUJ10gPSAnQXVzdHJpYSc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlqYW4nOwokbGFuZ1snQlMnXSA9ICdCYWhhbWFzJzsKJGxhbmdbJ0JIJ10gPSAnQmFocmFpbic7CiRsYW5nWydCQiddID0gJ0JhcmJhZG9zJzsKJGxhbmdbJ0JEJ10gPSAnQmFuZ2xhZGVzaCc7CiRsYW5nWydCWSddID0gJ0JlbGFydXMnOwokbGFuZ1snQkUnXSA9ICdCZWxnaXVtJzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmlhJzsKJGxhbmdbJ0JBJ10gPSAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSc7CiRsYW5nWydCViddID0gJ0JvdXZldCBJc2xhbmQnOwokbGFuZ1snQlInXSA9ICdCcmF6aWwnOwokbGFuZ1snSU8nXSA9ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmlhJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvJzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSc7CiRsYW5nWydLSCddID0gJ0NhbWJvZGlhJzsKJGxhbmdbJ0NNJ10gPSAnQ2FtZXJvb24nOwokbGFuZ1snQ0EnXSA9ICdDYW5hZGEnOwokbGFuZ1snQ1YnXSA9ICdDYXBlIFZlcmRlJzsKJGxhbmdbJ0tZJ10gPSAnQ2F5bWFuIElzbGFuZHMnOwokbGFuZ1snQ0YnXSA9ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVEQnXSA9ICdDaGFkJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGUnOwokbGFuZ1snQ04nXSA9ICdDaGluYSc7CiRsYW5nWydDWCddID0gJ0NocmlzdG1hcyBJc2xhbmQnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyc7CiRsYW5nWydDTyddID0gJ0NvbG9tYmlhJzsKJGxhbmdbJ0tNJ10gPSAnQ29tb3Jvcyc7CiRsYW5nWydDRyddID0gJ0NvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnQ29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJzsKJGxhbmdbJ0NLJ10gPSAnQ29vayBJc2xhbmRzJzsKJGxhbmdbJ0NSJ10gPSAnQ29zdGEgUmljYSc7CiRsYW5nWydDSSddID0gJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJzsKJGxhbmdbJ0hSJ10gPSAnQ3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSc7CiRsYW5nWydDWSddID0gJ0N5cHJ1cyc7CiRsYW5nWydDWiddID0gJ0N6ZWNoIFJlcHVibGljJzsKJGxhbmdbJ0RLJ10gPSAnRGVubWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJzsKJGxhbmdbJ0RNJ10gPSAnRG9taW5pY2EnOwokbGFuZ1snRE8nXSA9ICdEb21pbmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVFAnXSA9ICdFYXN0IFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvcic7CiRsYW5nWydFRyddID0gJ0VneXB0JzsKJGxhbmdbJ1NWJ10gPSAnRWwgU2FsdmFkb3InOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydFUiddID0gJ0VyaXRyZWEnOwokbGFuZ1snRUUnXSA9ICdFc3RvbmlhJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWEnOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXSA9ICdGYXJvZSBJc2xhbmRzJzsKJGxhbmdbJ0ZKJ10gPSAnRmlqaSc7CiRsYW5nWydGSSddID0gJ0ZpbmxhbmQnOwokbGFuZ1snRlInXSA9ICdGcmFuY2UnOwokbGFuZ1snRlgnXSA9ICdGcmFuY2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSc7CiRsYW5nWydQRiddID0gJ0ZyZW5jaCBQb2x5bmVzaWEnOwokbGFuZ1snVEYnXSA9ICdGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMnOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24nOwokbGFuZ1snR00nXSA9ICdHYW1iaWEnOwokbGFuZ1snR0UnXSA9ICdHZW9yZ2lhJzsKJGxhbmdbJ0RFJ10gPSAnR2VybWFueSc7CiRsYW5nWydHSCddID0gJ0doYW5hJzsKJGxhbmdbJ0dJJ10gPSAnR2licmFsdGFyJzsKJGxhbmdbJ0dCJ10gPSAnR3JlYXQgQnJpdGFpbiAoVUspJzsKJGxhbmdbJ0dSJ10gPSAnR3JlZWNlJzsKJGxhbmdbJ0dMJ10gPSAnR3JlZW5sYW5kJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkYSc7CiRsYW5nWydHUCddID0gJ0d1YWRlbG91cGUnOwokbGFuZ1snR1UnXSA9ICdHdWFtJzsKJGxhbmdbJ0dUJ10gPSAnR3VhdGVtYWxhJzsKJGxhbmdbJ0dOJ10gPSAnR3VpbmVhJzsKJGxhbmdbJ0dXJ10gPSAnR3VpbmVhLUJpc3NhdSc7CiRsYW5nWydHWSddID0gJ0d1eWFuYSc7CiRsYW5nWydIVCddID0gJ0hhaXRpJzsKJGxhbmdbJ0hNJ10gPSAnSGVhcmQgYW5kIE1jRG9uYWxkIElzbGFuZHMnOwokbGFuZ1snSE4nXSA9ICdIb25kdXJhcyc7CiRsYW5nWydISyddID0gJ0hvbmcgS29uZyc7CiRsYW5nWydIVSddID0gJ0h1bmdhcnknOwokbGFuZ1snSVMnXSA9ICdJY2VsYW5kJzsKJGxhbmdbJ0lOJ10gPSAnSW5kaWEnOwokbGFuZ1snSUQnXSA9ICdJbmRvbmVzaWEnOwokbGFuZ1snSVInXSA9ICdJcmFuJzsKJGxhbmdbJ0lRJ10gPSAnSXJhcSc7CiRsYW5nWydJRSddID0gJ0lyZWxhbmQnOwokbGFuZ1snSUwnXSA9ICdJc3JhZWwnOwokbGFuZ1snSU0nXSA9ICdJc2xlIG9mIE1hbic7CiRsYW5nWydJVCddID0gJ0l0YWx5JzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5JzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWljYSc7CiRsYW5nWydKUCddID0gJ0phcGFuJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuJzsKJGxhbmdbJ0taJ10gPSAnS2F6YWtoc3Rhbic7CiRsYW5nWydLRSddID0gJ0tlbnlhJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGknOwokbGFuZ1snS1AnXSA9ICdLb3JlYSAoTm9ydGgpJzsKJGxhbmdbJ0tSJ10gPSAnS29yZWEgKFNvdXRoKSc7CiRsYW5nWydLVyddID0gJ0t1d2FpdCc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4nOwokbGFuZ1snTEEnXSA9ICdMYW9zJzsKJGxhbmdbJ0xWJ10gPSAnTGF0dmlhJzsKJGxhbmdbJ0xCJ10gPSAnTGViYW5vbic7CiRsYW5nWydMSSddID0gJ0xpZWNodGVuc3RlaW4nOwokbGFuZ1snTFInXSA9ICdMaWJlcmlhJzsKJGxhbmdbJ0xZJ10gPSAnTGlieWEnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvJzsKJGxhbmdbJ0xUJ10gPSAnTGl0aHVhbmlhJzsKJGxhbmdbJ0xVJ10gPSAnTHV4ZW1ib3VyZyc7CiRsYW5nWydNTyddID0gJ01hY2F1JzsKJGxhbmdbJ01HJ10gPSAnTWFkYWdhc2Nhcic7CiRsYW5nWydNVyddID0gJ01hbGF3aSc7CiRsYW5nWydNWSddID0gJ01hbGF5c2lhJzsKJGxhbmdbJ01WJ10gPSAnTWFsZGl2ZXMnOwokbGFuZ1snTUwnXSA9ICdNYWxpJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEnOwokbGFuZ1snTUgnXSA9ICdNYXJzaGFsbCBJc2xhbmRzJzsKJGxhbmdbJ01RJ10gPSAnTWFydGluaXF1ZSc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWEnOwokbGFuZ1snTVUnXSA9ICdNYXVyaXRpdXMnOwokbGFuZ1snWVQnXSA9ICdNYXlvdHRlJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWNvJzsKJGxhbmdbJ0ZNJ10gPSAnTWljcm9uZXNpYSc7CiRsYW5nWydNQyddID0gJ01vbmFjbyc7CiRsYW5nWydNRCddID0gJ01vbGRvdmEnOwokbGFuZ1snTUEnXSA9ICdNb3JvY2NvJzsKJGxhbmdbJ01OJ10gPSAnTW9uZ29saWEnOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0JzsKJGxhbmdbJ01aJ10gPSAnTW96YW1iaXF1ZSc7CiRsYW5nWydNTSddID0gJ015YW5tYXInOwokbGFuZ1snTkEnXSA9ICdOYW1pYmlhJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUnOwokbGFuZ1snTlAnXSA9ICdOZXBhbCc7CiRsYW5nWydOTCddID0gJ05ldGhlcmxhbmRzJzsKJGxhbmdbJ0FOJ10gPSAnTmV0aGVybGFuZHMgQW50aWxsZXMnOwokbGFuZ1snTlQnXSA9ICdOZXV0cmFsIFpvbmUnOwokbGFuZ1snTkMnXSA9ICdOZXcgQ2FsZWRvbmlhJzsKJGxhbmdbJ05aJ10gPSAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc7CiRsYW5nWydOSSddID0gJ05pY2FyYWd1YSc7CiRsYW5nWydORSddID0gJ05pZ2VyJzsKJGxhbmdbJ05HJ10gPSAnTmlnZXJpYSc7CiRsYW5nWydOVSddID0gJ05pdWUnOwokbGFuZ1snTkYnXSA9ICdOb3Jmb2xrIElzbGFuZCc7CiRsYW5nWydNUCddID0gJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyc7CiRsYW5nWydOTyddID0gJ05vcndheSc7CiRsYW5nWydPTSddID0gJ09tYW4nOwokbGFuZ1snUEsnXSA9ICdQYWtpc3Rhbic7CiRsYW5nWydQVyddID0gJ1BhbGF1JzsKJGxhbmdbJ1BTJ10gPSAnUGFsZXN0aW5pYW4gVGVycml0b3J5JzsKJGxhbmdbJ1BBJ10gPSAnUGFuYW1hJzsKJGxhbmdbJ1BHJ10gPSAnUGFwdWEgTmV3IEd1aW5lYSc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5JzsKJGxhbmdbJ1BFJ10gPSAnUGVydSc7CiRsYW5nWydQSCddID0gJ1BoaWxpcHBpbmVzJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4nOwokbGFuZ1snUEwnXSA9ICdQb2xhbmQnOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCc7CiRsYW5nWydQUiddID0gJ1B1ZXJ0byBSaWNvJzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXInOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uJzsKJGxhbmdbJ1JPJ10gPSAnUm9tYW5pYSc7CiRsYW5nWydSVSddID0gJ1J1c3NpYW4gRmVkZXJhdGlvbic7CiRsYW5nWydSVyddID0gJ1J3YW5kYSc7CiRsYW5nWydHUyddID0gJ1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuJzsKJGxhbmdbJ0tOJ10gPSAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEnOwokbGFuZ1snVkMnXSA9ICdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJzsKJGxhbmdbJ1dTJ10gPSAnU2Ftb2EnOwokbGFuZ1snU00nXSA9ICdTYW4gTWFyaW5vJzsKJGxhbmdbJ1NUJ10gPSAnU2FvIFRvbWUgYW5kIFByaW5jaXBlJzsKJGxhbmdbJ1NBJ10gPSAnU2F1ZGkgQXJhYmlhJzsKJGxhbmdbJ1NOJ10gPSAnU2VuZWdhbCc7CiRsYW5nWydTQyddID0gJ1NleWNoZWxsZXMnOwokbGFuZ1snU0wnXSA9ICdTaWVycmEgTGVvbmUnOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvcmUnOwokbGFuZ1snU0knXSA9ICdTbG92ZW5pYSc7CiRsYW5nWydTSyddID0gJ1Nsb3ZhayBSZXB1YmxpYyc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyc7CiRsYW5nWydTTyddID0gJ1NvbWFsaWEnOwokbGFuZ1snWkEnXSA9ICdTb3V0aCBBZnJpY2EnOwokbGFuZ1snRVMnXSA9ICdTcGFpbic7CiRsYW5nWydMSyddID0gJ1NyaSBMYW5rYSc7CiRsYW5nWydTSCddID0gJ1N0LiBIZWxlbmEnOwokbGFuZ1snUE0nXSA9ICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAnOwokbGFuZ1snU0QnXSA9ICdTdWRhbic7CiRsYW5nWydTUiddID0gJ1N1cmluYW1lJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuIElzbGFuZHMnOwokbGFuZ1snU1onXSA9ICdTd2F6aWxhbmQnOwokbGFuZ1snU0UnXSA9ICdTd2VkZW4nOwokbGFuZ1snQ0gnXSA9ICdTd2l0emVybGFuZCc7CiRsYW5nWydTWSddID0gJ1N5cmlhJzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuJzsKJGxhbmdbJ1RKJ10gPSAnVGFqaWtpc3Rhbic7CiRsYW5nWydUWiddID0gJ1RhbnphbmlhJzsKJGxhbmdbJ1RIJ10gPSAnVGhhaWxhbmQnOwokbGFuZ1snVEcnXSA9ICdUb2dvJzsKJGxhbmdbJ1RLJ10gPSAnVG9rZWxhdSc7CiRsYW5nWydUTyddID0gJ1RvbmdhJzsKJGxhbmdbJ1RUJ10gPSAnVHJpbmlkYWQgYW5kIFRvYmFnbyc7CiRsYW5nWydUTiddID0gJ1R1bmlzaWEnOwokbGFuZ1snVFInXSA9ICdUdXJrZXknOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4nOwokbGFuZ1snVEMnXSA9ICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnOwokbGFuZ1snVFYnXSA9ICdUdXZhbHUnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEnOwokbGFuZ1snVUEnXSA9ICdVa3JhaW5lJzsKJGxhbmdbJ0FFJ10gPSAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnOwokbGFuZ1snVUsnXSA9ICdVbml0ZWQgS2luZ2RvbSc7CiRsYW5nWydVUyddID0gJ1VuaXRlZCBTdGF0ZXMnOwokbGFuZ1snVU0nXSA9ICdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4nOwokbGFuZ1snVlUnXSA9ICdWYW51YXR1JzsKJGxhbmdbJ1ZBJ10gPSAnVmF0aWNhbiBDaXR5IFN0YXRlIChIb2x5IFNlZSknOwokbGFuZ1snVkUnXSA9ICdWZW5lenVlbGEnOwokbGFuZ1snVk4nXSA9ICdWaWV0IE5hbSc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSc7CiRsYW5nWydWSSddID0gJ1ZpcmdpbiBJc2xhbmRzIChVLlMuKSc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSc7CiRsYW5nWydZRSddID0gJ1llbWVuJzsKJGxhbmdbJ1lVJ10gPSAnWXVnb3NsYXZpYSc7CiRsYW5nWydaTSddID0gJ1phbWJpYSc7CiRsYW5nWydaVyddID0gJ1ppbWJhYndlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdXeXN0xIVwacWCIGLFgsSFZCBwb2RjemFzIHByemV0d2FyemFuaWEgZm9ybXVsYXJ6YS4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnQsWCxIVkIHBvZGN6YXMgd3lzecWCYW5pYTogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0LFgsSFZCBwb2RjemFzIHphcGlzdSBwbGlrdSBkbyBtb2R1xYJ1IFVwbG9hZHM6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ05pZSB6bmFsZXppb25vIG1vZHXFgnUgVXBsb2Fkcyc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnV3lzdMSFcGnFgiBixYLEhWQgcG9kY3phcyBwcnpldHdhcnphbmlhIHBsaWt1ICVzIChuYXp3YSB0eW1jemFzb3dhOiAlcywgdHlwICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0LFgsSFZDogTmllIG1vxbxuYSB1enlza2HEhyB3ecWCxIVjem5lZ28gZG9zdMSZcHUgZG8gcGxpa3UuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGltecWbbG5pZTogb2R6bmFjem9ueSc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEaW15xZtsbmllOiB6YXpuYWN6aW55JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdXeW5payB3eXPFgmFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5TemFibG9uIGVtYWlsYSBqZXN6Y3plIG5pZSBqZXN0IHVzdGF3aW9ueSEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IEJyYWsgd3ltYWdhbmVnbyBtb2R1xYJ1IENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVcW8eXRrb3duaWsgemFha2NlcHRvd2HFgiAlcyBvZCAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnV3lkYXJ6ZW5pZSBnZW5lcm93YW5lIGdkeSBmb3JtdWxhcnogamVzdCB3eXN5xYJhbnknOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnV3lkYXJ6ZW5pZSBnZW5lcm93YW5lIGdkeSB3eXN0xIVwaSBixYLEhWQgcG9kY3phcyB3eXN5xYJhbmlhIGZvcm11bGFyemEnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdXeWRhcnplbmllIGdlbmVyb3dhbmUgZ2R5IGZvcm11bGFyeiBqZXN0IHd5xZt3aWV0bGFueSc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnSUQgb2Rwb3dpZWR6aS4gVcW8eXdhbmUgcHJ6ZXogbW9kdcWCIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEb215xZtsbmUgd2FydG/Fm2NpIHBvbGEgKHNwcmF3ZMW6IHcgcG9tb2N5IG1vZHXFgnUpJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0lEIHBvbGEgZGxhIHdld27EmXRyem55Y2ggb3BlcmFjamknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05hendhIGZvcm11bGFyemEnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdJRCBmb3JtdWxhcnphIGRsYSB3ZXduxJl0cnpueWNoIG9wZXJhY2ppJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnT2cmb2FjdXRlO2xuZSBwYXJhbWV0cnkgZGxhIHdld27EmXRyem55Y2ggb3BlcmFjamknOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+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+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEzMDExNzcwMS4xMjgxMDMwMjQ5LjEyOTU2MzAzNzUuMTI5NTY5MjEwNy40Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTUyODUwODUuMzguMjQudXRtY2NuPShvcmdhbmljKXx1dG1jc3I9Z29vZ2xlfHV0bWN0cj1jbXNtcyB0cmFuc2xhdGlvbnx1dG1jbWQ9b3JnYW5pYyc7CiRsYW5nWydxY2EnXSA9ICdQMC0xNzA2MDQ5MTIwLTEyODEwMzAyNDk4MjAnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></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/QvtC70Y8nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDQvtC00L3RgyDQuNC70Lgg0LHQvtC70LXQtSDQv9C+0LfQuNGG0LjRjiDQuNC3INC60LDRgtCw0LvQvtCz0LAnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ9Ca0L7QvdC10YYg0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LkgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICfQndCw0YfQsNC70L4g0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LkgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSAoaW5wdXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVOdW1iZXJGaWVsZCddID0gJ0hUTUw1INGH0LjRgdC70L7QstC+0LUg0L/QvtC70LUg0LLQstC+0LTQsCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0hUTUw1INC/0L7Qu9C1INCy0LLQvtC00LAgRW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNVVSTEZpZWxkJ10gPSAnSFRNTDUg0L/QvtC70LUg0LLQstC+0LTQsCBVUkwnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAn0J/QsNGA0L7Qu9GMJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAn0J/QsNGA0L7Qu9GMINGB0L3QvtCy0LAgKNC/0YDQvtCy0LXRgNC60LApJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSAo0L3QtdGB0LrQvtC70YzQutC+INGI0YLRg9C6KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfQotC10LrRgdGC0L7QstC+0LUg0L7QutC90L4gKHRleHRhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAn0JrQvdC+0L/QutCwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ9CT0LDQu9C+0YfQutCwIChjaGVja2JveCknOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICfQndC10YHQutC+0LvRjNC60L4g0LPQsNC70L7Rh9C10LogKGNoZWNrYm94IGdyb3VwKSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICfQktGL0L/QsNC00LDRjtGJ0LjQuSDRgdC/0LjRgdC+0LonOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ1llYXIgUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAn0JzQvdC+0LbQtdGB0YLQstC10L3QvdGL0Lkg0LLRi9Cx0L7RgCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICfQktGL0LHQvtGAINGI0YLQsNGC0L7QsiDQodCo0JAnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDQutCw0L3QsNC00YHQutC+0Lkg0L/RgNC+0LLQuNC90YbQuNC4JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDRgdGC0YDQsNC90YsnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICfQktGL0LHQvtGAINC00LDRgtGLJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDQstGA0LXQvNC10L3QuCc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ9CT0YDRg9C/0L/QsCDRgNCw0LTQuNC+0LrQvdC+0L/QvtC6JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKtCe0YLQv9GA0LDQstC40YLRjCDRgNC10LfRg9C70YzRgtCw0YIg0L3QsCDRg9C60LDQt9Cw0L3QvdGL0LUgZS1tYWlsINCw0LTRgNC10YHQsCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcq0J/RgNC+0LLQtdGA0LrQsC3Rh9C10YDQtdC3LUVtYWlsINCw0LTRgNC10YEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyrQn9C+0LvQtSBFbWFpbCAi0J7RgiDQutC+0LPQvijQsNC00YDQtdGBKSIsINC4INC+0YLQv9GA0LDQstC40YLRjCDQutC+0L/QuNGOJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKtCX0LDQv9C40YHQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0LIg0YTQsNC50LsnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcq0JfQsNC/0LjRgdCw0YLRjCDRgNC10LfRg9C70YzRgtCw0YLRiyDQsiDQsdCw0LfRgyDQtNCw0L3QvdGL0YUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKtCX0LDQv9C40YHQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0LIg0YTQvtGA0LzQsNGC0LUgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJyrQktGL0LfQstCw0YLRjCDRgtC10LMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBINGA0LXQt9GD0LvRjNGC0LDRgtCw0LzQuCDRhNC+0YDQvNGLINCyINC60LDRh9C10YHRgtCy0LUg0L/QsNGA0LDQvNC10YLRgNC+0LInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcq0J7RgtC/0YDQsNCy0LjRgtGMINC/0L4g0LDQtNGA0LXRgdGDLCDRg9C60LDQt9Cw0L3QvdC+0LzRgyDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQvCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcq0J7RgtC/0YDQsNCy0LjRgtGMINCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0YMgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy3QoNCw0LfRgNGL0LIg0YHRgtGA0LDQvdC40YbRiyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ9CX0LDQs9GA0YPQt9C60LAg0YTQsNC50LvQsCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ9Cf0L7Rh9GC0L7QstC+0LUg0L/QvtC70LUgIkUtbWFpbCDQvtGC0L/RgNCw0LLQuNGC0LXQu9GPIic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAiRS1tYWlsINC+0YLQv9GA0LDQstC40YLQtdC70Y8iIC0g0L/QvtCy0YLQvtGAJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAi0JjQvNGPINC+0YLQv9GA0LDQstC40YLQtdC70Y8iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAi0KLQtdC80LAiJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLdCh0YLQsNGC0LjRh9C10YHQutC40Lkg0YLQtdC60YHRgic7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy3QodGC0LDRgtC40YfQtdGB0LrQsNGPINGB0YHRi9C70LrQsCc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ9Ch0YHRi9C70LrQsCAo0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLdCh0LrRgNGL0YLQvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy3QktGL0YfQuNGB0LvQtdC90L3QvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLdCd0LUg0L/QvtCy0YLQvtGA0Y/RjtGJ0LXQtdGB0Y8g0YbQtdC70L7QtSDRh9C40YHQu9C+IChzZXJpYWwpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICfQndC10YIg0L/RgNC+0LLQtdGA0LrQuCc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICfQp9C40YHQu9C+JzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ9Cm0LXQu9C+0LUg0YfQuNGB0LvQvic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICfQkNC00YDQtdGBIGUtbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICfQndC+0LzQtdGAINGC0LXQu9C10YTQvtC90LAgKNCh0KjQkCknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAn0JTQvtC70LbQvdCwINCx0YvRgtGMINC/0YDQvtGB0YLQsNCy0LvQtdC90LAg0LPQsNC70L7Rh9C60LAnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ9CU0L7Qu9C20L3QviDQv9C+0LTRhdC+0LTQuNGC0Ywg0L/QvtC0INGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICfQndC1INC00L7Qu9C20L3QviDQv9C+0LTRhdC+0LTQuNGC0Ywg0L/QvtC0INGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1INGE0L7RgNC80Ysg0L3QtSDQsdGL0LvQviDQt9Cw0L/QvtC70L3QtdC90L4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LfQsNC/0L7Qu9C90LjRgtC1INC/0L7Qu9C1ICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INGH0LjRgdC70L4g0LTQu9GPINC/0L7Qu9GPICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINC60L7RgNGA0LXQutGC0L3QviDQt9Cw0L/QvtC70L3QuNGC0LUg0L/QvtC70LUgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDRhtC10LvQvtC1INGH0LjRgdC70L4g0LTQu9GPINC/0L7Qu9GPICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAn0JLQstC10LTQuNGC0LUg0LrQvtGA0YDQtdC60YLQvdGL0LkgZS1tYWlsINCw0LTRgNC10YEg0LIg0L/QvtC70LUgIiVzIic7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAn0JLQstC10LTQtdC90L3Ri9C5IGUtbWFpbCDQsNC00YDQtdGBINC90LUg0YHQvtCy0L/QsNC00LDQtdGCINGBINC/0L7Qu9C10LwgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDQsiDQv9C+0LvQtSAiJXMiINC60L7RgNGA0LXQutGC0L3Ri9C5INC90L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCc7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQvtC50LTQuNGC0LUsINGH0YLQvtCx0Ysg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGN0YLRgyDRhNC+0YDQvNGDJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJ9CQ0LTRgNC10YEsINCy0LLQtdC00LXQvdC90YvQuSDQsiDQv9C+0LvQtSAiJXMiINC90LUg0Y/QstC70Y/QtdGC0YHRjyDQutC+0YDRgNC10LrRgtC90YvQvCBlLW1haWwg0LDQtNGA0LXRgdC+0LwhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC1INC/0YDQtdCy0YvRiNCw0Y7RidC10LUgJXMg0YHQuNC80LLQvtC70L7Qsic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSwg0L/QviDQutGA0LDQudC90LXQuSDQvNC10YDQtSAlcyDRgdC40LzQstC+0LvQvtCyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAn0KHQuNC80LLQvtC7INC00LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDQsiDQutCw0YfQtdGB0YLQstC1INGA0LDQt9C00LXQu9C40YLQtdC70Y8g0LIg0YDQtdC30YPQu9GM0YLQsNGC0LDRhSwg0LrQvtCz0LTQsCDQstC+0LfQstGA0LDRidCw0LXRgtGB0Y8g0LHQvtC70LXQtSDQvtC00L3QvtCz0L4g0LfQvdCw0YfQtdC90LjRjyc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAn0JLQsNC8INC90YPQttC90Ysg0L/RgNCw0LLQsCAiJXMiLCDRh9GC0L7QsdGLINCy0YvQv9C+0LvQvdC40YLRjCDRjdGC0L4g0LTQtdC50YHRgtCy0LjQtS4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICfQmNC30LLQuNC90LjRgtC1LCDQvdC+INGDINCy0LDRgSDQvdC10YIg0L/RgNCw0LIg0LTQvtGB0YLRg9C/0LAg0Log0Y3RgtC+0Lkg0YfQsNGB0YLQuCDRgdCw0LnRgtCwLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAn0J/QvtGA0Y/QtNC+0Log0L/QvtC70LXQuSDQvtCx0L3QvtCy0LvQtdC9Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfQpNC+0YDQvNCwINGD0LTQsNC70LXQvdCwLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAn0J/QvtC70LUg0YPQtNCw0LvQtdC90L4uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ9Ca0L7QvdGE0LjQs9GD0YDQsNGG0LjRjyDQvtCx0L3QvtCy0LvQtdC90LAuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAn0JLRiyDQtNC+0LvQttC90Ysg0L/RgNC+0LLQtdGA0LjRgtGMICIlcyIsINGH0YLQvtCx0Ysg0L/RgNC+0LTQvtC70LbQuNGC0YwuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICfQktCw0Lwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0YPQutCw0LfQsNGC0Ywg0LrQsNC6INC80LjQvdC40LzRg9C8INC+0LTQuNC9INCw0LTRgNC10YEg0L3QsNC30L3QsNGH0LXQvdC40Y8hJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0YTQvtGA0LzRgyAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0L/QvtC70LUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ9Cf0L7QutCwINC90LUg0YPQutCw0LfQsNC9INGC0LjQvyDQv9C+0LvRjywg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSDQvdCw0YHRgtGA0L7QudC60Lgg0L3QtSDQvtGC0L7QsdGA0LDQttCw0Y7RgtGB0Y8uJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgIiVzIiBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ9Ca0LDQttC00L7QvNGDINC/0L7Qu9GOINC00L7Qu9C20L3QviDQsdGL0YLRjCDQv9GA0LjRgdCy0L7QtdC90L4g0LjQvNGPLCDQtdGB0LvQuCDRgtC+0LvRjNC60L4g0Y3RgtC+INC90LUg0L7RgtC60LvRjtGH0LXQvdC+INCyINC90LDRgdGC0YDQvtC50LrQsNGFINCa0L7QvdGB0YLRgNGD0LrRgtC+0YDQsCDRhNC+0YDQvC4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICfQndC10YIg0L/QvtC70Y8g0L/RgNC10LTQvdCw0LfQvdCw0YfQtdC90L3QvtCz0L4g0LTQu9GPICVzJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ9CQ0L3QvtC90LjQvNC90L4nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ9CU0LvQuNC90LA6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzINC+0L/RhtC40LknOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyDRgdC40LzQstC+0LvQvtCyLic7CiRsYW5nWydvcmRlciddID0gJ9Cf0L7RgNGP0LTQvtC6JzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW9C90LUg0YPQutCw0LfQsNC90L5dJzsKJGxhbmdbJ2FkZGVkJ10gPSAn0LTQvtCx0LDQstC70LXQvdC+JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICfQvtCx0L3QvtCy0LvQtdC90L4nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAn0KHQvtGA0YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/RgNC4INCy0YvQstC+0LTQtSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDQvtC00LjQvSDQuNC3INC/0YDQtdC00LvQsNCz0LDQtdC80YvRhSDQstCw0YDQuNCw0L3RgtC+0LInOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICfQktGL0LHQtdGA0LjRgtC1INGC0LjQvyc7CiRsYW5nWyd0byddID0gJ9Ca0L7QvNGDJzsKJGxhbmdbJ3llcyddID0gJ9CU0LAnOwokbGFuZ1snbm8nXSA9ICfQndC10YInOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ9C/0L7Qu9GD0YfQsNGC0LXQu9C4JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ9C/0L7Qu9GPJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyDQstC+0LfQvNC+0LbQvdGL0YUg0YTQsNC50LvQvtCyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMg0L3QsNC/0YDQsNCy0LvQtdC90LjQuSc7CiRsYW5nWydzYXZlJ10gPSAn0KHQvtGF0YDQsNC90LjRgtGMJzsKJGxhbmdbJ2FkZCddID0gJ9CU0L7QsdCw0LLQuNGC0YwnOwokbGFuZ1sndXBkYXRlJ10gPSAn0J7QsdC90L7QstC40YLRjCc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ9Ch0L7RhdGA0LDQvdC40YLRjCDQuCDQv9GA0L7QtNC+0LvQttC40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1JzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAn0JjQvdGE0L7RgNC80LDRhtC40Y8nOwokbGFuZ1snYXV0b21hdGljJ10gPSAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnOwokbGFuZ1snZm9ybXMnXSA9ICfQpNC+0YDQvNGLJzsKJGxhbmdbJ2Zvcm0nXSA9ICfQpNC+0YDQvNCwICIlcyInOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ9Ca0L7QvdGE0LjQs9GD0YDQsNGG0LjRjyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1LCDRgdC+0YHRgtC+0Y/QvdC40LUg0L7QsdC90L7QstC70LXQvdC+Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICfQnNCw0LrRgS4g0YDQsNC30LzQtdGAJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAn0KDQsNGB0YjQuNGA0LXQvdC40Y8nOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ9Cg0LDQt9GA0LXRiNC10L3QvdGL0LUg0YLQuNC/0Ysg0YTQsNC50LvQvtCyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAn0JfQsNC60LDRh9Cw0L3QvdGL0Lkg0YTQsNC50Lsg0YHQu9C40YjQutC+0Lwg0LLQtdC70LjQuiEg0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INC00L7Qv9GD0YHRgtC40LzRi9C5INGA0LDQt9C80LXRgDonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICfQl9Cw0LrQsNGH0LrQsCDRhNCw0LnQu9C+0LIg0Y3RgtC+0LPQviDRgtC40L/QsCDQt9Cw0L/RgNC10YnQtdC90LAuINCf0L7QttCw0LvRg9C50YHRgtCwLCDQv9GA0L7QstC10YDRjNGC0LUsINGH0YLQviDQtNCw0LvQuCDRhNCw0LnQu9GDINC60L7RgNGA0LXQutGC0L3QvtC1INGA0LDRgdGI0LjRgNC10L3QuNC1Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICfQl9Cw0LrQsNGH0LDRgtGMJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICfQpNC+0YDQvNCwINC40LzQv9C+0YDRgtC40YDQvtCy0LDQvdCwLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICfQpNC+0YDQvNCwINC90LUg0LHRi9C70LAg0LjQvNC/0L7RgNGC0LjRgNC+0LLQsNC90LAhINCk0L7RgNC80LDRgiBYTUwt0YTQsNC50LvQsCDQvdC10LrQvtGA0YDQtdC60YLQvdGL0LkuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyDRgdGC0YDQvtC6JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyDQutC+0LvQvtC90L7Quic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIt0YfQsNGB0L7QstGL0LUg0YfQsNGB0YsnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LdGH0LDRgdC+0LLRi9C1INGH0LDRgdGLJzsKJGxhbmdbJ2hvdXInXSA9ICfQp9Cw0YEnOwokbGFuZ1snbWluJ10gPSAn0JzQuNC90YPRgtCwJzsKJGxhbmdbJ21lcmlkJ10gPSAn0JzQtdGA0LjQtNC40LDQvSc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAn0JjQvdGC0LXRgNCy0LDQuzogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICfQodC/0LDRgdC40LHQviEg0JLQsNGIINC30LDQv9GA0L7RgSDQsdGL0Lsg0L/QvtC70YPRh9C10L0uJzsKJGxhbmdbJ2VkaXQnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCc7CiRsYW5nWydkZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjCc7CiRsYW5nWydkYXknXSA9ICfQlNC10L3RjCc7CiRsYW5nWydtb24nXSA9ICfQnNC10YHRj9GGJzsKJGxhbmdbJ3llYXInXSA9ICfQk9C+0LQnOwokbGFuZ1snbm9uZSddID0gJyjQvdC10YIpJzsKJGxhbmdbJ2NzcyddID0gJ9ChU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICfQnNC+0LTRg9C70Ywg0YPQtNCw0LvQtdC9Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICfQnNC+0LTRg9C70Ywg0LLQtdGA0YHQuNC4ICVzINGD0YHRgtCw0L3QvtCy0LvQtdC9Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ9Cc0L7QtNGD0LvRjCDQvtCx0L3QvtCy0LvQtdC9INC00L4g0LLQtdGA0YHQuNC4ICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICfQndCw0LfQsNC0Li4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAn0JTQsNC70LXQtS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAn0J/RgNC+0YHRgtCw0LLQu9C10L3QsCDQs9Cw0LvQvtGH0LrQsCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICfQndC1INC/0YDQvtGB0YLQsNCy0LvQtdC90LAg0LPQsNC70L7Rh9C60LAnOwokbGFuZ1sndGFiX21haW4nXSA9ICfQntGB0L3QvtCy0L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0YTQvtGA0LzRiyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ9CU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ9Co0LDQsdC70L7QvSDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQg0LjQvdGC0LXQs9GA0LDRhtC40Y8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT7QkiDRjdGC0L7QvCDQv9C+0LvQtSDQvNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQv9C10YDQtdC80LXQvdC90YvQtSBTbWFydHkuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINC10YnRkSDQvtC/0YbQuNC5JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0L7RgtC80LXRh9C10L3QvdGL0LUg0L7Qv9GG0LjQuCc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LXRidGRINCz0LDQu9C+0YfQtdC6JzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0L7RgtC80LXRh9C10L3QvdGL0LUg0LPQsNC70L7Rh9C60LgnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINC00YDRg9Cz0L7QuSDQsNC00YDQtdGBJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0L7RgtC80LXRh9C10L3QvdGL0LUg0LDQtNGA0LXRgdCwJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LTRgNGD0LPQvtC1INC90LDQt9C90LDRh9C10L3QuNC1JzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ9Cj0LTQsNC70LjRgtGMINC/0L7QvNC10YfQtdC90L3Ri9C1INC90LDQt9C90LDRh9C10L3QuNGPJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAn0KEg0JLQsNGI0LXQs9C+IElQLdCw0LTRgNC10YHQsCDQv9C+0YHRgtGD0L/QsNC10YIg0YHQu9C40YjQutC+0Lwg0LzQvdC+0LPQviDQt9Cw0L/RgNC+0YHQvtCyLiDQodC40YHRgtC10LzQsCDQt9Cw0YnQuNGC0Ysg0L7RgiDRgdC/0LDQvNCwINC30LDQsdC70L7QutC40YDQvtCy0LDQu9CwINC+0YLQv9GA0LDQstC60YMg0YTQvtGA0LzRiy4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAn0J/RgNC10LTQv9C+0LvQsNCz0LDQtdC80YvQuSDRgdC/0LDQvCDRgSBJUC3QsNC00YDQtdGB0LAgJXMg0L7RgdGC0LDQvdC+0LLQu9C10L0uJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICfQn9C+0LzQtdC90Y/RgtGMINC/0L7RgNGP0LTQvtC6INC/0L7Qu9C10LknOwokbGFuZ1snY2FuY2VsJ10gPSAn0J7RgtC80LXQvdCwJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ9Cj0LrQsNC30LDQvdC90L7QtSDQt9C90LDRh9C10L3QuNC1OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogInJhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSI8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICJtdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMiPGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ9Cg0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQv9C+0LfQstC+0LvRj9C10YIg0YTQuNC70YzRgtGA0L7QstCw0YLRjCDRjdC70LXQvNC10L3RgtGLINC60LDRgtCw0LvQvtCz0LAg0L/QviDQuNC80LXQvdC4JzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAn0JLRi9GB0L7RgtCwINC80L3QvtC20LXRgdGC0LLQtdC90L3QvtCz0L4g0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ9CS0YvRgdC+0YLQsCDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICfQptC10LvQtdCy0L7QuSDQutCw0YLQsNC70L7QsyDQtNC70Y8g0LLRi9GF0L7QtNC90YvRhSDRhNCw0LnQu9C+0LInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICfQotC10LMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ9Ce0YLQv9GA0LDQstC70LXQvdC+IGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8g0LfQsNCz0YDRg9C30L7Quic7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ9Ce0YLQv9GA0LDQstC40YLRjCDRjdGC0L7RgiDRhNCw0LnQuyDQsiDQvNC+0LTRg9C70Ywg0LfQsNCz0YDRg9C30L7Quic7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICfQoNCw0LfRgNC10YjQuNGC0Ywg0LfQsNCz0YDRg9C20LDRgtGMINC90LAg0L/QtdGA0LXQt9Cw0L/QuNGB0Ywg0YDQsNC90L3QuNC1INGE0LDQudC70Ys/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAn0JfQsNCz0YDRg9C20LDQtdC80YvQuSDRhNCw0LnQuyDQv9C10YDQtdC30LDQv9C40YHRi9Cy0LDQtdGCINGA0LDQvdC10LUg0LfQsNCz0YDRg9C20LXQvdC90YvQuSDRhNCw0LnQuywg0LXRgdC70Lgg0L7QvSDQuNC80LXQtdGCINGC0L7QttC1INC40LzRjz8nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAn0J/QvtC30LLQvtC70LjRgtGMINC/0LXRgNC10LfQsNC/0LjRgdGMJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAn0JfQsNC/0YDQtdGC0LjRgtGMINC/0LXRgNC10LfQsNC/0LjRgdGMJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICfQpNCw0LnQuyAlcyDRg9C20LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIsINC4INC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQv9C10YDQtdC30LDQv9C40YHQsNC9Lic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ9Co0LDQsdC70L7QvSDQuNC80LXQvdC4INGE0LDQudC70LAnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXSA9ICfQntGA0LjQs9C40L3QsNC70YzQvdC+0LUg0YDQsNGB0YjQuNGA0LXQvdC40LUg0YTQsNC50LvQsCAo0LLQutC70Y7Rh9Cw0Y8gIi4iKSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1N1cHByZXNzIGZpbGVuYW1lIGluIGVtYWlscyBhbmQgZm9ybXMgdGhlIGVuZCB1c2VyIHdpbGwgc2VlJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdUbyByZW5hbWUgYSBmaWxlIHVwb24gdXBsb2FkaW5nLCBjcmVhdGUgdGhlIHRlbXBsYXRlIGhlcmUuIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIG9yaWdpbmFsIGZpbGVuYW1lJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ9Cb0LXQs9C10L3QtNCwJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAn0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICfQn9C+0LTQv9C40YHRjCDQtdC70LXQvNC10L3RgtCwIENoZWNrYm94ICjQs9Cw0LvQvtGH0LrQsCknOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICfQn9C+0LTQv9C40YHRjCDQtdC70LXQvNC10L3RgtCwIFJhZGlvIEJ1dHRvbiAo0YDQsNC00LjQviDQutC90L7Qv9C60LApJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICfQl9C90LDRh9C10L3QuNC1INC60L7Qs9C00LAg0L/RgNC+0YHRgtCw0LLQu9C10L3QsCDQs9Cw0LvQvtGH0LrQsCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICfQl9C90LDRh9C10L3QuNC1INC60L7Qs9C00LAg0L3QtdGCINCz0LDQu9C+0YfQutC4JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICfQktGL0LHQvtGAINC30L3QsNGH0LXQvdC40Y8nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ9CS0YvQsdC+0YAg0YLQtdC80YsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ9CS0YvQsdC+0YAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICfQktGL0LHQvtGAINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAn0JLRi9Cx0L7RgCDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGlvbiBOYW1lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ9CX0L3QsNGH0LXQvdC40LUg0L7RgtC/0YDQsNCy0LvQtdC90L4nOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ9Cd0LDQt9C90LDRh9C10L3QvdGL0Lkg0L/QvtGH0YLQvtCy0YvQuSDQsNC00YDQtdGBJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAn0J3QsNC30L3QsNGH0LXQvdC90L7QtSDQuNC80Y8g0YTQsNC50LvQsCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICci0J7RgiDQutC+0LPQviIg0LTQu9GPIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YHQu9Cw0LHRg9GOINC/0YDQvtCy0LXRgNC60YMgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGB0LvQsNCx0YPRjiDQv9GA0L7QstC10YDQutGDIGVtYWlsICjQv9GA0LjQvC4sINGA0LDQt9GA0LXRiNCw0LXRgiAieEB5Iiwg0LAg0L3QtSDRgtGA0LXQsdGD0LXRgiAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyLQntGCINC60YPQtNCwIiDQtNC70Y8gZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICfQmtC+0LTQuNGA0L7QstC60LAg0L/QuNGB0YzQvNCwJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAn0JjQvNGPINGE0LDQudC70LAnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ9Ci0LXQvNCwINC/0LjRgdGM0LzQsCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICfQmNC80Y8g0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ9Ch0YLQsNGC0YPRgSDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAn0JPQvtGC0L7QstCwINC6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICfQndC1INCz0L7RgtC+0LLQsCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAn0KHRgtGA0LDQvdC40YbQsCDQtNC70Y8g0L/QtdGA0LXQvdCw0L/RgNCw0LLQu9C10L3QuNGPINC/0L7RgdC70LUg0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LTQvtCx0LDQstGM0YLQtSDQv9C+0LvQtSDQsiDRhNC+0YDQvNGDLCDRgtCw0Log0YfRgtC+0LHRiyDQstGF0L7QtNC90YvQtSDQtNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC+0LHRgNCw0LHQsNGC0YvQstCw0LvQuNGB0YwuINCS0Ysg0LzQvtC20LXRgtC1JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAn0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGN0YLQvtGCINGP0YDQu9GL0LonOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ9CQ0LvQuNCw0YEg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ9CQ0LvQuNCw0YEnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICfQn9C+0LvRjyDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSUQg0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICfQn9C+0LrQsNC30LDRgtGMINCw0LvQuNCw0YHRiyDQv9C+0LvQtdC5JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICfQndCw0LbQsNGC0LjQtSDQvdCwINGN0YLRgyDQutC90L7Qv9C60YMg0L7RgtC+0LHRgNCw0LbQsNC10YIg0L/QvtC70LUg0LDQu9C40LDRgdC+0LIg0L/RgNC4INC00L7QsdCw0LLQu9C10L3QuNC4INC40LvQuCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC4INGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ9CY0LzRjyDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ9CQ0LvQuNCw0YEg0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ9Ci0LjQvyDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAn0YHQvtC30LTQsNGC0Ywg0YTQvtGA0LzRgyDQvtCx0YDQsNCx0L7RgtC60Lgg0L/QvtC70Y8uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L3QvtCy0YPRjiDRhNC+0YDQvNGDJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0LLQtdGA0YHQuNGOIEZvcm0gQnVpbGRlcj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L3QvtCy0L7QtSDQv9C+0LvQtSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICfQotC10LrRgdGCINC60L3QvtC/0LrQuCDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICfQotC10LrRgdGCINC60L3QvtC/0LrQuCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIFN1Ym1pdCBCdXR0b24gdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0YHQutGA0LjQv9GCINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAn0KLQtdC60YHRgiDQutC90L7Qv9C60Lgg0L/QtdGA0LXRhdC+0LTQsCDQvdCwINGB0LvQtdC00YPRjtGJ0YPRjiDRgdGC0YDQsNC90LjRhtGDICjQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC80L3QvtCz0L7RgdGC0YDQsNC90LjRh9C90YvRhSDRhNC+0YDQvCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ9Ci0LXQutGB0YIg0LrQvdC+0L/QutC4INC/0LXRgNC10YXQvtC00LAg0L3QsCDQv9GA0LXQtNGL0LTRg9GJ0YPRjiDRgdGC0YDQsNC90LjRhtGDICAo0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvNC90L7Qs9C+0YHRgtGA0LDQvdC40YfQvdGL0YUg0YTQvtGA0LwpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICfQn9GA0L7QstC10YDQutCwINC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAn0J/QvtC70LUg0LTQu9GPINC/0YDQvtCy0LXRgNC60LgnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkINC00LvRjyDRjdGC0L7Qs9C+INC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTINC60LvQsNGB0YEg0LTQu9GPINGN0YLQvtC5INGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTINC60LvQsNGB0YEg0LTQu9GPINGN0YLQvtCz0L4g0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5INGC0LXQsyDQstGL0LfQvtCy0LAg0L/QtdGA0LXQtCDQvtGC0L7QsdGA0LDQttC10L3QuNC10Lwg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICfQotGN0LMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPIChVRFQpINCy0YvQt9GL0LLQsNC10LzRi9C5INC/0LXRgNC10LQg0L7RgtC+0LHRgNCw0LbQtdC90LjQtdC8INGE0L7RgNC80YsgKNCy0YvQt9GL0LLQsNC10YLRgdGPINC90LAg0LrQsNC20LTQvtC5INGB0YLRgNCw0L3QuNGG0LUg0LzQvdC+0LPQvtGB0YLRgNCw0L3QuNGH0L3QvtC5INGE0L7RgNC80YspJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAn0KLQtdCzINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQstGL0LfRi9Cy0LDQtdC80YvQuSDQstC+INCy0YDQtdC80Y8g0L/RgNC+0LLQtdGA0LrQuCDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAn0KHQuNC80LLQvtC7INC00LvRjyDQvtGC0LzQtdGC0LrQuCDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdGL0YUg0L/QvtC70LXQuSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90L4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ9Cf0L7Qu9C1INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LTQu9GPINC30LDQv9C+0LvQvdC10L3QuNGPJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICfQodC60YDRi9GC0Ywg0L/QvtC00L/QuNGB0YwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAn0KHQutGA0YvRgtGMINC40LzRjyDRjdGC0L7Qs9C+INC/0L7Qu9GPINC90LAg0YTQvtGA0LzQtSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICfQnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LTQu9C40L3QsCDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC/0L7Qu9GPICgwINC40LvQuCDQv9GD0YHRgtC+INCx0LXQtyDQvtCz0YDQsNC90LjRh9C10L3QuNC5KSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAn0KHRgtCw0YLQuNGH0LXRgdC60LjQuSDRgtC10LrRgdGCINC00LvRjyDQv9C+0LrQsNC30LAnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICfQn9GA0L7QstC10YDQutCwIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICfQmtC+0LvQuNGH0LXRgdGC0LLQviDRgdGC0YDQvtC6INC00LvRjyDQv9C+0LrQsNC30LAnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAn0KLQvtC70YzQutC+INGH0YLQtdC90LjQtSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAn0J3QtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0LTQu9GPINC/0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9C+0YHQu9C1INGD0YLQstC10YDQttC00LXQvdC40Y8nOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICJ2YWxpZGF0aW9uIHR5cGUiIGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICIvaW1hZ2VcXC4oXFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90L4nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICfQodC60YDRi9GC0Ywg0L7RiNC40LHQutC4JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICfQotC40L8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICfQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAINC30LDQs9GA0YPQttCw0LXQvNC+0LPQviDRhNCw0LnQu9CwICjQutC40LvQvtCx0LDQudGC0YspJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICfQmtCw0YLQsNC70L7QsyDQtNC70Y8g0YHQvtGF0YDQsNC90LXQvdC40Y8g0YTQsNC50LvQvtCyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAn0KDQsNC30YDQtdGI0LXQvdC90YvQtSDRgNCw0YHRiNC40YDQtdC90LjRjyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAn0JLQstC10LTQuNGC0LUg0YHQv9C40YHQvtC6INGA0LDRgdGI0LjRgNC10L3QuNC5INGH0LXRgNC10Lcg0LfQsNC/0Y/RgtGD0Y4sINGA0LDRgdGI0LjRgNC10L3QuNC1INCy0LLQvtC00LjRgtC1INCx0LXQtyDRgtC+0YfQutC4LCAo0YIu0LUuLCAianBnLGdpZixqcGVnIikuINCf0YDQvtCx0LXQu9GLINC40LPQvdC+0YDQuNGA0YPRjtGC0YHRjy4g0J/Rg9GB0YLQvtC1INC/0L7Qu9GPINC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQtdGCINC+0YLRgdGD0YLRgdGC0LLQuNC1INC+0LPRgNCw0L3QuNGH0LXQvdC40LkuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICfQntGC0L7QsdGA0LDQttCw0YLRjCDQvtCz0YDQsNC90LjRh9C10L3QuNGPPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICfQntGC0L7QsdGA0LDQttCw0YLRjCDQvtCz0YDQsNC90LjRh9C10L3QuNGPINC90LAg0YDQsNC30LzQtdGA0LAg0Lgg0YDQsNGI0LjRgNC10L3QuNC1INC00LvRjyDQv9C+0LvRjyDQt9Cw0LPRgNGD0LfQutC4INGE0LDQudC70LA/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C5INC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICfQodGC0YDQsNC90LjRhtCwICVzINC40LcgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ9Cf0L7Qu9C1INC90LUg0LjQvNC10LXRgiDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9GFINC/0LDRgNCw0LzQtdGC0YDQvtCyLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAn0KLQtdC60YHRgiDQstC+0LfQstGA0LDRidCw0LXQvNGL0Lkg0L/RgNC4INC90LXQvtC/0YDQtdC00LXQu9C10L3QvdGL0YUg0LfQvdCw0YfQtdC90LjRj9GFICc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAn0JLQutC70Y7Rh9C40YLRjCDQsdGL0YHRgtGA0L7QtSDQtNC+0LHQsNCy0LvQtdC90LjQtSDQv9C+0LvQtdC5INC00LvRjyDRhNC+0YDQvCDQsiDQstGL0L/QsNC00LDRjtGJ0LXQvCDRgdC/0LjRgdC60LU/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAn0JLQutC70Y7Rh9C40YLRjCDQsdGL0YHRgtGA0L7QtSDQtNC+0LHQsNCy0LvQtdC90LjQtSDQv9C+0LvQtdC5INCyINCy0YvQv9Cw0LTQsNGO0YnQtdC8INGB0L/QuNGB0LrQtT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ9CR0YvRgdGC0YDQvtC1INC00L7QsdCw0LLQu9C10L3QuNC1INC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAn0JrQu9C40LrQvdC40YLQtSDRh9GC0L7QsdGLINGA0LDQt9GA0LXRiNC40YLRjCDQvtGC0L/RgNCw0LLQutGDINC90LUg0LHQvtC70LXQtSAxMCDRjdC70LXQutGC0YDQvtC90L3Ri9GFINC/0LjRgdC10Lwg0LIg0YfQsNGBINC00LvRjyAxIElQINCw0LTRgNC10YHQsC4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAn0JLQutC70Y7Rh9C40YLRjCDQv9GA0LjQvNC40YLQuNCy0L3Ri9C1INCw0L3RgtC4LdGB0L/QsNC8INGE0YPQvdC60YbQuNC4Pyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAn0J/QvtC60LDQt9Cw0YLRjCBJRFwn0Ysg0L/QvtC70LXQuSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ9CX0LDQs9GA0YPQt9C40YLRjCDRhNC+0YDQvNGDINC40LcgWE1MINGE0LDQudC70LAnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDRjdGC0L4g0LjQvNGPINC00LvRjyDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICfQpNC+0YDQvNCwINC40LzQv9C+0YDRgtCwIFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDRjdGC0L7RgiDQsNC70LjQsNGBINC00LvRjyDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICfQk9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0L/QuNGB0YzQvNC+INCyIEhUTUw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAn0JfQsNC/0L7Qu9C90Y/RgtGMINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4Pyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnVVJMINGB0YHRi9C70LrQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICfQotC10LrRgdGCINGB0YHRi9C70LrQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAn0KHRgdGL0LvQutCwINC90LAg0YHRgtGA0LDQvdC40YbRgyDRgdCw0LnRgtCwJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIENhcHRjaGEg0LTQu9GPINC30LDRidC40YLRiyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80Ys/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwINC/0L7QtNGC0LLQtdGA0LTQuNGC0LUg0YfRgtC+INCy0Ysg0YfQtdC70L7QstC10LosINCy0LLQtdC00Y8g0LHRg9C60LLRiyDRgSDQuNC30L7QsdGA0LDQttC10L3QuNGPLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICfQntGI0LjQsdC60LAg0LIg0YLQtdC60YHRgtC1INC00LvRjyBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhINC90LXQutC+0YDRgNC10LrRgtC90LAuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ9Ci0LXQutGB0YIg0L/QvtC00YHQutCw0LfQutC4INC00LvRjyBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ9Cd0LUg0L7RgtC/0YDQsNCy0LvRj9GC0Ywg0LfQvdCw0YfQtdC90LjRjyDQvdC1INC+0YLQvNC10YfQtdC90L3Ri9C1INCz0LDQu9C+0YfQutC+0LknOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAn0J/QvtC00L/QuNGB0Ywg0YHRgdGL0LvQutC4JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdVUkwg0L3QsNC30L3QsNGH0LXQvdC40Y8nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjiDQvtGC0LzQtdGH0LXQvdC+Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIDI0LdGH0LDRgdC+0LLQvtC5INGE0L7RgNC80LDRgj8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSAnOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNICc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5XCdzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ9Co0LjRhNGA0L7QstCw0YLRjCDQtNCw0L3QvdGL0LUg0YXRgNCw0L3Rj9GJ0LjQtdGB0Y8g0LIg0LHQsNC30LUg0LTQsNC90L3Ri9GFJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ9CX0LDQv9GD0YHQuiDQsiDRgNC10LbQuNC80LUgTUxFJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICfQkdC40LHQu9C40L7RgtC10LrQsCDRiNC40YTRgNC+0LLQsNC90LjRjyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDaGVjayB0aGlzIHRvIGVuY3J5cHQgdGhlIHN0b3JlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IChidXQgbm90IGltcG9zc2libGUpIGZvciBoYWNrZXJzIHRvIHZpZXcgdGhlIGluZm9ybWF0aW9uLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ1RoZSBvcHRpb25zIGJlbG93IG9ubHkgYXBwbHkgaWYgeW91IGFyZSB1c2luZyB0aGUgT3BlblNTTCBFbmNyeXB0aW9uIGxpYnJhcnknOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAn0JHQuNCx0LvQuNC+0YLQtdC60LAg0YjQuNGE0YDQvtCy0LDQvdC40Y8nOwokbGFuZ1snb3BlbnNzbCddID0gJ9CR0LjQsdC70LjQvtGC0LXQutCwIE9wZW5TU0wnOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQINCx0LjQsdC70LjQvtGC0LXQutCwIG1jcnlwdCc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBGcm9udGVuZCBVc2VyIG1vZHVsZSB0byBjb25uZWN0IGEgZm9ybSBhbmQgaXRzIGRhdGEgdG8gYSBzcGVjaWZpYyB1c2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm1cJ3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAn0KjQuNGE0YDQvtCy0LDQvdC40LUnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zW1wnRk9STVwnXT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ9Cc0LXRgtC+0LQg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICIlcyIgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgInVzZXI9c3RldmUram9icyZlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHdpbGwgYmUgc3RvcmVkIGluIGFuIFhNTCBmb3JtYXQgaW4gdGhlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJsZS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRXJyb3IhIEVpdGhlciB0aGUgZm9ybSBoYXMgbm8gZm9ybV9idWlsZGVyIGRpc3Bvc2l0aW9uLCBvciBpdCBmYWlsZWQgdG8gaW5zdGFudGlhdGUgKGR1ZSB0byBtZW1vcnkgaXNzdWVzPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXNlICJtIiBmb3IgTW9udGgsICJkIiBmb3IgRGF5LCBhbmQgInkiIGZvciBZZWFyLiBTZXBhcmF0ZSB0aGUgaXRlbXMgYnkgaHlwaGVucy4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAn0J7RgtC+0LHRgNCw0LbQsNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lk/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXNlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGluc3RlYWQgb2Ygc3RhdGljJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdIb3cgbWFueSBudW1iZXJzIHRvIGdlbmVyYXRlIGluIHByb2Nlc3MnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAn0K3RgtC+INC/0L7Qu9C1INC80L7QttC90L4g0L7RgdGC0LDQstC40YLRjCDQv9GD0YHRgtGL0LwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAn0J/QtdGA0LXQvNC10L3QvdGL0LUg0LTQu9GPINGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ9CU0L7RgdGC0YPQv9C90YvQtSDQv9C10YDQtdC80LXQvdC90YvQtSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAn0J/QtdGA0LXQvNC10L3QvdGL0LUgUEhQJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAn0JTQsNGC0LAg0L7RgtC/0YDQsNCy0LrQuCc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAn0JLQsNGIINGB0LXRgNCy0LXRgCc7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCDQsNC00YDQtdGBINC/0LXRgNGB0L7QvdGLINC40YHQv9C+0LvRjNC30YPRjtGJ0LXQuSDRhNC+0YDQvNGDJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCDRgdGC0YDQsNC90LjRhtGLINGB0L7QtNC10YDQttCw0YnQtdC5INGE0L7RgNC80YMnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAn0JLQtdGA0YHQuNGPIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAn0KHQuNC80LLQvtC7INGC0LDQsdGD0LvRj9GG0LjQuCc7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPm5hbWU8L3RkPjx0ZCBjbGFzcz0ib2RkIj5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9Im9kZCI+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAieyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICfQn9C10YDQtdC80LXQvdC90LDRjyc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICfQn9C+0LvQtSDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90L3Qvic7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIGZpbGUgbG9jYXRlZCBpbiB0aGUgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLyBmb2xkZXIuIFRoaXMgZmllbGQgaXMgaWdub3JlZCBpZiB5b3UgdXNlIFRYVCBhcyB5b3VyIGZpbGUgdHlwZS4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Jhc2ljOiBVc2UgdGhlIHRleHRhcmVhIGJlbG93IHRvIGxheW91dCB0aGUgZmllbGQgbmFtZXMvdmFsdWVzIGluIGEgc2luZ2xlIGJsb2NrLjxiciAvPg0KQWR2YW5jZWQ6IFNwZWNpZnkgU21hcnR5IHZhcmlhYmxlcyBpbiB0aGUgUlRGIFRlbXBsYXRlIEZpbGUgYXMgeW91IHdvdWxkIGJlbG93LCBidXQgYXJyYW5nZSB0aGVtIGhvd2V2ZXIgeW91IGxpa2UgYW5kIGFkZCBmb3JtYXR0aW5nLjxiciAvPg0KJm5ic3A7WW91IGNhbiBzdGlsbCB1c2UgdGhlICUlSEVBREVSJSUgYW5kICUlRk9PVEVSJSUgc2VjdGlvbnMgaW4gdGhlIFJURiBmaWxlLic7CiRsYW5nWydoZWxwX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBIZWFkZXIgVGVtcGxhdGUuPGJyIC8+DQpGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGSUVMRFMlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUgaWYgUlRGIFRlbXBsYXRlIFR5cGUgaXMgc2V0IHRvICJCYXNpYyIuPGJyIC8+DQpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAiUlRGIiBhcyBGaWxlIFR5cGUgYW5kICJBZHZhbmNlZCIgYXMgUlRGIFRlbXBsYXRlIFR5cGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUhFQURFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRk9PVEVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJ8KrINCd0LDQt9Cw0LQg0Log0YTQvtGA0LzQtSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAn0KHQvtC30LTQsNGC0Ywg0L/RgNC+0YHRgtC+0Lkg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ9Ch0L7Qt9C00LDRgtGMINC/0YDQvtGB0YLQvtC5IEhUTUwg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAn0KHQvtC30LTQsNGC0Ywg0L/RgNC+0YHRgtC+0Lkg0YjQsNCx0LvQvtC9INC30LDQs9C+0LvQvtCy0LrQsCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ9Ch0L7Qt9C00LDRgtGMINC/0YDQvtGB0YLQvtC5INGI0LDQsdC70L7QvSDRhNGD0YLQtdGA0LAnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICfQodC+0LfQtNCw0YLRjCDQv9GA0L7RgdGC0L7QuSDQt9Cw0LPQvtC70L7QstC+0LonOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAn0YHQuNC80LLQvtC7INGC0LDQsdGD0LvRj9GG0LjQuCc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC00LvRjyDQvtC00L3QvtGB0YLRgNC+0YfQvdC+0LPQviDQstGL0YXQvtC00L3QvtCz0L4g0YTQsNC50LvQsCc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ9Co0LDQsdC70L7QvSDQtNC70Y8g0LfQsNCz0L7Qu9C+0LLQutCwINCy0YvRhdC+0LTQvdC+0LPQviDRhNCw0LnQu9CwJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAn0KjQsNCx0LvQvtC9INC00LvRjyDQv9C+0LTQstCw0LvQsCDQstGL0YXQvtC00L3QvtCz0L4g0YTQsNC50LvQsCc7CiRsYW5nWyd0aXRsZV9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSBSVEYg0YTQsNC50LvQsCDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LTQu9GPINCy0YvQstC+0LTQsCc7CiRsYW5nWyd0aXRsZV9maWxlX3R5cGUnXSA9ICfQktGL0LHRgNCw0YLRjCDRgtC40L8g0YTQsNC50LvQsCDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8nOwokbGFuZ1sndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICfQktGL0LHRgNCw0YLRjCDRgtC40L8g0YjQsNCx0LvQvtC90LAgUlRGJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90LjQtSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzblwndCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICJEaXNwb3NpdGlvbiIgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICfQlNCw0YLQsCDQvtGC0L/RgNCw0LLQutC4JzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICfQlNCw0YLQsCDRg9GC0LLQtdGA0LbQtNC10L3QuNGPICjQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNCwKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAn0JTQsNGC0LAg0YPRgtCy0LXRgNC20LTQtdC90LjRjyAo0L7RgtC/0YDQsNCy0LjRgtC10LvRjyknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAn0J7RgtC+0LHRgNCw0LbQsNGC0YwgItCo0LDQsdC70L7QvSDQvtGC0L/RgNCw0LLQutC4Iic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAn0J/QtdGA0LXQudGC0Lgg0L3QsCDRgdGC0YDQsNC90LjRhtGDINGB0LDQudGC0LAnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAiYWR2YW5jZWQiIHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAn0KHRgtGA0LDQvdC40YbQsCDQvdCw0LfQvdCw0YfQtdC90LjRjyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICfQntCx0Y/Qt9Cw0YLQtdC70YzQvdGLINC40LzQtdC90LAg0L/QvtC70LXQuSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQtSDQv9C+0LvRjyDQuNC80LXRjtGCINC90LDQt9Cy0LDQvdC40Y8/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3RiyDRg9C90LjQutCw0LvRjNC90YvQtSDQuNC80LXQvdCwINC/0L7Qu9C10LknOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQtSDQv9C+0LvRjyDQuNC80LXRjtGCINGD0L3QuNC60LDQu9GM0L3Ri9C1INC90LDQt9Cy0LDQvdC40Y8/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ9CY0LfQvNC10L3QuNGC0Ywg0L/QvtGA0Y/QtNC+0Log0L/QvtC70LXQuSc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAn0JfQsNCz0YDRg9C30LjRgtGMINGI0LDQsdC70L7QvSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICfQotC10LrRgdGCINC60L3QvtC/0LrQuCDQtNC+0LHQsNCy0LvQtdC90LjRjy/RgdC+0LfQtNCw0L3QuNGPJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ9Ci0LXQutGB0YIg0LrQvdC+0L/QutC4INGD0LTQsNC70LXQvdC40Y8nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICfQodC/0YDQsNCy0LrQsC3RgtC10LrRgdGCLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0Lkg0YEg0Y3RgtC40Lwg0L/QvtC70LXQvCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICfQodGC0YDQvtC60LAgKNCx0LXQtyDQv9GA0L7QsdC10LvQvtCyINC80LXQttC00YMg0L/QvtC70Y/QvNC4KT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ9CX0L3QsNGH0LXQvdC40LUg0LTQu9GPINGA0LDRgdGH0YfQtdGC0LAnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0NvbXB1dGVkL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICfQodGC0YDQvtC60LAnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ9Cn0LjRgdC70L4nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICfQn9C+0LrQsNC30YvQstCw0YLRjCDRhNC+0YDQvNGDINCy0YHRgtGA0L7QtdC90L3QvtC5Pyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAn0JLRgdGC0YDQvtC10L3QvdCw0Y8g0L7Qt9C90LDRh9Cw0LXRgiwg0YfRgtC+INC/0L7RgdC70LXQtNGD0Y7RidCw0Y8g0YTQvtGA0LzQsCDQt9Cw0LzQtdC90Y/QtdGCINGC0LXQsyB7Y21zX21vZHVsZX0sINC90LXQstGB0YLRgNC+0LXQvdC90LDRjyDQt9Cw0LzQtdC90Y/QtdGCINGC0LXQsyB7Y29udGVudH0uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L7Qu9GPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICfQntGH0LjRgdGC0LjRgtGMINC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0L/RgNC4INC60LvQuNC60LU/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCDQtNC70Y8g0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwg0L3QsNC/0YDQuNC80LXRgCwgb25jbGljaz0ieW91cmZuKCkiJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIi48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAic2FmZXR5IHNjcmlwdCIgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAn0J3Rg9C20L3QviDQsdC+0LvRjNGI0LUg0YLQuNC/0L7QsiDQv9C+0LvQtdC5Pyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICfQodC70LjRiNC60L7QvCDQvNC90L7Qs9C+INGC0LjQv9C+0LIg0L/QvtC70LXQuT8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICfQn9C10YDQtdC60LvRjtGH0LjRgtGM0YHRjyDQvdCwINGA0LDRgdGI0LjRgNC10L3QvdGL0Lkg0YDQtdC20LjQvCc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ9Cf0LXRgNC10LrQu9GO0YfQuNGC0Ywg0L3QsCDQv9GA0L7RgdGC0L7QuSDRgNC10LbQuNC8JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ9Ca0LDRgtCw0LvQvtCzINC00LvRjyDRgdC+0YXRgNCw0L3QtdC90LjRjyDRhNCw0LnQu9CwINCyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+DQpDaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPg0KQWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLjxiciAvPg0KSWYgbGVmdCBibGFuaywgdGhpcyB3aWxsIGRlZmF1bHQgdG8geW91ciBkZWZhdWx0IHVwbG9hZHMgZGlyZWN0b3J5ICgkY29uZmlnW1wndXBsb2Fkc19wYXRoXCddKS4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAn0J7RgtC/0YDQsNCy0LjRgtGMINC80L3QtSDQutC+0L/QuNGOINGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgXCdFbWFpbCAiU3ViamVjdCIgRmllbGRzXCcgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICfQn9C+0LrQsNC30LDRgtGMINC00LvQuNC90YMnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICfQnNC40L3QuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg0L7RgtCy0LXRgtCwJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICfQodC60YDRi9GC0Ywg0L/QvtC70LUg0LLQstC+0LTQsCc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdTaG93IHN5bWJvbHMgcmF0aGVyIHBsYWluIHRleHQgd2hlbiB1c2VyIGVudGVycyBwYXNzd29yZD8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICfQn9Cw0YDQvtC70Ywg0L3QtSDRgdC+0LLQv9Cw0LTQsNC10YIgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICfQktC10YDQvdGD0YLRjNGB0Y8g0Log0LPQu9Cw0LLQvdC+0Lkg0YHRgtGA0LDQvdC40YbQtSDQmtC+0L3RgdGC0YDRg9C60YLQvtGA0LAg0YTQvtGA0LwnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1lvdSBtdXN0IGNsaWNrIG9uZSBvZiB0aGUgInNhdmUiIGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXNlIEhUTUw1IHBsYWNlaG9sZGVyIHRleHQgaW5zdGVhZCBvZiBKYXZhc2NyaXB0JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICfQnNC+0LTRg9C70YwgQ29tcGFueSBEaXJlY3Rvcnkg0L3QtSDQtNC+0YHRgtGD0L/QtdC9ISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICfQndC40LrQvtCz0LTQsCc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICfQlNCw0YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0LLRi9Cx0L7RgCAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICfQktGB0LXQs9C00LAnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICci0J7RgiDQutC+0LPQviIgZW1haWwg0LDQtNGA0LXRgSc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICci0JrRg9C00LAiINC/0L7Rh9GC0L7QstGL0Lkg0LDQtNGA0LXRgSc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0JvdGggIkZyb20iIGFuZCAiUmVwbHktVG8iIGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm91cCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+ImNvbXBhbnkgbmFtZSI9PiJ2YWx1ZSInOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uXCdzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdFbmQgeWVhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ9CU0LDQvdC90YvQtSDQuNC70Lgg0LvQvtCz0LjQutCwIFNtYXJ0eSwg0LrQvtGC0L7RgNGL0LUg0LTQvtC70LbQvdGLINCx0YvRgtGMINC+0YLQv9GA0LDQstC70LXQvdGLINGBINGN0YLQuNC8INC/0L7Qu9C10LwnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ9Cc0L7QttC10YIg0LHRi9GC0Ywg0LTQsNC90L3Ri9C1IFNtYXJ0eSwgamF2YXNjcmlwdCDQuNC70Lgg0LTRgNGD0LPQuNC1INC00LDQvdC90YvQtSwg0LrQvtGC0L7RgNGL0LUg0LLRiyDRhdC+0YLQuNGC0LUg0L7RgtC/0YDQsNCy0LjRgtGMINCy0LzQtdGB0YLQtSDRgSDRjdGC0LjQvCDQv9C+0LvQtdC8LDxiciAvPtCx0YPQtNGD0YIg0L/RgNC+0YXQvtC00LjRgtGMINGH0LXRgNC10Lcg0LrQvtC80L/QuNC70Y/RgtC+0YAgU21hcnR5LCDQvdC1INC30LDQsdGD0LTRjNGC0LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGC0LXQsyB7bGl0ZXJhbH17L2xpdGVyYWx9INCy0LzQtdGB0YLQtSDRgSA8c2NyaXB0Pjwvc2NyaXB0Pi4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ9Cf0L7QtNC60LvRjtGH0LDRgtGMINC/0L7QtNC/0LjRgdC4KNC80LXRgtC60LgpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCddID0gJ0VuYWJsaW5nIHRoaXMgaW5jbHVkZXMgbGFiZWxzIHRvIG91dHB1dC4gZXhhbXBsZSAtIGxhYmVsOiB2YWx1ZSxsYWJlbDI6IHZhbHVlMic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5ncyddID0gJ0xpbmsgdGhpcyBmaWVsZCB0byBpdFwncyBzaWJsaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICdEcm9wZG93biBsaXN0cyBhbGwgc2libGluZ3Mgb2YgdGhpcyBmaWVsZCBhbmQgYWxsb3dzIHlvdSB0byBsaW5rIHRoaXMgZmllbGQgdG8gb25lIG9mIGl0XCdzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0hpZGUgY29udHJvbCBidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1JzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXSA9ICdDaGFuZ2luZyBhbnkgb2YgdGhlIGFib3ZlIGZpZWxkcyB3aWxsIHRyaWdnZXIgYSByZWluZGV4IG9mICphbGwqIHNhdmVkIHJlY29yZHMsIHNvIGl0IGNvdWxkIHRha2UgYSB3aGlsZS4nOwokbGFuZ1snaWxsZWdhbF9maWxlJ10gPSAnQXR0ZW1wdGVkIHVwbG9hZCBvZiBpbGxlZ2FsIGZpbGUgdHlwZSAoJXMpIGZyb20gJXMnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZSddID0gJ01ha2UgcmVjb3JkcyBhY2Nlc3NpYmxlIHRvIFNlYXJjaCBNb2R1bGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ10gPSAnQ2hlY2tpbmcgdGhpcyB3aWxsIG1ha2UgYWxsIHN1Ym1pdHRlZCBkYXRhIGFjY2Vzc2libGUgdG8gdGhlIFNlYXJjaCBNb2R1bGUuIERPIE5PVCB1c2UgdGhpcyBpZiB5b3UgZW5jcnlwdCB5b3VyIGRhdGEgLS0gdGhlIGluZm9ybWF0aW9uIGdldHMgZXhwb3NlZCB0byBzZWFyY2ggd2hldGhlciBvciBub3QgaXQgaXMgZW5jcnlwdGVkISc7CiRsYW5nWyd1cGxvYWRlZF9vdXRzaWRlX3dlYnJvb3QnXSA9ICclcyAob3V0c2lkZSB3ZWIgcm9vdCknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXSA9ICdFZGl0YWJsZSBpbiBGb3JtQnJvd3NlciBBZG1pbj8nOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ1VzZXIgZGVmaW5lZCB0YWcgJXMgcmV0dXJuZWQgYW4gZXJyb3IuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+0JzQvtC00YPQu9GMIENhdGFsb2dlciDQvdC1INGD0YHRgtCw0L3QvtCy0LvQtdC9INC40LvQuCDQvdC1INCw0LrRgtC40LLQtdC9Ljwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAn0J/QoNCV0JTQo9Cf0KDQldCW0JTQldCd0JjQlSEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAn0KLQsNCx0LvQuNGH0L3Ri9C5INGI0LDQsdC70L7QvSwg0L/QvtC00L/QuNGB0Lgg0YHQu9C10LLQsCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICfQotCw0LHQu9C40YfQvdGL0Lkg0YjQsNCx0LvQvtC9LCDQv9C+0LTQv9C40YHQuCDRgdCy0LXRgNGF0YMnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICfQntGI0LjQsdC60LAg0L/RgNC4INGA0LDRgdGH0LXRgtC1ICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICfQlNC+0LHQsNCy0LvQtdC90LjQtSwg0LjQt9C80LXQvdC10L3QuNC1INC4INGD0L/RgNCw0LLQu9C10L3QuNC1INGA0LDQsdC+0YLQvtC5INC40L3RgtC10YDQsNC60YLQuNCy0L3Ri9GFINGE0L7RgNC8JzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtSDQuNC90YLQtdGA0YTQtdC50YHQsCDQvNC+0LTRg9C70Y8nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPg0KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnXCd9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCdcJ30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCc6OlwnfGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJyBjaGVja2VkPSJjaGVja2VkIlwnfQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9IlByb2R1Y3REaXJlY3RvcnlJdGVtIj4NCgkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0iIG5hbWU9InskRkJpZH1bXSIgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSDCo3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSJjYXQiIHN1bW1hcnl0ZW1wbGF0ZT0iWW91cl9GQl90ZW1wbGF0ZSJ9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINGB0LLQvtC5INGC0LXQsyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICfRj9C90LLQsNGA0YwnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ9GE0LXQstGA0LDQu9GMJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICfQvNCw0YDRgic7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAn0LDQv9GA0LXQu9GMJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAn0LzQsNC5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ9C40Y7QvdGMJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ9C40Y7Qu9GMJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAn0LDQstCz0YPRgdGCJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAn0YHQtdC90YLRj9Cx0YDRjCc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICfQvtC60YLRj9Cx0YDRjCc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAn0L3QvtGP0LHRgNGMJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICfQtNC10LrQsNCx0YDRjCc7CiRsYW5nWydBRiddID0gJ9CQ0YTQs9Cw0L3QuNGB0YLQsNC9JzsKJGxhbmdbJ0FYJ10gPSAn0JDQu9Cw0L3QtNGB0LrQuNC1INC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0FMJ10gPSAn0JDQu9Cx0LDQvdC40Y8nOwokbGFuZ1snRFonXSA9ICfQkNC70LbQuNGAJzsKJGxhbmdbJ0FTJ10gPSAn0JDQvNC10YDQuNC60LDQvdGB0LrQvtC1INCh0LDQvNC+0LAnOwokbGFuZ1snQUQnXSA9ICfQkNC90LTQvtGA0YDQsCc7CiRsYW5nWydBTyddID0gJ9CQ0L3Qs9C+0LvQsCc7CiRsYW5nWydBSSddID0gJ9CQ0L3Qs9C40LvRjNGPJzsKJGxhbmdbJ0FRJ10gPSAn0JDQvdGC0LDRgNC60YLQuNC00LAnOwokbGFuZ1snQUcnXSA9ICfQkNC90YLQuNCz0YPQsCDQuCDQkdCw0YDQsdGD0LTQsCc7CiRsYW5nWydBUiddID0gJ9CQ0YDQs9C10L3RgtC40L3QsCc7CiRsYW5nWydBTSddID0gJ9CQ0YDQvNC10L3QuNGPJzsKJGxhbmdbJ0FXJ10gPSAn0JDRgNGD0LHQsCc7CiRsYW5nWydBVSddID0gJ9CQ0LLRgdGC0YDQsNC70LjRjyc7CiRsYW5nWydBVCddID0gJ9CQ0LLRgdGC0YDQuNGPJzsKJGxhbmdbJ0FaJ10gPSAn0JDQt9C10YDQsdCw0LnQtNC20LDQvSc7CiRsYW5nWydCUyddID0gJ9CR0LDQs9Cw0LzRgdC60LjQtSDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydCSCddID0gJ9CR0LDRhdGA0LXQudC9JzsKJGxhbmdbJ0JCJ10gPSAn0JHQsNGA0LHQsNC00L7RgSc7CiRsYW5nWydCRCddID0gJ9CR0LDQvdCz0LvQsNC00LXRiCc7CiRsYW5nWydCWSddID0gJ9CR0LXQu9Cw0YDRg9GB0YwnOwokbGFuZ1snQkUnXSA9ICfQkdC10LvRjNCz0LjRjyc7CiRsYW5nWydCWiddID0gJ9CR0LXQu9C40LcnOwokbGFuZ1snQkonXSA9ICfQkdC10L3QuNC9JzsKJGxhbmdbJ0JNJ10gPSAn0JHQtdGA0LzRg9C00YHQutC40LUg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snQlQnXSA9ICfQkdGD0YLQsNC9JzsKJGxhbmdbJ0JXJ10gPSAn0JHQvtGC0YHQstCw0L3QsCc7CiRsYW5nWydCTyddID0gJ9CR0L7Qu9C40LLQuNGPJzsKJGxhbmdbJ0JBJ10gPSAn0JHQvtGB0L3QuNGPINC4INCT0LXRgNGG0LXQs9C+0LLQuNC90LAnOwokbGFuZ1snQlYnXSA9ICfQntGB0YLRgNC+0LIg0JHRg9Cy0LUnOwokbGFuZ1snQlInXSA9ICfQkdGA0LDQt9C40LvQuNGPJzsKJGxhbmdbJ0lPJ10gPSAn0JHRgNC40YLQsNC90YHQutCw0Y8g0YLQtdGA0YDQuNGC0L7RgNC40Y8g0LIg0JjQvdC00LjQudGB0LrQvtC8INC+0LrQtdCw0L3QtSc7CiRsYW5nWydCTiddID0gJ9CR0YDRg9C90LXQuS3QlNCw0YDRg9GB0YHQsNC70LDQvCc7CiRsYW5nWydCRyddID0gJ9CR0L7Qu9Cz0LDRgNC40Y8nOwokbGFuZ1snQkYnXSA9ICfQkdGD0YDQutC40L3QsC3QpNCw0YHQvic7CiRsYW5nWydCSSddID0gJ9CR0YPRgNGD0L3QtNC4JzsKJGxhbmdbJ0tIJ10gPSAn0JrQsNC80LHQvtC00LbQsCc7CiRsYW5nWydDTSddID0gJ9Ca0LDQvNC10YDRg9C9JzsKJGxhbmdbJ0NBJ10gPSAn0JrQsNC90LDQtNCwJzsKJGxhbmdbJ0NWJ10gPSAn0JrQsNCx0L4t0JLQtdGA0LTQtSc7CiRsYW5nWydLWSddID0gJ9Ca0LDQudC80LDQvdC+0LLRiyDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydDRiddID0gJ9Cm0LXQvdGC0YDQsNC70YzQvdC+LdCQ0YTRgNC40LrQsNC90YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAnOwokbGFuZ1snVEQnXSA9ICfQp9Cw0LQnOwokbGFuZ1snQ0wnXSA9ICfQp9C40LvQuCc7CiRsYW5nWydDTiddID0gJ9Ca0LjRgtCw0LknOwokbGFuZ1snQ1gnXSA9ICfQntGB0YLRgNC+0LIg0KDQvtC20LTQtdGB0YLQstCwJzsKJGxhbmdbJ0NDJ10gPSAn0JrQvtC60L7RgdC+0LLRi9C1ICjQmtC40LvQuNC90LMpINC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0NPJ10gPSAn0JrQvtC70YPQvNCx0LjRjyc7CiRsYW5nWydLTSddID0gJ9Ca0L7QvNC+0YDRgdC60LjQtSDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydDRyddID0gJ9Ca0L7QvdCz0L4nOwokbGFuZ1snQ0QnXSA9ICfQlNC10LzQvtC60YDQsNGC0LjRh9C10YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0JrQvtC90LPQvic7CiRsYW5nWydDSyddID0gJ9Ce0YHRgtGA0L7QstCwINCa0YPQutCwJzsKJGxhbmdbJ0NSJ10gPSAn0JrQvtGB0YLQsC3QoNC40LrQsCc7CiRsYW5nWydDSSddID0gJ9CUXCfQmNCy0YPQsNGAICjQkdC10YDQtdCzINCh0LvQvtC90L7QstC+0Lkg0JrQvtGB0YLQuCknOwokbGFuZ1snSFInXSA9ICfQpdC+0YDQstCw0YLQuNGPIChIcnZhdHNrYSknOwokbGFuZ1snQ1UnXSA9ICfQmtGD0LHQsCc7CiRsYW5nWydDWSddID0gJ9Ca0LjQv9GAJzsKJGxhbmdbJ0NaJ10gPSAn0KfQtdGI0YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAnOwokbGFuZ1snREsnXSA9ICfQlNCw0L3QuNGPJzsKJGxhbmdbJ0RKJ10gPSAn0JTQttC40LHRg9GC0LgnOwokbGFuZ1snRE0nXSA9ICfQlNC+0LzQuNC90LjQutCwJzsKJGxhbmdbJ0RPJ10gPSAn0JTQvtC80LjQvdC40LrQsNC90YHQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAnOwokbGFuZ1snVFAnXSA9ICfQktC+0YHRgtC+0YfQvdGL0Lkg0KLQuNC80L7RgCc7CiRsYW5nWydFQyddID0gJ9Ct0LrQstCw0LTQvtGAJzsKJGxhbmdbJ0VHJ10gPSAn0JXQs9C40L/QtdGCJzsKJGxhbmdbJ1NWJ10gPSAn0KHQsNC70YzQstCw0LTQvtGAJzsKJGxhbmdbJ0dRJ10gPSAn0K3QutCy0LDRgtC+0YDQuNCw0LvRjNC90LDRjyDQk9Cy0LjQvdC10Y8nOwokbGFuZ1snRVInXSA9ICfQrdGA0LjRgtGA0LXRjyc7CiRsYW5nWydFRSddID0gJ9Ct0YHRgtC+0L3QuNGPJzsKJGxhbmdbJ0VUJ10gPSAn0K3RhNC40L7Qv9C40Y8nOwokbGFuZ1snRksnXSA9ICfQpNC+0LvQutC70LXQvdC00YHQutC40LUgKNCc0LDQu9GM0LLQuNC90YHQutC40LUpINC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0ZPJ10gPSAn0KTQsNGA0LXRgNGB0LrQuNC1INC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0ZKJ10gPSAn0KTQuNC00LbQuCc7CiRsYW5nWydGSSddID0gJ9Ck0LjQvdC70Y/QvdC00LjRjyc7CiRsYW5nWydGUiddID0gJ9Ck0YDQsNC90YbQuNGPJzsKJGxhbmdbJ0ZYJ10gPSAn0KTRgNCw0L3RhtC40Y8sINC80LjRgtGA0L7Qv9C+0LvQuNGCJzsKJGxhbmdbJ0dGJ10gPSAn0JPQtdGA0L3RgdC4JzsKJGxhbmdbJ1BGJ10gPSAn0KTRgNCw0L3RhtGD0LfRgdC60LDRjyDQn9C+0LvQuNC90LXQt9C40Y8nOwokbGFuZ1snVEYnXSA9ICfQpNGA0LDQvdGG0YPQt9GB0LrQuNC1INGO0LbQvdGL0LUg0YLQtdGA0YDQuNGC0L7RgNC40LgnOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uICjQnNCw0LrQtdC00L7QvdC40Y8pJzsKJGxhbmdbJ0dBJ10gPSAn0JPQsNCx0L7QvSc7CiRsYW5nWydHTSddID0gJ9CT0LDQvNCx0LjRjyc7CiRsYW5nWydHRSddID0gJ9CT0YDRg9C30LjRjyc7CiRsYW5nWydERSddID0gJ9CT0LXRgNC80LDQvdC40Y8nOwokbGFuZ1snR0gnXSA9ICfQk9Cw0L3QsCc7CiRsYW5nWydHSSddID0gJ9CT0LjQsdGA0LDQu9GC0LDRgCc7CiRsYW5nWydHQiddID0gJ9CS0LXQu9C40LrQvtCx0YDQuNGC0LDQvdC40Y8gKFVLKSc7CiRsYW5nWydHUiddID0gJ9CT0YDQtdGG0LjRjyc7CiRsYW5nWydHTCddID0gJ9CT0YDQtdC90LvQsNC90LTQuNGPJzsKJGxhbmdbJ0dEJ10gPSAn0JPRgNC10L3QsNC00LAnOwokbGFuZ1snR1AnXSA9ICfQk9Cy0LDQtNC10LvRg9C/0LAnOwokbGFuZ1snR1UnXSA9ICfQk9GD0LDQvCc7CiRsYW5nWydHVCddID0gJ9CT0LLQsNGC0LXQvNCw0LvQsCc7CiRsYW5nWydHTiddID0gJ9CT0LLQuNC90LXRjyc7CiRsYW5nWydHVyddID0gJ9CT0LLQuNC90LXRjy3QkdC40YHQsNGDJzsKJGxhbmdbJ0dZJ10gPSAn0JPQsNC50LDQvdCwJzsKJGxhbmdbJ0hUJ10gPSAn0JPQsNC40YLQuCc7CiRsYW5nWydITSddID0gJ9Cl0LXRgNC0INC4INCc0LDQutC00L7QvdCw0LvRjNC0JzsKJGxhbmdbJ0hOJ10gPSAn0JPQvtC90LTRg9GA0LDRgSc7CiRsYW5nWydISyddID0gJ9CT0L7QvdC60L7QvdCzJzsKJGxhbmdbJ0hVJ10gPSAn0JLQtdC90LPRgNC40Y8nOwokbGFuZ1snSVMnXSA9ICfQmNGB0LvQsNC90LTQuNGPJzsKJGxhbmdbJ0lOJ10gPSAn0JjQvdC00LjRjyc7CiRsYW5nWydJRCddID0gJ9CY0L3QtNC+0L3QtdC30LjRjyc7CiRsYW5nWydJUiddID0gJ9CY0YDQsNC9JzsKJGxhbmdbJ0lRJ10gPSAn0JjRgNCw0LonOwokbGFuZ1snSUUnXSA9ICfQmNGA0LvQsNC90LTQuNGPJzsKJGxhbmdbJ0lMJ10gPSAn0JjQt9GA0LDQuNC70YwnOwokbGFuZ1snSU0nXSA9ICfQntGB0YLRgNC+0LIg0JzRjdC9JzsKJGxhbmdbJ0lUJ10gPSAn0JjRgtCw0LvQuNGPJzsKJGxhbmdbJ0pFJ10gPSAn0JTQttC10YDRgdC4JzsKJGxhbmdbJ0pNJ10gPSAn0K/QvNCw0LnQutCwJzsKJGxhbmdbJ0pQJ10gPSAn0K/Qv9C+0L3QuNGPJzsKJGxhbmdbJ0pPJ10gPSAn0JjQvtGA0LTQsNC90LjRjyc7CiRsYW5nWydLWiddID0gJ9Ca0LDQt9Cw0YXRgdGC0LDQvSc7CiRsYW5nWydLRSddID0gJ9Ca0LXQvdC40Y8nOwokbGFuZ1snS0knXSA9ICfQmtC40YDQuNCx0LDRgtC4JzsKJGxhbmdbJ0tQJ10gPSAn0JrQvtGA0LXRjyAoTm9ydGgpJzsKJGxhbmdbJ0tSJ10gPSAn0JrQvtGA0LXRjyAoU291dGgpJzsKJGxhbmdbJ0tXJ10gPSAn0JrRg9Cy0LXQudGCJzsKJGxhbmdbJ0tHJ10gPSAn0JrRi9GA0LPRi9C30YHRgtCw0L0nOwokbGFuZ1snTEEnXSA9ICfQm9Cw0L7RgSc7CiRsYW5nWydMViddID0gJ9Cb0LDRgtCy0LjRjyc7CiRsYW5nWydMQiddID0gJ9Cb0LjQstCw0L0nOwokbGFuZ1snTEknXSA9ICfQm9C40YXRgtC10L3RiNGC0LXQudC9JzsKJGxhbmdbJ0xSJ10gPSAn0JvQuNCx0LXRgNC40LgnOwokbGFuZ1snTFknXSA9ICfQm9C40LLQuNGPJzsKJGxhbmdbJ0xTJ10gPSAn0JvQtdGB0L7RgtC+JzsKJGxhbmdbJ0xUJ10gPSAn0JvQuNGC0LLQsCc7CiRsYW5nWydMVSddID0gJ9Cb0Y7QutGB0LXQvNCx0YPRgNCzJzsKJGxhbmdbJ01PJ10gPSAn0JzQsNC60LDQvic7CiRsYW5nWydNRyddID0gJ9Cc0LDQtNCw0LPQsNGB0LrQsNGAJzsKJGxhbmdbJ01XJ10gPSAn0JzQsNC70LDQstC4JzsKJGxhbmdbJ01ZJ10gPSAn0JzQsNC70LDQudC30LjRjyc7CiRsYW5nWydNViddID0gJ9Cc0LDQu9GM0LTQuNCy0YsnOwokbGFuZ1snTUwnXSA9ICfQnNCw0LvQuCc7CiRsYW5nWydNVCddID0gJ9Cc0LDQu9GM0YLQsCc7CiRsYW5nWydNSCddID0gJ9Cc0LDRgNGI0LDQu9C70L7QstGLINC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ01RJ10gPSAn0JzQsNGA0YLQuNC90LjQutCwJzsKJGxhbmdbJ01SJ10gPSAn0JzQsNCy0YDQuNGC0LDQvdC40Y8nOwokbGFuZ1snTVUnXSA9ICfQnNCw0LLRgNC40LrQuNC5JzsKJGxhbmdbJ1lUJ10gPSAn0JzQsNC50L7RgtGC0LAnOwokbGFuZ1snTVgnXSA9ICfQnNC10LrRgdC40LrQsCc7CiRsYW5nWydGTSddID0gJ9Cc0LjQutGA0L7QvdC10LfQuNGPJzsKJGxhbmdbJ01DJ10gPSAn0JzQvtC90LDQutC+JzsKJGxhbmdbJ01EJ10gPSAn0JzQvtC70LTQvtCy0LAnOwokbGFuZ1snTUEnXSA9ICfQnNC+0YDQvtC60LrQvic7CiRsYW5nWydNTiddID0gJ9Cc0L7QvdCz0L7Qu9C40Y8nOwokbGFuZ1snTVMnXSA9ICfQnNC+0L3RgtGB0LXRgNGA0LDRgic7CiRsYW5nWydNWiddID0gJ9Cc0L7Qt9Cw0LzQsdC40LonOwokbGFuZ1snTU0nXSA9ICfQnNGM0Y/QvdC80YsnOwokbGFuZ1snTkEnXSA9ICfQndCw0LzQuNCx0LjRjyc7CiRsYW5nWydOUiddID0gJ9Cd0LDRg9GA0YMnOwokbGFuZ1snTlAnXSA9ICfQndC10L/QsNC7JzsKJGxhbmdbJ05MJ10gPSAn0J3QuNC00LXRgNC70LDQvdC00YsnOwokbGFuZ1snQU4nXSA9ICfQndC40LTQtdGA0LvQsNC90LTRgdC60LjQtSDQkNC90YLQuNC70YzRgdC60LjQtSDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydOVCddID0gJ9Cd0LXQudGC0YDQsNC70YzQvdCw0Y8g0LfQvtC90LAnOwokbGFuZ1snTkMnXSA9ICfQndC+0LLQsNGPINCa0LDQu9C10LTQvtC90LjRjyc7CiRsYW5nWydOWiddID0gJ9Cd0L7QstCw0Y8g0JfQtdC70LDQvdC00LjRjyAo0JDQvtGC0LXQsNGA0L7QsCknOwokbGFuZ1snTkknXSA9ICfQndC40LrQsNGA0LDQs9GD0LAnOwokbGFuZ1snTkUnXSA9ICfQndC40LPQtdGAJzsKJGxhbmdbJ05HJ10gPSAn0J3QuNCz0LXRgNC40Y8nOwokbGFuZ1snTlUnXSA9ICfQndC40YPRjSc7CiRsYW5nWydORiddID0gJ9Ce0YHRgtGA0L7QsiDQndC+0YDRhNC+0LvQuic7CiRsYW5nWydNUCddID0gJ9Ch0LXQstC10YDQvdGL0LUg0JzQsNGA0LjQsNC90YHQutC40LUg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snTk8nXSA9ICfQndC+0YDQstC10LPQuNGPJzsKJGxhbmdbJ09NJ10gPSAn0J7QvNCw0L0nOwokbGFuZ1snUEsnXSA9ICfQn9Cw0LrQuNGB0YLQsNC9JzsKJGxhbmdbJ1BXJ10gPSAn0J/QsNC70LDRgyc7CiRsYW5nWydQUyddID0gJ9Cf0LDQu9C10YHRgtC40L3RgdC60LDRjyDRgtC10YDRgNC40YLQvtGA0LjRjyc7CiRsYW5nWydQQSddID0gJ9Cf0LDQvdCw0LzQsCc7CiRsYW5nWydQRyddID0gJ9Cf0LDQv9GD0LAt0J3QvtCy0LDRjyDQk9Cy0LjQvdC10Y8nOwokbGFuZ1snUFknXSA9ICfQn9Cw0YDQsNCz0LLQsNC5JzsKJGxhbmdbJ1BFJ10gPSAn0J/QtdGA0YMnOwokbGFuZ1snUEgnXSA9ICfQpNC40LvQuNC/0L/QuNC90YsnOwokbGFuZ1snUE4nXSA9ICfQn9C40YLQutGN0YDQvSc7CiRsYW5nWydQTCddID0gJ9Cf0L7Qu9GM0YjQsCc7CiRsYW5nWydQVCddID0gJ9Cf0L7RgNGC0YPQs9Cw0LvQuNGPJzsKJGxhbmdbJ1BSJ10gPSAn0J/Rg9GN0YDRgtC+INCg0LjQutC+JzsKJGxhbmdbJ1FBJ10gPSAn0JrQsNGC0LDRgCc7CiRsYW5nWydSRSddID0gJ9CS0L7RgdGB0L7QtdC00LjQvdC10L3QuNC1JzsKJGxhbmdbJ1JPJ10gPSAn0KDRg9C80YvQvdC40Y8nOwokbGFuZ1snUlUnXSA9ICfQoNC+0YHRgdC40Y/RgdC60LDRjyDQpNC10LTQtdGA0LDRhtC40Y8nOwokbGFuZ1snUlcnXSA9ICfQoNGD0LDQvdC00LAnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLiAnOwokbGFuZ1snS04nXSA9ICfQodC10L3Rgi3QmtC40YLRgSDQuCDQndC10LLQuNGBJzsKJGxhbmdbJ0xDJ10gPSAn0KHQtdC90YIt0JvRjtGB0LjRjyc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgJiB0aGUgR3JlbmFkaW5lcyc7CiRsYW5nWydXUyddID0gJ9Ch0LDQvNC+0LAnOwokbGFuZ1snU00nXSA9ICfQodCw0L0gLSDQnNCw0YDQuNC90L4nOwokbGFuZ1snU1QnXSA9ICfQodCw0L0t0KLQvtC80LUg0Lgg0J/RgNC40L3RgdC40L/QuCc7CiRsYW5nWydTQSddID0gJ9Ch0LDRg9C00L7QstGB0LrQsNGPINCQ0YDQsNCy0LjRjyc7CiRsYW5nWydTTiddID0gJ9Ch0LXQvdC10LPQsNC7JzsKJGxhbmdbJ1NDJ10gPSAn0KHQtdC50YjQtdC70YzRgdC60LjQtSDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydTTCddID0gJ9Ch0YzQtdGA0YDQsC3Qm9C10L7QvdC1JzsKJGxhbmdbJ1NHJ10gPSAn0KHQuNC90LPQsNC/0YPRgCc7CiRsYW5nWydTSSddID0gJ9Ch0LvQvtCy0LXQvdC40Y8nOwokbGFuZ1snU0snXSA9ICfQodC70L7QstCw0YbQutCw0Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60LAnOwokbGFuZ1snU0InXSA9ICfQodC+0LvQvtC80L7QvdC+0LLRiyDQntGB0YLRgNC+0LLQsCc7CiRsYW5nWydTTyddID0gJ9Ch0L7QvNCw0LvQuCc7CiRsYW5nWydaQSddID0gJ9Cu0LbQvdCw0Y8g0JDRhNGA0LjQutCwJzsKJGxhbmdbJ0VTJ10gPSAn0JjRgdC/0LDQvdC40Y8nOwokbGFuZ1snTEsnXSA9ICfQqNGA0Lgt0JvQsNC90LrQsCc7CiRsYW5nWydTSCddID0gJ9Ch0LIuINCV0LvQtdC90YsnOwokbGFuZ1snUE0nXSA9ICfQodC10L0t0J/RjNC10YAg0Lgg0JzQuNC60LXQu9C+0L0nOwokbGFuZ1snU0QnXSA9ICfQodGD0LTQsNC9JzsKJGxhbmdbJ1NSJ10gPSAn0KHRg9GA0LjQvdCw0LwnOwokbGFuZ1snU0onXSA9ICdTdmFsYmFyZCAmIEphbiBNYXllbiBJc2xhbmRzJzsKJGxhbmdbJ1NaJ10gPSAn0KHQstCw0LfQuNC70LXQvdC0JzsKJGxhbmdbJ1NFJ10gPSAn0KjQstC10YbQuNGPJzsKJGxhbmdbJ0NIJ10gPSAn0KjQstC10LnRhtCw0YDQuNGPJzsKJGxhbmdbJ1NZJ10gPSAn0KHQuNGA0LjRjyc7CiRsYW5nWydUVyddID0gJ9Ci0LDQudCy0LDQvdGMJzsKJGxhbmdbJ1RKJ10gPSAn0KLQsNC00LbQuNC60LjRgdGC0LDQvSc7CiRsYW5nWydUWiddID0gJ9Ci0LDQvdC30LDQvdC40Y8nOwokbGFuZ1snVEgnXSA9ICfQotCw0LnQu9Cw0L3QtCc7CiRsYW5nWydURyddID0gJ9Ci0L7Qs9C+JzsKJGxhbmdbJ1RLJ10gPSAn0KLQvtC60LXQu9Cw0YMnOwokbGFuZ1snVE8nXSA9ICfQotC+0L3Qs9CwJzsKJGxhbmdbJ1RUJ10gPSAn0KLRgNC40L3QuNC00LDQtCDQuCDQotC+0LHQsNCz0L4nOwokbGFuZ1snVE4nXSA9ICfQotGD0L3QuNGBJzsKJGxhbmdbJ1RSJ10gPSAn0KLRg9GA0YbQuNGPJzsKJGxhbmdbJ1RNJ10gPSAn0KLRg9GA0LrQvNC10L3QuNGB0YLQsNC9JzsKJGxhbmdbJ1RDJ10gPSAn0J7RgdGC0YDQvtCy0LAg0KLQtdGA0LrRgSDQuCDQmtCw0LnQutC+0YEnOwokbGFuZ1snVFYnXSA9ICfQotGD0LLQsNC70YMnOwokbGFuZ1snVUcnXSA9ICfQo9Cz0LDQvdC00LAnOwokbGFuZ1snVUEnXSA9ICfQo9C60YDQsNC40L3QsCc7CiRsYW5nWydBRSddID0gJ9Ce0LHRitC10LTQuNC90LXQvdC90YvQtSDQkNGA0LDQsdGB0LrQuNC1INCt0LzQuNGA0LDRgtGLJzsKJGxhbmdbJ1VLJ10gPSAn0KHQvtC10LTQuNC90LXQvdC90L7QtSDQmtC+0YDQvtC70LXQstGB0YLQstC+JzsKJGxhbmdbJ1VTJ10gPSAn0KHQvtC10LTQuNC90LXQvdC90YvQtSDQqNGC0LDRgtGLJzsKJGxhbmdbJ1VNJ10gPSAn0KHQqNCQINCS0L3QtdGI0L3QuNC1INC80LDQu9GL0LUg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snVVknXSA9ICfQo9GA0YPQs9Cy0LDQuSc7CiRsYW5nWydVWiddID0gJ9Cj0LfQsdC10LrQuNGB0YLQsNC9JzsKJGxhbmdbJ1ZVJ10gPSAn0JLQsNC90YPQsNGC0YMnOwokbGFuZ1snVkEnXSA9ICfQk9C+0YHRg9C00LDRgNGB0YLQstC+LdCz0L7RgNC+0LQg0JLQsNGC0LjQutCw0L0gKNCh0LLRj9GC0LXQudGI0LjQuSDQn9GA0LXRgdGC0L7QuyknOwokbGFuZ1snVkUnXSA9ICfQktC10L3QtdGB0YPRjdC70LAnOwokbGFuZ1snVk4nXSA9ICfQktGM0LXRgtC90LDQvCc7CiRsYW5nWydWRyddID0gJ9CS0LjRgNCz0LjQvdGB0LrQuNC1INC+0YHRgtGA0L7QstCwICjQkdGA0LjRgtCw0L3RgdC60LjQtSknOwokbGFuZ1snVkknXSA9ICfQktC40YDQs9C40L3RgdC60LjQtSDQvtGB0YLRgNC+0LLQsCAo0KHQqNCQKSc7CiRsYW5nWydXRiddID0gJ9Ce0YHRgtGA0L7QstCwINCj0L7Qu9C70LjRgSDQuCDQpNGD0YLRg9C90LAnOwokbGFuZ1snRUgnXSA9ICfQl9Cw0L/QsNC00L3QsNGPINCh0LDRhdCw0YDQsCc7CiRsYW5nWydZRSddID0gJ9CZ0LXQvNC10L0nOwokbGFuZ1snWVUnXSA9ICfQrtCz0L7RgdC70LDQstC40Y8nOwokbGFuZ1snWk0nXSA9ICfQl9Cw0LzQsdC40Y8nOwokbGFuZ1snWlcnXSA9ICfQl9C40LzQsdCw0LHQstC1JzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICfQndC1INC80L7Qs9GDINC90LDQudGC0Lgg0LzQvtC00YPQu9GMINC+0YLQv9GA0LDQstC60LgnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ9Cf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOOiDQvdC1INC+0YLQvNC10YfQtdC90L4nOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAn0J/QviDRg9C80L7Qu9GH0LDQvdC40Y46INC+0YLQvNC10YfQtdC90L4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+0KjQsNCx0LvQvtC9IEVtYWlsINC10YnQtSDQvdC1INCz0L7RgtC+0LIhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiDQndC1INGD0LTQsNC10YLRgdGPINC+0LHQvdCw0YDRg9C20LjRgtGMINC90LXQvtCx0YXQvtC00LjQvNGL0Lkg0LzQvtC00YPQu9GMIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICfQmNC80Y8g0YTQvtGA0LzRiyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEINGE0L7RgNC80Ysg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QuNGFINC+0L/QtdGA0LDRhtC40LknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICfQntCx0YnQuNC1INC/0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0LLQvdGD0YLRgNC10L3QvdC40YUg0L7Qv9C10YDQsNGG0LjQuSc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPtCf0LXRgNC10LzQtdC90L3Ri9C1INGI0LDQsdC70L7QvdCwINGE0L7RgNC80Ys8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCdkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCdzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZFwncyBoZWxwIHRleHQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkXCdzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0iZm9vIik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQ0KYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+dmFsdWV9ICkuDQpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPg0KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnRm9ybUJ1aWxkZXIg0YPRgdGC0LDQvdC+0LLQu9C10L0uINCf0L7QttCw0LvRg9C50YHRgtCwLCDQvtC30L3QsNC60L7QvNGM0YLQtdGB0Ywg0YEgINC00L7QutGD0LzQtdC90YLQsNGG0LjQtdC5INC90LAg0YHRgtGA0LDQvdC40YbQtSDRgdC/0YDQsNCy0LrQuCAg0LzQvtC00YPQu9GPLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmb3JtcyAoaW4gZmFjdCwgaXRcJ3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoDQp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3VcJ3JlDQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPVwnc2FtcGxlX2Zvcm1cJ308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlXCdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoIiksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzIChcJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtXCdzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3VcJ2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlclwncyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoIlByZXZpb3VzIiwgIm5leHQiLCAic3VibWl0IikuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtXCdzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91XCdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb25cJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkIFwnRGlzcGxheSAiU3VibWlzc2lvbiBUZW1wbGF0ZSIsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91XCdyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXRcJ3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdFwncyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAiUmVxdWlyZWQiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICJ2aWV3IHNvdXJjZSIgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zXCd0IGRvIGFueXRoaW5nLCBidXQgeW91IGNhbiBob29rIGl0IGludG8gc29tZSBKYXZhc2NyaXB0LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0XCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlBhc3N3b3JkLiBUaGlzIGlzIGFuIGFzdGVyaXNrZWQtb3V0IHRleHQgZmllbGQsIHVzZWZ1bCBmb3IgcGFzc3dvcmRzLjwvbGk+DQo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbg0KdG8gc3VjY2VlZC48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgIkZyb20gTmFtZSIgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAiU3ViamVjdCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3VcJ3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPg0KPC91bD48L2xpPg0KPGxpPi1Nb2R1bGUgSW5jbHVkZSBUYWcuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBvdGhlciBtb2R1bGUgb3V0cHV0IGludG8geW91ciBmb3JtLCBlLmcuLCBhIGxpc3Qgb2YgcHJvZHVjdHMgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlLjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zW1wnZmllbGRfbmFtZVwnXSwgYW5kIGFzICRwYXJhbXNbXCdmaWVsZF9hbGlhc1wnXSAoaWYgZGVmaW5lZCkuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCBkZXNjcmliZWQgYWJvdmUsIGJ1dCBpdCBwcm92aWRlcyBvcHRpb25zIGZvciBzZW5kaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0cyB0byB0aGUgdXNlci48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHJlc3VsdHMgYmFzZWQgb24gZnJvbnRlbmQgZmllbGRzLiBUaGlzIGZpZWxkIGlzIGFuIGVtYWlsIGRpc3Bvc2l0aW9uIHRoYXQgYWxsb3dzIGZvcm0gZmllbGRzXCcgdXNlciBpbnB1dCB0byBzcGVjaWZ5IHRoZSBFbWFpbCBTdWJqZWN0LCAiRnJvbSBOYW1lIiwgIkZyb20gQWRkcmVzcyIsIGFuZCBEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiA8c3Ryb25nPkRlcHJlY2F0ZWQuPC9zdHJvbmc+IFVzZSBTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgaW5zdGVhZCEgVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAiYXBwcm92ZWQsIiBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZVwncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIHRvIGEgdW5pcXVlIHRleHQgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb24uDQpZb3UgY2FuIHNwZWNpZnkgYSBmaWxlbmFtZSBwYXR0ZXJuIHVzaW5nIHZhbHVlcyBmcm9tIGZvcm0gZmllbGRzLCBzZXQgaXRzIGZvcm1hdCwgYW5kIHNldCB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBmaWxlcyB3aWxsIGJlIHN0b3JlZC48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyBpcyB0aGUgb25seSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyLiBTZWUgc2VjdGlvbiBiZWxvdy48L2xpPg0KPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4NCg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e0Zvcm1CdWlsZGVyIGZvcm09XCdteV9mb3JtXCcgdmFsdWVfPGk+RklFTEROQU1FPC9pPj1cJ2RlZmF1bHRfdmFsdWVcJ308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gXCdkZWZhdWx0X3ZhbHVlXCcuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53aWVsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uXCd0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdVwnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGljaCB5b3UgY2FuIHVzZS48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdVwndmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0XCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAiQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlIiBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPlVzZSB3aXRoIEZvcm1Ccm93c2VyIHYzPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXINCnF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UNCndpbGwgaGF2ZSB0byBjaG9vc2UgdXAgZnJvbnQgd2hpY2ggZmllbGRzIHlvdSB3aWxsIHdhbnQgdG8gYmUgYWJsZSB0byBzb3J0IGJ5LiBZb3UgY2FuIGNob29zZSB1cCB0byBmaXZlLiBDaGFuZ2luZyB0aGVzZSBhZnRlciB0aGVyZSBhcmUgc3VibWl0dGVkIHJlY29yZHMgd2lsbCByZXN1bHQgaW4gaW1wcm9wZXIgc29ydGluZyEgQSByZS1pbmRleCBmdW5jdGlvbiB3aWxsIGJlIGFkZGVkIHRvIGEgZnV0dXJlIHZlcnNpb24uPC9wPg0KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQNCmEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4NClRoaXMgZm9ybSBzaG91bGQgYmUgYWRkZWQgdG8geW91ciBwYWdlIHVzaW5nIHRoZSBzeW50YXgge0Zvcm1CdWlsZGVyIGFjdGlvbj1cJ2ZldXNlcmZvcm1cJyBmb3JtPVwnZm9ybV9uYW1lXCd9LjwvcD4NCjxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLg0KSW4gZWl0aGVyIGNhc2UsIGZvciB0aGUgcGFzc3BocmFzZSwgeW91IGNhbiBlaXRoZXIgZW50ZXIgdGV4dCBpbiB0aGUgZmllbGQgb3IgYSBmaWxlIG5hbWUuIElmIHlvdSBzcGVjaWZ5IGEgZmlsZSBuYW1lLCB0aGUgY29udGVudHMgb2YgdGhhdA0KZmlsZSB3aWxsIGJlIHVzZWQgYXMgdGhlIHBhc3NwaHJhc2UgZm9yIGVuY3J5cHRpbmcuPC9wPg0KPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUNCmlzIHRoYXQgdGhlIGZpcnN0IGZvdXIgbGV0dGVycyBhcmUgbGVmdCBpbnRhY3QgdG8gYWxsb3cgZm9yIHNvcnRpbmcuIFRoZSBzb3J0aW5nIG1heSBub3QgYmUgcGVyZmVjdCwgYW5kIHRoaXMgd2Vha2VucyB0aGUgc2VjdXJpdHkgc2luY2UgaXQNCmV4cG9zZXMgc29tZSBjbGVhcnRleHQsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLjwvcD4NCjxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQNCnlvdXIgaW5mb3JtYXRpb24gd2lsbCBiZSBzZWN1cmUuIEEgc21hcnQgaGFja2VyIHdobyBoYXMgZm91bmQgc29tZSBleHBsb2l0IHRvIHZpZXcgZGF0YWJhc2UgcmVjb3JkcyBtYXkgd2VsbCBiZSBzbWFydCBlbm91Z2ggdG8gZ2V0IGF0DQp0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLCBhbmQgZmluZCB0aGVpciB3YXkgdG8gdGhlIHBhc3NwaHJhc2UuIFRoaXMgd2lsbCBub3QgcHJvdGVjdCB5b3UgYWdhaW5zdCBhbiBlbmVteSB3aG8gaGFzIGZ1bGwgYWNjZXNzIHRvIHlvdXINCnNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsDQpzZW5zaXRpdmUgcG9saXRpY2FsIGluZm9ybWF0aW9uLCBodW1hbiByaWdodHMgZGF0YSwgb3IgYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIG9mIHZhbHVlIHRvIGEgcmVwcmVzc2l2ZSBnb3Zlcm5tZW50IG9yIG9yZ2FuaXplZCBjcmltZQ0KY2FydGVsLjwvZW0+PC9wPg0KPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4NCjxwPlNldmVyYWwgb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgYmVoYXZpb3IgdmlhIFVEVHMgaXMgcHJvdmlkZWQgKHRoYW5rcyB0byBraW5kIGNvZGUgY29udHJpYnV0aW9ucywgc2VlIGNyZWRpdHMpLjwvcD4NCg0KPHVsPjxsaT5DYWxsIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIGZpZWxkIHR5cGUgc3VibWl0cyB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQNClRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbXCdmaWVsZF9uYW1lXCddLCBhbmQNCmFzICRwYXJhbXNbXCdmaWVsZF9hbGlhc1wnXSAoaWYgZGVmaW5lZCkuIEFzIHBlciBhIHN1Z2dlc3Rpb24sIGl0IGFsc28gcG9wdWxhdGVzIGFsbCBvZiB0aGUgU21hcnR5IHZhbHVlcyB0aGF0IHdvdWxkIGJlIHZpc2libGUgdG8gdGhlIFN1Ym1pc3Npb24gVGVtcGxhdGUgdG9vITwvbGk+DQo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cXFwncyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcg0KdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQNCnZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+DQo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMNCmlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQ0Kb2YgdGhlIGZvcm0uPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UNCmZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQNCmV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPg0KPC91bD4NCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPlJ1biBpbiBNTEUgTW9kZS4gVGhpcyBjaGFuZ2VzIHNvbWUgcXVlcmllcyBhZ2FpbnN0IHRoZSBjb250ZW50IHRhYmxlIHRvIHRyeSB0byBwcmV2ZW50IHVnbHkgY3Jhc2hlcyB1bmRlciB0aGUgTUxFIGZvcmsuIENoZWNraW5nIHRoaXMgd2lsbCBjYXVzZSB1Z2x5IGNyYXNoZXMgaWYgeW91IGFyZSBOT1QgcnVubmluZyB0aGUgTUxFIGZvcmsuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdVwncmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gDQpzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAiRm9ybUJ1aWxkZXIgRGVmYXVsdCIgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlDQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgDQo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPg0KDQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCg0KPGgzPkNyZWRpdHM8L2gzPg0KPHA+TWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlLCBidWcgcmVwb3J0cywgY2FzaCwgYW5kIGlkZWFzIHRvIEZvcm1CdWlsZGVyLiBBbW9uZyB0aGVtIChhbHBoYWJldGljYWxseSk6DQo8dWw+DQo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1Ij5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gY29kZSwgZnVuZGluZyA8L2xpPg0KPGxpPkplcmVteSBCYXNzIC0gY29kZSBhbmQgc3VnZ2VzdGlvbnM8L2xpPg0KPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+DQo8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPg0KPGxpPkplZmYgQm9zY2ggLSBVRFQgVmFsaWRhdGlvbjwvbGk+DQo8bGk+Um9iZXJ0IENhbXBiZWxsIC0gbnVtZXJvdXMgY29kZSBjb250cmlidXRpb25zPC9saT4NCjxsaT5QaW90cmFzIENpbW1wZXJtYW4gLSBjb2RlPC9saT4NCjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPg0KPGxpPlJ5YW4gRm9zdGVyIC0gY29kZTwvbGk+DQo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4NCjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+DQo8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4NCjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+DQo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4NCjxsaT5QcnVlIFJvd2xhbmQgLSBidWcgZml4ZXM8L2xpPg0KPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+DQo8bGk+QWRhbSBTaGF3LVZhcmRpIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPg0KPC91bD4NCjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSVwnbGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPg0KPGgzPk1pc2NlbGxhbmVvdXMgTm90ZXM8L2gzPg0KPHVsPg0KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4NCjwvdWw+DQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgVVJMcywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD4NCjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPg0KPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4NCjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3VcJ3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZFwncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJ3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXRcJ3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAiSGlkZSBFcnJvcnMiIGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0XCdzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSVwndmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3JcJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuDQpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbg0KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzDQpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQ0Kc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuY3J5cHRlZCIgdmFsdWU9Ii0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tDQoiPg0KPC9mb3JtPjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzUwNzM5NjU3LjEzMDEzNTUxOTEuMTMwNjIyMzYwNi4xMzA2MjMxMTY1LjMxJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMwNjE3NDA0NC4yNi4zLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9idWcvdmlldy82MzM4fHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWydxY2EnXSA9ICdQMC0yMDgwNTAyNDgzLTEzMDEzNTUxOTEwNzMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTMwNjIzMTE2NSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhYWN1dGU7cmUnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdUeXAgcG/EvmEgbmVib2wgZGVmaW5vdmFuJnlhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVnlicmHFpSBqZWRlbiBhbGVibyB2aWFjZXJvIHBvbG/FvmllayBrYXRhbCZvYWN1dGU7Z3UgKGNhdGFsb2dlciknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ0tvbmllYyBwcmUgem5hxI1rdSBGaWVsZHNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdaYcSNaWF0b2sgcHJlIHpuYcSNa3UgRmllbGRzZXQgJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dG92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0b3YmZWFjdXRlOyBwb2xlICh2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyBvYmxhc8WlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdTa3VwaW5hIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhJmlhY3V0ZTtjaCBwb2wmaWFjdXRlO8SNb2snOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1ZpYWN2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSAmc2Nhcm9uO3QmYWFjdXRlO3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgcHJvdmluY2llIHYgS2FuYWRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSBVU0EgJnNjYXJvbjt0JmFhY3V0ZTt0eSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSDEjWFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnU2t1cGluYSByYWRpbyBwb2xpxI1vayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqWmFzaWVsYW5pZSBuYSBlLW1haWx5IG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlVrbGFkYW5pZSBkbyBzJnVhY3V0ZTtib3JhIG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqVWtsYWRhbmllIGRvIHMmdWFjdXRlO2Jvcm92IG5hIHomYWFjdXRlO2tsYWRlIHZpYWNuJmFhY3V0ZTtzb2JuJmVhY3V0ZTtobyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlN0ciZhYWN1dGU7bmthIHByZSBwcmVzbWVyb3ZhbmlhIG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqWmFzaWVsYW5pZSBuYSB2eWJyYW4mZWFjdXRlOyBlLW1haWxvdiZlYWN1dGU7IGFkcmVzeSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypQb2xlICAmcXVvdDt6IGUtbWFpbHUmcXVvdDsgcHJlIG9kcG92ZWQsIGEgemFzbGFuaWUgayZvYWN1dGU7cGllIHXFviZpYWN1dGU7dmF0ZcS+b3ZpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlVsb8W+acWlIGZvcm11bCZhYWN1dGU7ciBkbyBzJnVhY3V0ZTtib3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypVbG/FvmnFpSBmb3JtdWwmYWFjdXRlO3IgZG8gREInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlVsb8W+acWlIGZvcm11bCZhYWN1dGU7ciBwcmUgbW9kdWwgcHJlaGxpYWRhxI1hIGZvcm11bCZhYWN1dGU7cm92IHYmZWFjdXRlO3J6aWUgLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqWmF2b2xhxaUgdcW+JmlhY3V0ZTt2YXRlxL5zayZ5YWN1dGU7IHRhZyBwbyBkb2tvbsSNZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqUG9sZSBwcmUgZS1tYWlsLCBuYSBrdG9yJnlhY3V0ZTsgYnVkZSB6JmFhY3V0ZTtyb3ZlxYggemFzbGFuJnlhY3V0ZTsgZS1tYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFLW1haWwgcHJlIGFkbWluaXN0ciZhYWN1dGU7dG9yYSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy16YWxvbWVuaWUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdOYWhyYXRpZSBzJnVhY3V0ZTtib3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdQb2xlICAmcXVvdDt6IGUtbWFpbHUmcXVvdDsgcHJlIG9wYWtvdmFuJmVhY3V0ZTsgemFkYW5pZSAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctT2RrYXonOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdPZGtheiB2bG/FvmVuJnlhY3V0ZTsgdcW+JmlhY3V0ZTt2YXRlxL5vbSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLVNrcnl0JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctUG9yb3ZuJmFhY3V0ZTt2YW5pZSc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrJmFhY3V0ZTt0bnkgcmXFpWF6ZWMnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnQmV6IGtvbnRyb2x5JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzbG8nOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzbGVuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxvdiZhYWN1dGU7IGFkcmVzYSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZiZvYWN1dGU7bm5lIMSNJmlhY3V0ZTtzbGUgKHByZSBVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011cyZpYWN1dGU7IGJ5xaUgIHphZGFuJmVhY3V0ZTsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmF6JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1pob2RhICBzIHJlZ3VsJmFhY3V0ZTtybnltIHYmeWFjdXRlO3Jhem9tJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdOZWJvbGEgdm/FvmVuYSBwb8W+YWRvdmFuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgaG9kbm90dSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgxI0maWFjdXRlO3NlbG4mdWFjdXRlOyBob2Rub3R1IHByZSAgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUHJvcyZpYWN1dGU7bSwgdmxvxb50ZSBzcHImYWFjdXRlO3ZudSBob2Rub3R1IHByZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgY2Vsb8SNJmlhY3V0ZTtzZWxuJnVhY3V0ZTsgaG9kbm90dSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgc3ByJmFhY3V0ZTt2bnkgdHZhciBlLW1haWxvdmVqIGFkcmVzeSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdOZWJvbCB6YWRhbiZ5YWN1dGU7IG9ic2FoIHByZSBlLW1haWxvdiZ1YWN1dGU7IGFkcmVzdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgc3ByJmFhY3V0ZTt2bnkgdHZhciBwcmUgdGVsZWYmb2FjdXRlO25uZSDEjSZpYWN1dGU7c2xvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5pZSBqZSBzcHImYWFjdXRlO3ZueSB0dmFyIGUtbWFpbG92ZWogYWRyZXN5JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQcm9zJmlhY3V0ZTttLCB2bG/FvnRlIG9ic2FoIGtyYXQmc2Nhcm9uOyZpYWN1dGU7IGFrbyAlcyB6bmFrb3YnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHNsJnVhY3V0ZTvFvmlhY2kgYWtvIHNlcGFyJmFhY3V0ZTt0b3IgcHJpIHZpYWNlciZ5YWN1dGU7Y2ggaG9kbm90JmFhY3V0ZTtjaCc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdQb2xlIHByZSB0cmllZGVuaWUgYWt0dWFsaXpvdmFuJmVhY3V0ZTsnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG9kc3RyJmFhY3V0ZTtuZW4meWFjdXRlOyc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnUG9sZSBvZHN0ciZhYWN1dGU7bmVuJmVhY3V0ZTsnOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnTmFzdGF2ZW5pYSBha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ011c2l0ZSB2eWJyYcWlICZxdW90OyVzJnF1b3Q7IHByZSAgcG9rcmHEjW92YW5pZSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB6YWRhxaUgYXNwb8WIIGplZG51IGNpZcS+b3YmdWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnTmFvemFqIGNoY2V0ZSBvZHN0ciZhYWN1dGU7bmnFpSBmb3JtdWwmYWFjdXRlO3IgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdOYW96YWogY2hjZXRlIG9kc3RyJmFhY3V0ZTtuacWlIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyB2bGFzbm9zdGkgbmllIHMmdWFjdXRlOyBkb3N0dXBuJmVhY3V0ZTsgcG9raWHEviBuZWJ1ZGUgemFkYW4meWFjdXRlOyB0eXAgcG/EvmEuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTiZhYWN1dGU7em92IHBvxL5hICZxdW90OyVzJnF1b3Q7IHXFviBleGlzdHVqZS4gUHJvcyZpYWN1dGU7bSBwb3XFvml0ZSB1bmlrJmFhY3V0ZTt0bnkgbiZhYWN1dGU7em92LCBhbGVibyB2IG5hc3RhdmVuaWFjaCBkZWFrdGl2dWp0ZSB2b8S+YnUgcHJlIHVuaWsmYWFjdXRlO3RuJmVhY3V0ZTsgbiZhYWN1dGU7enZ5IHBvbCZpYWN1dGU7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnUG9sZSBtdXMmaWFjdXRlOyBtYcWlIG4mYWFjdXRlO3pvdic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdm/EvmJ5JzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgem5ha292JzsKJGxhbmdbJ29yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ25lemFkYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRlZCddID0gJ3ByaWRhbiZlYWN1dGU7JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdUcmllxaUgaG9kbm90eSBuYSB2JnlhY3V0ZTtzdHVwZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVnlicmHFpSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1Z5YnJhxaUgdHlwJzsKJGxhbmdbJ3RvJ10gPSAnRG8nOwokbGFuZ1sneWVzJ10gPSAnJkFhY3V0ZTtubyc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncHImaWFjdXRlO2ppbWF0ZWxpYSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgIHBvdm9sZW4mZWFjdXRlOyBzJnVhY3V0ZTtib3J5JzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgY2llbGUnOwokbGFuZ1snc2F2ZSddID0gJ1Vsb8W+acWlJzsKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmHFpSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1Vsb8W+acWlIGEgcG9rcmHEjW92YcWlIHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybSZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpY2t5JzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsJmFhY3V0ZTtyZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTtyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1ciZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdQb2xlIHMgdnnFvmFkbm92YW4maWFjdXRlO20gYWt0dWFsaXpvdmFuJmVhY3V0ZTsnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZcS+a29zxaUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdSb3omc2Nhcm9uOyZpYWN1dGU7cmVuaWEnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHMmdWFjdXRlO2Jvcm92JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFociZhYWN1dGU7dmFuJnlhY3V0ZTsgcyZ1YWN1dGU7Ym9yIGplIHByJmlhY3V0ZTtsaSZzY2Fyb247IHZlxL5rJnlhY3V0ZTshIFBvdm9sZW4mYWFjdXRlOyBqZSBtYXhpbSZhYWN1dGU7bG5hIHZlxL5rb3PFpTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUeXAgcyZ1YWN1dGU7Ym9ydSBhc2kgbmVtJm9jaXJjO8W+ZSBiecWlIG5haHJhbiZ5YWN1dGU7IG5hIHNlcnZlci4gUHJvcyZpYWN1dGU7bSBza29udHJvbHVqdGUgxI1pIGplIHRlbnRvIHR5cCBwb3ZvbGVuJnlhY3V0ZTsnOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFocmHFpSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG5haW1wb3J0b3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgZm9ybXVsJmFhY3V0ZTtyYSB6bHloYWxvISBQcm9ibCZlYWN1dGU7bSBzIHBhcnNvdmFuJmlhY3V0ZTttIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpYWRrb3YnOwokbGFuZ1snY29scyddID0gJyVzIHN0xLpwY292JzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBob2Rpbm92JnlhY3V0ZTsgY2FzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBob2Rpbm92JnlhY3V0ZTsgxI1hYyc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbiZ1YWN1dGU7dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnSG9kbm90ZW5pZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWxI9ha2EhIFYmYWFjdXRlOyZzY2Fyb247IGZvcm11bCZhYWN1dGU7ciBib2wgb2Rvc2xhbiZ5YWN1dGU7JzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdmnFpSc7CiRsYW5nWydkZWxldGUnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSc7CiRsYW5nWydkYXknXSA9ICdEZcWIJzsKJGxhbmdbJ21vbiddID0gJ01lc2lhYyc7CiRsYW5nWyd5ZWFyJ10gPSAnUm9rJzsKJGxhbmdbJ25vbmUnXSA9ICcoxb5pYWRueSknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgb2RpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJ6aWEgJXMgbmFpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGFrdHVhbGl6b3ZhbiZ5YWN1dGU7IG5hIHZlcnppdSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnU3AmYXVtbDvFpSc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnT2Rvc2xhxaUnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnUG9rcmHEjW92YcWlLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdPem5hxI1pxaUnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnT2R6bmHEjWnFpSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hsYXZuJmVhY3V0ZTsnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ05hc3RhdmVuaWEgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnT2Rvc2xhbmllIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdOYXN0YXZlbmlhIHByZSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyBuYXN0YXZlbmlhJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHBvIG9kb3NsYW4maWFjdXRlOyc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSBwcmVtZW5uJmVhY3V0ZTsgc3UgcG92b2xlbiZlYWN1dGU7IHYgdG9tdG8gcG9saS48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1ByaWRhxaUgdmlhYyBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnT2RzdHImYWFjdXRlO25pxaUgdnl6bmHEjWVuJmVhY3V0ZTsnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdQcmlkYcWlIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2eWJyYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWRhxaUgZS1tYWlsb3YmdWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2eWJyYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQcmlkYcWlIGNpZcS+JzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ29kc3RyJmFhY3V0ZTtuacWlIHZ5YnJhbiZlYWN1dGU7JzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnUHImaWFjdXRlO2xpJnNjYXJvbjsgdmXEvmEgZS1tYWlsb3YgZ2VuZXJvdmFuJnlhY3V0ZTtjaCB6IHZhJnNjYXJvbjtlaiBJUCBhZHJlc3kuIEFudGktU3BhbSBrJm9hY3V0ZTtkIG1hIHphYnImYWFjdXRlO25pxaUgZG9ydcSNZW5pdSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdQb2RvenJlbmllIG5hIHNwYW0geiBhIElQICVzIHphc3RhdmVuJnlhY3V0ZTsuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdQcmVyb3pkZWxpxaUgcG9saWEnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpxaUnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnU3Rhbm92acWlIGhvZG5vdHU6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm55IHYmeWFjdXRlO3Jhxb4gcG92b2wmaWFjdXRlOyBmaWx0cm92YcWlIGthdGFsJm9hY3V0ZTtnIChjYXRhbG9nZXIpIHBvbW9jb3UgbiZhYWN1dGU7enZ1JzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSB2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7aG8gdiZ5YWN1dGU7YmVyb3YmZWFjdXRlO2hvIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm55IHYmeWFjdXRlO3JheiBwcmUgcG9sb8W+a3Uga2F0YWwmb2FjdXRlO2d1IChDYXRhbG9nZXIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ1YmeWFjdXRlOyZzY2Fyb247a2EgcG/EvmEnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQ2llxL5vdiZhYWN1dGU7IGFkcmVzYSBwcmUgcyZ1YWN1dGU7Ym9yeSBuYSB2JnlhY3V0ZTtzdHVwZSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1XFviZpYWN1dGU7dmF0ZcS+c2vFiHkgdCZhYWN1dGU7Zyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU3RyJmFhY3V0ZTtua2EgcHJlIG4mYWFjdXRlO3ZyYXQgcyBvZGthem9tIHByZSBzJnVhY3V0ZTtib3InOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdPZG9zbGFuJmVhY3V0ZTsgcG9tb2NvdSBtb2R1bHUgRm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBVcGxvYWQgbW9kdWx1JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnUyZ1YWN1dGU7Ym9yIG9kb3NsYcWlIGRvIG1vZHVsdSBVcGxvYWRzJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbSZhYWN1dGU7bG5hIGTEusW+a2EnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdMYWJlbCAocG9waXNvaykgemEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjaWVobyBwb8S+YSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0xhYmVsIChwb3Bpc29rKSByJmFhY3V0ZTtkaW8gdGxhxI0maWFjdXRlO3RrYSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnSG9kbm90YSBwcmkgdiZ5YWN1dGU7YmVyZSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdIb2Rub3RhIGJleiB2JnlhY3V0ZTtiZXJ1JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdOYXN0YXZlbmlhIHByZSBza3VwaW51IHphJnNjYXJvbjtydCZhYWN1dGU7dmFjJmlhY3V0ZTtjaCBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VGV4dCBwcnYmZWFjdXRlO2hvIHBvxL5hJnF1b3Q7ICc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdIb2Rub3RhIHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTiZhYWN1dGU7em92IHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdQcmVkbWV0IHByZSB2JnlhY3V0ZTtiZXInOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ04mYWFjdXRlO3pvdiB2b8S+YnknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnT2Rvc2xhbiZhYWN1dGU7IGhvZG5vdGEnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ05hc3RhdmVuaWEgcHJlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTmFzdGF2ZW5pYSBwcmUgdmlhY24mYWFjdXRlO3Nvdm4mZWFjdXRlOyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUgJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdDaWXEvm92JmFhY3V0ZTsgZS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdDaWXEvm92JnlhY3V0ZTsgbiZhYWN1dGU7em92IHMmdWFjdXRlO2JvcnUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnUG91xb5pIGplZG5vZHVjaCZ1YWN1dGU7IGtvbnRyb2x1IGUtbWFpbG92ZWogYWRyZXN5JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1BvdcW+aWplIGplZG5vZHVjaCZzY2Fyb247aXUga29udHJvbHUgZS1tYWlsb3ZlaiBhZHJlc3kgIChuYXByLiBwb3ZvbCZpYWN1dGU7IGUtbWFpbCB2IHR2YXJlICAmcXVvdDt4QHkmcXVvdDsgbmFtaWVzdG8gcG/FvmFkb3ZuJmVhY3V0ZTtobyB4QHkudGxkKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtaIGFkcmVzeSZxdW90OyBwcmUgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnWm5ha292JmFhY3V0ZTsgc2FkYSBwcmUgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdWJnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUgcHJlIHphc2xhbmllIGRldGFpbHUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgcG/EvmEnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ1ByZWRtZXQgZS1tYWlsdSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXYgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1ByaXByYXZlbiZ5YWN1dGU7IHByZSBuYXNhZGVuaWUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZSBqZSBwcmlwcmF2ZW4meWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUHJlc21lcm92YcWlIG5hIHN0ciZhYWN1dGU7bmt1IHBvIG9kb3NsYW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAncG91xb5pIHQmdWFjdXRlO3RvIGtsJmFhY3V0ZTt2ZXNvdiZ1YWN1dGU7IHNrcmF0a3UnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdQb2xpYSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSUQgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1VrJmFhY3V0ZTvFviBwb2xlIGFsaWFzdSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnS2xpa251dCZpYWN1dGU7bSB6b2JyYXomaWFjdXRlO3RlIGFsaWFzeSBwb2wmaWFjdXRlOyBwcmkgcHJpZCZhYWN1dGU7dmFuJmlhY3V0ZTsgYWxlYm8gZWRpdCZhYWN1dGU7Y2lpIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBwb8S+YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0FsaWFzIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ05hc3RhdmVuaWEgc2t1cGlueSByJmFhY3V0ZTtkaW8gdGxhxI0maWFjdXRlO3Rvayc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVHlwIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdwcmUgdnl0dm9yZW5pZSBmb3JtdWwmYWFjdXRlO3JvdiZlYWN1dGU7aG8gcG/EvmEnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnUHJpZGHFpSBub3YmeWFjdXRlOyBmb3JtdWwmYWFjdXRlO3InOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnVWsmYWFjdXRlO3phxaUgdmVyc2l1IG1vZHVsdSBwcmUgZm9ybXVsJmFhY3V0ZTtyZT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ1ByaWRhxaUgbm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IHRsYcSNJmlhY3V0ZTt0a2EgcHJlIG9kb3NpZWxhbmllJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnUHJpZGHFpSBqYXZhc2NyaXB0IHByaSBvZG9zaWVsYW4maWFjdXRlOyBuYSBvY2hyYW51IHByZWQgdmlhY24mYWFjdXRlO3NvYm4mZWFjdXRlO211IG9kc2xhbml1IGZvcm11bCZhYWN1dGU7cmE/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdQcmlkYcWlIGJlenBlxI1ub3N0biZ5YWN1dGU7IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdLb250cm9sYSBwb8S+YSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ1BvbGUgcHJlIGtvbnRyb2x1JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyB0cmllZGEgcHJlIHRlbnRvIGZvcm11bCZhYWN1dGU7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgdHJpZWRhIHByZSB0b3RvIHBvbGUnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdabmFrIHByZSBvem5hxI1lbmllIHBvdmlubiZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdQb3Zpbm4mZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVnnFvmFkb3ZhxaUga29udHJvbHUgdG9odG8gcG/EvmEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1NrcnnFpSBwb3Bpc29rIChsYWJlbCknOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1RleHQgcHJlIHpvYnJhemVuaWUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm55IHYmeWFjdXRlO3JheiBwcmUga29udHJvbHUnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ1BvxI1ldCB6b2JyYXplbiZ5YWN1dGU7Y2ggcmlhZGtvdic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnQmV6IHByZWRuYXN0YXZlbmlhJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU3RyJmFhY3V0ZTtua2EgcHJlIHByZXNtZXJvdmFuaWUgcG8gc2NodiZhYWN1dGU7bGVuJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdTa3J5xaUgY2h5YnknOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1R5cCBwcmUgem9icmF6ZW5pZSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSBlLW1hbHUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW0mYWFjdXRlO2xuYSB2ZcS+a29zxaUgbmFociZhYWN1dGU7dmFuJmVhY3V0ZTtobyBzJnVhY3V0ZTtib3J1IChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUG92b2xlbiZlYWN1dGU7IHJveiZzY2Fyb247JmlhY3V0ZTtyZW5pYSc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1NhYmwmb2FjdXRlO25hIHByZSB6b2JyYXplbmllIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTdHJhbmEgJXMgeiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnUG9sZSBuZW0mYWFjdXRlOyByb8W+JmlhY3V0ZTtyZW4mZWFjdXRlOyBuYXN0YXZlbmlhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1ImeWFjdXRlO2NobGUgcHJpZCZhYWN1dGU7dmFuaWUgcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ1phcG4mdWFjdXRlO8WlIGplZG5vdHVjaHkgYW50aS1zcGFtIGZpbHRlcj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1VrJmFhY3V0ZTt6YcWlIElExI1rYSBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ05haHJhxaUgZm9ybXVsJmFhY3V0ZTtyIHogWE1MIHMmdWFjdXRlO2JvcnUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1BvdcW+acWlIHRlbnRvIG4mYWFjdXRlO3pvdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgaW1wb3J0IGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdQb3XFvmnFpSB0ZW50byBhbGlhcyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcm92YcWlIEhUTUwgZS1tYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgb2RrYXogdGV4dHUnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ09ka2F6IG5hIHN0ciZhYWN1dGU7bmt1JzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1BvdcW+acWlIENhcHRjaGEgb2NoYW51IHByZWQgc3BhbW9tPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnUG96cmllxaUgaW5mb3JtJmFhY3V0ZTtjaWUgbyA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBuZWJvbGEgb3AmaWFjdXRlO3NhbiZhYWN1dGU7IHNwciZhYWN1dGU7dm5lJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdPZGtheiBwcmUgcG9waXMnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnUG91xb5pxaUgMjRob2Rpbm92JnlhY3V0ZTsgxI1hcz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpYWRreSAocG96bmFta2E6bSZvY2lyYzvFvmV0ZSBtZW5pxaUgYWogcG9tb2NvdSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdTdMS6cGNlICAocG96biZhYWN1dGU7bWthOiBtJm9jaXJjO8W+ZXRlIG1lbmnFpSBhaiBwb21vY291IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnWm9icmF6acWlIHXFviZpYWN1dGU7dmF0ZcS+b3ZpPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUb3RvIHBvbGUgbSZvY2lyYzvFvmUgYnnFpSBwciZhYWN1dGU7emRuZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdQcmVtZW5uZSBwcmUgJnNjYXJvbjthYmwmb2FjdXRlO251JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ0Rvc3R1cG4mZWFjdXRlOyBwcmVtZW5uJmVhY3V0ZTsnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCBwcmVtZW5uJmVhY3V0ZTsnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEJmFhY3V0ZTt0dW0gb2Rvc2xhbmlhJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdWJmFhY3V0ZTsmc2Nhcm9uOyBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXNhIG9kb3NpZWxhdGXEvmEnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHN0ciZhYWN1dGU7bmt5IG9ic2FodWomdWFjdXRlO2NlaiBmb3JtdWwmYWFjdXRlO3InOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnVmVyemlhIG1vZHVsdSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnWm5ha292JmFhY3V0ZTsgc2FkYSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdQcmVtZW5uJmFhY3V0ZTsnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVnl0dm9yacWlIHVrJmFhY3V0ZTvFvmt1ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdWeXR2b3JpxaUgdWsmYWFjdXRlO8W+a3UgSFRNTCAmc2Nhcm9uO2FibCZvYWN1dGU7bnknOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdWeXR2b3JpxaUgdWsmYWFjdXRlO8W+a3UgaGxhdmnEjWt5ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1Z5dHZvcmnFpSB1ayZhYWN1dGU7xb5rdSBobGF2acSNa3knOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnem5ha292JmFhY3V0ZTsgc2FkYSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1BvbGlhIHByZSB0cmllZGVuaWUgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgcm9rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1pvYnJhemnFpSAmcXVvdDsmc2Nhcm9uO2FibCZvYWN1dGU7bnUgcG8gb2Rvc2xhbiZpYWN1dGU7JnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdQcmVzbWVyb3ZhxaUgbmEgc3RyJmFhY3V0ZTtua3UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0NpZcS+b3YmYWFjdXRlOyBzdHImYWFjdXRlO25rYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdQb3Zpbm4mZWFjdXRlOyBuJmFhY3V0ZTt6dnkgcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWecW+YWRvdmHFpSB6YWQmYWFjdXRlO3ZhbmllIG4mYWFjdXRlO3p2b3YgcHJlIHBvbGlhJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnVnnFvmFkb3ZhxaUgdW5payZhYWN1dGU7dG5lIG4mYWFjdXRlO3p2eSBwcmUgcG9saWEnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1Z5xb5pYWRvdmHFpSB1bmlrJmFhY3V0ZTt0bmUgbiZhYWN1dGU7enZ5JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ByZWgmYWFjdXRlO2R6YcWlIHBvbGlhJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdOYWhyYcWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdQcmlkYcWlIHRleHQgdGxhxI0maWFjdXRlO3RrYSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdvZHN0ciZhYWN1dGU7bmnFpSB0ZXh0IHRyYcSNJmlhY3V0ZTt0a2EnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ0hvZG5vdGEgcHJlIHBvcm92bmFuaWUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnUmXFpWF6ZWMnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzbG8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdab2JyYXpvdmHFpSBwcmlhbW8gdiBvYnNhaHUgKGlubGluZSknOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1ByZWRuYXN0YXZlbiZhYWN1dGU7IGhvZG5vdGEgcHJlcG9sZSc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnVnnEjWlzdGnFpSBwbyBrbGlrbnV0JmlhY3V0ZTs/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwcmUgcG9sZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwbyBvZG9zbGFuJmlhY3V0ZTsgZm9ybWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnVmlhYyB0eXBvdiBwb2wmaWFjdXRlOz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUHJlcG4mdWFjdXRlO8WlIGRvIHJvesSNJmlhY3V0ZTtyZW4mZWFjdXRlO2hvIG0mb2FjdXRlO2R1JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUHJlcG4mdWFjdXRlO8WlIGRvIGplZG5vZHVjaCZlYWN1dGU7aG8gbSZvYWN1dGU7ZHUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1Vwb3pvcm5lbmllISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJ1xL5rYSwgcG9waXNvayBrIHBvbGkgdsS+YXZvJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYnXEvmthLCBwb3Bpc29rIGsgcG/EvnUgbmFkJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSB6ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudSZhYWN1dGU7cic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnUmYWFjdXRlO3InOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmVjJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHImaWFjdXRlO2wnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNJmFhY3V0ZTtqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0omdWFjdXRlO24nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSiZ1YWN1dGU7bCc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3Qmb2FjdXRlO2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdQcmVwJmFhY3V0ZTvEjXRlISBOYXN0YWxhIGNoeWJhIHByaSBvZG9zaWVsYW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZG5hc3RhdmVuJmVhY3V0ZTs6IG5lemEmc2Nhcm9uO2tydG51dCZlYWN1dGU7JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7OiB6YSZzY2Fyb247a3JhdG51dCZlYWN1dGU7JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdPZG9zbGllbGFuaWUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FLW1haWxvdiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSB6YXRpYcS+IG5lcG91xb5pdCZhYWN1dGU7JzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ04mYWFjdXRlO3pvdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+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+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjI1MDczNzQwMzE4OTk0NjIwMDAuMTIxNDIzMzEzMS4xMjQzODQ5NDI1LjEyNDM4NzMxMTMuMjknOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjQzODQ5NDI1LjI4LjEwLnV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTmkgcHJhdmlsbm8gaXpwb2xuamVuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zaW1vLCBpenBvbG5pdGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgJnNjYXJvbjt0ZXZpbGtvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3NpbW8sIHZwaSZzY2Fyb247aXRlIHZlbGphdmVuIHphcGlzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgJnNjYXJvbjt0ZXZpbGtvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3NpbW8sIHZwaSZzY2Fyb247aXRlIHZlbGphdmVuIEUtcG8mc2Nhcm9uO3RuaSBuYXNsb3YgdiBwb2xqdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsIG5hc2xvdiBzZSBuZSB1amVtYSB6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgdmVsamF2bm8gdGVsZWZvbnNrbyAmc2Nhcm9uO3Rldmlsa28gdiBwb2xqdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuaSB2ZWxqYXZlbiBFLXBvJnNjYXJvbjt0bmkgbmFzbG92JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBkZWxldGVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGlvbiBVcGRhdGVkLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1lvdSBtdXN0IGNoZWNrICZxdW90OyVzJnF1b3Q7IGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAmcXVvdDslcyZxdW90OyBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWRkZWQnOwokbGFuZ1sndXBkYXRlZCddID0gJ3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXZlJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgSG91ciBDbG9jayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgSG91ciBDbG9jayc7CiRsYW5nWydob3VyJ10gPSAnSG91cic7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmllbGQgSGVpZ2h0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGaWVsZCB0byBWYWxpZGF0ZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1N0cmFuICVzIG9kICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+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+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+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+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8YnIgLz5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPGJyIC8+DQpQbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48YnIgLz4NCkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+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+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIA0Kc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgJnF1b3Q7Rm9ybUJ1aWxkZXIgRGVmYXVsdCZxdW90OyB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0JiMwMzk7cyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cyBldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYSBzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My45NDY1NjY0OTMzMDQ5Mjk3MDAuMTIzNjE3OTA5OS4xMjM2ODUwMzEzLjEyMzY4NjE1MTIuNic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzY4NjE1MTIuNi41LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1qdXBpdGVyLnNpbnVzaWtzLm5ldHx1dG1jY3Q9L2FkbWluL2FkZHRlbXBsYXRlLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sr_YU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0tyZWF0b3IgZm9ybWknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsRnJvbUZFVVByb3BlcnR5J10gPSAnKkVtYWlsIHVzZXJzIG1hdGNoaW5nIGFuIEZFVSBwcm9wZXJ0eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcCBwb2xqYSBuaWplIHBvZGUmc2Nhcm9uO2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ1NlbGVjdCBvbmUgKG9yIG1vcmUpIGNhdGFsb2dlciBpdGVtcyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IEVuZCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVOdW1iZXJGaWVsZCddID0gJ0hUTUw1IG51bWVyacSNa28gcG9samUnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBwb2xqZSB6YSBlLW1haWwgYWRyZXN1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0hUTUw1IHBvbGplIHphIFVSTCc7CiRsYW5nWydmaWVsZF90eXBlX1NpdGVBZG1pbkZpZWxkJ10gPSAnQWRtaW5pc3RyYWNpamEgc2FqdGEnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnTG96aW5rYSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1Bvbm92byBsb3ppbmthICh2ZXJpZmlrYWNpamEpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0R1Z21lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ8SMZWstYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dydXBhIMSNZWstYm9rc292YSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnWWVhciBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdJemJvciBzYXZlem5lIGRyxb5hdmUgU0FEJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0l6Ym9yIGthbmFkc2tlIHByb3ZpbmNpamUnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdJemJvciBkcsW+YXZlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnSXpib3IgZGF0dW1hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnSXpib3IgdnJlbWVuYSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqUG8mc2Nhcm9uO2FsamkgcmV6dWx0YXRlIG5hIGUtbWFpbCwgbmEgb3Nub3Z1IGl6Ym9yYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNuaW1pIHJlenVsdGF0ZSB1IGl6YWJyYW51IGRhdG90ZWt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVrdHVqIG5hIHN0cmFuaWN1IHUgemF2aXNub3N0aSBvZCBpemJvcmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlBvJnNjYXJvbjthbGppIHJlenVsdGF0ZSBuYSBpemFicmFudSBhZHJlc3UgKGlsaSB2aSZzY2Fyb247ZSBhZHJlc2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypVcGkmc2Nhcm9uO2kgcmV6dWx0YXRlIHUgb2JpxI1udSBkYXRvdGVrdSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSddID0gJypVcGkmc2Nhcm9uO2kgcmV6dWx0YXRlIHUgemFzZWJudSBkYXRvdGVrdSBwcmlsaWtvbSBzdmFrb2cgc2xhbmphJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTbmltaSByZXp1bHRhdGUgdSBiYXp1IHBvZGF0YWthJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTYcSNdXZhaiByZXp1bHRhdGUgemEgPGVtPkZvcm1Ccm93c2VyPC9lbT4gTW9kdWwgdi4wLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqUG9rcmVuaSBLb3Jpc25pxI1raSBEZWZpbmlzYW4gVGFnIGkgcHJvc2xlZGkgbXUgcG9kYXRrZSBpeiBmb3JtZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypQbyZzY2Fyb247YWxqaSBuYSBlLW1haWwgYWRyZXN1IGtvanUgdW5lc2Uga29yaXNuaWsnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKlBvJnNjYXJvbjthbGppIGFkbWluaXN0cmF0b3J1IHNpc3RlbWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcyddID0gJypFbWFpbCByZXN1bHRzIGJhc2VkIG9uIGZyb250ZW5kIGZpZWxkcyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdPdHByZW1hbmplIGRhdG90ZWtlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRS1tYWlsICZxdW90O2FkcmVzYSBwbyZzY2Fyb247aWxqYW9jYSZxdW90OyBwb2xqZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRS1tYWlsICZxdW90O2FkcmVzYSBwbyZzY2Fyb247aWxqYW9jYSZxdW90OyBwb2xqZSAocG9ub3ZvKSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtbWFpbCAmcXVvdDtpbWUgcG8mc2Nhcm9uO2lsamFvY2EmcXVvdDsgcG9samUnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VGVtYSBwb3J1a2UmcXVvdDsgcG9samUnOwokbGFuZ1snZmllbGRfdHlwZV9DQ0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRS1tYWlsIENDICg8ZW0+Y2FyYm9uIGNvcHk8L2VtPikgcG9samUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGnEjW5pIHRla3N0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpxI1uaSBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGluayAodW5vc2kga29yaXNuaWspJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2tyaXZlbm8gcG9samUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUl6cmHEjXVuYXRvIHBvbGplJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLUplZGluc3R2ZW5hIGNlbG9icm9qbmEgdnJlZG5vc3QgKHNlcmlqc2thKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1Qb3ppdiBLb3Jpc25pxI1raSBEZWZpbmlzYW5vZyBUYWdhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy1Nb2R1bGUgSW50ZXJmYWNlIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hFeHRlbmRlZEZpZWxkJ10gPSAnQ2hlY2tib3ggZXh0ZW5kZWQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTmVtYSB2YWxpZGFjaWplJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyacSNa28nOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb2Jyb2puYSB2cmVkbm9zdCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWwgYWRyZXNhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ0Jyb2ogdGVsZWZvbmEgKFNBRCknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTW9yYSBiaXRpIHNlbGVrdG92YW5vJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdQb2tsYXBhIHNlIHNhIHJlZ3VsYXJuaW0gaXpyYXpvbSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOZSBwb2tsYXBhIHNlIHNhIHJlZ3VsYXJuaW0gaXpyYXpvbSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtcHR5J10gPSAnTmUgbW/FvmUgYml0aSBwcmF6bm8nOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdPYmF2ZXpubyc7CiRsYW5nWydub3RfcmVxdWlyZWQnXSA9ICdOaWplIG9iYXZlem5vJzsKJGxhbmdbJ25vdF9hdmFpbGFibGUnXSA9ICdOaWplIGRvc3R1cG5vJzsKJGxhbmdbJ2Vycm9yX2VtYWlsZnJvbWZldXByb3AnXSA9ICdHcmUmc2Nhcm9uO2thIHUgcG9kZSZzY2Fyb247YXZhbmppbWEgcG9samEnOwokbGFuZ1snZXJyb3Jfbm9mZXUnXSA9ICdNb2R1bCA8ZW0+RnJvbnRFbmRVc2VyczwvZW0+IG5lIG1vxb5lIGJpdGkgcHJvbmHEkWVuLiBPdm8gcG9samUgbmXEh2UgZnVua2Npb25pc2F0aSc7CiRsYW5nWydlcnJvcl9ub2ZldWRlZm5zJ10gPSAnTmlqZSBwcm9uYcSRZW5vIG9kZ292YXJhanXEh2UgRkVVIHN2b2pzdHZvLiAgT3ZvIHBvbGplIG5lxIdlIGZ1bmtjaW9uaXNhdGkuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdOaWplIHVuZXRhIHZyZWRub3N0IHUgb2JhdmV6bm8gcG9samUnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdNb2xpbW8gdW5lc2l0ZSB2cmVkbm9zdCB1IHBvbGplICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ01vbGltbyB1bmVzaXRlIGJyb2rEjWFudSB2cmVkbm9zdCB1IHBvbGplICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ01vbGltbyB1bmVzaXRlIHZhbGlkbnUgdnJlZG5vc3QgdSBwb2xqZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ01vbGltbyB1bmVzaXRlIGNlbG9icm9qbnUgYnJvasSNYW51IHZyZWRub3N0IHUgcG9samUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnTW9saW1vIHVuZXNpdGUgdmFsaWRudSBlLW1haWwgYWRyZXN1IHUgcG9samUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0UtbWFpbCBhZHJlc2Egc2UgbmUgcG9rbGFwYSBzYSB2cmVkbm9zJnNjYXJvbjvEh3UgdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ01vbGltbyB1bmVzaXRlIHZhbGlkYW4gYnJvaiB0ZWxlZm9uYSB1IHBvbGplICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ01vbGltbyBwcmlqYXZpdGUgc2UgZGEgYmlzdGUga29yaXN0aWxpIG92dSBmb3JtdSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICfEjGluaSBzZSBkYSAmcXVvdDslcyZxdW90OyBuaWplIHZhbGlkbmEgZS1tYWlsIGFkcmVzYS4nOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ01vbGltbyB1bmVzaXRlIHZyZWRub3N0IMSNaWphIGR1xb5pbmEgbmUgcHJlbGF6aSAlcyBrYXJha3RlcmEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnTW9saW1vIHVuZXNpdGUgdnJlZG5vc3Qga29qYSBqZSBkdWdhIG5ham1hbmplICVzIGthcmFrdGVyYSc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0thcmFrdGVyIChkZWxpbWl0ZXIpIGtvamkgxIdlIHJhemR2YWphdGkgcmV6dWx0YXRlLCB1IHNsdcSNYWpldmltYSBrYWRhIHNlIHZyYcSHYSB2aSZzY2Fyb247ZSBvZCBqZWRuZSB2cmVkbm9zdGknOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ01vcmF0ZSBpbWF0aSAmcXVvdDslcyZxdW90OyBkb3p2b2x1IGRhIGJpc3RlIGl6dm9kaWxpIHR1IG9wZXJhY2lqdS4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICfFvWFvIG5hbSBqZSwgbmVtYXRlIGRvdm9sam5vIGRvenZvbGEgZGEgYmlzdGUgcHJpc3R1cGlsaSBvdm9tIGRlbHUgc2FqdGEuJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdSZWRvc2xlZCBwb2xqYSBqZSBvc3Zlxb5lbi4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybWEgb2JyaXNhbmEuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdQb2xqZSBvYnJpc2Fuby4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnUG9kZSZzY2Fyb247YXZhbmphIG9zdmXFvmVuYS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdNb3JhdGUgc2VsZWt0b3ZhdGkgJnF1b3Q7JXMmcXVvdDsgZGEgYmlzdGUgbmFzdGF2aWxpIGRhbGplLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTW9yYXRlIHNwZWNpZmljaXJhdGkgbmFqbWFuamUgamVkbnUgb2RyZWRpJnNjYXJvbjtudSBhZHJlc3UuJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIMW+ZWxpdGUgb2JyaXNhdGkgZm9ybXUgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdEYSBsaSBzdGUgc2lndXJuaSBkYSDFvmVsaXRlIG9icmlzYXRpIHBvbGplICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdOYXByZWRuZSBvcGNpamUgYmnEh2UgZG9zdHVwbmUgdGVrIGthZGEgaXphYmVyZXRlIHRpcCBwb2xqYS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdOYXppdiBwb2xqYSAmcXVvdDslcyZxdW90OyBqZSB2ZcSHIHUgdXBvdGViaS4gTW9saW1vIGtvcmlzdGl0ZSBqZWRpbnN0dmVuZSBuYXppdmUgcG9samEgaWxpIHUgcG9kZSZzY2Fyb247YXZhbmppbWEgS3JlYXRvcmEgZm9ybWkgaXNrbGp1xI1pdGUgb3BjaWp1IGtvamEgemFodGV2YSBkYSBuYXppdmkgcG9samEgYnVkdSBqZWRpbnN0dmVuaS4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ1BvbGphIG1vcmFqdSBpbWF0aSBuYXppdmUsIG9zaW0gdWtvbGlrbyBuZSBpc2tsanXEjWl0ZSB0dSBvcGNpanUgdSBwb2RlJnNjYXJvbjthdmFuamltYSBLcmVhdG9yYSBmb3JtaS4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdObyBmaWVsZCBhc3NpZ25lZCBmb3IgJXMnOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdEdcW+aW5hOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJva3NvdmEnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wY2lqYSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGthcmFrdGVyYS4nOwokbGFuZ1snb3JkZXInXSA9ICdSZWRvc2xlZCc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWplIHNwZWNpZmljaXJhbm9dJzsKJGxhbmdbJ2FkZGVkJ10gPSAnZG9kYXRvJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdvc3Zlxb5lbm8nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWt0dWp0ZSBqZWRubyc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ0l6YWJlcml0ZSB0aXAnOwokbGFuZ1sndG8nXSA9ICdaYSc7CiRsYW5nWyd5ZXMnXSA9ICdEYSc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdwcmltYW9jaSc7CiRsYW5nWydmaWVsZHMnXSA9ICdwb2xqYSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW9ndcSHaWggcG9samEnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBvZHJlZGkmc2Nhcm9uO3RhJzsKJGxhbmdbJ3NhdmUnXSA9ICdTbmltaSc7CiRsYW5nWydhZGQnXSA9ICdEb2Rhaic7CiRsYW5nWyd1cGRhdGUnXSA9ICdPc3Zlxb5pJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU25pbWkgaSBuYXN0YXZpIHNhIGl6bWVuYW1hJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYWNpamEnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHNraSc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1lJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtYSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnUG9kZSZzY2Fyb247YXZhbmplJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiB2ZWxpxI1pbmEnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFa3N0ZW56aWplJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdEb3p2b2xqZW5pIHRpcG92aSBkYXRvdGVrYSc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ090cHJlbWxqZW5hIGRhdG90ZWthIGplIHByZXZlbGlrYS4gTWFza2ltYWxuYSBkb3p2b2xqZW5hIHZlbGnEjWluYSBqZTogJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGF0b3Rla2Egb3ZvZyB0aXBhIG5lIG1vxb5lIGJpdGkgb3RwcmVtbGplbmEuIE1vbGltbyBwcm92ZXJpdGUgZGEgbGkgaW1hIG9kZ292YXJhanXEh3UgZWtzdGVuemlqdS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnT3B0cmVtaSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybWEgdXZlxb5lbmEuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmVkb3ZhJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2xvbmEnOwokbGFuZ1snMTJfaG91ciddID0gJzEyLcSNYXNvdm5pIHNhdCc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtxI1hc292bmkgc2F0JzsKJGxhbmdbJ2hvdXInXSA9ICdTYXQnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlqYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ09wc2VnOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdJem1lbmknOwokbGFuZ1snZGVsZXRlJ10gPSAnT2JyaSZzY2Fyb247aSc7CiRsYW5nWydkYXknXSA9ICdEYW4nOwokbGFuZ1snbW9uJ10gPSAnTWVzZWMnOwokbGFuZ1sneWVhciddID0gJ0dvZGluYSc7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGplIGRlaW5zdGFsaXJhbi4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyemlqZSAlcyBqZSBpbnN0YWxpcmFuLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGplIHVzcGUmc2Nhcm9uO25vIG5hZG9ncmHEkWVuIG5hIHZlcnppanUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ05hemFkLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdQbyZzY2Fyb247YWxqaSBmb3JtdSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdOYXN0YXZpLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdTZWxla3RvdmFubyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdOaWplIHNlbGVrdG92YW5vJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnR2xhdm5hJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdQb2RlJnNjYXJvbjthdmFuamEgcHJpa2F6YSBmb3JtZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnU2xhbmplIGZvcm1lJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBwb2RlJnNjYXJvbjthdmFuamEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnTmFwcmVkbmEgcG9kZSZzY2Fyb247YXZhbmphJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJyZTY2Fyb247YWJsb24gZm9ybWUnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1sndGFiX3VkdCddID0gJ0ludGVncmFjaWphIEtEVCc7CiRsYW5nWyd0aXRsZV9mZXVfcHJvcGVydHknXSA9ICc8ZW0+RnJvbnRFbmRVc2VyczwvZW0+IHN2b2pzdHZvJzsKJGxhbmdbJ2luZm9fZmV1X3Byb3BlcnR5J10gPSAnT25seSBjZXJ0YWluIHByb3BlcnR5IHR5cGVzIGNhbiBiZSB1c2VkIGZvciBtYXRjaGluZyAoZHJvcGRvd25zLCBtdWx0aXNlbGVjdCBmaWVsZHMsIGV0YykuJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHByb21lbmxqaXZlIHN1IGRvcHUmc2Nhcm9uO3RlbmUgdSBvdm9tIHBvbGp1LjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnRG9kYWogam8mc2Nhcm9uOyBvcGNpamEnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdPYnJpJnNjYXJvbjtpIG96bmHEjWVuZSBvcGNpamUnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdEb2RhaiBqbyZzY2Fyb247IMSNZWstYm9rc292YSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ09icmkmc2Nhcm9uO2kgb3puYcSNZW5lIMSNZWstYm9rc292ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0RvZGFqIGpvJnNjYXJvbjsgamVkbnUgYWRyZXN1JzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnT2JyaSZzY2Fyb247aSBvem5hxI1lbmUgYWRyZXNlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0RvZGFqIGpvJnNjYXJvbjsgamVkbm8gb2RyZWRpJnNjYXJvbjt0ZSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdPYnJpJnNjYXJvbjtpIG96bmHEjWVuYSBvZHJlZGkmc2Nhcm9uO3RhJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnU2EgVmEmc2Nhcm9uO2UgSVAgYWRyZXNlIGplIHZlxIcgcG9zbGF0byBwcmV2aSZzY2Fyb247ZSBlLW1haWwgcG9ydWthLiBBbnRpLVNwYW0ga29kIGplIHNwcmXEjWlvIGRhbGplIHNsYW5qZS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnWmF1c3RhdmxqZW4gcG90ZW5jaWphbG5pIFNQQU0gc2EgSVAgYWRyZXNlICVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUHJvbWVuaSByZWRvc2xlZCBwb2xqYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdPdGthxb5pJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZhbHVlIHNldDogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ3RpdGxlX3RleHRmaWVsZF9sYWJlbCddID0gJ1RleHRmaWVsZCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9zaG93X3RleHRmaWVsZCddID0gJ1Nob3cgdGV4dGZpZWxkPyc7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnVmlzaW5hIHBvbGphJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ09kcmVkaSZzY2Fyb247bmkgZGlyZWt0b3JpanVtIHphIGl6bGF6bmUgZGF0b3Rla2UnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdLb3Jpc25pxI1raSBEZWZpbmlzYW4gVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1Bvc2xhdG8gcHJla28ga3JlYXRvcmEgZm9ybWknOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ090cHJlbW5hIGthdGVnb3JpamEnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlJ10gPSAnRG96dm9saSBkYSBwb3N0b2plxIdlIGRhdG90ZWtlIGJ1ZHUgcHJlcGlzYW5lIHByaWxpa29tIG90cHJlbWFuamE/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnRGEgbGkgZG96dm9saXRpIGRhIG90cG9zbGF0YSBkYXRvdGVrYSB6YW1lbmkgZGF0b3Rla3Ugc2EgaXN0aW0gbmF6aXZvbSwga29qYSBqZSBvdHByZW1samVuYSByYW5pamU/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ09tb2d1xIdhdmEgcHJlcGlzaXZhbmplICg8ZW0+b3ZlcndyaXRpbmc8L2VtPiknOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdOZW1hIHByZXBpc2l2YW5qYSAoPGVtPm92ZXJ3cml0aW5nPC9lbT4pJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICdEYXRvdGVrYSAlcyB2ZcSHIHBvc3RvamkgaSBwcmVrbyBuamUgbmUgbW/FvmUgYml0aSBwaXNhbm8uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcmVuYW1lJ10gPSAnJlNjYXJvbjthYmxvbiBuYXppdmEnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXSA9ICdPcmlnaW5hbG5hIGVrc3RlbnppamEgZGF0b3Rla2UgKHVrbGp1xI11amUgaSAmcXVvdDsuJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1N1cHByZXNzIGZpbGVuYW1lIGluIGVtYWlscyBhbmQgZm9ybXMgdGhlIGVuZCB1c2VyIHdpbGwgc2VlJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2F0dGFjaG1lbnQnXSA9ICdOZSBkb3p2b2xpIGthxI1lbmplIGRhdG90ZWthIHV6IGUtbWFpbCBwb3J1a2UnOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddID0gJ1Vrb2xpa28gxb5lbGl0ZSBkYSBuYXppdiBkYXRvdGVrZSBidWRlIHByb21lbmplbiBuYWtvbiBvdHByZW1hbmphLCB1bmVzaXRlICZzY2Fyb247YWJsb24gbm92b2cgbmF6aXZhIHUgb3ZvIHBvbGplLiBVIHN1cHJvdG5vbSwgb3N0YXZpdGUgb3ZvIHBvbGplIHByYXpubyBpIG5heml2IG90cHJlbWxqZW5lIGRhdG90ZWtlIG5lxIdlIGJpdGkgcHJvbWVuamVuLic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWFrc2ltYWxuYSBkdcW+aW5hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnTGFiZWxhIMSNZWstYm9rc2EnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZyZW5kb3N0IGthZGEgamUgc2VsZWt0b3Zhbic7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWcmVkbm9zdCBrYWRhIG5pamUgc2VsZWt0b3Zhbic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnRGV0YWxqaSBvIGdydXBpIMSNZWstYm9rc292YSc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdPYnJpc2F0aT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7SXphYmVyaXRlIGplZG5vJnF1b3Q7IHRla3N0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZyZWRub3N0IHNlbGVrY2lqZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05heml2IG9wY2lqZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWcmVuZG9zdCBwb3NsYXRhJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdPZHJlZGkmc2Nhcm9uO25hIGUtbWFpbCBhZHJlc2EnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOYXppdiBvZHJlZGkmc2Nhcm9uO25lIGRhdG90ZWtlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0tvcmlzdGkgbWFuamUgc3Ryb2d1IHZhbGlkYWNpanUgZS1tYWlsIGFkcmVzZSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ05heml2IGRhdG90ZWtlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdUZW1hIHBvcnVrZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOYXppdiBmb3JtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1cyBmb3JtZSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWplIHNwcmVtbm8nOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1N0cmFuaWNhIG5hIGtvanUgxIdlIGtvcmlzbmlrIGJpdGkgb2R2ZWRlbiBuYWtvbiBzbGFuamEgZm9ybWUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrb3Jpc3RpIG92dSBwcmXEjWljdSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZm9ybWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1BvbGphIGZvcm1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSUQgcG9samEnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdQcmlrYcW+aSBhbGlhc2UgcG9samEnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05heml2IHBvbGphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMgYW5kIERPTSBpZCAoQ1NTIGlkKSBhdHRyaWJ1dGUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1RpcCBwb2xqYSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnRG9kYWogbm92dSBmb3JtdSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdQcmlrYXphdGkgdmVyemlqdSBLcmVhdG9yYSBmb3JtaT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdPdm8gxIdlICh1IGZvcm1pIEhUTUwga29tZW50YXJhKSBwcmlrYXphdGkgdmVyemlqdSBLcmVhdG9yYSBmb3JtaSBrb2p1IGltYXRlIGluc3RhbGlyYW51IG5hIFZhJnNjYXJvbjtlbSBzaXN0ZW11LCBrYWtvIGJpIHNlIHBvdHBvbW9nbG8gZGV0ZWt0b3ZhbmplIGkgb3RrbGFuamFuamUgZ3JlJnNjYXJvbjtha2EuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdEb2RhaiBwb2xqZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZWtzdCBuYSBkdWdtZXR1IHphIHNsYW5qZSBmb3JtZSc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ1Rla3N0IG5hIGR1Z21ldHUnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdWYWxpZGFjaWphIHBvbGphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnUG9samUga29qZSB0cmViYSB2YWxpZGlyYXRpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBvdm9nIHBvbGphJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXNhIHphIG92dSBmb3JtdSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc2EgemEgb3ZvIHBvbGplJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdLb3Jpc25pxI1raSBkZWZpbmlzYW4gdGFnIGtvamkgxIdlIGJpdGkgcG96dmFuIHByZSBwcnZvZyBwcmlrYXppdmFuamEgZm9ybWUgKGl6dnImc2Nhcm9uO2F2YSBzZSBzYW1vIGplZG5vbSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnS29yaXNuacSNa2kgZGVmaW5pc2FuIHRhZyBrb2ppIMSHZSBiaXRpIHBvenZhbiBwcmUgcHJpa2F6aXZhbmphIGZvcm1lIChpenZyJnNjYXJvbjthdmEgc2UgbmEgc3Zha29qIHN0cmFuaWNpIHZpJnNjYXJvbjtlc3RyYW5pxI1uaWggZm9ybWkpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnS29yaXNuacSNa2kgZGVmaW5pc2FuIHRhZyBrb2ppIMSHZSBiaXRpIHBvenZhbiBwcmlsaWtvbSB2YWxpZGFjaWplIGZvcm1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU2ltYm9sIGtvamkgxIdlIG96bmHEjWF2YXRpIG9iYXZlem5hIHBvbGphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnT2JhdmV6bm8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1phaHRldmFqdGUgdW5vcyB1IG92byBwb2xqZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2FrcmlqIGxhYmVsdSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdNYXhpbXVtIGxlbmd0aCBvZiBmaWVsZCBjb250ZW50ICgwIG9yIGJsYW5rIG1lYW5zIG5vIGxpbWl0KSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGnEjW5pIHRla3N0IGtvamkgxIdlIGJpdGkgcHJpa2F6YW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGFjaW9uaSByZWd1bGFybmkgaXpyYXonOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0Jyb2ogbGluaWphIGtvamUgdHJlYmEgcHJpa2F6YXRpJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ1JlYWQgT25seSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlcyBpbnRvJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnRGVmYXVsdCB0byBibGFuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdEZWZhdWx0IHRvIGJsYW5rICh1bmNoZWNrIHRvIGRlZmF1bHQgdG8gdG9kYXkmIzAzOTtzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0VuY3J5cHQgZGF0YSBzdG9yZWQgaW4gZGF0YWJhc2UnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXRlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdGUgS2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdTdG9yYWdlIEVuY3J5cHRpb24gVW5hdmFpbGFibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgT3BlblNTTCBtb2R1bGUgb3IgbWNyeXB0IHN1cHBvcnQgaWYgeW91IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRhdGFiYXNlIGVuY3J5cHRpb24uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1BsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgQ1VSTCBzdXBwb3J0IGFjdGl2ZSBpbiB5b3VyIFBIUCBpbnN0YWxsLiBTZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnUnVuIGluIE1MRSBNb2RlJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTCBMaWJyYXJ5JzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBGcm9udGVuZCBVc2VyIG1vZHVsZSB0byBjb25uZWN0IGEgZm9ybSBhbmQgaXRzIGRhdGEgdG8gYSBzcGVjaWZpYyB1c2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm0mIzAzOTtzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpb24nOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAoZG8gbm90IGRvIHRoaXMgaWYgeW91IGFyZSBnb2luZyB0byBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0ZV9vcmRlciddID0gJ0RhdGUgY29tcG9uZW50IGZpZWxkIG9yZGVyIChmb3IgaW5wdXQpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd2lsbCBiZSBzdG9yZWQgaW4gYW4gWE1MIGZvcm1hdCBpbiB0aGUgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zvcm1icm93c2VyIGRhdGFiYXNlIHRhYmxlLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJvciEgRWl0aGVyIHRoZSBmb3JtIGhhcyBubyBGb3JtIEJyb3dzZXIgRGlzcG9zaXRpb24sIG9yIGl0IGZhaWxlZCB0byBpbnN0YW50aWF0ZSAoZHVlIHRvIG1lbW9yeSBpc3N1ZXM/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVc2UgJnF1b3Q7bSZxdW90OyBmb3IgTW9udGgsICZxdW90O2QmcXVvdDsgZm9yIERheSwgYW5kICZxdW90O3kmcXVvdDsgZm9yIFllYXIuIFNlcGFyYXRlIHRoZSBpdGVtcyBieSBoeXBoZW5zLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXInOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdVc2UgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW5zdGVhZCBvZiBzdGF0aWMnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvdyBtYW55IG51bWJlcnMgdG8gZ2VuZXJhdGUgaW4gcHJvY2Vzcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluaW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSBmaWxlIGxvY2F0ZWQgaW4gdGhlIEZvcm1CdWlsZGVyL3RlbXBsYXRlcy8gZm9sZGVyLiBUaGlzIGZpZWxkIGlzIGlnbm9yZWQgaWYgeW91IHVzZSBUWFQgYXMgeW91ciBmaWxlIHR5cGUuJzsKJGxhbmdbJ2hlbHBfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdCYXNpYzogVXNlIHRoZSB0ZXh0YXJlYSBiZWxvdyB0byBsYXlvdXQgdGhlIGZpZWxkIG5hbWVzL3ZhbHVlcyBpbiBhIHNpbmdsZSBibG9jay48YnIgLz4NCkFkdmFuY2VkOiBTcGVjaWZ5IFNtYXJ0eSB2YXJpYWJsZXMgaW4gdGhlIFJURiBUZW1wbGF0ZSBGaWxlIGFzIHlvdSB3b3VsZCBiZWxvdywgYnV0IGFycmFuZ2UgdGhlbSBob3dldmVyIHlvdSBsaWtlIGFuZCBhZGQgZm9ybWF0dGluZy48YnIgLz4NCiZuYnNwO1lvdSBjYW4gc3RpbGwgdXNlIHRoZSAlJUhFQURFUiUlIGFuZCAlJUZPT1RFUiUlIHNlY3Rpb25zIGluIHRoZSBSVEYgZmlsZS4nOwokbGFuZ1snaGVscF91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgSGVhZGVyIFRlbXBsYXRlLjxiciAvPg0KRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRklFTERTJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlIGlmIFJURiBUZW1wbGF0ZSBUeXBlIGlzIHNldCB0byAmcXVvdDtCYXNpYyZxdW90Oy48YnIgLz4NClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICZxdW90O1JURiZxdW90OyBhcyBGaWxlIFR5cGUgYW5kICZxdW90O0FkdmFuY2VkJnF1b3Q7IGFzIFJURiBUZW1wbGF0ZSBUeXBlLic7CiRsYW5nWydoZWxwX2ZpbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVIRUFERVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZPT1RFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgRm9vdGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgZm9vdGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgUlRGIGZpbGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9maWxlX3R5cGUnXSA9ICdDaG9vc2UgYSBmaWxlIHR5cGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQ2hvb3NlIGFuIFJURiB0ZW1wbGF0ZSB0eXBlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCBmb3IgZGlzcGxheSAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBzdWJtaXR0ZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGVscC10ZXh0IHRvIGRpc3BsYXkgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ191bnNwYWNlZCddID0gJ1N0cmluZyAobm8gc3BhY2VzIGJldHdlZW4gZmllbGRzKT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0NvbXB1dGVkL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Rm9ybUJ1aWxkZXJ9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU3dpdGNoIHRvIEFkdmFuY2VkIE1vZGUnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPg0KQ2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz4NCkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy48YnIgLz4NCklmIGxlZnQgYmxhbmssIHRoaXMgd2lsbCBkZWZhdWx0IHRvIHlvdXIgZGVmYXVsdCB1cGxvYWRzIGRpcmVjdG9yeSAoJGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdKS4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdCYWNrIHRvIEZvcm1CdWlsZGVyIE1haW4gUGFnZSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1doaWNoIGVtYWlsIGhlYWRlcnMgc2hvdWxkIHRoaXMgaW5wdXQgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdEbyBub3QgYWNjZXB0IGJsYW5rIHNwYWNlIGFzIHZhbGlkIHJlc3BvbnNlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0lmIGEgZmllbGQgaXMgcmVxdWlyZWQsIGNoZWNraW5nIHRoaXMgd2lsbCByZXF1aXJlIHRoYXQgcGVvcGxlIHB1dCBpbiBzb21lIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBub3QganVzdCBzcGFjZXMnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnWW91IG11c3QgY2xpY2sgb25lIG9mIHRoZSAmcXVvdDtzYXZlJnF1b3Q7IGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXNlIEhUTUw1IHBsYWNlaG9sZGVyIHRleHQgaW5zdGVhZCBvZiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2NjX2FkZHJlc3MnXSA9ICdBZGRyZXNzKGVzKSB0byBlbWFpbCBhcyBDYXJib24gY29weSAoQ0MpLiBVc2UgY29tbWFzIHRvIGRlbGltaXQgbXVsdGlwbGUgYWRkcmVzc2VzLic7CiRsYW5nWyd0aXRsZV91c2VfYmNjJ10gPSAnVXNlIEJsaW5kIGNhcmJvbiBjb3B5IChCQ0MgaW5zdGVhZCBvZiBDQyknOwokbGFuZ1sndGl0bGVfc2VuZF91c2luZyddID0gJ01haWwgQWRkcmVzc2luZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b19tb2RpZnknXSA9ICdFbWFpbCBmaWVsZCB0byBhZGQgQ0MgYWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9tb2RpZmllcyddID0gJ0FkZCBDQyB0byAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydiY2NfZmllbGQnXSA9ICcmcXVvdDtCQ0MmcXVvdDsgcmVjaXBpZW50cyc7CiRsYW5nWydjY19maWVsZCddID0gJyZxdW90O0NDJnF1b3Q7IHJlY2lwaWVudHMnOwokbGFuZ1sndG9fZmllbGQnXSA9ICdOb3JtYWwgKCZxdW90O1RvJnF1b3Q7IHJlY2lwaWVudHMpJzsKJGxhbmdbJ2JjYyddID0gJ0JDQyc7CiRsYW5nWydjYyddID0gJ0NDJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHkgZGF0YSBvciBsb2dpYyB0aGF0IGlzIG1lYW50IHRvIGJlIHNlbnQgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdDYW4gYmUgc21hcnR5IGRhdGEsIGphdmFzY3JpcHQsIG9yIHNvbWUgb3RoZXIgZGF0YSB5b3Ugd2FudCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5rIHRoaXMgZmllbGQgdG8gaXQmIzAzOTtzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXQmIzAzOTtzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0hpZGUgY29udHJvbCBidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFrZSByZWNvcmRzIGFjY2Vzc2libGUgdG8gU2VhcmNoIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWyd0aXRsZV9mYnJfZWRpdCddID0gJ0VkaXRhYmxlIGluIEZvcm1Ccm93c2VyIEFkbWluPyc7CiRsYW5nWyd0aXRsZV9hY3RpdmVfb25seSddID0gJ09ubHkgaW5jbHVkZSBhY3RpdmUgdXNlcnM/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdVc2VyIGRlZmluZWQgdGFnICVzIHJldHVybmVkIGFuIGVycm9yLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXNwb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlc3BvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfYWRtaW4nXSA9ICdNdXN0IHNwZWNpZnkgYW4gQWRtaW4nOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLiBJZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuIElmIHlvdSB1c2UgQ29tcHV0ZWQvUEhQIGV2YWx1YXRpb24sIHlvdSBjYW4NCnVzZSBhbnkgZnVuY3Rpb24geW91IHdhbnQsIGJ1dCB5b3UgbmVlZCB0byBxdW90ZSB0aGluZ3MgKHN1YnN0aXR1dGlvbiBvY2N1cnMgYmVmb3JlIGV2YWx1YXRpb24pLCBlLmcuLCBzdWJzdHIoJiMwMzk7JGZsZF8yMiYjMDM5OywwLDIpLiYjMDM5OyRmbGRfMjMmIzAzOTsuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPg0KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0NCgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+DQoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0FkZCB5b3VyIHRhZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snQUYnXSA9ICdBZmdoYW5pc3Rhbic7CiRsYW5nWydBWCddID0gJ0FsYW5kIElzbGFuZHMnOwokbGFuZ1snQUwnXSA9ICdBbGJhbmlhJzsKJGxhbmdbJ0RaJ10gPSAnQWxnZXJpYSc7CiRsYW5nWydBUyddID0gJ0FtZXJpY2FuIFNhbW9hJzsKJGxhbmdbJ0FEJ10gPSAnQW5kb3JyYSc7CiRsYW5nWydBTyddID0gJ0FuZ29sYSc7CiRsYW5nWydBSSddID0gJ0FuZ3VpbGxhJzsKJGxhbmdbJ0FRJ10gPSAnQW50YXJjdGljYSc7CiRsYW5nWydBRyddID0gJ0FudGlndWEgYW5kIEJhcmJ1ZGEnOwokbGFuZ1snQVInXSA9ICdBcmdlbnRpbmEnOwokbGFuZ1snQU0nXSA9ICdBcm1lbmlhJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEnOwokbGFuZ1snQVUnXSA9ICdBdXN0cmFsaWEnOwokbGFuZ1snQVQnXSA9ICdBdXN0cmlhJzsKJGxhbmdbJ0FaJ10gPSAnQXplcmJhaWphbic7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluJzsKJGxhbmdbJ0JCJ10gPSAnQmFyYmFkb3MnOwokbGFuZ1snQkQnXSA9ICdCYW5nbGFkZXNoJzsKJGxhbmdbJ0JZJ10gPSAnQmVsYXJ1cyc7CiRsYW5nWydCRSddID0gJ0JlbGdpdW0nOwokbGFuZ1snQlonXSA9ICdCZWxpemUnOwokbGFuZ1snQkonXSA9ICdCZW5pbic7CiRsYW5nWydCTSddID0gJ0Jlcm11ZGEnOwokbGFuZ1snQlQnXSA9ICdCaHV0YW4nOwokbGFuZ1snQlcnXSA9ICdCb3Rzd2FuYSc7CiRsYW5nWydCTyddID0gJ0JvbGl2aWEnOwokbGFuZ1snQkEnXSA9ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0IElzbGFuZCc7CiRsYW5nWydCUiddID0gJ0JyYXppbCc7CiRsYW5nWydJTyddID0gJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSc7CiRsYW5nWydCTiddID0gJ0JydW5laSBEYXJ1c3NhbGFtJzsKJGxhbmdbJ0JHJ10gPSAnQnVsZ2FyaWEnOwokbGFuZ1snQkYnXSA9ICdCdXJraW5hIEZhc28nOwokbGFuZ1snQkknXSA9ICdCdXJ1bmRpJzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kaWEnOwokbGFuZ1snQ00nXSA9ICdDYW1lcm9vbic7CiRsYW5nWydDQSddID0gJ0NhbmFkYSc7CiRsYW5nWydDViddID0gJ0NhcGUgVmVyZGUnOwokbGFuZ1snS1knXSA9ICdDYXltYW4gSXNsYW5kcyc7CiRsYW5nWydDRiddID0gJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydURCddID0gJ0NoYWQnOwokbGFuZ1snQ0wnXSA9ICdDaGlsZSc7CiRsYW5nWydDTiddID0gJ0NoaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCc7CiRsYW5nWydDQyddID0gJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJzsKJGxhbmdbJ0NPJ10gPSAnQ29sb21iaWEnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zJzsKJGxhbmdbJ0NHJ10gPSAnQ29uZ28nOwokbGFuZ1snQ0QnXSA9ICdDb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0snXSA9ICdDb29rIElzbGFuZHMnOwokbGFuZ1snQ1InXSA9ICdDb3N0YSBSaWNhJzsKJGxhbmdbJ0NJJ10gPSAnSXZvaXJlIChJdm9yeSBDb2FzdCknOwokbGFuZ1snSFInXSA9ICdDcm9hdGlhIChIcnZhdHNrYSknOwokbGFuZ1snQ1UnXSA9ICdDdWJhJzsKJGxhbmdbJ0NZJ10gPSAnQ3lwcnVzJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMnOwokbGFuZ1snREsnXSA9ICdEZW5tYXJrJzsKJGxhbmdbJ0RKJ10gPSAnRGppYm91dGknOwokbGFuZ1snRE0nXSA9ICdEb21pbmljYSc7CiRsYW5nWydETyddID0gJ0RvbWluaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydUUCddID0gJ0Vhc3QgVGltb3InOwokbGFuZ1snRUMnXSA9ICdFY3VhZG9yJzsKJGxhbmdbJ0VHJ10gPSAnRWd5cHQnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvcic7CiRsYW5nWydHUSddID0gJ0VxdWF0b3JpYWwgR3VpbmVhJzsKJGxhbmdbJ0VSJ10gPSAnRXJpdHJlYSc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWEnOwokbGFuZ1snRVQnXSA9ICdFdGhpb3BpYSc7CiRsYW5nWydGSyddID0gJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRkonXSA9ICdGaWppJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCc7CiRsYW5nWydGUiddID0gJ0ZyYW5jZSc7CiRsYW5nWydGWCddID0gJ0ZyYW5jZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5JzsKJGxhbmdbJ1BGJ10gPSAnRnJlbmNoIFBvbHluZXNpYSc7CiRsYW5nWydURiddID0gJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snR0EnXSA9ICdHYWJvbic7CiRsYW5nWydHTSddID0gJ0dhbWJpYSc7CiRsYW5nWydHRSddID0gJ0dlb3JnaWEnOwokbGFuZ1snREUnXSA9ICdHZXJtYW55JzsKJGxhbmdbJ0dIJ10gPSAnR2hhbmEnOwokbGFuZ1snR0knXSA9ICdHaWJyYWx0YXInOwokbGFuZ1snR0InXSA9ICdHcmVhdCBCcml0YWluIChVSyknOwokbGFuZ1snR1InXSA9ICdHcmVlY2UnOwokbGFuZ1snR0wnXSA9ICdHcmVlbmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEnOwokbGFuZ1snR04nXSA9ICdHdWluZWEnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hUJ10gPSAnSGFpdGknOwokbGFuZ1snSE0nXSA9ICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc7CiRsYW5nWydITiddID0gJ0hvbmR1cmFzJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nJzsKJGxhbmdbJ0hVJ10gPSAnSHVuZ2FyeSc7CiRsYW5nWydJUyddID0gJ0ljZWxhbmQnOwokbGFuZ1snSU4nXSA9ICdJbmRpYSc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpYSc7CiRsYW5nWydJUiddID0gJ0lyYW4nOwokbGFuZ1snSVEnXSA9ICdJcmFxJzsKJGxhbmdbJ0lFJ10gPSAnSXJlbGFuZCc7CiRsYW5nWydJTCddID0gJ0lzcmFlbCc7CiRsYW5nWydJTSddID0gJ0lzbGUgb2YgTWFuJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbHknOwokbGFuZ1snSkUnXSA9ICdKZXJzZXknOwokbGFuZ1snSk0nXSA9ICdKYW1haWNhJzsKJGxhbmdbJ0pQJ10gPSAnSmFwYW4nOwokbGFuZ1snSk8nXSA9ICdKb3JkYW4nOwokbGFuZ1snS1onXSA9ICdLYXpha2hzdGFuJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEnOwokbGFuZ1snS0knXSA9ICdLaXJpYmF0aSc7CiRsYW5nWydLUCddID0gJ0tvcmVhIChOb3J0aCknOwokbGFuZ1snS1InXSA9ICdLb3JlYSAoU291dGgpJzsKJGxhbmdbJ0tXJ10gPSAnS3V3YWl0JzsKJGxhbmdbJ0tHJ10gPSAnS3lyZ3l6c3Rhbic7CiRsYW5nWydMQSddID0gJ0xhb3MnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWEnOwokbGFuZ1snTEInXSA9ICdMZWJhbm9uJzsKJGxhbmdbJ0xJJ10gPSAnTGllY2h0ZW5zdGVpbic7CiRsYW5nWydMUiddID0gJ0xpYmVyaWEnOwokbGFuZ1snTFknXSA9ICdMaWJ5YSc7CiRsYW5nWydMUyddID0gJ0xlc290aG8nOwokbGFuZ1snTFQnXSA9ICdMaXRodWFuaWEnOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUnOwokbGFuZ1snTUcnXSA9ICdNYWRhZ2FzY2FyJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpJzsKJGxhbmdbJ01ZJ10gPSAnTWFsYXlzaWEnOwokbGFuZ1snTVYnXSA9ICdNYWxkaXZlcyc7CiRsYW5nWydNTCddID0gJ01hbGknOwokbGFuZ1snTVQnXSA9ICdNYWx0YSc7CiRsYW5nWydNSCddID0gJ01hcnNoYWxsIElzbGFuZHMnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pYSc7CiRsYW5nWydNVSddID0gJ01hdXJpdGl1cyc7CiRsYW5nWydZVCddID0gJ01heW90dGUnOwokbGFuZ1snTVgnXSA9ICdNZXhpY28nOwokbGFuZ1snRk0nXSA9ICdNaWNyb25lc2lhJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvJzsKJGxhbmdbJ01EJ10gPSAnTW9sZG92YSc7CiRsYW5nWydNQSddID0gJ01vcm9jY28nOwokbGFuZ1snTU4nXSA9ICdNb25nb2xpYSc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQnOwokbGFuZ1snTVonXSA9ICdNb3phbWJpcXVlJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hcic7CiRsYW5nWydOQSddID0gJ05hbWliaWEnOwokbGFuZ1snTlInXSA9ICdOYXVydSc7CiRsYW5nWydOUCddID0gJ05lcGFsJzsKJGxhbmdbJ05MJ10gPSAnTmV0aGVybGFuZHMnOwokbGFuZ1snQU4nXSA9ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyc7CiRsYW5nWydOVCddID0gJ05ldXRyYWwgWm9uZSc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXSA9ICdOZXcgWmVhbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJzsKJGxhbmdbJ05PJ10gPSAnTm9yd2F5JzsKJGxhbmdbJ09NJ10gPSAnT21hbic7CiRsYW5nWydQSyddID0gJ1Bha2lzdGFuJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUnOwokbGFuZ1snUFMnXSA9ICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ10gPSAnUGFyYWd1YXknOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZXMnOwokbGFuZ1snUE4nXSA9ICdQaXRjYWlybic7CiRsYW5nWydQTCddID0gJ1BvbGFuZCc7CiRsYW5nWydQVCddID0gJ1BvcnR1Z2FsJzsKJGxhbmdbJ1BSJ10gPSAnUHVlcnRvIFJpY28nOwokbGFuZ1snUUEnXSA9ICdRYXRhcic7CiRsYW5nWydSRSddID0gJ1JldW5pb24nOwokbGFuZ1snUk8nXSA9ICdSb21hbmlhJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUndhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMnOwokbGFuZ1snTEMnXSA9ICdTYWludCBMdWNpYSc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgJmFtcDsgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSc7CiRsYW5nWydTTSddID0gJ1NhbiBNYXJpbm8nOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEnOwokbGFuZ1snU04nXSA9ICdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ10gPSAnU2V5Y2hlbGxlcyc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTRyddID0gJ1NpbmdhcG9yZSc7CiRsYW5nWydTSSddID0gJ1Nsb3ZlbmlhJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljJzsKJGxhbmdbJ1NCJ10gPSAnU29sb21vbiBJc2xhbmRzJzsKJGxhbmdbJ1NPJ10gPSAnU29tYWxpYSc7CiRsYW5nWydaQSddID0gJ1NvdXRoIEFmcmljYSc7CiRsYW5nWydFUyddID0gJ1NwYWluJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSc7CiRsYW5nWydQTSddID0gJ1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydTRCddID0gJ1N1ZGFuJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUnOwokbGFuZ1snU0onXSA9ICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1N3ZWRlbic7CiRsYW5nWydDSCddID0gJ1N3aXR6ZXJsYW5kJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWEnOwokbGFuZ1snVFcnXSA9ICdUYWl3YW4nOwokbGFuZ1snVEonXSA9ICdUYWppa2lzdGFuJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEnOwokbGFuZ1snVEgnXSA9ICdUaGFpbGFuZCc7CiRsYW5nWydURyddID0gJ1RvZ28nOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1JzsKJGxhbmdbJ1RPJ10gPSAnVG9uZ2EnOwokbGFuZ1snVFQnXSA9ICdUcmluaWRhZCBhbmQgVG9iYWdvJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpYSc7CiRsYW5nWydUUiddID0gJ1R1cmtleSc7CiRsYW5nWydUTSddID0gJ1R1cmttZW5pc3Rhbic7CiRsYW5nWydUQyddID0gJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyc7CiRsYW5nWydUViddID0gJ1R1dmFsdSc7CiRsYW5nWydVRyddID0gJ1VnYW5kYSc7CiRsYW5nWydVQSddID0gJ1VrcmFpbmUnOwokbGFuZ1snQUUnXSA9ICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc7CiRsYW5nWydVSyddID0gJ1VuaXRlZCBLaW5nZG9tJzsKJGxhbmdbJ1VTJ10gPSAnVW5pdGVkIFN0YXRlcyc7CiRsYW5nWydVTSddID0gJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5JzsKJGxhbmdbJ1VaJ10gPSAnVXpiZWtpc3Rhbic7CiRsYW5nWydWVSddID0gJ1ZhbnVhdHUnOwokbGFuZ1snVkEnXSA9ICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc7CiRsYW5nWydWRSddID0gJ1ZlbmV6dWVsYSc7CiRsYW5nWydWTiddID0gJ1ZpZXQgTmFtJzsKJGxhbmdbJ1ZHJ10gPSAnVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJzsKJGxhbmdbJ1ZJJ10gPSAnVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc7CiRsYW5nWydFSCddID0gJ1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ1lFJ10gPSAnWWVtZW4nOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhJzsKJGxhbmdbJ1pNJ10gPSAnWmFtYmlhJzsKJGxhbmdbJ1pXJ10gPSAnWmltYmFid2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+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+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPg0KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ0Zvcm1CdWlsZGVyIGluc3RhbGxlZC4gUGxlYXNlIGNvbnN1bHQgdGhlIG1vZHVsZSYjMDM5O3MgSGVscCBwYWdlIGZvciBkb2N1bWVudGF0aW9uLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aA0KdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+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+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5CdXR0b24uIFRoaXMgZG9lbnMmIzAzOTt0IGRvIGFueXRoaW5nLCBidXQgeW91IGNhbiBob29rIGl0IGludG8gc29tZSBKYXZhc2NyaXB0LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+UGFzc3dvcmQuIFRoaXMgaXMgYW4gYXN0ZXJpc2tlZC1vdXQgdGV4dCBmaWVsZCwgdXNlZnVsIGZvciBwYXNzd29yZHMuPC9saT4NCjxsaT5QYXNzd29yZCBBZ2FpbiAodmVyaWZ5KS4gVGhpcyBpcyBhIGZpZWxkIHRoYXQgbXVzdCBtYXRjaCBhIFBhc3N3b3JkIGZpZWxkIGZvciBzdWJtaXNzaW9uDQp0byBzdWNjZWVkLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPg0KPC91bD48L2xpPg0KPGxpPi1Nb2R1bGUgSW5jbHVkZSBUYWcuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBvdGhlciBtb2R1bGUgb3V0cHV0IGludG8geW91ciBmb3JtLCBlLmcuLCBhIGxpc3Qgb2YgcHJvZHVjdHMgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlLjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9hbGlhcyYjMDM5O10gKGlmIGRlZmluZWQpLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCByZXN1bHRzIGJhc2VkIG9uIGZyb250ZW5kIGZpZWxkcy4gVGhpcyBmaWVsZCBpcyBhbiBlbWFpbCBkaXNwb3NpdGlvbiB0aGF0IGFsbG93cyBmb3JtIGZpZWxkcyYjMDM5OyB1c2VyIGlucHV0IHRvIHNwZWNpZnkgdGhlIEVtYWlsIFN1YmplY3QsICZxdW90O0Zyb20gTmFtZSZxdW90OywgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7LCBhbmQgRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcy48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gPHN0cm9uZz5EZXByZWNhdGVkLjwvc3Ryb25nPiBVc2UgU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIGluc3RlYWQhIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbi4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSB0byBhIHVuaXF1ZSB0ZXh0IGZpbGUgZm9yIGVhY2ggZm9ybSBzdWJtaXNzaW9uLg0KWW91IGNhbiBzcGVjaWZ5IGEgZmlsZW5hbWUgcGF0dGVybiB1c2luZyB2YWx1ZXMgZnJvbSBmb3JtIGZpZWxkcywgc2V0IGl0cyBmb3JtYXQsIGFuZCBzZXQgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZmlsZXMgd2lsbCBiZSBzdG9yZWQuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci4gU2VlIHNlY3Rpb24gYmVsb3cuPC9saT4NCjxsaT4qU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbi4gQ3JhZnQgYW4gSFRUUCBHRVQgb3IgUE9TVCwgYW5kIHRyYW5zbWl0IGl0IHVzaW5nIGNVUkwgdG8gdGhlIHNwZWNpZmllZCBVUkwuIFRoaXMgbGV0cyB5b3UgdXNlIEZvcm1CdWlsZGVyIGFzIGEgZnJvbnQtZW5kIHRvIGFueSBDR0kgb3IgRm9ybSBIYW5kbGluZyBzY3JpcHQgb3V0IHRoZXJlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntGb3JtQnVpbGRlciBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntGb3JtQnVpbGRlciBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGljaCB5b3UgY2FuIHVzZS48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPlVzZSB3aXRoIEZvcm1Ccm93c2VyIHYzPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXINCnF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UNCndpbGwgaGF2ZSB0byBjaG9vc2UgdXAgZnJvbnQgd2hpY2ggZmllbGRzIHlvdSB3aWxsIHdhbnQgdG8gYmUgYWJsZSB0byBzb3J0IGJ5LiBZb3UgY2FuIGNob29zZSB1cCB0byBmaXZlLiBDaGFuZ2luZyB0aGVzZSBhZnRlciB0aGVyZSBhcmUgc3VibWl0dGVkIHJlY29yZHMgd2lsbCByZXN1bHQgaW4gaW1wcm9wZXIgc29ydGluZyEgQSByZS1pbmRleCBmdW5jdGlvbiB3aWxsIGJlIGFkZGVkIHRvIGEgZnV0dXJlIHZlcnNpb24uPC9wPg0KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQNCmEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4NClRoaXMgZm9ybSBzaG91bGQgYmUgYWRkZWQgdG8geW91ciBwYWdlIHVzaW5nIHRoZSBzeW50YXgge0Zvcm1CdWlsZGVyIGFjdGlvbj0mIzAzOTtmZXVzZXJmb3JtJiMwMzk7IGZvcm09JiMwMzk7Zm9ybV9uYW1lJiMwMzk7fS48L3A+DQo8cD5Gb3IgZ3JlYXRlciBkYXRhIHNhZmV0eSwgeW91IGNhbiBlbmNyeXB0IHRoZSBzdG9yZWQgZm9ybXMgaW4gdGhlIGRhdGFiYXNlLiBZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4gbXljcnlwdCBsaWJyYXJ5IG9yIHRoZSBPcGVuU1NMIG1vZHVsZS4NCkluIGVpdGhlciBjYXNlLCBmb3IgdGhlIHBhc3NwaHJhc2UsIHlvdSBjYW4gZWl0aGVyIGVudGVyIHRleHQgaW4gdGhlIGZpZWxkIG9yIGEgZmlsZSBuYW1lLiBJZiB5b3Ugc3BlY2lmeSBhIGZpbGUgbmFtZSwgdGhlIGNvbnRlbnRzIG9mIHRoYXQNCmZpbGUgd2lsbCBiZSB1c2VkIGFzIHRoZSBwYXNzcGhyYXNlIGZvciBlbmNyeXB0aW5nLjwvcD4NCjxwPklmIHlvdSBlbmNyeXB0LCBiZSBhd2FyZSB0aGF0IHRoZSBmaWVsZHMgeW91IHVzZSBmb3Igc29ydGluZyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZW5jcnlwdGVkLiBZb3UgY2FuIGNob29zZSB0byBoYXNoIHRoZW07IHRoZSBjaGVhdCBoZXJlDQppcyB0aGF0IHRoZSBmaXJzdCBmb3VyIGxldHRlcnMgYXJlIGxlZnQgaW50YWN0IHRvIGFsbG93IGZvciBzb3J0aW5nLiBUaGUgc29ydGluZyBtYXkgbm90IGJlIHBlcmZlY3QsIGFuZCB0aGlzIHdlYWtlbnMgdGhlIHNlY3VyaXR5IHNpbmNlIGl0DQpleHBvc2VzIHNvbWUgY2xlYXJ0ZXh0LCBidXQgaXQgaXMgYmV0dGVyIHRoYW4gbm90aGluZy48L3A+DQo8cD48c3Ryb25nPkRJU0NMQUlNRVI8L3N0cm9uZz4uIFRoZSBlbmNyeXB0aW9uIG9mZmVyZWQgaGVyZSBzaG91bGQgYmUgY29uc2lkZXJlZCBqdXN0IG9uZSBtb3JlIGh1cmRsZSBmb3IgYSBoYWNrZXIsIG5vdCBhcyBhIGd1YXJhbnRlZSB0aGF0DQp5b3VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VjdXJlLiBBIHNtYXJ0IGhhY2tlciB3aG8gaGFzIGZvdW5kIHNvbWUgZXhwbG9pdCB0byB2aWV3IGRhdGFiYXNlIHJlY29yZHMgbWF5IHdlbGwgYmUgc21hcnQgZW5vdWdoIHRvIGdldCBhdA0KdGhlIG1vZHVsZSBzb3VyY2UgY29kZSwgYW5kIGZpbmQgdGhlaXIgd2F5IHRvIHRoZSBwYXNzcGhyYXNlLiBUaGlzIHdpbGwgbm90IHByb3RlY3QgeW91IGFnYWluc3QgYW4gZW5lbXkgd2hvIGhhcyBmdWxsIGFjY2VzcyB0byB5b3VyDQpzZXJ2ZXIsIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBQSFAsIGFuZCB0aGUgdGltZSB0byBwb2tlIGFyb3VuZC4gPGVtPjxzdHJvbmc+RG8gbm90PC9zdHJvbmc+IHVzZSB0aGlzIHRvIHByb3RlY3QgaGlnaC12YWx1ZSBpbmZvcm1hdGlvbiBzdWNoIGFzIGZpbmFuY2lhbCBkYXRhLA0Kc2Vuc2l0aXZlIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgaHVtYW4gcmlnaHRzIGRhdGEsIG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBvZiB2YWx1ZSB0byBhIHJlcHJlc3NpdmUgZ292ZXJubWVudCBvciBvcmdhbml6ZWQgY3JpbWUNCmNhcnRlbC48L2VtPjwvcD4NCjxoMz5Vc2luZyB3aXRoIFVzZXIgRGVmaW5lZCBUYWdzIChVRFRzKTwvaDM+DQo8cD5TZXZlcmFsIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIGJlaGF2aW9yIHZpYSBVRFRzIGlzIHByb3ZpZGVkICh0aGFua3MgdG8ga2luZCBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBjcmVkaXRzKS48L3A+DQoNCjx1bD48bGk+Q2FsbCBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBmaWVsZCB0eXBlIHN1Ym1pdHMgdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkDQpUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQNCmFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4NCjxsaT5Vc2VyIFRhZyBGaWVsZC4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVEVCwgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4NCjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVwmIzAzOTtzIGh1bWFuLXJlYWRhYmxlIHJlc3VsdHMuIFRoZSBVRFQgc2hvdWxkIGRvIHdoYXRldmVyDQp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZA0KdmFsdWUgYmVpbmcgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKS4gVGhpcw0KaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5DQpvZiB0aGUgZm9ybS48L2xpPg0KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZQ0KZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZA0KZXZlcnkgdGltZSBhbnkgcGFnZSBvZiB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQgKGluY2x1ZGluZyB3aGVuIHZhbGlkYXRpb24gZmFpbHMpLjwvbGk+DQo8L3VsPg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+UnVuIGluIE1MRSBNb2RlLiBUaGlzIGNoYW5nZXMgc29tZSBxdWVyaWVzIGFnYWluc3QgdGhlIGNvbnRlbnQgdGFibGUgdG8gdHJ5IHRvIHByZXZlbnQgdWdseSBjcmFzaGVzIHVuZGVyIHRoZSBNTEUgZm9yay4gQ2hlY2tpbmcgdGhpcyB3aWxsIGNhdXNlIHVnbHkgY3Jhc2hlcyBpZiB5b3UgYXJlIE5PVCBydW5uaW5nIHRoZSBNTEUgZm9yay48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIG5vIGxvbmdlciBzZXQgYnkgZGVmYXVsdC4gQ2hlY2tpbmcgaXQgd2lsbCBoaWRlIHRoZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0aGF0IHdvdWxkIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gDQpzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAmcXVvdDtGb3JtQnVpbGRlciBEZWZhdWx0JnF1b3Q7IHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQ0KdGhhdCB5b3UgdXNlIGZvciBwYWdlcyB0aGF0IGNvbnRhaW4geW91ciBmb3JtLjwvcD4gIA0KPHA+VGhpcyBkZWZhdWx0IENTUyB3YXMgZ3JhY2lvdXNseSBwcm92aWRlZCBieSBQYXVsIE5vb25lLjwvcD4NCg0KDQo8aDM+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+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGhlbHAgdGV4dDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQ0KYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+dmFsdWV9ICkuDQpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4NCjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+UmVzcG9uc2UgSUQgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCg0KPGgzPkNyZWRpdHM8L2gzPg0KPHA+TWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlLCBidWcgcmVwb3J0cywgY2FzaCwgYW5kIGlkZWFzIHRvIEZvcm1CdWlsZGVyLiBBbW9uZyB0aGVtIChhbHBoYWJldGljYWxseSk6DQo8dWw+DQo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1Ij5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gY29kZSwgZnVuZGluZyA8L2xpPg0KPGxpPkplcmVteSBCYXNzIC0gY29kZSBhbmQgc3VnZ2VzdGlvbnM8L2xpPg0KPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+DQo8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPg0KPGxpPkplZmYgQm9zY2ggLSBVRFQgVmFsaWRhdGlvbjwvbGk+DQo8bGk+Um9iZXJ0IENhbXBiZWxsIC0gbnVtZXJvdXMgY29kZSBjb250cmlidXRpb25zPC9saT4NCjxsaT5QaW90cmFzIENpbW1wZXJtYW4gLSBjb2RlPC9saT4NCjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPg0KPGxpPlJ5YW4gRm9zdGVyIC0gY29kZTwvbGk+DQo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4NCjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+DQo8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4NCjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+DQo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4NCjxsaT5QcnVlIFJvd2xhbmQgLSBidWcgZml4ZXM8L2xpPg0KPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+DQo8bGk+QWRhbSBTaGF3LVZhcmRpIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPg0KPC91bD4NCjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSSYjMDM5O2xsIGNvcnJlY3QgdGhlIG9taXNzaW9uITwvcD4NCjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4NCjx1bD4NCjxsaT5BbnkgZmllbGRzIHRoYXQgc2VuZHMgZW1haWwgdG8gYSBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcyB3aWxsIGFsc28gYWNjZXB0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzLjwvbGk+DQo8L3VsPg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPg0KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+DQo8bGk+Rmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4NCjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQmIzAzOTtzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IDxlbT5odW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnM8L2VtPiBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4NClBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uDQpmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMNCmV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhDQpzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+PGZvcm0gYWN0aW9uPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3ImcXVvdDsgbWV0aG9kPSZxdW90O3Bvc3QmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtjbWQmcXVvdDsgdmFsdWU9JnF1b3Q7X3MteGNsaWNrJnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aW1hZ2UmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZUNDX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pg0KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7ZW5jcnlwdGVkJnF1b3Q7IHZhbHVlPSZxdW90Oy0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tDQomcXVvdDs+DQo8L2Zvcm0+PHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuOTMzNjczMzQwLjEzMjA0MzcxNjEuMTMyMDU2NzYwMS4xMzIwNTc2MDQ1LjQnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzIwNTY3NjAxLjMuMy51dG1jc3I9ZmVlZGJ1cm5lcnx1dG1jY249RmVlZDogY21zbWFkZXNpbXBsZS9ibG9nIChDTVMgTWFkZSBTaW1wbGUpfHV0bWNtZD1mZWVkJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTkxNDYzODE4LTEzMTg5NzEzNDM3NzQnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhdW1sO3JieWdnYXJlbiAoRm9ybSBCdWlsZGVyKSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0YmYXVtbDtsdHR5cCBpbnRlIHZhbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnViZhdW1sO2xqIGVuIChlbGxlciBmbGVyKSBrYXRhbG9nIG9iamVjdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLVNsdXQgcCZhcmluZzsgZ3J1cHBydXRhIChmaWVsZHNldCknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLVN0YXJ0IHAmYXJpbmc7IGdydXBwcnV0YSAoZmllbGRzZXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnSW5tYXRuaW5nc2YmYXVtbDtsdCAodGV4dCBpbnB1dCknOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnTCZvdW1sO3Nlbm9yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ0wmb3VtbDtzZW5vcmQgaWdlbic7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdJbm1hdG5pbmdzZiZhdW1sO2x0IChmbGVyYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dHJ1dGEgKHRleHRhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25hcHAnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnS3J5c3NydXRhIChjaGVjayBib3gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnS3J5c3NydXRlZ3J1cHAgKGNoZWNrIGJveCBncm91cCknOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICcmQXJpbmc7ciBSdWxsZ2FyZGluc21lbnknOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGl2JmF1bWw7bGphcmUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnViZhdW1sO2xqYXJlIGYmb3VtbDtyIGFtZXJpa2Fuc2sgc3RhdCc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLYW5hZGVuc2lzayBQcm92aW5zIFYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmR2JmF1bWw7bGphcmUnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXR1bXYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0FsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFLXBvc3RhIHJlc3VsdGF0IGJhc2VyYWRlIHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNwYXJhIHJlc3VsdGF0IHRpbGwgZmlsIGJhc2VyYWRlIHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU3BhcmEgcmVzdWx0YXQgdGlsbCBmaWwoZXIpIGJhc2VyYWRlIHAmYXJpbmc7IGZsZXJhIHZhbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqT21kaXJpZ2VyYSB0aWxsIHNpZGEgYmFzZXJhdCBwJmFyaW5nOyB2YWwgaSBydWxsZ2FyZGluc21lbnknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtcG9zdGEgcmVzdWx0YXRldCB0aWxsIGJlc3QmYXVtbDttZCBhZHJlc3MvYmVzdCZhdW1sO21kYSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqQWRyZXNzIGYmb3VtbDtyIHZlcmlmaWVyYS12aWEtZXBvc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7LCBvY2ggc2tpY2thIGVuIGtvcGlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0IHRpbGwgdmFubGlnIGZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3BhcmEgcmVzdWx0YXQgaSBkYXRhYmFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTcGFyYSByZXN1bHRhdGV0IGYmb3VtbDtyIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQW5yb3AgdGlsbCBlbiBhbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWdnIG1lZCBmb3JtdWwmYXVtbDtycmVzdWx0YXQnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1wb3N0YSB0aWxsIGVuIGF2IGFudiZhdW1sO25kYXJlbiBhbmdpdmVuIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1wb3N0YSB0aWxsIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkYnJ5dG5pbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWx1cHBsYWRkbmluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3NlbiZxdW90OyBpZ2VuIGYmYXVtbDtsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLW5hbW5ldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDsmQXVtbDttbmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbCZhdW1sO25rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTCZhdW1sO25rIChhbnYmYXVtbDtuZGFyY2VudHJlcmFkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLWcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLWJlciZhdW1sO2tuYXQgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLSBVbmlrdCBoZWx0YWwgKFNlcmllKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1BbnYmYXVtbDtuZGFyIERlZmluaWVyYXQgVGFnIEFucm9wJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2cgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxnciZhdW1sO25zc25pdHRzIGYmYXVtbDtsdCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2ZXJpZmllcmluZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdIZWx0YWwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRS1wb3N0YWRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nO3N0ZSB2YXJhIGlrcnlzc2FkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaGEgcmVndWxqJmF1bWw7cnV0dHJ5Y2snOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTWF0Y2hhIGludGUgcmVndWxqJmF1bWw7cnV0dHJ5Y2snOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0luZ2V0IHYmYXVtbDtyZGUgYW5nYXZzIGYmb3VtbDtyIGV0dCBmJmF1bWw7bHQgc29tICZhdW1sO3Igb2JsaWdhdG9yaXNrdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0FuZ2UgZXR0IHYmYXVtbDtyZGUgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnQW5nZSBldHQgdGFsIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2UgZXR0IGdpbHRpZ3QgdiZhdW1sO3JkZSBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0FuZ2UgZXR0IGhlbHRhbHN2JmF1bWw7cmRlIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2UgZW4gZ2lsdGlnIGUtcG9zdGFkcmVzcyBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1wb3N0YWRyZXNzZW4gbWF0Y2hhciBpbnRlIHYmYXVtbDtyZGV0IGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWJmF1bWw7bmxpZ2VuIGZ5bGwgaSBldHQgZ29kayZhdW1sO250IHRlbGVmb25udW1tZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnViZhdW1sO25saWdlbiBsb2dnYSBpbiBmJm91bWw7ciBhdHQgYW52JmF1bWw7bmRhIGZvcm11bCZhdW1sO3JldCc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyB2ZXJrYXIgaW50ZSB2YXJhIGVuIGdpbHRpZyBlLXBvc3RhZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdlIGV0dCB2JmF1bWw7cmRlIHNvbSBpbnRlICZhdW1sO3IgbCZhdW1sO25ncmUgJmF1bWw7biAlcyB0ZWNrZW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmFyIHYmYXVtbDtubGlnIGFuZ2UgZXR0IHYmYXVtbDtyZGUgc29tICZhdW1sO3IgbWluc3QgJXMgdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVja2VuIGF0dCBhbnYmYXVtbDtuZGEgc29tIGF2Z3ImYXVtbDtuc2FyZSBpIHJlc3VsdGF0IHNvbSByZXR1cm5lcmFyIG1lciAmYXVtbDtuIGV0dCB2JmF1bWw7cmRlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSBiZWgmb3VtbDt2ZXIgciZhdW1sO3R0aWdoZXRlbiAmcXVvdDslcyZxdW90OyBmJm91bWw7ciBhdHQgdXRmJm91bWw7cmEgZGVuICZhcmluZzt0ZyZhdW1sO3JkZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVHl2JmF1bWw7cnIhIER1IGhhciBpbnRlIHRpbGxyJmF1bWw7Y2tsaWdhIHImYXVtbDt0dGlnaGV0ZXIgZiZvdW1sO3IgYXR0IGtvbW1hICZhcmluZzt0IGRlbiBoJmF1bWw7ciBzZWt0aW9uZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGJmF1bWw7bHRvcmRuaW5nZW4gdXBwZGF0ZXJhZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmF1bWw7ciBib3J0dGFnZXQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGJmF1bWw7bHQgYm9ydHRhZ2V0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uIHVwcGRhdGVyYWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgbSZhcmluZztzdGUga3J5c3NhIGkgJnF1b3Q7JXMmcXVvdDsgZiZvdW1sO3IgYXR0IGZvcnRzJmF1bWw7dHRhJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nO3N0ZSBhbmdlICZhcmluZzt0bWluc3RvbmUgZW4gbW90dGFnYXJhZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGZvcm11bCZhdW1sO3JldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGYmYXVtbDtsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhciAmYXVtbDtyIGludGUgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3JyJmF1bWw7biBmJmF1bWw7bHR0eXBlbiBoYXIgYW5nZXR0cy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGJmF1bWw7bHRuYW1uZXQgJnF1b3Q7JXMmcXVvdDsgYW52JmF1bWw7bmRzIHJlZGFuLiBWJmF1bWw7bmxpZ2VuIGFudiZhdW1sO25kIHVuaWthIGYmYXVtbDtsdG5hbW4gZWxsZXIgYXZtYXJrZXJhIHVuaWthIGYmYXVtbDtsdG5hbW4gaSBrb25maWd1cmF0aW9uZW4gZiZvdW1sO3IgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVuLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRiZhdW1sO2x0IG0mYXJpbmc7c3RlIGhhIGV0dCBuYW1uLCBzJmFyaW5nO3ZpZGEgZHUgaW50ZSBhdm1hcmtlcmFyIGRldHRhIGkgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyBrb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2Q6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgcnV0b3InOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbCc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyUgdGVja2VuLic7CiRsYW5nWydvcmRlciddID0gJ09yZG5pbmcnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbb3NwZWNpZmljZXJhdF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxsYWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cHBkYXRlcmFkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3N2YWwgdmlkIG91dHB1dC91dG1hdG5pbmcnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYXVtbDtsaiBFbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1YmYXVtbDtsaiBUeXAnOwokbGFuZ1sndG8nXSA9ICdUaWxsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWdhcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtqbGlnYSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9uZXInOwokbGFuZ1snc2F2ZSddID0gJ1NwYXJhJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZyB0aWxsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwYXJhIG9jaCBmb3J0cyZhdW1sO3R0IHJlZGlnZXJhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bCZhdW1sO3InOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bCZhdW1sO3IgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1N0YXR1cyBmJm91bWw7ciBvYmxpZ2F0b3Jpc2t0IGYmYXVtbDtsdCB1cHBkYXRlcmFkJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heHN0b3JsZWsnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWwmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3RuYSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RlbiB1cHBsYWRkYWRlIGZpbGVuICZvdW1sO3IgZiZvdW1sO3Igc3RvciEgTWF4aW1hbCBzdG9ybGVrICZhdW1sO3I6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVuIGgmYXVtbDtyIGZpbHR5cGVuIGthbiBpbnRlIGxhZGRhcyB1cHAuIEtvbnRyb2xsZXJhIGF0dCBmaWwmYXVtbDtuZGVsc2VuICZhdW1sO3Iga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFkZGEgdXBwJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWwmYXVtbDtyIGltcG9ydGVyYXQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBhdiBmb3JtdWwmYXVtbDtyIG1pc3NseWNrYWRlcyEgRGV0IHZhciBwcm9ibGVtIG1lZCBYTUwtZmlsZW5zIGZvcm1hdC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJhZGVyJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW5lcic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdGltbWFyc2tsb2NrYSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltbWFyc2tsb2NrYSc7CiRsYW5nWydob3VyJ10gPSAnVGltbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUiZhdW1sO2NrdmlkZDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWNrISBEaXR0IGZvcm11bCZhdW1sO3IgaGFyIHNraWNrYXRzLic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1snbW9uJ10gPSAnTSZhcmluZztuYWQnOwokbGFuZ1sneWVhciddID0gJyZBcmluZztyJzsKJGxhbmdbJ25vbmUnXSA9ICcoaW5nZW4pJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZW4gYXZpbnN0YWxsZXJhZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxlcmFkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZW4gdXBwZ3JhZGVyYWQgdGlsbCB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxsYmFrYS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2tpY2thIGZvcm11bCZhdW1sO3InOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnRm9ydHMmYXVtbDt0dC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnSWtyeXNzYWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnRWogaWtyeXNzYWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIdXZ1ZC0nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0luc3QmYXVtbDtsbG5pbmdhciBmJm91bWw7ciBmb3JtdWwmYXVtbDtydmlzbmluZyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnU2tpY2thdCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQXZhbmNlcmFkZSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybXVsJmF1bWw7cm1hbGwnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1NraWNrYS1tYWxsJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFibGVyICZhdW1sO3IgaW50ZSB0aWxsJmFyaW5nO3RuYSBpIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0wmYXVtbDtnZyB0aWxsIGZsZXIgdmFsJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUgdmFsJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTCZhdW1sO2dnIHRpbGwgZmxlciBrcnlzc3J1dG9yJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUga3J5c3NydXRvcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0wmYXVtbDtnZyB0aWxsIGVuIGFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1RhIGJvcnQgbWFya2VyYWRlIGFkcmVzc2VyJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIG1vdHRhZ2FyZSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdUYSBib3J0IG1hcmtlcmFkZSBtb3R0YWdhcmUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBlLXBvc3RtZWRkZWxhbmRlbiBnZW5lcmVyYWRlcyBmciZhcmluZztuIGRpbiBJUC1hZHJlc3MuIEFudGktc2tyJmF1bWw7cHBvc3Qta29kIGhhciBmJm91bWw7cmhpbmRyYXQgYXR0IGRlIGxldmVyZXJhdHMuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3N0JmF1bWw7bmt0IHNrciZhdW1sO3Bwb3N0IGZyJmFyaW5nO24gSVAtYWRyZXNzZW4gJXMgc3RvcHBhZGVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRvcmRuaW5nJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1YmYXVtbDtyZGV1cHBzJmF1bWw7dHRuaW5nOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRXR0IHZhbmxpZ3QgdXR0cnljayBmJm91bWw7ciBhdHQgdGlsbCZhcmluZzt0YSBmaWx0cmVyaW5nIGF2IGthdGFsb2dlciBnZW5vbSBuYW1uJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnSCZvdW1sO2pkZW4gcCZhcmluZzsgZmxlcnZhbHNmJmF1bWw7bHRldCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRiZhdW1sO2x0ZXRzIGgmb3VtbDtqZCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdNJmFyaW5nO2xtYXBwIGYmb3VtbDtyIGZpbGVyJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQW52JmF1bWw7bmRhcmRlZmluaWVyYWQgdGFnZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU2lkYSBhdHQgJmFyaW5nO3RlcnYmYXVtbDtuZGEgdGlsbCBtZWQgdXBwbGFkZG5pbmdzbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU2tpY2thdCBtZWQgZm9ybXVsJmF1bWw7cmJ5Z2dhcmVuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcHBsYWRkbmluZ3NrYXRlZ29yaSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NraWNrYSBkZW5uYSBmaWwgdGlsbCB1cHBsYWRkbmluZ3Ntb2R1bGVuLic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdGJm91bWw7cmtsYXJpbmcnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhsJmF1bWw7bmdkJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpa2V0dCBmJm91bWw7ciBrcnlzc3J5dGEnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdFdGlrZXR0IGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sO3JkZSBvbSBpa3J5c3NhZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWJmF1bWw7cmRlIG9tIGVqIGlrcnlzc2FkJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhbGplciBmJm91bWw7ciBrcnlzc3J1dGVncnVwcCc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdUYSBib3J0Pyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O1YmYXVtbDtsaiBFbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWJmF1bWw7cmRlIGYmb3VtbDtyIHVydmFsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hbW4gZiZvdW1sO3IgdXJ2YWxzdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJyZBdW1sO21uZSBmJm91bWw7ciB1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmR1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkdXJ2YWwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTdGFuZGFyZHVydmFsJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTmFtbiBmJm91bWw7ciBhbHRlcm5hdGl2JzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1YmYXVtbDtyZGV0IHNraWNrYXQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0FsdGVybmF0aXYgaSBydWxsZ2FyZGluc21lbnknOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsLWFsdGVybmF0aXYnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ01vdHRhZ2FyZW5zIGUtcG9zdGFkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ05hbW4gcCZhcmluZzsgbSZhcmluZztsZmlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyJmFyaW5nO24tbmFtbiZxdW90OyBmJm91bWw7ciBlLXBvc3QnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0FudiZhdW1sO25kIGVua2VsIGUtcG9zdHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0FudiZhdW1sO25kIGVua2VsIGUtcG9zdGFkcmVzc3ZlcmlmaWVyaW5nICh0LmV4LiB0aWxsJmFyaW5nO3QgJnF1b3Q7eEB5JnF1b3Q7IGlzdCZhdW1sO2xsZXQgZiZvdW1sO3IgYXR0IGtyJmF1bWw7dmEgJnF1b3Q7eEB5LnNlJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGciZhcmluZztuLWFkcmVzcyZxdW90OyBmJm91bWw7ciBlLXBvc3QnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLXBvc3R0ZWNrZW5rb2RuaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdSdWxsZ2FyZGluc21lbnliYXNlcmFkZSBlLXBvc3RkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxuYW1uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICcmQXVtbDttbmVzcmFkIGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWwmYXVtbDtybmFtbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bCZhdW1sO3JzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdGJmF1bWw7cmRpZyBhdHQgYW52JmF1bWw7bmRhcyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWogZiZhdW1sO3JkaWcnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGEgYXR0IG9tZGlyaWdlcmEgdGlsbCBlZnRlciBhdHQgZm9ybXVsJmF1bWw7cmV0IHNraWNrYXRzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWJmF1bWw7bmxpZ2EgbCZhdW1sO2dnIHRpbGwgZXR0IGYmYXVtbDtsdCB0aWxsIGZvcm11bCZhdW1sO3JldCBzJmFyaW5nOyBhdHQgYW52JmF1bWw7bmRhcmVucyBpbm1hdG5pbmcga2FuIGhhbnRlcmFzLiBEdSBrYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdhbnYmYXVtbDtuZCBkZW5uYSBnZW52JmF1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBmJm91bWw7ciBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWwmYXVtbDtyZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRiZhdW1sO2x0LUlEJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnVmlzYSBmJmF1bWw7bHRlbnMgYWxpYXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ09tIGR1IGtsaWNrYXIgaCZhdW1sO3Iga29tbWVyIGYmYXVtbDtsdGFsaWFzIGF0dCB2aXNhcyBuJmF1bWw7ciBkdSBsJmF1bWw7Z2dlciB0aWxsIGVsbGVyIHJlZGlnZXJhciBldHQgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRiZhdW1sO2x0bmFtbic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0YmYXVtbDtsdGFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGJmF1bWw7bHR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2Ymb3VtbDtyIGF0dCBza2FwYSBldHQgZm9ybXVsJmF1bWw7cmhhbnRlcmluZ3NmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTCZhdW1sO2dnIHRpbGwgbnl0dCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Zpc2EgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyB2ZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RldHRhIGtvbW1lciBhdHQgbCZhdW1sO2dnYSB0aWxsIHZlcnNpb25zbnVtcmV0IGYmb3VtbDtyIGRlbiB2ZXJzaW9uIGF2IEZvcm11bCZhdW1sO3JieWdnYXJtb2R1bGVuIHNvbSBkdSBoYXIgaW5zdGFsbGVyYWQgaSBlbiBrb21tZW50YXIsIGYmb3VtbDtyIGF0dCBoaiZhdW1sO2xwYSB0aWxsIG1lZCBmZWxzJm91bWw7a25pbmcuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBueXR0IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3JldHMgc2tpY2thLWtuYXBwJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnS25hcHAgdGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0wmYXVtbDtnZ2EgdGlsbCBKYXZhc2NyaXB0IGYmb3VtbDtyIGRlbiBzaXN0YSBza2lja2Eta25hcHBlbiBmJm91bWw7ciBhdHQgZiZvdW1sO3JoaW5kcmEgYXR0IGZvcm11bCZhdW1sO3JldCBza2lja2FzIGZsZXJhIGcmYXJpbmc7bmdlcj8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0wmYXVtbDtnZyB0aWxsIHMmYXVtbDtrZXJoZXRzc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O04mYXVtbDtzdGEta25hcHBlbiZxdW90OyBpIGZvcm11bCZhdW1sO3JldCAoYW52JmF1bWw7bmRzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3IgbWVkIGZsZXJhIHNpZG9yKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGV4dCBmJm91bWw7ciAmcXVvdDtGJm91bWw7cmVnJmFyaW5nO2VuZGUta25hcHBlbiZxdW90OyBpIGZvcm11bCZhdW1sO3JldCAoYW52JmF1bWw7bmRzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3IgbWVkIGZsZXJhIHNpZG9yKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRiZhdW1sO2x0dmVyaWZpZXJpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGJmF1bWw7bHQgZiZvdW1sO3IgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZiZvdW1sO3IgZGV0dGEgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzIGYmb3VtbDtyIGRldHRhIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzIGYmb3VtbDtyIGRldHRhIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnQW52JmF1bWw7bmRhcmRlZmluaWVyYWQgdGFnIGF0dCBsJmF1bWw7c2EgaW4gZiZvdW1sO3JlIGZvcm11bCZhdW1sO3JldCB2aXNhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdBbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWcgYXR0IGFucm9wYSBpbm5hbiBmb3JtdWwmYXVtbDtyIHZpc2FzIChhbnJvcGFkIHAmYXJpbmc7IHZhcmplIHNpZGEgc29tIGluZyZhcmluZztyIGkgZXR0IGZvcm11bCZhdW1sO3IgbWVkIGZsZXJhIHNpZG9yKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0FudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZyBhdHQgYW5yb3BhIHVuZGVyIGZvcm11bCZhdW1sO3IgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBmJm91bWw7ciBhdHQgbWFya2VyYSBvYmxpZ2F0b3Jpc2thIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ09ibGlnYXRvcmlza3QnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0cmb3VtbDtyIGRldHRhIGYmYXVtbDtsdCBvYmxpZ2F0b3Jpc2t0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdHJm91bWw7bSBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0cmb3VtbDttIGRldHRhIGYmYXVtbDtsdHMgbmFtbiBwJmFyaW5nOyBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2sgdGV4dCBhdHQgdmlzYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ3VsaiZhdW1sO3J1dHRyeWNrIGYmb3VtbDtyIHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbCByYWRlciBhdHQgdmlzYSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdSZWFkIE9ubHknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0luZ2V0IHN0YW5kYXJkdmFsJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGdvZGsmYXVtbDtubmFuZGUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRhIHJlZ3VsaiZhdW1sO3J1dHRyeWNrIGFudiZhdW1sO25kcyBiYXJhIG9tICZxdW90O3ZlcmlmaWVyaW5nc3R5cGVuJnF1b3Q7ICZhdW1sO3Igc2F0dCB0aWxsIGV0dCByZWd1bGomYXVtbDtydXR0cnljay1yZWxhdGVyYXQgYWx0ZXJuYXRpdi4gSW5rbHVkZXJhIGV0dCBmdWxsdCByZWd1bGomYXVtbDtydXR0cnljayBpIFBlcmwtc3RpbCwgaW5rbHVzaXZlIHN0YXJ0L3N0b3Atc25lZHN0cmVja2VuIG9jaCAtZmxhZ2dvcm5hICh0LmV4LiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ09ibGlnLic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0cmb3VtbDttIGZlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybXVsJmF1bWw7cnZpc25pbmdzdHlwJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGJm91bWw7cmhpbmRyYSBmZWxzJm91bWw7a25pbmdzLSBvY2ggZmVsbWVkZGVsYW5kZW4gZnImYXJpbmc7biBhdHQgdmlzYXMgZiZvdW1sO3IgYW5kcmEgYW52JmF1bWw7bmRhcmUuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1wb3N0bWFsbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsIGZpbHN0b3JsZWsgZiZvdW1sO3IgdXBwbGFkZG5pbmcgKGtpbG9ieXRlKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5hIGJlZ3ImYXVtbDtuc25pbmcgJmF1bWw7ciB1dCZvdW1sO3ZlciBhbmRyYSBiZWdyJmF1bWw7bnNuaW5nYXIgc29tICZhdW1sO3Igc2F0dGEgYXYgcGhwLSBlbGxlciB3ZWJic2VydmVyaW5zdCZhdW1sO2xsbmluZ2FyLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RpbGwmYXJpbmc7dG5hIGZpbCZhdW1sO25kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyYXJhZCBsaXN0YSwgdXRhbiBwdW5rdCAodC5leC4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbGFuc2xhZyBpZ25vcmVyYXMuIE9tIGR1IGwmYXVtbDttbmFyIGRldHRhIGYmYXVtbDtsdGV0IGJsYW5rdCBpbm5lYiZhdW1sO3IgZGV0IGF0dCBkZXQgaW50ZSBrb21tZXIgYXR0IGZpbm5hcyBuJmFyaW5nO2dyYSByZXN0cmlrdGlvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzYSByZXN0cmlrdGlvbmVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXNhIGFsbGEgc3Rvcmxla3MtIG9jaCBmaWwmYXVtbDtuZGVsc2VyZXN0cmlrdGlvbmVyIGYmb3VtbDtyIHVwcGxhZGRuaW5nc2YmYXVtbDtsdGV0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTWFsbCBhdHQgYW52JmF1bWw7bmRhIGYmb3VtbDtyIFZpc2EgRm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGEgJXMgYXYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0YmYXVtbDtsdGV0IGhhciBpbmdhIGF2YW5jZXJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IGF0dCByZXR1cm5lcmEgZiZvdW1sO3Igb3NwZWNpZmljZXJhZGUgZiZhdW1sO2x0diZhdW1sO3JkZW4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ00mb3VtbDtqbGlnZyZvdW1sO3IgcnVsbGdhcmRpbnNtZW55IGYmb3VtbDtyIHNuYWJiLXRpbGwmYXVtbDtnZyBhdmwgZiZhdW1sO2x0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3I/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTSZvdW1sO2psaWdnJm91bWw7ciBydWxsZ2FyZGluc21lbnkgZiZvdW1sO3Igc25hYmItdGlsbCZhdW1sO2dnPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25hYmItdGlsbCZhdW1sO2dnIGF2IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgcCZhcmluZzsgdGlsbCZhcmluZzt0cyBlbmRhc3QgMTAgZS1wb3N0bWVkZGVsYW5kZW4gYXR0IGdlbmVyZXJhcyBmciZhcmluZztuIGVuIGdpdmVuIElQLWFkcmVzcyAocGVyIHRpbW1lKSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdUaWxsJmFyaW5nO3QgcHJpbWl0aXZhIGFudGktc2tyJmF1bWw7cHBvc3RlZ2Vuc2thcGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzYSBmJmF1bWw7bHQtSUQmIzAzOTtuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgdGlsbCZhcmluZzt0cyBmJmF1bWw7bHQtSUQmIzAzOTtuIGF0dCB2aXNhcyBuJmF1bWw7ciBtYW4gbCZhdW1sO2dnZXIgdGlsbCBlbGxlciByZWRpZ2VyYXIgZXR0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0xhZGRhIHVwcCBmb3JtdWwmYXVtbDtyIGZyJmFyaW5nO24gWE1MLWZpbCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQW52JmF1bWw7bmQgZGV0dGEgZm9ybXVsJmF1bWw7cm5hbW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1pbXBvcnQgYXYgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0FudiZhdW1sO25kIGRldHRhIGZvcm11bCZhdW1sO3JhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlcmEgSFRNTC1lcG9zdG1lZGRlbGFuZGVuPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgaSBhdXRvbWF0aXNrdD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgaSBVUkwtYWRyZXNzIGYmb3VtbDtyIHNpZGFuIGQmYXVtbDtyIGZvcm11bCZhdW1sO3JldCBmaW5ucyBhdXRvbWF0aXNrdD8gKGRldHRhICZhcmluZztzaWRvcyZhdW1sO3R0ZXIgYWx0ZXJuYXRpdmV0IHNhanRzaWRlbCZhdW1sO25rIG5lZGFuKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFyZC1VUkwtYWRyZXNzIGYmb3VtbDtyIGwmYXVtbDtuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZHRleHQgZiZvdW1sO3IgbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMJmF1bWw7bmsgdGlsbCBzYWp0LXNpZGFuJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0FudiZhdW1sO25kIENhcHRjaGEgZiZvdW1sO3IgYXR0IGYmb3VtbDtyZWJ5Z2dhIG8mb3VtbDtuc2thdCBmb3JtdWwmYXVtbDtyZGF0YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0Jla3ImYXVtbDtmdGEgYXR0IGR1IGludGUgJmF1bWw7ciBldHQgc2NyaXB0IGdlbm9tIGF0dCBtYXRhIGluIHRleHRlbiBpIGJpbGRlbic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdDYXB0Y2hhLXRleHRlbiBtaXNzbHlja2FkZXMnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEtdGV4dGVuIHZhciBpbnRlIHImYXVtbDt0dCc7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIaiZhdW1sO2xwdGV4dCBmJm91bWw7ciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnS2xpY2thIGgmYXVtbDtyIG9tIGR1IGJhcmEgdmlsbCBoYSBmJm91bWw7cmtyeXNzYWRlIHJ1dG9ycyB2JmF1bWw7cmRlbi4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0wmYXVtbDtua3RldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdJa3J5c3NhZCBzb20gc3RhbmRhcmQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdBbnYmYXVtbDtuZCAyNC10aW1tYXJzIHRpZHNhbmdpdmVsc2U/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnRU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ0ZNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnQmVoYW5kbGEgc21hcnR5LXRhZzphciBpIGYmYXVtbDtsdD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JhZGVyIChOb3RlcmEgYXR0IGRldHRhIGthbiAmb3VtbDt2ZXJza3JpZGFzIGF2IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbHVtbmVyIChOb3RlcmEgYXR0IGRldHRhIGthbiAmb3VtbDt2ZXJza3JpZGFzIGF2IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWxqZXIgZiZvdW1sO3IgaHV2dWRmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheSYjMDM5O3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlZ3ImYXVtbDtuc2EgYW52JmF1bWw7bmRhcmxpc3RhbiB0aWxsIGFudiZhdW1sO25kYXJlIGkgdmlzcyBncnVwcCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdLcnlwdGVyYSBsYWdyYWQgZGF0YSBpIGRhdGFiYXNlbic7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWthdCBmJm91bWw7ciBrcnlwdGVyaW5nIGF2IGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdCBueWNrZWwgZiZvdW1sO3Iga3J5cHRlcmluZyBhdiBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdMYWdyaW5nc2tyeXB0ZXJpbmcgb3RpbGxnJmF1bWw7bmdsaWcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdWYXIgdiZhdW1sO25saWcgaW5zdGFsbGVyYSBPcGVuU1NMIG1vZHVsZW4gZWxsZXIgbWNyeXB0IHN0Jm91bWw7ZCBvbSBkdSB2aWxsIG0mb3VtbDtqbGlnZyZvdW1sO3JhIGRhdGFiYXNrcnlwdGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ0tvbnRyb2xsZXJhIGF0dCBkdSBoYXIgc3Qmb3VtbDtkIGYmb3VtbDtyIENVUkwgYWt0aXZlcmF0IGkgZGluIFBIUCBpbnN0YWxsYXRpb24uIFNlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ0smb3VtbDtyIGkgTUxFIGwmYXVtbDtnZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnS3J5cHRlcmluZ3MgYmlibGlvdGVrJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdLcnlwdGVyaW5ncyBiaWJsaW90ZWsnOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdWYXIgdiZhdW1sO25saWcgaW5zdGFsbGVyYSBGcm9udGVuZCBVc2VyIG1vZHVsZW4gZiZvdW1sO3IgYXR0IGtvcHBsYSBldHQgZm9ybXVsJmF1bWw7ciBvY2ggZGVzcyBkYXRhIHRpbGwgZW4gc3BlY2lmaWsgYW52JmF1bWw7bmRhcmUnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybSYjMDM5O3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnS3J5cHRlcmluZyc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/JzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd2lsbCBiZSBzdG9yZWQgaW4gYW4gWE1MIGZvcm1hdCBpbiB0aGUgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIGRhdGFiYXNlIHRhYmxlLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJvciEgRWl0aGVyIHRoZSBmb3JtIGhhcyBubyBmb3JtX2J1aWxkZXIgZGlzcG9zaXRpb24sIG9yIGl0IGZhaWxlZCB0byBpbnN0YW50aWF0ZSAoZHVlIHRvIG1lbW9yeSBpc3N1ZXM/KSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnRW5kYXN0IGkgZ3J1cHAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVmlzYSBmJm91bWw7ciBhbnYmYXVtbDtuZGFyZT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGV0IGgmYXVtbDtyIGYmYXVtbDtsdGV0IGthbiBsJmF1bWw7bW5hcyB0b210JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlciBmJm91bWw7ciBtYWxsJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1RpbGxnJmF1bWw7bmdsaWdhIHZhcmlhYmxlcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLXZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnSW5za2lja2F0IGRhdHVtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQLWFkcmVzcyBmJm91bWw7ciBwZXJzb25lbiBzb20gYW52JmF1bWw7bnQgZm9ybXVsJmF1bWw7cmV0JzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBmJm91bWw7ciBzaWRhbiBzb20gaW5uZWgmYXJpbmc7bGxlciBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIFZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRpdmEgZiZhdW1sO2x0bmFtbiBrYW4gYW52JmF1bWw7bmRhcyB1dGJ5dGJhcnQgKHMmYXVtbDtyc2tpbHQgYW52JmF1bWw7bmRiYXJ0IG9tIFNtYXJ0eSBpbnRlIGdpbGxhciB0ZWNrZW4gdXRhbmYmb3VtbDtyIEFTQ0lJIDMyLTEyNikgPGJyIC8+QW5kcmEgZiZhdW1sO2x0IGJsaXIgdGlsbGcmYXVtbDtuZ2xpZ2EgZWZ0ZXJoYW5kIHNvbSBkdSBsJmF1bWw7Z2dlciB0aWxsIGRlbSB0aWxsIGZvcm11bCZhdW1sO3JldC4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGJmF1bWw7bHQgc29tIGhhciBmbGVyYSB2JmF1bWw7cmRlbiBrYW4gb2NrcyZhcmluZzsga29tbWFzICZhcmluZzt0IHZpYSBzbWFydHl2JmF1bWw7cmRlbmEgJGZpZWxkbmFtZV9hcnJheSBlbGxlciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5waHAtbWFudWFsZW48L2E+IGYmb3VtbDtyIGhqJmF1bWw7bHAgbWVkIGZvcm1hdHRlcmluZy4uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ1JlcHJlc2VudGVyYWRlIGYmYXVtbDtsdCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsbGJha2EgdGlsbCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCBmJm91bWw7ciBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnU2thcGEgUHJvdm1hbGwgZiZvdW1sO3IgSGVhZGVybic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1NrYXBhIHJ1YnJpayAoaGVhZGVyKSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdldHQgdGFidWxhdG9yLXRlY2tlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnTWFsbCBmJm91bWw7ciBlbiByYWQgaSB1dGRhdGFmaWwnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdNYWxsIGYmb3VtbDtyIGh1dnVkIHAmYXJpbmc7IHV0ZmlsJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgYXR0IGtsaWNrYSBmJm91bWw7ciBmb3JtdWwmYXVtbDtyYmVrciZhdW1sO2Z0ZWxzZSc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1YmYXVtbDtyZGUgKHNlIGZsaWtlbiBBdmFuY2VyYXQgb20gZHUgYW52JmF1bWw7bmRlciBTbWFydHktdGFnYXIpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW1mb3JtYXQgKHZhbmxpZ2E8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5waHAtZGF0dW1mb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0FudiZhdW1sO25kIFdZU0lXWUctcmVkaWdlcmFyZSBmJm91bWw7ciB0ZXh0cnV0YW4gKGVuYmFydCBhZG1pbnNpZGFuKT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnU3RhcnQgcCZhcmluZzsgJmFyaW5nO3JvbWYmYXJpbmc7bmcnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdTbHV0IHAmYXJpbmc7ICZhcmluZztyb21mJmFyaW5nO25nJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1N0YW5kYXJkICZBcmluZztyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFMmYXVtbDt0dCB0aWxsIC0xIGYmb3VtbDtyIGF0dCBzdGFuZGFyZCZhcmluZztyIHNrYSB2YXJhIG51dmFyYW5kZSAmYXJpbmc7ciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0VmdGVyIGF0dCBmb3JtdWwmYXVtbDtyZXQgbCZhdW1sO21uYXRzIGluJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0dW0gR29kayZhdW1sO25kIChhdiBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IHN1Ym1pdHRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdTa2lja2EgdGlsbCBzaWRhJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbnNzaWRhJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ0tyJmF1bWw7dmVyIGYmYXVtbDtsdG5hbW4nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLciZhdW1sO3YgYXR0IGYmYXVtbDtsdCBoYXIgZXR0IG5hbW4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnS3ImYXVtbDt2IHVuaWthIGYmYXVtbDtsdG5hbW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyJmF1bWw7diBhdHQgZiZhdW1sO2x0IGhhciB1bmlrYSBuYW1uPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdPbWdydXBwZXJhIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTGFkZGEgbWFsbCc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMJmF1bWw7dHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnUmFkZXJhIGtuYXBwdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hqJmF1bWw7bHAtdGV4dCBhdHQgdmlzYXMgbWVkIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHImYXVtbDtuZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhcmR2JmF1bWw7cmRlIGYmb3VtbDtyIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGYmb3VtbDtyIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnViZhdW1sO2xqIGludGUgYmFyYSBlbiBzbHVtcGFydGFkIGFkcmVzcyBoJmF1bWw7ciAtLSBtJmFyaW5nO25nYSBJU1BzIGtvbW1lciA8YnIgLz4gaW50ZSBhdHQgbGV2ZXJlcmEgbWFpbGV0IG9tIGR1IGFudiZhdW1sO25kZXIgZW4gYW5uYW4gZG9tJmF1bWw7biAmYXVtbDtuIGRpdHQgdmVya2xpZ2EgPGJyIC8+IGhvc3QgKGQudi5zLiwgYW52JmF1bWw7bmQgbiZhcmluZztnb3Qgc29tIG5hbW5AJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0JlaCZvdW1sO3ZlciBkdSBmbGVyIGYmYXVtbDtsdHR5cGVyPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnRiZvdW1sO3IgbSZhcmluZztuZ2EgZiZvdW1sO3J2aXJyYW5kZSBmJmF1bWw7bHR0eXBlcj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTa2lmdGEgdGlsbCBhdmFuY2VyYXQgbCZhdW1sO2dlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU2tpZnRhIHRpbGwgYXZhbmNlcmF0IGwmYXVtbDtnZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdGb2xkZXIgZiZvdW1sO3IgYXR0IHNwYXJhIGZpbGVyIGknOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2tpY2thIG1pZyBlbiBrb3BpYSBhdiBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdEaXNwbGF5IGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ0wmb3VtbDtzZW5vcmQgbWF0Y2hhciBpbnRlICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnQmFjayB0byBGb3JtQnVpbGRlciBNYWluIFBhZ2UnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnQWxkcmlnJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dlIGJlcyZvdW1sO2thcmVuIGV0dCB2YWwgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWxsdGlkJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnJnF1b3Q7RnJvbSZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCb3RoICZxdW90O0Zyb20mcXVvdDsgYW5kICZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm91cCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdQaWNrIGEgY2F0ZWdvcnkgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdFbmQgeWVhcic7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlbiBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdWQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRiZvdW1sO3J2YWxkIG1hbGwnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbG1hbGwsIHRpdGxhciB0aWxsIHYmYXVtbDtuc3Rlcic7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJlbGxtYWxsLCB0aXRsYXIgJm91bWw7dmVyIGYmYXVtbDtsdCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdNYWxsIGZyJmFyaW5nO24gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdVc2luZyBNb2R1bGUgSW50ZXJmYWNlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4NClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7Pg0KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdMJmF1bWw7Z2cgdGlsbCBkaW4gdGFnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3RpJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnTGVkc2VuISBEZXQgdXBwc3RvZCBldHQgZmVsIGQmYXJpbmc7IGRpdHQgZm9ybXVsJmF1bWw7ciBoYW50ZXJhZGVzJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0t1bmRlIGludGUgaGl0dGEgbW9kdWxlbiBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcHBsYWRkbmluZ3MvQmlmb2duaW5nc2ZlbCBmJm91bWw7ciBmaWwgJXMgKHRtcF9uYW1lOiAlcywgYXYgdHlwZW4gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXR0IGZlbCBoYXIgdXBwc3QmYXJpbmc7dHQhIEt1bmRlIGludGUgb3JkbmEgbCZhcmluZztzbmluZyBwJmFyaW5nOyBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogb21hcmtlcmFkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBtYXJrZXJhZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5JbmdlbiBlcG9zdG1hbGwgJmF1bWw7ciB0aWxsc2F0dCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+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+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+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMgZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEgc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTI0NTc0ODA3Mi0xMjUxNTA0MTgwOTkwJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI2OTg5NDkwMy4yMi4xNS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPW1vZHVsZXMgY21zbXMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yOTE3MjgwNzE1MzkxODU5MDAwLjEyNTE1MDQxODEuMTI2OTU0MDE0OS4xMjY5ODkxMTEzLjIyJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyNjk4OTExMTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBOdW1iZXIgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnxZ5pZnJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnxZ5pZnJlIFRla3JhciAoZG/En3J1bGFtYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnQnV0b24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdZZWFyIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1TYXlmYSBTb251JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlrIFlhesSxJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpayBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGluayAoVXNlci1lbnRlcmVkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLS1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEFsYW7EsSc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsZSBJbnRlcmZhY2UgRmllbGQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTm8gVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWwgQWRyZXNpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb24gTnVtYXJhc8SxIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFbWFpbCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIHZhbHVlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdQbGVhc2UgbG9nIGluIHRvIHVzZSB0aGlzIGZvcm0nOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBzaWxpbmRpLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmllbGQgc2lsaW5kaS4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlnJnV1bWw7cmFzeW9uIEcmdXVtbDtuY2VsbGVuZGkuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdObyBmaWVsZCBhc3NpZ25lZCBmb3IgJXMnOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQmlsaW5tZXllbic7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnZWtsZW5kaSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnZyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZSZjY2VkaWw7aW5peic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlJmNjZWRpbDtpbml6JzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnRXZldCc7CiRsYW5nWydubyddID0gJ0hhecSxcic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydmaWVsZHMnXSA9ICdmaWVsZHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdLYXlkZXQnOwokbGFuZ1snYWRkJ10gPSAnRWtsZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdHJnV1bWw7bmNlbGxlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnS2F5ZGV0IHZlIGQmdXVtbDt6ZW5sZW1leWUgZGV2YW0gZXQnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdCaWxnaSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdPdG9tYXRpayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1sYXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0F5YXJsYXInOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ8SwemluIHZlcmlsZW4gZG9zeWEgdGlwbGVyaSc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdZJnV1bWw7a2xlJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIFNhYXQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0IFNhYXQnOwokbGFuZ1snaG91ciddID0gJ1NhYXQnOwokbGFuZ1snbWluJ10gPSAnRGFraWthJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdEJnV1bWw7emVubGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnU2lsJzsKJGxhbmdbJ2RheSddID0gJ0cmdXVtbDtuJzsKJGxhbmdbJ21vbiddID0gJ0F5JzsKJGxhbmdbJ3llYXInXSA9ICd5xLFsJzsKJGxhbmdbJ25vbmUnXSA9ICcoeW9rKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2QmdXVtbDtsIGthbGTEsXLEsWxkxLEuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnR2VyaS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRyZvdW1sO25kZXInOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnRGV2YW0uLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1NlJmNjZWRpbDtpbGknOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnU2UmY2NlZGlsO2lsaSBEZcSfaWwnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIEcmb3VtbDtyJnV1bWw7biZ1dW1sO20gQXlhcmxhcsSxJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIEF5YXJsYXLEsSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdHZWxpxZ9tacWfIEF5YXJsYXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSDFnmFibG9udSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURUIEVudGVncmFzeW9udSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ8SwcHRhbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmllbGQgSGVpZ2h0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdBbGxvdyB1cGxvYWQgdG8gb3ZlcndyaXRlIHByZXZpb3VzbHkgZmlsZXM/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnU2hvdWxkIHVwbG9hZGVkIGZpbGUgb3ZlcndyaXRlIHByZXZpb3VzbHkgdXBsb2FkZWQgZmlsZSBpZiBpdCBoYXMgdGhlIHNhbWUgbmFtZT8nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAnQWxsb3dzIE92ZXJ3cml0aW5nJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnTm8gT3ZlcndyaXRlJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICdGaWxlICVzIGFscmVhZHkgZXhpc3RzLCBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuLic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ0ZpbGVuYW1lIHRlbXBsYXRlJzsKJGxhbmdbJ29yaWdpbmFsX2ZpbGVfZXh0ZW5zaW9uJ10gPSAnT3JpZ2luYWwgZmlsZSBleHRlbnNpb24gKGluY2x1ZGVzIHRoZSAmcXVvdDsuJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1N1cHByZXNzIGZpbGVuYW1lIGluIGVtYWlscyBhbmQgZm9ybXMgdGhlIGVuZCB1c2VyIHdpbGwgc2VlJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdUbyByZW5hbWUgYSBmaWxlIHVwb24gdXBsb2FkaW5nLCBjcmVhdGUgdGhlIHRlbXBsYXRlIGhlcmUuIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIG9yaWdpbmFsIGZpbGVuYW1lJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTaWw/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0Rvc3lhIEFkxLEnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIEtvbnUgQWxhbsSxJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gQWTEsSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdCZ1dW1sO3MmdXVtbDsnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnSGF6xLFyIERlxJ9pbCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBBbGFubGFyxLEnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzIGFuZCBET00gaWQgKENTUyBpZCkgYXR0cmlidXRlJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdZZW5pIEZvcm0gRWtsZSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ0J1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBkdXJpbmcgZm9ybSB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnWm9ydW5sdSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIG9mIGZpZWxkIGNvbnRlbnQgKDAgb3IgYmxhbmsgbWVhbnMgbm8gbGltaXQpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnU2FsdCBPa3VudXInOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGF0YWxhcsSxIEdpemxlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCDFnmFibG9udSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGVzIGludG8nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnSMSxemzEsSBBbGFuIEVrbGV5aWNpJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5JiMwMzk7cyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHdpbGwgYmUgc3RvcmVkIGluIGFuIFhNTCBmb3JtYXQgaW4gdGhlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJsZS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRXJyb3IhIEVpdGhlciB0aGUgZm9ybSBoYXMgbm8gZm9ybV9idWlsZGVyIGRpc3Bvc2l0aW9uLCBvciBpdCBmYWlsZWQgdG8gaW5zdGFudGlhdGUgKGR1ZSB0byBtZW1vcnkgaXNzdWVzPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXNlICZxdW90O20mcXVvdDsgZm9yIE1vbnRoLCAmcXVvdDtkJnF1b3Q7IGZvciBEYXksIGFuZCAmcXVvdDt5JnF1b3Q7IGZvciBZZWFyLiBTZXBhcmF0ZSB0aGUgaXRlbXMgYnkgaHlwaGVucy4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWyd0aXRsZV91c2VfcmFuZG9tX2dlbmVyYXRvciddID0gJ1VzZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBpbnN0ZWFkIG9mIHN0YXRpYyc7CiRsYW5nWyd0aXRsZV9udW1iZXJzX3RvX2dlbmVyYXRlJ10gPSAnSG93IG1hbnkgbnVtYmVycyB0byBnZW5lcmF0ZSBpbiBwcm9jZXNzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdUYXJpaCc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpeW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIEthcmFrdGVyaSc7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2hlbHBfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgZmlsZSBsb2NhdGVkIGluIHRoZSBGb3JtQnVpbGRlci90ZW1wbGF0ZXMvIGZvbGRlci4gVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmIHlvdSB1c2UgVFhUIGFzIHlvdXIgZmlsZSB0eXBlLic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+DQpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+DQombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4NCkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gJnF1b3Q7QmFzaWMmcXVvdDsuPGJyIC8+DQpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAmcXVvdDtSVEYmcXVvdDsgYXMgRmlsZSBUeXBlIGFuZCAmcXVvdDtBZHZhbmNlZCZxdW90OyBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlSEVBREVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydoZWxwX2ZpbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGT09URVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBGb3JtYSBHZXJpIEQmb3VtbDtuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBGb290ZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBmb290ZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBSVEYgZmlsZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdHlwZSddID0gJ0Nob29zZSBhIGZpbGUgdHlwZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdDaG9vc2UgYW4gUlRGIHRlbXBsYXRlIHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IGZvciBkaXNwbGF5IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWcSxbCBhcmFsxLHEn8SxIGJhxZ9sYW5nxLFjxLEnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZxLFsIGFyYWzEscSfxLEgc29udSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdWYXJzYXnEsWxhbiBZxLFsJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnRGF0ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgc3VibWl0dGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnWSZvdW1sO25sZW5kaXJpbGVjZWsgU2F5ZmEnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIZWxwLXRleHQgdG8gZGlzcGxheSB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnU3RyaW5nIChubyBzcGFjZXMgYmV0d2VlbiBmaWVsZHMpPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQ29tcHV0ZWQvUEhQJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtGb3JtQnVpbGRlcn0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdEaXNwbGF5IGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1Bhc3N3b3JkIGRvZXMgbm90IG1hdGNoICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnQmFjayB0byBGb3JtQnVpbGRlciBNYWluIFBhZ2UnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1lvdSBtdXN0IGNsaWNrIG9uZSBvZiB0aGUgJnF1b3Q7c2F2ZSZxdW90OyBidXR0b25zIHRvIG1ha2UgeW91ciBuZXcgZmllbGQgb3JkZXIgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ1VzZSBIVE1MNSBwbGFjZWhvbGRlciB0ZXh0IGluc3RlYWQgb2YgSmF2YXNjcmlwdCc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUhJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICcmcXVvdDtGcm9tJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX3JlcGx5J10gPSAnJnF1b3Q7UmVwbHktVG8mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0JvdGggJnF1b3Q7RnJvbSZxdW90OyBhbmQgJnF1b3Q7UmVwbHktVG8mcXVvdDsgZW1haWwgYWRkcmVzc2VzJzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1NlbGVjdCBMaXN0IChzaW5nbGUpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnU2VsZWN0IExpc3QgKG11bHRpcGxlKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlvIEdyb3VwJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ05vdGU6IE91dHB1dCB3aWxsIGJlIGluIHRoZSBmb3JtIG9mPGJyLz4mcXVvdDtjb21wYW55IG5hbWUmcXVvdDs9PiZxdW90O3ZhbHVlJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3BpY2tfY2F0ZWdvcmllcyddID0gJ1BpY2sgYSBjYXRlZ29yeSAobXVsdGlwbGUpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXSA9ICdQdWxsIGEgZmllbGQgRGVmaW5pdGlvbiYjMDM5O3MgdmFsdWUgKHNpbmdsZSkgPGVtPm9wdGlvbmFsPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXSA9ICdDaG9vc2UgVXNlciBpbnB1dCc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoQWxzbyB0YWtlIGEgbG9vayBhdCB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiBpZiB5b3Ugd2FudCB0byBzZXQgYSBVRFQgZm9yIGZvcm0gdmFsaWRhdGlvbiknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ0VuZCB5ZWFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnU21hcnR5IGRhdGEgb3IgbG9naWMgdGhhdCBpcyBtZWFudCB0byBiZSBzZW50IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnQ2FuIGJlIHNtYXJ0eSBkYXRhLCBqYXZhc2NyaXB0LCBvciBzb21lIG90aGVyIGRhdGEgeW91IHdhbiYjMDM5O3QgdG8gc2VudCBhbG9uZyB3aXRoIHRoaXMgZmllbGQuPGJyIC8+R29lcyB0aHJvdWdoIHRoZSBTbWFydHkgY29tcGlsZXIsIHNvIHJlbWVtYmVyIHVzZSB7bGl0ZXJhbH17L2xpdGVyYWx9IHRhZ3Mgd2l0aCA8c2NyaXB0Pjwvc2NyaXB0Pic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAnSW5jbHVkZSBsYWJlbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnRW5hYmxpbmcgdGhpcyBpbmNsdWRlcyBsYWJlbHMgdG8gb3V0cHV0LiBleGFtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGluayB0aGlzIGZpZWxkIHRvIGl0JiMwMzk7cyBzaWJsaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICdEcm9wZG93biBsaXN0cyBhbGwgc2libGluZ3Mgb2YgdGhpcyBmaWVsZCBhbmQgYWxsb3dzIHlvdSB0byBsaW5rIHRoaXMgZmllbGQgdG8gb25lIG9mIGl0JiMwMzk7cyBzaWJsaW5nLiBNYWtlcyBwb3NzaWJsZSBjb250cm9sbGluZyB0aGlzIGZpZWxkIHdpdGggc2VsZWN0ZWQgc2libGluZyBjb250cm9scy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdIaWRlIGNvbnRyb2wgYnV0dG9ucyc7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnSGlkZXMgZnJvbnRlbmQgY29udHJvbCBidXR0b25zIG9mIHRoaXMgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX25vdGUnXSA9ICdOb3RlJzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXSA9ICdDaGFuZ2luZyBhbnkgb2YgdGhlIGFib3ZlIGZpZWxkcyB3aWxsIHRyaWdnZXIgYSByZWluZGV4IG9mICphbGwqIHNhdmVkIHJlY29yZHMsIHNvIGl0IGNvdWxkIHRha2UgYSB3aGlsZS4nOwokbGFuZ1snaWxsZWdhbF9maWxlJ10gPSAnQXR0ZW1wdGVkIHVwbG9hZCBvZiBpbGxlZ2FsIGZpbGUgdHlwZSAoJXMpIGZyb20gJXMnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZSddID0gJ01ha2UgcmVjb3JkcyBhY2Nlc3NpYmxlIHRvIFNlYXJjaCBNb2R1bGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ10gPSAnQ2hlY2tpbmcgdGhpcyB3aWxsIG1ha2UgYWxsIHN1Ym1pdHRlZCBkYXRhIGFjY2Vzc2libGUgdG8gdGhlIFNlYXJjaCBNb2R1bGUuIERPIE5PVCB1c2UgdGhpcyBpZiB5b3UgZW5jcnlwdCB5b3VyIGRhdGEgLS0gdGhlIGluZm9ybWF0aW9uIGdldHMgZXhwb3NlZCB0byBzZWFyY2ggd2hldGhlciBvciBub3QgaXQgaXMgZW5jcnlwdGVkISc7CiRsYW5nWyd1cGxvYWRlZF9vdXRzaWRlX3dlYnJvb3QnXSA9ICclcyAob3V0c2lkZSB3ZWIgcm9vdCknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXSA9ICdFZGl0YWJsZSBpbiBGb3JtQnJvd3NlciBBZG1pbj8nOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ1VzZXIgZGVmaW5lZCB0YWcgJXMgcmV0dXJuZWQgYW4gZXJyb3IuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlc3BvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVzcG9uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLiBJZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuIElmIHlvdSB1c2UgQ29tcHV0ZWQvUEhQIGV2YWx1YXRpb24sIHlvdSBjYW4NCnVzZSBhbnkgZnVuY3Rpb24geW91IHdhbnQsIGJ1dCB5b3UgbmVlZCB0byBxdW90ZSB0aGluZ3MgKHN1YnN0aXR1dGlvbiBvY2N1cnMgYmVmb3JlIGV2YWx1YXRpb24pLCBlLmcuLCBzdWJzdHIoJiMwMzk7JGZsZF8yMiYjMDM5OywwLDIpLiYjMDM5OyRmbGRfMjMmIzAzOTsuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPg0KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0NCgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+DQoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0FkZCB5b3VyIHRhZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdPY2FrJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICfFnnViYXQnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnQnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ05pc2FuJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5xLFzJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0hhemlyYW4nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnVGVtbXV6JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQcSfdXN0b3MnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdFeWwmdXVtbDtsJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ0VraW0nOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ0thc8SxbSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnQXJhbMSxayc7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBTCddID0gJ0FsYmFuaWEnOwokbGFuZ1snRFonXSA9ICdBbGdlcmlhJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBhbmQgQmFyYnVkYSc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluYSc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEnOwokbGFuZ1snQVcnXSA9ICdBcnViYSc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpYSc7CiRsYW5nWydBVCddID0gJ0F1c3RyaWEnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyc7CiRsYW5nWydCSCddID0gJ0JhaHJhaW4nOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXSA9ICdCZWxhcnVzJzsKJGxhbmdbJ0JFJ10gPSAnQmVsZ2l1bSc7CiRsYW5nWydCWiddID0gJ0JlbGl6ZSc7CiRsYW5nWydCSiddID0gJ0JlbmluJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSc7CiRsYW5nWydCVCddID0gJ0JodXRhbic7CiRsYW5nWydCVyddID0gJ0JvdHN3YW5hJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSc7CiRsYW5nWydCQSddID0gJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXSA9ICdCb3V2ZXQgSXNsYW5kJzsKJGxhbmdbJ0JSJ10gPSAnQnJhemlsJzsKJGxhbmdbJ0lPJ10gPSAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0nOwokbGFuZ1snQkcnXSA9ICdCdWxnYXJpYSc7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGknOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RpYSc7CiRsYW5nWydDTSddID0gJ0NhbWVyb29uJzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhJzsKJGxhbmdbJ0NWJ10gPSAnQ2FwZSBWZXJkZSc7CiRsYW5nWydLWSddID0gJ0NheW1hbiBJc2xhbmRzJzsKJGxhbmdbJ0NGJ10gPSAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJzsKJGxhbmdbJ1REJ10gPSAnQ2hhZCc7CiRsYW5nWydDTCddID0gJ0NoaWxlJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmEnOwokbGFuZ1snQ1gnXSA9ICdDaHJpc3RtYXMgSXNsYW5kJzsKJGxhbmdbJ0NDJ10gPSAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSc7CiRsYW5nWydLTSddID0gJ0NvbW9yb3MnOwokbGFuZ1snQ0cnXSA9ICdDb25nbyc7CiRsYW5nWydDRCddID0gJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc7CiRsYW5nWydDSyddID0gJ0Nvb2sgSXNsYW5kcyc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EnOwokbGFuZ1snQ0knXSA9ICdJdm9pcmUgKEl2b3J5IENvYXN0KSc7CiRsYW5nWydIUiddID0gJ0Nyb2F0aWEgKEhydmF0c2thKSc7CiRsYW5nWydDVSddID0gJ0N1YmEnOwokbGFuZ1snQ1knXSA9ICdDeXBydXMnOwokbGFuZ1snQ1onXSA9ICdDemVjaCBSZXB1YmxpYyc7CiRsYW5nWydESyddID0gJ0Rlbm1hcmsnOwokbGFuZ1snREonXSA9ICdEamlib3V0aSc7CiRsYW5nWydETSddID0gJ0RvbWluaWNhJzsKJGxhbmdbJ0RPJ10gPSAnRG9taW5pY2FuIFJlcHVibGljJzsKJGxhbmdbJ1RQJ10gPSAnRWFzdCBUaW1vcic7CiRsYW5nWydFQyddID0gJ0VjdWFkb3InOwokbGFuZ1snRUcnXSA9ICdFZ3lwdCc7CiRsYW5nWydTViddID0gJ0VsIFNhbHZhZG9yJzsKJGxhbmdbJ0dRJ10gPSAnRXF1YXRvcmlhbCBHdWluZWEnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhJzsKJGxhbmdbJ0VFJ10gPSAnRXN0b25pYSc7CiRsYW5nWydFVCddID0gJ0V0aGlvcGlhJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJzsKJGxhbmdbJ0ZPJ10gPSAnRmFyb2UgSXNsYW5kcyc7CiRsYW5nWydGSiddID0gJ0ZpamknOwokbGFuZ1snRkknXSA9ICdGaW5sYW5kJzsKJGxhbmdbJ0ZSJ10gPSAnRnJhbmNlJzsKJGxhbmdbJ0ZYJ10gPSAnRnJhbmNlLCAgTWV0cm9wb2xpdGFuJzsKJGxhbmdbJ0dGJ10gPSAnR3Vlcm5zZXknOwokbGFuZ1snUEYnXSA9ICdGcmVuY2ggUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ10gPSAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjZWRvbmlhKSc7CiRsYW5nWydHQSddID0gJ0dhYm9uJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmlhJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpYSc7CiRsYW5nWydERSddID0gJ0dlcm1hbnknOwokbGFuZ1snR0gnXSA9ICdHaGFuYSc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhcic7CiRsYW5nWydHQiddID0gJ0dyZWF0IEJyaXRhaW4gKFVLKSc7CiRsYW5nWydHUiddID0gJ0dyZWVjZSc7CiRsYW5nWydHTCddID0gJ0dyZWVubGFuZCc7CiRsYW5nWydHRCddID0gJ0dyZW5hZGEnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlJzsKJGxhbmdbJ0dVJ10gPSAnR3VhbSc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSc7CiRsYW5nWydHVyddID0gJ0d1aW5lYS1CaXNzYXUnOwokbGFuZ1snR1knXSA9ICdHdXlhbmEnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCBJc2xhbmRzJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMnOwokbGFuZ1snSEsnXSA9ICdIb25nIEtvbmcnOwokbGFuZ1snSFUnXSA9ICdIdW5nYXJ5JzsKJGxhbmdbJ0lTJ10gPSAnSWNlbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb25lc2lhJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbic7CiRsYW5nWydJUSddID0gJ0lyYXEnOwokbGFuZ1snSUUnXSA9ICdJcmVsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYWVsJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4nOwokbGFuZ1snSVQnXSA9ICdJdGFseSc7CiRsYW5nWydKRSddID0gJ0plcnNleSc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EnOwokbGFuZ1snSlAnXSA9ICdKYXBhbic7CiRsYW5nWydKTyddID0gJ0pvcmRhbic7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW55YSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcnRoKSc7CiRsYW5nWydLUiddID0gJ0tvcmVhIChTb3V0aCknOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyc7CiRsYW5nWydMViddID0gJ0xhdHZpYSc7CiRsYW5nWydMQiddID0gJ0xlYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSc7CiRsYW5nWydMWSddID0gJ0xpYnlhJzsKJGxhbmdbJ0xTJ10gPSAnTGVzb3Robyc7CiRsYW5nWydMVCddID0gJ0xpdGh1YW5pYSc7CiRsYW5nWydMVSddID0gJ0x1eGVtYm91cmcnOwokbGFuZ1snTU8nXSA9ICdNYWNhdSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXInOwokbGFuZ1snTVcnXSA9ICdNYWxhd2knOwokbGFuZ1snTVknXSA9ICdNYWxheXNpYSc7CiRsYW5nWydNViddID0gJ01hbGRpdmVzJzsKJGxhbmdbJ01MJ10gPSAnTWFsaSc7CiRsYW5nWydNVCddID0gJ01hbHRhJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyc7CiRsYW5nWydNUSddID0gJ01hcnRpbmlxdWUnOwokbGFuZ1snTVInXSA9ICdNYXVyaXRhbmlhJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzJzsKJGxhbmdbJ1lUJ10gPSAnTWF5b3R0ZSc7CiRsYW5nWydNWCddID0gJ01leGljbyc7CiRsYW5nWydGTSddID0gJ01pY3JvbmVzaWEnOwokbGFuZ1snTUMnXSA9ICdNb25hY28nOwokbGFuZ1snTUQnXSA9ICdNb2xkb3ZhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2Njbyc7CiRsYW5nWydNTiddID0gJ01vbmdvbGlhJzsKJGxhbmdbJ01TJ10gPSAnTW9udHNlcnJhdCc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyJzsKJGxhbmdbJ05BJ10gPSAnTmFtaWJpYSc7CiRsYW5nWydOUiddID0gJ05hdXJ1JzsKJGxhbmdbJ05QJ10gPSAnTmVwYWwnOwokbGFuZ1snTkwnXSA9ICdOZXRoZXJsYW5kcyc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRzIEFudGlsbGVzJzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhbCBab25lJzsKJGxhbmdbJ05DJ10gPSAnTmV3IENhbGVkb25pYSc7CiRsYW5nWydOWiddID0gJ05ldyBaZWFsYW5kIChBb3RlYXJvYSknOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEnOwokbGFuZ1snTkUnXSA9ICdOaWdlcic7CiRsYW5nWydORyddID0gJ05pZ2VyaWEnOwokbGFuZ1snTlUnXSA9ICdOaXVlJzsKJGxhbmdbJ05GJ10gPSAnTm9yZm9sayBJc2xhbmQnOwokbGFuZ1snTVAnXSA9ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnOwokbGFuZ1snTk8nXSA9ICdOb3J3YXknOwokbGFuZ1snT00nXSA9ICdPbWFuJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4nOwokbGFuZ1snUFcnXSA9ICdQYWxhdSc7CiRsYW5nWydQUyddID0gJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSc7CiRsYW5nWydQRyddID0gJ1BhcHVhIE5ldyBHdWluZWEnOwokbGFuZ1snUFknXSA9ICdQYXJhZ3VheSc7CiRsYW5nWydQRSddID0gJ1BlcnUnOwokbGFuZ1snUEgnXSA9ICdQaGlsaXBwaW5lcyc7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BMJ10gPSAnUG9sYW5kJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyc7CiRsYW5nWydRQSddID0gJ1FhdGFyJzsKJGxhbmdbJ1JFJ10gPSAnUmV1bmlvbic7CiRsYW5nWydSTyddID0gJ1JvbWFuaWEnOwokbGFuZ1snUlUnXSA9ICdSdXNzaWFuIEZlZGVyYXRpb24nOwokbGFuZ1snUlcnXSA9ICdSd2FuZGEnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLic7CiRsYW5nWydLTiddID0gJ1NhaW50IEtpdHRzIGFuZCBOZXZpcyc7CiRsYW5nWydMQyddID0gJ1NhaW50IEx1Y2lhJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyc7CiRsYW5nWydXUyddID0gJ1NhbW9hJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc7CiRsYW5nWydTQSddID0gJ1NhdWRpIEFyYWJpYSc7CiRsYW5nWydTTiddID0gJ1NlbmVnYWwnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVzJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lJzsKJGxhbmdbJ1NHJ10gPSAnU2luZ2Fwb3JlJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaWEnOwokbGFuZ1snU0snXSA9ICdTbG92YWsgUmVwdWJsaWMnOwokbGFuZ1snU0InXSA9ICdTb2xvbW9uIElzbGFuZHMnOwokbGFuZ1snU08nXSA9ICdTb21hbGlhJzsKJGxhbmdbJ1pBJ10gPSAnU291dGggQWZyaWNhJzsKJGxhbmdbJ0VTJ10gPSAnU3BhaW4nOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EnOwokbGFuZ1snU0gnXSA9ICdTdC4gSGVsZW5hJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSBhbmQgTWlxdWVsb24gJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4nOwokbGFuZ1snU1InXSA9ICdTdXJpbmFtZSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJc2xhbmRzJzsKJGxhbmdbJ1NaJ10gPSAnU3dhemlsYW5kJzsKJGxhbmdbJ1NFJ10gPSAnU3dlZGVuJzsKJGxhbmdbJ0NIJ10gPSAnU3dpdHplcmxhbmQnOwokbGFuZ1snU1knXSA9ICdTeXJpYSc7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW56YW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5pc2lhJzsKJGxhbmdbJ1RSJ10gPSAnVCZ1dW1sO3JraXllJzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1VHJ10gPSAnVWdhbmRhJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluZSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJzsKJGxhbmdbJ1VLJ10gPSAnVW5pdGVkIEtpbmdkb20nOwokbGFuZ1snVVMnXSA9ICdVbml0ZWQgU3RhdGVzJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyc7CiRsYW5nWydVWSddID0gJ1VydWd1YXknOwokbGFuZ1snVVonXSA9ICdVemJla2lzdGFuJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSc7CiRsYW5nWydWQSddID0gJ1ZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpJzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldCBOYW0nOwokbGFuZ1snVkcnXSA9ICdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLiknOwokbGFuZ1snV0YnXSA9ICdXYWxsaXMgYW5kIEZ1dHVuYSBJc2xhbmRzJzsKJGxhbmdbJ0VIJ10gPSAnV2VzdGVybiBTYWhhcmEnOwokbGFuZ1snWUUnXSA9ICdZZW1lbic7CiRsYW5nWydZVSddID0gJ1l1Z29zbGF2aWEnOwokbGFuZ1snWk0nXSA9ICdaYW1iaWEnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBBZMSxJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBoZWxwIHRleHQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkNCmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPnZhbHVlfSApLg0KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnRm9ybUJ1aWxkZXIgaW5zdGFsbGVkLiBQbGVhc2UgY29uc3VsdCB0aGUgbW9kdWxlJiMwMzk7cyBIZWxwIHBhZ2UgZm9yIGRvY3VtZW50YXRpb24uJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoDQp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkJ1dHRvbi4gVGhpcyBkb2VucyYjMDM5O3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPg0KPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24NCnRvIHN1Y2NlZWQuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPGxpPi1Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8L3VsPjwvbGk+DQo8bGk+LU1vZHVsZSBJbmNsdWRlIFRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIG90aGVyIG1vZHVsZSBvdXRwdXQgaW50byB5b3VyIGZvcm0sIGUuZy4sIGEgbGlzdCBvZiBwcm9kdWN0cyBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUuPC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10sIGFuZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX2FsaWFzJiMwMzk7XSAoaWYgZGVmaW5lZCkuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCBkZXNjcmliZWQgYWJvdmUsIGJ1dCBpdCBwcm92aWRlcyBvcHRpb25zIGZvciBzZW5kaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0cyB0byB0aGUgdXNlci48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiA8c3Ryb25nPkRlcHJlY2F0ZWQuPC9zdHJvbmc+IFVzZSBTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgaW5zdGVhZCEgVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyBpcyB0aGUgb25seSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyLiBTZWUgc2VjdGlvbiBiZWxvdy48L2xpPg0KPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4NCg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53aWVsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoaWNoIHlvdSBjYW4gdXNlLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcg0KcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQ0Kd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+DQo8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdA0KYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLg0KVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7Rm9ybUJ1aWxkZXIgYWN0aW9uPSYjMDM5O2ZldXNlcmZvcm0mIzAzOTsgZm9ybT0mIzAzOTtmb3JtX25hbWUmIzAzOTt9LjwvcD4NCjxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLg0KSW4gZWl0aGVyIGNhc2UsIGZvciB0aGUgcGFzc3BocmFzZSwgeW91IGNhbiBlaXRoZXIgZW50ZXIgdGV4dCBpbiB0aGUgZmllbGQgb3IgYSBmaWxlIG5hbWUuIElmIHlvdSBzcGVjaWZ5IGEgZmlsZSBuYW1lLCB0aGUgY29udGVudHMgb2YgdGhhdA0KZmlsZSB3aWxsIGJlIHVzZWQgYXMgdGhlIHBhc3NwaHJhc2UgZm9yIGVuY3J5cHRpbmcuPC9wPg0KPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUNCmlzIHRoYXQgdGhlIGZpcnN0IGZvdXIgbGV0dGVycyBhcmUgbGVmdCBpbnRhY3QgdG8gYWxsb3cgZm9yIHNvcnRpbmcuIFRoZSBzb3J0aW5nIG1heSBub3QgYmUgcGVyZmVjdCwgYW5kIHRoaXMgd2Vha2VucyB0aGUgc2VjdXJpdHkgc2luY2UgaXQNCmV4cG9zZXMgc29tZSBjbGVhcnRleHQsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLjwvcD4NCjxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQNCnlvdXIgaW5mb3JtYXRpb24gd2lsbCBiZSBzZWN1cmUuIEEgc21hcnQgaGFja2VyIHdobyBoYXMgZm91bmQgc29tZSBleHBsb2l0IHRvIHZpZXcgZGF0YWJhc2UgcmVjb3JkcyBtYXkgd2VsbCBiZSBzbWFydCBlbm91Z2ggdG8gZ2V0IGF0DQp0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLCBhbmQgZmluZCB0aGVpciB3YXkgdG8gdGhlIHBhc3NwaHJhc2UuIFRoaXMgd2lsbCBub3QgcHJvdGVjdCB5b3UgYWdhaW5zdCBhbiBlbmVteSB3aG8gaGFzIGZ1bGwgYWNjZXNzIHRvIHlvdXINCnNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsDQpzZW5zaXRpdmUgcG9saXRpY2FsIGluZm9ybWF0aW9uLCBodW1hbiByaWdodHMgZGF0YSwgb3IgYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIG9mIHZhbHVlIHRvIGEgcmVwcmVzc2l2ZSBnb3Zlcm5tZW50IG9yIG9yZ2FuaXplZCBjcmltZQ0KY2FydGVsLjwvZW0+PC9wPg0KPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4NCjxwPlNldmVyYWwgb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgYmVoYXZpb3IgdmlhIFVEVHMgaXMgcHJvdmlkZWQgKHRoYW5rcyB0byBraW5kIGNvZGUgY29udHJpYnV0aW9ucywgc2VlIGNyZWRpdHMpLjwvcD4NCg0KPHVsPjxsaT5DYWxsIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIGZpZWxkIHR5cGUgc3VibWl0cyB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQNClRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10sIGFuZA0KYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9hbGlhcyYjMDM5O10gKGlmIGRlZmluZWQpLiBBcyBwZXIgYSBzdWdnZXN0aW9uLCBpdCBhbHNvIHBvcHVsYXRlcyBhbGwgb2YgdGhlIFNtYXJ0eSB2YWx1ZXMgdGhhdCB3b3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBTdWJtaXNzaW9uIFRlbXBsYXRlIHRvbyE8L2xpPg0KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPg0KPGxpPlZhbGlkYXRpb24gVURULiBTZXQgdGhpcyBmb3IgYSBmb3JtLCBhbmQgdGhlIFVEVCB3aWxsIHJlY2VpdmUgYWxsIG9mIHRoZSBmb3JtXCYjMDM5O3MgaHVtYW4tcmVhZGFibGUgcmVzdWx0cy4gVGhlIFVEVCBzaG91bGQgZG8gd2hhdGV2ZXINCnZhbGlkYXRpb24gaXQgd2FudHMsIGFuZCByZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZmlyc3QgdmFsdWUgYmVpbmcgdHJ1ZSBvciBmYWxzZSAoaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSBmb3JtIHZhbGlkYXRlcyksIGFuZCB0aGUgc2Vjb25kDQp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPg0KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRpbWUgKG9ubHkgY2FsbGVkIG9uY2UpLiBUaGlzDQppcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgb24gdGhlIGZpcnN0IGRpc3BsYXkNCm9mIHRoZSBmb3JtLjwvbGk+DQo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlDQpmb3JtcykuIFRoaXMgaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkDQpldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4NCjwvdWw+DQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgbm8gbG9uZ2VyIHNldCBieSBkZWZhdWx0LiBDaGVja2luZyBpdCB3aWxsIGhpZGUgdGhlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRoYXQgd291bGQgYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiANCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICZxdW90O0Zvcm1CdWlsZGVyIERlZmF1bHQmcXVvdDsgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlDQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgDQo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPg0KDQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPg0KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQo8aDM+Q3JlZGl0czwvaDM+DQo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToNCjx1bD4NCjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiPkJhbHRpYyBpbnN0aXR1dGUgb2YgYWR2YW5jZWQgdGVjaG5vbG9neTwvYT4gLSBjb2RlLCBmdW5kaW5nIDwvbGk+DQo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+DQo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4NCjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+DQo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4NCjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPg0KPGxpPlBpb3RyYXMgQ2ltbXBlcm1hbiAtIGNvZGU8L2xpPg0KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+DQo8bGk+UnlhbiBGb3N0ZXIgLSBjb2RlPC9saT4NCjxsaT5NYXJjIEdlbGRvbiAtIGNvZGU8L2xpPg0KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4NCjxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPg0KPGxpPlBhdWwgTm9vbmUgLSBDU1MgYW5kIGlkZWFzPC9saT4NCjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPg0KPGxpPlBydWUgUm93bGFuZCAtIGJ1ZyBmaXhlczwvbGk+DQo8bGk+U2ltb24gU2NoYXVmZWxiZXJnZXIgLSBjb2RlPC9saT4NCjwvdWw+DQo8cD5JIGFwb2xvZ2l6ZSBmb3IgYW55IG9taXNzaW9ucyAtIG5vdGlmeSBtZSwgYW5kIEkmIzAzOTtsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+DQo8aDM+TWlzY2VsbGFuZW91cyBOb3RlczwvaDM+DQo8dWw+DQo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPg0KPC91bD4NCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSBVUkxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD4NCjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPg0KPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS42IG9yIGxhdGVyLjwvbGk+DQo8bGk+U2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0JiMwMzk7cyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuDQpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbg0KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzDQpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQ0Kc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVDQ19MRy5naWYmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgbmFtZT0mcXVvdDtzdWJtaXQmcXVvdDsgYWx0PSZxdW90O1BheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISZxdW90Oz4NCjxpbWcgYWx0PSZxdW90OyZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYmcXVvdDsgd2lkdGg9JnF1b3Q7MSZxdW90OyBoZWlnaHQ9JnF1b3Q7MSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2VuY3J5cHRlZCZxdW90OyB2YWx1ZT0mcXVvdDstLS0tLUJFR0lOIFBLQ1M3LS0tLS1NSUlIVHdZSktvWklodmNOQVFjRW9JSUhRRENDQnp3Q0FRRXhnZ0V3TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlKS29aSWh2Y05BUUVCQlFBRWdZQUlObkJXYi9YTTRsbXZMR0hsOVJkMWN2TDV0cnFSaGM3K0ZvR0g1THRvZlFpVnJnRlN2aDdoMW9qZzVTelR4Ymd0aTMyWkYwL3VjdXEvT1FTRCtWenV1QUYxdjZ3VnJ0eU9lQ1BFQXc4ajgxREpPWFZqSkhzSVkybXZpb3JQam9sTFFrRm52MTJ5UlRwdUZXRm40WlhlNSt2bkNqWHFCeTBFRS9haHpFTU1uekVMTUFrR0JTc09Bd0lhQlFBd2djd0dDU3FHU0liM0RRRUhBVEFVQmdncWhraUc5dzBEQndRSWNLTk53T1BGb3d1QWdhaXZTN3YwajJYRnlROWRyOG5pOUc5NWVFN1lxb2dHbEs5d3VTcGxsT2c5bG5ydXZuRVFxc21SbVFudGhRcVdDVGJaekcyK0lFdGVNNElVc3hFdUdUcnc4cFpDVTI0VE5EY2tuS1V4OVV6M3ZTeE9oM2d1OTV5SnlEd29lTXZhRUEyNGJzMTRRRWJKYmhOalk2V3hIejkraS9sVkFEQmp5QU9EWU11emFsRGt2ZHV2d2VHTlprOWxZTFJSQ29QUE5pbEcxUGY2dzg3Qkhwa1NNOFdRMUxDOStSV2RYZlpjbStlZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncwd09EQTNNREV3TXpVNU16bGFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCUU0wTFYzMGZMWGNIOU01ZE1tdVRCTG5zRlE0akFOQmdrcWhraUc5dzBCQVFFRkFBU0JnQkV6MlhxTU1xRmJ1VWhqK0wxMjhDdzJ1OFNoT0tRdHRyS3IvaGkwV1JlZW5IRFlCaUhPU3RsNjNSdjc2UTJtcGQ0NTNSdkNqNW1xN2RSdHVSQjZwZkhHUkRrVVg2TjErT09Jb0lmcm9CWklBVE5oejlDRUh3RUZrTmpZZzBFR01BRytqY2JBajFESmpSNzNjeGJhTnJYV1B4QStoaVFoSGxBcnJaQTdyRlY1LS0tLS1FTkQgUEtDUzctLS0tLQ0KJnF1b3Q7Pg0KPC9mb3JtPjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEyNDk4MzcxODAuMTI3NjIxODI4Ni4xMjk3MzQ4NTA4LjEyOTczNTExOTkuOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTczNDg1OTAuOC4zLnV0bWNzcj1mZWVkYnVybmVyfHV0bWNjbj1GZWVkOiBjbXNtYWRlc2ltcGxlL2Jsb2cgKENNUyBNYWRlIFNpbXBsZSl8dXRtY21kPWZlZWQnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTMzMjQzNjc1Ni0xMjk1NDAzMTMwNDM5JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.email_validator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KKiBDbGFzcyB0byB3cmFwICJpc19lbWFpbCIgZnVuY3Rpb24gYnkgIERvbWluaWMgU2F5ZXJzDQoqIGFuZCBhIGZldyBvdGhlciBlbWFpbCByZWxhdGVkIG1ldGhvZHMgdGhhdCBzaG91bGRuJ3QgYmUgaW4gdGhlIG1haW4gbW9kdWxlIGNsYXNzDQoqIEFkZGVkIGJ5IEpvIE1vcmcNCiovDQovKioNCiAqIFRvIHZhbGlkYXRlIGFuIGVtYWlsIGFkZHJlc3MgYWNjb3JkaW5nIHRvIFJGQ3MgNTMyMSwgNTMyMiBhbmQgb3RoZXJzDQogKiANCiAqIENvcHlyaWdodCDCqSAyMDA4LTIwMTEsIERvbWluaWMgU2F5ZXJzICAgICAgICAgIDxicj4NCiAqIFRlc3Qgc2NoZW1hIGRvY3VtZW50YXRpb24gQ29weXJpZ2h0IMKpIDIwMTEsIERhbmllbCBNYXJzY2hhbGwgICAgICA8YnI+DQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICogDQogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLA0KICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KICogDQogKiAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsDQogKiAgICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICogICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLA0KICogICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbg0KICogICAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQogKiAgICAgLSBOZWl0aGVyIHRoZSBuYW1lIG9mIERvbWluaWMgU2F5ZXJzIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUNCiAqICAgICAgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQNCiAqICAgICAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqIA0KICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORA0KICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQNCiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SDQogKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMNCiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsNCiAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTg0KICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTDQogKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAqIA0KICogQHBhY2thZ2UgIGlzX2VtYWlsDQogKiBAYXV0aG9yICBEb21pbmljIFNheWVycyA8ZG9taW5pY0BzYXllcnMuY2M+DQogKiBAY29weXJpZ2h0ICAyMDA4LTIwMTEgRG9taW5pYyBTYXllcnMNCiAqIEBsaWNlbnNlICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocCBCU0QgTGljZW5zZQ0KICogQGxpbmsgIGh0dHA6Ly93d3cuZG9taW5pY3NheWVycy5jb20vaXNlbWFpbA0KICogQHZlcnNpb24gIDMuMDEuMSAtIEZpeGVkIGV4YW1wbGVzIGFuZCByZWFkbWUudHh0DQogKi8NCg0KLy8gVGhlIHF1YWxpdHkgb2YgdGhpcyBjb2RlIGhhcyBiZWVuIGltcHJvdmVkIGdyZWF0bHkgYnkgdXNpbmcgUEhQTGludA0KLy8gQ29weXJpZ2h0IChjKSAyMDEwIFVtYmVydG8gU2Fsc2kNCi8vIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBsaWNlbnNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuDQovLyBNb3JlIGluZm86IGh0dHA6Ly93d3cuaWNvc2FlZHJvLml0L3BocGxpbnQvDQovKi4NCiAgcmVxdWlyZV9tb2R1bGUgJ3N0YW5kYXJkJzsNCiAgcmVxdWlyZV9tb2R1bGUgJ3BjcmUnOw0KLiovDQoNCmlmICghZGVmaW5lZCgnSVNFTUFJTF9WQUxJRCcpKSANCnsNCiAgLyo6ZGlhZ25vc3RpYyBjb25zdGFudHMgc3RhcnQ6Ki8NCiAgDQogIC8vIFRoaXMgcGFydCBvZiB0aGUgY29kZSBpcyBnZW5lcmF0ZWQgdXNpbmcgZGF0YSBmcm9tIHRlc3QvbWV0YS54bWwuIEJld2FyZSBvZiBtYWtpbmcgbWFudWFsIGFsdGVyYXRpb25zDQogIC8vIENhdGVnb3JpZXMNCiAgZGVmaW5lKCdJU0VNQUlMX1ZBTElEX0NBVEVHT1JZJywgMSk7DQogIGRlZmluZSgnSVNFTUFJTF9ETlNXQVJOJywgNyk7DQogIGRlZmluZSgnSVNFTUFJTF9SRkM1MzIxJywgMTUpOw0KICBkZWZpbmUoJ0lTRU1BSUxfQ0ZXUycsIDMxKTsNCiAgZGVmaW5lKCdJU0VNQUlMX0RFUFJFQycsIDYzKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjInLCAxMjcpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSJywgMjU1KTsNCg0KICAvLyBEaWFnbm9zZXMNCiAgLy8gQWRkcmVzcyBpcyB2YWxpZA0KICBkZWZpbmUoJ0lTRU1BSUxfVkFMSUQnLCAwKTsNCiAgLy8gQWRkcmVzcyBpcyB2YWxpZCBidXQgYSBETlMgY2hlY2sgd2FzIG5vdCBzdWNjZXNzZnVsDQogIGRlZmluZSgnSVNFTUFJTF9ETlNXQVJOX05PX01YX1JFQ09SRCcsIDUpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRE5TV0FSTl9OT19SRUNPUkQnLCA2KTsNCiAgLy8gQWRkcmVzcyBpcyB2YWxpZCBmb3IgU01UUCBidXQgaGFzIHVudXN1YWwgZWxlbWVudHMNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjFfVExEJywgOSk7DQogIGRlZmluZSgnSVNFTUFJTF9SRkM1MzIxX1RMRE5VTUVSSUMnLCAxMCk7DQogIGRlZmluZSgnSVNFTUFJTF9SRkM1MzIxX1FVT1RFRFNUUklORycsIDExKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjFfQUREUkVTU0xJVEVSQUwnLCAxMik7DQogIGRlZmluZSgnSVNFTUFJTF9SRkM1MzIxX0lQVjZERVBSRUNBVEVEJywgMTMpOw0KICAvLyBBZGRyZXNzIGlzIHZhbGlkIHdpdGhpbiB0aGUgbWVzc2FnZSBidXQgY2Fubm90IGJlIHVzZWQgdW5tb2RpZmllZCBmb3IgdGhlIGVudmVsb3BlDQogIGRlZmluZSgnSVNFTUFJTF9DRldTX0NPTU1FTlQnLCAxNyk7DQogIGRlZmluZSgnSVNFTUFJTF9DRldTX0ZXUycsIDE4KTsNCiAgLy8gQWRkcmVzcyBjb250YWlucyBkZXByZWNhdGVkIGVsZW1lbnRzIGJ1dCBtYXkgc3RpbGwgYmUgdmFsaWQgaW4gcmVzdHJpY3RlZCBjb250ZXh0cw0KICBkZWZpbmUoJ0lTRU1BSUxfREVQUkVDX0xPQ0FMUEFSVCcsIDMzKTsNCiAgZGVmaW5lKCdJU0VNQUlMX0RFUFJFQ19GV1MnLCAzNCk7DQogIGRlZmluZSgnSVNFTUFJTF9ERVBSRUNfUVRFWFQnLCAzNSk7DQogIGRlZmluZSgnSVNFTUFJTF9ERVBSRUNfUVAnLCAzNik7DQogIGRlZmluZSgnSVNFTUFJTF9ERVBSRUNfQ09NTUVOVCcsIDM3KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0RFUFJFQ19DVEVYVCcsIDM4KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0RFUFJFQ19DRldTX05FQVJfQVQnLCA0OSk7DQogIC8vIFRoZSBhZGRyZXNzIGlzIG9ubHkgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZSBicm9hZCBkZWZpbml0aW9uIG9mIFJGQyA1MzIyLiBJdCBpcyBvdGhlcndpc2UgaW52YWxpZC4NCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjJfRE9NQUlOJywgNjUpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9UT09MT05HJywgNjYpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9MT0NBTF9UT09MT05HJywgNjcpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9ET01BSU5fVE9PTE9ORycsIDY4KTsNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjJfTEFCRUxfVE9PTE9ORycsIDY5KTsNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjJfRE9NQUlOTElURVJBTCcsIDcwKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjJfRE9NTElUX09CU0RURVhUJywgNzEpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9JUFY2X0dSUENPVU5UJywgNzIpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9JUFY2XzJYMlhDT0xPTicsIDczKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1JGQzUzMjJfSVBWNl9CQURDSEFSJywgNzQpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9JUFY2X01BWEdSUFMnLCA3NSk7DQogIGRlZmluZSgnSVNFTUFJTF9SRkM1MzIyX0lQVjZfQ09MT05TVFJUJywgNzYpOw0KICBkZWZpbmUoJ0lTRU1BSUxfUkZDNTMyMl9JUFY2X0NPTE9ORU5EJywgNzcpOw0KICAvLyBBZGRyZXNzIGlzIGludmFsaWQgZm9yIGFueSBwdXJwb3NlDQogIGRlZmluZSgnSVNFTUFJTF9FUlJfRVhQRUNUSU5HX0RURVhUJywgMTI5KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0VSUl9OT0xPQ0FMUEFSVCcsIDEzMCk7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfTk9ET01BSU4nLCAxMzEpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0NPTlNFQ1VUSVZFRE9UUycsIDEzMik7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfQVRFWFRfQUZURVJfQ0ZXUycsIDEzMyk7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfQVRFWFRfQUZURVJfUVMnLCAxMzQpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0FURVhUX0FGVEVSX0RPTUxJVCcsIDEzNSk7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfRVhQRUNUSU5HX1FQQUlSJywgMTM2KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0VSUl9FWFBFQ1RJTkdfQVRFWFQnLCAxMzcpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0VYUEVDVElOR19RVEVYVCcsIDEzOCk7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfRVhQRUNUSU5HX0NURVhUJywgMTM5KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0VSUl9CQUNLU0xBU0hFTkQnLCAxNDApOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0RPVF9TVEFSVCcsIDE0MSk7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfRE9UX0VORCcsIDE0Mik7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfRE9NQUlOSFlQSEVOU1RBUlQnLCAxNDMpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0RPTUFJTkhZUEhFTkVORCcsIDE0NCk7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfVU5DTE9TRURRVU9URURTVFInLCAxNDUpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX1VOQ0xPU0VEQ09NTUVOVCcsIDE0Nik7DQogIGRlZmluZSgnSVNFTUFJTF9FUlJfVU5DTE9TRURET01MSVQnLCAxNDcpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0ZXU19DUkxGX1gyJywgMTQ4KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0VSUl9GV1NfQ1JMRl9FTkQnLCAxNDkpOw0KICBkZWZpbmUoJ0lTRU1BSUxfRVJSX0NSX05PX0xGJywgMTUwKTsNCi8vIEVuZCBvZiBnZW5lcmF0ZWQgY29kZQ0KLyo6ZGlhZ25vc3RpYyBjb25zdGFudHMgZW5kOiovDQoNCiAgLy8gZnVuY3Rpb24gY29udHJvbA0KICBkZWZpbmUoJ0lTRU1BSUxfVEhSRVNIT0xEJyAgICAsIDE2KTsNCg0KICAvLyBFbWFpbCBwYXJ0cw0KICBkZWZpbmUoJ0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVCcgICwgMCk7DQogIGRlZmluZSgnSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOJyAgLCAxKTsNCiAgZGVmaW5lKCdJU0VNQUlMX0NPTVBPTkVOVF9MSVRFUkFMJyAgLCAyKTsNCiAgZGVmaW5lKCdJU0VNQUlMX0NPTlRFWFRfQ09NTUVOVCcgICwgMyk7DQogIGRlZmluZSgnSVNFTUFJTF9DT05URVhUX0ZXUycgICAgLCA0KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0NPTlRFWFRfUVVPVEVEU1RSSU5HJyAgLCA1KTsNCiAgZGVmaW5lKCdJU0VNQUlMX0NPTlRFWFRfUVVPVEVEUEFJUicgICwgNik7DQoNCiAgLy8gTWlzY2VsbGFuZW91cyBzdHJpbmcgY29uc3RhbnRzDQogIGRlZmluZSgnSVNFTUFJTF9TVFJJTkdfQVQnICAgICwgJ0AnKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1NUUklOR19CQUNLU0xBU0gnICAsICdcXCcpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX0RPVCcgICAgLCAnLicpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX0RRVU9URScgICAgLCAnIicpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX09QRU5QQVJFTlRIRVNJUycgICwgJygnKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1NUUklOR19DTE9TRVBBUkVOVEhFU0lTJywgJyknKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1NUUklOR19PUEVOU1FCUkFDS0VUJyAgLCAnWycpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX0NMT1NFU1FCUkFDS0VUJyAgLCAnXScpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX0hZUEhFTicgICAgLCAnLScpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX0NPTE9OJyAgICAsICc6Jyk7DQogIGRlZmluZSgnSVNFTUFJTF9TVFJJTkdfRE9VQkxFQ09MT04nICAsICc6OicpOw0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX1NQJyAgICAsICcgJyk7DQogIGRlZmluZSgnSVNFTUFJTF9TVFJJTkdfSFRBQicgICAgLCAiXHQiKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1NUUklOR19DUicgICAgLCAiXHIiKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1NUUklOR19MRicgICAgLCAiXG4iKTsNCiAgZGVmaW5lKCdJU0VNQUlMX1NUUklOR19JUFY2VEFHJyAgICAsICdJUHY2OicpOw0KICAvLyBVUy1BU0NJSSB2aXNpYmxlIGNoYXJhY3RlcnMgbm90IHZhbGlkIGZvciBhdGV4dCAoaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuMi4zKQ0KICBkZWZpbmUoJ0lTRU1BSUxfU1RSSU5HX1NQRUNJQUxTJyAgLCAnKCk8PltdOjtAXFwsLiInKTsNCn0NCg0KY2xhc3MgZW1haWxfdmFsaWRhdG9yDQp7DQogICAgLyoqDQogICAqIENoZWNrIHRoYXQgYW4gZW1haWwgYWRkcmVzcyBjb25mb3JtcyB0byBSRkNzIDUzMjEsIDUzMjIgYW5kIG90aGVycw0KICAgKg0KICAgKiBBcyBvZiBWZXJzaW9uIDMuMCwgd2UgYXJlIG5vdyBkaXN0aW5ndWlzaGluZyBjbGVhcmx5IGJldHdlZW4gYSBNYWlsYm94DQogICAqIGFzIGRlZmluZWQgYnkgUkZDIDUzMjEgYW5kIGFuIGFkZHItc3BlYyBhcyBkZWZpbmVkIGJ5IFJGQyA1MzIyLiBEZXBlbmRpbmcNCiAgICogb24gdGhlIGNvbnRleHQsIGVpdGhlciBjYW4gYmUgcmVnYXJkZWQgYXMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLiBUaGUNCiAgICogUkZDIDUzMjEgTWFpbGJveCBzcGVjaWZpY2F0aW9uIGlzIG1vcmUgcmVzdHJpY3RpdmUgKGNvbW1lbnRzLCB3aGl0ZSBzcGFjZQ0KICAgKiBhbmQgb2Jzb2xldGUgZm9ybXMgYXJlIG5vdCBhbGxvd2VkKQ0KICAgKg0KICAgKiBAcGFyYW0gc3RyaW5nICAkZW1haWwgICAgVGhlIGVtYWlsIGFkZHJlc3MgdG8gY2hlY2sNCiAgICogQHBhcmFtIGJvb2xlYW4gICRjaGVja0ROUyAgSWYgdHJ1ZSB0aGVuIGEgRE5TIGNoZWNrIGZvciBNWCByZWNvcmRzIHdpbGwgYmUgbWFkZQ0KICAgKiBAcGFyYW0gbWl4ZWQgICAgJGVycm9ybGV2ZWwgIERldGVybWluZXMgdGhlIGJvdW5kYXJ5IGJldHdlZW4gdmFsaWQgYW5kIGludmFsaWQgYWRkcmVzc2VzLg0KICAgKiAgICAgICAgICAgU3RhdHVzIGNvZGVzIGFib3ZlIHRoaXMgbnVtYmVyIHdpbGwgYmUgcmV0dXJuZWQgYXMtaXMsDQogICAqICAgICAgICAgICBzdGF0dXMgY29kZXMgYmVsb3cgd2lsbCBiZSByZXR1cm5lZCBhcyBJU0VNQUlMX1ZBTElELiBUaHVzIHRoZQ0KICAgKiAgICAgICAgICAgY2FsbGluZyBwcm9ncmFtIGNhbiBzaW1wbHkgbG9vayBmb3IgSVNFTUFJTF9WQUxJRCBpZiBpdCBpcw0KICAgKiAgICAgICAgICAgb25seSBpbnRlcmVzdGVkIGluIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyB2YWxpZCBvciBub3QuIFRoZQ0KICAgKiAgICAgICAgICAgZXJyb3JsZXZlbCB3aWxsIGRldGVybWluZSBob3cgInBpY2t5IiBpc19lbWFpbCgpIGlzIGFib3V0DQogICAqICAgICAgICAgICB0aGUgYWRkcmVzcy4NCiAgICoNCiAgICogICAgICAgICAgIElmIG9taXR0ZWQgb3IgcGFzc2VkIGFzIGZhbHNlIHRoZW4gaXNfZW1haWwoKSB3aWxsIHJldHVybg0KICAgKiAgICAgICAgICAgdHJ1ZSBvciBmYWxzZSByYXRoZXIgdGhhbiBhbiBpbnRlZ2VyIGVycm9yIG9yIHdhcm5pbmcuDQogICAqDQogICAqICAgICAgICAgICBOQiBOb3RlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gJGVycm9ybGV2ZWwgPSBmYWxzZSBhbmQNCiAgICogICAgICAgICAgICRlcnJvcmxldmVsID0gMA0KICAgKiBAcGFyYW0gYXJyYXkgICAgJHBhcnNlZGF0YSAgSWYgcGFzc2VkLCByZXR1cm5zIHRoZSBwYXJzZWQgYWRkcmVzcyBjb21wb25lbnRzDQogICAqLw0KICAvKi5taXhlZC4qLyANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19lbWFpbCgkZW1haWwsICRjaGVja0ROUyA9IGZhbHNlLCAkZXJyb3JsZXZlbCA9IGZhbHNlLCAmJHBhcnNlZGF0YSA9IGFycmF5KCkpIA0KICB7DQogICAgLy8gQ2hlY2sgdGhhdCAkZW1haWwgaXMgYSB2YWxpZCBhZGRyZXNzLiBSZWFkIHRoZSBmb2xsb3dpbmcgUkZDcyB0byB1bmRlcnN0YW5kIHRoZSBjb25zdHJhaW50czoNCiAgICAvLyAgIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxKQ0KICAgIC8vICAgKGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIpDQogICAgLy8gICAoaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDI5MSNzZWN0aW9uLTIuMikNCiAgICAvLyAgIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMTIzI3NlY3Rpb24tMi4xKQ0KICAgIC8vICAgKGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM2OTYpIChndWlkYW5jZSBvbmx5KQ0KICAgIA0KICAgIC8vIHZlcnNpb24gMi4wOiBFbmhhbmNlICRkaWFnbm9zZSBwYXJhbWV0ZXIgdG8gJGVycm9ybGV2ZWwNCiAgICAvLyB2ZXJzaW9uIDMuMDogSW50cm9kdWNlZCBzdGF0dXMgY2F0ZWdvcmllcw0KICAgIC8vIHJldmlzaW9uIDMuMTogQlVHOiAkcGFyc2VkYXRhIHdhcyBwYXNzZWQgYnkgdmFsdWUgaW5zdGVhZCBvZiBieSByZWZlcmVuY2UNCg0KICAgIGlmIChpc19ib29sKCRlcnJvcmxldmVsKSkgew0KICAgICAgJHRocmVzaG9sZCAgPSBJU0VNQUlMX1ZBTElEOw0KICAgICAgJGRpYWdub3NlICA9IChib29sKSAkZXJyb3JsZXZlbDsNCiAgICB9IGVsc2Ugew0KICAgICAgJGRpYWdub3NlICA9IHRydWU7DQoNCiAgICAgIHN3aXRjaCAoKGludCkgJGVycm9ybGV2ZWwpIHsNCiAgICAgIGNhc2UgRV9XQVJOSU5HOiAgJHRocmVzaG9sZCAgPSBJU0VNQUlMX1RIUkVTSE9MRDsgIGJyZWFrOyAgLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCiAgICAgIGNhc2UgRV9FUlJPUjogICR0aHJlc2hvbGQgID0gSVNFTUFJTF9WQUxJRDsgIGJyZWFrOyAgLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCiAgICAgIGRlZmF1bHQ6ICAkdGhyZXNob2xkICA9IChpbnQpICRlcnJvcmxldmVsOw0KICAgICAgfQ0KICAgIH0NCg0KICAgICRyZXR1cm5fc3RhdHVzID0gYXJyYXkoSVNFTUFJTF9WQUxJRCk7DQoNCiAgICAvLyBQYXJzZSB0aGUgYWRkcmVzcyBpbnRvIGNvbXBvbmVudHMsIGNoYXJhY3RlciBieSBjaGFyYWN0ZXINCiAgICAkcmF3X2xlbmd0aCAgPSBzdHJsZW4oJGVtYWlsKTsNCiAgICAkY29udGV4dCAgPSBJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlQ7ICAvLyBXaGVyZSB3ZSBhcmUNCiAgICAkY29udGV4dF9zdGFjayAgPSBhcnJheSgkY29udGV4dCk7ICAgIC8vIFdoZXJlIHdlIGhhdmUgYmVlbg0KICAgICRjb250ZXh0X3ByaW9yICA9IElTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVDsgIC8vIFdoZXJlIHdlIGp1c3QgY2FtZSBmcm9tDQogICAgJHRva2VuICAgID0gJyc7ICAgICAgICAvLyBUaGUgY3VycmVudCBjaGFyYWN0ZXINCiAgICAkdG9rZW5fcHJpb3IgID0gJyc7ICAgICAgICAvLyBUaGUgcHJldmlvdXMgY2hhcmFjdGVyDQogICAgJHBhcnNlZGF0YSAgPSBhcnJheSgNCiAgICAgICAgICBJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlQgID0+ICcnLA0KICAgICAgICAgIElTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTiAgPT4gJycNCiAgICAgICAgICAgICAgICk7ICAgICAgLy8gRm9yIHRoZSBjb21wb25lbnRzIG9mIHRoZSBhZGRyZXNzDQoNCiAgICAkYXRvbWxpc3QgID0gYXJyYXkoDQogICAgICAgICAgSVNFTUFJTF9DT01QT05FTlRfTE9DQUxQQVJUICA9PiBhcnJheSgnJyksDQogICAgICAgICAgSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOICA9PiBhcnJheSgnJykNCiAgICAgICAgICAgICAgICk7ICAgICAgLy8gRm9yIHRoZSBkb3QtYXRvbSBlbGVtZW50cyBvZiB0aGUgYWRkcmVzcw0KICAgICRlbGVtZW50X2NvdW50ICA9IDA7DQogICAgJGVsZW1lbnRfbGVuICA9IDA7DQogICAgJGh5cGhlbl9mbGFnICA9IGZhbHNlOyAgICAgIC8vIEh5cGhlbiBjYW5ub3Qgb2NjdXIgYXQgdGhlIGVuZCBvZiBhIHN1YmRvbWFpbg0KICAgICRlbmRfb3JfZGllICA9IGZhbHNlOyAgICAgIC8vIENGV1MgY2FuIG9ubHkgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGVsZW1lbnQNCg0KICAvLy1lY2hvICI8dGFibGUgc3R5bGU9XCJjbGVhcjpsZWZ0O1wiPiI7IC8vIGRlYnVnDQogICAgZm9yICgkaSA9IDA7ICRpIDwgJHJhd19sZW5ndGg7ICRpKyspIHsNCiAgICAgICR0b2tlbiA9ICRlbWFpbFskaV07DQogIC8vLWVjaG8gIjx0cj48dGQ+PHN0cm9uZz4kY29udGV4dHwiLCgoJGVuZF9vcl9kaWUpID8gJ3RydWUnIDogJ2ZhbHNlJyksInwkdG9rZW58IiAuIG1heCgkcmV0dXJuX3N0YXR1cykgLiAiPC9zdHJvbmc+PC90ZD4iOyAvLyBkZWJ1Zw0KDQogICAgICBzd2l0Y2ggKCRjb250ZXh0KSB7DQogICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgIC8vIGxvY2FsLXBhcnQNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgY2FzZSBJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlQ6DQogICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjQuMQ0KICAgICAgICAvLyAgIGxvY2FsLXBhcnQgICAgICA9ICAgZG90LWF0b20gLyBxdW90ZWQtc3RyaW5nIC8gb2JzLWxvY2FsLXBhcnQNCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBkb3QtYXRvbSAgICAgICAgPSAgIFtDRldTXSBkb3QtYXRvbS10ZXh0IFtDRldTXQ0KICAgICAgICAvLw0KICAgICAgICAvLyAgIGRvdC1hdG9tLXRleHQgICA9ICAgMSphdGV4dCAqKCIuIiAxKmF0ZXh0KQ0KICAgICAgICAvLw0KICAgICAgICAvLyAgIHF1b3RlZC1zdHJpbmcgICA9ICAgW0NGV1NdDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBEUVVPVEUgKihbRldTXSBxY29udGVudCkgW0ZXU10gRFFVT1RFDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBbQ0ZXU10NCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBvYnMtbG9jYWwtcGFydCAgPSAgIHdvcmQgKigiLiIgd29yZCkNCiAgICAgICAgLy8NCiAgICAgICAgLy8gICB3b3JkICAgICAgICAgICAgPSAgIGF0b20gLyBxdW90ZWQtc3RyaW5nDQogICAgICAgIC8vDQogICAgICAgIC8vICAgYXRvbSAgICAgICAgICAgID0gICBbQ0ZXU10gMSphdGV4dCBbQ0ZXU10NCiAgICAgICAgc3dpdGNoICgkdG9rZW4pIHsNCiAgICAgICAgLy8gQ29tbWVudA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX09QRU5QQVJFTlRIRVNJUzoNCiAgICAgICAgICBpZiAoJGVsZW1lbnRfbGVuID09PSAwKQ0KICAgICAgICAgICAgLy8gQ29tbWVudHMgYXJlIE9LIGF0IHRoZSBiZWdpbm5pbmcgb2YgYW4gZWxlbWVudA0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSAoJGVsZW1lbnRfY291bnQgPT09IDApID8gSVNFTUFJTF9DRldTX0NPTU1FTlQgOiBJU0VNQUlMX0RFUFJFQ19DT01NRU5UOw0KICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0NGV1NfQ09NTUVOVDsNCiAgICAgICAgICAgICRlbmRfb3JfZGllICAgID0gdHJ1ZTsgIC8vIFdlIGNhbid0IHN0YXJ0IGEgY29tbWVudCBpbiB0aGUgbWlkZGxlIG9mIGFuIGVsZW1lbnQsIHNvIHRoaXMgYmV0dGVyIGJlIHRoZSBlbmQNCiAgICAgICAgICB9DQoNCiAgICAgICAgICAkY29udGV4dF9zdGFja1tdICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgID0gSVNFTUFJTF9DT05URVhUX0NPTU1FTlQ7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIE5leHQgZG90LWF0b20gZWxlbWVudA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0RPVDoNCiAgICAgICAgICBpZiAoJGVsZW1lbnRfbGVuID09PSAwKQ0KICAgICAgICAgICAgLy8gQW5vdGhlciBkb3QsIGFscmVhZHk/DQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdID0gKCRlbGVtZW50X2NvdW50ID09PSAwKSA/IElTRU1BSUxfRVJSX0RPVF9TVEFSVCA6IElTRU1BSUxfRVJSX0NPTlNFQ1VUSVZFRE9UUzsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgLy8gVGhlIGVudGlyZSBsb2NhbC1wYXJ0IGNhbiBiZSBhIHF1b3RlZCBzdHJpbmcgZm9yIFJGQyA1MzIxDQogICAgICAgICAgICAvLyBJZiBpdCdzIGp1c3Qgb25lIGF0b20gdGhhdCBpcyBxdW90ZWQgdGhlbiBpdCdzIGFuIFJGQyA1MzIyIG9ic29sZXRlIGZvcm0NCiAgICAgICAgICAgIGlmICgkZW5kX29yX2RpZSkgJHJldHVybl9zdGF0dXNbXSA9IElTRU1BSUxfREVQUkVDX0xPQ0FMUEFSVDsNCg0KICAgICAgICAgICAgJGVuZF9vcl9kaWUgID0gZmFsc2U7ICAvLyBDRldTICYgcXVvdGVkIHN0cmluZ3MgYXJlIE9LIGFnYWluIG5vdyB3ZSdyZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGFuIGVsZW1lbnQgKGFsdGhvdWdoIHRoZXkgYXJlIG9ic29sZXRlIGZvcm1zKQ0KICAgICAgICAgICAgJGVsZW1lbnRfbGVuICA9IDA7DQogICAgICAgICAgICAkZWxlbWVudF9jb3VudCsrOw0KICAgICAgICAgICAgJHBhcnNlZGF0YVtJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlRdICAgICAgLj0gJHRva2VuOw0KICAgICAgICAgICAgJGF0b21saXN0W0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF1bJGVsZW1lbnRfY291bnRdICA9ICcnOw0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIFF1b3RlZCBzdHJpbmcNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19EUVVPVEU6DQogICAgICAgICAgaWYgKCRlbGVtZW50X2xlbiA9PT0gMCkgew0KICAgICAgICAgICAgLy8gVGhlIGVudGlyZSBsb2NhbC1wYXJ0IGNhbiBiZSBhIHF1b3RlZCBzdHJpbmcgZm9yIFJGQyA1MzIxDQogICAgICAgICAgICAvLyBJZiBpdCdzIGp1c3Qgb25lIGF0b20gdGhhdCBpcyBxdW90ZWQgdGhlbiBpdCdzIGFuIFJGQyA1MzIyIG9ic29sZXRlIGZvcm0NCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gKCRlbGVtZW50X2NvdW50ID09PSAwKSA/IElTRU1BSUxfUkZDNTMyMV9RVU9URURTVFJJTkcgOiBJU0VNQUlMX0RFUFJFQ19MT0NBTFBBUlQ7DQoNCiAgICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfTE9DQUxQQVJUXSAgICAgIC49ICR0b2tlbjsNCiAgICAgICAgICAgICRhdG9tbGlzdFtJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlRdWyRlbGVtZW50X2NvdW50XSAgLj0gJHRva2VuOw0KICAgICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogICAgICAgICAgICAkZW5kX29yX2RpZSAgICA9IHRydWU7ICAvLyBRdW90ZWQgc3RyaW5nIG11c3QgYmUgdGhlIGVudGlyZSBlbGVtZW50DQogICAgICAgICAgICAkY29udGV4dF9zdGFja1tdICA9ICRjb250ZXh0Ow0KICAgICAgICAgICAgJGNvbnRleHQgICAgPSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEU1RSSU5HOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0VYUEVDVElOR19BVEVYVDsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgfQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIEZvbGRpbmcgV2hpdGUgU3BhY2UNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19DUjoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19TUDoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19IVEFCOg0KICAgICAgICAgIGlmICgoJHRva2VuID09PSBJU0VNQUlMX1NUUklOR19DUikgJiYgKCgrKyRpID09PSAkcmF3X2xlbmd0aCkgfHwgKCRlbWFpbFskaV0gIT09IElTRU1BSUxfU1RSSU5HX0xGKSkpIHskcmV0dXJuX3N0YXR1c1tdID0gSVNFTUFJTF9FUlJfQ1JfTk9fTEY7ICBicmVhazt9ICAvLyBGYXRhbCBlcnJvcg0KDQogICAgICAgICAgaWYgKCRlbGVtZW50X2xlbiA9PT0gMCkNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gPSAoJGVsZW1lbnRfY291bnQgPT09IDApID8gSVNFTUFJTF9DRldTX0ZXUyA6IElTRU1BSUxfREVQUkVDX0ZXUzsNCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICAkZW5kX29yX2RpZSA9IHRydWU7ICAvLyBXZSBjYW4ndCBzdGFydCBGV1MgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbGVtZW50LCBzbyB0aGlzIGJldHRlciBiZSB0aGUgZW5kDQoNCiAgICAgICAgICAkY29udGV4dF9zdGFja1tdICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgID0gSVNFTUFJTF9DT05URVhUX0ZXUzsNCiAgICAgICAgICAkdG9rZW5fcHJpb3IgICAgPSAkdG9rZW47DQoNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgLy8gQA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0FUOg0KICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Ugc2hvdWxkIGhhdmUgYSB2YWxpZCBsb2NhbC1wYXJ0DQogICAgICAgICAgaWYgKGNvdW50KCRjb250ZXh0X3N0YWNrKSAhPT0gMSkgZGllKCdVbmV4cGVjdGVkIGl0ZW0gb24gY29udGV4dCBzdGFjaycpOw0KDQogICAgICAgICAgaWYgICgkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF0gPT09ICcnKQ0KICAgICAgICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9OT0xPQ0FMUEFSVDsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgZWxzZWlmICAoJGVsZW1lbnRfbGVuID09PSAwKSAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9ET1RfRU5EOyAgLy8gRmF0YWwgZXJyb3INCiAgICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC41LjMuMS4xDQogICAgICAgICAgLy8gICBUaGUgbWF4aW11bSB0b3RhbCBsZW5ndGggb2YgYSB1c2VyIG5hbWUgb3Igb3RoZXIgbG9jYWwtcGFydCBpcyA2NA0KICAgICAgICAgIC8vICAgb2N0ZXRzLg0KICAgICAgICAgIGVsc2VpZiAgKHN0cmxlbigkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF0pID4gNjQpDQogICAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9MT0NBTF9UT09MT05HOw0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjQuMQ0KICAgICAgICAgIC8vICAgQ29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGUgc3BhY2UNCiAgICAgICAgICAvLyAgIFNIT1VMRCBOT1QgYmUgdXNlZCBhcm91bmQgdGhlICJAIiBpbiB0aGUgYWRkci1zcGVjLg0KICAgICAgICAgIC8vDQogICAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjExOQ0KICAgICAgICAgIC8vIDQuIFNIT1VMRCBOT1QgICBUaGlzIHBocmFzZSwgb3IgdGhlIHBocmFzZSAiTk9UIFJFQ09NTUVOREVEIiBtZWFuIHRoYXQNCiAgICAgICAgICAvLyAgICB0aGVyZSBtYXkgZXhpc3QgdmFsaWQgcmVhc29ucyBpbiBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZXMgd2hlbiB0aGUNCiAgICAgICAgICAvLyAgICBwYXJ0aWN1bGFyIGJlaGF2aW9yIGlzIGFjY2VwdGFibGUgb3IgZXZlbiB1c2VmdWwsIGJ1dCB0aGUgZnVsbA0KICAgICAgICAgIC8vICAgIGltcGxpY2F0aW9ucyBzaG91bGQgYmUgdW5kZXJzdG9vZCBhbmQgdGhlIGNhc2UgY2FyZWZ1bGx5IHdlaWdoZWQNCiAgICAgICAgICAvLyAgICBiZWZvcmUgaW1wbGVtZW50aW5nIGFueSBiZWhhdmlvciBkZXNjcmliZWQgd2l0aCB0aGlzIGxhYmVsLg0KICAgICAgICAgIGVsc2VpZiAgKCgkY29udGV4dF9wcmlvciA9PT0gSVNFTUFJTF9DT05URVhUX0NPTU1FTlQpIHx8ICgkY29udGV4dF9wcmlvciA9PT0gSVNFTUFJTF9DT05URVhUX0ZXUykpDQogICAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfREVQUkVDX0NGV1NfTkVBUl9BVDsNCg0KICAgICAgICAgIC8vIENsZWFyIGV2ZXJ5dGhpbmcgZG93biBmb3IgdGhlIGRvbWFpbiBwYXJzaW5nDQogICAgICAgICAgJGNvbnRleHQgID0gSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOOyAgLy8gV2hlcmUgd2UgYXJlDQogICAgICAgICAgJGNvbnRleHRfc3RhY2sgID0gYXJyYXkoJGNvbnRleHQpOyAgICAvLyBXaGVyZSB3ZSBoYXZlIGJlZW4NCiAgICAgICAgICAkZWxlbWVudF9jb3VudCAgPSAwOw0KICAgICAgICAgICRlbGVtZW50X2xlbiAgPSAwOw0KICAgICAgICAgICRlbmRfb3JfZGllICA9IGZhbHNlOyAgICAgIC8vIENGV1MgY2FuIG9ubHkgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGVsZW1lbnQNCg0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBhdGV4dA0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjIuMw0KICAgICAgICAgIC8vICAgIGF0ZXh0ICAgICAgICAgICA9ICAgQUxQSEEgLyBESUdJVCAvICAgIDsgUHJpbnRhYmxlIFVTLUFTQ0lJDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAiISIgLyAiIyIgLyAgICAgICAgOyAgY2hhcmFjdGVycyBub3QgaW5jbHVkaW5nDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAiJCIgLyAiJSIgLyAgICAgICAgOyAgc3BlY2lhbHMuICBVc2VkIGZvciBhdG9tcy4NCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICImIiAvICInIiAvDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAiKiIgLyAiKyIgLw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIi0iIC8gIi8iIC8NCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICI9IiAvICI/IiAvDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAiXiIgLyAiXyIgLw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgImAiIC8gInsiIC8NCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICJ8IiAvICJ9IiAvDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAifiINCiAgICAgICAgICBpZiAoJGVuZF9vcl9kaWUpIHsNCiAgICAgICAgICAgIC8vIFdlIGhhdmUgZW5jb3VudGVyZWQgYXRleHQgd2hlcmUgaXQgaXMgbm8gbG9uZ2VyIHZhbGlkDQogICAgICAgICAgICBzd2l0Y2ggKCRjb250ZXh0X3ByaW9yKSB7DQogICAgICAgICAgICBjYXNlIElTRU1BSUxfQ09OVEVYVF9DT01NRU5UOg0KICAgICAgICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfRldTOg0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0FURVhUX0FGVEVSX0NGV1M7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEU1RSSU5HOg0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0FURVhUX0FGVEVSX1FTOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIGRpZSAoIk1vcmUgYXRleHQgZm91bmQgd2hlcmUgbm9uZSBpcyBhbGxvd2VkLCBidXQgdW5yZWNvZ25pc2VkIHByaW9yIGNvbnRleHQ6ICRjb250ZXh0X3ByaW9yIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRjb250ZXh0X3ByaW9yICA9ICRjb250ZXh0Ow0KICAgICAgICAgICAgJG9yZCAgICA9IG9yZCgkdG9rZW4pOw0KDQogICAgICAgICAgICBpZiAoKCRvcmQgPCAzMykgfHwgKCRvcmQgPiAxMjYpIHx8ICgkb3JkID09PSAxMCkgfHwgKCFpc19ib29sKHN0cnBvcyhJU0VNQUlMX1NUUklOR19TUEVDSUFMUywgJHRva2VuKSkpKQ0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0VYUEVDVElOR19BVEVYVDsgIC8vIEZhdGFsIGVycm9yDQoNCiAgICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfTE9DQUxQQVJUXSAgICAgIC49ICR0b2tlbjsNCiAgICAgICAgICAgICRhdG9tbGlzdFtJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlRdWyRlbGVtZW50X2NvdW50XSAgLj0gJHRva2VuOw0KICAgICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgYnJlYWs7DQogICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgIC8vIERvbWFpbg0KICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICBjYXNlIElTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTjoNCiAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNC4xDQogICAgICAgIC8vICAgZG9tYWluICAgICAgICAgID0gICBkb3QtYXRvbSAvIGRvbWFpbi1saXRlcmFsIC8gb2JzLWRvbWFpbg0KICAgICAgICAvLw0KICAgICAgICAvLyAgIGRvdC1hdG9tICAgICAgICA9ICAgW0NGV1NdIGRvdC1hdG9tLXRleHQgW0NGV1NdDQogICAgICAgIC8vDQogICAgICAgIC8vICAgZG90LWF0b20tdGV4dCAgID0gICAxKmF0ZXh0ICooIi4iIDEqYXRleHQpDQogICAgICAgIC8vDQogICAgICAgIC8vICAgZG9tYWluLWxpdGVyYWwgID0gICBbQ0ZXU10gIlsiICooW0ZXU10gZHRleHQpIFtGV1NdICJdIiBbQ0ZXU10NCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBkdGV4dCAgICAgICAgICAgPSAgICVkMzMtOTAgLyAgICAgICAgICA7IFByaW50YWJsZSBVUy1BU0NJSQ0KICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQ5NC0xMjYgLyAgICAgICAgIDsgIGNoYXJhY3RlcnMgbm90IGluY2x1ZGluZw0KICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgb2JzLWR0ZXh0ICAgICAgICAgIDsgICJbIiwgIl0iLCBvciAiXCINCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBvYnMtZG9tYWluICAgICAgPSAgIGF0b20gKigiLiIgYXRvbSkNCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBhdG9tICAgICAgICAgICAgPSAgIFtDRldTXSAxKmF0ZXh0IFtDRldTXQ0KDQoNCiAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMSNzZWN0aW9uLTQuMS4yDQogICAgICAgIC8vICAgTWFpbGJveCAgICAgICAgPSBMb2NhbC1wYXJ0ICJAIiAoIERvbWFpbiAvIGFkZHJlc3MtbGl0ZXJhbCApDQogICAgICAgIC8vDQogICAgICAgIC8vICAgRG9tYWluICAgICAgICAgPSBzdWItZG9tYWluICooIi4iIHN1Yi1kb21haW4pDQogICAgICAgIC8vDQogICAgICAgIC8vICAgYWRkcmVzcy1saXRlcmFsICA9ICJbIiAoIElQdjQtYWRkcmVzcy1saXRlcmFsIC8NCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIElQdjYtYWRkcmVzcy1saXRlcmFsIC8NCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIEdlbmVyYWwtYWRkcmVzcy1saXRlcmFsICkgIl0iDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICA7IFNlZSBTZWN0aW9uIDQuMS4zDQoNCiAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNC4xDQogICAgICAgIC8vICAgICAgTm90ZTogQSBsaWJlcmFsIHN5bnRheCBmb3IgdGhlIGRvbWFpbiBwb3J0aW9uIG9mIGFkZHItc3BlYyBpcw0KICAgICAgICAvLyAgICAgIGdpdmVuIGhlcmUuICBIb3dldmVyLCB0aGUgZG9tYWluIHBvcnRpb24gY29udGFpbnMgYWRkcmVzc2luZw0KICAgICAgICAvLyAgICAgIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSBhbmQgdXNlZCBpbiBvdGhlciBwcm90b2NvbHMgKGUuZy4sDQogICAgICAgIC8vICAgICAgW1JGQzEwMzRdLCBbUkZDMTAzNV0sIFtSRkMxMTIzXSwgW1JGQzUzMjFdKS4gIEl0IGlzIHRoZXJlZm9yZQ0KICAgICAgICAvLyAgICAgIGluY3VtYmVudCB1cG9uIGltcGxlbWVudGF0aW9ucyB0byBjb25mb3JtIHRvIHRoZSBzeW50YXggb2YNCiAgICAgICAgLy8gICAgICBhZGRyZXNzZXMgZm9yIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoZXkgYXJlIHVzZWQuDQogICAgICAgIC8vIGlzX2VtYWlsKCkgYXV0aG9yJ3Mgbm90ZTogaXQncyBub3QgY2xlYXIgaG93IHRvIGludGVycHJldCB0aGlzIGluDQogICAgICAgIC8vIHRoZSBjb250ZXh0IG9mIGEgZ2VuZXJhbCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRvci4gVGhlIGNvbmNsdXNpb24gSQ0KICAgICAgICAvLyBoYXZlIHJlYWNoZWQgaXMgdGhpczogImFkZHJlc3NpbmcgaW5mb3JtYXRpb24iIG11c3QgY29tcGx5IHdpdGgNCiAgICAgICAgLy8gUkZDIDUzMjEgKGFuZCBpbiB0dXJuIFJGQyAxMDM1KSwgYW55dGhpbmcgdGhhdCBpcyAic2VtYW50aWNhbGx5DQogICAgICAgIC8vIGludmlzaWJsZSIgbXVzdCBjb21wbHkgb25seSB3aXRoIFJGQyA1MzIyLg0KICAgICAgICBzd2l0Y2ggKCR0b2tlbikgew0KICAgICAgICAvLyBDb21tZW50DQogICAgICAgIGNhc2UgSVNFTUFJTF9TVFJJTkdfT1BFTlBBUkVOVEhFU0lTOg0KICAgICAgICAgIGlmICgkZWxlbWVudF9sZW4gPT09IDApDQogICAgICAgICAgICAvLyBDb21tZW50cyBhdCB0aGUgc3RhcnQgb2YgdGhlIGRvbWFpbiBhcmUgZGVwcmVjYXRlZCBpbiB0aGUgdGV4dA0KICAgICAgICAgICAgLy8gQ29tbWVudHMgYXQgdGhlIHN0YXJ0IG9mIGEgc3ViZG9tYWluIGFyZSBvYnMtZG9tYWluDQogICAgICAgICAgICAvLyAoaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNC4xKQ0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSAoJGVsZW1lbnRfY291bnQgPT09IDApID8gSVNFTUFJTF9ERVBSRUNfQ0ZXU19ORUFSX0FUIDogSVNFTUFJTF9ERVBSRUNfQ09NTUVOVDsNCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9DRldTX0NPTU1FTlQ7DQogICAgICAgICAgICAkZW5kX29yX2RpZSAgICA9IHRydWU7ICAvLyBXZSBjYW4ndCBzdGFydCBhIGNvbW1lbnQgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbGVtZW50LCBzbyB0aGlzIGJldHRlciBiZSB0aGUgZW5kDQogICAgICAgICAgfQ0KDQogICAgICAgICAgJGNvbnRleHRfc3RhY2tbXSAgPSAkY29udGV4dDsNCiAgICAgICAgICAkY29udGV4dCAgICA9IElTRU1BSUxfQ09OVEVYVF9DT01NRU5UOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBOZXh0IGRvdC1hdG9tIGVsZW1lbnQNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19ET1Q6DQogICAgICAgICAgaWYgKCRlbGVtZW50X2xlbiA9PT0gMCkNCiAgICAgICAgICAgIC8vIEFub3RoZXIgZG90LCBhbHJlYWR5Pw0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSAoJGVsZW1lbnRfY291bnQgPT09IDApID8gSVNFTUFJTF9FUlJfRE9UX1NUQVJUIDogSVNFTUFJTF9FUlJfQ09OU0VDVVRJVkVET1RTOyAgLy8gRmF0YWwgZXJyb3INCiAgICAgICAgICBlbHNlaWYgKCRoeXBoZW5fZmxhZykNCiAgICAgICAgICAgIC8vIFByZXZpb3VzIHN1YmRvbWFpbiBlbmRlZCBpbiBhIGh5cGhlbg0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9ET01BSU5IWVBIRU5FTkQ7ICAvLyBGYXRhbCBlcnJvcg0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIC8vIE5vd2hlcmUgaW4gUkZDIDUzMjEgZG9lcyBpdCBzYXkgZXhwbGljaXRseSB0aGF0IHRoZQ0KICAgICAgICAgICAgLy8gZG9tYWluIHBhcnQgb2YgYSBNYWlsYm94IG11c3QgYmUgYSB2YWxpZCBkb21haW4gYWNjb3JkaW5nDQogICAgICAgICAgICAvLyB0byB0aGUgRE5TIHN0YW5kYXJkcyBzZXQgb3V0IGluIFJGQyAxMDM1LCBidXQgdGhpcyAqaXMqDQogICAgICAgICAgICAvLyBpbXBsaWVkIGluIHNldmVyYWwgcGxhY2VzLiBGb3IgaW5zdGFuY2UsIHdoZXJldmVyIHRoZSBpZGVhDQogICAgICAgICAgICAvLyBvZiBob3N0IHJvdXRpbmcgaXMgZGlzY3Vzc2VkIHRoZSBSRkMgc2F5cyB0aGF0IHRoZSBkb21haW4NCiAgICAgICAgICAgIC8vIG11c3QgYmUgbG9va2VkIHVwIGluIHRoZSBETlMuIFRoaXMgd291bGQgYmUgbm9uc2Vuc2UgdW5sZXNzDQogICAgICAgICAgICAvLyB0aGUgZG9tYWluIHdhcyBkZXNpZ25lZCB0byBiZSBhIHZhbGlkIEROUyBkb21haW4uIEhlbmNlIHdlDQogICAgICAgICAgICAvLyBtdXN0IGNvbmNsdWRlIHRoYXQgdGhlIFJGQyAxMDM1IHJlc3RyaWN0aW9uIG9uIGxhYmVsIGxlbmd0aA0KICAgICAgICAgICAgLy8gYWxzbyBhcHBsaWVzIHRvIFJGQyA1MzIxIGRvbWFpbnMuDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSNzZWN0aW9uLTIuMy40DQogICAgICAgICAgICAvLyBsYWJlbHMgICAgICAgICAgNjMgb2N0ZXRzIG9yIGxlc3MNCiAgICAgICAgICAgIGlmICgkZWxlbWVudF9sZW4gPiA2MykgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjJfTEFCRUxfVE9PTE9ORzsNCg0KICAgICAgICAgICAgJGVuZF9vcl9kaWUgICAgPSBmYWxzZTsgIC8vIENGV1MgaXMgT0sgYWdhaW4gbm93IHdlJ3JlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYW4gZWxlbWVudCAoYWx0aG91Z2ggaXQgbWF5IGJlIG9ic29sZXRlIENGV1MpDQogICAgICAgICAgICAkZWxlbWVudF9sZW4gICAgPSAwOw0KICAgICAgICAgICAgJGVsZW1lbnRfY291bnQrKzsNCiAgICAgICAgICAgICRhdG9tbGlzdFtJU0VNQUlMX0NPTVBPTkVOVF9ET01BSU5dWyRlbGVtZW50X2NvdW50XSAgPSAnJzsNCiAgICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXSAgICAgIC49ICR0b2tlbjsNCg0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBEb21haW4gbGl0ZXJhbA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX09QRU5TUUJSQUNLRVQ6DQogICAgICAgICAgaWYgKCRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXSA9PT0gJycpIHsNCiAgICAgICAgICAgICRlbmRfb3JfZGllICAgID0gdHJ1ZTsgIC8vIERvbWFpbiBsaXRlcmFsIG11c3QgYmUgdGhlIG9ubHkgY29tcG9uZW50DQogICAgICAgICAgICAkZWxlbWVudF9sZW4rKzsNCiAgICAgICAgICAgICRjb250ZXh0X3N0YWNrW10gID0gJGNvbnRleHQ7DQogICAgICAgICAgICAkY29udGV4dCAgICA9IElTRU1BSUxfQ09NUE9ORU5UX0xJVEVSQUw7DQogICAgICAgICAgICAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl0gICAgICAuPSAkdG9rZW47DQogICAgICAgICAgICAkYXRvbWxpc3RbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXVskZWxlbWVudF9jb3VudF0gIC49ICR0b2tlbjsNCiAgICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfTElURVJBTF0gICAgICA9ICcnOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0VYUEVDVElOR19BVEVYVDsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgfQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIEZvbGRpbmcgV2hpdGUgU3BhY2UNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19DUjoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19TUDoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19IVEFCOg0KICAgICAgICAgIGlmICgoJHRva2VuID09PSBJU0VNQUlMX1NUUklOR19DUikgJiYgKCgrKyRpID09PSAkcmF3X2xlbmd0aCkgfHwgKCRlbWFpbFskaV0gIT09IElTRU1BSUxfU1RSSU5HX0xGKSkpIHskcmV0dXJuX3N0YXR1c1tdID0gSVNFTUFJTF9FUlJfQ1JfTk9fTEY7ICBicmVhazt9ICAvLyBGYXRhbCBlcnJvcg0KDQogICAgICAgICAgaWYgKCRlbGVtZW50X2xlbiA9PT0gMCkNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gKCRlbGVtZW50X2NvdW50ID09PSAwKSA/IElTRU1BSUxfREVQUkVDX0NGV1NfTkVBUl9BVCA6IElTRU1BSUxfREVQUkVDX0ZXUzsNCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9DRldTX0ZXUzsNCiAgICAgICAgICAgICRlbmRfb3JfZGllICA9IHRydWU7ICAvLyBXZSBjYW4ndCBzdGFydCBGV1MgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbGVtZW50LCBzbyB0aGlzIGJldHRlciBiZSB0aGUgZW5kDQogICAgICAgICAgfQ0KDQogICAgICAgICAgJGNvbnRleHRfc3RhY2tbXSAgPSAkY29udGV4dDsNCiAgICAgICAgICAkY29udGV4dCAgICA9IElTRU1BSUxfQ09OVEVYVF9GV1M7DQogICAgICAgICAgJHRva2VuX3ByaW9yICAgID0gJHRva2VuOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBhdGV4dA0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIC8vIFJGQyA1MzIyIGFsbG93cyBhbnkgYXRleHQuLi4NCiAgICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy4yLjMNCiAgICAgICAgICAvLyAgICBhdGV4dCAgICAgICAgICAgPSAgIEFMUEhBIC8gRElHSVQgLyAgICA7IFByaW50YWJsZSBVUy1BU0NJSQ0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIiEiIC8gIiMiIC8gICAgICAgIDsgIGNoYXJhY3RlcnMgbm90IGluY2x1ZGluZw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIiQiIC8gIiUiIC8gICAgICAgIDsgIHNwZWNpYWxzLiAgVXNlZCBmb3IgYXRvbXMuDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAiJiIgLyAiJyIgLw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIioiIC8gIisiIC8NCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICItIiAvICIvIiAvDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAiPSIgLyAiPyIgLw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIl4iIC8gIl8iIC8NCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICJgIiAvICJ7IiAvDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAifCIgLyAifSIgLw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIn4iDQoNCiAgICAgICAgICAvLyBCdXQgUkZDIDUzMjEgb25seSBhbGxvd3MgbGV0dGVyLWRpZ2l0LWh5cGhlbiB0byBjb21wbHkgd2l0aCBETlMgcnVsZXMgKFJGQ3MgMTAzNCAmIDExMjMpDQogICAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMSNzZWN0aW9uLTQuMS4yDQogICAgICAgICAgLy8gICBzdWItZG9tYWluICAgICA9IExldC1kaWcgW0xkaC1zdHJdDQogICAgICAgICAgLy8NCiAgICAgICAgICAvLyAgIExldC1kaWcgICAgICAgID0gQUxQSEEgLyBESUdJVA0KICAgICAgICAgIC8vDQogICAgICAgICAgLy8gICBMZGgtc3RyICAgICAgICA9ICooIEFMUEhBIC8gRElHSVQgLyAiLSIgKSBMZXQtZGlnDQogICAgICAgICAgLy8NCiAgICAgICAgICBpZiAoJGVuZF9vcl9kaWUpIHsNCiAgICAgICAgICAgIC8vIFdlIGhhdmUgZW5jb3VudGVyZWQgYXRleHQgd2hlcmUgaXQgaXMgbm8gbG9uZ2VyIHZhbGlkDQogICAgICAgICAgICBzd2l0Y2ggKCRjb250ZXh0X3ByaW9yKSB7DQogICAgICAgICAgICBjYXNlIElTRU1BSUxfQ09OVEVYVF9DT01NRU5UOg0KICAgICAgICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfRldTOg0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0FURVhUX0FGVEVSX0NGV1M7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBJU0VNQUlMX0NPTVBPTkVOVF9MSVRFUkFMOg0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0FURVhUX0FGVEVSX0RPTUxJVDsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICBkaWUgKCJNb3JlIGF0ZXh0IGZvdW5kIHdoZXJlIG5vbmUgaXMgYWxsb3dlZCwgYnV0IHVucmVjb2duaXNlZCBwcmlvciBjb250ZXh0OiAkY29udGV4dF9wcmlvciIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCg0KICAgICAgICAgICRvcmQgICAgPSBvcmQoJHRva2VuKTsNCiAgICAgICAgICAkaHlwaGVuX2ZsYWcgID0gZmFsc2U7ICAvLyBBc3N1bWUgdGhpcyB0b2tlbiBpc24ndCBhIGh5cGhlbiB1bmxlc3Mgd2UgZGlzY292ZXIgaXQgaXMNCg0KICAgICAgICAgIGlmICgoJG9yZCA8IDMzKSB8fCAoJG9yZCA+IDEyNikgfHwgKCFpc19ib29sKHN0cnBvcyhJU0VNQUlMX1NUUklOR19TUEVDSUFMUywgJHRva2VuKSkpKSB7DQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0VYUEVDVElOR19BVEVYVDsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgfSBlbHNlaWYgKCR0b2tlbiA9PT0gSVNFTUFJTF9TVFJJTkdfSFlQSEVOKSB7DQogICAgICAgICAgICBpZiAoJGVsZW1lbnRfbGVuID09PSAwKSB7DQogICAgICAgICAgICAgIC8vIEh5cGhlbnMgY2FuJ3QgYmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHN1YmRvbWFpbg0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0RPTUFJTkhZUEhFTlNUQVJUOyAgLy8gRmF0YWwgZXJyb3INCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGh5cGhlbl9mbGFnID0gdHJ1ZTsNCiAgICAgICAgICB9IGVsc2VpZiAoISgoJG9yZCA+IDQ3ICYmICRvcmQgPCA1OCkgfHwgKCRvcmQgPiA2NCAmJiAkb3JkIDwgOTEpIHx8ICgkb3JkID4gOTYgJiYgJG9yZCA8IDEyMykpKSB7DQogICAgICAgICAgICAvLyBOb3QgYW4gUkZDIDUzMjEgc3ViZG9tYWluLCBidXQgc3RpbGwgT0sgYnkgUkZDIDUzMjINCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9SRkM1MzIyX0RPTUFJTjsNCiAgICAgICAgICB9DQoNCiAgICAgICAgICAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl0gICAgICAuPSAkdG9rZW47DQogICAgICAgICAgJGF0b21saXN0W0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl1bJGVsZW1lbnRfY291bnRdICAuPSAkdG9rZW47DQogICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogICAgICAgIH0NCg0KICAgICAgICBicmVhazsNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgLy8gRG9tYWluIGxpdGVyYWwNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgY2FzZSBJU0VNQUlMX0NPTVBPTkVOVF9MSVRFUkFMOg0KICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy40LjENCiAgICAgICAgLy8gICBkb21haW4tbGl0ZXJhbCAgPSAgIFtDRldTXSAiWyIgKihbRldTXSBkdGV4dCkgW0ZXU10gIl0iIFtDRldTXQ0KICAgICAgICAvLw0KICAgICAgICAvLyAgIGR0ZXh0ICAgICAgICAgICA9ICAgJWQzMy05MCAvICAgICAgICAgIDsgUHJpbnRhYmxlIFVTLUFTQ0lJDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDk0LTEyNiAvICAgICAgICAgOyAgY2hhcmFjdGVycyBub3QgaW5jbHVkaW5nDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBvYnMtZHRleHQgICAgICAgICAgOyAgIlsiLCAiXSIsIG9yICJcIg0KICAgICAgICAvLw0KICAgICAgICAvLyAgIG9icy1kdGV4dCAgICAgICA9ICAgb2JzLU5PLVdTLUNUTCAvIHF1b3RlZC1wYWlyDQogICAgICAgIHN3aXRjaCAoJHRva2VuKSB7DQogICAgICAgIC8vIEVuZCBvZiBkb21haW4gbGl0ZXJhbA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0NMT1NFU1FCUkFDS0VUOg0KICAgICAgICAgIGlmICgoaW50KSBtYXgoJHJldHVybl9zdGF0dXMpIDwgSVNFTUFJTF9ERVBSRUMpIHsNCiAgICAgICAgICAgIC8vIENvdWxkIGJlIGEgdmFsaWQgUkZDIDUzMjEgYWRkcmVzcyBsaXRlcmFsLCBzbyBsZXQncyBjaGVjaw0KDQogICAgICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC4xLjINCiAgICAgICAgICAgIC8vICAgYWRkcmVzcy1saXRlcmFsICA9ICJbIiAoIElQdjQtYWRkcmVzcy1saXRlcmFsIC8NCiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBJUHY2LWFkZHJlc3MtbGl0ZXJhbCAvDQogICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgR2VuZXJhbC1hZGRyZXNzLWxpdGVyYWwgKSAiXSINCiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICA7IFNlZSBTZWN0aW9uIDQuMS4zDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMSNzZWN0aW9uLTQuMS4zDQogICAgICAgICAgICAvLyAgIElQdjQtYWRkcmVzcy1saXRlcmFsICA9IFNudW0gMygiLiIgIFNudW0pDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gICBJUHY2LWFkZHJlc3MtbGl0ZXJhbCAgPSAiSVB2NjoiIElQdjYtYWRkcg0KICAgICAgICAgICAgLy8NCiAgICAgICAgICAgIC8vICAgR2VuZXJhbC1hZGRyZXNzLWxpdGVyYWwgID0gU3RhbmRhcmRpemVkLXRhZyAiOiIgMSpkY29udGVudA0KICAgICAgICAgICAgLy8NCiAgICAgICAgICAgIC8vICAgU3RhbmRhcmRpemVkLXRhZyAgPSBMZGgtc3RyDQogICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIDsgU3RhbmRhcmRpemVkLXRhZyBNVVNUIGJlIHNwZWNpZmllZCBpbiBhDQogICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIDsgU3RhbmRhcmRzLVRyYWNrIFJGQyBhbmQgcmVnaXN0ZXJlZCB3aXRoIElBTkENCiAgICAgICAgICAgIC8vDQogICAgICAgICAgICAvLyAgIGRjb250ZW50ICAgICAgID0gJWQzMy05MCAvIDsgUHJpbnRhYmxlIFVTLUFTQ0lJDQogICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICVkOTQtMTI2IDsgZXhjbC4gIlsiLCAiXCIsICJdIg0KICAgICAgICAgICAgLy8NCiAgICAgICAgICAgIC8vICAgU251bSAgICAgICAgICAgPSAxKjNESUdJVA0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICA7IHJlcHJlc2VudGluZyBhIGRlY2ltYWwgaW50ZWdlcg0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICA7IHZhbHVlIGluIHRoZSByYW5nZSAwIHRocm91Z2ggMjU1DQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gICBJUHY2LWFkZHIgICAgICA9IElQdjYtZnVsbCAvIElQdjYtY29tcCAvIElQdjZ2NC1mdWxsIC8gSVB2NnY0LWNvbXANCiAgICAgICAgICAgIC8vDQogICAgICAgICAgICAvLyAgIElQdjYtaGV4ICAgICAgID0gMSo0SEVYRElHDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gICBJUHY2LWZ1bGwgICAgICA9IElQdjYtaGV4IDcoIjoiIElQdjYtaGV4KQ0KICAgICAgICAgICAgLy8NCiAgICAgICAgICAgIC8vICAgSVB2Ni1jb21wICAgICAgPSBbSVB2Ni1oZXggKjUoIjoiIElQdjYtaGV4KV0gIjo6Ig0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICBbSVB2Ni1oZXggKjUoIjoiIElQdjYtaGV4KV0NCiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgOyBUaGUgIjo6IiByZXByZXNlbnRzIGF0IGxlYXN0IDIgMTYtYml0IGdyb3VwcyBvZg0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICA7IHplcm9zLiAgTm8gbW9yZSB0aGFuIDYgZ3JvdXBzIGluIGFkZGl0aW9uIHRvIHRoZQ0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICA7ICI6OiIgbWF5IGJlIHByZXNlbnQuDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gICBJUHY2djQtZnVsbCAgICA9IElQdjYtaGV4IDUoIjoiIElQdjYtaGV4KSAiOiIgSVB2NC1hZGRyZXNzLWxpdGVyYWwNCiAgICAgICAgICAgIC8vDQogICAgICAgICAgICAvLyAgIElQdjZ2NC1jb21wICAgID0gW0lQdjYtaGV4ICozKCI6IiBJUHY2LWhleCldICI6OiINCiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgW0lQdjYtaGV4ICozKCI6IiBJUHY2LWhleCkgIjoiXQ0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICBJUHY0LWFkZHJlc3MtbGl0ZXJhbA0KICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICA7IFRoZSAiOjoiIHJlcHJlc2VudHMgYXQgbGVhc3QgMiAxNi1iaXQgZ3JvdXBzIG9mDQogICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgIDsgemVyb3MuICBObyBtb3JlIHRoYW4gNCBncm91cHMgaW4gYWRkaXRpb24gdG8gdGhlDQogICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgIDsgIjo6IiBhbmQgSVB2NC1hZGRyZXNzLWxpdGVyYWwgbWF5IGJlIHByZXNlbnQuDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gaXNfZW1haWwoKSBhdXRob3IncyBub3RlOiBXZSBjYW4ndCB1c2UgaXAybG9uZygpIHRvIHZhbGlkYXRlDQogICAgICAgICAgICAvLyBJUHY0IGFkZHJlc3NlcyBiZWNhdXNlIGl0IGFjY2VwdHMgYWJicmV2aWF0ZWQgYWRkcmVzc2VzDQogICAgICAgICAgICAvLyAoeHh4Lnh4eC54eHgpLCBleHBhbmRpbmcgdGhlIGxhc3QgZ3JvdXAgdG8gY29tcGxldGUgdGhlIGFkZHJlc3MuDQogICAgICAgICAgICAvLyBmaWx0ZXJfdmFyKCkgdmFsaWRhdGVzIElQdjYgYWRkcmVzcyBpbmNvbnNpc3RlbnRseSAodXAgdG8gUEhQIDUuMy4zDQogICAgICAgICAgICAvLyBhdCBsZWFzdCkgLS0gc2VlIGh0dHA6Ly9idWdzLnBocC5uZXQvYnVnLnBocD9pZD01MzIzNiBmb3IgZXhhbXBsZQ0KICAgICAgICAgICAgJG1heF9ncm91cHMgID0gODsNCiAgICAgICAgICAgICRtYXRjaGVzSVAgID0gYXJyYXkoKTsNCiAgICAgICAgLyoubWl4ZWQuKi8gICRpbmRleCAgICA9IGZhbHNlOw0KICAgICAgICAgICAgJGFkZHJlc3NsaXRlcmFsICA9ICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfTElURVJBTF07DQoNCiAgICAgICAgICAgIC8vIEV4dHJhY3QgSVB2NCBwYXJ0IGZyb20gdGhlIGVuZCBvZiB0aGUgYWRkcmVzcy1saXRlcmFsIChpZiB0aGVyZSBpcyBvbmUpDQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL1xcYig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSQvJywgJGFkZHJlc3NsaXRlcmFsLCAkbWF0Y2hlc0lQKSA+IDApIHsNCiAgICAgICAgICAgICAgJGluZGV4ID0gc3RycnBvcygkYWRkcmVzc2xpdGVyYWwsICRtYXRjaGVzSVBbMF0pOw0KICAgICAgICAgICAgICBpZiAoJGluZGV4ICE9PSAwKSAkYWRkcmVzc2xpdGVyYWwgPSBzdWJzdHIoJGFkZHJlc3NsaXRlcmFsLCAwLCAkaW5kZXgpIC4gJzA6MCc7IC8vIENvbnZlcnQgSVB2NCBwYXJ0IHRvIElQdjYgZm9ybWF0IGZvciBmdXJ0aGVyIHRlc3RpbmcNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCRpbmRleCA9PT0gMCkgew0KICAgICAgICAgICAgICAvLyBOb3RoaW5nIHRoZXJlIGV4Y2VwdCBhIHZhbGlkIElQdjQgYWRkcmVzcywgc28uLi4NCiAgICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjFfQUREUkVTU0xJVEVSQUw7DQogICAgICAgICAgICB9IGVsc2VpZiAoc3RybmNhc2VjbXAoJGFkZHJlc3NsaXRlcmFsLCBJU0VNQUlMX1NUUklOR19JUFY2VEFHLCA1KSAhPT0gMCkgew0KICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9ET01BSU5MSVRFUkFMOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgJElQdjYgICAgPSBzdWJzdHIoJGFkZHJlc3NsaXRlcmFsLCA1KTsNCiAgICAgICAgICAgICAgJG1hdGNoZXNJUCAgPSBleHBsb2RlKElTRU1BSUxfU1RSSU5HX0NPTE9OLCAkSVB2Nik7ICAvLyBSZXZpc2lvbiAyLjc6IERhbmllbCBNYXJzY2hhbGwncyBuZXcgSVB2NiB0ZXN0aW5nIHN0cmF0ZWd5DQogICAgICAgICAgICAgICRncm91cENvdW50ICA9IGNvdW50KCRtYXRjaGVzSVApOw0KICAgICAgICAgICAgICAkaW5kZXggICAgPSBzdHJwb3MoJElQdjYsSVNFTUFJTF9TVFJJTkdfRE9VQkxFQ09MT04pOw0KDQogICAgICAgICAgICAgIGlmICgkaW5kZXggPT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgLy8gV2UgbmVlZCBleGFjdGx5IHRoZSByaWdodCBudW1iZXIgb2YgZ3JvdXBzDQogICAgICAgICAgICAgICAgaWYgKCRncm91cENvdW50ICE9PSAkbWF4X2dyb3VwcykNCiAgICAgICAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9SRkM1MzIyX0lQVjZfR1JQQ09VTlQ7DQogICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKCRpbmRleCAhPT0gc3RycnBvcygkSVB2NixJU0VNQUlMX1NUUklOR19ET1VCTEVDT0xPTikpDQogICAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9JUFY2XzJYMlhDT0xPTjsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgIGlmICgkaW5kZXggPT09IDAgfHwgJGluZGV4ID09PSAoc3RybGVuKCRJUHY2KSAtIDIpKSAkbWF4X2dyb3VwcysrOyAgLy8gUkZDIDQyOTEgYWxsb3dzIDo6IGF0IHRoZSBzdGFydCBvciBlbmQgb2YgYW4gYWRkcmVzcyB3aXRoIDcgb3RoZXIgZ3JvdXBzIGluIGFkZGl0aW9uDQoNCiAgICAgICAgICAgICAgICAgIGlmICgkZ3JvdXBDb3VudCA+ICRtYXhfZ3JvdXBzKQ0KICAgICAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9JUFY2X01BWEdSUFM7DQogICAgICAgICAgICAgICAgICBlbHNlaWYgKCRncm91cENvdW50ID09PSAkbWF4X2dyb3VwcykNCiAgICAgICAgICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjFfSVBWNkRFUFJFQ0FURUQ7ICAvLyBFbGlkaW5nIGEgc2luZ2xlICI6OiINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAvLyBSZXZpc2lvbiAyLjc6IERhbmllbCBNYXJzY2hhbGwncyBuZXcgSVB2NiB0ZXN0aW5nIHN0cmF0ZWd5DQogICAgICAgICAgICAgIGlmICgoc3Vic3RyKCRJUHY2LCAwLCAgMSkgPT09IElTRU1BSUxfU1RSSU5HX0NPTE9OKSAmJiAoc3Vic3RyKCRJUHY2LCAxLCAgMSkgIT09IElTRU1BSUxfU1RSSU5HX0NPTE9OKSkNCiAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9JUFY2X0NPTE9OU1RSVDsgIC8vIEFkZHJlc3Mgc3RhcnRzIHdpdGggYSBzaW5nbGUgY29sb24NCiAgICAgICAgICAgICAgZWxzZWlmICgoc3Vic3RyKCRJUHY2LCAtMSkgPT09IElTRU1BSUxfU1RSSU5HX0NPTE9OKSAmJiAoc3Vic3RyKCRJUHY2LCAtMiwgMSkgIT09IElTRU1BSUxfU1RSSU5HX0NPTE9OKSkNCiAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9JUFY2X0NPTE9ORU5EOyAgLy8gQWRkcmVzcyBlbmRzIHdpdGggYSBzaW5nbGUgY29sb24NCiAgICAgICAgICAgICAgZWxzZWlmIChjb3VudChwcmVnX2dyZXAoJy9eWzAtOUEtRmEtZl17MCw0fSQvJywgJG1hdGNoZXNJUCwgUFJFR19HUkVQX0lOVkVSVCkpICE9PSAwKQ0KICAgICAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9SRkM1MzIyX0lQVjZfQkFEQ0hBUjsgIC8vIENoZWNrIGZvciB1bm1hdGNoZWQgY2hhcmFjdGVycw0KICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjFfQUREUkVTU0xJVEVSQUw7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBlbHNlDQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9ET01BSU5MSVRFUkFMOw0KDQoNCiAgICAgICAgICAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl0gICAgICAuPSAkdG9rZW47DQogICAgICAgICAgJGF0b21saXN0W0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl1bJGVsZW1lbnRfY291bnRdICAuPSAkdG9rZW47DQogICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogICAgICAgICAgJGNvbnRleHRfcHJpb3IgICAgPSAkY29udGV4dDsNCiAgICAgICAgICAkY29udGV4dCAgICA9IChpbnQpIGFycmF5X3BvcCgkY29udGV4dF9zdGFjayk7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgSVNFTUFJTF9TVFJJTkdfQkFDS1NMQVNIOg0KICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9SRkM1MzIyX0RPTUxJVF9PQlNEVEVYVDsNCiAgICAgICAgICAkY29udGV4dF9zdGFja1tdICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgID0gSVNFTUFJTF9DT05URVhUX1FVT1RFRFBBSVI7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIEZvbGRpbmcgV2hpdGUgU3BhY2UNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19DUjoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19TUDoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19IVEFCOg0KICAgICAgICAgIGlmICgoJHRva2VuID09PSBJU0VNQUlMX1NUUklOR19DUikgJiYgKCgrKyRpID09PSAkcmF3X2xlbmd0aCkgfHwgKCRlbWFpbFskaV0gIT09IElTRU1BSUxfU1RSSU5HX0xGKSkpIHskcmV0dXJuX3N0YXR1c1tdID0gSVNFTUFJTF9FUlJfQ1JfTk9fTEY7ICBicmVhazt9ICAvLyBGYXRhbCBlcnJvcg0KDQogICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0NGV1NfRldTOw0KDQogICAgICAgICAgJGNvbnRleHRfc3RhY2tbXSAgPSAkY29udGV4dDsNCiAgICAgICAgICAkY29udGV4dCAgICA9IElTRU1BSUxfQ09OVEVYVF9GV1M7DQogICAgICAgICAgJHRva2VuX3ByaW9yICAgID0gJHRva2VuOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBkdGV4dA0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjQuMQ0KICAgICAgICAgIC8vICAgZHRleHQgICAgICAgICAgID0gICAlZDMzLTkwIC8gICAgICAgICAgOyBQcmludGFibGUgVVMtQVNDSUkNCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQ5NC0xMjYgLyAgICAgICAgIDsgIGNoYXJhY3RlcnMgbm90IGluY2x1ZGluZw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBvYnMtZHRleHQgICAgICAgICAgOyAgIlsiLCAiXSIsIG9yICJcIg0KICAgICAgICAgIC8vDQogICAgICAgICAgLy8gICBvYnMtZHRleHQgICAgICAgPSAgIG9icy1OTy1XUy1DVEwgLyBxdW90ZWQtcGFpcg0KICAgICAgICAgIC8vDQogICAgICAgICAgLy8gICBvYnMtTk8tV1MtQ1RMICAgPSAgICVkMS04IC8gICAgICAgICAgICA7IFVTLUFTQ0lJIGNvbnRyb2wNCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQxMSAvICAgICAgICAgICAgIDsgIGNoYXJhY3RlcnMgdGhhdCBkbyBub3QNCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQxMiAvICAgICAgICAgICAgIDsgIGluY2x1ZGUgdGhlIGNhcnJpYWdlDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTQtMzEgLyAgICAgICAgICA7ICByZXR1cm4sIGxpbmUgZmVlZCwgYW5kDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTI3ICAgICAgICAgICAgICA7ICB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzDQogICAgICAgICAgJG9yZCA9IG9yZCgkdG9rZW4pOw0KDQogICAgICAgICAgLy8gQ1IsIExGLCBTUCAmIEhUQUIgaGF2ZSBhbHJlYWR5IGJlZW4gcGFyc2VkIGFib3ZlDQogICAgICAgICAgaWYgKCgkb3JkID4gMTI3KSB8fCAoJG9yZCA9PT0gMCkgfHwgKCR0b2tlbiA9PT0gSVNFTUFJTF9TVFJJTkdfT1BFTlNRQlJBQ0tFVCkpIHsNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9FUlJfRVhQRUNUSU5HX0RURVhUOyAgLy8gRmF0YWwgZXJyb3INCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0gZWxzZWlmICgoJG9yZCA8IDMzKSB8fCAoJG9yZCA9PT0gMTI3KSkgew0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjJfRE9NTElUX09CU0RURVhUOw0KICAgICAgICAgIH0NCg0KICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfTElURVJBTF0gICAgICAuPSAkdG9rZW47DQogICAgICAgICAgJHBhcnNlZGF0YVtJU0VNQUlMX0NPTVBPTkVOVF9ET01BSU5dICAgICAgLj0gJHRva2VuOw0KICAgICAgICAgICRhdG9tbGlzdFtJU0VNQUlMX0NPTVBPTkVOVF9ET01BSU5dWyRlbGVtZW50X2NvdW50XSAgLj0gJHRva2VuOw0KICAgICAgICAgICRlbGVtZW50X2xlbisrOw0KICAgICAgICB9DQoNCiAgICAgICAgYnJlYWs7DQogICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgIC8vIFF1b3RlZCBzdHJpbmcNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEU1RSSU5HOg0KICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy4yLjQNCiAgICAgICAgLy8gICBxdW90ZWQtc3RyaW5nICAgPSAgIFtDRldTXQ0KICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgRFFVT1RFICooW0ZXU10gcWNvbnRlbnQpIFtGV1NdIERRVU9URQ0KICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgW0NGV1NdDQogICAgICAgIC8vDQogICAgICAgIC8vICAgcWNvbnRlbnQgICAgICAgID0gICBxdGV4dCAvIHF1b3RlZC1wYWlyDQogICAgICAgIHN3aXRjaCAoJHRva2VuKSB7DQogICAgICAgIC8vIFF1b3RlZCBwYWlyDQogICAgICAgIGNhc2UgSVNFTUFJTF9TVFJJTkdfQkFDS1NMQVNIOg0KICAgICAgICAgICRjb250ZXh0X3N0YWNrW10gID0gJGNvbnRleHQ7DQogICAgICAgICAgJGNvbnRleHQgICAgPSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEUEFJUjsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgLy8gRm9sZGluZyBXaGl0ZSBTcGFjZQ0KICAgICAgICAvLyBJbnNpZGUgYSBxdW90ZWQgc3RyaW5nLCBzcGFjZXMgYXJlIGFsbG93ZWQgYXMgcmVndWxhciBjaGFyYWN0ZXJzLg0KICAgICAgICAvLyBJdCdzIG9ubHkgRldTIGlmIHdlIGluY2x1ZGUgSFRBQiBvciBDUkxGDQogICAgICAgIGNhc2UgSVNFTUFJTF9TVFJJTkdfQ1I6DQogICAgICAgIGNhc2UgSVNFTUFJTF9TVFJJTkdfSFRBQjoNCiAgICAgICAgICBpZiAoKCR0b2tlbiA9PT0gSVNFTUFJTF9TVFJJTkdfQ1IpICYmICgoKyskaSA9PT0gJHJhd19sZW5ndGgpIHx8ICgkZW1haWxbJGldICE9PSBJU0VNQUlMX1NUUklOR19MRikpKSB7JHJldHVybl9zdGF0dXNbXSA9IElTRU1BSUxfRVJSX0NSX05PX0xGOyAgYnJlYWs7fSAgLy8gRmF0YWwgZXJyb3INCg0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjIuMg0KICAgICAgICAgIC8vICAgUnVucyBvZiBGV1MsIGNvbW1lbnQsIG9yIENGV1MgdGhhdCBvY2N1ciBiZXR3ZWVuIGxleGljYWwgdG9rZW5zIGluIGENCiAgICAgICAgICAvLyAgIHN0cnVjdHVyZWQgaGVhZGVyIGZpZWxkIGFyZSBzZW1hbnRpY2FsbHkgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUNCiAgICAgICAgICAvLyAgIHNwYWNlIGNoYXJhY3Rlci4NCg0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjIuNA0KICAgICAgICAgIC8vICAgdGhlIENSTEYgaW4gYW55IEZXUy9DRldTIHRoYXQgYXBwZWFycyB3aXRoaW4gdGhlIHF1b3RlZC1zdHJpbmcgW2lzXQ0KICAgICAgICAgIC8vICAgc2VtYW50aWNhbGx5ICJpbnZpc2libGUiIGFuZCB0aGVyZWZvcmUgbm90IHBhcnQgb2YgdGhlIHF1b3RlZC1zdHJpbmcNCiAgICAgICAgICAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF0gICAgICAuPSBJU0VNQUlMX1NUUklOR19TUDsNCiAgICAgICAgICAkYXRvbWxpc3RbSVNFTUFJTF9DT01QT05FTlRfTE9DQUxQQVJUXVskZWxlbWVudF9jb3VudF0gIC49IElTRU1BSUxfU1RSSU5HX1NQOw0KICAgICAgICAgICRlbGVtZW50X2xlbisrOw0KDQogICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgICA9IElTRU1BSUxfQ0ZXU19GV1M7DQogICAgICAgICAgJGNvbnRleHRfc3RhY2tbXSAgICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgICAgPSBJU0VNQUlMX0NPTlRFWFRfRldTOw0KICAgICAgICAgICR0b2tlbl9wcmlvciAgICAgID0gJHRva2VuOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBFbmQgb2YgcXVvdGVkIHN0cmluZw0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0RRVU9URToNCiAgICAgICAgICAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF0gICAgICAuPSAkdG9rZW47DQogICAgICAgICAgJGF0b21saXN0W0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF1bJGVsZW1lbnRfY291bnRdICAuPSAkdG9rZW47DQogICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogICAgICAgICAgJGNvbnRleHRfcHJpb3IgICAgICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgICAgPSAoaW50KSBhcnJheV9wb3AoJGNvbnRleHRfc3RhY2spOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBxdGV4dA0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjIuNA0KICAgICAgICAgIC8vICAgcXRleHQgICAgICAgICAgID0gICAlZDMzIC8gICAgICAgICAgICAgOyBQcmludGFibGUgVVMtQVNDSUkNCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQzNS05MSAvICAgICAgICAgIDsgIGNoYXJhY3RlcnMgbm90IGluY2x1ZGluZw0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDkzLTEyNiAvICAgICAgICAgOyAgIlwiIG9yIHRoZSBxdW90ZSBjaGFyYWN0ZXINCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgb2JzLXF0ZXh0DQogICAgICAgICAgLy8NCiAgICAgICAgICAvLyAgIG9icy1xdGV4dCAgICAgICA9ICAgb2JzLU5PLVdTLUNUTA0KICAgICAgICAgIC8vDQogICAgICAgICAgLy8gICBvYnMtTk8tV1MtQ1RMICAgPSAgICVkMS04IC8gICAgICAgICAgICA7IFVTLUFTQ0lJIGNvbnRyb2wNCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQxMSAvICAgICAgICAgICAgIDsgIGNoYXJhY3RlcnMgdGhhdCBkbyBub3QNCiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgJWQxMiAvICAgICAgICAgICAgIDsgIGluY2x1ZGUgdGhlIGNhcnJpYWdlDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTQtMzEgLyAgICAgICAgICA7ICByZXR1cm4sIGxpbmUgZmVlZCwgYW5kDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTI3ICAgICAgICAgICAgICA7ICB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzDQogICAgICAgICAgJG9yZCA9IG9yZCgkdG9rZW4pOw0KDQogICAgICAgICAgaWYgKCgkb3JkID4gMTI3KSB8fCAoJG9yZCA9PT0gMCkgfHwgKCRvcmQgPT09IDEwKSkgew0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9FWFBFQ1RJTkdfUVRFWFQ7ICAvLyBGYXRhbCBlcnJvcg0KICAgICAgICAgIH0gZWxzZWlmICgoJG9yZCA8IDMyKSB8fCAoJG9yZCA9PT0gMTI3KSkNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9ERVBSRUNfUVRFWFQ7DQoNCiAgICAgICAgICAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF0gICAgICAuPSAkdG9rZW47DQogICAgICAgICAgJGF0b21saXN0W0lTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVF1bJGVsZW1lbnRfY291bnRdICAuPSAkdG9rZW47DQogICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy40LjENCiAgICAgICAgLy8gICBJZiB0aGUNCiAgICAgICAgLy8gICBzdHJpbmcgY2FuIGJlIHJlcHJlc2VudGVkIGFzIGEgZG90LWF0b20gKHRoYXQgaXMsIGl0IGNvbnRhaW5zIG5vDQogICAgICAgIC8vICAgY2hhcmFjdGVycyBvdGhlciB0aGFuIGF0ZXh0IGNoYXJhY3RlcnMgb3IgIi4iIHN1cnJvdW5kZWQgYnkgYXRleHQNCiAgICAgICAgLy8gICBjaGFyYWN0ZXJzKSwgdGhlbiB0aGUgZG90LWF0b20gZm9ybSBTSE9VTEQgYmUgdXNlZCBhbmQgdGhlIHF1b3RlZC0NCiAgICAgICAgLy8gICBzdHJpbmcgZm9ybSBTSE9VTEQgTk9UIGJlIHVzZWQuDQogIC8vIFRvIGRvDQogICAgICAgIGJyZWFrOw0KICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAvLyBRdW90ZWQgcGFpcg0KICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICBjYXNlIElTRU1BSUxfQ09OVEVYVF9RVU9URURQQUlSOg0KICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy4yLjENCiAgICAgICAgLy8gICBxdW90ZWQtcGFpciAgICAgPSAgICgiXCIgKFZDSEFSIC8gV1NQKSkgLyBvYnMtcXANCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBWQ0hBUiAgICAgICAgICAgPSAgJWQzMy0xMjYgICAgICAgICAgICA7IHZpc2libGUgKHByaW50aW5nKSBjaGFyYWN0ZXJzDQogICAgICAgIC8vICAgV1NQICAgICAgICAgICAgID0gIFNQIC8gSFRBQiAgICAgICAgICAgOyB3aGl0ZSBzcGFjZQ0KICAgICAgICAvLw0KICAgICAgICAvLyAgIG9icy1xcCAgICAgICAgICA9ICAgIlwiICglZDAgLyBvYnMtTk8tV1MtQ1RMIC8gTEYgLyBDUikNCiAgICAgICAgLy8NCiAgICAgICAgLy8gICBvYnMtTk8tV1MtQ1RMICAgPSAgICVkMS04IC8gICAgICAgICAgICA7IFVTLUFTQ0lJIGNvbnRyb2wNCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTEgLyAgICAgICAgICAgICA7ICBjaGFyYWN0ZXJzIHRoYXQgZG8gbm90DQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDEyIC8gICAgICAgICAgICAgOyAgaW5jbHVkZSB0aGUgY2FycmlhZ2UNCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTQtMzEgLyAgICAgICAgICA7ICByZXR1cm4sIGxpbmUgZmVlZCwgYW5kDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDEyNyAgICAgICAgICAgICAgOyAgd2hpdGUgc3BhY2UgY2hhcmFjdGVycw0KICAgICAgICAvLw0KICAgICAgICAvLyBpLmUuIG9icy1xcCAgICAgICA9ICAiXCIgKCVkMC04LCAlZDEwLTMxIC8gJWQxMjcpDQogICAgICAgICRvcmQgPSBvcmQoJHRva2VuKTsNCg0KICAgICAgICBpZiAgKCRvcmQgPiAxMjcpDQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0VYUEVDVElOR19RUEFJUjsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgIGVsc2VpZiAgKCgoJG9yZCA8IDMxKSAmJiAoJG9yZCAhPT0gOSkpIHx8ICgkb3JkID09PSAxMjcpKSAgLy8gU1AgJiBIVEFCIGFyZSBhbGxvd2VkDQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfREVQUkVDX1FQOw0KDQogICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB3aGVyZSB0aGlzIHFwYWlyIG9jY3VycmVkIHNvDQogICAgICAgIC8vIHdlIGNvdWxkIGNoZWNrIHRvIHNlZSBpZiB0aGUgY2hhcmFjdGVyIGFjdHVhbGx5DQogICAgICAgIC8vIG5lZWRlZCB0byBiZSBxdW90ZWQgYXQgYWxsLg0KICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC4xLjINCiAgICAgICAgLy8gICB0aGUgc2VuZGluZyBzeXN0ZW0gU0hPVUxEIHRyYW5zbWl0IHRoZQ0KICAgICAgICAvLyAgIGZvcm0gdGhhdCB1c2VzIHRoZSBtaW5pbXVtIHF1b3RpbmcgcG9zc2libGUuDQogIC8vIFRvIGRvOiBjaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgbmVlZHMgdG8gYmUgcXVvdGVkIChlc2NhcGVkKSBpbiB0aGlzIGNvbnRleHQNCiAgICAgICAgJGNvbnRleHRfcHJpb3IgID0gJGNvbnRleHQ7DQogICAgICAgICRjb250ZXh0ICA9IChpbnQpIGFycmF5X3BvcCgkY29udGV4dF9zdGFjayk7ICAvLyBFbmQgb2YgcXBhaXINCiAgICAgICAgJHRva2VuICAgID0gSVNFTUFJTF9TVFJJTkdfQkFDS1NMQVNIIC4gJHRva2VuOw0KDQogICAgICAgIHN3aXRjaCAoJGNvbnRleHQpIHsNCiAgICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfQ09NTUVOVDoNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEU1RSSU5HOg0KICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfTE9DQUxQQVJUXSAgICAgIC49ICR0b2tlbjsNCiAgICAgICAgICAkYXRvbWxpc3RbSVNFTUFJTF9DT01QT05FTlRfTE9DQUxQQVJUXVskZWxlbWVudF9jb3VudF0gIC49ICR0b2tlbjsNCiAgICAgICAgICAkZWxlbWVudF9sZW4gICs9IDI7ICAvLyBUaGUgbWF4aW11bSBzaXplcyBzcGVjaWZpZWQgYnkgUkZDIDUzMjEgYXJlIG9jdGV0IGNvdW50cywgc28gd2UgbXVzdCBpbmNsdWRlIHRoZSBiYWNrc2xhc2gNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBJU0VNQUlMX0NPTVBPTkVOVF9MSVRFUkFMOg0KICAgICAgICAgICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXSAgICAgIC49ICR0b2tlbjsNCiAgICAgICAgICAkYXRvbWxpc3RbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXVskZWxlbWVudF9jb3VudF0gIC49ICR0b2tlbjsNCiAgICAgICAgICAkZWxlbWVudF9sZW4gICs9IDI7ICAvLyBUaGUgbWF4aW11bSBzaXplcyBzcGVjaWZpZWQgYnkgUkZDIDUzMjEgYXJlIG9jdGV0IGNvdW50cywgc28gd2UgbXVzdCBpbmNsdWRlIHRoZSBiYWNrc2xhc2gNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICBkaWUoIlF1b3RlZCBwYWlyIGxvZ2ljIGludm9rZWQgaW4gYW4gaW52YWxpZCBjb250ZXh0OiAkY29udGV4dCIpOw0KICAgICAgICB9DQoNCiAgICAgICAgYnJlYWs7DQogICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgIC8vIENvbW1lbnQNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgY2FzZSBJU0VNQUlMX0NPTlRFWFRfQ09NTUVOVDoNCiAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuMi4yDQogICAgICAgIC8vICAgY29tbWVudCAgICAgICAgID0gICAiKCIgKihbRldTXSBjY29udGVudCkgW0ZXU10gIikiDQogICAgICAgIC8vDQogICAgICAgIC8vICAgY2NvbnRlbnQgICAgICAgID0gICBjdGV4dCAvIHF1b3RlZC1wYWlyIC8gY29tbWVudA0KICAgICAgICBzd2l0Y2ggKCR0b2tlbikgew0KICAgICAgICAvLyBOZXN0ZWQgY29tbWVudA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX09QRU5QQVJFTlRIRVNJUzoNCiAgICAgICAgICAvLyBOZXN0ZWQgY29tbWVudHMgYXJlIE9LDQogICAgICAgICAgJGNvbnRleHRfc3RhY2tbXSAgPSAkY29udGV4dDsNCiAgICAgICAgICAkY29udGV4dCAgICA9IElTRU1BSUxfQ09OVEVYVF9DT01NRU5UOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAvLyBFbmQgb2YgY29tbWVudA0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0NMT1NFUEFSRU5USEVTSVM6DQogICAgICAgICAgJGNvbnRleHRfcHJpb3IgICAgPSAkY29udGV4dDsNCiAgICAgICAgICAkY29udGV4dCAgICA9IChpbnQpIGFycmF5X3BvcCgkY29udGV4dF9zdGFjayk7DQoNCiAgICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy4yLjINCiAgICAgICAgICAvLyAgIFJ1bnMgb2YgRldTLCBjb21tZW50LCBvciBDRldTIHRoYXQgb2NjdXIgYmV0d2VlbiBsZXhpY2FsIHRva2VucyBpbiBhDQogICAgICAgICAgLy8gICBzdHJ1Y3R1cmVkIGhlYWRlciBmaWVsZCBhcmUgc2VtYW50aWNhbGx5IGludGVycHJldGVkIGFzIGEgc2luZ2xlDQogICAgICAgICAgLy8gICBzcGFjZSBjaGFyYWN0ZXIuDQogICAgICAgICAgLy8NCiAgICAgICAgICAvLyBpc19lbWFpbCgpIGF1dGhvcidzIG5vdGU6IFRoaXMgKmNhbm5vdCogbWVhbiB0aGF0IHdlIG11c3QgYWRkIGENCiAgICAgICAgICAvLyBzcGFjZSB0byB0aGUgYWRkcmVzcyB3aGVyZXZlciBDRldTIGFwcGVhcnMuIFRoaXMgd291bGQgcmVzdWx0IGluDQogICAgICAgICAgLy8gYW55IGFkZHItc3BlYyB0aGF0IGhhZCBDRldTIG91dHNpZGUgYSBxdW90ZWQgc3RyaW5nIGJlaW5nIGludmFsaWQNCiAgICAgICAgICAvLyBmb3IgUkZDIDUzMjEuDQogIC8vICAgICAgICBpZiAoKCRjb250ZXh0ID09PSBJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlQpIHx8ICgkY29udGV4dCA9PT0gSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOKSkgew0KICAvLyAgICAgICAgICAkcGFyc2VkYXRhWyRjb250ZXh0XSAgICAgIC49IElTRU1BSUxfU1RSSU5HX1NQOw0KICAvLyAgICAgICAgICAkYXRvbWxpc3RbJGNvbnRleHRdWyRlbGVtZW50X2NvdW50XSAgLj0gSVNFTUFJTF9TVFJJTkdfU1A7DQogIC8vICAgICAgICAgICRlbGVtZW50X2xlbisrOw0KICAvLyAgICAgICAgfQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIFF1b3RlZCBwYWlyDQogICAgICAgIGNhc2UgSVNFTUFJTF9TVFJJTkdfQkFDS1NMQVNIOg0KICAgICAgICAgICRjb250ZXh0X3N0YWNrW10gID0gJGNvbnRleHQ7DQogICAgICAgICAgJGNvbnRleHQgICAgPSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEUEFJUjsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgLy8gRm9sZGluZyBXaGl0ZSBTcGFjZQ0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0NSOg0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX1NQOg0KICAgICAgICBjYXNlIElTRU1BSUxfU1RSSU5HX0hUQUI6DQogICAgICAgICAgaWYgKCgkdG9rZW4gPT09IElTRU1BSUxfU1RSSU5HX0NSKSAmJiAoKCsrJGkgPT09ICRyYXdfbGVuZ3RoKSB8fCAoJGVtYWlsWyRpXSAhPT0gSVNFTUFJTF9TVFJJTkdfTEYpKSkgeyRyZXR1cm5fc3RhdHVzW10gPSBJU0VNQUlMX0VSUl9DUl9OT19MRjsgIGJyZWFrO30gIC8vIEZhdGFsIGVycm9yDQoNCiAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfQ0ZXU19GV1M7DQoNCiAgICAgICAgICAkY29udGV4dF9zdGFja1tdICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgID0gSVNFTUFJTF9DT05URVhUX0ZXUzsNCiAgICAgICAgICAkdG9rZW5fcHJpb3IgICAgPSAkdG9rZW47DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIC8vIGN0ZXh0DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuMi4zDQogICAgICAgICAgLy8gICBjdGV4dCAgICAgICAgICAgPSAgICVkMzMtMzkgLyAgICAgICAgICA7IFByaW50YWJsZSBVUy1BU0NJSQ0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDQyLTkxIC8gICAgICAgICAgOyAgY2hhcmFjdGVycyBub3QgaW5jbHVkaW5nDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkOTMtMTI2IC8gICAgICAgICA7ICAiKCIsICIpIiwgb3IgIlwiDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIG9icy1jdGV4dA0KICAgICAgICAgIC8vDQogICAgICAgICAgLy8gICBvYnMtY3RleHQgICAgICAgPSAgIG9icy1OTy1XUy1DVEwNCiAgICAgICAgICAvLw0KICAgICAgICAgIC8vICAgb2JzLU5PLVdTLUNUTCAgID0gICAlZDEtOCAvICAgICAgICAgICAgOyBVUy1BU0NJSSBjb250cm9sDQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTEgLyAgICAgICAgICAgICA7ICBjaGFyYWN0ZXJzIHRoYXQgZG8gbm90DQogICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICVkMTIgLyAgICAgICAgICAgICA7ICBpbmNsdWRlIHRoZSBjYXJyaWFnZQ0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDE0LTMxIC8gICAgICAgICAgOyAgcmV0dXJuLCBsaW5lIGZlZWQsIGFuZA0KICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAlZDEyNyAgICAgICAgICAgICAgOyAgd2hpdGUgc3BhY2UgY2hhcmFjdGVycw0KICAgICAgICAgICRvcmQgPSBvcmQoJHRva2VuKTsNCg0KICAgICAgICAgIGlmICgoJG9yZCA+IDEyNykgfHwgKCRvcmQgPT09IDApIHx8ICgkb3JkID09PSAxMCkpIHsNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9FUlJfRVhQRUNUSU5HX0NURVhUOyAgLy8gRmF0YWwgZXJyb3INCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0gZWxzZWlmICgoJG9yZCA8IDMyKSB8fCAoJG9yZCA9PT0gMTI3KSkgew0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0RFUFJFQ19DVEVYVDsNCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBicmVhazsNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgLy8gRm9sZGluZyBXaGl0ZSBTcGFjZQ0KICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICBjYXNlIElTRU1BSUxfQ09OVEVYVF9GV1M6DQogICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjIuMg0KICAgICAgICAvLyAgIEZXUyAgICAgICAgICAgICA9ICAgKFsqV1NQIENSTEZdIDEqV1NQKSAvICBvYnMtRldTDQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBGb2xkaW5nIHdoaXRlIHNwYWNlDQoNCiAgICAgICAgLy8gQnV0IG5vdGUgdGhlIGVycmF0dW06DQogICAgICAgIC8vIGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvZXJyYXRhX3NlYXJjaC5waHA/cmZjPTUzMjImZWlkPTE5MDg6DQogICAgICAgIC8vICAgSW4gdGhlIG9ic29sZXRlIHN5bnRheCwgYW55IGFtb3VudCBvZiBmb2xkaW5nIHdoaXRlIHNwYWNlIE1BWSBiZQ0KICAgICAgICAvLyAgIGluc2VydGVkIHdoZXJlIHRoZSBvYnMtRldTIHJ1bGUgaXMgYWxsb3dlZC4gIFRoaXMgY3JlYXRlcyB0aGUNCiAgICAgICAgLy8gICBwb3NzaWJpbGl0eSBvZiBoYXZpbmcgdHdvIGNvbnNlY3V0aXZlICJmb2xkcyIgaW4gYSBsaW5lLCBhbmQNCiAgICAgICAgLy8gICB0aGVyZWZvcmUgdGhlIHBvc3NpYmlsaXR5IHRoYXQgYSBsaW5lIHdoaWNoIG1ha2VzIHVwIGEgZm9sZGVkIGhlYWRlcg0KICAgICAgICAvLyAgIGZpZWxkIGNvdWxkIGJlIGNvbXBvc2VkIGVudGlyZWx5IG9mIHdoaXRlIHNwYWNlLg0KICAgICAgICAvLw0KICAgICAgICAvLyAgIG9icy1GV1MgICAgICAgICA9ICAgMSooW0NSTEZdIFdTUCkNCiAgICAgICAgaWYgKCR0b2tlbl9wcmlvciA9PT0gSVNFTUFJTF9TVFJJTkdfQ1IpIHsNCiAgICAgICAgICBpZiAoJHRva2VuID09PSBJU0VNQUlMX1NUUklOR19DUikgew0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9GV1NfQ1JMRl9YMjsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQoNCiAgICAgICAgICBpZiAoaXNzZXQoJGNybGZfY291bnQpKSB7DQogICAgICAgICAgICBpZiAoKyskY3JsZl9jb3VudCA+IDEpDQogICAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9ERVBSRUNfRldTOyAgLy8gTXVsdGlwbGUgZm9sZHMgPSBvYnNvbGV0ZSBGV1MNCiAgICAgICAgICB9IGVsc2UgJGNybGZfY291bnQgPSAxOw0KICAgICAgICB9DQoNCiAgICAgICAgc3dpdGNoICgkdG9rZW4pIHsNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19DUjoNCiAgICAgICAgICBpZiAoKCsrJGkgPT09ICRyYXdfbGVuZ3RoKSB8fCAoJGVtYWlsWyRpXSAhPT0gSVNFTUFJTF9TVFJJTkdfTEYpKQ0KICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9DUl9OT19MRjsgIC8vIEZhdGFsIGVycm9yDQoNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19TUDoNCiAgICAgICAgY2FzZSBJU0VNQUlMX1NUUklOR19IVEFCOg0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIGlmICgkdG9rZW5fcHJpb3IgPT09IElTRU1BSUxfU1RSSU5HX0NSKSB7DQogICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0ZXU19DUkxGX0VORDsgIC8vIEZhdGFsIGVycm9yDQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQoNCiAgICAgICAgICBpZiAoaXNzZXQoJGNybGZfY291bnQpKSB1bnNldCgkY3JsZl9jb3VudCk7DQoNCiAgICAgICAgICAkY29udGV4dF9wcmlvciAgICAgICAgICA9ICRjb250ZXh0Ow0KICAgICAgICAgICRjb250ZXh0ICAgICAgICAgID0gKGludCkgYXJyYXlfcG9wKCRjb250ZXh0X3N0YWNrKTsgIC8vIEVuZCBvZiBGV1MNCg0KICAgICAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0zLjIuMg0KICAgICAgICAgIC8vICAgUnVucyBvZiBGV1MsIGNvbW1lbnQsIG9yIENGV1MgdGhhdCBvY2N1ciBiZXR3ZWVuIGxleGljYWwgdG9rZW5zIGluIGENCiAgICAgICAgICAvLyAgIHN0cnVjdHVyZWQgaGVhZGVyIGZpZWxkIGFyZSBzZW1hbnRpY2FsbHkgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUNCiAgICAgICAgICAvLyAgIHNwYWNlIGNoYXJhY3Rlci4NCiAgICAgICAgICAvLw0KICAgICAgICAgIC8vIGlzX2VtYWlsKCkgYXV0aG9yJ3Mgbm90ZTogVGhpcyAqY2Fubm90KiBtZWFuIHRoYXQgd2UgbXVzdCBhZGQgYQ0KICAgICAgICAgIC8vIHNwYWNlIHRvIHRoZSBhZGRyZXNzIHdoZXJldmVyIENGV1MgYXBwZWFycy4gVGhpcyB3b3VsZCByZXN1bHQgaW4NCiAgICAgICAgICAvLyBhbnkgYWRkci1zcGVjIHRoYXQgaGFkIENGV1Mgb3V0c2lkZSBhIHF1b3RlZCBzdHJpbmcgYmVpbmcgaW52YWxpZA0KICAgICAgICAgIC8vIGZvciBSRkMgNTMyMS4NCiAgLy8gICAgICAgIGlmICgoJGNvbnRleHQgPT09IElTRU1BSUxfQ09NUE9ORU5UX0xPQ0FMUEFSVCkgfHwgKCRjb250ZXh0ID09PSBJU0VNQUlMX0NPTVBPTkVOVF9ET01BSU4pKSB7DQogIC8vICAgICAgICAgICRwYXJzZWRhdGFbJGNvbnRleHRdICAgICAgLj0gSVNFTUFJTF9TVFJJTkdfU1A7DQogIC8vICAgICAgICAgICRhdG9tbGlzdFskY29udGV4dF1bJGVsZW1lbnRfY291bnRdICAuPSBJU0VNQUlMX1NUUklOR19TUDsNCiAgLy8gICAgICAgICAgJGVsZW1lbnRfbGVuKys7DQogIC8vICAgICAgICB9DQoNCiAgICAgICAgICAkaS0tOyAgLy8gTG9vayBhdCB0aGlzIHRva2VuIGFnYWluIGluIHRoZSBwYXJlbnQgY29udGV4dA0KICAgICAgICB9DQoNCiAgICAgICAgJHRva2VuX3ByaW9yID0gJHRva2VuOw0KICAgICAgICBicmVhazsNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgLy8gQSBjb250ZXh0IHdlIGFyZW4ndCBleHBlY3RpbmcNCiAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgZGllKCJVbmtub3duIGNvbnRleHQ6ICRjb250ZXh0Iik7DQogICAgICB9DQoNCiAgLy8tZWNobyAiPHRkPiRjb250ZXh0fCIsKCgkZW5kX29yX2RpZSkgPyAndHJ1ZScgOiAnZmFsc2UnKSwifCR0b2tlbnwiIC4gbWF4KCRyZXR1cm5fc3RhdHVzKSAuICI8L3RkPjwvdHI+IjsgLy8gZGVidWcNCiAgICAgIGlmICgoaW50KSBtYXgoJHJldHVybl9zdGF0dXMpID4gSVNFTUFJTF9SRkM1MzIyKSBicmVhazsgIC8vIE5vIHBvaW50IGdvaW5nIG9uIGlmIHdlJ3ZlIGdvdCBhIGZhdGFsIGVycm9yDQogICAgfQ0KDQogICAgLy8gU29tZSBzaW1wbGUgZmluYWwgdGVzdHMNCiAgICBpZiAoKGludCkgbWF4KCRyZXR1cm5fc3RhdHVzKSA8IElTRU1BSUxfUkZDNTMyMikgew0KICAgICAgaWYgICgkY29udGV4dCAgID09PSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEU1RSSU5HKSAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9VTkNMT1NFRFFVT1RFRFNUUjsgIC8vIEZhdGFsIGVycm9yDQogICAgICBlbHNlaWYgICgkY29udGV4dCAgID09PSBJU0VNQUlMX0NPTlRFWFRfUVVPVEVEUEFJUikgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9CQUNLU0xBU0hFTkQ7ICAgIC8vIEZhdGFsIGVycm9yDQogICAgICBlbHNlaWYgICgkY29udGV4dCAgID09PSBJU0VNQUlMX0NPTlRFWFRfQ09NTUVOVCkgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0VSUl9VTkNMT1NFRENPTU1FTlQ7ICAgIC8vIEZhdGFsIGVycm9yDQogICAgICBlbHNlaWYgICgkY29udGV4dCAgID09PSBJU0VNQUlMX0NPTVBPTkVOVF9MSVRFUkFMKSAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX1VOQ0xPU0VERE9NTElUOyAgICAvLyBGYXRhbCBlcnJvcg0KICAgICAgZWxzZWlmICAoJHRva2VuICAgID09PSBJU0VNQUlMX1NUUklOR19DUikgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0ZXU19DUkxGX0VORDsgICAgLy8gRmF0YWwgZXJyb3INCiAgICAgIGVsc2VpZiAgKCRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXSAgPT09ICcnKSAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX05PRE9NQUlOOyAgICAgIC8vIEZhdGFsIGVycm9yDQogICAgICBlbHNlaWYgICgkZWxlbWVudF9sZW4gID09PSAwKSAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0RPVF9FTkQ7ICAgICAgLy8gRmF0YWwgZXJyb3INCiAgICAgIGVsc2VpZiAgKCRoeXBoZW5fZmxhZykgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfRVJSX0RPTUFJTkhZUEhFTkVORDsgICAgLy8gRmF0YWwgZXJyb3INCiAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjEjc2VjdGlvbi00LjUuMy4xLjINCiAgICAgIC8vICAgVGhlIG1heGltdW0gdG90YWwgbGVuZ3RoIG9mIGEgZG9tYWluIG5hbWUgb3IgbnVtYmVyIGlzIDI1NSBvY3RldHMuDQogICAgICBlbHNlaWYgIChzdHJsZW4oJHBhcnNlZGF0YVtJU0VNQUlMX0NPTVBPTkVOVF9ET01BSU5dKSA+IDI1NSkNCiAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuX3N0YXR1c1tdICA9IElTRU1BSUxfUkZDNTMyMl9ET01BSU5fVE9PTE9ORzsNCiAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjEjc2VjdGlvbi00LjEuMg0KICAgICAgLy8gICBGb3J3YXJkLXBhdGggICA9IFBhdGgNCiAgICAgIC8vDQogICAgICAvLyAgIFBhdGggICAgICAgICAgID0gIjwiIFsgQS1kLWwgIjoiIF0gTWFpbGJveCAiPiINCiAgICAgIC8vDQogICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC41LjMuMS4zDQogICAgICAvLyAgIFRoZSBtYXhpbXVtIHRvdGFsIGxlbmd0aCBvZiBhIHJldmVyc2UtcGF0aCBvciBmb3J3YXJkLXBhdGggaXMgMjU2DQogICAgICAvLyAgIG9jdGV0cyAoaW5jbHVkaW5nIHRoZSBwdW5jdHVhdGlvbiBhbmQgZWxlbWVudCBzZXBhcmF0b3JzKS4NCiAgICAgIC8vDQogICAgICAvLyBUaHVzLCBldmVuIHdpdGhvdXQgKG9ic29sZXRlKSByb3V0aW5nIGluZm9ybWF0aW9uLCB0aGUgTWFpbGJveCBjYW4NCiAgICAgIC8vIG9ubHkgYmUgMjU0IGNoYXJhY3RlcnMgbG9uZy4gVGhpcyBpcyBjb25maXJtZWQgYnkgdGhpcyB2ZXJpZmllZA0KICAgICAgLy8gZXJyYXR1bSB0byBSRkMgMzY5NjoNCiAgICAgIC8vDQogICAgICAvLyBodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YV9zZWFyY2gucGhwP3JmYz0zNjk2JmVpZD0xNjkwDQogICAgICAvLyAgIEhvd2V2ZXIsIHRoZXJlIGlzIGEgcmVzdHJpY3Rpb24gaW4gUkZDIDI4MjEgb24gdGhlIGxlbmd0aCBvZiBhbg0KICAgICAgLy8gICBhZGRyZXNzIGluIE1BSUwgYW5kIFJDUFQgY29tbWFuZHMgb2YgMjU0IGNoYXJhY3RlcnMuICBTaW5jZSBhZGRyZXNzZXMNCiAgICAgIC8vICAgdGhhdCBkbyBub3QgZml0IGluIHRob3NlIGZpZWxkcyBhcmUgbm90IG5vcm1hbGx5IHVzZWZ1bCwgdGhlIHVwcGVyDQogICAgICAvLyAgIGxpbWl0IG9uIGFkZHJlc3MgbGVuZ3RocyBzaG91bGQgbm9ybWFsbHkgYmUgY29uc2lkZXJlZCB0byBiZSAyNTQuDQogICAgICBlbHNlaWYgIChzdHJsZW4oJHBhcnNlZGF0YVtJU0VNQUlMX0NPTVBPTkVOVF9MT0NBTFBBUlRdIC4gSVNFTUFJTF9TVFJJTkdfQVQgLiAkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl0pID4gMjU0KQ0KICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gID0gSVNFTUFJTF9SRkM1MzIyX1RPT0xPTkc7DQogICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMDM1I3NlY3Rpb24tMi4zLjQNCiAgICAgIC8vIGxhYmVscyAgICAgICAgICA2MyBvY3RldHMgb3IgbGVzcw0KICAgICAgZWxzZWlmICgkZWxlbWVudF9sZW4gPiA2MykgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjJfTEFCRUxfVE9PTE9ORzsNCiAgICB9DQoNCiAgICAvLyBDaGVjayBETlM/DQogICAgJGRuc19jaGVja2VkID0gZmFsc2U7DQoNCiAgICBpZiAoJGNoZWNrRE5TICYmICgoaW50KSBtYXgoJHJldHVybl9zdGF0dXMpIDwgSVNFTUFJTF9ETlNXQVJOKSAmJiBmdW5jdGlvbl9leGlzdHMoJ2Ruc19nZXRfcmVjb3JkJykpIHsNCiAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjEjc2VjdGlvbi0yLjMuNQ0KICAgICAgLy8gICBOYW1lcyB0aGF0IGNhbg0KICAgICAgLy8gICBiZSByZXNvbHZlZCB0byBNWCBSUnMgb3IgYWRkcmVzcyAoaS5lLiwgQSBvciBBQUFBKSBSUnMgKGFzIGRpc2N1c3NlZA0KICAgICAgLy8gICBpbiBTZWN0aW9uIDUpIGFyZSBwZXJtaXR0ZWQsIGFzIGFyZSBDTkFNRSBSUnMgd2hvc2UgdGFyZ2V0cyBjYW4gYmUNCiAgICAgIC8vICAgcmVzb2x2ZWQsIGluIHR1cm4sIHRvIE1YIG9yIGFkZHJlc3MgUlJzLg0KICAgICAgLy8NCiAgICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjEjc2VjdGlvbi01LjENCiAgICAgIC8vICAgVGhlIGxvb2t1cCBmaXJzdCBhdHRlbXB0cyB0byBsb2NhdGUgYW4gTVggcmVjb3JkIGFzc29jaWF0ZWQgd2l0aCB0aGUNCiAgICAgIC8vICAgbmFtZS4gIElmIGEgQ05BTUUgcmVjb3JkIGlzIGZvdW5kLCB0aGUgcmVzdWx0aW5nIG5hbWUgaXMgcHJvY2Vzc2VkIGFzDQogICAgICAvLyAgIGlmIGl0IHdlcmUgdGhlIGluaXRpYWwgbmFtZS4gLi4uIElmIGFuIGVtcHR5IGxpc3Qgb2YgTVhzIGlzIHJldHVybmVkLA0KICAgICAgLy8gICB0aGUgYWRkcmVzcyBpcyB0cmVhdGVkIGFzIGlmIGl0IHdhcyBhc3NvY2lhdGVkIHdpdGggYW4gaW1wbGljaXQgTVgNCiAgICAgIC8vICAgUlIsIHdpdGggYSBwcmVmZXJlbmNlIG9mIDAsIHBvaW50aW5nIHRvIHRoYXQgaG9zdC4NCiAgICAgIC8vDQogICAgICAvLyBpc19lbWFpbCgpIGF1dGhvcidzIG5vdGU6IFdlIHdpbGwgcmVnYXJkIHRoZSBleGlzdGVuY2Ugb2YgYSBDTkFNRSB0byBiZQ0KICAgICAgLy8gc3VmZmljaWVudCBldmlkZW5jZSBvZiB0aGUgZG9tYWluJ3MgZXhpc3RlbmNlLiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucw0KICAgICAgLy8gd2Ugd2lsbCBub3QgcmVwZWF0IHRoZSBETlMgbG9va3VwIGZvciB0aGUgQ05BTUUncyB0YXJnZXQsIGJ1dCB3ZSB3aWxsDQogICAgICAvLyByYWlzZSBhIHdhcm5pbmcgYmVjYXVzZSB3ZSBkaWRuJ3QgaW1tZWRpYXRlbHkgZmluZCBhbiBNWCByZWNvcmQuDQogICAgICBpZiAoJGVsZW1lbnRfY291bnQgPT09IDApICRwYXJzZWRhdGFbSVNFTUFJTF9DT01QT05FTlRfRE9NQUlOXSAuPSAnLic7ICAgIC8vIENoZWNraW5nIFRMRCBETlMgc2VlbXMgdG8gd29yayBvbmx5IGlmIHlvdSBleHBsaWNpdGx5IGNoZWNrIGZyb20gdGhlIHJvb3QNCg0KICAgICAgJHJlc3VsdCA9IEBkbnNfZ2V0X3JlY29yZCgkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl0sIEROU19NWCk7ICAvLyBOb3QgdXNpbmcgY2hlY2tkbnNyciBiZWNhdXNlIG9mIGEgc3VzcGVjdGVkIGJ1ZyBpbiBQSFAgNS4zIChodHRwOi8vYnVncy5waHAubmV0L2J1Zy5waHA/aWQ9NTE4NDQpDQoNCiAgICAgIGlmICgoaXNfYm9vbCgkcmVzdWx0KSAmJiAhKGJvb2wpICRyZXN1bHQpKQ0KICAgICAgICAkcmV0dXJuX3N0YXR1c1tdID0gSVNFTUFJTF9ETlNXQVJOX05PX1JFQ09SRDsgICAgICAvLyBEb21haW4gY2FuJ3QgYmUgZm91bmQgaW4gRE5TDQogICAgICBlbHNlIHsNCiAgICAgICAgaWYgKGNvdW50KCRyZXN1bHQpID09PSAwKSB7DQogICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX0ROU1dBUk5fTk9fTVhfUkVDT1JEOyAgICAvLyBNWC1yZWNvcmQgZm9yIGRvbWFpbiBjYW4ndCBiZSBmb3VuZA0KICAgICAgICAgICRyZXN1bHQgICAgICA9IEBkbnNfZ2V0X3JlY29yZCgkcGFyc2VkYXRhW0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl0sIEROU19BICsgRE5TX0NOQU1FKTsNCg0KICAgICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA9PT0gMCkNCiAgICAgICAgICAgICRyZXR1cm5fc3RhdHVzW10gPSBJU0VNQUlMX0ROU1dBUk5fTk9fUkVDT1JEOyAgICAvLyBObyB1c2FibGUgcmVjb3JkcyBmb3IgdGhlIGRvbWFpbiBjYW4gYmUgZm91bmQNCiAgICAgICAgfSBlbHNlICRkbnNfY2hlY2tlZCA9IHRydWU7DQogICAgICB9DQogICAgfQ0KDQogICAgLy8gQ2hlY2sgZm9yIFRMRCBhZGRyZXNzZXMNCiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgIC8vIFRMRCBhZGRyZXNzZXMgYXJlIHNwZWNpZmljYWxseSBhbGxvd2VkIGluIFJGQyA1MzIxIGJ1dCB0aGV5IGFyZQ0KICAgIC8vIHVudXN1YWwgdG8gc2F5IHRoZSBsZWFzdC4gV2Ugd2lsbCBhbGxvY2F0ZSBhIHNlcGFyYXRlDQogICAgLy8gc3RhdHVzIHRvIHRoZXNlIGFkZHJlc3NlcyBvbiB0aGUgYmFzaXMgdGhhdCB0aGV5IGFyZSBtb3JlIGxpa2VseQ0KICAgIC8vIHRvIGJlIHR5cG9zIHRoYW4gZ2VudWluZSBhZGRyZXNzZXMgKHVubGVzcyB3ZSd2ZSBhbHJlYWR5DQogICAgLy8gZXN0YWJsaXNoZWQgdGhhdCB0aGUgZG9tYWluIGRvZXMgaGF2ZSBhbiBNWCByZWNvcmQpDQogICAgLy8NCiAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tMi4zLjUNCiAgICAvLyAgIEluIHRoZSBjYXNlDQogICAgLy8gICBvZiBhIHRvcC1sZXZlbCBkb21haW4gdXNlZCBieSBpdHNlbGYgaW4gYW4gZW1haWwgYWRkcmVzcywgYSBzaW5nbGUNCiAgICAvLyAgIHN0cmluZyBpcyB1c2VkIHdpdGhvdXQgYW55IGRvdHMuICBUaGlzIG1ha2VzIHRoZSByZXF1aXJlbWVudCwNCiAgICAvLyAgIGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbCBiZWxvdywgdGhhdCBvbmx5IGZ1bGx5LXF1YWxpZmllZCBkb21haW4NCiAgICAvLyAgIG5hbWVzIGFwcGVhciBpbiBTTVRQIHRyYW5zYWN0aW9ucyBvbiB0aGUgcHVibGljIEludGVybmV0LA0KICAgIC8vICAgcGFydGljdWxhcmx5IGltcG9ydGFudCB3aGVyZSB0b3AtbGV2ZWwgZG9tYWlucyBhcmUgaW52b2x2ZWQuDQogICAgLy8NCiAgICAvLyBUTEQgZm9ybWF0DQogICAgLy8gLS0tLS0tLS0tLQ0KICAgIC8vIFRoZSBmb3JtYXQgb2YgVExEcyBoYXMgY2hhbmdlZCBhIG51bWJlciBvZiB0aW1lcy4gVGhlIHN0YW5kYXJkcw0KICAgIC8vIHVzZWQgYnkgSUFOQSBoYXZlIGJlZW4gbGFyZ2VseSBpZ25vcmVkIGJ5IElDQU5OLCBsZWFkaW5nIHRvDQogICAgLy8gY29uZnVzaW9uIG92ZXIgdGhlIHN0YW5kYXJkcyBiZWluZyBmb2xsb3dlZC4gVGhlc2UgYXJlIG5vdCBkZWZpbmVkDQogICAgLy8gYW55d2hlcmUsIGV4Y2VwdCBhcyBhIGdlbmVyYWwgY29tcG9uZW50IG9mIGEgRE5TIGhvc3QgbmFtZSAoYSBsYWJlbCkuDQogICAgLy8gSG93ZXZlciwgdGhpcyBjb3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIDEyMy4xMjMuMTIzLjEyMyBiZWluZyBhDQogICAgLy8gdmFsaWQgRE5TIG5hbWUgKHJhdGhlciB0aGFuIGFuIElQIGFkZHJlc3MpIGFuZCB0aGVyZWJ5IGNyZWF0aW5nDQogICAgLy8gYW4gYW1iaWd1aXR5LiBUaGUgbW9zdCBhdXRob3JpdGF0aXZlIHN0YXRlbWVudCBvbiBUTEQgZm9ybWF0cyB0aGF0DQogICAgLy8gdGhlIGF1dGhvciBjYW4gZmluZCBpcyBpbiBhIChyZWplY3RlZCEpIGVycmF0dW0gdG8gUkZDIDExMjMNCiAgICAvLyBzdWJtaXR0ZWQgYnkgSm9obiBLbGVuc2luLCB0aGUgYXV0aG9yIG9mIFJGQyA1MzIxOg0KICAgIC8vDQogICAgLy8gaHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9lcnJhdGFfc2VhcmNoLnBocD9yZmM9MTEyMyZlaWQ9MTM1Mw0KICAgIC8vICAgSG93ZXZlciwgYSB2YWxpZCBob3N0IG5hbWUgY2FuIG5ldmVyIGhhdmUgdGhlIGRvdHRlZC1kZWNpbWFsDQogICAgLy8gICBmb3JtICMuIy4jLiMsIHNpbmNlIHRoaXMgY2hhbmdlIGRvZXMgbm90IHBlcm1pdCB0aGUgaGlnaGVzdC1sZXZlbA0KICAgIC8vICAgY29tcG9uZW50IGxhYmVsIHRvIHN0YXJ0IHdpdGggYSBkaWdpdCBldmVuIGlmIGl0IGlzIG5vdCBhbGwtbnVtZXJpYy4NCiAgICBpZiAoISRkbnNfY2hlY2tlZCAmJiAoKGludCkgbWF4KCRyZXR1cm5fc3RhdHVzKSA8IElTRU1BSUxfRE5TV0FSTikpIHsNCiAgICAgIGlmICAoJGVsZW1lbnRfY291bnQgID09PSAwKSAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjFfVExEOw0KDQogICAgICBpZiAgKGlzX251bWVyaWMoJGF0b21saXN0W0lTRU1BSUxfQ09NUE9ORU5UX0RPTUFJTl1bJGVsZW1lbnRfY291bnRdWzBdKSkNCiAgICAgICAgICAgICAgJHJldHVybl9zdGF0dXNbXSAgPSBJU0VNQUlMX1JGQzUzMjFfVExETlVNRVJJQzsNCiAgICB9DQoNCiAgICAkcmV0dXJuX3N0YXR1cyAgICA9IGFycmF5X3VuaXF1ZSgkcmV0dXJuX3N0YXR1cyk7DQogICAgJGZpbmFsX3N0YXR1cyAgICA9IChpbnQpIG1heCgkcmV0dXJuX3N0YXR1cyk7DQoNCiAgICBpZiAoY291bnQoJHJldHVybl9zdGF0dXMpICE9PSAxKSBhcnJheV9zaGlmdCgkcmV0dXJuX3N0YXR1cyk7IC8vIHJlbW92ZSByZWR1bmRhbnQgSVNFTUFJTF9WQUxJRA0KDQogICAgJHBhcnNlZGF0YVsnc3RhdHVzJ10gID0gJHJldHVybl9zdGF0dXM7DQoNCiAgICBpZiAoJGZpbmFsX3N0YXR1cyA8ICR0aHJlc2hvbGQpICRmaW5hbF9zdGF0dXMgPSBJU0VNQUlMX1ZBTElEOw0KDQogICAgcmV0dXJuICgkZGlhZ25vc2UpID8gJGZpbmFsX3N0YXR1cyA6ICgkZmluYWxfc3RhdHVzIDwgSVNFTUFJTF9USFJFU0hPTEQpOw0KICB9DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.fb_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KKiBGb3JtQnVpbGRlciBjb25maWcgY2xhc3MNCiogdXNlcyBSZWdpc3RyeSBhbmQgU2luZ2xldG9uIGRlc2lnbiBwYXR0ZXJucw0KKiBJbXBsZW1lbnRzIEFycmF5QWNjZXNzDQoqDQoqIEB2ZXJzaW9uIDEuMA0KKiBAYXV0aG9yIEpvIE1vcmcNCiovDQpjbGFzcyBmYl9jb25maWcgaW1wbGVtZW50cyBBcnJheUFjY2Vzcw0Kew0KICANCiAgLyoqDQogICogQGFjY2VzcyBwcml2YXRlDQogICovDQogIHByaXZhdGUgc3RhdGljICRfZGF0YSA9IGFycmF5KCk7DQogICANCiAgLyoqDQogICogVGhlIGluc3RhbmNlIG9mIHRoZSByZWdpc3RyeQ0KICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAqLw0KICBwcml2YXRlIHN0YXRpYyAkX2luc3RhbmNlOw0KICANCiAgLyoqDQogICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGl0IGJlaW5nIGNyZWF0ZWQgZGlyZWN0bHkNCiAgKiBAYWNjZXNzIHByaXZhdGUNCiAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe30NCiAgICANCiAgLyoqDQogICogR2V0SW5zdGFuY2UgbWV0aG9kIHVzZWQgdG8gYWNjZXNzIHRoZSBvYmplY3QNCiAgKiBAYWNjZXNzIHB1YmxpYw0KICAqIEByZXR1cm4gDQogICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0SW5zdGFuY2UoKQ0KICB7DQogICAgaWYoICFpc3NldChzZWxmOjokX2luc3RhbmNlKSApDQogICAgew0KICAgICAgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyBzZWxmOw0KICAgICAgJHJvb3RkaXIgPSBkaXJuYW1lKCAgZGlybmFtZSggIGRpcm5hbWUoIGRpcm5hbWUoX19GSUxFX18pICkgKSApOw0KICAgICAgDQogICAgICAkY21zbXNfY25mX2ZpbGUgPSBjbXNfam9pbl9wYXRoKCRyb290ZGlyICwgJ2NvbmZpZy5waHAnICk7ICAgDQogICAgICBpbmNsdWRlKCRjbXNtc19jbmZfZmlsZSk7DQogICAgICANCiAgICAgICRmaWxlID0gY21zX2pvaW5fcGF0aCggZGlybmFtZSggZGlybmFtZShfX0ZJTEVfXykgKSwgJ2luY2x1ZGVzJywgJ2ZiX2NuZi5pbmMnICk7DQogICAgICBpbmNsdWRlKCRmaWxlKTsgDQogICAgICANCiAgICAgIHNlbGY6OiRfZGF0YSA9IGFycmF5X21lcmdlKCRjb25maWcsICRmYmNmZyk7DQogICAgICANCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2U7DQogIH0NCiAgDQogIC8qKg0KICAqIHByZXZlbnQgY2xvbmluZyBvZiB0aGUgb2JqZWN0OiBpc3N1ZXMgYW4gRV9VU0VSX0VSUk9SIGlmIHRoaXMgaXMgYXR0ZW1wdGVkDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBfX2Nsb25lKCkNCiAgew0KICAgIHRyaWdnZXJfZXJyb3IoICdDbG9uaW5nIHRoZSByZWdpc3RyeSBpcyBub3QgcGVybWl0dGVkJywgRV9VU0VSX0VSUk9SICk7DQogIH0NCiAgDQogIC8qKg0KICAqIEdldCBhIGRhdGEgYnkga2V5DQogICoNCiAgKiBAcGFyYW0gc3RyaW5nIFRoZSBrZXkgZGF0YSB0byByZXRyaWV2ZQ0KICAqIEBhY2Nlc3MgcHVibGljDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiAmX19nZXQgKCRrZXkpIA0KICB7DQogICAgcmV0dXJuIHNlbGY6OiRfZGF0YVska2V5XTsNCiAgfQ0KDQogIC8qKg0KICAqIEFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIGRhdGENCiAgKg0KICAqIEBwYXJhbSBzdHJpbmcgVGhlIGRhdGEga2V5IHRvIGFzc2lnbiB0aGUgdmFsdWUgdG8NCiAgKiBAcGFyYW0gbWl4ZWQgIFRoZSB2YWx1ZSB0byBzZXQNCiAgKiBAYWNjZXNzIHB1YmxpYw0KICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwgJHZhbHVlKSANCiAgew0KICAgICNzZWxmOjokX2RhdGFbJGtleV0gPSAkdmFsdWU7DQogICAgdHJpZ2dlcl9lcnJvciggJ1JlYWQgT25seScsIEVfVVNFUl9FUlJPUiApOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpIA0KICB7DQogICAgcmV0dXJuIGlzc2V0KHNlbGY6OiRfZGF0YVska2V5XSk7DQogIH0NCg0KICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgka2V5KSANCiAgIHsNCiAgICAgIGlmKGlzc2V0KHNlbGY6OiRfZGF0YVska2V5XSkpIA0KICAgICAgew0KICAgICAgICAgcmV0dXJuIHNlbGY6OiRfZGF0YVska2V5XTsNCiAgICAgIH0NCg0KICAgICAgcmV0dXJuIG51bGw7DQogICB9DQoNCiAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGtleSwgJHZhbHVlKSANCiAgIHsNCiAgICAgICNyZXR1cm4gc2VsZjo6JF9kYXRhWyRrZXldID0gJHZhbHVlOw0KICAgICAgdHJpZ2dlcl9lcnJvciggJ1JlYWQgT25seScsIEVfVVNFUl9FUlJPUiApOw0KICAgfQ0KDQogICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkgDQogICB7DQogICAgICAjdW5zZXQoc2VsZjo6JF9kYXRhWyRrZXldKTsNCiAgICAgIHRyaWdnZXJfZXJyb3IoICdSZWFkIE9ubHknLCBFX1VTRVJfRVJST1IgKTsNCiAgIH0NCiAgIA0KICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXQoJGtleSkNCiAgew0KICAgIGlmKCBzZWxmOjpleGlzdHMoJGtleSkgKQ0KICAgIHsNCiAgICAgIHJldHVybiBzZWxmOjokX2RhdGFbJGtleV07DQogICAgfQ0KICB9DQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXQoJGtleSwgJHZhbHVlKQ0KICB7DQogICAgLyoNCiAgICBpZiggIWVtcHR5KCRrZXkpICkNCiAgICB7DQogICAgICBzZWxmOjokX2RhdGFbJGtleV0gPSAkdmFsdWU7DQogICAgfQ0KICAgICovDQogICAgdHJpZ2dlcl9lcnJvciggJ1JlYWQgT25seScsIEVfVVNFUl9FUlJPUiApOw0KICB9DQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlcmFzZSgka2V5KQ0KICB7DQogICAgLyoNCiAgICBpZiggc2VsZjo6ZXhpc3RzKCRrZXkpICkNCiAgICB7DQogICAgICB1bnNldChzZWxmOjokX2RhdGFbJGtleV0pOw0KICAgIH0NCiAgICAqLw0KICAgIHRyaWdnZXJfZXJyb3IoICdSZWFkIE9ubHknLCBFX1VTRVJfRVJST1IgKTsNCiAgfQ0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.formbuilder_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmNsYXNzIGZvcm1idWlsZGVyX3V0aWxzDQp7DQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfQ01TMigpDQogIHsNCiAgICByZXR1cm4gdmVyc2lvbl9jb21wYXJlKCcxLjk5OS45OTkuOTk5JywgQ01TX1ZFUlNJT04sICc8Jyk7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX2lucHV0X3RleHQoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLCAkbmFtZSwgJHZhbHVlPScnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2l6ZT0nMTAnLCAkbWF4bGVuZ3RoPScyNTUnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRkdHRleHQ9JycsICR0eXBlPSd0ZXh0JywgJHJlcXVpcmVkPWZhbHNlLCAkbj1udWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICB7DQogICAgJGlkID0gY21zX2h0bWxlbnRpdGllcygkaWQpOw0KICAgICRuYW1lID0gY21zX2h0bWxlbnRpdGllcygkbmFtZSk7DQogICAgJGNzc2lkID0gJG5hbWU7DQogICAgDQogICAgaWYoaW50dmFsKCRuKSkNCiAgICB7DQogICAgICAkY3NzaWQgLj0gJ18nIC4gaW50dmFsKCRuKTsNCiAgICB9DQogICAgDQogICAgJHZhbHVlID0gaHRtbHNwZWNpYWxjaGFycygkdmFsdWUpOw0KICAgICRzaXplID0gY21zX2h0bWxlbnRpdGllcygkc2l6ZSk7DQogICAgJG1heGxlbmd0aCA9IGNtc19odG1sZW50aXRpZXMoJG1heGxlbmd0aCk7DQoNCiAgICAkdGV4dCA9ICc8aW5wdXQgdHlwZT0iJyAuICR0eXBlIC4gJyIgY2xhc3M9ImNtc18nIC4gJHR5cGUNCiAgICAgICAgICAgIC4gJyIgbmFtZT0iJyAuICRpZC4kbmFtZSAuICciIGlkPSInIC4gJGNzc2lkIC4gJyIgdmFsdWU9IicgLiAkdmFsdWUgLiAnIiBzaXplPSInIC4gJHNpemUgDQogICAgICAgICAgICAuICciIG1heGxlbmd0aD0iJy4kbWF4bGVuZ3RoLiciJzsNCiAgICAgICAgICAgIA0KICAgIGlmICgkYWRkdHRleHQgIT0gJycpDQogICAgew0KICAgICAgJHRleHQgLj0gJyAnLiRhZGR0dGV4dDsNCiAgICB9DQogICAgDQogICAgaWYgKCRyZXF1aXJlZCkNCiAgICB7DQogICAgICAkdGV4dCAuPSAnIHJlcXVpcmVkPSJyZXF1aXJlZCInOw0KICAgIH0NCiAgICANCiAgICAkdGV4dCAuPSAiIC8+XG4iOw0KICAgIHJldHVybiAkdGV4dDsNCiAgfQ0KDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX2lucHV0X2NoZWNrYm94KCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJHNlbGVjdGVkdmFsdWU9JycsICRhZGR0dGV4dD0nJywgJG49bnVsbCkNCiAgew0KICAgICRpZCA9IGNtc19odG1sZW50aXRpZXMoJGlkKTsNCiAgICAkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoJG5hbWUpOw0KICANCiAgICAkY3NzaWQgPSAkbmFtZTsNCiAgICBpZihpbnR2YWwoJG4pKQ0KICAgIHsNCiAgICAgICRjc3NpZCAuPSAnXycgLiBpbnR2YWwoJG4pOw0KICAgIH0NCiAgICAkdmFsdWUgPSBjbXNfaHRtbGVudGl0aWVzKCR2YWx1ZSk7DQogICAgJHNlbGVjdGVkdmFsdWUgPSBjbXNfaHRtbGVudGl0aWVzKCRzZWxlY3RlZHZhbHVlKTsNCg0KICAgICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImNtc19jaGVja2JveCIgbmFtZT0iJy4kaWQuJG5hbWUuJyIgaWQ9IicuJGNzc2lkLiciIHZhbHVlPSInLiR2YWx1ZS4nIic7DQogICAgaWYgKCRzZWxlY3RlZHZhbHVlID09ICR2YWx1ZSkNCiAgICB7DQogICAgICAkdGV4dCAuPSAnICcgLiAnY2hlY2tlZD0iY2hlY2tlZCInOw0KICAgIH0NCiAgICBpZiAoJGFkZHR0ZXh0ICE9ICcnKQ0KICAgIHsNCiAgICAgICR0ZXh0IC49ICcgJy4kYWRkdHRleHQ7DQogICAgfQ0KICAgICR0ZXh0IC49ICIgLz5cbiI7DQogICAgcmV0dXJuICR0ZXh0Ow0KICB9DQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVfbGFiZWwoJGlkLCAkbmFtZSwgJGxhYmVsdGV4dD0nJywgJGFkZHR0ZXh0PScnKQ0KICB7DQogICAgJHRleHQgPSAnPGxhYmVsIGNsYXNzPSJjbXNfbGFiZWwiIGZvcj0iJy4kbmFtZS4nIic7DQogICAgaWYgKCRhZGR0dGV4dCAhPSAnJykNCiAgICB7DQogICAgICAkdGV4dCAuPSAnICcgLiAkYWRkdHRleHQ7DQogICAgfQ0KICAgICR0ZXh0IC49ICc+Jy4kbGFiZWx0ZXh0Lic8L2xhYmVsPicuIlxuIjsNCiAgICByZXR1cm4gJHRleHQ7DQogIH0NCg0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZV90ZXh0YXJlYSgkZW5hYmxld3lzaXd5ZywgJGlkLCAkbmFtZSwgJHRleHQsICRjb2xzPSc4MCcsICRyb3dzPScxNScsICRhZGR0ZXh0PScnLCAkcmVxdWlyZWQ9ZmFsc2UpDQogIHsNCiAgICBpZigkcmVxdWlyZWQpDQogICAgew0KICAgICAgJGFkZHRleHQgLj0gJyByZXF1aXJlZD0icmVxdWlyZWQiJzsNCiAgICB9DQogICAgcmV0dXJuIGNyZWF0ZV90ZXh0YXJlYSgkZW5hYmxld3lzaXd5ZywgJHRleHQsICRpZC4kbmFtZSwgJ2Ntc190ZXh0YXJlYScsICRuYW1lLCAnJywgJycsICRjb2xzLCAkcm93cywgJycsICcnLCRhZGR0ZXh0KTsNCiAgfQ0KDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX2lucHV0X2Ryb3Bkb3duKCRpZCwgJG5hbWUsICRpdGVtcywgJHNlbGVjdGVkaW5kZXgsICRzZWxlY3RlZHZhbHVlLCAkYWRkdHRleHQ9JycsICRyZXF1aXJlZD1mYWxzZSkNCiAgew0KICAgICRpZCA9IGNtc19odG1sZW50aXRpZXMoJGlkKTsNCiAgICAkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoJG5hbWUpOw0KICAgICRzZWxlY3RlZGluZGV4ID0gY21zX2h0bWxlbnRpdGllcygkc2VsZWN0ZWRpbmRleCk7DQogICAgJHNlbGVjdGVkdmFsdWUgPSBjbXNfaHRtbGVudGl0aWVzKCRzZWxlY3RlZHZhbHVlKTsNCg0KICAgICR0ZXh0ID0gJzxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biIgbmFtZT0iJy4kaWQuJG5hbWUuJyIgaWQ9IicuJG5hbWUuJyInOw0KICAgIGlmKCFlbXB0eSgkYWRkdHRleHQpKQ0KICAgIHsNCiAgICAgICR0ZXh0IC49ICcgJyAuICRhZGR0dGV4dDsNCiAgICB9DQogICAgaWYoJHJlcXVpcmVkKQ0KICAgIHsNCiAgICAgICR0ZXh0IC49ICcgcmVxdWlyZWQ9InJlcXVpcmVkIic7DQogICAgfQ0KICAgICR0ZXh0IC49ICc+JzsNCiAgICAkY291bnQgPSAwOw0KICAgIGlmIChpc19hcnJheSgkaXRlbXMpICYmIGNvdW50KCRpdGVtcykgPiAwKQ0KICAgIHsNCiAgICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAka2V5PT4kdmFsdWUpDQogICAgICB7DQogICAgICAgICR0ZXh0IC49ICc8b3B0aW9uIHZhbHVlPSInLiR2YWx1ZS4nIic7DQogICAgICAgIGlmICgkc2VsZWN0ZWRpbmRleCA9PSAkY291bnQgfHwgJHNlbGVjdGVkdmFsdWUgPT0gJHZhbHVlKQ0KICAgICAgICB7DQogICAgICAgICAgJHRleHQgLj0gJyAnIC4gJ3NlbGVjdGVkPSJzZWxlY3RlZCInOw0KICAgICAgICB9DQogICAgICAgICR0ZXh0IC49ICc+JzsNCiAgICAgICAgJHRleHQgLj0gJGtleTsNCiAgICAgICAgJHRleHQgLj0gJzwvb3B0aW9uPic7DQogICAgICAgICRjb3VudCsrOw0KICAgICAgfQ0KICAgIH0NCiAgICAkdGV4dCAuPSAnPC9zZWxlY3Q+Jy4iXG4iOw0KDQogICAgcmV0dXJuICR0ZXh0Ow0KICB9ICANCn0NCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkZmxkcyA9ICIKCQkJZm9ybV9pZCBJIEtFWSwKCQkJbmFtZSBDKDI1NSksCgkJCWFsaWFzIEMoMjU1KQoJCSI7CgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX3NlcScpOwoJCSRkYi0+RXhlY3V0ZSgnQ1JFQVRFIFVOSVFVRSBJTkRFWCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1faWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSAoYWxpYXMpJyk7CgkJCgkJJGZsZHMgPSAiCgkJCWZvcm1fYXR0cl9pZCBJIEtFWSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1faWQpJyk7CgoJCSRmbGRzID0gIgoJCQlmaWVsZF9pZCBJIEtFWSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMjU1KSwKCQkJdHlwZSBDKDUwKSwKCQkJdmFsaWRhdGlvbl90eXBlIEMoNTApLAoJCQlyZXF1aXJlZCBJMSwKCQkJaGlkZV9sYWJlbCBJMSwKCQkJb3JkZXJfYnkgSQoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQgKGZvcm1faWQpJyk7CgoKCQkkZmxkcyA9ICIKCQkJb3B0aW9uX2lkIEkgS0VZLAoJCQlmaWVsZF9pZCBJLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygyNTUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0JywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHQgKGZpZWxkX2lkLGZvcm1faWQpJyk7CgoJCSRmbGRzID0gIgoJCQlmbG9ja19pZCBJIEtFWSwKCQkJZmxvY2sgVAoJCSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jaycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJZmV1c2VyX2lkIEksCgkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfYXR0cl9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfdmFsX2lkIEkgS0VZLAoJCQlyZXNwX2lkIEksCgkJCWZpZWxkX2lkIEksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXNlbnRfaWQgSSBLRVksCgkJCXNyY19pcCBDKDE2KSwKCQkJc2VudF90aW1lICIuQ01TX0FET0RCX0RUOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoKCQkkZmxkcyA9ICIKCQkJCWZicl9pZCBJIEtFWSwKCQkJCWZvcm1faWQgSSwKCQkJCWluZGV4X2tleV8xIEMoODApLAoJCQkJaW5kZXhfa2V5XzIgQyg4MCksCgkJCQlpbmRleF9rZXlfMyBDKDgwKSwKCQkJCWluZGV4X2tleV80IEMoODApLAoJCQkJaW5kZXhfa2V5XzUgQyg4MCksCgkJCQlmZXVpZCBJLAoJCQkJcmVzcG9uc2UgWEwsCgkJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzZWNyZXRfY29kZSBDKDM1KSwKCQkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl91bmlxdWVmaWVsZF9zZXEnKTsKCgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBGb3JtcycsICdNb2RpZnkgRm9ybXMnKTsKCgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5JyApOwoJCSR0aGlzLT5DcmVhdGVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InICk7CgoJCSRjc3MgPSBmaWxlX2dldF9jb250ZW50cyhjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAnaW5jbHVkZXMnLCdkZWZhdWx0LmNzcycpKTsKCQkkY3NzX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ2Nzc19zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2luc2VydCBpbnRvICcuY21zX2RiX3ByZWZpeCgpLidjc3MgKGNzc19pZCwgY3NzX25hbWUsIGNzc190ZXh0LCBtZWRpYV90eXBlLCBjcmVhdGVfZGF0ZSkgdmFsdWVzICg/LD8sPyw/LD8pJywKCQkJYXJyYXkoJGNzc19pZCwnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScsJGNzcywnc2NyZWVuJyxkYXRlKCdZLW0tZCcpKSk7CgoJCSRwYXRoID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnaW5jbHVkZXMnKTsKCQkkZGlyPW9wZW5kaXIoJHBhdGgpOwogICAJCXdoaWxlICgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKICAgCQkJewogICAJCQkkcGFyYW1zID0gYXJyYXkoKTsKICAgCQkJJGFlZm9ybSA9ICcnOwogICAgICAgCQlpZiAocHJlZ19tYXRjaCgnLy54bWwkLycsJGZpbGVzcGVjKSA+IDApCiAgICAgICAJCQl7CiAgICAgICAJCQkkcGFyYW1zWydmYnJwX3htbF9maWxlJ10gPSBjbXNfam9pbl9wYXRoKCRwYXRoLCRmaWxlc3BlYyk7CiAgICAgICAJCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCQkkcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwogICAgICAgCQkJfQogICAgICAgCQl9CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9zZXEnKTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0Jyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWwnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZycpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfdmFsX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2dfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsKCQkKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtbGVfdmVyc2lvbicpOwoJCQoJCSRkYi0+RXhlY3V0ZSgnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NzcyBXSEVSRSBjc3NfbmFtZSA9ID8nLCBhcnJheSgnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScpKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgQXV0aG9yOiBTYW11ZWwgR29sZHN0ZWluLCBNb3J0ZW4gUG91bHNlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSAtIDIwMTQgYnkgVGhlIENNU01TIERldiBUZWFtCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzX29iamVjdChAY21zbXMoKSkpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJLy9kZWJ1Z19kaXNwbGF5KCdDdXJyZW50LXZlcnNpb246ICcuJGN1cnJlbnRfdmVyc2lvbik7CgkJc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pCgkJewoJCQljYXNlICIwLjEiOgoJCQljYXNlICIwLjIiOgoJCQljYXNlICIwLjIuMiI6CgkJCWNhc2UgIjAuMi4zIjoKCQkJY2FzZSAiMC4yLjQiOgoJCQkJewoJCQkJJGZsZHMgPSAiCgkJCQkJc2VudF9pZCBJIEtFWSwKCQkJCQlzcmNfaXAgQygxNiksCgkJCQkJc2VudF90aW1lICIuQ01TX0FET0RCX0RUOwoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoJCQkJfQoJCQljYXNlICIwLjMiOgoJCQkgICB7CiAgICAgICAgICAgIC8vIHJlYWQgdGhlIG9sZCB0ZW1wbGF0ZXMKICAgICAgICAgICAgJHRlbXBfdGFiX2xlZnQgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL1JlbmRlckZvcm1UYWJsZVRpdGxlTGVmdC50cGwnKTsKICAgICAgICAgICAgJHRlbXBfdGFiX3RvcCA9IGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvUmVuZGVyRm9ybVRhYmxlVGl0bGVUb3AudHBsJyk7CiAgICAgICAgICAgICR0ZW1wX3RhYl9jc3MgPSAgZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9SZW5kZXJGb3JtQ1NTLnRwbCcpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gdGhpcyB1cGdyYWRlIHNob3VsZCBoYXZlIGEgbG90IG1vcmUgZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gdG9vIGxhenkuCiAgICAgICAgICAgIC8vIFRoYXQncyB0aGUgZG93bnNpZGUgdG8gRnJlZSBzb2Z0d2FyZSA6KAoKICAgICAgICAgICAgLy8gdXBkYXRlIGFsbCBmb3JtcyB0byB1c2UgYSBDdXN0b20gVGVtcGxhdGUKCSAgICAgICAgICRzcWwgPSAnU0VMRUNUIGZvcm1faWQsIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgbmFtZT0nZm9ybV9kaXNwbGF5dHlwZScgYW5kIHZhbHVlIDw+ICd0ZW1wbGF0ZSciOwogICAgICAgICAgICAkc3Vic3FsID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgU0VUIHZhbHVlPT8gd2hlcmUgbmFtZT0nZm9ybV90ZW1wbGF0ZScgYW5kIGZvcm1faWQ9PyI7CgkgICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICBpZiAoJHJvd1sndmFsdWUnXSA9PSAndGFiJykKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAvLyB0b3Agb3IgbGVmdCB0aXRsZT8gQW5vdGhlciBkYW1uIHF1ZXJ5LgogICAgICAgICAgICAgICAgICAkdG9wbGVmdCA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgdmFsdWUgZnJvbSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBuYW1lPSd0aXRsZV9wb3NpdGlvbicgYW5kIGZvcm1faWQ9PyIsCiAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICAgIGlmICgkdG9wbGVmdCA9PSAnbGVmdCcpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCR0ZW1wX3RhYl9sZWZ0LCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZiXycuJHJvd1snZm9ybV9pZCddLCR0ZW1wX3RhYl9sZWZ0KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCR0ZW1wX3RhYl90b3AsJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmJfJy4kcm93Wydmb3JtX2lkJ10sJHRlbXBfdGFiX3RvcCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBlbHNlIGlmICgkcm93Wyd2YWx1ZSddID09ICdjc3Nvbmx5JykKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzdWJzcWwsYXJyYXkoJHRlbXBfdGFiX2Nzcywkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkdGVtcF90YWJfY3NzKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICRjbGVhbnVwc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J3RpdGxlX3Bvc2l0aW9uJyBvciBuYW1lPSdmb3JtX2Rpc3BsYXl0eXBlJyI7CiAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJGNsZWFudXBzcWwpOwogICAgICAgICAgICB9CiAgICAgICAgIGNhc2UgIjAuNCI6CiAgICAgICAgICAgIHsKICAgICAgICAgICAgLy8gdXBncmFkZSB0aGUgdGVtcGxhdGVzIHNvIHRoZXkgYXQgbGVhc3Qgd29yay4KCSAgICAgICAgICRzcWwgPSAnU0VMRUNUIGZvcm1faWQsIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgbmFtZT0nZm9ybV90ZW1wbGF0ZSciOwogICAgICAgICAgICAkc3Vic3FsID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgU0VUIHZhbHVlPT8gd2hlcmUgbmFtZT0nZm9ybV90ZW1wbGF0ZScgYW5kIGZvcm1faWQ9PyI7CiAgICAgICAgICAgICR0ZW1wX25maCA9IGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy9pbmNsdWRlcy9uZXdfZm9ybV9oZWFkZXIudHBsJyk7CiAgICAgICAgICAgICR0ZW1wX25mZiA9IGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy9pbmNsdWRlcy9uZXdfZm9ybV9mb290ZXIudHBsJyk7CgkgICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgJGZpeHRlbXBsID0gJHRlbXBfbmZoLiJ7KiIuJHRoaXMtPkxhbmcoJ3VwZ3JhZGUwM3RvMDQnKS4iKn1cbiIuJHJvd1sndmFsdWUnXS4kdGVtcF9uZmY7CgogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzdWJzcWwsYXJyYXkoJGZpeHRlbXBsLCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZiXycuJHJvd1snZm9ybV9pZCddLCRmaXh0ZW1wbCk7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gZml4IHJvd3MvY29scyBwcm9ibGVtIGZvciBUZXh0QXJlYXMKCSAgICAgICAgICRzcWwgPSAnU0VMRUNUIGZvcm1faWQsIGZpZWxkX2lkLCBuYW1lLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIG5hbWU9J3Jvd3MnIG9yIG5hbWU9J2NvbHMnIjsKICAgICAgICAgICAgJHJvd3MgPSBhcnJheSgpOwogICAgICAgICAgICAkY29scyA9IGFycmF5KCk7CgkgICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICBpZiAoJHJvd1snbmFtZSddID09ICdyb3dzJykKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkY29sc1skcm93Wydmb3JtX2lkJ10uJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gJHJvd1sndmFsdWUnXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHJvd3NbJHJvd1snZm9ybV9pZCddLidfJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkc3FsID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4gJ21vZHVsZV9mYl9maWVsZF9vcHQgc2V0IHZhbHVlPT8gd2hlcmUgZm9ybV9pZD0/IGFuZCBmaWVsZF9pZD0/IGFuZCBuYW1lPT8nOwogICAgICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAka2V5PT4kdmFsKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzUm93ID0gJHZhbDsKICAgICAgICAgICAgICAgJHRoaXNDb2wgPSAkY29sc1ska2V5XTsKICAgICAgICAgICAgICAgbGlzdCgkZm9ybV9pZCwkZmllbGRfaWQpID0gZXhwbG9kZSgnXycsJGtleSk7CiAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkdGhpc1JvdywkZm9ybV9pZCwkZmllbGRfaWQsJ3Jvd3MnKSk7CiAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkdGhpc0NvbCwkZm9ybV9pZCwkZmllbGRfaWQsJ2NvbHMnKSk7CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KCQljYXNlICIwLjQuMSI6CgkJY2FzZSAiMC40LjIiOgoJCWNhc2UgIjAuNC4zIjoKCQljYXNlICIwLjQuNCI6CgkJCXsKCQkJJGZsZHMgPSAiCgkJCQlmYnJfaWQgSSBLRVksCgkJCQlmb3JtX2lkIEksCgkJCQlpbmRleF9rZXlfMSBDKDgwKSwKCQkJCWluZGV4X2tleV8yIEMoODApLAoJCQkJaW5kZXhfa2V5XzMgQyg4MCksCgkJCQlpbmRleF9rZXlfNCBDKDgwKSwKCQkJCWluZGV4X2tleV81IEMoODApLAoJCQkJcmVzcG9uc2UgWCwKCQkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJCXNlY3JldF9jb2RlIEMoMzUpLAoJCQkJYWRtaW5fYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgkJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJCQkKCQkJfQoJCWNhc2UgIjAuNSI6CgkJY2FzZSAiMC41LjEiOgoJCWNhc2UgIjAuNS4yIjoKCQljYXNlICIwLjUuMyI6CgkJCXsKCQkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1faWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtIChhbGlhcyknKTsKCQkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1fYXR0cl9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1fYXR0ciAoZm9ybV9pZCknKTsKCQkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2ZpZWxkX29wdF9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2ZpZWxkX29wdCAoZmllbGRfaWQsZm9ybV9pZCknKTsKCQkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2ZpZWxkX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZmllbGQgKGZvcm1faWQpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3Nlcl9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3NlciAoZm9ybV9pZCxpbmRleF9rZXlfMSxpbmRleF9rZXlfMixpbmRleF9rZXlfMyxpbmRleF9rZXlfNCwgaW5kZXhfa2V5XzUpJyk7CgkJCX0KCQljYXNlICIwLjUuNCI6CgkJY2FzZSAiMC41LjUiOgoJCWNhc2UgIjAuNS42IjoKCQkJewoJCQkkY3NzID0gZmlsZV9nZXRfY29udGVudHMoY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwgJ2luY2x1ZGVzJywnZGVmYXVsdC5jc3MnKSk7CgkJCSRjc3NfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nY3NzX3NlcScpOwoJCQkkZGItPkV4ZWN1dGUoJ2luc2VydCBpbnRvICcuY21zX2RiX3ByZWZpeCgpLidjc3MgKGNzc19pZCwgY3NzX25hbWUsIGNzc190ZXh0LCBtZWRpYV90eXBlLCBjcmVhdGVfZGF0ZSkgdmFsdWVzICg/LD8sPyw/LD8pJywKCQkJCQlhcnJheSgkY3NzX2lkLCdGb3JtQnVpbGRlciBEZWZhdWx0IFN0eWxlJywkY3NzLCdzY3JlZW4nLGRhdGUoJ1ktbS1kJykpKTsKCQkJCgkJCX0KCQljYXNlICIwLjUuNyI6CgkJY2FzZSAiMC41LjgiOgoJCWNhc2UgIjAuNS45IjoKCQljYXNlICIwLjUuMTAiOgoJCWNhc2UgIjAuNS4xMSI6CgkJY2FzZSAiMC41LjEyIjoKCQljYXNlICIwLjZiMSI6CgkJY2FzZSAiMC42YjIiOgogICAgICAgIAkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm1icm93c2VyIiwgImZldWlkIEkiKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm1icm93c2VyIiwgInJlc25ldyBYTCIpOwogICAgICAgIAkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCSRkYi0+RXhlY3V0ZSgndXBkYXRlICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IHJlc25ldz1yZXNwb25zZScpOwoJCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNwb25zZSIpOwogICAgICAgIAkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgICAgIC8vIGFkb2RiLWxpdGUgaG9zZXMgY29sdW1uIHJlbmFtZXMsIHNvIHdlIGRvIGl0IHRoZSBoYXJkIHdheQoJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm1icm93c2VyIiwgInJlc3BvbnNlIFhMIik7CiAgICAgICAgCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJJGRiLT5FeGVjdXRlKCd1cGRhdGUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3NlciBzZXQgcmVzcG9uc2U9cmVzbmV3Jyk7CgkJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm1icm93c2VyIiwgInJlc25ldyIpOwogICAgICAgIAkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgICAgCS8vIHdoZXcuIHRoYXQgd2FzIGxhbWUuCgkJCSRwYXRoID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnaW5jbHVkZXMnKTsKCQkJJHBhcmFtc1snZmJycF94bWxfZmlsZSddID0gY21zX2pvaW5fcGF0aCgkcGF0aCwnQWR2YW5jZWRfQ29udGFjdF9Gb3JtLnhtbCcpOwoJCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCSRyZXMgPSAkYWVmb3JtLT5JbXBvcnRYTUwoJHBhcmFtcyk7CgkJY2FzZSAiMC42IjoKCQljYXNlICIwLjYuMSI6CgkJY2FzZSAiMC42LjIiOgoJCWNhc2UgIjAuNi4zIjoKCQljYXNlICIwLjYuNCI6CgkJY2FzZSAiMC43IjoKCQljYXNlICIwLjcuMSI6CgkJY2FzZSAiMC43LjIiOgoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWxlX3ZlcnNpb24nKTsKCQljYXNlICIwLjgiOgogICAgICAkZGItPkV4ZWN1dGUoJ2Ryb3AgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICAgJ21vZHVsZV9mYl9mb3JtX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAnbW9kdWxlX2ZiX2Zvcm0nKTsKICAgICAgICAgICAKICAgICAgJGRiLT5FeGVjdXRlKCdjcmVhdGUgdW5pcXVlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgICdtb2R1bGVfZmJfZm9ybV9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICAgJ21vZHVsZV9mYl9mb3JtIChhbGlhcyknKTsKCgkJfQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/AddEditField.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKX17JG1lc3NhZ2V9ey9pZn0NCg0KeyRiYWNrdG9mb3JtX25hdn08YnIgLz4NCnskc3RhcnRfZm9ybX17JGZiX2hpZGRlbn17aWYgaXNzZXQoJG9wKX17JG9wfXsvaWZ9eyR0YWJfc3RhcnR9DQp7JG1haW50YWJfc3RhcnR9DQoJe2ZvcmVhY2ggZnJvbT0kbWFpbkxpc3QgaXRlbT1lbnRyeX0NCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRlbnRyeS0+dGl0bGV9OjwvcD4NCgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRlbnRyeS0+aW5wdXR9PC9kaXY+DQoJCQl7aWYgJGVudHJ5LT5oZWxwICE9ICcnfTxkaXYgY2xhc3M9ImlucHV0aGVscCI+eyRlbnRyeS0+aGVscH08L2Rpdj57L2lmfQ0KCQk8L2Rpdj4NCgl7L2ZvcmVhY2h9DQp7JHRhYl9lbmR9DQp7JGFkdmFuY2VkdGFiX3N0YXJ0fQ0KCXtmb3JlYWNoIGZyb209JGFkdkxpc3QgaXRlbT1lbnRyeX0NCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRlbnRyeS0+dGl0bGV9OjwvcD4NCgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRlbnRyeS0+aW5wdXR9PC9kaXY+DQoJCQl7aWYgJGVudHJ5LT5oZWxwICE9ICcnfTxkaXYgY2xhc3M9ImlucHV0aGVscCI+eyRlbnRyeS0+aGVscH08L2Rpdj57L2lmfQ0KCQk8L2Rpdj4NCgl7L2ZvcmVhY2h9DQp7JHRhYl9lbmR9DQp7JHRhYnNfZW5kfQ0Ke2lmICRhZGQgIT0gJycgb3IgJGRlbCAhPSAnJ30NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhZGR9eyRkZWx9PC9wPg0KCTwvZGl2Pg0Key9pZn0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+e2lmIGlzc2V0KCRzdWJtaXQpfXskc3VibWl0fXsvaWZ9eyRjYW5jZWx9PC9wPg0KCTwvZGl2Pg0KeyRlbmRfZm9ybX0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditField2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKX17JG1lc3NhZ2V9ey9pZn0NCg0KeyRiYWNrdG9mb3JtX25hdn08YnIgLz4NCnskc3RhcnRfZm9ybX17JGZiX2hpZGRlbn17aWYgaXNzZXQoJG9wKX17JG9wfXsvaWZ9DQp7dGFiX2hlYWRlciBuYW1lPSdtYWludGFiJyBsYWJlbD0kZnJtYmxkLT5sYW5nKCd0YWJfbWFpbicpfQ0Ke3RhYl9oZWFkZXIgbmFtZT0nYWR2YW5jZWR0YWInIGxhYmVsPSRmcm1ibGQtPmxhbmcoJ3RhYl9hZHZhbmNlZCcpfQ0Ke3RhYl9zdGFydCBuYW1lPSdtYWludGFiJ30NCgl7Zm9yZWFjaCBmcm9tPSRtYWluTGlzdCBpdGVtPWVudHJ5fQ0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVudHJ5LT50aXRsZX06PC9wPg0KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JGVudHJ5LT5pbnB1dH08L2Rpdj4NCgkJCXtpZiAkZW50cnktPmhlbHAgIT0gJyd9PGRpdiBjbGFzcz0iaW5wdXRoZWxwIj57JGVudHJ5LT5oZWxwfTwvZGl2PnsvaWZ9DQoJCTwvZGl2Pg0KCXsvZm9yZWFjaH0NCnt0YWJfc3RhcnQgbmFtZT0nYWR2YW5jZWR0YWInfQ0KCXtmb3JlYWNoIGZyb209JGFkdkxpc3QgaXRlbT1lbnRyeX0NCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRlbnRyeS0+dGl0bGV9OjwvcD4NCgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRlbnRyeS0+aW5wdXR9PC9kaXY+DQoJCQl7aWYgJGVudHJ5LT5oZWxwICE9ICcnfTxkaXYgY2xhc3M9ImlucHV0aGVscCI+eyRlbnRyeS0+aGVscH08L2Rpdj57L2lmfQ0KCQk8L2Rpdj4NCgl7L2ZvcmVhY2h9DQp7dGFiX2VuZH0NCntpZiAkYWRkICE9ICcnIG9yICRkZWwgIT0gJyd9DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWRkfXskZGVsfTwvcD4NCgk8L2Rpdj4NCnsvaWZ9DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiBpc3NldCgkc3VibWl0KX17JHN1Ym1pdH17L2lmfXskY2FuY2VsfTwvcD4NCgk8L2Rpdj4NCnskZW5kX2Zvcm19DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKX17JG1lc3NhZ2V9ey9pZn0KCnskZm9ybXN0YXJ0fQp7JGZvcm1pZH17JGZiX2hpZGRlbn0KeyR0YWJfc3RhcnR9Cgp7JG1haW50YWJfc3RhcnR9CjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfZm9ybV9tYWlufTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uYW1lfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX25hbWV9PC9wPgoJPC9kaXY+CntpZiAkYWRkaW5nID09IDB9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3N0YXR1c306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiAkaGFzZGlzcG9zaXRpb24gPT0gMX17JHRleHRfcmVhZHl9e2Vsc2V9eyRsaW5rX25vdHJlYWR5fXsvaWZ9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2FsaWFzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX2FsaWFzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9jc3NfY2xhc3N9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fY3NzX2NsYXNzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaW5saW5lX2Zvcm19OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2lubGluZV9mb3JtfTwvcD4KCTwvZGl2Pgo8L2ZpZWxkc2V0Pgp7aWYgJGFkZGluZz09MH0KPGZpZWxkc2V0PjxsZWdlbmQ+eyR0aXRsZV9mb3JtX2ZpZWxkc308L2xlZ2VuZD4KCXtpZiAkZmFzdGFkZD09MX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZmFzdGFkZH08L3A+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQl7JGlucHV0X2Zhc3RhZGR9CgkJCTwvZGl2PgoJCTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fZmllbGRzfTwvcD4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgoJCQk8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSBwYWdldGFibGUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+CgkJCQk8dGhlYWQ+PHRyPgoJICAgICAgIAl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0KICAgICAgICAgICAgICAgIDx0aCB3aWR0aD0iMjAiPnskdGl0bGVfZmllbGRfaWR9PC90aD4KCQl7L2lmfQogICAgCQkJCTx0aCB3aWR0aD0iMTIwIj57JHRpdGxlX2ZpZWxkX25hbWV9PC90aD4KICAgICAgICB7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2FsaWFzKX0KICAgIAkJCQk8dGggd2lkdGg9IjYwIj57JHRpdGxlX2ZpZWxkX2FsaWFzfTwvdGg+CgkJey9pZn0KICAgICAgICAgICAgICAgIAk8dGggd2lkdGg9IjE1MCI+eyR0aXRsZV9maWVsZF90eXBlfTwvdGg+CiAgICAgICAgICAgICAgICAJeyo8dGggd2lkdGg9IjIwIj57JHRpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldn08L3RoPip9CiAgICAgICAgICAgICAgICAJPHRoPnskdGl0bGVfaW5mb3JtYXRpb259PC90aD4KIAkJCQkJPHRoIHdpZHRoPSIyMCIgY2xhc3M9InVwZG93biI+Jm5ic3A7PC90aD4KCQkJCQk8dGggd2lkdGg9IjIwIiBjbGFzcz0idXBkb3duIj4mbmJzcDs8L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJCTwvdHI+CgkJCQk8L3RoZWFkPgoJCQkJPHRib2R5PgoJCQkJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJCQkJPHRyIGlkPSJmYnJwX3skZW50cnktPmlkfSIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSI+CgkJCQl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0KCQkJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4KCQkJCXsvaWZ9CgkJCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4KCQkJCQl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2FsaWFzKX0KCQkJCQkJPHRkPnskZW50cnktPmFsaWFzfTwvdGQ+CgkJCQkJey9pZn0KCQkJCQk8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPgoJCQkJCTx0ZD57JGVudHJ5LT5maWVsZF9zdGF0dXN9PC90ZD4JCQkJCQkKCQkJCQk8dGQgY2xhc3M9InVwZG93biI+eyRlbnRyeS0+dXB9PC90ZD4KCQkJCQk8dGQgY2xhc3M9InVwZG93biI+eyRlbnRyeS0+ZG93bn08L3RkPgkJCQkKCQkJCQk8dGQ+eyRlbnRyeS0+ZGlzcG9zaXRpb259PC90ZD4JCQkJCQoJCQkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCQkJPC90cj4KCQkJCXsvZm9yZWFjaH0KCQkJCTwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CgkJCXsqPGRpdiBjbGFzcz0icmVvcmRlcm1lc3NhZ2UgcGFnZW1jb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxwIGNsYXNzPSJwYWdlbWVzc2FnZSI+eyR0aXRsZV9tdXN0X3NhdmVfb3JkZXJ9PC9wPjwvZGl2Pip9CQoJCQk8YnIgLz4KCQkJeyRhZGRfZmllbGRfbGlua30KICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KPC9maWVsZHNldD4Key9pZn0KeyR0YWJfZW5kfQoKeyRzdWJtaXR0YWJfc3RhcnR9Cgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyR0aXRsZV9zdWJtaXRfaGVscH08L2Rpdj4KCjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfc3VibWl0X2FjdGlvbnN9PC9sZWdlbmQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV92YWxpZGF0ZV91ZHR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfYWN0aW9ufTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfYWN0aW9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVkaXJlY3RfcGFnZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVkaXJlY3RfcGFnZX08L3A+Cgk8L2Rpdj4KPC9maWVsZHNldD4KPGZpZWxkc2V0IGNsYXNzPSJtb2R1bGVfZmJfZmllbGRzZXQiPjxsZWdlbmQ+eyR0aXRsZV9zdWJtaXRfbGFiZWxzfTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9idXR0b25fc2FmZXR5fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X2phdmFzY3JpcHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9qYXZhc2NyaXB0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9ufTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3N1Ym1pdF9idXR0b259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX25leHRfYnV0dG9ufTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX25leHRfYnV0dG9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9wcmV2X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9wcmV2X2J1dHRvbn08L3A+Cgk8L2Rpdj4KPC9maWVsZHNldD4KeyR0YWJfZW5kfQoKeyRzeW1ib2x0YWJfc3RhcnR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9yZXF1aXJlZF9zeW1ib2x9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3Vuc3BlY2lmaWVkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbGlzdF9kZWxpbWl0ZXJ9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xpc3RfZGVsaW1pdGVyfTwvcD4KCTwvZGl2Pgp7JHRhYl9lbmR9eyR1ZHR0YWJfc3RhcnR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZWRpc3BsYXlfdWR0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHR9PC9wPgoJPC9kaXY+CnskdGFiX2VuZH0KCnskY2FwdGNoYXRhYl9zdGFydH0Ke2lmICRjYXB0Y2hhX2luc3RhbGxlZH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3VzZV9jYXB0Y2hhfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91c2VfY2FwdGNoYX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90aXRsZV91c2VyX2NhcHRjaGFfZXJyb3J9PC9wPgoJPC9kaXY+CntlbHNlfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX2luc3RhbGxfY2FwdGNoYX08L3A+Cgk8L2Rpdj4Key9pZn0KeyR0YWJfZW5kfQoKeyR0ZW1wbGF0ZXRhYl9zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2xvYWRfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xvYWRfdGVtcGxhdGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3RlbXBsYXRlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3RlbXBsYXRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPnskaGVscF90ZW1wbGF0ZV92YXJpYWJsZXN9PC9kaXY+Cgk8L2Rpdj4KeyR0YWJfZW5kfQoKeyRzdWJtaXR0ZW1wbGF0ZXRhYl9zdGFydH0KCTxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JHRpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwfTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfcmVzcG9uc2V9PC9wPgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRoZWxwX3N1Ym1pdF9yZXNwb25zZX08L2Rpdj4KCTwvZGl2Pgp7JHRhYl9lbmR9Cgp7JHRhYnNfZW5kfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfYnV0dG9ufXskc3VibWl0X2J1dHRvbn17JGNhbmNlbF9idXR0b259PC9wPgoJPC9kaXY+CnskZm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKX17JG1lc3NhZ2V9ey9pZn0KCnskZm9ybXN0YXJ0fQp7JGZvcm1pZH17JGZiX2hpZGRlbn0KCnt0YWJfaGVhZGVyIG5hbWU9J21haW50YWInIGxhYmVsPSRmcm1ibGQtPmxhbmcoJ3RhYl9tYWluJyl9Cnt0YWJfaGVhZGVyIG5hbWU9J3N1Ym1pdHRhYicgbGFiZWw9JGZybWJsZC0+bGFuZygndGFiX3N1Ym1pdCcpfQp7dGFiX2hlYWRlciBuYW1lPSdzeW1ib2x0YWInIGxhYmVsPSRmcm1ibGQtPmxhbmcoJ3RhYl9zeW1ib2wnKX0Ke3RhYl9oZWFkZXIgbmFtZT0nY2FwdGNoYXRhYicgbGFiZWw9JGZybWJsZC0+bGFuZygndGFiX2NhcHRjaGEnKX0Ke3RhYl9oZWFkZXIgbmFtZT0ndWR0dGFiJyBsYWJlbD0kZnJtYmxkLT5sYW5nKCd0YWJfdWR0Jyl9Cnt0YWJfaGVhZGVyIG5hbWU9J3RlbXBsYXRlbGF5b3V0JyBsYWJlbD0kZnJtYmxkLT5sYW5nKCd0YWJfdGVtcGxhdGVsYXlvdXQnKX0Ke3RhYl9oZWFkZXIgbmFtZT0nc3VibWl0dGVtcGxhdGUnIGxhYmVsPSRmcm1ibGQtPmxhbmcoJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnKX0KCnt0YWJfc3RhcnQgbmFtZT0nbWFpbnRhYid9Cgo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX2Zvcm1fbWFpbn08L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmFtZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uYW1lfTwvcD4KCTwvZGl2Pgp7aWYgJGFkZGluZyA9PSAwfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9zdGF0dXN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57aWYgJGhhc2Rpc3Bvc2l0aW9uID09IDF9eyR0ZXh0X3JlYWR5fXtlbHNlfXskbGlua19ub3RyZWFkeX17L2lmfTwvcD4KCTwvZGl2Pgp7L2lmfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9hbGlhc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9hbGlhc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fY3NzX2NsYXNzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX2Nzc19jbGFzc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2lubGluZV9mb3JtfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pbmxpbmVfZm9ybX08L3A+Cgk8L2Rpdj4KPC9maWVsZHNldD4Ke2lmICRhZGRpbmc9PTB9CjxmaWVsZHNldD48bGVnZW5kPnskdGl0bGVfZm9ybV9maWVsZHN9PC9sZWdlbmQ+Cgl7aWYgJGZhc3RhZGQ9PTF9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zhc3RhZGR9PC9wPgoJCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgoJCQkJeyRpbnB1dF9mYXN0YWRkfQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2ZpZWxkc308L3A+CgkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KCQkJPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUgcGFnZXRhYmxlIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPgoJCQkJPHRoZWFkPjx0cj4KCSAgICAgICAJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9pZCl9CiAgICAgICAgICAgICAgICA8dGggd2lkdGg9IjIwIj57JHRpdGxlX2ZpZWxkX2lkfTwvdGg+CgkJey9pZn0KICAgIAkJCQk8dGggd2lkdGg9IjEyMCI+eyR0aXRsZV9maWVsZF9uYW1lfTwvdGg+CiAgICAgICAge2lmIGlzc2V0KCR0aXRsZV9maWVsZF9hbGlhcyl9CiAgICAJCQkJPHRoIHdpZHRoPSI2MCI+eyR0aXRsZV9maWVsZF9hbGlhc308L3RoPgoJCXsvaWZ9CiAgICAgICAgICAgICAgICAJPHRoIHdpZHRoPSIxNTAiPnskdGl0bGVfZmllbGRfdHlwZX08L3RoPgogICAgICAgICAgICAgICAgCXsqPHRoIHdpZHRoPSIyMCI+eyR0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXZ9PC90aD4qfQogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2luZm9ybWF0aW9ufTwvdGg+CiAJCQkJCTx0aCB3aWR0aD0iMjAiIGNsYXNzPSJ1cGRvd24iPiZuYnNwOzwvdGg+CgkJCQkJPHRoIHdpZHRoPSIyMCIgY2xhc3M9InVwZG93biI+Jm5ic3A7PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQk8L3RyPgoJCQkJPC90aGVhZD4KCQkJCTx0Ym9keT4KCQkJCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCQkJCTx0ciBpZD0iZmJycF97JGVudHJ5LT5pZH0iIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJCQkJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9pZCl9CgkJCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCQl7L2lmfQoJCQkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCQkJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9hbGlhcyl9CgkJCQkJCTx0ZD57JGVudHJ5LT5hbGlhc308L3RkPgoJCQkJCXsvaWZ9CgkJCQkJPHRkPnskZW50cnktPnR5cGV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZmllbGRfc3RhdHVzfTwvdGQ+CQkJCQkJCgkJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPnVwfTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPmRvd259PC90ZD4JCQkJCgkJCQkJPHRkPnskZW50cnktPmRpc3Bvc2l0aW9ufTwvdGQ+CQkJCQkKCQkJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCQkJCTwvdHI+CgkJCQl7L2ZvcmVhY2h9CgkJCQk8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoJCQl7KjxkaXYgY2xhc3M9InJlb3JkZXJtZXNzYWdlIHBhZ2VtY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskdGl0bGVfbXVzdF9zYXZlX29yZGVyfTwvcD48L2Rpdj4qfQkKCQkJPGJyIC8+CgkJCXskYWRkX2ZpZWxkX2xpbmt9CiAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+CjwvZmllbGRzZXQ+CnsvaWZ9Cgp7dGFiX3N0YXJ0IG5hbWU9J3N1Ym1pdHRhYid9Cgk8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyR0aXRsZV9zdWJtaXRfaGVscH08L2Rpdj4KCQo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX3N1Ym1pdF9hY3Rpb25zfTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV92YWxpZGF0ZV91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdmFsaWRhdGVfdWR0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X2FjdGlvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2FjdGlvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlZGlyZWN0X3BhZ2V9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X3BhZ2V9PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfc3VibWl0X2xhYmVsc308L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfYnV0dG9uX3NhZmV0eX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfamF2YXNjcmlwdH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9zdWJtaXRfYnV0dG9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uZXh0X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uZXh0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcHJldl9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJldl9idXR0b259PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+Cgp7dGFiX3N0YXJ0IG5hbWU9J3N5bWJvbHRhYid9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9yZXF1aXJlZF9zeW1ib2x9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3Vuc3BlY2lmaWVkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbGlzdF9kZWxpbWl0ZXJ9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xpc3RfZGVsaW1pdGVyfTwvcD4KCTwvZGl2Pgp7dGFiX3N0YXJ0IG5hbWU9J3VkdHRhYid9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZWRpc3BsYXlfdWR0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHR9PC9wPgoJPC9kaXY+CgkKe3RhYl9zdGFydCBuYW1lPSdjYXB0Y2hhdGFiJ30Ke2lmICRjYXB0Y2hhX2luc3RhbGxlZH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3VzZV9jYXB0Y2hhfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91c2VfY2FwdGNoYX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90aXRsZV91c2VyX2NhcHRjaGFfZXJyb3J9PC9wPgoJPC9kaXY+CntlbHNlfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX2luc3RhbGxfY2FwdGNoYX08L3A+Cgk8L2Rpdj4Key9pZn0KCnt0YWJfc3RhcnQgbmFtZT0ndGVtcGxhdGVsYXlvdXQnfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbG9hZF90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbG9hZF90ZW1wbGF0ZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdGVtcGxhdGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRoZWxwX3RlbXBsYXRlX3ZhcmlhYmxlc308L2Rpdj4KCTwvZGl2PgoJCnt0YWJfc3RhcnQgbmFtZT0nc3VibWl0dGVtcGxhdGUnfQoJPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHB9PC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfcmVzcG9uc2V9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9yZXNwb25zZX08L3A+CgkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JGhlbHBfc3VibWl0X3Jlc3BvbnNlfTwvZGl2PgoJPC9kaXY+Cnt0YWJfZW5kfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfYnV0dG9ufXskc3VibWl0X2J1dHRvbn17JGNhbmNlbF9idXR0b259PC9wPgoJPC9kaXY+CnskZm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KCnskdGFiaGVhZGVyc30KCnskc3RhcnRfZm9ybXRhYn0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgo8dGhlYWQ+PHRyPgoJPHRoPnskdGl0bGVfZm9ybV9uYW1lfTwvdGg+Cgk8dGg+eyR0aXRsZV9mb3JtX2FsaWFzfTwvdGg+CiAgeyo8dGggd2lkdGg9IjUwIj4mbmJzcDs8L3RoPgogIDx0aCB3aWR0aD0iMzMiPiZuYnNwOzwvdGg+CiAgPHRoIHdpZHRoPSIzMyI+Jm5ic3A7PC90aD4qfQkKICA8dGg+Jm5ic3A7PC90aD4KCTx0aD4mbmJzcDs8L3RoPgoJPHRoPiZuYnNwOzwvdGg+CjwvdHI+CjwvdGhlYWQ+Cgp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCTx0ZD4mIzEyMztGb3JtQnVpbGRlciBmb3JtPSd7JGVudHJ5LT51c2FnZX0nJiMxMjU7PC90ZD4KCQk8dGQ+eyRlbnRyeS0+eG1sfTwvdGQ+CgkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCTwvdHI+CnsvZm9yZWFjaH0KCjx0cj4KCTx0ZCBjb2xzcGFuPSI1Ij4Ke2lmICRhZGRsaW5rICE9ICcnfXskYWRkbGlua317JGFkZGZvcm19ey9pZn0KCTwvdGQ+CjwvdHI+CjwvdGFibGU+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRsZWdlbmRfeG1sX2ltcG9ydH08L2xlZ2VuZD4KeyRzdGFydF94bWxmb3JtfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3htbF90b191cGxvYWR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfeG1sX3RvX3VwbG9hZH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3htbF91cGxvYWRfZm9ybW5hbWV9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfeG1sX3VwbG9hZF9mb3JtbmFtZX0mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF91cGxvYWRfZm9ybWFsaWFzfSZuYnNwOzxlbT57JGluZm9fbGVhdmVlbXB0eX08L2VtPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0eG1sfTwvcD4KPC9kaXY+CnskZW5kX3htbGZvcm19CjwvZmllbGRzZXQ+CnskZW5kX3RhYn0KeyRzdGFydF9jb25maWd0YWJ9Cgp7aWYgJG1heV9jb25maWcgPT0gMX0KeyRzdGFydF9jb25maWdmb3JtfQp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2VuYWJsZV9mYXN0YWRkfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuYWJsZV9mYXN0YWRkfTwvcD4KPC9kaXY+Cip9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2hpZGVfZXJyb3JzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfZXJyb3JzfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlcXVpcmVfZmllbGRuYW1lc306PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZXF1aXJlX2ZpZWxkbmFtZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV91bmlxdWVfZmllbGRuYW1lc306PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91bmlxdWVfZmllbGRuYW1lc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2JsYW5rX2ludmFsaWR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYmxhbmtfaW52YWxpZH08L3A+CjwvZGl2Pgp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXh9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleH08L3A+CjwvZGl2PgoqfQp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfdmVyc2lvbn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zaG93X3ZlcnNpb259PC9wPgo8L2Rpdj4KKn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9lbmFibGVfYW50aXNwYW19OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZW5hYmxlX2FudGlzcGFtfTwvcD4KPC9kaXY+CnsqCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc2hvd19maWVsZGlkc306PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zaG93X2ZpZWxkaWRzfTwvcD4KPC9kaXY+Cip9CnsqCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc2hvd19maWVsZGFsaWFzZXN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd19maWVsZGFsaWFzZXN9PC9wPgo8L2Rpdj4KKn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9PC9wPgo8L2Rpdj4KeyRlbmRfY29uZmlnZm9ybX0KCntlbHNlfQoJPHA+eyRub19wZXJtaXNzaW9ufTwvcD4Key9pZn0KeyRlbmRfdGFifQp7JGVuZF90YWJzfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KeypnZXRfdGVtcGxhdGVfdmFycyp9Cnt0YWJfaGVhZGVyIG5hbWU9J2Zvcm1zJyBsYWJlbD0kZnJtYmxkLT5sYW5nKCdmb3JtcycpfQp7dGFiX2hlYWRlciBuYW1lPSdjb25maWcnIGxhYmVsPSRmcm1ibGQtPmxhbmcoJ2NvbmZpZ3VyYXRpb24nKX0KCgp7dGFiX3N0YXJ0IG5hbWU9J2Zvcm1zJ30KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgo8dGhlYWQ+PHRyPgogIDx0aD57JHRpdGxlX2Zvcm1fbmFtZX08L3RoPgogIDx0aD57JHRpdGxlX2Zvcm1fYWxpYXN9PC90aD4KICA8dGg+Jm5ic3A7PC90aD4KICA8dGg+Jm5ic3A7PC90aD4KICA8dGg+Jm5ic3A7PC90aD4KPC90cj4KPC90aGVhZD4KCntmb3JlYWNoIGZyb209JGZvcm1zIGl0ZW09ZW50cnl9CiAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICA8dGQ+JiMxMjM7Rm9ybUJ1aWxkZXIgZm9ybT0neyRlbnRyeS0+dXNhZ2V9JyYjMTI1OzwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+eG1sfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KICAgIDx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CiAgPC90cj4Key9mb3JlYWNofQoKPHRyPgogIDx0ZCBjb2xzcGFuPSI1Ij4Ke2lmICRhZGRsaW5rICE9ICcnfXskYWRkbGlua317JGFkZGZvcm19ey9pZn0KICA8L3RkPgo8L3RyPgo8L3RhYmxlPgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbGVnZW5kX3htbF9pbXBvcnR9PC9sZWdlbmQ+Cnskc3RhcnRfeG1sZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfeG1sX3RvX3VwbG9hZH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfeG1sX3RvX3VwbG9hZH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1uYW1lfSZuYnNwOzxlbT57JGluZm9fbGVhdmVlbXB0eX08L2VtPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhc30mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0eG1sfTwvcD4KPC9kaXY+CnskZW5kX3htbGZvcm19CjwvZmllbGRzZXQ+Cnt0YWJfc3RhcnQgbmFtZT0nY29uZmlnJ30KCntpZiAkbWF5X2NvbmZpZyA9PSAxfQp7JHN0YXJ0X2NvbmZpZ2Zvcm19CnsqCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2Zhc3RhZGR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZW5hYmxlX2Zhc3RhZGR9PC9wPgo8L2Rpdj4KKn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaGlkZV9lcnJvcnN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGlkZV9lcnJvcnN9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlcXVpcmVfZmllbGRuYW1lc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3VuaXF1ZV9maWVsZG5hbWVzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VuaXF1ZV9maWVsZG5hbWVzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfYmxhbmtfaW52YWxpZH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9ibGFua19pbnZhbGlkfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZWxheGVkX2VtYWlsX3JlZ2V4fTwvcD4KPC9kaXY+CnsqCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc2hvd192ZXJzaW9ufTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Nob3dfdmVyc2lvbn08L3A+CjwvZGl2PgoqfQp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXh9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleH08L3A+CjwvZGl2PgoqfQp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRpZHN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd19maWVsZGlkc308L3A+CjwvZGl2PgoqfQp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRhbGlhc2VzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Nob3dfZmllbGRhbGlhc2VzfTwvcD4KPC9kaXY+Cip9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CnskZW5kX2NvbmZpZ2Zvcm19Cgp7ZWxzZX0KICA8cD57JG5vX3Blcm1pc3Npb259PC9wPgp7L2lmfQp7dGFiX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/help_text.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0icGFnZV90YWJzIj4KICAgIDxkaXYgaWQ9ImdlbmVyYWwiPkdlbmVyYWw8L2Rpdj4KCTxkaXYgaWQ9ImZvcm1zIj5Gb3JtczwvZGl2PgoJPGRpdiBpZD0iZmllbGRzIj5GaWVsZHM8L2Rpdj4KCTxkaXYgaWQ9InRlbXBsYXRlX3ZhcmlhYmxlIj5UZW1wbGF0ZXMgYW5kIFZhcmlhYmxlczwvZGl2PgoJPGRpdiBpZD0iYWR2YW5jZWQiPkFkdmFuY2VkPC9kaXY+Cgk8ZGl2IGlkPSJzdHlsaW5nIj5TdHlsaW5nPC9kaXY+Cgk8ZGl2IGlkPSJjb25maWd1cmF0aW9uIj5Db25maWd1cmF0aW9uPC9kaXY+Cgk8ZGl2IGlkPSJhYm91dCI+QWJvdXQ8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgoKPGRpdiBpZD0icGFnZV9jb250ZW50Ij4KCTxkaXYgaWQ9ImdlbmVyYWxfYyI+CgkJPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CgkJPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZm9ybXMgKGluIGZhY3QsIGl0J3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoCgkJdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CgkJPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKCQlpbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQoJCXZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCgkJPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgoJCTxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgoJCUlmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UncmUKCQlyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+CgoJCTxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KCQk8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCgkJdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CgkJQ29uZmlndXJhdGlvbi48L3A+CgoJCTxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CgkJPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCgkJc29tZXRoaW5nIGxpa2Uge2xkZWxpbX1Gb3JtQnVpbGRlciBmb3JtPSdzYW1wbGVfZm9ybSd9PC9wPgoJCTxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgoJCUluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKCQlpbnRvIGEgcGFnZSdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKCQljaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgiKSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwoJCXNpbmdsZSBxdW90ZXMgKCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoJPC9kaXY+CgkKCTwhLS0gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrIC0tPgoJCgk8ZGl2IGlkPSJmb3Jtc19jIj4KCQk8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KCQk8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0ncyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KCQk8aDQ+TWFpbjwvaDQ+CgkJPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KCQk8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KCQk8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CgkJCgkJPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CgkJPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlcidzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgoJCTxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoIlByZXZpb3VzIiwgIm5leHQiLCAic3VibWl0IikuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4KCQkKCQk8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0PgoJCTxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CgkJCgkJPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0PgoJCTxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KCQkKCQk8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CgkJPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KCQk8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CgkJPHA+VW5sZXNzIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgoJCQoJCTxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4KCQk8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAnRGlzcGxheSAiU3VibWlzc2lvbiBUZW1wbGF0ZSIsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CgkJPHA+SWYgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91J3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0LjwvcD4KCTwvZGl2PgoJCgk8IS0tICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyAtLT4KCQoJPGRpdiBpZD0iZmllbGRzX2MiPgoJCTxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CgkJPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+CgkJPHVsPgoJCTxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CgkJPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KCQk8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KCQk8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKCQlzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKCQlmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KCQk8L3VsPgoJCTxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCgkJYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KCQlpcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KCQlUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKCQl0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCgkJZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KCQk8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCgkJdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKCQl0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CgkJPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKCQllbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQoJCXNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CgkJPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwoJCWN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4KCQl3cml0ZSB5b3VyIENTUy48L3A+CgoJCTxoND5TdGFuZGFyZCBJbnB1dHM8L2g0PgoJCTx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgoJCWZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KCQk8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgoJCTxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgoJCTxsaT5CdXR0b24uIFRoaXMgZG9lbnMndCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPgoJCTxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKCQljb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CgkJPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CgkJPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCgkJZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgoJCTxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uCgkJZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgoJCTxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgoJCTxsaT5QYXNzd29yZCBBZ2FpbiAodmVyaWZ5KS4gVGhpcyBpcyBhIGZpZWxkIHRoYXQgbXVzdCBtYXRjaCBhIFBhc3N3b3JkIGZpZWxkIGZvciBzdWJtaXNzaW9uCgkJdG8gc3VjY2VlZC48L2xpPgoJCTxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CgkJPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPgoJCTxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CgkJPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KCQk8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CgkJPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KCQk8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KCQk8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPgoJCTwvdWw+CgoJCTxoND5FbWFpbC1zcGVjaWZpYyBJbnB1dHM8L2g0PgoJCTx1bD48bGk+RW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPgoJCTxsaT5FbWFpbCAiRnJvbSBOYW1lIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CgkJPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAiU3ViamVjdCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgoJCTwvdWw+CgoJCTxoND5EaXNwbGF5IENvbnRyb2wgRmllbGRzPC9oND4KCQk8dWw+CgkJPGxpPlBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCgkJaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KCQk8bGk+RmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgoJCTxsaT5GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgoJCTxsaT5IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KCQk8bGk+U3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSdyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgoJCTxsaT5TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KCQk8bGk+Q29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CgkJPGxpPlVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4KCQk8bGk+VXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgoJCTwvdWw+CgoJCTxoND5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKTwvaDQ+CgkJPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyBcJHBhcmFtc1snZmllbGRfbmFtZSddLCBhbmQgYXMgXCRwYXJhbXNbJ2ZpZWxkX2FsaWFzJ10gKGlmIGRlZmluZWQpLjwvbGk+CgkJPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCgkJZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCgkJYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KCQk8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CgkJPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCgkJZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCgkJYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KCQk8bGk+KkVtYWlsIHJlc3VsdHMgYmFzZWQgb24gZnJvbnRlbmQgZmllbGRzLiBUaGlzIGZpZWxkIGlzIGFuIGVtYWlsIGRpc3Bvc2l0aW9uIHRoYXQgYWxsb3dzIGZvcm0gZmllbGRzJyB1c2VyIGlucHV0IHRvIHNwZWNpZnkgdGhlIEVtYWlsIFN1YmplY3QsICJGcm9tIE5hbWUiLCAiRnJvbSBBZGRyZXNzIiwgYW5kIERlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MuPC9saT4KCQk8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgoJCTxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgoJCTxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAiYXBwcm92ZWQsIiBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgoJCTxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQoJCXNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQoJCW1vZHVsZSdzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CgkJPGxpPipXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIHRvIGEgdW5pcXVlIHRleHQgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb24uCgkJWW91IGNhbiBzcGVjaWZ5IGEgZmlsZW5hbWUgcGF0dGVybiB1c2luZyB2YWx1ZXMgZnJvbSBmb3JtIGZpZWxkcywgc2V0IGl0cyBmb3JtYXQsIGFuZCBzZXQgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZmlsZXMgd2lsbCBiZSBzdG9yZWQuPC9saT4KCQk8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KCQk8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgoJCTxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CgkJPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuPC9saT4KCQk8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIExpc3RJdEV4dGVuZGVkLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbnRvIExpc3RJdEV4dGVuZGVkIG9iamVjdCBhbmQgc2F2ZXMgaXQgaW50byBkYXRhYmFzZS48L2xpPgoJCTxsaT4qU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbi4gQ3JhZnQgYW4gSFRUUCBHRVQgb3IgUE9TVCwgYW5kIHRyYW5zbWl0IGl0IHVzaW5nIGNVUkwgdG8gdGhlIHNwZWNpZmllZCBVUkwuIFRoaXMgbGV0cyB5b3UgdXNlIEZvcm1CdWlsZGVyIGFzIGEgZnJvbnQtZW5kIHRvIGFueSBDR0kgb3IgRm9ybSBIYW5kbGluZyBzY3JpcHQgb3V0IHRoZXJlLjwvbGk+CgkJPC91bD4KCTwvZGl2PgoJCgk8IS0tICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyAtLT4KCQoJPGRpdiBpZD0idGVtcGxhdGVfdmFyaWFibGVfYyI+CgkJeyRtb2QtPkxhbmcoJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnKX0KCTwvZGl2PgoJCgk8IS0tICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyAtLT4KCQoJPGRpdiBpZD0iYWR2YW5jZWRfYyI+CgkJPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgoJCTxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKCQl0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKCQlhIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgoJCTxwPntsZGVsaW19Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgoJCTxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAnZGVmYXVsdF92YWx1ZScuPC9wPgoJCTxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbid0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KCQlhbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgoJCTxwPntsZGVsaW19Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgoJCTxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCgkJYW5kIGNoZWNrICJTaG93IEZpZWxkIElEcyI8L3A+CgoJCTxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CgkJPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KCQk8cD5UbyB0aGUgcmlnaHQsIHlvdSdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoaWNoIHlvdSBjYW4gdXNlLjwvcD4KCQk8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KCQk8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKCQk8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPgoJCTxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXIKCQlxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91CgkJd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+CgkJPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQKCQlhIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuCgkJVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7bGRlbGltfUZvcm1CdWlsZGVyIGFjdGlvbj0nZmV1c2VyZm9ybScgZm9ybT0nZm9ybV9uYW1lJ30uPC9wPgoJCTxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLgoJCUluIGVpdGhlciBjYXNlLCBmb3IgdGhlIHBhc3NwaHJhc2UsIHlvdSBjYW4gZWl0aGVyIGVudGVyIHRleHQgaW4gdGhlIGZpZWxkIG9yIGEgZmlsZSBuYW1lLiBJZiB5b3Ugc3BlY2lmeSBhIGZpbGUgbmFtZSwgdGhlIGNvbnRlbnRzIG9mIHRoYXQKCQlmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+CgkJPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUKCQlpcyB0aGF0IHRoZSBmaXJzdCBmb3VyIGxldHRlcnMgYXJlIGxlZnQgaW50YWN0IHRvIGFsbG93IGZvciBzb3J0aW5nLiBUaGUgc29ydGluZyBtYXkgbm90IGJlIHBlcmZlY3QsIGFuZCB0aGlzIHdlYWtlbnMgdGhlIHNlY3VyaXR5IHNpbmNlIGl0CgkJZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPgoJCTxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQKCQl5b3VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VjdXJlLiBBIHNtYXJ0IGhhY2tlciB3aG8gaGFzIGZvdW5kIHNvbWUgZXhwbG9pdCB0byB2aWV3IGRhdGFiYXNlIHJlY29yZHMgbWF5IHdlbGwgYmUgc21hcnQgZW5vdWdoIHRvIGdldCBhdAoJCXRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cgoJCXNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsCgkJc2Vuc2l0aXZlIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgaHVtYW4gcmlnaHRzIGRhdGEsIG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBvZiB2YWx1ZSB0byBhIHJlcHJlc3NpdmUgZ292ZXJubWVudCBvciBvcmdhbml6ZWQgY3JpbWUKCQljYXJ0ZWwuPC9lbT48L3A+CgkJCgkJPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4KCQk8cD5TZXZlcmFsIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIGJlaGF2aW9yIHZpYSBVRFRzIGlzIHByb3ZpZGVkICh0aGFua3MgdG8ga2luZCBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBjcmVkaXRzKS48L3A+CgoJCTx1bD4KCQk8bGk+Q2FsbCBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBmaWVsZCB0eXBlIHN1Ym1pdHMgdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkCgkJVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1snZmllbGRfbmFtZSddLCBhbmQKCQlhcyAkcGFyYW1zWydmaWVsZF9hbGlhcyddIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4KCQk8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CgkJPGxpPlZhbGlkYXRpb24gVURULiBTZXQgdGhpcyBmb3IgYSBmb3JtLCBhbmQgdGhlIFVEVCB3aWxsIHJlY2VpdmUgYWxsIG9mIHRoZSBmb3JtJ3MgaHVtYW4tcmVhZGFibGUgcmVzdWx0cy4gVGhlIFVEVCBzaG91bGQgZG8gd2hhdGV2ZXIKCQl2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAoJCXZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+CgkJPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRpbWUgKG9ubHkgY2FsbGVkIG9uY2UpLiBUaGlzCgkJaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5CgkJb2YgdGhlIGZvcm0uPC9saT4KCQk8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlCgkJZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZAoJCWV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPgoJCTwvdWw+Cgk8L2Rpdj4KCQoJPCEtLSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgLS0+CgkKCTxkaXYgaWQ9InN0eWxpbmdfYyI+CgkJPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CgkJPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIAoJCXN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICJGb3JtQnVpbGRlciBEZWZhdWx0IiB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUKCQl0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCgkJPHA+VGhpcyBkZWZhdWx0IENTUyB3YXMgZ3JhY2lvdXNseSBwcm92aWRlZCBieSBQYXVsIE5vb25lLjwvcD4KCTwvZGl2PgoJCgk8IS0tICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyAtLT4KCQoJPGRpdiBpZD0iY29uZmlndXJhdGlvbl9jIj4KCQk8aDM+Q29uZmlndXJhdGlvbjwvaDM+CgkJPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgoJCTx1bD4KCQk8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KCQk8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgbm8gbG9uZ2VyIHNldCBieSBkZWZhdWx0LiBDaGVja2luZyBpdCB3aWxsIGhpZGUgdGhlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRoYXQgd291bGQgYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CgkJPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CgkJPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgoJCTxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KCQk8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91J3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CgkJPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KCQk8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CgkJPC91bD4KCQkKCQk8aDM+TWlzY2VsbGFuZW91cyBOb3RlczwvaDM+CgkJPHVsPgogICAgICA8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgoJCSAgPGxpPlRoZSBGaWxlIFVwbG9hZCBmaWVsZCB0eXBlIHdvbid0IHJlcG9wdWxhdGUgb24gZm9ybSBmYWlsdXJlIHRvIHZhbGlkYXRlLiBUaGlzIGlzIG5vdCBhIGJ1ZzogaXQncyBhIHNlY3VyaXR5IGxpbWl0YXRpb24gYW5kIGl0J3MgZW5mb3JjZWQgYnkgdGhlIGJyb3dzZXJzLiBBcyBzdWNoLCBjdXJyZW50bHkgYW5kIGluIHRoZSBmb3Jlc2VlYWJsZSBIVE1MNSBmdXR1cmUgKGFzIGl0IHdhcyBpbiB0aGUgcGFzdCB3aXRoIHRoZSBleGNlcHRpb24gb2YgT3BlcmEgYnJvd3NlcnMpLCBvbmx5IHRoZSB1c2VyIGNhbiBwb3B1bGF0ZSBhIGZpbGUgaW5wdXQgZmllbGQuIEl0J3Mgbm90IHBvc3NpYmxlIHRvIChyZSlwb3B1bGF0ZSB0aGUgZmlsZSBpbnB1dCBmaWVsZCBlaXRoZXIgd2l0aCBqYXZhc2NyaXB0IG9yIGJ5IHNldHRpbmcgYSBkZWZhdWx0IHZhbHVlIGFzIGl0J3Mgbm90IHN1cHBvcnRlZCBieSB0aGUgYnJvd3NlcnMuPC9saT4KCQk8L3VsPgoJCTxoMz5Lbm93biBJc3N1ZXM8L2gzPgoJCTx1bD4KCQk8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KCQk8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPgoJCTwvdWw+CgoJCTxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgoJCTxvbD4KCQk8bGk+Rm9ybUJ1aWxkZXIvRm9ybUJyb3dzZXIgPHN0cm9uZz5yZXF1aXJlczwvc3Ryb25nPiBQSFAgNS4yLjQgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+CgkJPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91J3JlIHJ1bm5pbmcgQ01TIDEuMTEgb3IgbGF0ZXIuPC9saT4KCQk8bGk+U2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKCQlzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CgkJPGxpPiBJZiB5b3UncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91J3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgoJCTxsaT5VbmNoZWNrIHRoZSAiSGlkZSBFcnJvcnMiIGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgoJCTxsaT5KdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgoJCTxsaT5NYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0J3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4KCQk8bGk+TGFzdCByZXNvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgoJCTwvb2w+IAoJCTxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSd2ZSBkb25lIGFsbCBJIGNhbgoJCXRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCgkJcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCgkJYXRlIHRoZSBuZWlnaGJvcidzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KCQk8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4JCgk8L2Rpdj4KCQoJPCEtLSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgLS0+CgkKCTxkaXYgaWQ9ImFib3V0X2MiPgoJCTxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJCTxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgoJCTxwPkNvcHlyaWdodCAmY29weTsgMjAxMiwgVGFwaW8gTMO2eXR0eS4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgoJCTxwPkNvcHlyaWdodCAmY29weTsgMjAxNCwgTW9ydGVuIFBvdWxzZW4gW21vcnRlbiBhdCBwb3Vsc2VuIGRvdCBvcmddLiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CgkJPGJyIC8+CgkJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KCQk8YnIgLz4KCQk8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW06PC9wPgoJCTx1bD4KCQkJPGxpPkZlcm5hbmRvIE1vcmdhZG8gLSBjb2RlPC9saT4KCQkJPGxpPlJvbGYgVGphc3NlbnMgLSBjb2RlPC9saT4KCQkJPGxpPlJ5YW4gRm9zdGVyIC0gY29kZTwvbGk+CgkJCTxsaT5Kb25hdGhhbiBTY2htaWQgLSBjb2RlLCBoZWxwdGV4dDwvbGk+CgkJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiIHRhcmdldD0iX2JsYW5rIj5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gY29kZSwgZnVuZGluZzwvbGk+CgkJCTxsaT5KZXJlbXkgQmFzcyAtIGNvZGUgYW5kIHN1Z2dlc3Rpb25zPC9saT4KCQkJPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+CgkJCTxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+CgkJCTxsaT5KZWZmIEJvc2NoIC0gVURUIFZhbGlkYXRpb248L2xpPgoJCQk8bGk+Um9iZXJ0IENhbXBiZWxsIC0gbnVtZXJvdXMgY29kZSBjb250cmlidXRpb25zPC9saT4KCQkJPGxpPlBpb3RyYXMgQ2ltbXBlcm1hbiAtIGNvZGU8L2xpPgoJCQk8bGk+TnVubyBDb3N0YSAtIHN1Z2dlc3Rpb25zPC9saT4KCQkJPGxpPk1hcmMgR2VsZG9uIC0gY29kZTwvbGk+CgkJCTxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+CgkJCTxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPgoJCQk8bGk+UGF1bCBOb29uZSAtIENTUyBhbmQgaWRlYXM8L2xpPgoJCQk8bGk+UHJ1ZSBSb3dsYW5kIC0gYnVnIGZpeGVzPC9saT4KCQkJPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+CgkJCTxsaT5BZGFtIFNoYXctVmFyZGkgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+CiAgICAgIDxsaT5KZWFuLUNsYXVkZSBFdGllbWJsZSAoamNlNzYzNTApOiB0ZXN0aW5nIGFuZCBzdWdnZXN0aW9uczs8L2xpPgoJCTwvdWw+CgkJPHA+SSBhcG9sb2dpemUgZm9yIGFueSBvbWlzc2lvbnMgLSBub3RpZnkgbWUsIGFuZCBJJ2xsIGNvcnJlY3QgdGhlIG9taXNzaW9uITwvcD4KCTwvZGl2PgoKCTwhLS0gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrIC0tPg==]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogU0lNUExFIENTUyBGb3JtICp9CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4Ke2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQoJCXtzdHJpcH0KCQl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KCQk8ZGl2CgkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJycgfHwgJGVudHJ5LT52YWxpZCA9PSAwfSBjbGFzcz0iCgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQoJCQkJCXJlcXVpcmVkCgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KCQkJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KCQkJCQl7JGVudHJ5LT5jc3NfY2xhc3N9CgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0KCQkJCQlmYl9pbnZhbGlkCgkJCQl7L2lmfQoJCQkJIgoJCQl7L2lmfQoJCT4KCQl7L2lmfQoJCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQoJCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9CgkJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJey9pZn0KCQk8L2xhYmVsPgoJCXsvaWZ9CgkJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCQkJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CgkJCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+CgkJCQl7ZWxzZX0KCQkJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQoJCQl7L3NlY3Rpb259CgkJe2Vsc2V9CgkJCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQoJCXsvaWZ9CgkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7JGVudHJ5LT5lcnJvcn17L2lmfQoJCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQoJCQk8L2Rpdj4KCQl7L2lmfQoJCXsvc3RyaXB9Cgl7L2lmfQp7L2ZvcmVhY2h9CntpZiBpc3NldCgkaGFzX2NhcHRjaGEpICYmICRoYXNfY2FwdGNoYSA9PSAxfQoJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4Key9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2Pgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGZiaHQoaHRpZCkKCXsKCQl2YXIgZmJodGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHRpZCk7CgkJaWYgKGZiaHRjKQoJCQl7CgkJCWlmIChmYmh0Yy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCQkJCXsKCQkJCWZiaHRjLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQkJCX0KCQkJfQp9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkJCXtzdHJpcH0KCQkJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CgkJCQk8ZGl2CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnIHx8ICRlbnRyeS0+dmFsaWQgPT0gMH0gY2xhc3M9IgoJCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQoJCQkJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30geyRlbnRyeS0+Y3NzX2NsYXNzfXsvaWZ9CgkJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gZmJfaW52YWxpZHsvaWZ9CgkJCQkJIgoJCQkJey9pZn0KCQkJCT4KCQkJey9pZn0KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCQk8L2xhYmVsPgoJCQl7L2lmfQoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCQkJCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQoJCQkJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KCQkJCQl7ZWxzZX0KCQkJCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQoJCQkJCXsvaWZ9CgkJCQkJe2lmIGlzc2V0KCRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wKSAmJiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0KCQkJCXsvc2VjdGlvbn0KCQkJe2Vsc2V9CgkJCQl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KCQkJey9pZn0KCQkJe2lmICRlbnRyeS0+aGVscHRleHQgIT0gJyd9Jm5ic3A7PGEgaHJlZj0iamF2YXNjcmlwdDpmYmh0KCd7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0nKSI+PGltZyBzcmM9Im1vZHVsZXMvRm9ybUJ1aWxkZXIvaW1hZ2VzL2luZm8tc21hbGwuZ2lmIiBhbHQ9IkhlbHAiIC8+PC9hPgoJCQkJCTxzcGFuIGlkPSJ7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJmYnJfaGVscHRleHQiPnskZW50cnktPmhlbHB0ZXh0fTwvc3Bhbj57L2lmfQoJCQl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CgkJCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQoJCQkJPC9kaXY+CgkJCXsvaWZ9CgkJCXsvc3RyaXB9CgkJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiBpc3NldCgkaGFzX2NhcHRjaGEpICYmICRoYXNfY2FwdGNoYSA9PSAxfQoJCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57JGlucHV0X2NhcHRjaGF9PC9kaXY+Cgl7L2lmfQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+Cgk8L2Rpdj4KCXskZmJfZm9ybV9lbmR9CnsvaWZ9CnskZmJfZm9ybV9mb290ZXJ9]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gTGVmdCAqfQp7KiBuZXh0IGxpbmUgc2V0cyBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tib3ggZ3JvdXBzICp9Cnthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGZiaHQoaHRpZCkKCXsKCQl2YXIgZmJodGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHRpZCk7CgkJaWYgKGZiaHRjKQoJCQl7CgkJCWlmIChmYmh0Yy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCQkJCXsKCQkJCWZiaHRjLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQkJCX0KCQkJfQp9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8dGFibGUgY2xhc3M9ImVycm9yIj4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTx0cj48dGQ+eyR0aGlzRXJyfTwvdGQ+PC90cj4KCQkJey9mb3JlYWNofQoJCQk8L3RhYmxlPgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCgk8dGFibGV7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDEgJiYKCQkJJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgU3RhcnQnICYmCgkJCSRlbnRyeS0+dHlwZSAhPSAnLUZpZWxkc2V0IEVuZCcgfQoJCTx0cj4KCQkJe3N0cmlwfQoJCQk8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIKCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkJCQkJcmVxdWlyZWQKCQkJCXsvaWZ9CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJCQkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJCQkJCXskZW50cnktPmNzc19jbGFzc30KCQkJCXsvaWZ9CgkJCQkiCgkJCXsvaWZ9CgkJCT4KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQl7JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCXsvaWZ9CgkJCTwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCJ7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGVudHJ5LT5jc3NfY2xhc3N9InsvaWZ9PgoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQk8dGFibGU+CgkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJCQkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkJCQkJe2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CgkJCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KCQkJCTwvdHI+PHRyPgoJCQkJCQl7L2lmfQoJCQkJCXsvaWZ9CgkJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CgkJCQkJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQoJCQkJCQl7aWYgJGNlbGxzIG5lICRjb2xzfQoJCQkJCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CgkJCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCQkJCQl7L3NlY3Rpb259CgkJCQkJCXsvaWZ9CgkJCQk8L3RyPgoJCQkJCXsvaWZ9CgkJCQl7L3NlY3Rpb259CgkJCQk8L3RhYmxlPgoJCQl7ZWxzZX0KCQkJCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQoJCQl7L2lmfQoJCQl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CgkJCXtpZiAkZW50cnktPmhlbHB0ZXh0ICE9ICcnfSZuYnNwOzxhIGhyZWY9ImphdmFzY3JpcHQ6ZmJodCgneyRlbnRyeS0+ZmllbGRfaGVscHRleHRfaWR9JykiPjxpbWcgc3JjPSJtb2R1bGVzL0Zvcm1CdWlsZGVyL2ltYWdlcy9pbmZvLXNtYWxsLmdpZiIgYWx0PSJIZWxwIiAvPjwvYT4KCQkJCQk8c3BhbiBpZD0ieyRlbnRyeS0+ZmllbGRfaGVscHRleHRfaWR9IiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0iZmJyX2hlbHB0ZXh0Ij57JGVudHJ5LT5oZWxwdGV4dH08L3NwYW4+ey9pZn0KCQkJCgkJCQoJCQk8L3RkPjwvdHI+CgkJCXsvc3RyaXB9CgkJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiBpc3NldCgkaGFzX2NhcHRjaGEpICYmICRoYXNfY2FwdGNoYSA9PSAxfQoJCTx0cj48dGQ+eyRncmFwaGljX2NhcHRjaGF9PC90ZD48dGQ+eyRpbnB1dF9jYXB0Y2hhfTxiciAvPnskdGl0bGVfY2FwdGNoYX08L3RkPjwvdHI+Cgl7L2lmfQoJCTx0cj48dGQ+eyRwcmV2fTwvdGQ+PHRkPnskc3VibWl0fTwvdGQ+PC90cj4KCTwvdGFibGU+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gVG9wICp9CnsqIG5leHQgbGluZSBzZXRzIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGluZ3MgbGlrZSBjaGVja2JveCBncm91cHMgKn0Ke2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0Ke2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gZmJodChodGlkKQoJewoJCXZhciBmYmh0Yz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChodGlkKTsKCQlpZiAoZmJodGMpCgkJCXsKCQkJaWYgKGZiaHRjLnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnKQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlmYmh0Yy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCQkJfQoJCQl9Cn0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0KeyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTx0YWJsZSBjbGFzcz0iZXJyb3IiPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPHRyPjx0ZD57JHRoaXNFcnJ9PC90ZD48L3RyPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdGFibGU+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoKCTx0YWJsZXtpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTx0cj48dGQgY29sc3Bhbj0iMiI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3RkPjwvdHI+ey9pZn0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMSAmJgoJCQkkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBTdGFydCcgJiYKCQkJJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgRW5kJyB9CgkJPHRyPgoJCQl7c3RyaXB9CgkJCTx0ZCB2YWxpZ249InRvcCIKCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkJCQkJcmVxdWlyZWQKCQkJCXsvaWZ9CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJCQkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJCQkJCXskZW50cnktPmNzc19jbGFzc30KCQkJCXsvaWZ9CgkJCQkiCgkJCXsvaWZ9CgkJCT4KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQl7JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCXsvaWZ9CgkJCTwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCJ7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGVudHJ5LT5jc3NfY2xhc3N9InsvaWZ9PgoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQk8dGFibGU+CgkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJCQkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkJCQkJe2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CgkJCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KCQkJCTwvdHI+PHRyPgoJCQkJCQl7L2lmfQoJCQkJCXsvaWZ9CgkJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CgkJCQkJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQoJCQkJCQl7aWYgJGNlbGxzIG5lICRjb2xzfQoJCQkJCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CgkJCQkJCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCQkJCQl7L3NlY3Rpb259CgkJCQkJCXsvaWZ9CgkJCQk8L3RyPgoJCQkJCXsvaWZ9CgkJCQl7L3NlY3Rpb259CgkJCTwvdGFibGU+CgkJCXtlbHNlfQoJCQkJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9CgkJCXsvaWZ9CgkJCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KCQkJe2lmICRlbnRyeS0+aGVscHRleHQgIT0gJyd9Jm5ic3A7PGEgaHJlZj0iamF2YXNjcmlwdDpmYmh0KCd7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0nKSI+PGltZyBzcmM9Im1vZHVsZXMvRm9ybUJ1aWxkZXIvaW1hZ2VzL2luZm8tc21hbGwuZ2lmIiBhbHQ9IkhlbHAiIC8+PC9hPgoJCQkJCTxzcGFuIGlkPSJ7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJmYnJfaGVscHRleHQiPnskZW50cnktPmhlbHB0ZXh0fTwvc3Bhbj57L2lmfQoJCQkKCQkJPC90ZD48L3RyPgoJCQl7L3N0cmlwfQoJCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgaXNzZXQoJGhhc19jYXB0Y2hhKSAmJiAkaGFzX2NhcHRjaGEgPT0gMX0KCTx0cj48dGQ+eyRncmFwaGljX2NhcHRjaGF9PC90ZD48L3RyPjx0cj48dGQ+eyRpbnB1dF9jYXB0Y2hhfTxiciAvPnskdGl0bGVfY2FwdGNoYX08L3RkPjwvdHI+Cgl7L2lmfQoJPHRyPjx0ZD57JHByZXZ9PC90ZD48L3RyPjx0cj48dGQ+eyRzdWJtaXR9PC90ZD48L3RyPgo8L3RhYmxlPgp7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateAdvanced.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzNcZGVmbGFuZ2ZlMjA1MntcZm9udHRibHtcZjBcZnN3aXNzXGZwcnEyXGZjaGFyc2V0MCBBcmlhbDt9fQ0KXHZpZXdraW5kNFx1YzFccGFyZFxub3dpZGN0bHBhclxmMFxmczIwICUlSEVBREVSJSVccGFyDQpccGFyDQpUaGlzIGlzIGEgc2ltcGxlIEFkdmFuY2VkIFJURiBGaWxlIFRlbXBsYXRlLlxwYXINClxwYXINCkZvcm0gTmFtZTogJVskc3ViX2Zvcm1fbmFtZV0lXHBhcg0KRGF0ZSBvZiBTdWJtaXNzaW9uOiAlWyRzdWJfZGF0ZV0lXHBhcg0KWW91ciBzZXJ2ZXI6ICVbJHN1Yl9ob3N0XSVccGFyDQpJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtOiAlWyRzdWJfc291cmNlX2lwXSVccGFyDQpVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm06ICVbJHN1Yl91cmxdJVxwYXINCkZvcm1CdWlsZGVyIHZlcnNpb246ICVbJGZiX3ZlcnNpb25dJVxwYXINClxwYXINCkRvbid0IHdhbnQgYSBGb290ZXI/ICBEb24ndCBwdXQgdGhlIEZPT1RFUiB0YWcgaW4gdGhlIGRvY3VtZW50IVxwYXINCn0NCgA=]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateAdvancedTables.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzNcZGVmbGFuZ2ZlMjA1MntcZm9udHRibHtcZjBcZnN3aXNzXGZwcnEyXGZjaGFyc2V0MCBBcmlhbDt9e1xmMVxmc3dpc3NcZnBycTJcZmNoYXJzZXQwIENhbGlicmk7fX0NCntcY29sb3J0YmwgO1xyZWQyNTVcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1O1xyZWQwXGdyZWVuMjU1XGJsdWUwO30NClx2aWV3a2luZDRcdWMxXHBhcmRcbm93aWRjdGxwYXJcZjBcZnMyMCAlJUhFQURFUiUlXHBhcg0KXHBhcg0KVGhpcyBpcyBhIHRlc3QgUlRGIGZyb20gV29yZCAodG8gZWFzaWx5IG1ha2UgdGFibGVzKSB0byBXb3JkUGFkICh0byByZWR1Y2UgZmlsZSBjbHV0dGVyIGFuZCBzaXplKS5ccGFyDQpccGFyDQpcdHJvd2RcdHJnYXBoMTE1XHRybGVmdDkwXHRyYnJkcmxcYnJkcnNcYnJkcncxMCBcdHJicmRydFxicmRyc1xicmRydzEwIFx0cmJyZHJyXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcmJcYnJkcnNcYnJkcncxMCBcdHJwYWRkbDExNVx0cnBhZGRyMTE1XHRycGFkZGZsM1x0cnBhZGRmcjMNClxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4MTU0OFxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4NTg2OFxwYXJkXGludGJsXG5vd2lkY3RscGFyXGNmMSBGb3JtIE5hbWU6XGNlbGwgJVskc3ViX2Zvcm1fbmFtZV0lXGNlbGxccm93XHRyb3dkXHRyZ2FwaDExNVx0cmxlZnQ5MFx0cmJyZHJsXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnRcYnJkcnNcYnJkcncxMCBcdHJicmRyclxicmRyc1xicmRydzEwIFx0cmJyZHJiXGJyZHJzXGJyZHJ3MTAgXHRycGFkZGwxMTVcdHJwYWRkcjExNVx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDE1NDhcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDU4NjhccGFyZFxpbnRibFxub3dpZGN0bHBhclxjZjIgRGF0ZSBvZiBTdWJtaXNzaW9uOlxjZWxsICVbJHN1Yl9kYXRlXSVcY2VsbFxyb3dcdHJvd2RcdHJnYXBoMTE1XHRybGVmdDkwXHRyYnJkcmxcYnJkcnNcYnJkcncxMCBcdHJicmRydFxicmRyc1xicmRydzEwIFx0cmJyZHJyXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcmJcYnJkcnNcYnJkcncxMCBcdHJwYWRkbDExNVx0cnBhZGRyMTE1XHRycGFkZGZsM1x0cnBhZGRmcjMNClxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4MTU0OFxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4NTg2OFxwYXJkXGludGJsXG5vd2lkY3RscGFyXGNmMyBZb3VyIHNlcnZlcjpcY2VsbCAlWyRzdWJfaG9zdF0lXGNlbGxccm93XHRyb3dkXHRyZ2FwaDExNVx0cmxlZnQ5MFx0cmJyZHJsXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnRcYnJkcnNcYnJkcncxMCBcdHJicmRyclxicmRyc1xicmRydzEwIFx0cmJyZHJiXGJyZHJzXGJyZHJ3MTAgXHRycGFkZGwxMTVcdHJwYWRkcjExNVx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDE1NDhcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDU4NjhccGFyZFxpbnRibFxub3dpZGN0bHBhclxjZjBcYiBJUCBBZGRyZXNzOlxjZWxsICVbJHN1Yl9zb3VyY2VfaXBdJVxjZWxsXHJvd1x0cm93ZFx0cmdhcGgxMTVcdHJsZWZ0OTBcdHJicmRybFxicmRyc1xicmRydzEwIFx0cmJyZHJ0XGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnJcYnJkcnNcYnJkcncxMCBcdHJicmRyYlxicmRyc1xicmRydzEwIFx0cnBhZGRsMTE1XHRycGFkZHIxMTVcdHJwYWRkZmwzXHRycGFkZGZyMw0KXGNsYnJkcmxcYnJkcncxMFxicmRyc1xjbGJyZHJ0XGJyZHJ3MTBcYnJkcnNcY2xicmRyclxicmRydzEwXGJyZHJzXGNsYnJkcmJcYnJkcncxMFxicmRycyBcY2VsbHgxNTQ4XGNsYnJkcmxcYnJkcncxMFxicmRyc1xjbGJyZHJ0XGJyZHJ3MTBcYnJkcnNcY2xicmRyclxicmRydzEwXGJyZHJzXGNsYnJkcmJcYnJkcncxMFxicmRycyBcY2VsbHg1ODY4XHBhcmRcaW50Ymxcbm93aWRjdGxwYXJcYjBcaSBVUkw6XGNlbGwgJVxpMFxmMVxmczIyICBcaVxmMFxmczIwIFskc3ViX3VybF0lXGNlbGxccm93XHRyb3dkXHRyZ2FwaDExNVx0cmxlZnQ5MFx0cmJyZHJsXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnRcYnJkcnNcYnJkcncxMCBcdHJicmRyclxicmRyc1xicmRydzEwIFx0cmJyZHJiXGJyZHJzXGJyZHJ3MTAgXHRycGFkZGwxMTVcdHJwYWRkcjExNVx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDE1NDhcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDU4NjhccGFyZFxpbnRibFxub3dpZGN0bHBhclx1bFxpMCBGQiBWZXJzaW9uOlxjZWxsICVbJGZiX3ZlcnNpb25dJVxjZWxsXHJvd1xwYXJkXG5vd2lkY3RscGFyXHVsbm9uZVxwYXINClxwYXINCkRvbid0IHdhbnQgYSBGb290ZXI/ICBEb24ndCBwdXQgdGhlIEZPT1RFUiB0YWcgaW4gdGhlIGRvY3VtZW50IVxwYXINCn0NCgA=]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateBasic.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmY2hhcnNldDAgQXJpYWw7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcZjBcZnMyMCAlJUhFQURFUiUlXHBhcg0KJSVGSUVMRFMlJVxwYXINCiUlRk9PVEVSJSVccGFyDQp9DQoA]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateBasicColors.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmY2hhcnNldDAgQXJpYWw7fX0NCntcY29sb3J0YmwgO1xyZWQyNTVcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMjU1XGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1O30NClx2aWV3a2luZDRcdWMxXHBhcmRcY2YxXGYwXGZzMjAgJSVIRUFERVIlJVxjZjBccGFyDQpcY2YyICUlRklFTERTJSVcY2YwXHBhcg0KXGNmMyAlJUZPT1RFUiUlXGNmMFxwYXINCn0NCgA=]]></data>
	</file>
</module>
