<?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>CGSmartImage</name>
	<version>1.9</version>
  <mincmsversion>1.10.3</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOgogIDx1bD4KICAgIDxsaT5CbHVyPC9saT4KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4KICAgIDxsaT5Db2xvcml6ZTwvbGk+CiAgICA8bGk+Q29udHJhc3Q8L2xpPgogICAgPGxpPkNyb3A8L2xpPgogICAgPGxpPjxzdHJvbmc+Q3JvcCBUbyBGaXQ8L3N0cm9uZz48L2xpPgogICAgPGxpPkVkZ2UgRGV0ZWN0aW9uPC9saT4KICAgIDxsaT5FbWJvc3M8L2xpPiAKICAgIDxsaT5HcmF5c2NhbGU8L2xpPgogICAgPGxpPk1lYW4gUmVtb3ZhbDwvbGk+CiAgICA8bGk+TmVnYXRlPC9saT4KICAgIDxsaT5QaXhlbGF0ZTwvbGk+CiAgICA8bGk+UmVzaXplPC9saT4KICAgIDxsaT5Sb3RhdGU8L2xpPgogICAgPGxpPlNlbGljdGl2ZSBCbHVyPC9saT4KICAgIDxsaT5TbW9vdGg8L2xpPgogICAgPGxpPldhdGVybWFyazwvbGk+CiAgPC91bD4KPC9saT48YnIvPgo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+CjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gcmVzaXppbmcgdG8gd2lkdGggQU5EIGhlaWdodCBkb2VzIGEgY3JvcCB0byBmaXQuIDxlbT4oanVzdCBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBoZWlnaHQgcGFyYW1ldGVyIHRvIHRoZSBDR1NtYXJ0SW1hZ2UgdGFnLik8L2VtPjwvbGk+CjxsaT5BdXRvbWF0aWNhbGx5IHJlYWRzIGltYWdlIEVYSUYgaW5mb3JtYXRpb24gYW5kIGNvcnJlY3RzIHRoZSBvcmllbnRhdGlvbi48L2xpPgo8bGk+SW1hZ2UgY2hhbmdlIGRldGVjdGlvbiwgaWYgdGhlIG1hc3RlciBpbWFnZSBpcyBjaGFuZ2VkIHNjYWxlZCBpbWFnZXMgd2lsbCBiZSByZWdlbmVyYXRlZC4gKHNlZSB0aGUgbm90aW1lY2hlY2sgcGFyYW1ldGVyIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvcikuPC9saT4KPGxpPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uIGZvciBpbWFnZXMuPC9saT4KPGxpPlByb2Nlc3NlZCBpbWFnZXMgYXJlIGNhY2hlZCBvbiB0aGUgc2VydmVyIGZvciBmYXN0ZXIgc2VydmluZy48L2xJPgo8bGk+VGhlIGFiaWxpdHkgdG8gdXNlIGEgc2VwYXJhdGUgVVJMIChDRE4pIGZvciBzZXJ2aW5nIGltYWdlczwvbGk+CjxsaT5JbWFnZSBwcm9jZXNzZXMgY2FuIGJlIGNvbWJpbmVkLCBhbmQgYXJlIGV4ZWN1dGVkIGluIG9yZGVyLjwvbGk+CjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSwgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbS48L2xpPgo8bGk+Q29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXMuPC9saT4KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgaW5zaWRlIGEgYmxvY2sgb2YgaHRtbCBjb2RlIHVzaW5nIHRoZSB7Y2dzaV9jb252ZXJ0fSBibG9jayB0YWcuPC9saT4KPGxpPk1vcmUuLi48L2xpPgo8L3VsPgo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPgo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+Cjx1bD4KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+CiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+CiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIENHU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPgo8L3VsPgo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+CjxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIHVzZSBpdCBpbiB0aGUgc2FtZSBwbGFjZSB5b3Ugd291bGQgdGhlIHtpbWFnZX0gdGFnLiAgSS5lOiBTb21ldGhpbmcgbGlrZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnfTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+CjxwPk9mdGVuIHBlb3BsZSB3YW50IHRvIGRpc3BsYXkgYSB3YXRlcm1hcmsgb24gdGhlIGltYWdlcyB0aGF0IHRoZXkgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQgdG8gcHJldmVudCBpbWFnZSB0aGVmdC4gIFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPgo8cD5BbHNvLCBQaWN0dXJlcyB0YWtlbiBieSBtb2Rlcm4gZGlnaXRhbCBjYW1lcmFzIGFyZSBvZnRlbiB0b28gbGFyZ2UgZm9yIHVzZSBvbiBhIHdlYnNpdGUsIHRoZXJlZm9yZSB0aGV5IG5lZWQgdG8gYmUgc2NhbGVkIGJlZm9yZSBkaXNwbGF5ZWQgb24geW91ciBwYWdlLiAgVGhpcyBjYW4gYmUgZG9uZSBxdWl0ZSBlYXNpbHkgd2l0aCBhIHRhZyBsaWtlOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSd3LDM1MCd9PC9jb2RlPi4gIEFzIHlvdSBtYXkgdGhpbmssIHRoZSB3YXRlcm1hcmsgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSBiZWZvcmUgaXQgaXMgcmVzaXplZCB0byBhIG1heGltdW0gd2lkdGggb2YgMzAwIHBpeGVscyAocmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBUaGVuIHRoZSBhZGp1c3RlZCBpbWFnZSB3aWxsIGJlIGNhY2hlZCwgYW5kIGlmIHRoZSBicm93c2VyIGFsbG93ZXMgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgSFRNTCBvdXRwdXQuICBJZiBlbWJlZGRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgaW1nIHRhZyB3aWxsIGNvbnRhaW4gdGhlIFVSTCB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4KPHA+RnJvbSBoZXJlIHlvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBiZWxvdyB0byBwZXJmb3JtIGFsb3Qgb2YgZGlmZmVyZW50IGVmZmVjdHMgdG8geW91ciBpbWFnZXMsIGJ1aWxkIHNpbXBsZSBnYWxsZXJpZXMsIGFuZCBpbXByb3ZlIHlvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhdCB0aGUgc2FtZSB0aW1lLiAgRW5qb3khPC9wPgo8aDM+QXV0b21hdGljIGltYWdlIHJlc2l6aW5nPC9oMz4KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPgogPGgzPkEgU2ltcGxlIEdhbGxlcnk8L2gzPgo8cD5UaGUgY29kZSBiZWxvdyB1c2VzIHRoZSB7Q0dTbWFydEltYWdlfSBtb2R1bGUsIGZhbmN5Ym94LCBhbmQgYSBiaXQgb2Ygc21hcnR5IG1hZ2ljIHRvIGdlbmVyYXRlIGEgc2ltcGxlIGxpZ2h0Ym94IHN0eWxlIGFsYm9tIGZyb20gYSBzdWJkaXJlY3Rvcnkgb24geW91ciB3ZWJzaXRlLCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBpbWFnZXMgZm9yIHdlYiBzdGFuZGFyZHMsIGFuZCBjcmVhdGluZyB0aHVtYm5haWxzLjwvcD4KPHByZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij48Y29kZT48c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiAxOjwvc3Bhbj4gJmx0O3NjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiJmd0O3tsaXRlcmFsfQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiAyOjwvc3Bhbj4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiAzOjwvc3Bhbj4gIGpRdWVyeSgnYS5mYW5jeWJveCcpLmZhbmN5Ym94KCk7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDQ6PC9zcGFuPiB9KTsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNTo8L3NwYW4+IHsvbGl0ZXJhbH0mbHQ7L3NjcmlwdCZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNjo8L3NwYW4+IHthc3NpZ24gdmFyPSdmaWxlcycgdmFsdWU9J3VwbG9hZHMvYWxidW0vKi5qcGcnfGdsb2J9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDc6PC9zcGFuPiB7aWYgY291bnQoJGZpbGVzKX0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gODo8L3NwYW4+ICZsdDtkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsiJmd0Owo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA5Ojwvc3Bhbj4ge2ZvcmVhY2ggZnJvbT0kZmlsZXMgaXRlbT0nZmlsZSd9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTA6PC9zcGFuPiAgJmx0O2EgcmVsPSdzaW1wbGVfYWxidW0nIGNsYXNzPSJmYW5jeWJveCIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0naCw1MDAnIG5vdGFnPTEgbm9lbWJlZD0xfTwvc3Bhbj4iJmd0Owo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjExOjwvc3Bhbj4gIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSdoLDE1MCd9PC9zcGFuPgo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEyOjwvc3Bhbj4gICZsdDsvYSZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMzo8L3NwYW4+IHsvZm9yZWFjaH0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xNDo8L3NwYW4+ICZsdDsvZGl2Jmd0Owo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjE1Ojwvc3Bhbj4gey9pZn0KPC9jb2RlPjwvcHJlPjxici8+CjxwPkxldHMgdGFsayBhYm91dCB0aGlzLjwvcD4KPHA+TGluZXMgMSB0aHJvdWdoIDUgdXRpbGl6ZSBqUXVlcnkgdG8gY2FsbCBmYW5jeWJveCBvbiBhbnkgbGlua3MgdGhhdCBoYXZlIHRoZSAmcXVvdDtmYW5jeWJveCZxdW90OyBjbGFzcy4gIFRoZSBmYW5jeWJveCBqUXVlcnkgcGx1Z2luIGlzIGluY2x1ZGVkIHdpdGggdGhlIEpRdWVyeVRvb2xzIG1vZHVsZS48L3A+CjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4KPHA+TGluZSA4IG9wZW5zIHVwIGEgZGl2IHRvIGNvbnRhaW4gb3VyIGFsYnVtLiAgRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgdGhlIHN0eWxlcyB3ZXJlIGluY2x1ZGVkIGlubGluZSwgaG93ZXZlciBhIGNsYXNzIHRoYXQgd2FzIGRlZmluZWQgaW4gdGhlIHN0eWxlc2hlZXQgc2hvdWxkIGJlIHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuICBUaGUgY2xvc2luZyB0YWcgZm9yIHRoaXMgZGl2IGlzIG9uIGxpbmUgMTQsIGp1c3QgYmVmb3JlIHRoZSA8Y29kZT57L2lmfTwvY29kZT4uPC9wPgo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPgo8cD5MaW5lcyAxMCBhbmQgMTEgYXJlIHRoZSByZWFsIG1hZ2ljLiAgSGVyZSB3ZSBjcmVhdGUgYSBsaW5rIHdpdGggY2xhc3MgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgYW5kIGFkZHMgdGhlIDxjb2RlPnJlbDwvY29kZT4gYXR0cmlidXRlIHNvIHRoYXQgZmFuY3lib3gga25vd3MgdGhhdCBhbGwgb2YgdGhlc2UgaW1hZ2VzIHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyIGFzIG9uZSBhbGJ1bSBhbmQgYWxsb3cgY2xpY2tpbmcgYmV0d2VlbiB0aGUgaW1hZ2VzLiAgVGhlbiBjb21lcyB0aGUgcGFydCB3aGVyZSB3ZSBkZWZpbmUgb3VyIGltYWdlcy4KPHA+V2Ugc3VwcGx5IHRoZSAkZmlsZSB2YXJpYWJsZSB0byB0aGUgc3JjIGFyZ3VtZW50IG9mIHRoZSA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIHNvIHRoYXQgaXQgd2lsbCBnZXQgdGhlIG5hbWUgb2YgZWFjaCBtYXRjaGVkIGpwZWcgYXMgdGhlIGxvb3AgaXMgZXhlY3V0ZWQuPC9wPgo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+CjxwPk5leHQgd2UgbmVlZGVkIHRvIGRlZmluZSB0aGUgdGh1bWJuYWlsIGltYWdlIHRoYXQgd2UgYXJlIGdvaW5nIHRvIHVzZSBpbiB0aGUgZ2FsbGVyeS4gIFRoaXMgY2FsbCB0byA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gaXMgYWxtb3N0IGlkZW50aWNhbCB0byB0aGUgZmlyc3QgY2FsbCwgZXhjZXB0IHRoYXQgd2UgdXNlIGEgZGlmZmVyZW50IGhlaWdodCB2YWx1ZSAoMTUwIHBpeGVscykgZm9yIHRoZSB0aHVtYm5haWwsIGFuZCBmb3Iga2lja3MgSSBjb252ZXJ0ZWQgdGhlIHRodW1ibmFpbCB0byBncmF5c2NhbGUgPHN0cm9uZz5iZWZvcmU8L3N0cm9uZz4gYXBwbHlpbmcgdGhlIHdhdGVybWFyay4gIEkgYWxzbyByZW1vdmVkIHRoZSBub2VtYmVkPTEgYXJndW1lbnQgc28gdGhhdCB0aGUgc3lzdGVtIGNvdWxkIGVtYmVkIHRoZSBpbWFnZSBpbiB0aGUgSFRNTCBvdXRwdXQgaWYgdGhlIGJyb3dzZXIgc3VwcG9ydGVkIGl0LiAgVGhlIHNjcmVlbiBjYXB0dXJlIGJlbG93IHNob3dzIHRoZSBlZmZlY3QuPC9wPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBZ0dCZ2NHQlFnSEJ3Y0pDUWdLREJRTkRBc0xEQmtTRXc4VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpML3dBQVJDQUNoQWZBREFTSUFBaEVCQXhFQi84UUFIQUFBQVFRREFRQUFBQUFBQUFBQUFBQUFBQVFGQmdjQkFnTUkvOFFBVUJBQUFnRURBZ01FQndRR0J3UUlCUVVBQVFJREFBUVJCU0VHRWpFVFFWRmhCeFFpY1lHUnNTTXlvZEVWTTBKU2tzRVdKVFJpY25Qd0pGV0M0UmMyUTFOV2c2THhKalZFWTdKa2s3UEMwdi9FQUJnQkFRRUJBUUVBQUFBQUFBQUFBQUFBQUFBQkFnTUUvOFFBSXhFQkFRQUNBZ01BQWdJREFBQUFBQUFBQUFFQ0VTRXhBeEpCRXlJalFsRmhrZi9hQUF3REFRQUNFUU1SQUQ4QXRmVzlWdWJLNzAreHNrZzladnBHVlpMZ25zMENqSnlCdVQ0Q3RMdlZMblRMRlk5UXZOTWkxR1orV0RJY1J1TWdkTnpuZjZWMDRoazBYMWFLRFd3dll5TWVSbVZzS3c3K1pmdW56cUozTWwxSnd0SUhrdUpyTk5XZ1d5bXVBZTBlTG1IWE81R2VoTkJOTHJYTktzWkhqdXRRdDRYUndqSzc0SVlqT01lNGcxdEhyV2x5M3dzbzlRdG51V0dSRXNnSk8yZHZoVEZGREhKeEx4Z3p4cXg3R05RV1hPM1pIYjhCVFhERXFjSjhGdXNZVnhlUUhJWEIzNXMvT2dsYjhTNkpITzBNbXFXcVNxNWpaV2ZCRERZZytGYzU5U3VFNHRzZE9SazlXbnM1Wm05bkpMS1JqQjhLaTlycWVtVzJuOFNXZDJCSmNUMzF3RWdFUlpwYzdBREE4ZmxTcXppdU5MMW5oYzZoem93MDU3VnBDQ1FKU1JoU2U0MEVtbTEzU2JhOTlUbTFHMmp1TWdkbTBnQkJQY2ZBKytuQ3E0c2tnajBlNTBiVnRRZTF1WkpYV2UzTmlIZVFzMnpxMk10bklPZTZyQnRvUloyVVVEU3M2d3hoREkvVWhSakorVkEyWGV2SmE4UzJXa2xjaWRDWGsvY1kvY0h4NVcvQ2o5SlhQOUxwTk55bnF5NmY2d0J5NzgvUGpyNFk3cWl6eDZ2cSttYWxxVnJwMGJDN25GemJ6dGNjcm9zUjlnQk1iOUQzNzgxT1ZycU1WMXhkWmFpd1pJZFEwb0pFeFU0TW5NU1V6M0VZTkFzNGI0cHRkUjB5elcrdjdVYWxNR3pFQ0ZKUE1RQmp4d0J0VDdIZVcwMXhjVzhjeU5OYjQ3WkIxVEl5TS9DcTd0N2l6dWZSN0RvMGNiU2FzLzZxRVF0enE1Zkt2bkd3eHZuTlBkdmZ3Nkx4TnJhNmc3cTl6SEEwR0kyYnRpSStVOHVCdWM5MUJJUDA3cFF0bzdrNmhiaUdWR2RITFlES3B3eEh1SkFybWVKTkVXS0tRNnJhQkpTUWg3UWIvbDhhaDJnUmgyNE1FaUJnSTd0c01NNElKSU5MQmJ4Zm8zanI3RlAxMG1QWUhkSGtmanZRVGtISXlEa0dpa09pa25RZE9Kem4xV0xPZjhBcGRRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGUmx1RHJmbDVGbUVrWVVLb21WaVFBUDdyS1B3cVRVVlpkSlpzd2FOd3BiYVBmZXVMY1N5U0JaRVJPaUlybFNRQWNuOWdkU2FmNktLaWlqclJSUUZGSHdveDVVQ0RTOUxUU3hkaU9WNVBXYmw3bHVZQWNwYkdRTWQyMUw2TWVWR0Q0VUJrK05GR0Q0R2pCOERRRkZHRDRHczRQZ2FER1RSbXM0UGdheGcrQm9DaWlqNFVCUlI4S1BoUUZGR1BLakhsUUZGR0Q0R2pCOERRRkZHRDRHakI4RFFGRlp3ZkExakI4RFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVZUGdhUGhRRkZGR0NUakc5QVVWbmtiOTF2bFJ5dCs2M3lvTVVWbmxiOTF2bFJnK0IrVkJpaWpCOEt6eXQrNmZsUVlvckpVanFDUGVLQXJIb3BQd29NVVZubGI5MXZsUVZZZFZJK0ZCaWlzNFBnZmxRQVQwQlB1RkJpaXM4amZ1TjhqUnlQOEF1TjhxREZGWktzT3FrZThVY2pmdU44cURGRlo1Ry9jYjVVY2ovdU44alFZb3JQSTM3cmZLamxiOTF2bFFZb3JQSzM3cCtWQUJQUUUrNFVHS0t6eXQrNjN5ckZBVVVVVURicVRFU3g0Skd4NmUra1hPMzd6Zk9sbXFmclkvOEordE4rZDhVRzVrWWsrMDN6ckhPeC9hYjUxcG5ldFNhRGN5UG43emZNMXpaM3hzemZNMFpOYzNvTW1SL3dCOXY0alhNeVAvQU40L3pOWUpyVW56b01OSkorKzM4UnJpOGttLzJqL3hHdDJKcE8yMUJocDVmKzhmK0kxMzRSMUE2a1k3ajJoOXN5WUxFN0NrTHR2MXhYSGdlZG9XZ2p4ekNTK2tRa2RCMU5CTTd4MkYzSjdSd0NOcytWY0M3ZDdINTExdnY3Wko4UHBTVmo0MEc1ZHNmZmI1MGRvL2V6Zk90TTVyR2ZIclFiRjIvZWI1MW9aSHo5OXZtYXh6QUhIU3ViTUQzMEdXa2NmdHQvRWEwTXIvQUw3L0FNUnJSbTNyUW5GQnNaWk1nYzdmeEd1VHpTRDl0LzRqUVczcmk1b05YbWtBMmxmK0kwNmNNeU0rcXlndTdBUW5xU2YyaFRMS2RzMDY4S0hPclQvNVBYL2lGQTROSTJUN1I2bnZySGFzUDJtK2RJM3VWRHZueElybWJ0UjNpZ2NSTTNUbWI1MW50Vy9mYjUwMEhVWTFKSE91UjRtdWI2cW1OblgrSVVEMFozRFlMSEdPdWF3YnZsNnNmblVOMURpcTFzY21hZFZ4M2MxTTQ5SWVselNkbjZ5QWZOcUNmM2VzcmJxVHprbnVxUDNuRkZ3U1FraEh1cU5YWEVsczhxWm1UczMyRDgydzk5STVOUnNaRWtjWDBhaGNrc1BMejhhQ1FXK3U2cnFsekxhNmRJSlpvd0RKelB5ckdQTStQbDFwMWcvU2ZOT3Q1cTBrVFE0TGRpQUZIbWM1cXNMVGk2YmhKQjZ0SDYyOXlyT3N6ZXlEL2UvR21IVXVKZUlicTZhU1NTNVJnUVNlN0k2SHBRWHh4UnFWN29jVnJjV2NzenFVVm1TWWhsa0J4dnR2bWwzRkZ5N2VqdlVaMUxJL1pxUmdrRmZiVGJOZWZoeFZ4TnFOM0hjM2Q5ZTMwdzI3TmwyS2c1SGRqOEt0NXRSdk5VOUNtcTNWN0QyTndTUXlrNXhoMC9HZ3FtYTh1aHE4eWk5dVZSbEJHSm14dDhhYzlPdmJpTy9RdGUzUElSZzgwckhjL0dtSjVRK3AyNVljM1BFUnYxR0tjWW1DVHh0eUhQZmdaelFMZGV1cnY5Slcwa2Q1Y3NuWjQvWE1Od1Q0R3JEMEtHYTZ0cktkcHBzUEdySDJ6NGUrcTAxUW5sZ3dDQUdJcXp1Q3B1MDRldFhPK0U1Q2ViTzRQL09nbDh6eGlHT0ZwQ0M1NVZHKzV4bnI4S3I3aXkya2kwL1VwVXZycVA3Rjh4aVRBSldSUU1EcmpHYzc5Y1ZON216bnVSYnNzVGtKTXNnSUhVak9LWU9MOU5kcmFlTllwaFBMYnlvaUlvOXRoeWxWM0JQZWVtS0JyOURkeEpKZmFyYnp5U3lFd0NSUzdsc2R4RzU4NmV1STdDd3V0T251bkVndllMZGxpbEU3cmdEZm9Eang2aW1EMFZXOTNZNnpyRU1rYjI4NldXTVNqN2pjM2VLYk5WdCtKRnRuZTUxN3RvU3BMeHBiZ0Fqd3ozVURYcGRsZGF2cU1LRzR1Skk0b0pKR2dhNGRPMWJLcU1rSG9NNXA4czMvQUtObTRqdTdxNWdnZVJXUWM3U3RKN0lKVUU5d09mY01aOGFqZWdhdU5LMSswRnhJa2NFc1VxU083WUM0NVdCejhLYytPTFJMbzJlcTJjNGx0K1Rzbk1XNHh6WkRlZWM0K1ZCcHFYRmtwZGhienl4WUo1RldSdVlmSHAxOHFlL1NWZDNJOUhIQ2N5elRSeXlNcGNyS1FUOWoza0hlb0J5VzRraGNPNkJUek1yc0R5TjQ1eDVEM1ZPdlNTREo2Tk9EOGtra3BrbnIrcG9LcHViNitWVllYdDBOOS90My9PdTl0cVY3bFZON2NrZjU3L25TZlVFVDFJeUkyU2tuSytEME5iUjJGNHVuUjZpMXZKNm04blpyTVI3SllkUm54b0gyMTFiVTdRTzl0cVYxRTdxVmJsbEp5cDd0elRkYzM5NmNrWHQxelpIU2R0L3hvaWxIWURmcDFwSGRrTmJ0bkIzSFh1b0YxcmRhZ0M2UzNOMnUzUnBuMi9Hc1RYbDR1Q3Q3YytYMjdmblNmUVZTVzVaWldrN0lKelB5QUZnTWpwbnJXOThxTEk1aDUreTVqeWw4Wng1NG9POXRxTitqaHhlM0lLbktudFcyUGQzMUtSZFNYc1NYME54T2dmYVdOWlg1WTVSMVViOUQ5NGU4anVxRnBJQXVOcytkUFhEK3BSMkY4ZTNhUVdjdzVaa1h3N21IbXAzeDNqYnZvSmJhVDNNRFJTdGNURWcvdFNzZlB4cVZlbWEzdUg0U3NieTFtbFJ1MVJXYU55dlZXSTZlZGQ3UGh5RFZFaVRuVlpjWVlqOXZ3T2ZkaXM4Y3pUM0dnMi9EcldydGNDTkp1MVpoK3lTdUFQRWp2b0thNFU5ZkhGMmpjOTVjbFBYb1F5dE94eU9jZFJtdlV4Nm1xUTRXNFdnaDFxd2x1VW5XZU80UjFWbUM0SVlIY1kvblYzMEJSUlJRTldyZnJZdjhKK3ROMmFjZFcvV3hmNFQ5YWJHb01rNzFyellyREhHK0RURnhKeEhIb05vc2trTHVIeUF5NHdNVUQ0eml1WmtxcFg5Szk3SEovWjdSeDAzTENsTmg2VzRUSVYxR3pDb1RzMEJKSStCb0xOTGQ5YU14eDAycVBhZnhsb3VvUks2WHFLemZzTm5tSHdwYituTk56L2JJL2tmeW9IRW5hdUQwUTNVVjFFSllKQkloSkFJMjZWaVEwQ1Z6dmsrTkxPQTJIcXlzZWtsM0tVYjk0WjZqeXBqMTErVFRqdXdWcEVWc0hIc2xnQ0trdkRLQkpyZU5SaFZrT0I0YlVEM3FHMTVKOFBwU1VtbFYvd0QyeVQ0ZlNraG9OUWE1VFRpQ0o1Q0NRZ3pnZFRYVHY2VkZPTmRURnBwZ3RSS1kzdVR5bGhuT1BEYnhvR0RXUFNSUGIzVWkybHFCR3UzMjNYUGYwcEZINlZKU3ltU3lqNU0rMWc3NHFLWDF2RDJUTUgrWUpOTWtpb2lmZkdmZWFDN2RONDMwblU1WTRvM1pKSHprUHNGMjhha0N5TElvWkdEQTlDRFhtK0c0RWI1RXBVK0lxenVCZUpSTmJ6UjMxNkFzU2hZMU9mblFXRWE1T2F5a2lTSXJvUVZZQWdqdnJWK2xBbmtPMUx1REhlWGlPK0xPZVJJQWlwL3hESnBCSjBwWndSLzFqMUxiZnN4LytRb0VNOXkzYXZ2KzBmclhBenUzZlRoUGFxSlgvd0FSN3ZPdVl0b3oxejhxQ0JhKzUvUzhwNytWZnBVWTFqV1UwK0VxcEJtWVlVZUZUVGlDMlJkWWxBSFJGN3ZLcWcxNlpwTlRteWM0WWdlVkFpbnU1WjVHZVNRbGoxcmdKQ0QxM3BWWTZaUGZ2N0lLb09yR24rMzRidDBBN1RMSHpvSStsMFZYQlk4Z09TdFNmVGVLMnNiVTI1Z1dhMUE1bFZrQjVUNDBvVGh1eGRkNCt2aFcwM0NUVzFsTE5iUHpFRG1LTjRlRlp5eTlYYncrTDhtVjN4RERmVHlhbmMrc0ZFUlQ5MVJzQU8rbjIwamtFMGJYSEswSXh6S2k0SkhobnVxTHh5eUpjTUhYbHdTQ25jS21kdUJJcU1DTUVDdE9WNHZCMzFLZlJwOU1TTFM5TW10YnpJTHl5ejlvcFh2SExVdjBkSm45Q0dzSklVWnpPNEhLdktNYzBkUVJVd3dxZjJRNWZRcHJCSC9mc2Y4QTF4MFJWODJuOGlXMGpTeFFoSEdXZDlzSEdOeG1sQ3VPYmw1d1dVbko1ZWxLTlRUdHREbG54Z1JjcmJlUnh2U09FYy8zUWNBS1RnYkRPOUF0bmlnbGpMM0lrWlkvYlFJMk10NW51RlNyU3RZMUMzNGFnc3JCa3RtZWN6Q1NSTXF1RGpCSjNPZHNZMjYxcm8wT25hVGJSNmpxTUNYRFNZN08xSzh3T1AyaU84Ky9hcE54WGJhWHJsdnA1dGRTZ3RKb01Sc2dRcUZYT2NBQWJZOEtDVGFSTmZYSEFLYWhleE9OUWUzOXVNTmxjZzR5ZzdnUnZTVGpEU1UxT1FhZkVwU05jWjVDUUZCVTlRTzQ3L2hXcWNZNlRvOXREcGNWM0JJcVFCRkRCdGdQSUNtdldPSnJTNzdTUzF2U0hsVEplRkNyTmdiWlBkamY1MERiNk9yQ2JTK0lMcEdFZmFQRTZHRG13NFFPQ0dJNllQejM2VWwxeVdlN25sdG9OUG1rY2RvZ1ZjRGJmNmJVcTRIbnM5SnZudjcrK2lUMWlKb2l4SkxoMndjSGJ4Rk9TVGk5bXVvTk9qVml4ZkxKdThvemduSnh0M1lIa2FDdlhzN2JTOWNnVnJVM1YrRVBOSVAxTUFLQTR3UjdUZWZRZWRTMkd3VFZiTjlKRVUwYzE0V2o3Y3I3SUJJSU9ldUFQS25XeTRYMUxWTGp0Z3FReE1uTDJqbmJ3SXgzOUtlK0lORy9SSERkOWUyMTFLdHhCYnM2ZGtpb2VZRGJCRzQrdEJIcmIwTTI2eHFyNnBLYzlTSTg5L2NQblNEMHY2ZEhwZkJ2RCttMjVZeFcxeDJLRnVwQ3hFRE5NY043ZlJjczh1cDZqTTdMMG52WkdBK0dhZC9TZ3hsOUgzRERzU3hhUlNTU1NUOWw0OWFDQjJkL3BiK2l5LzBpNGRVMU9DY01pSDd6NWNFRmZoa2ZDbUtIVFk1TEtKMUpWbVVIeXB5MUtPSDlEdnlBaHlZeWM1eDFydHA5dVRZUW5HM0wzRHpvR1gxZTZqUXJnT3ZpSzB1VUJzOEdUN1ZqN1VaVWdyanZ6ME5XR25EVWMyak5jS3dFZ09mZUtoK3ByYnZadUJNbk1xY3d3TzRIZmVnNThNUnc1djhBdFdDLzdNZVRQZWVaYTIxYUlKWmlSVjJMNDYxdzBPNGhFVnlHbTVIYkM5TzcvUXBicTZ3TG9pTjJ2TS9iYmtIMmNZUGRqcjhhQnZuTnBjTmJlb3dTeHVVV04wYVR0REpKbnF1d3dQTGYzME9XdHlWbFVxd09HQkdDcEhpS0lqQkN0c3lTOGtvWVNsbEcrT3V4UFErRk9Fa1A2VXRaUFYrU1ptT1pKTWI4eDhjNzR4MU5CWm5vNTF1M2l0SWJHNHVJa2VNaDRPWTRPQ1NTdWZ4SHZOU3ZqZlU3SzN0YkxWWkFYZ0JNSkNZNXNuQkhYdTJhb2J3N2NhRmJXZHFzZWl5WFZ6Z0xKTk9WU05pTy9PYzRIdTN3S2xFV3JXdXN2ZDJOeHBObzhjWjVvdzZDUUU0MjNQdk9OdkhwUU1XaThjNkxOckZsWkxhWFlra21TTkNRbUF4SUF6djUxYTlSdlRZZEFUczQ0dExzNHJtSnRpYlpBU2ViQUtuSGppcEpRRkZGRkEwNnYrdGlIZHluNjAxbjQwNmF4K3RpL3dBSit0Tlo2VUdqbkJxck9MWTdqV1pidWRGa2tpajJSYzdJTmgrUFdyUWx4eU5ud3FOYWhESEZvVjAwYWNvZVBKK1lvS1B1OU5samNGbEk4YVF2QVEyTUdwbGZoUk1SanJUUFBHdk1kaG1nYUxkNWJhWkpFWW80NkVWWmtFUUdueFM5b09ZZ2JaeWZuVUVhMzdRcXdYWlR1ZTRWTE5KbmFhd1JTMmV6OW5HVGlwZStIWEgxbU51U3dPSE0vb1pQOHgvclRpNDg2YnVIQi9VeWY0Mit0T0xnRUhiOGFya1pkZlhtMHFVRFlCbE9mY3dxVWNONDlZaHpuUGEveXFOYStCK2hybnlYUHlxUjhOTVBXNFFSakQ1SG50UVBkL2oxdVhQWGI2VWthbGQvL2JKUGg5S1JtZzVucjVWRGVNb28zRWJsY3VycnY4RFV5WVZYL0hGM0phSzZrQWt5S3did0hLMjFCRk5RUlRHQVI1Vkg3cTNqTzRYcFdialdwWGN4dEltT25URkk1OVFJSURZMzZlWW9OVGJxVklWY2swODZIQjZuZGxSSm5uVGRmQTB6UVhoNXhJRndvNkhQZlRoWVR5eWFwRGdFZzdkZWdyUDExL1dZWGM1cTc3TCt3VzMrVXYwRmRHclN5SDlYMjMrVXYwRmRXclRrVFA1VXI0TDI0bjFJZDNZS2Z4RkpaQUFDS1hjSVFzbkUxN0pqMlh0aGcvOEFFS0IzdnJEdE9hV0pkeDFVZC9uVE0wWEtjZC9oVWxzN3VDOWphUzNjTUF4VStJTk1la290M2RYbmFuT1B1K1dTYUN1ZU1iZ1dsMWV6bmJzNFZJK1ZWQlpXajZ2cWJBa2hjODhqZkgrZFc1NlNvMVJ0VFJ0MkVDNDkrQlZlOE1RRkxPYVlETE8rQWZJZjZOQTdKSEZieGlLSlFxcjB4UVh5TnF5M0tvM085Y3k0QjJvZjZMYlpuN1JNYmJqZndwN2pua3VWVlpRdlVqUFhKcU9QcTY2ZEFVbWhQaXB5Q0NmRVZ6c3VKQUpFTEFoQWVwRlluN1hsNk05K1BIMWw3N2FjVGFGNnZJYnVKUFpjKzFpdGRLY3BHSTJPZVhkVFU0U08zMXpSeWdiWmw2K0JxTFh1aTNXblhNbG82OW5kUnR5RlQ0N1lQaGl0dk9VRFpzL09yQzBrYy9vYzFVWTVzelB0L3dBVWRRRThLY1gyMkd1TGJUeVd3QW8xQ0htT1NBTnViekZXTkJwZDlwZm9oMVcxdm9WaXVESVg1QklzZ3dXajcxSkhjYUNDUThoaW10NUVVOXRIZ2dBTnZqWUg2MGh0bFpKWmJkWWdvZFZEWklQVHd4N3V0S1lvcFNRdlo4MlJoZVhiRktMZlREYXBKUE93UjJURVNuUHROM1o4Z042QlhFNnJhTERkU2lPT004OGJPY2V6akpBOXczK0hqUzVicTI5Wm41V0gzeWMrTlIyU1AxaG1rdXVXZDJVcG45MWNZd005T3A2VkdwNzIrc0x5ZFlIVjRneDVlY2tIRkJLTlhlMmFhV1FaREJBK1Y3eG5jZktucUdkSklVYUloazVkNUNOaC93QSt0UXF3bU4xY29ibzg1WkdCQzlDUVFjVktrdlJ5aFVqUGdpS05nS0haVjJaRml4bTlsUk1DR0M1TGUyTno4S2VlSE5YV0RYSkNxS3dFTGN1VHQxRlJLNTFHVW9Va2JCOEFlbmlLN2FCTDJ1cTRQc2pzempiT2VtMVNiMjY1K3NrazdYVm8yb1BmQThpS3FxTmdvd0JUaHExZ2RTMGlhejluTXE4cExaeCtGTlhDL0l0bmtZQ2c0eWNDbjJXN2lqQUJkYzkyOVZ5VmpjZWk3VlpKUzYzMXJnbmNIbUpIdXlLUitsaXlleDRMNGZzbllNMEUzWnN3NkVpT3JNdTlVYUI0WUlpc2x4T3hXTmU0WTZzZklWWDNwa0RmMGQwcnRNT3d1bTVpQmpKN005MUJVOTR4ZlRtRFl4eXIwOGpVaTRYc2x1dE9qT2RsY2pyVVlaSkpyY3hSUnU3RWJLb3ozMUwrRjNGbnBCN1pzRVNPTUFGaDNkNDJvSmE1aGcwL2tZQUtWNUJzT3ZLYXFiVjQ0a3RabDdVb3doYktqSHRFNHF6N2kxbXV0TU53dk1zQ0ZaR2RsSUFVRGMvalZjYXZicEJGY3JMS3F5c3JEbEQrN0cxQWg0U3RvcGt2ekpHckZJd1Z5T2gzNlVwMTdtT2xxZ2ZtVHRWUElFRzNYSnoxUGZTZmhrekpZNm9ZT1R0REV2THpianZwTFBOcUNNVGRQRzhhN3NzYTlQT2l5YjRqakpwZ3VvcEpvcmh1YU1LRVJrKzhNZmhVaDRldHJTMnNwNUppVnlWT1hrd1cyNkZSMUh3cHIwL1ViWjVaVVNUSE5qT1RzY2Z1K1hTazZMS2w3Y3JMTUFXWUVNQjFIbDlLazIzNVBYaVluKzcxRlhpTU5zeXdGYzRrQTVXd1Q1ZFIxMnBIYWFyYzJxUlNpK20zTEtGU1U1akp3Q1YzMlBUZWtrYUpFSGFYTEJ6eS9mM0FIdTdxU3RhTUovc3lBR0dNL21hcm1tdkRXc1hNdkVHblF5WGJ1R3ZvbHl6RTVITnY4TW41bXZRWjYxNWY0V0NyeFhvS0F2bjF1RTRKKzk3WTM5MWVvRDFOQVVVVVVEVHJINjJML0NmclRVVFRyckg2MkwvQ2ZyVFV3eFFJdFJXV1N4bVdFa1NFYllHU2ZLcTc0azFTOEdreWhZMzVPendER2RodjMxWnJEUHhxQWNTMnl0cHQ3bHlpaFNjZkhwUVZhbDFjM0pmTE1lWEdTYVF5WGtwa0lHZWJwaW5xMENSMnM3a0FLMlZYSXdXSGpUVkhDcjNaYmZzd2NsZ003K0ZTM1RXR0Z6eW1NS0xlNW1paENsWFZuR2QraEhqVWk0YVNUMU9SMlBzRnVWYy9qVWQ1MWtrWmdOaWRzOXdxYldGdUxXeWloR2RodjcrcHBQOEFMWGt2T3BlSW5YRG4vd0FtVC9NZjYwNFBta0hEZy9xWlA4eC9yVGk0OHFybVFYbHVsMWJ5UVNaNUpGNVRqclNqZzcxdUhXT3d1NVZkUXk5azRHT2JZN2Urc1NZQXllZ3Jod2FicTkxNkcrbUNwQTI4VVliUEtOOEgzbWdtZCtNM2tudytsSXp2UzIrL3RrbncrbEltb09iYi9Pb1R4OUR6MjFzd3dDWDVTRDNqQnFiRVZFZU9vODZaYnlmdXpZUHV3YUNwRnRnTlV3UXJ1UGE2REFIaWFiZFVRUGVNVUdRVGdBZDFQZlp2RzA3ckh6RWtndG1tc3hHTjJubHljYkR2elV0MDZlUEQzeTE4Y1l3VUhZWktxUHZBNy9LbjdoNjE1cDViazlFWGtYMzB3UjU2NzVZbXBadzloZE9Za2pkenRTTTU1YnEyckVmMWZiZjVTZlFWMGF1ZGtmNnZ0dW42cGZvSzZ0VlpKMy9HbmJoVEg2VW1HUm5zZkgrOEthM0hmU3JoWUgrbHN1d1AreEhIL3dDNHRBeTIxek5ZM2tra0RsVHp0MzdIZXBEdzY2OGx3NTZ1eWo2bW9xazhVOGtqd3lwSXZPd0pRNTN5ZHFsR2dxRnRGa0IzTWh5UElEL25RVnA2VVU3VFVyeU1kOGEvSDJhcjIwdkd0dElpU0llMHpOMDk5V1Z4MnF6Y1N6Um43cGlYNlZBYm5UUFUxNVk4bFFTVkI4eFFORFg5ekhMOW8yYW1PaWFXZFNzM25La3FxOVBNOUtoaVdVdDFlckh1Y3RqSGNCVnRhRUlyUFRqQU1EbTJPS3psZmtlandZUzMyejZpcGJ3eUM1ZFhMc3FzY2MxU1BocVMwbWplM25UbjV3Unk4dmwxcDkxL2htMHVoMnNXRWw4UWRqVWR0Yks0MDZiazVjTWYybE5XVFRqbGx1N1NEaHZPbjMwbHNIWm9UbkN0M1ZOdlNQcHhoNGd0YnIyUkRxRnFGWjhmZGVNREh6QnFJNkxhWVl1NCswTzVKcTIrTjlPRjVZNlFlVUVSdVEyZTVTZ3lmd3FzdlBsdGJTcnhIUGJ5TXhJa1RjbnBsaFZvOENHTnZRdnFKbHlFOWFrSjVtNXUrUHZxRGFiRTF4eGs1a1BNUVVCSTc4SFkvR3B6d0RDMDNvWTFDTlRrdGR5QUVqempvR2g3cUlqRnRiRUgrL2tmZ0tqMnFQZFBlOW8wemN5a01DeE9QRHArRlNkZEtuNWo3Y1lIUW5QMHBCcVdnWEZ5ckxFRVk0M3pKZ252L2xRSWJDZEpRVmZsRGpmQk5NdXFXS1NyZHlTRlJ5Uyt3UDJqdjlQR25XWFNOUnNFOVlrV0lGUjFFZ3lQY08rbXFTVVNRM0FtTE5MMjR5NU81SlBTZ1RjeTJuWUFFdmx1VlNPbzV1LzhLMmdrbVVkcDJzMkZ4N1N2ME5Kcmt5SzVTS1BNdk1BaTQ2R2xjeFJVU0ZEbmxQTWR2R3MyL0hieDRjWE84YUtrbGFaUTdrbGlNYm1uamhzRWFxMkIxUWsvTVV4VzJleVZSNTcxSXVHVUg2U1k5QUl5YzU2N2l0T1Z1N3RZZHZxM3FrSUdTRlU3S1A1MXRIeEhidEFWTnZJOHhQMysxMjM4c1V4em4yU0NSanZ6dlNOVzVFWE9TT3V3eFJEN2U2bk5jM1ZyYzI4aXBjMno5cEVYUHNFOTRiRytEU24wZ2FsYXg4UGFMZmFwWXJjcTgzTThLUHRrcHZocWpzWE14VnM0SG4xcHk5SmFrY0dhQ3VkaElBYzkvd0JuUVFMVjlUMGk4UmpZMlUxdWtnT0FoQVpSNy84QWx2Uy9obWZrNFpXSU4rc3VabEJIVFpZelVYV1BKQXdRRDMrNnBIcDFyY3cyTnJieXlRV3FMTEk2dUY1bU9WWEpLbllqQThxQzRZTGVPNTRXU055TVBaWXg0K3ptcUcxYUx0M2FTYWFOVUtNVThTVGpwNWJWUGJhVzVsdHBZUk04aXhXdk1qdU1rWnlENWJrZUhTb0hKcDhqS1RKMmFzUU44N2swQ1hRWXpiMjJvZGxseWljcjdiRTc5UERGSlpyZWRyUnBwa051amphVTViT05zWUc1cCswcXdGckhER3JjL3JqQldJSFFjckhLL0d0TDdUNTdpWCswQ1FnWUhOMDIyK2xadDUwN1lZK3VQdjhBOFJpMGpqZ1o0b29tWWN4ekk0Qlp2Y2U0SHdGVFBoL2hHUGlwYmlkTHRyVXdGVXcwZWViSXpYSFQ5RGpCWjdpYm1ibTJFWitwcFRkTmM2ZHlKWVQzRVVUdVRJeVRGU2R0aHQ4NjA0bjVmUTR0eEd6dnJCU01kQUlUOGUrdVRlalcxdDlTdElCUExNMTB4aURsVGhRQm5tWWRNNUk3Nmo3YXpxRGpzenFWNGNlTTc0K3RkN1c5dllBWnZYYmxXeDkvdFd5UGQ0ZDlCTXJMMGFwcEd0YWZlUjNTVFNSM0ViSENsUnlnNXhqSnEwcW9MU05XdnB1SjlMRWw3ZFNLMTdDQ3BtWnR1WWRkK2xYNmV0QVVVVVVEVHE0KzJpL3duNjAxdDFOT21yL3JvdjhBQ2ZyVFBQTEhDcFp6amFnRHNEVUs0dWh4WWFpdlFOSGxjZjY4YTE0cTQ4WFNVRU5uR2ozTDlPWW5Dang4NmJmV2RRMWJnNXRUdnBBelRoeWdWUW9WUVFQcUNhQ0VYRnU3V3lvektNZ2ROc1UwWENQQ0JFR1hCd1RnWUk2N1ZLSGJzYmRwR0h0Z1pUSS8xbW94SnpHVjNicXh6V2U3dzd6K1BEYzdyTWVBeTVPQVNLblNYTUw3SktyZjhWUURPV0E3cTAxSkdVeFNnZTBSeWsxcHdYeHcyNE9pcHY4QTlvMzFwelk3bndxcnVDYjY4azBkVWptYjJISU8vanZVMWkxQzVRRHR2YVhvY2pjVUR1dzV0cTA0Q2NGTEVlQUkvRWl0SVprbTVYUTdWeDlIczNNYk5jN0NXUmZreG9KdGZIL2JaUGVQcFNRMHZ1SURMZXluY0tDTi9nS2E5U25GcWpjdEFrdnRTdHJDSjVKNU1LaWxteDRDcXgxbmpkdUk1RXNMUzA3S0lNWkRJN1pibEFJNmQzV3QrT3RVWVdKaERlMU9lWFBsMzFIdUdyVlRhWHVvTUR6UnNzU2p1T1FTZmo3TkIyRVpkWFhHZmRUQnFNaGE0TVNoVlJHSUFVWUJxVVRzbHBGSVFEMnBQTHlrZEI0Kzd6cU56NW5sSlVFNDhxejNYZkwrUENZenVrR1FxN1YyRTg4ZG5JWXBXUXJ2N0pyVDFhUjVNY3BIODZkLzBTMFZvNnY5NWtMSDVWcHdPL0MzR09wbVdPMG1uYVVjbnNjeDZZSFNwOWI2MUl3SGFwdGp1cW5PSDNGdHJkbXo3QVNCVzl4MnE0b0xSSkdaQjk1ZW5uUU9FZHdrNHloelR0d3Qvd0JaV2J1OVZQOEEvSXRRdUdkNEptR2NGV3dSVXg0UGxFMnRNNFAvQU5NZTcrK3RCQ05FMCtUUzdKNEplWHRPMmtadVh6WTFPZEt4SHA4RGQ1VmlmblVQdjc1TFIzWmxKek55NEhpVGlwWlpjeTZkSC9rRGJ6b0s5NHJrRW5FOHpaNkluMHFOWDR5ZHFmT0kyenhEYys1ZnBUVEtuTkltMmNrREhqVHBaTjNSdnRtaDArS1NhUU4ycmRHQTZEd3J0WjYxY3JhdTlxcXRJU0FzYkhsMm8xV1pJNHhBcWdqcUY4S1k0ZzhWMHJjMkIxNjlLeGp6ZHZSNXNyaEo0cGVrdnY4QVY1NTlOdHB1d2FLUU9WbFRQZGl0YkIxdmd2TVBiQnJsQmR6WEZ1ZTFaSkF1d0FyYUdhQzJaWjBYa2tEcUNtZXU5YmVaSWJlTHNtSGtLdGZpcUs2ZlJJbXRRR1pRQVJueEFIODZxNzJUR3NtZW83cXVLZTU3RFNubTVBNnhRaCtYdkpBRkJTeWNNM1dsY2ZHeldPUzRsaHNvSG1rUmRpeDVtUHlHQjhLZGVCN2x0SjlDdXBYSURGbzdxUmh5NVU3bU1menFSM3VwM1YzcU1sekZQTkFIeDdFY2h3TURGWjRpZVc0OUYrcm1WeTduQXkzK05LQ3RocitvYzdNc2l1dVRndW1lK3UwWEUyb0dWVktRRlNSemZaNHorTk1mT1c1Y1pCNVJuUGpXd2tBWUFqY0E5UEdna3R5V3VZNU9ac3VWYkF4MDJxRVNaamU2aW5XWExFaENpNUtzRGtaOTFUTExOR1cyeHlnK09ENFZIWms3YlVKakpua0VoTEVEenBicnRjY2ZhNmN3SGtUMWh4SGtjcDNYcWZIeU8xSjFzNDJZQTdIeHBYS1VlUUpFQ1VRWUI4YTVlSU9jMW1UNjYrVy8xblRlS0JJMXh6WndjbW43aDFrL1NUYjQreGI2aW1PTndVTzJNZUZPbWc1L1NMTGpPWWllbm1LMDRwUGQ5cGNRY3R1c2JOa2ZySEkyNys2dEFKQVBiNVNPbU91YTV1N0kvTHNBZTdPNjFsWlhWVUF3Um53M0ZCM2k1bzhCSTA4eVJuNFV1OUk0RGNGY1A1YkM4NEpQL2wwM3d1Q2dITDdaT2NIK1ZPbnBKVURnelE0eEhMSXhmQ3BHaFppZXo4UHpvS3RnUU5JTTdqOW1uYTNtN0Z3RkJkczVCYnVKMk8xSUxXMTFDV1JtT2wzTUtvTW5uWGZidnBYR1MwcHg3SURic2Vnb0hYU3A1NXI2Zm5seVJDTUJqdGpKNkNtNEdLS01IbTUyQysyN0hHUGRXbk42dmVtV0tSdVFRdXBKNzl0cWo5dHFETXFtNFVjb0d4eWNacVc2aldHSHRsby9UWFhxY1VNY01tU2h5R0kzR050dktteDd1UjMyY2s5ZGp0U1dTN2U1UGFIQXlCc0t4R3h5b09OajNmNjNxU2E3Yjh1VzdxZFJLZExWbmhCSkp5ZHFsbWw4TlFhOVkzSWxuYUlxNmdGUUQzWnFIV045SEJBRkl5M2o0Vk5PR2JxY1dWMUxKYnVzSGFKbHpzdWNiYjFweWJRK2kyS0tVVG05ZVdNbmNORmdIOGFYYWp3anAwdG42dkUxcmJ5TU1Cc01UMytkS2RFblhYZGN2YlNlUTlsYm9yUlcvTmdNRG5tWStQZDdxa0Z2cEVOdEt4TWs5d3p0a0xJMlF2dUhRVUZlNlR3T2x0cmxuY0RVMlpvTGxHS0MzSTV1VmdjWnowODZ0M3ZwTGJQaHdpUkJGT2Q4WVB1cFZRRkZGRkEzYW9BQXJrYmhTS2dlczNiaGl2TjdxbXV1ekNHTmM1eHlNZmxVQTF3TkhwazF5Y2V4SG5meDVjMEZROFFYUnVkWnVYVTdLZVZmaFZxM1ZpbHB3cEhwOFlWVEhhWUNIdUlPVDhTRFZWNk5aSFY5ZnRMVWdudDVSemVRemsvaFZ2NnV2cmRzWi9hV0x0RkxjdlhCVUEvSDJhTExxN1ZscTF3NmZZcjl4QjdKRk16UU04WVlZREh4TldmcUhCRnZjTVRGUEtoWE9jNHdmd3BKYWVqMHZNclRUc2tYTHVWSUpIbDBxU2FYUE81M2FCYWJwSnVadmIrNk4ySXJPdldhcnBrY3FBRERuNWRLdFN4NFNzQWhFVXM0UUl6ODJWeTJQaFRQcUhDVUUzRFhPc3N4SlNVNE9NWkI5MVZsR3ZSeEptYTh0aWZ2UmM2RHpCMy9BQXF4TG1JVGFQTGNSRDJvOEZzZVhmVlJjUFhMNlZybGxNakVCWmdHOXhPRFZ4c3kyTjZIVVp0TGs4a3Fub3BiYlB1M29HbTB1bWhkWkFUZ2taQXBad1RPTERYckxUcGM5cEpjU09oQTJaV3lSaitkTXR3aHRMNlcxeWZzNU9VZTdiODZjTkM3U2JqRGgyUmQxaHVtVmg0QmtQNVVGczNzcXhMbnY2L2hVVzFoak5KeUFaRElyWjk3RUQ2VTk2NjdMQ1dUN3kvekZNY014bGthVlJrQlZ4bm9QWjJ6N2lTYUNuT09uL3JXSzJCejJhNVBodjhBKzFQUEQxb2c0THQxY0FOTmZkcWMvdEFLeTFGK0paRGVjVFhmWjViTW5ab0QxMjIvR3JWdE5FdHA3VFM3VTg4Y0VMbFBZeG5iYnc4elVzMjFqbDYzYUR6ODEvQUdjRG1YS0FqdnhUSzJtM0NzUUV5ZkVWWXk4SzJ5WHQ5YkxOTUdqSmRlbmNkeDA4S1ZhYnduWTNGeDJuckU1aVplYkdSN08zdXBKcUpsbGNydXEvdGROVzJZU1NnR1FkRkcrUGZTbTRRaWFaY2RJZnFhbXR2d2hhU3Vaak5PVWxsRWNlQ09nNm5wV3ljSjJVK3JYeUdhNTVVangrejQrNnFpbmIrMk5ocVJBR0NPVng4Z2F0elRMc3phUlk2ckYxYU1DUWZoVmVjYVFpUFZWa2pCNUFnUUU5K052NVZKT0JOUUV1aFRXcmtuc1d4azlBRFFQR3RLa2Q0czBXT1NkQXc5L2ZVaDlIa3ZhYXRjZUhZYmZ4aW9qcU0yWUZpWnZhZ2tKSCtFL3dEdFVuOUhEWjFxY2Y4QTZYUC9BSzFvSW5yQkwzcXhnQWdPMGorSTlyQS9ITldFekNKSkY1bCs0dkt1Um5HS3I2NDVaZFR1RGtFOXVzWFR3YkordFQ3VVlZMEU4cklwZENRajQzQW9LcTF1VXZyZHd4UGdOdmRYQVhOc2xxNUxqdFVQTmpJQitGSXRkbVlYRjlNcFlGRjJLOWM5MVFHOHVuYWNlMFN5bmRzOWE1NWMzMWoxZUdYeFkvbCtwTGVHYVM2SlVrazc1OEtRZXJTdktBWlRrbWx1bjNJdXJkSmYyaXVHOTlFMFRCdzNOamV1a21ubXR0NXA2c05GREtNeVM4elk2TmpGYTZqcDcyZXBXa1FrWjBiR1N4enZtbkhTV2Jzd2M4M3g2VTRYVmtaSlV1RHZ5N2dHaUZrRTRXSlVKNkRIU3JkdXBzNkpPQm5sTnYzKzZxV3QzTFNFRVlPZmhWelRXTW1wYUplV1NTdEU4dHFVV1ZlcWtyMStsQkdFUU1lWUhhbFd1cnplalRWVkdNay8vd0IwcWgzNHU0bzBXL2EzdTdtVG1qT0NzZ3lweDc2dHZUTmNtNGs5QzJwM3NrYVJ5Q1JveUU2SGxaTi94b0s1bnlJSStUb3ZOek1XNkFIb0s0eHlySXdZREJCMkpwNHNiUlo0Z1NBeWtuSVllT0tjWTlHdDJJTFJLQU54c0JRY2JXVHRZSXozY3VNVTF6bG9wSnhrY3p5SHAxSS9sVXFpMCtHUG91QmpwamFrc3ZEbHROUEpPWlpnWEpZZ0VZK2xTemJlR2ZwdEZoa0RJMkhjSzJHQ0J0dlVsWGhxMnpneVRLZXU1SDRiVm4ramxwZy9hejQ5NC9LcXdpK01FbmJ3NlU2YUQ3Vit3NWlCMmJkQm53cDBIRGxwalBiem5IZGtiZmhYVzMwbUN3bU1rY2tqRWpCREVZSFR3SGpnVUc1NUE0NWVZZCtjWi8xLzcxb1h5cElVcTIrM1U0LzF2OGE2RUZpQUQ3UGVDRG5yMXJXUU1HSHM1eU01eDhmK1ZCMGljeG5DSGRqZ3VSemY2SFdwaHhISVR3bG96am1VRUxrRWYzTytvY2hVZlpsU001RzJ3UDhBck5TN2laLy9BSVMwUWdrOHdIeDlpZ2lxdXl1R0RrTU9oQjZlNm0rL3NCTXBraEFFZ3lTZ0dGZjNlQit0S1F4OW81RzJPdGI1NXdWQk80NjBFTXZKcFlPekV2TW1YNUdUdkFJTk1rMG5MQ2tBKzZBQ1NEbk5UL1VkSmcxT01KSjdFaWJDVlJ2N2o1VkZKdUc1TGVReHV6SEIyWlJzdzhSdFVzMjZZNStzc24wMnhIN01ZK2xLSWxQTm5POU8xdHcvSDJhOHp5YzNmdU1DbFEwSzNBL1d5K2VNVlhNeHZLeXBoVFQzb2Q5T3R0TWhua0tGMXloWTRPM2hYR2JTYlpHUldtbEhONWpOS2JXeWl0MUlXU1RsZmNsdCtnOHFCeml1QzA2TVhram1COW1XSitWMXo0RVZZT2o2M3JTd2t6MjBXb1JEN3JSbnNwY1lHQnkvZFBmdmtHcTZ0M0NNQ1FOL0w4S25PZzNiODI4bUF3SVV0K3h0M2U3TkJLZE40ZzAvVUpDcnFiUzVSZ2hodTFLT0dQUUxuWmlmSW1ucW1pM2xqTndTeXhTRm5HTVlQVHY5KzRwM29DaWlpZ2pYRTZzMHlnazhqVzVYSG56alA0RTFCZVA1MHN1R1RFbjNwVGdEZnFlcCtXMVQ3WDVndW9Xc0xxQWp4c1E1N2pucCtGVmg2VTVHUzIwNkJtOXBtTEVlQXdjRDhhQ08rajZ4TW11ZXRuWVFsVUhqek1jZlROV2V0c0gwYS9qUFZHVnZoazFGdlI1WU5IcDl0SXcvWHp0UDA2QlJ5ajhRYW4wVUlQcmNJR2UxalB6RkF4TFAydHJidStlU1pleGNqOWx4dHpEOEtjWGpOdncra1NqTWtqaEZQdnBxczFFMm4zbHN4OXFNOW9uOHhUdnBoOWZ0N1FuY3c3Tjd4MzBHVWo5V3RydEFRUkRiaVBJSHovR215ZjdIaEtOeDFkbUh6TlBWME9UVE5Sa3dSekRxZmVLYU5Wanh3bkFFL1lreWNVRkdhbkMxcnFWeEdkc09TTi9IY2ZXclNqdlRlNkhhTnpEN1dCZVZ6M1BqcDh4dDUxQXVMN1V4WHNOeUJ0TW1DZk5hVWNQMzVPaXZBellDU0hsYlBUdit0QklIdXZXcjJHWnZ2T015ZTlkajlLZmVEZ1R4TFl0dVY3YmJ5Mk5RL1RtOVl1cEMyd1FGdmlldjBxYzhGQUhXYlk0MjdZRWZJMEZnNm5neHpnNzdBZ2VKRy84QUtvN2I0T2t1NFQ3TW9XWWpibUdPbng2ZTRVdTRoMVNPMmtuUUVjeWpIeHdEVFBhWGd1dUZMNGh3STR3NGJHTnRzNDhzRDYwRlA4UHhtOTR2dHBKUGJBbU16ZTRaUDVWZFZuYjluWVdoSTNCN1Q0bXF6OUd0aUxuVWIyWTR5a0t4ai9qTytQbFZ2WEVZalVBREFBMjhxQmsxRnZVK0pVbTZKS01uekRWdFlONnBlWGxvTWUxOXozVm5pR012YTIxeUFlZGNLYTRNL05OYVhpQS9kQWVnZklMWVJtemgvY0djRHVwQllaZTgxTmgzaGdQaFQ1YmxaWm81Vjc5ODB5NlpHUmUzYUh2bGI4YUNxK0xiY1NhZEsrRHp4U0JzL0dtVGcvVVBWZFFudDJZY2swZTQ4eDBxWjY1YkNVWDF2Z0RtRGRmTEpxdE5NZnNOWGpCMjNLbWdtVjVkTTh6eGcrMlFGQjg4N1ZZUG8yQi9UdHp6ZGZWZ1AvV3RWYkxJRTFLM0xIYm1CNjFhWG8wZnRPSUx0dTR3RC84QU5hQ0thUXlYV3QydVJ0UGZGaVBITFkrZ0ZUbldyZ3hhWkt4NjRKTlY3d1BkTmZhL2J0S0FDczAyQVA3cGJCL0NwVnhQZG45RHUyY2N5RTBGT2E5Zjh0dEtBRHpzM0tDUFAvMnFHa2xqbnZOVERVTGVLOHRvd3hWVHo4em52SUdhUUxEWjI0NVlJQVcvZmZjbXBKSTNsbmNwSmZqbHBURzNzV2xMY3A1c2dIdnBjYmd5RUFucFRmZk1pUmNvVWMzZlN6VHJmdDlPUzRSQTU1aXJEd3hWWU9PbWFtMXJNVjV0bTYxTWwxTlhzaG45M0JIZlVCRVAybzVvZ1BoVXMwVnJVcWl2YklTVGptYndvRnRvMi9NVGtIcFY1NmZkeFFXRFRTTjdLcm5mM2IxVTZQbzZ3cW90b1J5amZyN1JyaHJQR00zNlA5VWdmQllZT080ZUZCSE9JMXRkVW11V2tRTXJTc3lud0dTYW1mQlZnMHZvUDFXMHQrZGo2ek1SanJzVVkvU3F3djcxbGp4a2ttcmo5RkE1L1JqY3F4MmU3bUJKOHdnb0lwcEVISnBzZHhNdkswamZaTGsrMHAzelRzcEFPdzdoanpOTXFTdW1vaXprbGFWSUNWUUU3QUtlNm44S3JCbXhoZXVlN0ZCajdveGdrMWhaY3Z5WUpBSFVHc3lSTUVMWndjWjVTSzU0T0RzYytZL25RZCtkdWlIYjUxZ0QyY1lQeEc5Y1VmQTJQWDRWMFZpd3pnc2UvQm9BbkdRVHk0emcvd0Fxd1RoQnZuSTZucjhxQ2ZjTWJjdGFBZ0U1eG5CNjBHZzVNOHpBZ1kvMFBsWE1vU2Z2Z0hicjE4ZnkrVmRPWDJsQUdXeWQ2NTh3NmtIM1lvTXZDYzh5akdNZkQ0Vkx1SUZZY0k2R0dQUHlxdk50OTc3T29oejl4YmJyNFZLZUo3NFdYQy9Ebk0vS2t6Q01oaDErei9DZ2l1T2JQTmpIY01kYTAvYXh5OHVlZzhhN3pRWTVuQkNnZlBGSitWU1ZJM3gzMEdWbEgzTnhrZUZkU0E4WmprQmRTY2p4WHpGQ0JNNE9DQjF3ZHpXSEFkUjNaeDMwQ0NlM2t0eGtNWGpKMmZvUGNmQ2tyU2tITE5uYW5qbEpVNVhLc044OUNLUlhlbmhVYWEzejJmN1M0eVZ3Ti9oUUpCY2NuS01BSHVyRE9uVWI0cE9NdHNwd001ei9BSzhxMkRjdlRIVE9TZW9IaFFMck8ya25rUVErMFRqWUg0Vk10STB5NGlnTFN6ckdDUUNyYm5IK2pVUXNwdXlRZ0E1eDF6MDM2L2hUc05UbDdQczRwZVZSbGNFOVR0UVdGYVdpSk5iczA2SDJnN0VJUmtnZ2Z6cVFWVk9oYXhkL3BMVG9lZGloa1VFNThXV3JXb0NpaWlnaDNGdDRMZlg5SVJzRlNHSUI4U2NmenF0dlN3Vy9TOWdHT2N3TTJNLzNxdSs2MHV4dmJpRzR1cldPYWFEOVU3amRQZFNMVU9GTkIxYVZKTlEwbTJ1WFJlVldrQkpBem5IV2dpbkIrbW0wMFcwUndjeFc2cjdzKzBmeGFubFhFVnpHY2Jad2FrVWRqYXhJRWpnUlZBQUFBOE5oV0RwOW1UazI2RTBGZGxUWTYyeUhaWE9EN2pTL1N2OEFZNzJXSTU1R0pJUHZxWVRhTnB0eElKSnJLSjNIUmlEbXRocFZnR0RDMGl5Ty9Cb0dQVkkvNmt2UDd3L25UWGNLSDRabUlYT0FHRlRWN08ya2lNVHdveUhxcDZHdVEwcXdGdWJjV2tmWWtZS1lPS0R6MXhkYnROcElsM1BaT0FBTzRZM3FPOE95ci90TnV4KzhPWWVmalhwbWJoSGg2NGlhS2JSN1Y0Mis4cEJ3ZnhwSkY2UGVFSUg1NHVIckZHeGpJVnZ6b0tHMDJabzd1NFFucnR2Vmk4RzVHdFdBQXlETGtuNEdwd3ZBdkNxdVhYUWJNTVRrbmxiODZjTFhRZEtzcFVrdHJDR0owT1ZaUWNqOGFDdGVNN2tyeFJmUUsyQTNKbGZFOG9vVVRXZkMrclFjbzdKckNWMmIvd0M2UVI5S3NlNjRjMGE5dkd2TG5UYmVXNFlnbVJnY2tnWUhmNUN0MzBIU3BMZVdCckNFeFNyeXlJUWNNUEE3MEZXZWlXMFBxdDlkc3YyWmtWUTNqeWcvL3dDaFZnUy9hbGhUcHAyaGFWcE5zMXZwOWhEYlFzM09VakJBSjhldmtLVStwVzJjOWdtYUNMVHhDYTJrdG16bkpLMDBhYUN5U1c3ZFVPd3FmbXd0R2ZtTnVoYnhya21rNmZISTBpV2tTdTNVZ0hlZ2FOTm01VUNNY1kyRkpMUk9UWExsY2RSelZKbDArMFE1VzNRSHJ0UU5QdEJPWmhicDJwR0MzZmlncUhYQ1l0VnVBd081WVZWR3JRdFphdElNRWUyR0ZlcXJqaHpScnFReVQ2YmJ5TzNWbUJ5ZnhwQmM4QThKWGtuYVhIRDlsSS9UTEtmem9QUEY1TVh1N1psQlBNUDVWYXZvbW1WOVp1VkxBeUMzR1I0ZTJ0VFJlQk9GVlpHWFFiSUdQN3A1VHQrTkxkTTRjMGJScnVTNzAzVFlMVzRsWGxlU01FRmhuT092aUFhRHo5NlBiaTRYaTJWQ1Y3T0ZMbCttNDNQNTA5Y2RhOURhV3h0WTJWcGlDR1VmczlLdDJ6NEs0YTArNGU0dE5GdElabkJET2luSkI2OS9mWEs1NEI0VHZKV2t1ZEFzcFhZNUxNR0pKK2RCNVplUnpHTW5kcXd1VXl4SFFaK05lb3YrampnMy93QU4ySDhMZm5RZlJ6d2FRUWVITERCNit5MzUwSGtxVm5sYmNlK3BSdzRPejA0RGxQdFpQNDE2Sy82TStDZi9BQXpwL3dEQzM1MHBoNEM0VHQwQ1JhQlpJbzZBSzM1MEhucVMzOXJPRFdVa2xqR0ZHSzlEbmduaGc5ZERzLzRUK2RZL29Od3YvdUt6L2hQNTBIbnMzRWlqZGpTTjNZKzFrNTg2OUhuZ1RoVnV1ZzJSL3dDRnZ6clU4QThKbnJ3L1pmd3QrZEI1Y3VuYVdjK1cxWG42Tm1OdjZKN2h5TjF2SE8vK0tPcFovd0JIUEIyYy93QkhMRCtGdnpwM3M5QzB1dzAxdE90TENHR3paaXpRb0R5a25HL1h5SHlvS1UxRlJhY1lYS3YvQU5wS1dCQTJ3M2hUMUUzTW94MFhZWjZiSEg4cXNxNDRXMEs2bjdlZlNyYVNYQUhPd09jWno0MTBUaDdSNDE1VjA2QUw0WVBqbnhvS3psWXlBbkIySCtzMXdMZFhaV3o0bllrZVlxMDI0ZDBadXVtd0g0SDg2eC9SelJzNS9Sc0djWTZIODZDcWxaems1T0QzNDd2QVYzTGxjOHJ0a2V5RGpiMzFaMzlHOUYvM2JCOGorZEI0YjBVOWROdCttT2gvT2dxNW1IUTVKMjJ6OHEySkM3Z0VuenEwRHc1b3hJSjAyM3lOODRQNTFnY09hTUJnYWJCajNIODZDcjJBeG5CeWZEcFdrbnQ1N2dSdWZDclRIRGVpZ0FEVGJmQTZiSDg2RHczb3BPVHB0djhBSS9uUVZObGlTQzJjSE9NZUZPdnBIQkhBWERSenVycWMvd0RsMVlaNGEwUW5KMHkzejdqK2RkYjdRdEsxS3poczcyd2hudDRmMVViZzRUYkcyL2hRVXpwZXBIVkxOZVlZbGp4ekFEcU9sS0VHSDhqNFZhZHR3Znc3WnNXdHRIdFlpMnhLZzcvalhYK2pHaDR4K2k3Zkh1UDUwRlU1NUdLZ01UMUlIZFc0SktoZ25UcHRqTlduL1JqUS93RGRkdjhBSS9uVzM5RzlHLzNiYi9JL25RVmVvVlBhYjJsR0JnLzY2VmlNeXhvV2tJREJpVlpEMVhQczlmeHEwdjZPYU4vdTIzK1IvT3NIaHpSajEwMjMrUi9PZ3FXNTB0TGxUTGJCSTVXenpSam8zbUQzZTZtWXhNam5uUmdWUHRCdGlNVmVuOUhkSDIvcTIzMjhqK2RhUzhNYUhPL1BMcGRzN1l4a2c1K3RCU3FLcEFCQkk2REI3alhSblorWG1CR0NENCtOWEgvUlBoLy9BSFJhL3dBSi9PZzhKNkFldWtXdnlQNTBGVjZOTXo2NXBpZ3RuMW1NSHcrK0t1MDlhYUllRjlDZ21qbWkwdTNTU05nNk1BY2dqb2V0TzlBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFmLy9aIiBhbHQ9IllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcywgc29ycnkiLz4KPGgzPlJlc3BvbnNpdmUgSW1hZ2VzOjwvaDM+CjxwPkNHU21hcnRJbWFnZSBpcyBjYXBhYmxlIG9mIGF1dG9tYXRpY2FsbHkgc2NhbGluZyBpbWFnZXMgZG93biB0byBhIHNpemUgdGhhdCBpcyBzdWl0YWJsZSBmb3IgbW9iaWxlIGRldmljZXMuICBUaGlzIGJvb3N0cyBwZXJmb3JtYW5jZSBieSBtaW5pbWl6aW5nIHRoZSBpbWFnZSBzaXplIGZvciBtb2JpbGUgZGV2aWNlcywgYW5kIHRoZXJlZm9yZSBpbXByb3ZlcyBwZXJmb3JtYW5jZSBhbmQgdGhlIGdlbmVyYWwgdXNlciBleHBlcmllbmFjZS4gIFVubGVzcyBkaXNhYmxlZCwgdGhlIG1vZHVsZSB3aWxsIGxvb2sgaW4gaXRzIGRhdGFiYXNlIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWF4aW11bSByZXNvbHV0aW9uIG9mIHRoZSByZXF1ZXN0aW5nIGRldmljZS4gIElmIHRoYXQgaW5mb3JtYXRpb24gY2Fubm90IGJlIGZvdW5kIGEgcmVtb3RlIHdlYiBzZXJ2aWNlIHdpbGwgYmUgcXVlcmllZCBmb3IgdGhlIHJlc29sdXRpb24gaW5mb3JtYXRpb24uICAgSWYgc3VpdGFibGUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIHRoZW4gdGhlIG1heF93aWR0aCBhbmQgbWF4X2hlaWdodCBwYXJhbWV0ZXJzIHdpbGwgYmUgYWRqdXN0ZWQgdG8gcmVzY2FsZSB0aGUgaW1hZ2UuPC9wPgo8aDM+TWF4aW11bSBpbWFnZSBzaXplPC9oMz4KPHA+SW4gYWRkaXRpb24gdG8gYXV0b21hdGljIHJlc2l6aW5nIG9mIHRoZSBpbWFnZSBmb3IgdGhlIGRldmljZSwgdGhlIG1heF93aWR0aCBhbmQvb3IgbWF4X2hlaWdodCBwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgdG8gaW5kaWNhdGUgYW4gYWJzb2x1dGUgbWF4aW11bSBzaXplIGZvciB0aGUgb3V0cHV0IGltYWdlLjwvcD4KPGgzPlN0eWxlc2hlZXRzOjwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzLCBpZiB1c2luZyB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlLiAgQmVjYXVzZSB0aGUgc21hcnR5IHN5bnRheCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgaW5zaWRlIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+ZGl2LmhlYWRlciB7IGJhY2tncm91bmQ6IHVybChbW0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvcGljdHVyZS5qcGcnIG5vdGFnPTFdXSk7IH08L2NvZGU+PC9wPgo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4KPGgzPkF1dG9tYXRpYyBQcm9jZXNzaW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgaW5jbHVkZXMgYSBzbWFydHkgYmxvY2sgdGFnIGNhbGxlZCA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPgo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPgo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+CjxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIGFyZSBhdmFpbGFibGUgdG8gdGhpcyB0YWcgKGZvciBpbWFnZSBzY2FsaW5nIGV0Yy4pLiAgQWRkaXRpb25hbGx5LCB0d28gbmV3IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIGludHJvZHVjZWQ6IDxzdHJvbmc+bWF4X3dpZHRoPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm1heF9oZWlnaHQ8L3N0cm9uZz4gd2hpY2ggY2FuIGJlIHVzZWQgdG8gc2V0IGEgbWF4aW11bSBzaXplIGZvciBpbWFnZXMuLjwvcD4KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNlbTsiPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5Ob3RlOjwvc3Ryb25nPgo8cD5UaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+CjwvZGl2Pgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IGNhbGd1eSdzCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8aDM+UmVxdWlyZW1lbnRzPC9oMz4KPHA+VGhpcyBtb2R1bGUgbWFrZXMgZXZ0ZW5zaXZlIHVzZSBvZiB0aGUgR0QgSW1hZ2UgcHJvY2Vzc2luZyBsaWJyYXJ5IHRvIGRvIGltYWdlIG1hbmlwdWxhdGlvbi4gIEFkZGl0aW9uYWxseSwgdGhlIHtjZ3NpX2NvbnZlcnR9IHBsdWdpbiBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSBzaW1wbGV4bWwgYW5kIFhNTERvbSBjbGFzc2VzIGJ1aWx0IGluIHRvIHBocC4gIFRoZXJlIG1heSBiZSBvdGhlciBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGVycm9ycyB5b3Ugc2hvdWxkIGVuc3VyZSB0aGF0IGVycm9yIHJlcG9ydGluZyBpcyBlbmFibGVkLCBhbmQgdGhhdCB5b3UgaGF2ZSBhbmFseXplZCB5b3VyIGVycm9yIGxvZ3MuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMjYuNDwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaWxlbnQ9IiIgLSBTaWxlbnRseSBpZ25vcmUgZXJyb3JzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhbGlhcz0iIiAtIFRoZSBDR1NtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXMgdG8gY29tYmluZSBhIGZyZXF1ZW50bHkgdXNlZCBwYXR0ZXJuIG9mIGFyZ3VtZW50cyBpbnRvIG9uZSBuYW1lLiAgVG8gdXNlIHRoZXNlIGFsaWFzZXMgdXNlIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGFsaWFzIyM9YWxpYXNfbmFtZSBpLmU6ICBhbGlhczE9Zm9vIGFsaWFzMj1mb28uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2F1dG9zY2FsZT0iIiAtIElmIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGRpc2FibGUgYXV0b21hdGljIHNjYWxpbmcgb2YgdGhlIGltYWdlLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBkaXNhYmxlZCBmb3IgbW9iaWxlIGJyb3dzZXJzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2JjYWNoZT0iIiAtIERvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9lbWJlZD0iIiAtIEZvcmNlIHRoZSBpbWFnZSB0byBub3QgZW1iZWQuICBSZWdhcmRsZXNzIG9mIHNldHRpbmdzIGluIHRoZSBhZG1pbiBwYW5lbCwgdGhlIFVSTCBhbmQgdGFnIGdlbmVyYXRlZCB3aWxsIGJlIHRvIGEgZmlsZSBvbiB0aGUgc2VydmVyLiAgTm8gZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2F1dG89IiIgLSBEbyBub3QgYXV0b21hdGljYWxseSBjYWxjdWFsdGUgcGFyYW1ldGVycyBmb3IgdGhlIGltZyB0YWcuICBUaGlzIG1heSBjYXVzZSB5b3VyIHNpdGUgdG8gZmFpbCB2YWxpZGF0aW9uIGlmIHNvbWUgcmVxdWlyZWQgcGFyYW1ldGVycyAod2lkdGgsaGVpZ2h0LGFsdCkgYXJlIG5vdCBzcGVjaWZpZWQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcm90YXRlPSIiIC0gRG8gbm90IGF0dGVtcHQgdG8gcmVhZCBleGlmIGluZm9ybWF0aW9uIGZyb20gdGhlIGZpbGUgYW5kIGNvcnJlY3QgaW1hZ2Ugcm90YXRpb248L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vdGFnPSIiIC0gRG8gbm90IG91dHB1dCBhbiBpbWcgdGFnLCBvbmx5IHRoZSB1cmwgdG8gdGhlIGNhY2hlZCBpbWFnZS4gIFRoaXMgaGFzIG5vIGVmZmVjdCB3aGVuIENHU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcmVzcG9uc2l2ZT0iIiAtIERvIG5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgaW1hZ2UgcmVzaXppbmc8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYnJlYWtwb2ludHM9IiIgLSA8c3Ryb25nPkV4cGVyaW1lbnRhbDo8L3N0cm9uZz4gRm9yIHJlc3BvbnNpdmUgaW1hZ2UgaGFuZGxpbmcsIGRpc2FibGUgYnJlYWtwb2ludHMgYW5kIGZvcmNlIHJlZ3VsYXIgcmVzaXplIGhhbmRsaW5nIGZvciBpbWFnZXMgb24gbW9iaWxlIGJyb3dzZXJzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9yZW1vdGU9IiIgLSBEbyBub3QgYWxsb3cgcmV0cmlldmluZyBzb3VyY2VzIGZyb20gcmVtb3RlIFVSTFM8L2xpPjxsaT5zcmM9IiIgLSBTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6Cjx1bD4KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbS48L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CjwvdWw+Ckl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG92ZXJ3cml0ZT0iIiAtIERpc2FibGUgYWxsIGNhY2hpbmcgYW5kIGZvcmNlIHJlLWNhbGN1bGF0aW9uIG9mIGFsbCBmaWx0ZXJzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpZD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbiBpZCBhdHRyaWJ1dGUgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBpZD0ic29tZXRhZyI8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNsYXNzPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0iZmFuY3lib3gsdGh1bWJuYWlsIjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc3R5bGU9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYWx0ZXJuYXRlIHN0eWxlcyBmb3IgdGhlIHRhZy4gIGkuZTogc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRpdGxlPSIiIC0gU3BlY2lmeSBhbiBvcHRpb25hbCB0aXRsZSBhdHRyaWJ1dGUgZm9yIHRoZSBpbWcgdGFnLiAgaS5lOiB0aXRsZT0iVGhpcyBpcyB0aGUgdG9vbHRpcCI8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFsdD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGFsdCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlcjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbmFtZT0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWUgYXR0cmlidXRlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaGVpZ2h0PSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7d2lkdGgmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gd2lkdGg9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSB3aWR0aCBhdHRyaWJ1dGUuICAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtoZWlnaHQmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcXVhbGl0eT0iNzUiIC0gU3BlY2lmeSB0aGUgcXVhbGl0eSBvZiB0aGUgb3V0cHV0IGltYWdlLiAgQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlmIG5vdCBzcGVjaWZpZWQgaXMgNzUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZWw9Ijc1IiAtIFVzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9ImFsYnVtIjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbWF4X3dpZHRoPSIiIC0gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgY29udmVydGVkIGltYWdlcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1heF9oZWlnaHQ9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9ibHVyPSIiIC0gKGFueXRoaW5nKSBTcGVjaWZ5IGFueSB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIgdG8gYWRkIGEgYmx1ciBmaWx0ZXIgdG8gdGhlIGltYWdlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfYnJpZ2h0bmVzcz0iIiAtIChpbnRlZ2VyKSBJbmNyYXNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY29sb3JpemU9IiIgLSAocixnLGJbLGFscGhhXSkgLSBMaWtlIGZpbHRlcl9ncmF5c2NhbGUgaG93ZXZlciB5b3UgY2FuIHNwZWNpZnkgdGhlIGNvbG9yIGFuZCBhbHBoYSB2YWx1ZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2NvbnRyYXN0PSIiIC0gKGludGVnZXIpIENoYW5nZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2Nyb3A9IiIgLSAocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jcm9wdG9maXQ9IiIgLSAod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvblssdXBzY2FsZV1dKSAtIFBlcmZvcm0gYSBjcm9wdG9maXQgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGVuIGZvY3VzIG9uIHRoZSBzZWxlY3RlZCBhcmVhIG9mIHRoZSByZXNpemVkIGltYWdlLiAgQ3JvcCB0byBmaXQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkIGFzIHRoZSBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBkZXN0aW5hdGlvbiBpbWFnZSBhbG9uZyB3aXRoIGFuIChvcHRpb25hbCkgbG9jYXRpb24gY29kZSwgYW5kIHVwc2NhbGUgZmxhZy4gIHZhbGlkIGxvY2F0aW9uIGNvZGVzIGFyZSB0bCx0Yyx0cixjbCxjLGNyLGJsLGIsYnIgZm9yIHRoZSA5IHJlbGF0aXZlIHBvc2l0aW9ucyB3aXRoaW4gdGhlIGltYWdlLiAgSWYgYSBsb2NhdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGEgcHJlZmVyZW5jZSB3aWxsIGJlIHVzZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAmcXVvdDtjJnF1b3Q7IHRvIGNyb3AtdG8tZml0IGZyb20gdGhlIGNlbnRlciBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCB1cHNjYWxpbmcgaXMgZGlzYWJsZWQgb24gdGhpcyBmaWx0ZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZWRnZWRldGVjdD0iIiAtIChhbnl0aGluZykgSGlsaWdodCB0aGUgZWRnZXMgaW4gdGhlIGltYWdlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZW1ib3NzPSIiIC0gKGFueXRoaW5nKSBFbWJvc3MgdGhlIGltYWdlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZmxpcD0iIiAtIChtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZ3JheXNjYWxlPSIiIC0gKGFueXRoaW5nKSBDb252ZXJ0IHRoZSBpbWFnZSB0byBncmF5c2NhbGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9tZWFucmVtb3ZhbD0iIiAtIChhbnl0aGluZykgQXR0ZW1wdCB0byBhY2hpZXZlIGEgJnF1b3Q7c2tldGNoeSZxdW90OyBlZmZlY3Q8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9uZWdhdGU9IiIgLSAoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2U8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9waXhlbGF0ZT0iIiAtIChzaXplWyxhZHZhbmNlZF0pIFBpeGVsYXRlIHRoZSBpbWFnZSwgc3BlY2lmeSBhbiBpbnRlZ2VyIHNpemUgYW5kIGFuIG9wdGlvbmFsIGJvb2xlYW4gKGRlZmF1bHQgaXMgZmFsc2UpIHRvIGVuYWJsZSBhZHZhbmNlZCBwaXhlbGF0aW9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcmVzaXplPSIiIC0gdHlwZSxudW1iZXJbLG51bWJlclssdXBzY2FsZV1dIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCwgdGhlIHJlc2l6ZSBmaWx0ZXIgYWxsb3dzIHVwc2NhbGluZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+cCxudW1iZXIgLSBQZXJmb3JtIGEgc2ltcGxlIHJlc2NhbGUgdG8gYSBjZXJ0YWluIHBlcmNlbnRhZ2UuICBpLmU6ICByZXNpemU9cCw1MCB0byByZXNpemUgdG8gNTAlIG9mIHRoZSBvcmlnaW5hbCBzaXplLjwvbGk+CiAgPGxpPnAsbnVtYmVyLDAgLSBQZXJmb3JtIGEgc2ltcGxlIHJlc2NhbGUgdG8gYSBjZXJ0YWluIHBlcmNlbnRhZ2UuICBpLmU6ICByZXNpemU9cCw1MCB0byByZXNpemUgdG8gNTAlIG9mIHRoZSBvcmlnaW5hbCBzaXplLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nPC9saT4KICA8bGk+dyxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIHdpZHRoICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9dyw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gd2lkdGggb2YgODAgcGl4ZWxzLjwvbGk+CiAgPGxpPncsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIHdpZHRoICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9dyw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gd2lkdGggb2YgODAgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nPC9saT4KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4KICA8bGk+aCxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgaGVpZ2h0ICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9aCw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gaGVpZ2h0IG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy48L2xpPgogIDxsaT5lLG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy4gIERvIG5vdCBhbGxvdyB1cHNjYWxpbmcuPC9saT4KICA8bGk+Yyx4LHkgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgY3VzdG9tIHNpemUgKHdpdGhvdXQgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBpLmU6IGZpbHRlcl9yZXNpemU9Yyw1MCw3NSB0byBjcmVhdGUgYSB0aHVtYm5haWwgdGhhdCBpcyA1MHg3NSBwaXhlbHMuPC9saT4uCiAgPGxpPmMseCx5LDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgY3VzdG9tIHNpemUgKHdpdGhvdXQgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBpLmU6IGZpbHRlcl9yZXNpemU9Yyw1MCw3NSB0byBjcmVhdGUgYSB0aHVtYm5haWwgdGhhdCBpcyA1MHg3NSBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmcuPC9saT4uCjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcmVzaXpldG9maXQ9IiIgLSAod2lkdGgsaGVpZ2h0Wyxjb2xvclssYWxwaGFdXSkgLSBQZXJmb3JtIGEgcmVzaXplIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlIGltYWdlIGlzIGNlbnRlcmVkIGluIHRoZSBib3ggc3BlY2lmaWVkIChlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nIHVwb24gYXNwZWN0IHJhdGlvIGFuZCB0aGUgZGVzdGluYXRpb24gc2l6ZSwgYW5kIHRoZSBpbWFnZSBpcyBzdXJyb3VuZGVkIGJ5IHRoZSBzdXBwbGllZCBjb2xvci4gIENvbG9ycyBjYW4gYmUgc3BlY2lmaWVkIGJ5IG5hbWUgKHNlZSB0aGUgWDExIGNvbG9yIG5hbWVzKSwgb3IgYnkgI25ubm5ubiBoZXhhZGVjaW1hbCBmb3JtYXQsIG9yIGFzIHJnYiB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgOiBpLmU6ICBmaWx0ZXJfY3JvcHRvZml0PTYwMCw0MDAsI2ZmMDAwMC4gIFRoZSBzcGVjaWFsIGNvbG9yIHZhbHVlICZxdW90O3RyYW5zcGFyZW50JnF1b3Q7IGNhbiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIGJhY2tncm91bmQgdG8gYmUgdHJhbnNwYXJlbnQuICAgQW4gYWxwaGEgdmFsdWUgbWF5IGJlIHNwZWNpZmllZCBiZXR3ZWVuIDAgYW5kIDEyNyB0byBzcGVjaWZ5IGRpZmZlcmVudCBkZWdyZWVzIG9mIHRyYW5zbHVjZW5jeSBmb3IgdGhlIGJhY2tncm91bmQuICAgQXQgbm8gdGltZSB3aWxsIHRoaXMgcGx1Z2luIHBlcmZvcm0gYW55IHVwc2NhbGluZy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9yb3RhdGU9IiIgLSAoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3JvdW5kZWRjb3JuZXJzPSIiIC0gKHJhZGl1cykgU3BlY2lmeSBhbiBpbnRlZ2VyIHJhZGl1cyAoaW4gcGl4ZWxzKSBmb3Igcm91bmRpbmcgdGhlIGNvcm5lcnMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfd2F0ZXJtYXJrPSIiIC0gKGFueXRoaW5nKSwgU3BlY2lmeSB0aGF0IHRoZSB3YXRlcm1hcmsgKGFzIHNwZWNpZmllZCBpbiB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIHBhbmVsKSBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2U8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGdtYWlsLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjk8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPlZlcnNpb24gMS4wIC0gSW5pdGlhbCBSZWxlYXNlPC9saT4KICA8bGk+VmVyc2lvbiAxLjAuMSAtIEJ1ZyBmaXhlcy48L2xpPgogIDxsaT5WZXJzaW9uIDEuMC4yIC0gQnVnIGZpeGVzLjwvbGk+CiAgPGxpPlZlcnNpb24gMS4wLjMgLSBCdWcgZml4ZXMuPC9saT4KICA8bGk+VmVyc2lvbiAxLjEgLSBNYXJjaCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBjcm9wdG9maXQgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5BZGRzIGF1dG9tYXRpYyBpbWFnZSByZXNpemluZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS4xIC0gTWFyY2ggMjAxMQogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gY3JvcHRvZml0LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4xLjEgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gR0lGIGltYWdlIGhhbmRsaW5nLjwvbGk+CiAgICAgIDxsaT5BZGQgYSBiaXQgbW9yZSBpbnRlbGxpZ2VuY2UgaW50byBpbWFnZSBzcmMgaGFuZGxpbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjEuMiAtIE1heSAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5NYW55IG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMiAtIE1heSAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHJvdW5kZWQgaW1hZ2UgY29ybmVyIHN1cHBvcnQuLi4gd2l0aCB0cmFuc3BhcmVuY3kuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIuMSAtIE1heSAyMDExCiAgICA8dWw+CiAgICA8bGk+Rml4ZXMgcHJvYmxlbXMgd2l0aCBJRTcgYW5kIGVtYmVkZGluZyAoSUU3IHdvbnQgZW1iZWQsIGFzIG11Y2ggYXMgSSB0cnkgdG8gbWFrZSBpdCkuPC9saT4KICAgIDxsaT5SZXF1aXJlcyBuZXcgdmVyc2lvbiBvZiBDR0V4dGVuc2lvbnMgdGhhdCBkb2VzIGNydWRlIGhhY2sgZm9yIG1pbWUgdHlwZSBkZXRlY3Rpb24gb24gd2luZG96ZSBzZXJ2ZXJzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPgogIDwvbGk+VmVyc2lvbiAxLjMgLSBNYXkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGpwZWcgYXV0by1yb3RhdGlvbiB2aWEgRVhJRi48L2xpPgogICAgPGxpPkFkZHMgYSBmbGlwIGZpbHRlci48L2xpPgogICAgPGxpPkFkZHMgY29tbWFuZCBhbGlhc2VzLjwvbGk+CiAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBzcmMjIyBhcmd1bWVudHMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8L2xpPlZlcnNpb24gMS4zLjEgLSBNYXkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5TdXByZXNzIGEgd2FybmluZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQgLSBKdWx5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+QWRkcyB0aGUge2Nnc2lfY29udmVydH0gdGFnLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuNC4xIC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPkFkZHJlc3MgYW4gaXNzdWUgd2l0aCB0aGUgQ01TX1NUWUxFU0hFRVQgZ2xvYmFsIG9jY2Fzc2lvbmFsbHkgYmVpbmcgc2V0LCB3aGljaCByZXN1bHRzIGluIHRoZSBub3RhZyBzdHVmZiBtZXNzaW5nIHVwLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuNC4yIC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNSAtIEF1Z3VzdCAyMDExCiAgICA8dWw+CiAgICA8bGk+TWlub3IgQnVnIEZpeGVzLjwvbGk+CiAgICA8bGk+Rml4ZXMgaXNzdWVzIHdpdGggY2dzaV9jb252ZXJ0LjwvbGk+CiAgICA8bGk+QWRkcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgdGl0bGUsIHJlbCwgYW5kIGlkIHBhcmFtZXRlcnMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRvd25sb2FkIGltYWdlcyBmcm9tIGEgcmVtb3RlIHNpdGUsIGNhY2hlIHRoZW0uLiBhbmQgcHJvY2VzcyB0aGVtLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS41LjEgLSBTZXB0ZW1iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNiAtIE9jdG9iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIGNyb3AtdG8tZml0IGxvY2F0aW9uIG90aGVyIHRoYW4gY2VudGVyLjwvbGk+CiAgICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgdGhlIGRlZmF1bHQgY3JvcC10by1maXQgbG9jYXRpb24sIGJ1dCBjaGFuZ2luZyB0aGlzIHdpbGwgbm90IGdlbmVyYXRlIG5ldyBpbWFnZXMuLi4geW91IHdpbGwgbmVlZCB0byBjbGVhciB5b3VyIGdlbmVyYXRlZCBpbWFnZSBmaWxlcy48L2xpPgogICAgICA8bGk+Y3JvcC10by1maXQgZmlsdGVyIG5vdyBjaGVja3MgZm9yIHBvc3NpYmxlIHVwc2NhbGluZyBhbmQgd2lsbCBub3QgYWxsb3cgaXQuPC9saT4KICAgICAgPGxpPnJlbmFtZSB0aGUgbm9jYWNoZSBwYXJhbWV0ZXIgdG8gbm9iY2FjaGUgdG8gcmVtb3ZlIGNvbmZsaWN0IHdpdGggQ0dFeHRlbnNpb25zLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIGJ1ZyB3aXRoIG11bHRpcGxlIGNsYXNzIG5hbWVzIHNwZWNpZmllZCBpbiBhbGlhc2VzLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIGJ1ZyBpbiB0aGUgcmVzaXplIGZpbHRlci48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgd2hlcmUgaWYgbm90aGluZyBoYXBwZW5lZCBpbiBhbiBpbWFnZSBmaWx0ZXIgKGR1ZSB0byBjb25zdHJhaW50cykgdGhlIHN5c3RlbSB3b3VsZCBub3Qgc2FmZSB0aGUgZmlsZS48L2xpPgogICAgICA8bGk+QWRkcyBhIHJlc2l6ZXRvZml0IGZpbHRlci48L2xpPgogICAgICA8bGk+R2VuZXJhdGVkIGZpbGVzIG5vIGxvbmdlciBoYXZlIGFuIGV4dGVuc2lvbiB0byBwcmV2ZW50IGluY29uc2lzdGVuY2llcyBpbiBmaWxlIHR5cGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS42LjEgLSBOb3ZlbWJlciwgMjAxMQogICAgPHVsPgogICAgICA8bGk+TWlub3IgZml4ZXMgdG8gY2dzaV9jb252ZXJ0LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS43IC0gRmVicnVhcnksIDIwMTIKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gY2hlY2sgdGhlIHRpbWUgb2YgdGhlIHNvdXJjZSBpbWFnZSB0byBhaWRlIGluIGRlY2lkaW5nIGlmIHRoZSBjYWNoZWQgaW1hZ2UgbmVlZHMgdG8gYmUgZ2VuZXJhdGVkL3JlLWdlbmVyYXRlZC48L2xpPgogICAgICA8bGk+Rml4ZXMgdG8gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPlJlc2FtcGxlIGluc3RhZCBvZiByZXNpemUgYnkgZGVmYXVsdCBpbiB0aGUgcmVzaXplIGZpbHRlci48L2xpPgogICAgICA8bGk+Q3JlYXRlIGFuIGluZGV4Lmh0bWwgZmlsZSBpbiB0aGUgaW1hZ2UgZGlyZWN0b3J5IHRvIHByZXZlbnQgYnJvd3NpbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjguMSAtIEZlYnJ1YXJ5LCAyMDEyCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBzaWxlbnQgcGFyYW0gdG8gaGlkZSBlcnJvcnMuPC9saT4gCiAgICAgIDxsaT5BZGRzIHJlc2l6ZSB0byBsYXJnZXN0IGVkZ2UgdG8gZmlsdGVyX3Jlc2l6ZS48L2xpPgogICAgICA8bGk+UmVtb3ZlcyBsYXp5bG9hZGluZyBzbyB0aGF0IHtjZ3NpX2NvbnZlclR9IHdpbGwgd29yay48L2xpPgogICAgICA8bGk+c29tZSBtaW5vciBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogPGxpPlZlcnNpb24gMS44LjQgLSBNYXksIDIwMTIKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIGNnc2lfY29udmVydC48L2xpPgogICAgICA8bGk+UmVtb3ZlcyB0aGUgY29sb3IgcGFyYW1ldGVyIGZyb20gZmlsdGVyX3JvdGF0ZS48L2xpPgogICAgICA8bGk+Rml4ZXMgd2FybmluZ3MuPC9saT4KICAgICAgPGxpPkNvZGUgY2xlYW51cC48L2xpPgogICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjkgLSBNYXkgMjAxMgogICA8dWw+CiAgICAgPGxpPkFkZHMgcmVzcG9uc2l2ZSBpbWFnZSBjYXBhYmlsaXRpZXMgd2l0aCB3ZWIgc2VydmljZSBiYXNlZCBtb2JpbGUgZGV2aWNlIGRldGVjdGlvbi48L2xpPgogICAgIDxsaT5JbXByb3ZlcyBwYXRoIGRldGVjdGlvbi48L2xpPgogICA8L3VsPgogPC9saT4KPC91bD4KPGJyIC8+]]></about>
	<description><![CDATA[A smart image tag generation module for CMSMS]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.26.4</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_embedding_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYignZW1iZWRkaW5nJyk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfbW9kZScsdHJpbSgkcGFyYW1zWydlbWJlZF9tb2RlJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX3NpemVsaW1pdCcsKGludCkkcGFyYW1zWydlbWJlZF9zaXplbGltaXQnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWJlZF90eXBlcycsdHJpbSgkcGFyYW1zWydlbWJlZF90eXBlcyddKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYignZ2VuZXJhbCcpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycsdHJpbSgkcGFyYW1zWydjcm9wdG9maXRfZGVmYXVsdF9sb2MnXSkpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScsKGludCkkcGFyYW1zWydjYWNoZV9hZ2UnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX3ByZWZpeCcsdHJpbSgkcGFyYW1zWydpbWFnZV91cmxfcHJlZml4J10pKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfaGFzY2FjaGVkaXInLChpc3NldCgkcGFyYW1zWydpbWFnZV91cmxfaGFzY2FoZWRpciddKSk/KGludCkkcGFyYW1zWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXTowKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfcHJlZnN1cGRhdGVkJykpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2xlYXJfbm93J10pICkKICB7CiAgICAvLyBjbGVhciBhbGwgZmlsZXMgZnJvbSBjYWNoZSBkaXIgb2xkZXIgdGhhbiBOIGRheXMKICAgIHRyeQogICAgICB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJywoaW50KSRwYXJhbXNbJ2NhY2hlX2FnZSddKTsKCSRuX3JlbW92ZWQgPSAkdGhpcy0+Y2xlYXJfY2FjaGVkX2ZpbGVzKCk7CgkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2NhY2hlY2xlYW5lZCcsJG5fcmVtb3ZlZCkpOwoJJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5MYW5nKCdhY3RfY2FjaGVjbGVhbmVkJyksJHRoaXMtPkxhbmcoJ21zZ19jYWNoZWNsZWFuZWQnLCRuX3JlbW92ZWQpKTsKICAgICAgfQogICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsKICAgICAgfQogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2xlYXJfYWxsJ10pICkKICB7CiAgICAvLyBqdXN0IG51a2UgdGhlIGNhY2hlIGRpcmVjdG9yeSBjb21wbGV0ZWx5LgogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJGRpciA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddLicvXycuJHRoaXMtPkdldE5hbWUoKTsKICAgIGNnZV9kaXI6OnJlY3Vyc2l2ZV9ybWRpcigkZGlyKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2FjaGVyZW1vdmVkJykpOwogIH0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYigncmVzcG9uc2l2ZScpOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmUnLChpbnQpJHBhcmFtc1sncmVzcG9uc2l2ZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnLHRyaW0oJHBhcmFtc1sncmVzcG9uc2l2ZV9icmVha3BvaW50cyddKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_savealiases.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2FsaWFzZXMnKTsKCiRhbGlhc2VzID0gYXJyYXkoKTsKJGVycm9yID0gZmFsc2U7CmZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ2FsaWFzX25hbWUnXSk7ICRpKysgKQogIHsKICAgICRuYW1lID0gdHJpbSgkcGFyYW1zWydhbGlhc19uYW1lJ11bJGldKTsKICAgICRvcHRpb25zID0gdHJpbSgkcGFyYW1zWydhbGlhc19vcHRpb25zJ11bJGldKTsKCiAgICBpZiggJG5hbWUgPT0gJycgJiYgJG9wdGlvbnMgPT0gJycgKSBjb250aW51ZTsKICAgIGlmKCAkb3B0aW9ucyA9PSAnJyApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93JywkaSsxKSk7CgkkZXJyb3IgPSB0cnVlOwoJY29udGludWU7CiAgICAgIH0KICAgIGlmKCAhJG5hbWUgKQogICAgICB7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdycsJGkrMSkpOwoJJGVycm9yID0gdHJ1ZTsKCWNvbnRpbnVlOwogICAgICB9CiAgICBpZiggaXNzZXQoJGFsaWFzZXNbJG5hbWVdKSApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdycsJGkrMSkpOwoJJGVycm9yID0gdHJ1ZTsKCWNvbnRpbnVlOwogICAgICB9CgogICAgJGFsaWFzZXNbJG5hbWVdID0gYXJyYXkoJ25hbWUnPT4kbmFtZSwnb3B0aW9ucyc9PiRvcHRpb25zKTsKICB9CgppZiggJGVycm9yICkKICB7CiAgICAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX25hbWVzJ10gPSAkcGFyYW1zWydhbGlhc19uYW1lJ107CiAgICAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX29wdGlvbnMnXSA9ICRwYXJhbXNbJ2FsaWFzX29wdGlvbnMnXTsKICB9CmVsc2UKICB7CiAgICB1bnNldCgkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX25hbWVzJ10pOwogICAgdW5zZXQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19vcHRpb25zJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsaWFzZXMnLHNlcmlhbGl6ZSgkYWxpYXNlcykpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19hbGlhc2VzX3VwZGF0ZWQnKSk7CiAgfQokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJG91dHAgPSBjZ3NpX3V0aWxzOjpwcm9jZXNzX2ltYWdlKCRwYXJhbXMpOwokc2lsZW50ID0gMDsKaWYoIGlzc2V0KCRwYXJhbXNbJ3NpbGVudCddKSApICRzaWxlbnQgPSAoaW50KSRwYXJhbXNbJ3NpbGVudCddOwoKaWYoIGlzc2V0KCRvdXRwWydlcnJvciddKSAmJiAkb3V0cFsnZXJyb3InXSAhPSAnJyAmJiAhJHNpbGVudCApCiAgewogICAgJHNtYXJ0eS0+dHJpZ2dlcl9lcnJvcigkb3V0cFsnZXJyb3InXSk7CiAgICByZXR1cm47CiAgfQoKZWNobyAkb3V0cFsnb3V0cHV0J107CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWxpYXNlcycsJHRoaXMtPkxhbmcoJ2FsaWFzZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncmVzcG9uc2l2ZScsJHRoaXMtPkxhbmcoJ3Jlc3BvbnNpdmUnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZW1iZWRkaW5nJywkdGhpcy0+TGFuZygnZW1iZWRkaW5nJykpOwovL2VjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncmVzaXppbmcnLCR0aGlzLT5MYW5nKCdyZXNpemluZycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdnZW5lcmFsJywkdGhpcy0+TGFuZygnZ2VuZXJhbCcpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignYWxpYXNlcycsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9hbGlhc2VzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigncmVzcG9uc2l2ZScsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9yZXNwb25zaXZlX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignZW1iZWRkaW5nJywkcGFyYW1zKTsKaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2VtYmVkZGluZ190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKLy8gZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3Jlc2l6aW5nJywkdGhpcy0+TGFuZygncmVzaXppbmcnKSk7Ci8vIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9yZXNpemluZ190YWIucGhwJyk7Ci8vIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2dlbmVyYWwnLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZ2VuZXJhbF90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/CGSmartImage.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR1NtYXJ0SW1hZ2UgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7IC8vIHRoaXMgaXMgaGVyZSBzbyB0aGUgbW9kdWxlIGNhbiBiZSB1c2VkIGZyb20gdGhlIGFkbWluLgogIH0KCiAgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgeyByZXR1cm4gRkFMU0U7IH0KICBmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzKTsgfQogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgIH0KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuOSc7IH0KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsgcmV0dXJuICcxLjEwLjMnOyB9CiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjI2LjQnKTsgICB9CiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ2NhbGd1eTEwMDAnOyB9CiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBnbWFpbC5jb20nOyB9CiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiB0cnVlOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgeyByZXR1cm4gJ2V4dGVuc2lvbnMnOyB9CiAgZnVuY3Rpb24gSGFuZGxlc0V2ZW50cyAoKSB7IHJldHVybiBmYWxzZTsgfQogIGZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gdHJ1ZTsgfQogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7IH0KICAKICAKICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICB7CiAgICBwYXJlbnQ6OlNldFBhcmFtZXRlcnMoKTsKICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCiAgICAvLyBvcGVyYXRpb25hbCBwYXJhbXMgKHdoYXQgdG8gZG8sIHdpdGggd2hhdC4uLikKCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9hdXRvc2NhbGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9iY2FjaGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9lbWJlZCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub2F1dG8nLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9yb3RhdGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm90YWcnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9yZXNwb25zaXZlJyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vcmVtb3RlJyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NyYycsQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvdmVyd3JpdGUnLENMRUFOX0lOVCk7CgogICAgLy8gcGFyYW1zIGZvciB0aGUgb3V0cHV0IHRhZyAoaWYgb3V0cHV0dGluZyBhbiBpbWcgdGFnKQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lkJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NsYXNzJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N0eWxlJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RpdGxlJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FsdCcsQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCduYW1lJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hlaWdodCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd3aWR0aCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXhfaGVpZ2h0JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21heF93aWR0aCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdxdWFsaXR5JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JlbCcsQ0xFQU5fU1RSSU5HKTsKCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9zcmNcZCovJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvYWxpYXNcZCovJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvZmlsdGVyX1x3Ki8nLENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2lsZW50JyxDTEVBTl9JTlQpOwoKICAgIC8vIG1vcmUgc21hcnR5IHBsdWdpbnMKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Jsb2NrKCdjZ3NpX2NvbnZlcnQnLGFycmF5KCdjZ3NpX3V0aWxzJywnY2dzaV9jb252ZXJ0JykpOwogIH0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKICB7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaWxlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zaWxlbnQnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhbGlhcycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FsaWFzJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9hdXRvc2NhbGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2F1dG9zY2FsZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYmNhY2hlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9iY2FjaGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2VtYmVkJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9lbWJlZCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYXV0bycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vYXV0bycpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vcm90YXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9yb3RhdGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3RhZycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vdGFnJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9yZXNwb25zaXZlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9yZXNwb25zaXZlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9icmVha3BvaW50cycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vYnJlYWtwb2ludHMnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3JlbW90ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vcmVtb3RlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3JjJywnJywkdGhpcy0+TGFuZygncGFyYW1fc3JjJyksZmFsc2UpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignb3ZlcndyaXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fb3ZlcndyaXRlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaWQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9pZCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NsYXNzJywnJywkdGhpcy0+TGFuZygncGFyYW1fY2xhc3MnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzdHlsZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3N0eWxlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGl0bGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV90aXRsZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FsdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FsdCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25hbWUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9uYW1lJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGVpZ2h0JywnJywkdGhpcy0+TGFuZygncGFyYW1faGVpZ2h0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignd2lkdGgnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV93aWR0aCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3F1YWxpdHknLCc3NScsJHRoaXMtPkxhbmcoJ3BhcmFtX3F1YWxpdHknKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdyZWwnLCc3NScsJHRoaXMtPkxhbmcoJ3BhcmFtX3JlbCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21heF93aWR0aCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX21heF93aWR0aCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21heF9oZWlnaHQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9tYXhfaGVpZ2h0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2JsdXInLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfYmx1cicpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9icmlnaHRuZXNzJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2JyaWdodG5lc3MnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY29sb3JpemUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfY29sb3JpemUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY29udHJhc3QnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfY29udHJhc3QnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY3JvcCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9jcm9wJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2Nyb3B0b2ZpdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfZWRnZWRldGVjdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2VtYm9zcycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9lbWJvc3MnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfZmxpcCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9mbGlwJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2dyYXlzY2FsZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfbWVhbnJlbW92YWwnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfbmVnYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX25lZ2F0ZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9waXhlbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9waXhlbGF0ZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9yZXNpemUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcmVzaXplJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3Jlc2l6ZXRvZml0JywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3JvdGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfcm91bmRlZGNvcm5lcnMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfd2F0ZXJtYXJrJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3dhdGVybWFyaycpKTsKICB9CgogIGZ1bmN0aW9uIEdldEhlbHAoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwogIH0KICAKICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQogIHsKICAgIHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaHRtbC5pbmMnKTsKICB9CgogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNhbl9zbWFydF9lbWJlZCgkc3JjKQogIHsKICAgIGdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CiAgICBnbG9iYWwgJENNU19TVFlMRVNIRUVUOwoKICAgICRpbWFnc2l6ZSA9IGZpbGVzaXplKCRzcmMpOwoKICAgICRicm93c2VyID0gY2dlX3V0aWxzOjpnZXRfYnJvd3NlcigpOwogICAgc3dpdGNoKCAkYnJvd3Nlci0+Z2V0QnJvd3NlcigpICkKICAgICAgewogICAgICBjYXNlIEJyb3dzZXI6OkJST1dTRVJfSUU6CgkkdmVyID0gJGJyb3dzZXItPmdldFZlcnNpb24oKTsKCWlmKCAkdmVyIDw9IDcgKSByZXR1cm4gRkFMU0U7CglpZiggJENNU19TVFlMRVNIRUVUICYmICR2ZXIgPCA4ICkgcmV0dXJuIEZBTFNFOwoJaWYoICR2ZXIgPT0gOCAmJiAkaW1hZ3NpemUgPj0gMzIqMTAyNCApIHJldHVybiBGQUxTRTsKCXJldHVybiBUUlVFOwoKICAgICAgZGVmYXVsdDoKCXJldHVybiBUUlVFOwogICAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY2FuX2VtYmVkKCRzcmMpCiAgewogICAgaWYoICFpc19yZWFkYWJsZSgkc3JjKSApIHJldHVybiBGQUxTRTsKCiAgICAkZV9tb2RlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnKTsKICAgICRlX3NpemVsaW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX3NpemUnKTsKICAgICRlX3R5cGVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX3R5cGVzJyk7CgogICAgc3dpdGNoKCAkZV9tb2RlICkKICAgICAgewogICAgICBjYXNlICdzbWFydCc6CglyZXR1cm4gJHRoaXMtPmNhbl9zbWFydF9lbWJlZCgkc3JjKTsKCiAgICAgIGNhc2UgJ3NtYXJ0X2xpbWl0ZWQnOgoJaWYoICRlX3NpemVsaW1pdCA8PSAwIHx8ICRlX3NpemVsaW1pdCA+IDEwMDAwICkgcmV0dXJuIEZBTFNFOwoJJGVfc2l6ZWxpbWl0ICo9IDEwMjQ7CgkkdG1wID0gZmlsZXNpemUoJHNyYyk7CglpZiggJHRtcCA+ICRlX3NpemVsaW1pdCApIHJldHVybiBGQUxTRTsKCXJldHVybiAkdGhpcy0+Y2FuX3NtYXJ0X2VtYmVkKCRzcmMpOwoJYnJlYWs7CgkKICAgICAgY2FzZSAnc2l6ZWxpbWl0JzoKCS8vIGNoZWNrIHRoZSBsaW1pdC4KCWlmKCAkZV9zaXplbGltaXQgPD0gMCB8fCAkZV9zaXplbGltaXQgPiAxMDAwMCApIHJldHVybiBGQUxTRTsKCSRlX3NpemVsaW1pdCAqPSAxMDI0OwoJCgkvLyBnZXQgdGhlIGZpbGVzaXplCgkkdG1wID0gZmlsZXNpemUoJHNyYyk7CglpZiggJHRtcCA+ICRlX3NpemVsaW1pdCApIHJldHVybiBGQUxTRTsKCXJldHVybiBUUlVFOwoKICAgICAgY2FzZSAndHlwZSc6CglpZiggISRlX3R5cGVzICkgcmV0dXJuIEZBTFNFOwoJJHR5cGVzID0gZXhwbG9kZSgnLCcsJGVfdHlwZXMpOwoJJGV4dCA9IHN0cnJjaHIoJGZpbGVbJ25hbWUnXSwnLicpOwoJaWYoICEkZXh0ICkgcmV0dXJuIEZBTFNFOwoJZm9yZWFjaCggJHR5cGVzIGFzICR0eXBlICkKCSAgewoJICAgIGlmKCAnLicuc3RydG9sb3dlcigkdHlwZSkgPT0gc3RydG9sb3dlcigkZXh0ZW5zaW9uKSApIHJldHVybiBUUlVFOwoJICB9CglyZXR1cm4gRkFMU0U7CglicmVhazsKCiAgICAgIGNhc2UgJ25vbmUnOgogICAgICBkZWZhdWx0OgoJcmV0dXJuIEZBTFNFOwogICAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJfY2FjaGVkX2ZpbGVzKCkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZGlyID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9fJy4kdGhpcy0+R2V0TmFtZSgpOwogICAgJGFnZV9kYXlzID0gKGludCkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJyk7CiAgICBpZiggJGFnZV9kYXlzIDw9IDAgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX2FnZScpKTsKICAgICAgfQoJICAKICAgICR0aGVkYXRlID0gdGltZSgpIC0gJGFnZV9kYXlzICogMjQgKiA2MCAqIDYwOwogICAgJG5fcmVtb3ZlZCA9IDA7CiAgICBpZiggJGRoID0gb3BlbmRpcigkZGlyKSApIAogICAgICB7Cgl3aGlsZSggKCRmaWxlID0gcmVhZGRpcigkZGgpKSAhPT0gZmFsc2UgKQoJICB7CgkgICAgaWYoIHN0YXJ0c3dpdGgoJGZpbGUsJy4nKSApIGNvbnRpbnVlOyAvLyBpZ25vcmUgaGlkZGVuIGZpbGVzLgoJICAgICRmbiA9IGNtc19qb2luX3BhdGgoJGRpciwkZmlsZSk7CgkgICAgaWYoIGZpbGVtdGltZSgkZm4pIDwgJHRoZWRhdGUgJiYgaXNfZmlsZSgkZm4pICkKCSAgICAgIHsKCQlAdW5saW5rKCRmbik7CgkJJG5fcmVtb3ZlZCsrOwoJICAgICAgfQoJICB9CgljbG9zZWRpcigkZGgpOwogICAgICB9CiAgICByZXR1cm4gJG5fcmVtb3ZlZDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBIYXNDYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCAkcGFyYW1zID0gYXJyYXkoKSkKICB7CiAgICBpZiggJGNhcGFiaWxpdHkgPT0gJ3Rhc2tzJyApIHJldHVybiBUUlVFOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF90YXNrcygpCiAgewogICAgcmV0dXJuIG5ldyBDR1NtYXJ0SW1hZ2VfQ2xlYXJDYWNoZVRhc2soKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FjaGVkX2ltYWdlX3VybCgkZmlsZW5hbWUpCiAgewogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJHByZWZpeCA9IHRyaW0oJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9wcmVmaXgnKSk7CiAgICBpZiggISRwcmVmaXggfHwgIXN0YXJ0c3dpdGgoJHByZWZpeCwkY29uZmlnWydyb290X3VybCddKSApCiAgICAgICRwcmVmaXggPSAkY29uZmlnWyd1cGxvYWRzX3VybCddOwogICAgJGhhc2NhY2hlZGlyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicpOwoKICAgICR1cmwgPSAkcHJlZml4OwogICAgaWYoICFlbmRzd2l0aCgkdXJsLCcvJykgKSAkdXJsIC49ICcvJzsKICAgIGlmKCAhJGhhc2NhY2hlZGlyICkgJHVybCAuPSAnXycuJHRoaXMtPkdldE5hbWUoKTsKICAgIGlmKCAhZW5kc3dpdGgoJHVybCwnLycpICkgJHVybCAuPSAnLyc7CiAgICAkdXJsIC49ICRmaWxlbmFtZTsKICAgIHJldHVybiAkdXJsOwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/changelog.html.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMCAtIEluaXRpYWwgUmVsZWFzZTwvbGk+CiAgPGxpPlZlcnNpb24gMS4wLjEgLSBCdWcgZml4ZXMuPC9saT4KICA8bGk+VmVyc2lvbiAxLjAuMiAtIEJ1ZyBmaXhlcy48L2xpPgogIDxsaT5WZXJzaW9uIDEuMC4zIC0gQnVnIGZpeGVzLjwvbGk+CiAgPGxpPlZlcnNpb24gMS4xIC0gTWFyY2ggMjAxMQogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgY3JvcHRvZml0IGZpbHRlci48L2xpPgogICAgICA8bGk+QWRkcyBhdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjEuMSAtIE1hcmNoIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIGNyb3B0b2ZpdC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS4xIC0gTWF5IDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIEdJRiBpbWFnZSBoYW5kbGluZy48L2xpPgogICAgICA8bGk+QWRkIGEgYml0IG1vcmUgaW50ZWxsaWdlbmNlIGludG8gaW1hZ2Ugc3JjIGhhbmRsaW5nLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4xLjIgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+TWFueSBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+QWRkcyByb3VuZGVkIGltYWdlIGNvcm5lciBzdXBwb3J0Li4uIHdpdGggdHJhbnNwYXJlbmN5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yLjEgLSBNYXkgMjAxMQogICAgPHVsPgogICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggSUU3IGFuZCBlbWJlZGRpbmcgKElFNyB3b250IGVtYmVkLCBhcyBtdWNoIGFzIEkgdHJ5IHRvIG1ha2UgaXQpLjwvbGk+CiAgICA8bGk+UmVxdWlyZXMgbmV3IHZlcnNpb24gb2YgQ0dFeHRlbnNpb25zIHRoYXQgZG9lcyBjcnVkZSBoYWNrIGZvciBtaW1lIHR5cGUgZGV0ZWN0aW9uIG9uIHdpbmRvemUgc2VydmVycy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4KICA8L2xpPlZlcnNpb24gMS4zIC0gTWF5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBqcGVnIGF1dG8tcm90YXRpb24gdmlhIEVYSUYuPC9saT4KICAgIDxsaT5BZGRzIGEgZmxpcCBmaWx0ZXIuPC9saT4KICAgIDxsaT5BZGRzIGNvbW1hbmQgYWxpYXNlcy48L2xpPgogICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc3JjIyMgYXJndW1lbnRzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuMy4xIC0gTWF5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+U3VwcmVzcyBhIHdhcm5pbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8L2xpPlZlcnNpb24gMS40IC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPkFkZHMgdGhlIHtjZ3NpX2NvbnZlcnR9IHRhZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQuMSAtIEp1bHkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5BZGRyZXNzIGFuIGlzc3VlIHdpdGggdGhlIENNU19TVFlMRVNIRUVUIGdsb2JhbCBvY2Nhc3Npb25hbGx5IGJlaW5nIHNldCwgd2hpY2ggcmVzdWx0cyBpbiB0aGUgbm90YWcgc3R1ZmYgbWVzc2luZyB1cC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQuMiAtIEp1bHkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjUgLSBBdWd1c3QgMjAxMQogICAgPHVsPgogICAgPGxpPk1pbm9yIEJ1ZyBGaXhlcy48L2xpPgogICAgPGxpPkZpeGVzIGlzc3VlcyB3aXRoIGNnc2lfY29udmVydC48L2xpPgogICAgPGxpPkFkZHMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHRpdGxlLCByZWwsIGFuZCBpZCBwYXJhbWV0ZXJzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkb3dubG9hZCBpbWFnZXMgZnJvbSBhIHJlbW90ZSBzaXRlLCBjYWNoZSB0aGVtLi4gYW5kIHByb2Nlc3MgdGhlbS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNS4xIC0gU2VwdGVtYmVyLCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjYgLSBPY3RvYmVyLCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgYSBjcm9wLXRvLWZpdCBsb2NhdGlvbiBvdGhlciB0aGFuIGNlbnRlci48L2xpPgogICAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IGNyb3AtdG8tZml0IGxvY2F0aW9uLCBidXQgY2hhbmdpbmcgdGhpcyB3aWxsIG5vdCBnZW5lcmF0ZSBuZXcgaW1hZ2VzLi4uIHlvdSB3aWxsIG5lZWQgdG8gY2xlYXIgeW91ciBnZW5lcmF0ZWQgaW1hZ2UgZmlsZXMuPC9saT4KICAgICAgPGxpPmNyb3AtdG8tZml0IGZpbHRlciBub3cgY2hlY2tzIGZvciBwb3NzaWJsZSB1cHNjYWxpbmcgYW5kIHdpbGwgbm90IGFsbG93IGl0LjwvbGk+CiAgICAgIDxsaT5yZW5hbWUgdGhlIG5vY2FjaGUgcGFyYW1ldGVyIHRvIG5vYmNhY2hlIHRvIHJlbW92ZSBjb25mbGljdCB3aXRoIENHRXh0ZW5zaW9ucy48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgd2l0aCBtdWx0aXBsZSBjbGFzcyBuYW1lcyBzcGVjaWZpZWQgaW4gYWxpYXNlcy48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgaW4gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkZpeGVzIGEgYnVnIHdoZXJlIGlmIG5vdGhpbmcgaGFwcGVuZWQgaW4gYW4gaW1hZ2UgZmlsdGVyIChkdWUgdG8gY29uc3RyYWludHMpIHRoZSBzeXN0ZW0gd291bGQgbm90IHNhZmUgdGhlIGZpbGUuPC9saT4KICAgICAgPGxpPkFkZHMgYSByZXNpemV0b2ZpdCBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkdlbmVyYXRlZCBmaWxlcyBubyBsb25nZXIgaGF2ZSBhbiBleHRlbnNpb24gdG8gcHJldmVudCBpbmNvbnNpc3RlbmNpZXMgaW4gZmlsZSB0eXBlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNi4xIC0gTm92ZW1iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGZpeGVzIHRvIGNnc2lfY29udmVydC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNyAtIEZlYnJ1YXJ5LCAyMDEyCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGNoZWNrIHRoZSB0aW1lIG9mIHRoZSBzb3VyY2UgaW1hZ2UgdG8gYWlkZSBpbiBkZWNpZGluZyBpZiB0aGUgY2FjaGVkIGltYWdlIG5lZWRzIHRvIGJlIGdlbmVyYXRlZC9yZS1nZW5lcmF0ZWQuPC9saT4KICAgICAgPGxpPkZpeGVzIHRvIHRoZSByZXNpemUgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5SZXNhbXBsZSBpbnN0YWQgb2YgcmVzaXplIGJ5IGRlZmF1bHQgaW4gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkNyZWF0ZSBhbiBpbmRleC5odG1sIGZpbGUgaW4gdGhlIGltYWdlIGRpcmVjdG9yeSB0byBwcmV2ZW50IGJyb3dzaW5nLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS44LjEgLSBGZWJydWFyeSwgMjAxMgogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgc2lsZW50IHBhcmFtIHRvIGhpZGUgZXJyb3JzLjwvbGk+IAogICAgICA8bGk+QWRkcyByZXNpemUgdG8gbGFyZ2VzdCBlZGdlIHRvIGZpbHRlcl9yZXNpemUuPC9saT4KICAgICAgPGxpPlJlbW92ZXMgbGF6eWxvYWRpbmcgc28gdGhhdCB7Y2dzaV9jb252ZXJUfSB3aWxsIHdvcmsuPC9saT4KICAgICAgPGxpPnNvbWUgbWlub3IgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KIDxsaT5WZXJzaW9uIDEuOC40IC0gTWF5LCAyMDEyCiAgICA8dWw+CiAgICAgIDxsaT5GaXhlcyB0byBjZ3NpX2NvbnZlcnQuPC9saT4KICAgICAgPGxpPlJlbW92ZXMgdGhlIGNvbG9yIHBhcmFtZXRlciBmcm9tIGZpbHRlcl9yb3RhdGUuPC9saT4KICAgICAgPGxpPkZpeGVzIHdhcm5pbmdzLjwvbGk+CiAgICAgIDxsaT5Db2RlIGNsZWFudXAuPC9saT4KICAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS45IC0gTWF5IDIwMTIKICAgPHVsPgogICAgIDxsaT5BZGRzIHJlc3BvbnNpdmUgaW1hZ2UgY2FwYWJpbGl0aWVzIHdpdGggd2ViIHNlcnZpY2UgYmFzZWQgbW9iaWxlIGRldmljZSBkZXRlY3Rpb24uPC9saT4KICAgICA8bGk+SW1wcm92ZXMgcGF0aCBkZXRlY3Rpb24uPC9saT4KICAgPC91bD4KIDwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_aliases_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKLy8KLy8gYnVpbGQgdGhlIGZvcm0KLy8KJGFsaWFzZXMgPSBhcnJheSgpOwppZiggaXNzZXQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19uYW1lcyddKSApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19uYW1lcyddKTsgJGkrKyApCiAgICAgIHsKCSRuYW1lID0gJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19uYW1lcyddWyRpXTsKCSRvcHRzID0gJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19vcHRpb25zJ11bJGldOwoJJGFsaWFzZXNbXSA9IGFycmF5KCduYW1lJz0+JG5hbWUsJ29wdGlvbnMnPT4kb3B0cyk7CiAgICAgIH0KICAgIHVuc2V0KCRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpLidfYWxpYXNfbmFtZXMnXSk7CiAgICB1bnNldCgkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX29wdGlvbnMnXSk7CiAgfQplbHNlCiAgewogICAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGlhc2VzJyk7CiAgICBpZiggJHRtcCApCiAgICAgIHsKCSRhbGlhc2VzID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgIH0KICB9CiRzbWFydHktPmFzc2lnbignYWxpYXNlcycsJGFsaWFzZXMpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZWFsaWFzZXMnLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hbGlhc2VzX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_embedding_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJGVtYmVkX21vZGVzID0gYXJyYXkoKTsKJGVtYmVkX21vZGVzWydub25lJ10gPSAkdGhpcy0+TGFuZygnbm9uZScpOwokZW1iZWRfbW9kZXNbJ3NtYXJ0J10gPSAkdGhpcy0+TGFuZygnc21hcnQnKTsKJGVtYmVkX21vZGVzWydzaXplbGltaXQnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfZW1iZWRfc2l6ZWxpbWl0Jyk7CiRlbWJlZF9tb2Rlc1snc21hcnRfbGltaXRlZCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnKTsKJGVtYmVkX21vZGVzWyd0eXBlJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2VtYmVkX3R5cGUnKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWJlZF9tb2RlcycsJGVtYmVkX21vZGVzKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWJlZF9tb2RlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW1iZWRfbW9kZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWJlZF9zaXplbGltaXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbWJlZF9zaXplbGltaXQnKSk7CiRzbWFydHktPmFzc2lnbignZW1iZWRfdHlwZXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbWJlZF90eXBlcycpKTsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU1RhcnQoJGlkLCdhZG1pbl9lbWJlZGRpbmdfdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2VtYmVkZGluZ190YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKCiR0bXAgPSBhcnJheSgpOwokdG1wWyd0bCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfdG9wbGVmdCcpOwokdG1wWyd0YyddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfdG9wY2VudGVyJyk7CiR0bXBbJ3RyJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY190b3ByaWdodCcpOwokdG1wWydjbCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfY2VudGVybGVmdCcpOwokdG1wWydjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19jZW50ZXInKTsKJHRtcFsnY3InXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0Jyk7CiR0bXBbJ2JsJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19ib3R0b21sZWZ0Jyk7CiR0bXBbJ2JjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19ib3R0b21jZW50ZXInKTsKJHRtcFsnYnInXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0Jyk7CiRzbWFydHktPmFzc2lnbignY3JvcHRvZml0X2xvY3MnLCR0bXApOwokc21hcnR5LT5hc3NpZ24oJ2NhY2hlX2FnZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfcHJlZml4JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX3ByZWZpeCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCdjJykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2dlbmVyYWxfdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2dlbmVyYWxfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_resizing_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKZWNobyBfX0ZJTEVfXzsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHNtYXJ0eS0+YXNzaWduKCdyZXNwb25zaXZlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsMSkpOwokc21hcnR5LT5hc3NpZ24oJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3Jlc3BvbnNpdmVfdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3Jlc3BvbnNpdmVfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgQ2xlYW5lZCc7CiRsYW5nWydhZGRfcm93J10gPSAnQWRkIFJvdyc7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsKJGxhbmdbJ2FsaWFzZXMnXSA9ICdBbGlhc2VzJzsKJGxhbmdbJ2Fza19jbGVhcl9pbWFnZV9jYWNoZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgQUxMIGZpbGVzIGZyb20gdGhlIGltYWdlIGNhY2hlPyc7CgojIEMKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0NsZWFyIEFsbCBGaWxlcyc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdDbGVhciBOb3cnOwoKIyBECiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwoKIyBFCiRsYW5nWydlbWJlZGRpbmcnXSA9ICdFbWJlZGRlZCBJbWFnZXMnOwokbGFuZ1snZW1iZWRkaW5nX21vZGUnXSA9ICdJbWFnZSBFbWJlZGRpbmcgTW9kZSc7CiRsYW5nWydlbWJlZF9zaXplbGltaXQnXSA9ICdFbWJlZGRhYmxlIGltYWdlIHNpemUgbGltaXQgKGtiKSc7CiRsYW5nWydlbWJlZF90eXBlcyddID0gJ0VtYmVkZGFibGUgaW1hZ2UgdHlwZSc7CiRsYW5nWydlbmFibGVfcmVzcG9uc2l2ZSddID0gJ0VuYWJsZSBSZXNwb25zaXZlIEltYWdlcyc7CiRsYW5nWydlcnJvcl9hbGlhc19kdXBsaWNhdGVuYW1lX2F0cm93J10gPSAnRHVwbGljYXRlIGFsaWFzIG5hbWUgc3BlY2lmaWVkIGZvciBhbGlhcyBhdCByb3cgJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9uYW1lX2F0cm93J10gPSAnTm8gbmFtZSBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdObyBvcHRpb25zIHNwZWNpZmllZCBmb3IgYWxpYXMgYXQgcm93ICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnQWdlIHByZWZlcmVuY2UgaW52YWxpZC4uLiBObyBvcGVyYXRpb24gcGVyZm9ybWVkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIGludmFsaWQ6ICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ0ludmFsaWQgcGFyYW1ldGVyIGluIGNhbGw6ICVzJzsKJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnQ291bGQgbm90IGZpbmQgYSBmaWxlIGF0OiAlcyc7CiRsYW5nWydlcnJvcl9yZW1vdGVmaWxlJ10gPSAnUHJvYmxlbSByZXRyaWV2aW5nIHJlbW90ZSBmaWxlIGF0ICVzJzsKJGxhbmdbJ2Vycm9yX3Vua25vd25maWx0ZXInXSA9ICdDR1NtYXJ0SW1hZ2UgLSBVbmtub3duIEZpbHRlcjogJXMnOwoKIyBGCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIFNtYXJ0IEltYWdlIFRvb2xraXQnOwoKIyBHCiRsYW5nWydnZW5lcmFsJ10gPSAnR2VuZXJhbCc7CgojIEgKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPWAo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBzaW1wbGUgd2F5IHRvIHByb2Nlc3MsIGFuZCBkaXNwbGF5IGltYWdlcyBvbiB5b3VyIHdlYiBwYWdlLiAgSXQgYWxsb3dzIHNpbXBsZSBpbWFnZSBwcm9jZXNzaW5nLCBhbmQgd2F0ZXJtYXJraW5nLiAgVGhpcyBtb2R1bGUgbWFrZXMgZGlzcGxheWluZyBwcm9jZXNzZWQgaW1hZ2VzIG9uIHlvdXIgd2Vic2l0ZSB0cml2aWFsLiAgSXQgYWxzbyBwcm92aWRlcyBmZWF0dXJlcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSByYXRpbmcgb2YgeW91ciB3ZWJzaXRlLCBtYWtpbmcgeW91ciB3ZWJzaXRlIHBvd2VyZnVsIGFuZCBmYXN0IGF0IHRoZSBzYW1lIHRpbWUuPC9wPgo8aDM+RmVhdHVyZXM8L2gzPgo8dWw+CjxsaT5Qb3dlcmZ1bCwgYnV0IHNpbXBsZSB0byB1c2UgaW1hZ2UgZmlsdGVyaW5nIGFuZCBwcm9jZXNzaW5nLiBGaWx0ZXJpbmcgaW5jbHVkZXM6CiAgPHVsPgogICAgPGxpPkJsdXI8L2xpPgogICAgPGxpPkJyaWdodG5lc3M8L2xpPgogICAgPGxpPkNvbG9yaXplPC9saT4KICAgIDxsaT5Db250cmFzdDwvbGk+CiAgICA8bGk+Q3JvcDwvbGk+CiAgICA8bGk+PHN0cm9uZz5Dcm9wIFRvIEZpdDwvc3Ryb25nPjwvbGk+CiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPgogICAgPGxpPkVtYm9zczwvbGk+IAogICAgPGxpPkdyYXlzY2FsZTwvbGk+CiAgICA8bGk+TWVhbiBSZW1vdmFsPC9saT4KICAgIDxsaT5OZWdhdGU8L2xpPgogICAgPGxpPlBpeGVsYXRlPC9saT4KICAgIDxsaT5SZXNpemU8L2xpPgogICAgPGxpPlJvdGF0ZTwvbGk+CiAgICA8bGk+U2VsaWN0aXZlIEJsdXI8L2xpPgogICAgPGxpPlNtb290aDwvbGk+CiAgICA8bGk+V2F0ZXJtYXJrPC9saT4KICA8L3VsPgo8L2xpPjxici8+CjxsaT5TbWFydCBkZXRlY3Rpb24gb2YgaW1hZ2VzLiAgU3BlY2lmeSBhYnNvbHV0ZSBVUkxTLCBhYnNvbHV0ZSBwYXRocywgb3IgZmlsZXMgcmVsYXRpdmUgdG8geW91ciByb290IGluc3RhbGxhdGlvbi48L2xpPgo8bGk+QXV0b21hdGljIGRvd25sb2FkaW5nLCBjYWNoaW5nLCBwcm9jZXNzaW5nLCBhbmQgcmUtY2FjaGluZyBvZiBpbWFnZXMgZnJvbSByZW1vdGUgd2Vic2l0ZXMuPC9saT4KPGxpPlNtYXJ0IGF1dG9tYXRpYyByZXNpemluZyAoYXV0b21hdGljYWxseSByZXNpemUgdG8gZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBzZXJ2aW5nIHRoZSBpbWFnZS4uLiByZXNpemluZyB0byB3aWR0aCBBTkQgaGVpZ2h0IGRvZXMgYSBjcm9wIHRvIGZpdC4gPGVtPihqdXN0IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGhlaWdodCBwYXJhbWV0ZXIgdG8gdGhlIENHU21hcnRJbWFnZSB0YWcuKTwvZW0+PC9saT4KPGxpPkF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uLjwvbGk+CjxsaT5JbWFnZSBjaGFuZ2UgZGV0ZWN0aW9uLCBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkLiAoc2VlIHRoZSBub3RpbWVjaGVjayBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKS48L2xpPgo8bGk+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb24gZm9yIGltYWdlcy48L2xpPgo8bGk+UHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nLjwvbEk+CjxsaT5UaGUgYWJpbGl0eSB0byB1c2UgYSBzZXBhcmF0ZSBVUkwgKENETikgZm9yIHNlcnZpbmcgaW1hZ2VzPC9saT4KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHRoZSBjb250ZW50IG9mIHRoZSB3ZWIgcGFnZSB0byBtaW5pbWl6ZSBzcGFjZS48L2xpPgo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbGltaXQgZW1iZWRkaW5nIGltYWdlcyBzbWFydGx5LCBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtLjwvbGk+CjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPgo8bGk+QWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZy48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIHtjZ3NpX2NvbnZlcnR9IGJsb2NrIHRhZy48L2xpPgo8bGk+TW9yZS4uLjwvbGk+CjwvdWw+CjxoMz5XaHkgc2hvdWxkIEkgdXNlIGl0PzwvaDM+CjxwPlRoZXJlIGFyZSBmb3VyIHZlcnkgaW1wb3J0YW50IHJlYXNvbnMgdG8gdXNlIHRoaXMgcGx1Z2luOjwvcD4KPHVsPgogIDxsaT5QZXJmb3JtYW5jZTogIFVzaW5nIGltYWdlIGVtYmVkZGluZyAoZXZlbiBpZiBubyBvdGhlciBmdW5jdGlvbnMgYXJlIHVzZWQpIHJlc3VsdHMgaW4gZmV3ZXIgcmVxdWVzdHMuICBNb3N0IGJyb3dzZXJzIG9ubHkgcGVyZm9ybSB0d28gdG8gZm91ciBzaW11bHRhbmVvdXMgcmVxdWVzdHMgdG8gdGhlIHNhbWUgZG9tYWluIGF0IHRoZSBzYW1lIHRpbWUuICBGb3Igd2ViIHBhZ2VzIHdpdGggbG90cyBvZiBpbWFnZXMgdGhpcyBjYW4gc2VyaW91c2x5IHNsb3cgZG93biB5b3VyIHNpdGUuPC9saT4KICA8bGk+UGVyZm9ybWFuY2U6ICBFdmVuIGlmIG5vdCB1c2luZyBlbWJlZGRpbmcsIHNlbmRpbmcgbGFyZ2UgaW1hZ2VzIHRvIHlvdXIgdmlzaXRvcnMsIGFuZCBhc2tpbmcgdGhlaXIgYnJvd3NlciB0byBzY2FsZSB0aGUgaW1hZ2UgaXMgdmVyeSB2ZXJ5IHNsb3cuPC9saT4KICA8bGk+U2VjdXJpdHk6ICBDR1NtYXJ0SW1hZ2UgY2FjaGVzIGl0cyBpbWFnZXMgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnksIHRoZXJlYnkgaGlkaW5nIHRoZSBvcmlnaW5hbCAocGVyaGFwcyBjb3B5cmlnaHRlZCkgaW1hZ2VzIGZyb20geW91ciB1c2Vycy4gIElmIGVtYmVkZGluZyBpcyB1c2VkIHRoZXkgY2FudCBldmVuIGZpbmQgdGhlIGNhY2hlZCBsb2NhdGlvbik8L2xpPgogIDxsaT5TaW1wbGljaXR5OiAgVGhlIGZpbHRlcmluZyBjYXBhYmlsaXRpZXMgb2YgQ0dTbWFydEltYWdlIGFsbG93IHlvdSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGZvciBjb25zaXN0ZW50IGFuZCBzZWN1cmUgZGlzcGxheSwgd2l0aG91dCBzaXRlIGVkaXRvcnMgaGF2aW5nIHRvIHBsYXkgd2l0aCB0aGVtLiAgVGhleSBjYW4gdXBsb2FkIGxhcmdlciBpbWFnZXMsIGFuZCB5b3VyIHNpdGUgd2lsbCBqdXN0IGhhbmRsZSB0aGVtIHByb3Blcmx5LjwvbGk+CjwvdWw+CjxoMz5Ib3cgZG8gSSB1c2UgaXQ/PC9oMz4KPHA+VGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgdG8gdXNlIGl0IGluIHRoZSBzYW1lIHBsYWNlIHlvdSB3b3VsZCB0aGUge2ltYWdlfSB0YWcuICBJLmU6IFNvbWV0aGluZyBsaWtlIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyd9PC9jb2RlPi4gIFRoaXMgd2lsbCBnZW5lcmF0ZSB0aGUgaW1hZ2UgdGFnIGZvciB5b3Ugd2l0aCBubyBwcm9jZXNzaW5nLiAgQW5kIGlmIHBvc3NpYmxlLCBlbWJlZCB0aGUgaW1hZ2UgZGlyZWN0bHkgaW50byB5b3VyIGh0bWwgb3V0cHV0LjwvcD4KPHA+T2Z0ZW4gcGVvcGxlIHdhbnQgdG8gZGlzcGxheSBhIHdhdGVybWFyayBvbiB0aGUgaW1hZ2VzIHRoYXQgdGhleSBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZCB0byBwcmV2ZW50IGltYWdlIHRoZWZ0LiAgVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgcHJvdmlkZXMgc2V0dGluZ3MgZm9yIHlvdSB0byBjb25maWd1cmUgd2F0ZXJtYXJraW5nIGFuZCB5b3UgY2FuIGVuYWJsZSB0aGF0IHdpdGggYW55IGltYWdlIHdpdGggYSB0YWcgbGlrZSB0aGlzOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnIGZpbHRlcl93YXRlcm1hcms9MX08L2NvZGU+LiAgVGhpcyB3aWxsIHJlYWQgdGhlIGltYWdlLCBhcHBseSB0aGUgd2F0ZXJtYXJrIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gQ0dFeHRlbnNpb25zLCBjYWNoZSB0aGUgYWx0ZXJlZCBpbWFnZSwgYW5kIHRoZW4gZW1iZWQgaXQgaW50byB5b3VyIG91dHB1dC48L3A+CjxwPkFsc28sIFBpY3R1cmVzIHRha2VuIGJ5IG1vZGVybiBkaWdpdGFsIGNhbWVyYXMgYXJlIG9mdGVuIHRvbyBsYXJnZSBmb3IgdXNlIG9uIGEgd2Vic2l0ZSwgdGhlcmVmb3JlIHRoZXkgbmVlZCB0byBiZSBzY2FsZWQgYmVmb3JlIGRpc3BsYXllZCBvbiB5b3VyIHBhZ2UuICBUaGlzIGNhbiBiZSBkb25lIHF1aXRlIGVhc2lseSB3aXRoIGEgdGFnIGxpa2U6IDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZycgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9J3csMzUwJ308L2NvZGU+LiAgQXMgeW91IG1heSB0aGluaywgdGhlIHdhdGVybWFyayB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlIGJlZm9yZSBpdCBpcyByZXNpemVkIHRvIGEgbWF4aW11bSB3aWR0aCBvZiAzMDAgcGl4ZWxzIChyZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIFRoZW4gdGhlIGFkanVzdGVkIGltYWdlIHdpbGwgYmUgY2FjaGVkLCBhbmQgaWYgdGhlIGJyb3dzZXIgYWxsb3dlcyB0aGUgaW1hZ2Ugd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZSBIVE1MIG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUsIHRoZSBpbWcgdGFnIHdpbGwgY29udGFpbiB0aGUgVVJMIHRvIHRoZSBjYWNoZWQgaW1hZ2UuPC9wPgo8cD5Gcm9tIGhlcmUgeW91IGNhbiBjb21iaW5lIHRoZSBvcHRpb25zIGJlbG93IHRvIHBlcmZvcm0gYWxvdCBvZiBkaWZmZXJlbnQgZWZmZWN0cyB0byB5b3VyIGltYWdlcywgYnVpbGQgc2ltcGxlIGdhbGxlcmllcywgYW5kIGltcHJvdmUgeW91ciBzaXRlIHBlcmZvcm1hbmNlIGF0IHRoZSBzYW1lIHRpbWUuICBFbmpveSE8L3A+CjxoMz5BdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmc8L2gzPgogIDxwPklmIHlvdSBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBhIGhlaWdodCBwYXJhbWV0ZXIsIGFuZCBkbyBub3Qgc3BlY2lmeSB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyLCB0aGUgbW9kdWxlIHdpbGwgYW5hbHl6ZSB0aGUgZmlsdGVycyB5b3UgaGF2ZSBhbHJlYWR5IHNwZWNpZmllZCwgYW5kIGlmIHRoZXJlIGlzIG5vIHJlc2l6ZSBmaWx0ZXIgYWxyZWFkeSBzcGVjaWZpZWQgYXV0b21hdGljYWxseSBhZGQgYSBmaWx0ZXIgdG8gcmVzaXplIG9yIGNyb3B0b2ZpdCB0aGUgaW1hZ2Ugb24gb3V0cHV0LiAgVGhpcyBpcyB1c2VmdWwgdG8gZG8gYXV0b21hdGljIHRodW1ibmFpbGluZyBvbiB0aGUgc2VydmVyLCBhbmQgbm90IHJlcXVpcmUgdGhlIGJyb3dzZXIgdG8gcmVzaXplIHRoZSBpbWFnZS48L3A+CiA8aDM+QSBTaW1wbGUgR2FsbGVyeTwvaDM+CjxwPlRoZSBjb2RlIGJlbG93IHVzZXMgdGhlIHtDR1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPgo8cHJlIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPjxjb2RlPjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDE6PC9zcGFuPiAmbHQ7c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCImZ3Q7e2xpdGVyYWx9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDM6PC9zcGFuPiAgalF1ZXJ5KCdhLmZhbmN5Ym94JykuZmFuY3lib3goKTsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNDo8L3NwYW4+IH0pOwo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA1Ojwvc3Bhbj4gey9saXRlcmFsfSZsdDsvc2NyaXB0Jmd0Owo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA2Ojwvc3Bhbj4ge2Fzc2lnbiB2YXI9J2ZpbGVzJyB2YWx1ZT0ndXBsb2Fkcy9hbGJ1bS8qLmpwZyd8Z2xvYn0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNzo8L3NwYW4+IHtpZiBjb3VudChcJGZpbGVzKX0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gODo8L3NwYW4+ICZsdDtkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsiJmd0Owo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA5Ojwvc3Bhbj4ge2ZvcmVhY2ggZnJvbT1cJGZpbGVzIGl0ZW09J2ZpbGUnfQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEwOjwvc3Bhbj4gICZsdDthIHJlbD0nc2ltcGxlX2FsYnVtJyBjbGFzcz0iZmFuY3lib3giIGhyZWY9IjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPVwkZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSdoLDUwMCcgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiImZ3Q7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9XCRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSdoLDE1MCd9PC9zcGFuPgo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEyOjwvc3Bhbj4gICZsdDsvYSZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMzo8L3NwYW4+IHsvZm9yZWFjaH0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xNDo8L3NwYW4+ICZsdDsvZGl2Jmd0Owo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjE1Ojwvc3Bhbj4gey9pZn0KPC9jb2RlPjwvcHJlPjxici8+CjxwPkxldHMgdGFsayBhYm91dCB0aGlzLjwvcD4KPHA+TGluZXMgMSB0aHJvdWdoIDUgdXRpbGl6ZSBqUXVlcnkgdG8gY2FsbCBmYW5jeWJveCBvbiBhbnkgbGlua3MgdGhhdCBoYXZlIHRoZSAmcXVvdDtmYW5jeWJveCZxdW90OyBjbGFzcy4gIFRoZSBmYW5jeWJveCBqUXVlcnkgcGx1Z2luIGlzIGluY2x1ZGVkIHdpdGggdGhlIEpRdWVyeVRvb2xzIG1vZHVsZS48L3A+CjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4KPHA+TGluZSA4IG9wZW5zIHVwIGEgZGl2IHRvIGNvbnRhaW4gb3VyIGFsYnVtLiAgRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgdGhlIHN0eWxlcyB3ZXJlIGluY2x1ZGVkIGlubGluZSwgaG93ZXZlciBhIGNsYXNzIHRoYXQgd2FzIGRlZmluZWQgaW4gdGhlIHN0eWxlc2hlZXQgc2hvdWxkIGJlIHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuICBUaGUgY2xvc2luZyB0YWcgZm9yIHRoaXMgZGl2IGlzIG9uIGxpbmUgMTQsIGp1c3QgYmVmb3JlIHRoZSA8Y29kZT57L2lmfTwvY29kZT4uPC9wPgo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPgo8cD5MaW5lcyAxMCBhbmQgMTEgYXJlIHRoZSByZWFsIG1hZ2ljLiAgSGVyZSB3ZSBjcmVhdGUgYSBsaW5rIHdpdGggY2xhc3MgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgYW5kIGFkZHMgdGhlIDxjb2RlPnJlbDwvY29kZT4gYXR0cmlidXRlIHNvIHRoYXQgZmFuY3lib3gga25vd3MgdGhhdCBhbGwgb2YgdGhlc2UgaW1hZ2VzIHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyIGFzIG9uZSBhbGJ1bSBhbmQgYWxsb3cgY2xpY2tpbmcgYmV0d2VlbiB0aGUgaW1hZ2VzLiAgVGhlbiBjb21lcyB0aGUgcGFydCB3aGVyZSB3ZSBkZWZpbmUgb3VyIGltYWdlcy4KPHA+V2Ugc3VwcGx5IHRoZSBcJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBzbyB0aGF0IGl0IHdpbGwgZ2V0IHRoZSBuYW1lIG9mIGVhY2ggbWF0Y2hlZCBqcGVnIGFzIHRoZSBsb29wIGlzIGV4ZWN1dGVkLjwvcD4KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPgo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiIgYWx0PSJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMsIHNvcnJ5Ii8+CjxoMz5SZXNwb25zaXZlIEltYWdlczo8L2gzPgo8cD5DR1NtYXJ0SW1hZ2UgaXMgY2FwYWJsZSBvZiBhdXRvbWF0aWNhbGx5IHNjYWxpbmcgaW1hZ2VzIGRvd24gdG8gYSBzaXplIHRoYXQgaXMgc3VpdGFibGUgZm9yIG1vYmlsZSBkZXZpY2VzLiAgVGhpcyBib29zdHMgcGVyZm9ybWFuY2UgYnkgbWluaW1pemluZyB0aGUgaW1hZ2Ugc2l6ZSBmb3IgbW9iaWxlIGRldmljZXMsIGFuZCB0aGVyZWZvcmUgaW1wcm92ZXMgcGVyZm9ybWFuY2UgYW5kIHRoZSBnZW5lcmFsIHVzZXIgZXhwZXJpZW5hY2UuICBVbmxlc3MgZGlzYWJsZWQsIHRoZSBtb2R1bGUgd2lsbCBsb29rIGluIGl0cyBkYXRhYmFzZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1heGltdW0gcmVzb2x1dGlvbiBvZiB0aGUgcmVxdWVzdGluZyBkZXZpY2UuICBJZiB0aGF0IGluZm9ybWF0aW9uIGNhbm5vdCBiZSBmb3VuZCBhIHJlbW90ZSB3ZWIgc2VydmljZSB3aWxsIGJlIHF1ZXJpZWQgZm9yIHRoZSByZXNvbHV0aW9uIGluZm9ybWF0aW9uLiAgIElmIHN1aXRhYmxlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCB0aGVuIHRoZSBtYXhfd2lkdGggYW5kIG1heF9oZWlnaHQgcGFyYW1ldGVycyB3aWxsIGJlIGFkanVzdGVkIHRvIHJlc2NhbGUgdGhlIGltYWdlLjwvcD4KPGgzPk1heGltdW0gaW1hZ2Ugc2l6ZTwvaDM+CjxwPkluIGFkZGl0aW9uIHRvIGF1dG9tYXRpYyByZXNpemluZyBvZiB0aGUgaW1hZ2UgZm9yIHRoZSBkZXZpY2UsIHRoZSBtYXhfd2lkdGggYW5kL29yIG1heF9oZWlnaHQgcGFyYW1ldGVycyBjYW4gYmUgc3BlY2lmaWVkIHRvIGluZGljYXRlIGFuIGFic29sdXRlIG1heGltdW0gc2l6ZSBmb3IgdGhlIG91dHB1dCBpbWFnZS48L3A+CjxoMz5TdHlsZXNoZWV0czo8L2gzPgo8cD5UaGlzIG1vZHVsZSBhbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cywgaWYgdXNpbmcgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4gIEJlY2F1c2UgdGhlIHNtYXJ0eSBzeW50YXggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGluc2lkZSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgeW91IHV0aWxpemUgdGhlIG1vZHVsZSB1c2luZyB0aGUgW1sgYW5kIF1dIGRlbGltaXRlcnMuICBpLmU6IDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPmRpdi5oZWFkZXIgeyBiYWNrZ3JvdW5kOiB1cmwoW1tDR1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL3BpY3R1cmUuanBnJyBub3RhZz0xXV0pOyB9PC9jb2RlPjwvcD4KPHA+QmVjYXVzZSBzdHlsZXNoZWV0cyBhcmUgZ2VuZXJhdGVkIG9uIG1vZGlmaWNhdGlvbiBhbmQgc3RvcmVkIGluIHRoZSBmaWxlc3lzdGVtIHRoZXJlIGlzIG5vIHdheSB0byBkZXRlcm1pbmUgZHVyaW5nIHRoZSByZXF1ZXN0IHdoaWNoIGJyb3dzZXIgaXMgcmVxdWVzdGluZyB0aGUgc3R5bGVzaGVldCwgdGhlcmVmb3JlIGVtYmVkZGluZyB3aWxsIGJlIGRvbmUgc3RyaWN0bHkgYmFzZWQgdXBvbiB0aGUgcHJlc2Vuc2Ugb2YgdGhlIG5vZW1iZWQgcGFyYW1ldGVyLiAgSWYgeW91IGhhdmUgY2hvc2VuIHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHlvdXIgc3R5bGVzaGVldHMsIFlvdSBtYXkgbmVlZCB0byBhZGQgYWRkaXRpb25hbCBzdHlsZXNoZWV0IHN1cHBvcnQgZm9yIHRoZSBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcy4gIGkuZTogIElFNi48L3A+CjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4KPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9jb252ZXJ0fXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4KPHA+VGhpcyB3aWxsIGFsbG93IHlvdXIgdXNlcnMgdG8gaW5jbHVkZSBpbWFnZXMgaW50byBwYWdlcyB1c2luZyB0aGUgbm9ybWFsIHd5c2l3eWcgdG9vbHMsIGFuZCB0byBoYXZlIHRoZW0gYXV0b21hdGljYWxseSBwcm9jZXNzZWQgYW5kIGVtYmVkZGVkIGludG8gdGhlIHBhZ2UgdXNpbmcgdGhlIG1hZ2ljIG9mIHtDR1NtYXJ0SW1hZ2V9LiBpLmU6IFNlZSB0aGUgZm9sbG93aW5nIGNvZGU6PC9wPgo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+CjxwPlRoZSBhYm92ZSBjb2RlIHdpbGwgY2FwdHVyZSBhbGwgaW1hZ2UgdGFncywgYW5kIGNvbnZlcnQgdGhlbSB0byBncmF5c2NhbGUgYW5kIHRoZW4gYXBwbHkgdGhlIHdhdGVybWFyayAoYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSkuICBBbGwgb2YgdGhlIHBhcmV0ZXJzIGF2YWlsYWJsZSB0byB0aGUgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+CjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAzZW07Ij48c3Ryb25nIHN0eWxlPSJjb2xvcjogcmVkOyI+Tm90ZTo8L3N0cm9uZz4KPHA+VGhpcyB0YWcgcGFyc2VzIHRoZSBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCB0YWdzIHRvIGZpbmQgdGhlIDxpbWc+IHRhZ3MuICBJdCB0aGVuIHdpbGwgb3V0cHV0IHN5bnRhY3RpY2FsbHkgdmFsaWQgSFRNTCBmb3IgdGhlIHN1YnNldCBvZiBjb2RlIGl0IHdhcyBwcm92aWRlZC4gIFRoZXJlZm9yZSBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgc25pcHBldCBvZiBIVE1MIHBhc3NlZCB0byB0aGlzIHRhZyBiZSBpbnRhY3QgYW5kIGFzIGNsb3NlIHRvIHZhbGlkIGFzIHBvc3NpYmxlLiAgPHN0cm9uZz5Vc2Ugd2l0aCBjYXV0aW9uLjwvc3Ryb25nPgo8L2Rpdj4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkncwptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPGgzPlJlcXVpcmVtZW50czwvaDM+CjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7Y2dzaV9jb252ZXJ0fSBwbHVnaW4gbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiB0aGUgc2ltcGxleG1sIGFuZCBYTUxEb20gY2xhc3NlcyBidWlsdCBpbiB0byBwaHAuICBUaGVyZSBtYXkgYmUgb3RoZXIgYWRkaXRpb25hbCByZXF1aXJlbWVudHMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBlcnJvcnMgeW91IHNob3VsZCBlbnN1cmUgdGhhdCBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCwgYW5kIHRoYXQgeW91IGhhdmUgYW5hbHl6ZWQgeW91ciBlcnJvciBsb2dzLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KRU9YOwoKIyBJCiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdBbGlhZXMgY2FuIGJlIHVzZWQgdmlhIHRoZSBhbGlhczEgdGhyb3VnaCBhbGlhczUgb3B0aW9ucyBvbiB0aGUgQ0dTbWFydEltYWdlIHRhZyB0byBjb21iaW5lIG51bWVyb3VzIGZyZXF1ZW50bHkgdXNlZCBvcHRpb25zJzsKJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3BlY2lmeSB0aGUgZGVmYXVsdCBsb2NhdGlvbiBmcm9tIHdoaWNoIHRvICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7IHRoaXMgd2lsbCBlZmZlY3QgYWxsIGNyb3AgdG8gZml0IG9wZXJhdGlvbnMgdW5sZXNzIHRoZSBsb2NhdGlvbiBwYXJhbWV0ZXIgb24gdGhlIGZpbHRlcl9jcm9wdG9maXQgYXR0cmlidXRlIG92ZXJyaWRlcyBpdC4gIERlZmF1bHQgbG9jYXRpb24gaXMgJnF1b3Q7Y2VudGVyJnF1b3Q7JzsKJGxhbmdbJ2luZm9fcmVzcG9uc2l2ZSddID0gJ0lmIGVuYWJsZWQsIENHU21hcnRJbWFnZSB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBtYXhpbXVtIHJlc29sdXRpb24gb2YgdGhlIHJlcXVlc3RpbmcgZGV2aWNlIGFuZCBhdXRvbWF0aWNhbGx5IHJlc2NhbGUgdGhlIGltYWdlIHNvIHRoYXQgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBjYW4gdGhlIG91dHB1dCBpbWFnZSBiZSB0b28gbGFyZ2UgZm9yIHRoZSBkaXNwbGF5LiAgVGhpcyBhc3Npc3RzIGluIHBlcmZvcm1hbmNlIHdoZW4gZGV2ZWxvcGluZyBtb2JpbGUgd2Vic2l0ZXMuJzsKJGxhbmdbJ2luZm9fcmVzcG9uc2l2ZV9icmVha3BvaW50cyddID0gJzxzdHJvbmc+RXhwZXJpbWVudGFsOjwvc3Ryb25nPiBJZiBzcGVjaWZpZWQsIGFuZCBhIG1vYmlsZSBkZXZpY2UgaXMgZGV0ZWN0ZWQgdGhlIGJyZWFrcG9pbnRzIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1heGltdW0gbGFyZ2VzdCBlZGdlIGZvciB0aGUgcmVzdWx0aW5nIGltYWdlLiAgU3BlY2lmeSBhIGxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIGluY3JlYXNpbmcgaW50ZWdlcnMgPGVtPihpLmU6IDIwMCw0MDAsNjAwLDgwMCk8L2VtPi4gVGhlIGRldmljZSBjYXBhYmlsdGllcyB3aWxsIGJlIHVzZWQgdG8gZmluZCB0aGUgY2xvc2VzdCBtYXRjaGluZyBicmVha3BvaW50IHZhbHVlLiAgVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBzbyB0aGF0IGl0cyBsYXJnZXN0IGVkZ2UgaXMgYXQgdGhhdCB2YWx1ZSB3aXRob3V0IHVwc2NhbGluZy4gIEFzcGVjdCByYXRpbyB3aWxsIGJlIG1haW50YWluZWQuJzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0RvZXMgdGhlIFVSTCBhYm92ZSBhY291bnQgZm9yIHRoZSBjYWNoZSBkaXJlY3RvcnkgKF9DR1NtYXJ0SW1hZ2UpJzsKJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdJbWFnZSBVcmwgUHJlZml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnU3BlY2lmeSB0aGUgbWF4aW11bSBhZ2Ugb2YgYSBmaWxlIChpbiBkYXlzKSBiZWZvcmUgaXQgd2lsbCBiZSByZW1vdmVkIGFuZCBmb3JjZWQgdG8gcmVnZW5lcmF0ZS4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNoYW5nZWQgc29tZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHdoZW4gZ2VuZXJhdGluZyBpbWFnZXMsIG9yIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkaXNrIHNwYWNlIHVzZWQuICBFbnRlcmluZyAwIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgZmlsZSBkZWxldGlvbic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdUaGlzIHNlbGVjdGlvbiBkZXRlcm1pbmVzIGhvdyB0aGUge3NtYXJ0aW1nfSB0YWcgd2lsbCBnZW5lcmF0ZSBvdXRwdXQuICBJZiAmcXVvdDtub25lJnF1b3Q7IGlzIHNlbGVjdGVkIG5vIGltYWdlIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZC4gIElmICZxdW90O3NtYXJ0JnF1b3Q7IGlzIHNlbGVjdGVkIHRoZW4gdGhlIHN5c3RlbSB3aWxsIGRlY2lkZSBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgdHlwZSwgYW5kIHRoZSBicm93c2VyIHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgaW1hZ2UuICBPdGhlciBvcHRpb25zIGluY2x1ZGUgYWx3YXlzIGVtYmVkZGluZyBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgb3IgdGhlIGltYWdlIHR5cGUuJzsKJGxhbmdbJ2luZm9fZW1iZWRfc2l6ZWxpbWl0J10gPSAnSWYgdGhlIGVtYmVkZGluZyBvcHRpb24gaXMgZGV0ZXJtaWVkIGJ5IHRoZSBpbWFnZSBzaXplLCBzcGVjaWZ5IHRoZSBtYXhpbXVtIHNpemUgKGluIGtpbG9ieXRlcykgZm9yIGltYWdlcyB0byBiZSBlbWJlZGRlZCAoMzIgaXMgcmVjb21tZW5kZWQpLic7CiRsYW5nWydpbmZvX2VtYmVkX3R5cGVzJ10gPSAnSWYgdGhlIGVtYmVkZGluZyBvcHRpb24gaXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1hZ2UgdHlwZSwgc3BlY2lmeSB0aGUgZXh0ZW5zaW9ucyBvZiB0aGUgZmlsZXMgdGhhdCBzaG91bGQgYmUgZW1iZWRkZWQgaGVyZSBzZXBhcmF0ZWQgYnkgY29tbWFzLiAgVGhpcyBvcHRpb24gaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnSWYgeW91ciBDRE4gaXMgcG9pbnRpbmcgZGlyZWN0bHkgYXQgdGhlIGltYWdlIGNhY2hlIGRpcmVjdG9yeSB0aGVuIHlvdSBtYXkgd2FudCB0byB0dXJuIHRoaXMgb3B0aW9uIG9uLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9wcmVmaXgnXSA9ICdTcGVjaWZ5IHRoZSBVUkwgdG8gcHJlZml4IHRvIGFsbCBnZW5lcmF0ZWQgaW1hZ2VzLiAgQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSB1cGxvYWRzIFVSTCwgaG93ZXZlciBpZiB5b3UgaGF2ZSB5b3VyIG93biBDRE4gKG9yIG11bHRpcGxlIGRvbWFpbnMgcG9pbnRpbmcgYXQgdGhlIHNhbWUgZGlyZWN0b3J5KSBZb3UgbWF5IHdhbnQgdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBuYW1lIGhlcmUnOwoKIyBNCiRsYW5nWydtYXhfY2FjaGVfYWdlJ10gPSAnTWF4aW11bSBDYWNoZSBGaWxlIEFnZSAoZGF5cyknOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIHNtYXJ0IGltYWdlIHRhZyBnZW5lcmF0aW9uIG1vZHVsZSBmb3IgQ01TTVMnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzZXMgVXBkYXRlZCc7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgZGlyZWN0b3J5IGNsZWFuZWQuICVkIGZpbGVzIHJlbW92ZWQnOwokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ0NhY2hlIFJlbW92ZWQnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIFVwZGF0ZWQnOwoKIyBOCiRsYW5nWydub25lJ10gPSAnTm9uZSc7CgojIE8KJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsKCiMgUAokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdUaGUgQ0dTbWFydEltYWdlIGFkbWluIHBhbmVsIGFsbG93cyBjcmVhdGluZyBudW1lcm91cyBjb21tYW5kIGFsaWFzIHRvIGNvbWJpbmUgYSBmcmVxdWVudGx5IHVzZWQgcGF0dGVybiBvZiBhcmd1bWVudHMgaW50byBvbmUgbmFtZS4gIFRvIHVzZSB0aGVzZSBhbGlhc2VzIHVzZSBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBhbGlhcyMjPWFsaWFzX25hbWUgaS5lOiAgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLic7CiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSJmYW5jeWJveCx0aHVtYm5haWwiJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ibHVyJ10gPSAnKGFueXRoaW5nKSBTcGVjaWZ5IGFueSB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIgdG8gYWRkIGEgYmx1ciBmaWx0ZXIgdG8gdGhlIGltYWdlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGludGVnZXIpIEluY3Jhc2UgdGhlIGJyaWdodG5lc3Mgb2YgdGhlIHByb2Nlc3NlZCBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbG9yaXplJ10gPSAnKHIsZyxiWyxhbHBoYV0pIC0gTGlrZSBmaWx0ZXJfZ3JheXNjYWxlIGhvd2V2ZXIgeW91IGNhbiBzcGVjaWZ5IHRoZSBjb2xvciBhbmQgYWxwaGEgdmFsdWUnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKGludGVnZXIpIENoYW5nZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwZXJjZW50WyxoX2FsaWduLHZfYWxpZ25dKSAtIFBlcmZvcm0gY3JvcHBpbmcgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gQ3JvcCBwYXJhbWVldGVycyBhcmUgc3BlY2lmaWVkIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcGFyYW1ldGVycy4gIFRoZSBmaXJzdCAocmVxdWlyZWQpIHZhbHVlIGlzIGFuIGludGVnZXIgcGVyY2VudGFnZSBvZiB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gIFRoZSBvcHRpb25hbCBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlcnMgYXJlIG9uZSBvZiBsLGMsciAobGVmdCxjZW50ZXIscmlnaHQpIGFuZCB0LGMsYiAodG9wLGNlbnRlcixib3R0b20pIHNwZWNpZnlpbmcgd2hlcmUgdGhlIGxvY2F0aW9uIHdpdGhpbiB0aGUgc291cmNlIGltYWdlIHRvIGNyb3AgZnJvbS4gIGkuZTogY3JvcD0zMyxiLHIgdG8gZ3JhYiBhIGNyb3Agb2YgMzMlIGZyb20gdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgc291cmNlIGltYWdlLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcHRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssbG9jYXRpb25bLHVwc2NhbGVdXSkgLSBQZXJmb3JtIGEgY3JvcHRvZml0IG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlbiBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgYXJlYSBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpIGxvY2F0aW9uIGNvZGUsIGFuZCB1cHNjYWxlIGZsYWcuICB2YWxpZCBsb2NhdGlvbiBjb2RlcyBhcmUgdGwsdGMsdHIsY2wsYyxjcixibCxiLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS4gIElmIGEgbG9jYXRpb24gaXMgbm90IHNwZWNpZmllZCBhIHByZWZlcmVuY2Ugd2lsbCBiZSB1c2VkLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgJnF1b3Q7YyZxdW90OyB0byBjcm9wLXRvLWZpdCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQgdXBzY2FsaW5nIGlzIGRpc2FibGVkIG9uIHRoaXMgZmlsdGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyhhbnl0aGluZykgSGlsaWdodCB0aGUgZWRnZXMgaW4gdGhlIGltYWdlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lbWJvc3MnXSA9ICcoYW55dGhpbmcpIEVtYm9zcyB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBQZXJmb3JtIGEgZmxpcCBvbiB0aGUgc3BlY2lmaWVkIGltYWdlLiAgU3BlY2lmeSAwIGZvciBob3Jpem9udGFsLCAxIGZvciB2ZXJ0aWNhbCwgYW5kIDIgZm9yIGZsaXAgaW4gYm90aCBkaXJlY3Rpb25zLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKGFueXRoaW5nKSBDb252ZXJ0IHRoZSBpbWFnZSB0byBncmF5c2NhbGUnOwokbGFuZ1sncGFyYW1fZmlsdGVyX21lYW5yZW1vdmFsJ10gPSAnKGFueXRoaW5nKSBBdHRlbXB0IHRvIGFjaGlldmUgYSAmcXVvdDtza2V0Y2h5JnF1b3Q7IGVmZmVjdCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbmVnYXRlJ10gPSAnKGFueXRoaW5nKSBOZWdhdGUgdGhlIGltYWdlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9waXhlbGF0ZSddID0gJyhzaXplWyxhZHZhbmNlZF0pIFBpeGVsYXRlIHRoZSBpbWFnZSwgc3BlY2lmeSBhbiBpbnRlZ2VyIHNpemUgYW5kIGFuIG9wdGlvbmFsIGJvb2xlYW4gKGRlZmF1bHQgaXMgZmFsc2UpIHRvIGVuYWJsZSBhZHZhbmNlZCBwaXhlbGF0aW9uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemUnXSA9ICd0eXBlLG51bWJlclssbnVtYmVyWyx1cHNjYWxlXV0gLSBQZXJmb3JtIGEgcmVzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBCeSBkZWZhdWx0LCB0aGUgcmVzaXplIGZpbHRlciBhbGxvd3MgdXBzY2FsaW5nLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4KICA8bGk+cCxudW1iZXIsMCAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT53LG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgd2lkdGggKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT13LDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSB3aWR0aCBvZiA4MCBwaXhlbHMuPC9saT4KICA8bGk+dyxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgd2lkdGggKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT13LDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSB3aWR0aCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT5oLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgaGVpZ2h0ICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9aCw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gaGVpZ2h0IG9mIDgwIHBpeGVscy48L2xpPgogIDxsaT5oLG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nPC9saT4KICA8bGk+ZSxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHJlc2l6aW5nIHRoZSBsYXJnZXN0IGVkZ2UgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZSAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWUsMTAwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aG9zIGxhcmdlc3QgZWRnZSBpcyAxMDAgcGl4ZWxzLjwvbGk+CiAgPGxpPmUsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHJlc2l6aW5nIHRoZSBsYXJnZXN0IGVkZ2UgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZSAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWUsMTAwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aG9zIGxhcmdlc3QgZWRnZSBpcyAxMDAgcGl4ZWxzLiAgRG8gbm90IGFsbG93IHVwc2NhbGluZy48L2xpPgogIDxsaT5jLHgseSAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBjdXN0b20gc2l6ZSAod2l0aG91dCByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIGkuZTogZmlsdGVyX3Jlc2l6ZT1jLDUwLDc1IHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB0aGF0IGlzIDUweDc1IHBpeGVscy48L2xpPi4KICA8bGk+Yyx4LHksMCAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBjdXN0b20gc2l6ZSAod2l0aG91dCByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIGkuZTogZmlsdGVyX3Jlc2l6ZT1jLDUwLDc1IHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB0aGF0IGlzIDUweDc1IHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZy48L2xpPi4KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBTcGVjaWZ5IGFuIGludGVnZXIgcmFkaXVzIChpbiBwaXhlbHMpIGZvciByb3VuZGluZyB0aGUgY29ybmVycy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3dhdGVybWFyayddID0gJyhhbnl0aGluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBwYW5lbCkgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlJzsKJGxhbmdbJ3BhcmFtX2hlaWdodCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O3dpZHRoJnF1b3Q7IHBhcmFtZXRlciB0byBwZXJmb3JtIGEgZmluYWwgcmVzaXppbmcgb3IgY3JvcHRvZml0IGZpbHRlciAodW5sZXNzIHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9InNvbWV0YWciJzsKJGxhbmdbJ3BhcmFtX21heF9oZWlnaHQnXSA9ICdUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcy4nOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgY29udmVydGVkIGltYWdlcy4nOwokbGFuZ1sncGFyYW1fbmFtZSddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWUgYXR0cmlidXRlLic7CiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdEbyBub3QgYXV0b21hdGljYWxseSBjYWxjdWFsdGUgcGFyYW1ldGVycyBmb3IgdGhlIGltZyB0YWcuICBUaGlzIG1heSBjYXVzZSB5b3VyIHNpdGUgdG8gZmFpbCB2YWxpZGF0aW9uIGlmIHNvbWUgcmVxdWlyZWQgcGFyYW1ldGVycyAod2lkdGgsaGVpZ2h0LGFsdCkgYXJlIG5vdCBzcGVjaWZpZWQnOwokbGFuZ1sncGFyYW1fbm9hdXRvc2NhbGUnXSA9ICdJZiB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBkaXNhYmxlIGF1dG9tYXRpYyBzY2FsaW5nIG9mIHRoZSBpbWFnZS4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgZGlzYWJsZWQgZm9yIG1vYmlsZSBicm93c2Vycyc7CiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ0RvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2JyZWFrcG9pbnRzJ10gPSAnPHN0cm9uZz5FeHBlcmltZW50YWw6PC9zdHJvbmc+IEZvciByZXNwb25zaXZlIGltYWdlIGhhbmRsaW5nLCBkaXNhYmxlIGJyZWFrcG9pbnRzIGFuZCBmb3JjZSByZWd1bGFyIHJlc2l6ZSBoYW5kbGluZyBmb3IgaW1hZ2VzIG9uIG1vYmlsZSBicm93c2Vycy4nOwokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0ZvcmNlIHRoZSBpbWFnZSB0byBub3QgZW1iZWQuICBSZWdhcmRsZXNzIG9mIHNldHRpbmdzIGluIHRoZSBhZG1pbiBwYW5lbCwgdGhlIFVSTCBhbmQgdGFnIGdlbmVyYXRlZCB3aWxsIGJlIHRvIGEgZmlsZSBvbiB0aGUgc2VydmVyLiAgTm8gZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkJzsKJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnRGlzYWJsZSB0aW1lIGNoZWNraW5nIG9mIGNhY2hlZCBmaWxlcy4nOwokbGFuZ1sncGFyYW1fbm9yZW1vdGUnXSA9ICdEbyBub3QgYWxsb3cgcmV0cmlldmluZyBzb3VyY2VzIGZyb20gcmVtb3RlIFVSTFMnOwokbGFuZ1sncGFyYW1fbm9yZXNwb25zaXZlJ10gPSAnRG8gbm90IHBlcmZvcm0gcmVzcG9uc2l2ZSBpbWFnZSByZXNpemluZyc7CiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0RvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnRG8gbm90IG91dHB1dCBhbiBpbWcgdGFnLCBvbmx5IHRoZSB1cmwgdG8gdGhlIGNhY2hlZCBpbWFnZS4gIFRoaXMgaGFzIG5vIGVmZmVjdCB3aGVuIENHU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnMnOwokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1NwZWNpZnkgdGhlIHF1YWxpdHkgb2YgdGhlIG91dHB1dCBpbWFnZS4gIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxMDAuICBUaGUgZGVmYXVsdCB2YWx1ZSBpZiBub3Qgc3BlY2lmaWVkIGlzIDc1Lic7CiRsYW5nWydwYXJhbV9yZWwnXSA9ICdVc2VkIHdoZW4gYnVpbGRpbmcgYW4gaW1hZ2UgdGFnIGFsbG93cyBzcGVjaWZ5aW5nIGFuIG9wdGlvbmFsIHJlbCBhdHRyaWJ1dGUgKHR5cGljYWxseSB1c2VkIHdpdGggamF2YXNjcmlwdCB0eXBlIGFsYnVtcykuIGkuZTogcmVsPSJhbGJ1bSInOwokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnU2lsZW50bHkgaWdub3JlIGVycm9ycyc7CiRsYW5nWydwYXJhbV9zcmMnXSA9ICdTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6Cjx1bD4KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbS48L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CjwvdWw+Ckl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fc3R5bGUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYWx0ZXJuYXRlIHN0eWxlcyBmb3IgdGhlIHRhZy4gIGkuZTogc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyInOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSJUaGlzIGlzIHRoZSB0b29sdGlwIic7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2hlaWdodCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBpbnN0YWxsZWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdEZWZhdWx0IGxvY2F0aW9uIGZyb20gd2hpY2ggdG8gJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0Jhc2VkIG9uIGltYWdlIHNpemUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NtYXJ0IG1vZGUgYnV0IGxpbWl0IGltYWdlIHNpemUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdCYXNlZCBvbiBpbWFnZSB0eXBlJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tbGVmdCddID0gJ0JvdHRvbSBMZWZ0IChibCknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICdCb3R0b20gQ2VudGVyIChiYyknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21yaWdodCddID0gJ0JvdHRvbSBSaWdodCAoYnIpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ0NlbnRlciBMZWZ0IChjbCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdDZW50ZXIgKGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdDZW50ZXIgUmlnaHQgKGNsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGxlZnQnXSA9ICdUb3AgTGVmdCAodGwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnVG9wIENlbnRlciAodGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wcmlnaHQnXSA9ICdUb3AgUmlnaHQgKHRyKSc7CgojIFIKJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnUmVzaXppbmcnOwokbGFuZ1sncmVzcG9uc2l2ZSddID0gJ1Jlc3BvbnNpdmVuZXNzJzsKJGxhbmdbJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnXSA9ICdTcGVjaWZ5IHJlc3BvbnNpdmUgaW1hZ2UgbWF4aW11bSBlZGdlIGJyZWFrcG9pbnRzJzsKCiMgUwokbGFuZ1snc21hcnQnXSA9ICdTbWFydCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdad2lzY2hlbnNwZWljaGVyIGdlbGVlcnQnOwokbGFuZ1snYWRkX3JvdyddID0gJ1plaWxlIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzICc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXNlJzsKJGxhbmdbJ2Fza19jbGVhcl9pbWFnZV9jYWNoZSddID0gJ1dvbGxlbiBTaWUgd2lya2xpY2ggQUxMRSBEYXRlaWVuIGF1cyBkZW0gWndpc2NoZW5zcGVpY2hlciBlbnRmZXJuZW4/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0FsbGUgRGF0ZWllbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snY2xlYXJfbm93J10gPSAnSmV0enQgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbic7CiRsYW5nWydlbWJlZGRpbmcnXSA9ICdFaW5nZWJldHRldGUgQmlsZGVyJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnQmlsZGVpbmJldHR1bmdzbW9kdXMnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnQmlsZGVyIGVpbmJldHRlbiBiaXMgbWF4aW1hbCAoa2IpJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnQmlsZGVyIGRlcyBUeXBzIGVpbmJldHRlbic7CiRsYW5nWydlcnJvcl9hbGlhc19kdXBsaWNhdGVuYW1lX2F0cm93J10gPSAnRGVuIEFsaWFzLU5hbWVuLCBkZXIgZiZ1dW1sO3IgQWxpYXMgaW4gWmVpbGUgJWQgYW5nZWdlYmVuIHd1cmRlLCBkdXBsaXppZXJlbi4nOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9uYW1lX2F0cm93J10gPSAnS2VpbiBOYW1lIGYmdXVtbDtyIGRlbiBBbGlhcyBpbiBaZWlsZSAlZCBhbmdlZ2ViZW4uJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vb3B0aW9uc19hdHJvdyddID0gJ0tlaW5lIE9wdGlvbmVuIGYmdXVtbDtyIGRlbiBBbGlhcyBpbiBaZWlsZSAlZCBhbmdlZ2ViZW4uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnQWx0ZXJzZWluc3RlbGx1bmcgdW5nJnV1bWw7bHRpZyAuLi4ga2VpbmUgQWt0aW9uIGF1c2dlZiZ1dW1sO2hydCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdVbmcmdXVtbDtsdGlnZXIgUGFyYW1ldGVyIGluICVzJzsKJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnS29ubnRlIERhdGVpIGluICVzIG5pY2h0IGZpbmRlbic7CiRsYW5nWydlcnJvcl9yZW1vdGVmaWxlJ10gPSAnRXMgZ2FiIGVpbiBQcm9ibGVtLCBkaWUgZW50ZmVybnRlIERhdGVpIGluICVzIHp1IGZpbmRlbi4nOwokbGFuZ1snZXJyb3JfdW5rbm93bmZpbHRlciddID0gJ0NHU21hcnRJbWFnZSAmbmRhc2g7IFVuYmVrYW5udGVyIEZpbHRlcjogJXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBTbWFydC1JbWFnZS1XZXJremV1Z2UnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0FsbGdlbWVpbic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPk1vZHVsYmVzY2hyZWlidW5nPC9oMz4NCjxwPkRpZXNlcyBNb2R1bCBzdGVsbHQgZWluZSBlaW5mYWNoZSBNJm91bWw7Z2xpY2hrZWl0LCBCaWxkZXIgYXVmIGlocmVyIFdlYnNlaXRlIHp1IHZlcmFyYmVpdGVuIHVuZCBhbnp1emVpZ2VuLiBFcyBlcm0mb3VtbDtnbGljaHQgZWluZmFjaGUgQmlsZHZlcmFyYmVpdHVuZyB1bmQgRXJzdGVsbHVuZyB2b24gV2Fzc2VyemVpY2hlbiB1bmQgc3RlbGx0IE1ldGhvZGVuIGJlcmVpdCwgdW0gZGllIExlaXN0dW5nc2YmYXVtbDtoaWdrZWl0IGlocmVyIFdlYnNlaXRlIHp1IHZlcmJlc3Nlcm4uPC9wPg0KPGgzPk1lcmttYWxlPC9oMz4NCjx1bD4NCjxsaT5NJmF1bWw7Y2h0aWdlLCBhYmVyIGVpbmZhY2ggenUgdmVyd2VuZGVuZGUgQmlsZHZlcmFyYmVpdHVuZywgdS4gYS4NCiAgPHVsPg0KICAgIDxsaT5VbnNjaCZhdW1sO3JmZTwvbGk+DQogICAgPGxpPkhlbGxpZ2tlaXQ8L2xpPg0KICAgIDxsaT5Lb2xvcmllcmVuPC9saT4NCiAgICA8bGk+S29udHJhc3Q8L2xpPg0KICAgIDxsaT5CZXNjaG5laWRlbjwvbGk+DQogICAgPGxpPkJlc2NobmVpZGVuIHVuZCBhbnBhc3NlbjwvbGk+DQogICAgPGxpPlImYXVtbDtuZGVyZXJtaXR0bHVuZzwvbGk+DQogICAgPGxpPkhlcmF1c2hlYmVuPC9saT4gDQogICAgPGxpPkdyYXVzdHVmZW48L2xpPg0KICAgIDxsaT5NZWFuIFJlbW92YWw8L2xpPg0KICAgIDxsaT5OZWdhdGlvbjwvbGk+DQogICAgPGxpPlBpeGVsYXRlPC9saT4NCiAgICA8bGk+R3Imb3VtbDsmc3psaWc7ZW4mYXVtbDtuZGVydW5nPC9saT4NCiAgICA8bGk+Um90YXRpb248L2xpPg0KICAgIDxsaT5TZWxpY3RpdmUgQmx1cjwvbGk+DQogICAgPGxpPldlaWNoemVpY2huZXI8L2xpPg0KICAgIDxsaT5XYXNzZXJ6ZWljaGVuPC9saT4NCiAgPC91bD4NCjwvbGk+PGJyLz4NCjxsaT5TY2hsYXVlcyBFcmtlbm5lbiB2b24gQmlsZGVybiAoZXJrZW5udCBhYnNvbHV0ZSBVUkxzIHVuZCBQZmFkZSBvZGVyIERhdGVpZW4gcmVsYXRpdiB6dXIgSGF1cHRpbnN0YWxsYXRpb24gZGVzIFN5c3RlbXMpPC9saT4NCjxsaT5TY2hsYXVlcyBFcnN0ZWxsZW4gdm9uIEF0dHJpYnV0ZW4gZiZ1dW1sO3IgZGllIEJpbGRlcjwvbGk+DQo8bGk+UHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nLjwvbEk+DQo8bGk+VGhlIGFiaWxpdHkgdG8gdXNlIGEgc2VwYXJhdGUgVVJMIChDRE4pIGZvciBzZXJ2aW5nIGltYWdlczwvbGk+DQo8bGk+SW1hZ2UgcHJvY2Vzc2VzIGNhbiBiZSBjb21iaW5lZCwgYW5kIGFyZSBleGVjdXRlZCBpbiBvcmRlci48L2xpPg0KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHRoZSBjb250ZW50IG9mIHRoZSB3ZWIgcGFnZSB0byBtaW5pbWl6ZSBzcGFjZS48L2xpPg0KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSwgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbS48L2xpPg0KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4NCjxsaT51bmQgbWVocjwvbGk+DQo8L3VsPg0KPGgzPlZlcndlbmR1bmc8L2gzPg0KPHA+VGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgdG8gdXNlIGl0IGluIHRoZSBzYW1lIHBsYWNlIHlvdSB3b3VsZCB0aGUge2ltYWdlfSB0YWcuICBJLmU6IFNvbWV0aGluZyBsaWtlIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5O308L2NvZGU+LiBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+DQo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgYW5kIHRoZW4gY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbCBpa2U6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTt3LDM1MCYjMDM5O308L2NvZGU+LiAgQXMgeW91IG1heSB0aGluaywgdGhlIHdhdGVybWFyayB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlIGJlZm9yZSBpdCBpcyByZXNpemVkIHRvIGEgbWF4aW11bSB3aWR0aCBvZiAzMDAgcGl4ZWxzIChyZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIFRoZW4gdGhlIGFkanVzdGVkIGltYWdlIHdpbGwgYmUgY2FjaGVkLCBhbmQgaWYgdGhlIGJyb3dzZXIgYWxsb3dlcyB0aGUgaW1hZ2Ugd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZSBIVE1MIG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUgYW4gPGltZz4gdGFnIHdpbGwgYmUgZ2VuZXJhdGVkLjwvcD4NCjxwPkZyb20gaGVyZSB5b3UgY2FuIGNvbWJpbmUgdGhlIG9wdGlvbnMgYmVsb3cgdG8gcGVyZm9ybSBhbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS4gIEVuam95ITwvcD4NCiA8aDM+QSBTaW1wbGUgR2FsbGVyeTwvaDM+DQo8cD5UaGUgY29kZSBiZWxvdyB1c2VzIHRoZSB7Q0dTbWFydEltYWdlfSBtb2R1bGUsIGZhbmN5Ym94LCBhbmQgYSBiaXQgb2Ygc21hcnR5IG1hZ2ljIHRvIGdlbmVyYXRlIGEgc2ltcGxlIGxpZ2h0Ym94IHN0eWxlIGFsYm9tIGZyb20gYSBzdWJkaXJlY3Rvcnkgb24geW91ciB3ZWJzaXRlLCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBpbWFnZXMgZm9yIHdlYiBzdGFuZGFyZHMsIGFuZCBjcmVhdGluZyB0aHVtYm5haWxzLjwvcD4NCjxwcmUgc3R5bGU9JnF1b3Q7YmFja2dyb3VuZC1jb2xvcjogI2RkZDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiA8Y29kZT4mYW1wOyM2MDtzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDsmYW1wOyM2Mjt7bGl0ZXJhbH08L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IDxjb2RlPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMzo8L3NwYW4+ICA8Y29kZT5qUXVlcnkoJiMwMzk7YS5mYW5jeWJveCYjMDM5OykuZmFuY3lib3goKTs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNDo8L3NwYW4+IDxjb2RlPn0pOzwvY29kZT4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gPGNvZGU+ey9saXRlcmFsfSZhbXA7IzYwOy9zY3JpcHQmYW1wOyM2Mjs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNjo8L3NwYW4+IDxjb2RlPnthc3NpZ24gdmFyPSYjMDM5O2ZpbGVzJiMwMzk7IHZhbHVlPSYjMDM5O3VwbG9hZHMvYWxidW0vKi5qcGcmIzAzOTt8Z2xvYn08L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNzo8L3NwYW4+IDxjb2RlPntpZiBjb3VudCgkZmlsZXMpfTwvY29kZT4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA4Ojwvc3Bhbj4gPGNvZGU+JmFtcDsjNjA7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDsmYW1wOyM2Mjs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gOTo8L3NwYW4+IDxjb2RlPntmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09JiMwMzk7ZmlsZSYjMDM5O308L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICA8Y29kZT4mYW1wOyM2MDthIHJlbD0mIzAzOTtzaW1wbGVfYWxidW0mIzAzOTsgY2xhc3M9JnF1b3Q7ZmFuY3lib3gmcXVvdDsgaHJlZj0mcXVvdDs8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCwwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O2gsNTAwJiMwMzk7IG5vdGFnPTEgbm9lbWJlZD0xfTwvc3Bhbj4mcXVvdDsmYW1wOyM2Mjs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMTo8L3NwYW4+ICA8Y29kZT48c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCwwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDE1MCYjMDM5O308L3NwYW4+PC9jb2RlPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTI6PC9zcGFuPiAgPGNvZGU+JmFtcDsjNjA7L2EmYW1wOyM2Mjs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMzo8L3NwYW4+IDxjb2RlPnsvZm9yZWFjaH08L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNDo8L3NwYW4+IDxjb2RlPiZhbXA7IzYwOy9kaXYmYW1wOyM2Mjs8L2NvZGU+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNTo8L3NwYW4+IDxjb2RlPnsvaWZ9PC9jb2RlPg0KPC9wcmU+PGJyLz4NCjxoND5FcmwmYXVtbDt1dGVydW5nIGRlcyBDb2RlczwvaDQ+DQo8cD5MaW5lcyAxIHRocm91Z2ggNSB1dGlsaXplIGpRdWVyeSB0byBjYWxsIGZhbmN5Ym94IG9uIGFueSBsaW5rcyB0aGF0IGhhdmUgdGhlICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGNsYXNzLiAgVGhlIGZhbmN5Ym94IGpRdWVyeSBwbHVnaW4gaXMgaW5jbHVkZWQgd2l0aCB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlLjwvcD4NCjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4NCjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+DQo8cD5MaW5lIDggb3BlbnMgdXAgYSBkaXYgdG8gY29udGFpbiBvdXIgYWxidW0uICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSB0aGUgc3R5bGVzIHdlcmUgaW5jbHVkZWQgaW5saW5lLCBob3dldmVyIGEgY2xhc3MgdGhhdCB3YXMgZGVmaW5lZCBpbiB0aGUgc3R5bGVzaGVldCBzaG91bGQgYmUgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gIFRoZSBjbG9zaW5nIHRhZyBmb3IgdGhpcyBkaXYgaXMgb24gbGluZSAxNCwganVzdCBiZWZvcmUgdGhlIDxjb2RlPnsvaWZ9PC9jb2RlPi48L3A+DQo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPg0KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuDQo8cD5XZSBzdXBwbHkgdGhlICRmaWxlIHZhcmlhYmxlIHRvIHRoZSBzcmMgYXJndW1lbnQgb2YgdGhlIDxjb2RlPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwLDA8L2NvZGU+IGFyZ3VtZW50LiBUaGUgaW1hZ2VzIHRoZW4gbmVlZGVkIHRvIGhhdmUgdGhlIHdhdGVybWFyayBvbiB0aGVtIDxlbT4odGhpcyBpcyBqdXN0IGZvciBleGFtcGxlIHB1cnBvc2VzLCBJIGRvbnQgdGhpbmsgYW55Ym9keSB3b3VsZCByZWFsbHkgc3RlYWwgdGhlIGJsdXJyeSBwaWN0dXJlcyBmcm9tIG15IGlwb2QgZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMpPC9lbT4sIHNvIEkgYWRkZWQgdGhlIDxjb2RlPmZpbHRlcl93YXRlcm1hcms9MTwvY29kZT4gcGFyYW1ldGVyLiAgQW5kIGZpbmFsbHksIGJlY2F1c2UgZXZlbiB0aGUgaXBvZCB0b3VjaCBjYW4gdGFrZSBwaWN0dXJlcyB0aGF0IGFyZSB0b28gYmlnIHRvIGRpc3BsYXkgb24gdGhlIHNjcmVlbiBJIHdhbnRlZCB0byByZXNpemUgdGhlbSB0byBhIG1heGltdW0gaGVpZ2h0IG9mIDUwMCBwaXhlbHMuICBUaGlzIHdhcyBhY2NvbXBsaXNoZWQgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcmVzaXplPWgsNTAwPC9jb2RlPiBhcmd1bWVudC4gIFdlIGFkZCB0aGUgPGNvZGU+bm9lbWJlZD0xPC9jb2RlPiBhcmd1bWVudCBiZWNhdXNlIGZhbmN5Ym94IGRvZXMgbm90IHVuZGVyc3RhbmQgaG93IHRvIGRpc3BsYXkgZW1iZWRkZWQgaW1hZ2VzIGluIGl0cyBwb3B1cCB3aW5kb3cuICBUaGlzIGRlZmluZWQgdGhlIGltYWdlIHRoYXQgd2Ugd2VyZSBnb2luZyB0byBsaW5rIHRvLjwvcD4NCjxwPk5leHQgd2UgbmVlZGVkIHRvIGRlZmluZSB0aGUgdGh1bWJuYWlsIGltYWdlIHRoYXQgd2UgYXJlIGdvaW5nIHRvIHVzZSBpbiB0aGUgZ2FsbGVyeS4gIFRoaXMgY2FsbCB0byA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gaXMgYWxtb3N0IGlkZW50aWNhbCB0byB0aGUgZmlyc3QgY2FsbCwgZXhjZXB0IHRoYXQgd2UgdXNlIGEgZGlmZmVyZW50IGhlaWdodCB2YWx1ZSAoMTUwIHBpeGVscykgZm9yIHRoZSB0aHVtYm5haWwsIGFuZCBmb3Iga2lja3MgSSBjb252ZXJ0ZWQgdGhlIHRodW1ibmFpbCB0byBncmV5c2NhbGUgPHN0cm9uZz5iZWZvcmU8L3N0cm9uZz4gYXBwbHlpbmcgdGhlIHdhdGVybWFyay4gIEkgYWxzbyByZW1vdmVkIHRoZSBub2VtYmVkPTEgYXJndW1lbnQgc28gdGhhdCB0aGUgc3lzdGVtIGNvdWxkIGVtYmVkIHRoZSBpbWFnZSBpbiB0aGUgSFRNTCBvdXRwdXQgaWYgdGhlIGJyb3dzZXIgc3VwcG9ydGVkIGl0LiAgVGhlIHNjcmVlbiBjYXB0dXJlIGJlbG93IHNob3dzIHRoZSBlZmZlY3QuPC9wPg0KPGltZyBzcmM9JnF1b3Q7ZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBZ0dCZ2NHQlFnSEJ3Y0pDUWdLREJRTkRBc0xEQmtTRXc4VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpML3dBQVJDQUNoQWZBREFTSUFBaEVCQXhFQi84UUFIQUFBQVFRREFRQUFBQUFBQUFBQUFBQUFBQVFGQmdjQkFnTUkvOFFBVUJBQUFnRURBZ01FQndRR0J3UUlCUVVBQVFJREFBUVJCU0VHRWpFVFFWRmhCeFFpY1lHUnNTTXlvZEVWTTBKU2tzRVdKVFJpY25Qd0pGV0M0UmMyUTFOV2c2THhKalZFWTdKa2s3UEMwdi9FQUJnQkFRRUJBUUVBQUFBQUFBQUFBQUFBQUFBQkFnTUUvOFFBSXhFQkFRQUNBZ01BQWdJREFBQUFBQUFBQUFFQ0VTRXhBeEpCRXlJalFsRmhrZi9hQUF3REFRQUNFUU1SQUQ4QXRmVzlWdWJLNzAreHNrZzladnBHVlpMZ25zMENqSnlCdVQ0Q3RMdlZMblRMRlk5UXZOTWkxR1orV0RJY1J1TWdkTnpuZjZWMDRoazBYMWFLRFd3dll5TWVSbVZzS3c3K1pmdW56cUozTWwxSnd0SUhrdUpyTk5XZ1d5bXVBZTBlTG1IWE81R2VoTkJOTHJYTktzWkhqdXRRdDRYUndqSzc0SVlqT01lNGcxdEhyV2x5M3dzbzlRdG51V0dSRXNnSk8yZHZoVEZGREhKeEx4Z3p4cXg3R05RV1hPM1pIYjhCVFhERXFjSjhGdXNZVnhlUUhJWEIzNXMvT2dsYjhTNkpITzBNbXFXcVNxNWpaV2ZCRERZZytGYzU5U3VFNHRzZE9SazlXbnM1Wm05bkpMS1JqQjhLaTlycWVtVzJuOFNXZDJCSmNUMzF3RWdFUlpwYzdBREE4ZmxTcXppdU5MMW5oYzZoem93MDU3VnBDQ1FKU1JoU2U0MEVtbTEzU2JhOTlUbTFHMmp1TWdkbTBnQkJQY2ZBKytuQ3E0c2tnajBlNTBiVnRRZTF1WkpYV2UzTmlIZVFzMnpxMk10bklPZTZyQnRvUloyVVVEU3M2d3hoREkvVWhSakorVkEyWGV2SmE4UzJXa2xjaWRDWGsvY1kvY0h4NVcvQ2o5SlhQOUxwTk55bnF5NmY2d0J5NzgvUGpyNFk3cWl6eDZ2cSttYWxxVnJwMGJDN25GemJ6dGNjcm9zUjlnQk1iOUQzNzgxT1ZycU1WMXhkWmFpd1pJZFEwb0pFeFU0TW5NU1V6M0VZTkFzNGI0cHRkUjB5elcrdjdVYWxNR3pFQ0ZKUE1RQmp4d0J0VDdIZVcwMXhjVzhjeU5OYjQ3WkIxVEl5TS9DcTd0N2l6dWZSN0RvMGNiU2FzLzZxRVF0enE1Zkt2bkd3eHZuTlBkdmZ3Nkx4TnJhNmc3cTl6SEEwR0kyYnRpSStVOHVCdWM5MUJJUDA3cFF0bzdrNmhiaUdWR2RITFlES3B3eEh1SkFybWVKTkVXS0tRNnJhQkpTUWg3UWIvbDhhaDJnUmgyNE1FaUJnSTd0c01NNElKSU5MQmJ4Zm8zanI3RlAxMG1QWUhkSGtmanZRVGtISXlEa0dpa09pa25RZE9Kem4xV0xPZjhBcGRRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGUmx1RHJmbDVGbUVrWVVLb21WaVFBUDdyS1B3cVRVVlpkSlpzd2FOd3BiYVBmZXVMY1N5U0JaRVJPaUlybFNRQWNuOWdkU2FmNktLaWlqclJSUUZGSHdveDVVQ0RTOUxUU3hkaU9WNVBXYmw3bHVZQWNwYkdRTWQyMUw2TWVWR0Q0VUJrK05GR0Q0R2pCOERRRkZHRDRHczRQZ2FER1RSbXM0UGdheGcrQm9DaWlqNFVCUlI4S1BoUUZGR1BLakhsUUZGR0Q0R2pCOERRRkZHRDRHakI4RFFGRlp3ZkExakI4RFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVZUGdhUGhRRkZGR0NUakc5QVVWbmtiOTF2bFJ5dCs2M3lvTVVWbmxiOTF2bFJnK0IrVkJpaWpCOEt6eXQrNmZsUVlvckpVanFDUGVLQXJIb3BQd29NVVZubGI5MXZsUVZZZFZJK0ZCaWlzNFBnZmxRQVQwQlB1RkJpaXM4amZ1TjhqUnlQOEF1TjhxREZGWktzT3FrZThVY2pmdU44cURGRlo1Ry9jYjVVY2ovdU44alFZb3JQSTM3cmZLamxiOTF2bFFZb3JQSzM3cCtWQUJQUUUrNFVHS0t6eXQrNjN5ckZBVVVVVURicVRFU3g0Skd4NmUra1hPMzd6Zk9sbXFmclkvOEordE4rZDhVRzVrWWsrMDN6ckhPeC9hYjUxcG5ldFNhRGN5UG43emZNMXpaM3hzemZNMFpOYzNvTW1SL3dCOXY0alhNeVAvQU40L3pOWUpyVW56b01OSkorKzM4UnJpOGttLzJqL3hHdDJKcE8yMUJocDVmKzhmK0kxMzRSMUE2a1k3ajJoOXN5WUxFN0NrTHR2MXhYSGdlZG9XZ2p4ekNTK2tRa2RCMU5CTTd4MkYzSjdSd0NOcytWY0M3ZDdINTExdnY3Wko4UHBTVmo0MEc1ZHNmZmI1MGRvL2V6Zk90TTVyR2ZIclFiRjIvZWI1MW9aSHo5OXZtYXh6QUhIU3ViTUQzMEdXa2NmdHQvRWEwTXIvQUw3L0FNUnJSbTNyUW5GQnNaWk1nYzdmeEd1VHpTRDl0LzRqUVczcmk1b05YbWtBMmxmK0kwNmNNeU0rcXlndTdBUW5xU2YyaFRMS2RzMDY4S0hPclQvNVBYL2lGQTROSTJUN1I2bnZySGFzUDJtK2RJM3VWRHZueElybWJ0UjNpZ2NSTTNUbWI1MW50Vy9mYjUwMEhVWTFKSE91UjRtdWI2cW1OblgrSVVEMFozRFlMSEdPdWF3YnZsNnNmblVOMURpcTFzY21hZFZ4M2MxTTQ5SWVselNkbjZ5QWZOcUNmM2VzcmJxVHprbnVxUDNuRkZ3U1FraEh1cU5YWEVsczhxWm1UczMyRDgydzk5STVOUnNaRWtjWDBhaGNrc1BMejhhQ1FXK3U2cnFsekxhNmRJSlpvd0RKelB5ckdQTStQbDFwMWcvU2ZOT3Q1cTBrVFE0TGRpQUZIbWM1cXNMVGk2YmhKQjZ0SDYyOXlyT3N6ZXlEL2UvR21IVXVKZUlicTZhU1NTNVJnUVNlN0k2SHBRWHh4UnFWN29jVnJjV2NzenFVVm1TWWhsa0J4dnR2bWwzRkZ5N2VqdlVaMUxJL1pxUmdrRmZiVGJOZWZoeFZ4TnFOM0hjM2Q5ZTMwdzI3TmwyS2c1SGRqOEt0NXRSdk5VOUNtcTNWN0QyTndTUXlrNXhoMC9HZ3FtYTh1aHE4eWk5dVZSbEJHSm14dDhhYzlPdmJpTy9RdGUzUElSZzgwckhjL0dtSjVRK3AyNVljM1BFUnYxR0tjWW1DVHh0eUhQZmdaelFMZGV1cnY5Slcwa2Q1Y3NuWjQvWE1Od1Q0R3JEMEtHYTZ0cktkcHBzUEdySDJ6NGUrcTAxUW5sZ3dDQUdJcXp1Q3B1MDRldFhPK0U1Q2ViTzRQL09nbDh6eGlHT0ZwQ0M1NVZHKzV4bnI4S3I3aXkya2kwL1VwVXZycVA3Rjh4aVRBSldSUU1EcmpHYzc5Y1ZON216bnVSYnNzVGtKTXNnSUhVak9LWU9MOU5kcmFlTllwaFBMYnlvaUlvOXRoeWxWM0JQZWVtS0JyOURkeEpKZmFyYnp5U3lFd0NSUzdsc2R4RzU4NmV1STdDd3V0T251bkVndllMZGxpbEU3cmdEZm9Eang2aW1EMFZXOTNZNnpyRU1rYjI4NldXTVNqN2pjM2VLYk5WdCtKRnRuZTUxN3RvU3BMeHBiZ0Fqd3ozVURYcGRsZGF2cU1LRzR1Skk0b0pKR2dhNGRPMWJLcU1rSG9NNXA4czMvQUtObTRqdTdxNWdnZVJXUWM3U3RKN0lKVUU5d09mY01aOGFqZWdhdU5LMSswRnhJa2NFc1VxU083WUM0NVdCejhLYytPTFJMbzJlcTJjNGx0K1Rzbk1XNHh6WkRlZWM0K1ZCcHFYRmtwZGhienl4WUo1RldSdVlmSHAxOHFlL1NWZDNJOUhIQ2N5elRSeXlNcGNyS1FUOWoza0hlb0J5VzRraGNPNkJUek1yc0R5TjQ1eDVEM1ZPdlNTREo2Tk9EOGtra3BrbnIrcG9LcHViNitWVllYdDBOOS90My9PdTl0cVY3bFZON2NrZjU3L25TZlVFVDFJeUkyU2tuSytEME5iUjJGNHVuUjZpMXZKNm04blpyTVI3SllkUm54b0gyMTFiVTdRTzl0cVYxRTdxVmJsbEp5cDd0elRkYzM5NmNrWHQxelpIU2R0L3hvaWxIWURmcDFwSGRrTmJ0bkIzSFh1b0YxcmRhZ0M2UzNOMnUzUnBuMi9Hc1RYbDR1Q3Q3YytYMjdmblNmUVZTVzVaWldrN0lKelB5QUZnTWpwbnJXOThxTEk1aDUreTVqeWw4Wng1NG9POXRxTitqaHhlM0lLbktudFcyUGQzMUtSZFNYc1NYME54T2dmYVdOWlg1WTVSMVViOUQ5NGU4anVxRnBJQXVOcytkUFhEK3BSMkY4ZTNhUVdjdzVaa1h3N21IbXAzeDNqYnZvSmJhVDNNRFJTdGNURWcvdFNzZlB4cVZlbWEzdUg0U3NieTFtbFJ1MVJXYU55dlZXSTZlZGQ3UGh5RFZFaVRuVlpjWVlqOXZ3T2ZkaXM4Y3pUM0dnMi9EcldydGNDTkp1MVpoK3lTdUFQRWp2b0thNFU5ZkhGMmpjOTVjbFBYb1F5dE94eU9jZFJtdlV4Nm1xUTRXNFdnaDFxd2x1VW5XZU80UjFWbUM0SVlIY1kvblYzMEJSUlJRTldyZnJZdjhKK3ROMmFjZFcvV3hmNFQ5YWJHb01rNzFyellyREhHK0RURnhKeEhIb05vc2trTHVIeUF5NHdNVUQ0eml1WmtxcFg5Szk3SEovWjdSeDAzTENsTmg2VzRUSVYxR3pDb1RzMEJKSStCb0xOTGQ5YU14eDAycVBhZnhsb3VvUks2WHFLemZzTm5tSHdwYituTk56L2JJL2tmeW9IRW5hdUQwUTNVVjFFSllKQkloSkFJMjZWaVEwQ1Z6dmsrTkxPQTJIcXlzZWtsM0tVYjk0WjZqeXBqMTErVFRqdXdWcEVWc0hIc2xnQ0trdkRLQkpyZU5SaFZrT0I0YlVEM3FHMTVKOFBwU1VtbFYvd0QyeVQ0ZlNraG9OUWE1VFRpQ0o1Q0NRZ3pnZFRYVHY2VkZPTmRURnBwZ3RSS1kzdVR5bGhuT1BEYnhvR0RXUFNSUGIzVWkybHFCR3UzMjNYUGYwcEZINlZKU3ltU3lqNU0rMWc3NHFLWDF2RDJUTUgrWUpOTWtpb2lmZkdmZWFDN2RONDMwblU1WTRvM1pKSHprUHNGMjhha0N5TElvWkdEQTlDRFhtK0c0RWI1RXBVK0lxenVCZUpSTmJ6UjMxNkFzU2hZMU9mblFXRWE1T2F5a2lTSXJvUVZZQWdqdnJWK2xBbmtPMUx1REhlWGlPK0xPZVJJQWlwL3hESnBCSjBwWndSLzFqMUxiZnN4LytRb0VNOXkzYXZ2KzBmclhBenUzZlRoUGFxSlgvd0FSN3ZPdVl0b3oxejhxQ0JhKzUvUzhwNytWZnBVWTFqV1UwK0VxcEJtWVlVZUZUVGlDMlJkWWxBSFJGN3ZLcWcxNlpwTlRteWM0WWdlVkFpbnU1WjVHZVNRbGoxcmdKQ0QxM3BWWTZaUGZ2N0lLb09yR24rMzRidDBBN1RMSHpvSStsMFZYQlk4Z09TdFNmVGVLMnNiVTI1Z1dhMUE1bFZrQjVUNDBvVGh1eGRkNCt2aFcwM0NUVzFsTE5iUHpFRG1LTjRlRlp5eTlYYncrTDhtVjN4RERmVHlhbmMrc0ZFUlQ5MVJzQU8rbjIwamtFMGJYSEswSXh6S2k0SkhobnVxTHh5eUpjTUhYbHdTQ25jS21kdUJJcU1DTUVDdE9WNHZCMzFLZlJwOU1TTFM5TW10YnpJTHl5ejlvcFh2SExVdjBkSm45Q0dzSklVWnpPNEhLdktNYzBkUVJVd3dxZjJRNWZRcHJCSC9mc2Y4QTF4MFJWODJuOGlXMGpTeFFoSEdXZDlzSEdOeG1sQ3VPYmw1d1dVbko1ZWxLTlRUdHREbG54Z1JjcmJlUnh2U09FYy8zUWNBS1RnYkRPOUF0bmlnbGpMM0lrWlkvYlFJMk10NW51RlNyU3RZMUMzNGFnc3JCa3RtZWN6Q1NSTXF1RGpCSjNPZHNZMjYxcm8wT25hVGJSNmpxTUNYRFNZN08xSzh3T1AyaU84Ky9hcE54WGJhWHJsdnA1dGRTZ3RKb01Sc2dRcUZYT2NBQWJZOEtDVGFSTmZYSEFLYWhleE9OUWUzOXVNTmxjZzR5ZzdnUnZTVGpEU1UxT1FhZkVwU05jWjVDUUZCVTlRTzQ3L2hXcWNZNlRvOXREcGNWM0JJcVFCRkRCdGdQSUNtdldPSnJTNzdTUzF2U0hsVEplRkNyTmdiWlBkamY1MERiNk9yQ2JTK0lMcEdFZmFQRTZHRG13NFFPQ0dJNllQejM2VWwxeVdlN25sdG9OUG1rY2RvZ1ZjRGJmNmJVcTRIbnM5SnZudjcrK2lUMWlKb2l4SkxoMndjSGJ4Rk9TVGk5bXVvTk9qVml4ZkxKdThvemduSnh0M1lIa2FDdlhzN2JTOWNnVnJVM1YrRVBOSVAxTUFLQTR3UjdUZWZRZWRTMkd3VFZiTjlKRVUwYzE0V2o3Y3I3SUJJSU9ldUFQS25XeTRYMUxWTGp0Z3FReE1uTDJqbmJ3SXgzOUtlK0lORy9SSERkOWUyMTFLdHhCYnM2ZGtpb2VZRGJCRzQrdEJIcmIwTTI2eHFyNnBLYzlTSTg5L2NQblNEMHY2ZEhwZkJ2RCttMjVZeFcxeDJLRnVwQ3hFRE5NY043ZlJjczh1cDZqTTdMMG52WkdBK0dhZC9TZ3hsOUgzRERzU3hhUlNTU1NUOWw0OWFDQjJkL3BiK2l5LzBpNGRVMU9DY01pSDd6NWNFRmZoa2ZDbUtIVFk1TEtKMUpWbVVIeXB5MUtPSDlEdnlBaHlZeWM1eDFydHA5dVRZUW5HM0wzRHpvR1gxZTZqUXJnT3ZpSzB1VUJzOEdUN1ZqN1VaVWdyanZ6ME5XR25EVWMyak5jS3dFZ09mZUtoK3ByYnZadUJNbk1xY3d3TzRIZmVnNThNUnc1djhBdFdDLzdNZVRQZWVaYTIxYUlKWmlSVjJMNDYxdzBPNGhFVnlHbTVIYkM5TzcvUXBicTZ3TG9pTjJ2TS9iYmtIMmNZUGRqcjhhQnZuTnBjTmJlb3dTeHVVV04wYVR0REpKbnF1d3dQTGYzME9XdHlWbFVxd09HQkdDcEhpS0lqQkN0c3lTOGtvWVNsbEcrT3V4UFErRk9Fa1A2VXRaUFYrU1ptT1pKTWI4eDhjNzR4MU5CWm5vNTF1M2l0SWJHNHVJa2VNaDRPWTRPQ1NTdWZ4SHZOU3ZqZlU3SzN0YkxWWkFYZ0JNSkNZNXNuQkhYdTJhb2J3N2NhRmJXZHFzZWl5WFZ6Z0xKTk9WU05pTy9PYzRIdTN3S2xFV3JXdXN2ZDJOeHBObzhjWjVvdzZDUUU0MjNQdk9OdkhwUU1XaThjNkxOckZsWkxhWFlra21TTkNRbUF4SUF6djUxYTlSdlRZZEFUczQ0dExzNHJtSnRpYlpBU2ViQUtuSGppcEpRRkZGRkEwNnYrdGlIZHluNjAxbjQwNmF4K3RpL3dBSit0Tlo2VUdqbkJxck9MWTdqV1pidWRGa2tpajJSYzdJTmgrUFdyUWx4eU5ud3FOYWhESEZvVjAwYWNvZVBKK1lvS1B1OU5samNGbEk4YVF2QVEyTUdwbGZoUk1SanJUUFBHdk1kaG1nYUxkNWJhWkpFWW80NkVWWmtFUUdueFM5b09ZZ2JaeWZuVUVhMzdRcXdYWlR1ZTRWTE5KbmFhd1JTMmV6OW5HVGlwZStIWEgxbU51U3dPSE0vb1pQOHgvclRpNDg2YnVIQi9VeWY0Mit0T0xnRUhiOGFya1pkZlhtMHFVRFlCbE9mY3dxVWNONDlZaHpuUGEveXFOYStCK2hybnlYUHlxUjhOTVBXNFFSakQ1SG50UVBkL2oxdVhQWGI2VWthbGQvL2JKUGg5S1JtZzVucjVWRGVNb28zRWJsY3VycnY4RFV5WVZYL0hGM0phSzZrQWt5S3did0hLMjFCRk5RUlRHQVI1Vkg3cTNqTzRYcFdialdwWGN4dEltT25URkk1OVFJSURZMzZlWW9OVGJxVklWY2swODZIQjZuZGxSSm5uVGRmQTB6UVhoNXhJRndvNkhQZlRoWVR5eWFwRGdFZzdkZWdyUDExL1dZWGM1cTc3TCt3VzMrVXYwRmRHclN5SDlYMjMrVXYwRmRXclRrVFA1VXI0TDI0bjFJZDNZS2Z4RkpaQUFDS1hjSVFzbkUxN0pqMlh0aGcvOEFFS0IzdnJEdE9hV0pkeDFVZC9uVE0wWEtjZC9oVWxzN3VDOWphUzNjTUF4VStJTk1la290M2RYbmFuT1B1K1dTYUN1ZU1iZ1dsMWV6bmJzNFZJK1ZWQlpXajZ2cWJBa2hjODhqZkgrZFc1NlNvMVJ0VFJ0MkVDNDkrQlZlOE1RRkxPYVlETE8rQWZJZjZOQTdKSEZieGlLSlFxcjB4UVh5TnF5M0tvM085Y3k0QjJvZjZMYlpuN1JNYmJqZndwN2pua3VWVlpRdlVqUFhKcU9QcTY2ZEFVbWhQaXB5Q0NmRVZ6c3VKQUpFTEFoQWVwRlluN1hsNk05K1BIMWw3N2FjVGFGNnZJYnVKUFpjKzFpdGRLY3BHSTJPZVhkVFU0U08zMXpSeWdiWmw2K0JxTFh1aTNXblhNbG82OW5kUnR5RlQ0N1lQaGl0dk9VRFpzL09yQzBrYy9vYzFVWTVzelB0L3dBVWRRRThLY1gyMkd1TGJUeVd3QW8xQ0htT1NBTnViekZXTkJwZDlwZm9oMVcxdm9WaXVESVg1QklzZ3dXajcxSkhjYUNDUThoaW10NUVVOXRIZ2dBTnZqWUg2MGh0bFpKWmJkWWdvZFZEWklQVHd4N3V0S1lvcFNRdlo4MlJoZVhiRktMZlREYXBKUE93UjJURVNuUHROM1o4Z042QlhFNnJhTERkU2lPT004OGJPY2V6akpBOXczK0hqUzVicTI5Wm41V0gzeWMrTlIyU1AxaG1rdXVXZDJVcG45MWNZd005T3A2VkdwNzIrc0x5ZFlIVjRneDVlY2tIRkJLTlhlMmFhV1FaREJBK1Y3eG5jZktucUdkSklVYUloazVkNUNOaC93QSt0UXF3bU4xY29ibzg1WkdCQzlDUVFjVktrdlJ5aFVqUGdpS05nS0haVjJaRml4bTlsUk1DR0M1TGUyTno4S2VlSE5YV0RYSkNxS3dFTGN1VHQxRlJLNTFHVW9Va2JCOEFlbmlLN2FCTDJ1cTRQc2pzempiT2VtMVNiMjY1K3NrazdYVm8yb1BmQThpS3FxTmdvd0JUaHExZ2RTMGlhejluTXE4cExaeCtGTlhDL0l0bmtZQ2c0eWNDbjJXN2lqQUJkYzkyOVZ5VmpjZWk3VlpKUzYzMXJnbmNIbUpIdXlLUitsaXlleDRMNGZzbllNMEUzWnN3NkVpT3JNdTlVYUI0WUlpc2x4T3hXTmU0WTZzZklWWDNwa0RmMGQwcnRNT3d1bTVpQmpKN005MUJVOTR4ZlRtRFl4eXIwOGpVaTRYc2x1dE9qT2RsY2pyVVlaSkpyY3hSUnU3RWJLb3ozMUwrRjNGbnBCN1pzRVNPTUFGaDNkNDJvSmE1aGcwL2tZQUtWNUJzT3ZLYXFiVjQ0a3RabDdVb3doYktqSHRFNHF6N2kxbXV0TU53dk1zQ0ZaR2RsSUFVRGMvalZjYXZicEJGY3JMS3F5c3JEbEQrN0cxQWg0U3RvcGt2ekpHckZJd1Z5T2gzNlVwMTdtT2xxZ2ZtVHRWUElFRzNYSnoxUGZTZmhrekpZNm9ZT1R0REV2THpianZwTFBOcUNNVGRQRzhhN3NzYTlQT2l5YjRqakpwZ3VvcEpvcmh1YU1LRVJrKzhNZmhVaDRldHJTMnNwNUppVnlWT1hrd1cyNkZSMUh3cHIwL1ViWjVaVVNUSE5qT1RzY2Z1K1hTazZMS2w3Y3JMTUFXWUVNQjFIbDlLazIzNVBYaVluKzcxRlhpTU5zeXdGYzRrQTVXd1Q1ZFIxMnBIYWFyYzJxUlNpK20zTEtGU1U1akp3Q1YzMlBUZWtrYUpFSGFYTEJ6eS9mM0FIdTdxU3RhTUovc3lBR0dNL21hcm1tdkRXc1hNdkVHblF5WGJ1R3ZvbHl6RTVITnY4TW41bXZRWjYxNWY0V0NyeFhvS0F2bjF1RTRKKzk3WTM5MWVvRDFOQVVVVVVEVHJINjJML0NmclRVVFRyckg2MkwvQ2ZyVFV3eFFJdFJXV1N4bVdFa1NFYllHU2ZLcTc0azFTOEdreWhZMzVPendER2RodjMxWnJEUHhxQWNTMnl0cHQ3bHlpaFNjZkhwUVZhbDFjM0pmTE1lWEdTYVF5WGtwa0lHZWJwaW5xMENSMnM3a0FLMlZYSXdXSGpUVkhDcjNaYmZzd2NsZ003K0ZTM1RXR0Z6eW1NS0xlNW1paENsWFZuR2QraEhqVWk0YVNUMU9SMlBzRnVWYy9qVWQ1MWtrWmdOaWRzOXdxYldGdUxXeWloR2RodjcrcHBQOEFMWGt2T3BlSW5YRG4vd0FtVC9NZjYwNFBta0hEZy9xWlA4eC9yVGk0OHFybVFYbHVsMWJ5UVNaNUpGNVRqclNqZzcxdUhXT3d1NVZkUXk5azRHT2JZN2Urc1NZQXllZ3Jod2FicTkxNkcrbUNwQTI4VVliUEtOOEgzbWdtZCtNM2tudytsSXp2UzIrL3RrbncrbEltb09iYi9Pb1R4OUR6MjFzd3dDWDVTRDNqQnFiRVZFZU9vODZaYnlmdXpZUHV3YUNwRnRnTlV3UXJ1UGE2REFIaWFiZFVRUGVNVUdRVGdBZDFQZlp2RzA3ckh6RWtndG1tc3hHTjJubHljYkR2elV0MDZlUEQzeTE4Y1l3VUhZWktxUHZBNy9LbjdoNjE1cDViazlFWGtYMzB3UjU2NzVZbXBadzloZE9Za2pkenRTTTU1YnEyckVmMWZiZjVTZlFWMGF1ZGtmNnZ0dW42cGZvSzZ0VlpKMy9HbmJoVEg2VW1HUm5zZkgrOEthM0hmU3JoWUgrbHN1d1AreEhIL3dDNHRBeTIxek5ZM2tra0RsVHp0MzdIZXBEdzY2OGx3NTZ1eWo2bW9xazhVOGtqd3lwSXZPd0pRNTN5ZHFsR2dxRnRGa0IzTWh5UElEL25RVnA2VVU3VFVyeU1kOGEvSDJhcjIwdkd0dElpU0llMHpOMDk5V1Z4MnF6Y1N6Um43cGlYNlZBYm5UUFUxNVk4bFFTVkI4eFFORFg5ekhMOW8yYW1PaWFXZFNzM25La3FxOVBNOUtoaVdVdDFlckh1Y3RqSGNCVnRhRUlyUFRqQU1EbTJPS3psZmtlandZUzMyejZpcGJ3eUM1ZFhMc3FzY2MxU1BocVMwbWplM25UbjV3Unk4dmwxcDkxL2htMHVoMnNXRWw4UWRqVWR0Yks0MDZiazVjTWYybE5XVFRqbGx1N1NEaHZPbjMwbHNIWm9UbkN0M1ZOdlNQcHhoNGd0YnIyUkRxRnFGWjhmZGVNREh6QnFJNkxhWVl1NCswTzVKcTIrTjlPRjVZNlFlVUVSdVEyZTVTZ3lmd3FzdlBsdGJTcnhIUGJ5TXhJa1RjbnBsaFZvOENHTnZRdnFKbHlFOWFrSjVtNXUrUHZxRGFiRTF4eGs1a1BNUVVCSTc4SFkvR3B6d0RDMDNvWTFDTlRrdGR5QUVqempvR2g3cUlqRnRiRUgrL2tmZ0tqMnFQZFBlOW8wemN5a01DeE9QRHArRlNkZEtuNWo3Y1lIUW5QMHBCcVdnWEZ5ckxFRVk0M3pKZ252L2xRSWJDZEpRVmZsRGpmQk5NdXFXS1NyZHlTRlJ5Uyt3UDJqdjlQR25XWFNOUnNFOVlrV0lGUjFFZ3lQY08rbXFTVVNRM0FtTE5MMjR5NU81SlBTZ1RjeTJuWUFFdmx1VlNPbzV1LzhLMmdrbVVkcDJzMkZ4N1N2ME5Kcmt5SzVTS1BNdk1BaTQ2R2xjeFJVU0ZEbmxQTWR2R3MyL0hieDRjWE84YUtrbGFaUTdrbGlNYm1uamhzRWFxMkIxUWsvTVV4VzJleVZSNTcxSXVHVUg2U1k5QUl5YzU2N2l0T1Z1N3RZZHZxM3FrSUdTRlU3S1A1MXRIeEhidEFWTnZJOHhQMysxMjM4c1V4em4yU0NSanZ6dlNOVzVFWE9TT3V3eFJEN2U2bk5jM1ZyYzI4aXBjMno5cEVYUHNFOTRiRytEU24wZ2FsYXg4UGFMZmFwWXJjcTgzTThLUHRrcHZocWpzWE14VnM0SG4xcHk5SmFrY0dhQ3VkaElBYzkvd0JuUVFMVjlUMGk4UmpZMlUxdWtnT0FoQVpSNy84QWx2Uy9obWZrNFpXSU4rc3VabEJIVFpZelVYV1BKQXdRRDMrNnBIcDFyY3cyTnJieXlRV3FMTEk2dUY1bU9WWEpLbllqQThxQzRZTGVPNTRXU055TVBaWXg0K3ptcUcxYUx0M2FTYWFOVUtNVThTVGpwNWJWUGJhVzVsdHBZUk04aXhXdk1qdU1rWnlENWJrZUhTb0hKcDhqS1RKMmFzUU44N2swQ1hRWXpiMjJvZGxseWljcjdiRTc5UERGSlpyZWRyUnBwa051amphVTViT05zWUc1cCswcXdGckhER3JjL3JqQldJSFFjckhLL0d0TDdUNTdpWCswQ1FnWUhOMDIyK2xadDUwN1lZK3VQdjhBOFJpMGpqZ1o0b29tWWN4ekk0Qlp2Y2U0SHdGVFBoL2hHUGlwYmlkTHRyVXdGVXcwZWViSXpYSFQ5RGpCWjdpYm1ibTJFWitwcFRkTmM2ZHlKWVQzRVVUdVRJeVRGU2R0aHQ4NjA0bjVmUTR0eEd6dnJCU01kQUlUOGUrdVRlalcxdDlTdElCUExNMTB4aURsVGhRQm5tWWRNNUk3Nmo3YXpxRGpzenFWNGNlTTc0K3RkN1c5dllBWnZYYmxXeDkvdFd5UGQ0ZDlCTXJMMGFwcEd0YWZlUjNTVFNSM0ViSENsUnlnNXhqSnEwcW9MU05XdnB1SjlMRWw3ZFNLMTdDQ3BtWnR1WWRkK2xYNmV0QVVVVVVEVHE0KzJpL3duNjAxdDFOT21yL3JvdjhBQ2ZyVFBQTEhDcFp6amFnRHNEVUs0dWh4WWFpdlFOSGxjZjY4YTE0cTQ4WFNVRU5uR2ozTDlPWW5Dang4NmJmV2RRMWJnNXRUdnBBelRoeWdWUW9WUVFQcUNhQ0VYRnU3V3lvektNZ2ROc1UwWENQQ0JFR1hCd1RnWUk2N1ZLSGJzYmRwR0h0Z1pUSS8xbW94SnpHVjNicXh6V2U3dzd6K1BEYzdyTWVBeTVPQVNLblNYTUw3SktyZjhWUURPV0E3cTAxSkdVeFNnZTBSeWsxcHdYeHcyNE9pcHY4QTlvMzFwelk3bndxcnVDYjY4azBkVWptYjJISU8vanZVMWkxQzVRRHR2YVhvY2pjVUR1dzV0cTA0Q2NGTEVlQUkvRWl0SVprbTVYUTdWeDlIczNNYk5jN0NXUmZreG9KdGZIL2JaUGVQcFNRMHZ1SURMZXluY0tDTi9nS2E5U25GcWpjdEFrdnRTdHJDSjVKNU1LaWxteDRDcXgxbmpkdUk1RXNMUzA3S0lNWkRJN1pibEFJNmQzV3QrT3RVWVdKaERlMU9lWFBsMzFIdUdyVlRhWHVvTUR6UnNzU2p1T1FTZmo3TkIyRVpkWFhHZmRUQnFNaGE0TVNoVlJHSUFVWUJxVVRzbHBGSVFEMnBQTHlrZEI0Kzd6cU56NW5sSlVFNDhxejNYZkwrUENZenVrR1FxN1YyRTg4ZG5JWXBXUXJ2N0pyVDFhUjVNY3BIODZkLzBTMFZvNnY5NWtMSDVWcHdPL0MzR09wbVdPMG1uYVVjbnNjeDZZSFNwOWI2MUl3SGFwdGp1cW5PSDNGdHJkbXo3QVNCVzl4MnE0b0xSSkdaQjk1ZW5uUU9FZHdrNHloelR0d3Qvd0JaV2J1OVZQOEEvSXRRdUdkNEptR2NGV3dSVXg0UGxFMnRNNFAvQU5NZTcrK3RCQ05FMCtUUzdKNEplWHRPMmtadVh6WTFPZEt4SHA4RGQ1VmlmblVQdjc1TFIzWmxKek55NEhpVGlwWlpjeTZkSC9rRGJ6b0s5NHJrRW5FOHpaNkluMHFOWDR5ZHFmT0kyenhEYys1ZnBUVEtuTkltMmNrREhqVHBaTjNSdnRtaDArS1NhUU4ycmRHQTZEd3J0WjYxY3JhdTlxcXRJU0FzYkhsMm8xV1pJNHhBcWdqcUY4S1k0ZzhWMHJjMkIxNjlLeGp6ZHZSNXNyaEo0cGVrdnY4QVY1NTlOdHB1d2FLUU9WbFRQZGl0YkIxdmd2TVBiQnJsQmR6WEZ1ZTFaSkF1d0FyYUdhQzJaWjBYa2tEcUNtZXU5YmVaSWJlTHNtSGtLdGZpcUs2ZlJJbXRRR1pRQVJueEFIODZxNzJUR3NtZW83cXVLZTU3RFNubTVBNnhRaCtYdkpBRkJTeWNNM1dsY2ZHeldPUzRsaHNvSG1rUmRpeDVtUHlHQjhLZGVCN2x0SjlDdXBYSURGbzdxUmh5NVU3bU1menFSM3VwM1YzcU1sekZQTkFIeDdFY2h3TURGWjRpZVc0OUYrcm1WeTduQXkzK05LQ3RocitvYzdNc2l1dVRndW1lK3UwWEUyb0dWVktRRlNSemZaNHorTk1mT1c1Y1pCNVJuUGpXd2tBWUFqY0E5UEdna3R5V3VZNU9ac3VWYkF4MDJxRVNaamU2aW5XWExFaENpNUtzRGtaOTFUTExOR1cyeHlnK09ENFZIWms3YlVKakpua0VoTEVEenBicnRjY2ZhNmN3SGtUMWh4SGtjcDNYcWZIeU8xSjFzNDJZQTdIeHBYS1VlUUpFQ1VRWUI4YTVlSU9jMW1UNjYrVy8xblRlS0JJMXh6WndjbW43aDFrL1NUYjQreGI2aW1PTndVTzJNZUZPbWc1L1NMTGpPWWllbm1LMDRwUGQ5cGNRY3R1c2JOa2ZySEkyNys2dEFKQVBiNVNPbU91YTV1N0kvTHNBZTdPNjFsWlhWVUF3Um53M0ZCM2k1bzhCSTA4eVJuNFV1OUk0RGNGY1A1YkM4NEpQL2wwM3d1Q2dITDdaT2NIK1ZPbnBKVURnelE0eEhMSXhmQ3BHaFppZXo4UHpvS3RnUU5JTTdqOW1uYTNtN0Z3RkJkczVCYnVKMk8xSUxXMTFDV1JtT2wzTUtvTW5uWGZidnBYR1MwcHg3SURic2Vnb0hYU3A1NXI2Zm5seVJDTUJqdGpKNkNtNEdLS01IbTUyQysyN0hHUGRXbk42dmVtV0tSdVFRdXBKNzl0cWo5dHFETXFtNFVjb0d4eWNacVc2aldHSHRsby9UWFhxY1VNY01tU2h5R0kzR050dktteDd1UjMyY2s5ZGp0U1dTN2U1UGFIQXlCc0t4R3h5b09OajNmNjNxU2E3Yjh1VzdxZFJLZExWbmhCSkp5ZHFsbWw4TlFhOVkzSWxuYUlxNmdGUUQzWnFIV045SEJBRkl5M2o0Vk5PR2JxY1dWMUxKYnVzSGFKbHpzdWNiYjFweWJRK2kyS0tVVG05ZVdNbmNORmdIOGFYYWp3anAwdG42dkUxcmJ5TU1Cc01UMytkS2RFblhYZGN2YlNlUTlsYm9yUlcvTmdNRG5tWStQZDdxa0Z2cEVOdEt4TWs5d3p0a0xJMlF2dUhRVUZlNlR3T2x0cmxuY0RVMlpvTGxHS0MzSTV1VmdjWnowODZ0M3ZwTGJQaHdpUkJGT2Q4WVB1cFZRRkZGRkEzYW9BQXJrYmhTS2dlczNiaGl2TjdxbXV1ekNHTmM1eHlNZmxVQTF3TkhwazF5Y2V4SG5meDVjMEZROFFYUnVkWnVYVTdLZVZmaFZxM1ZpbHB3cEhwOFlWVEhhWUNIdUlPVDhTRFZWNk5aSFY5ZnRMVWdudDVSemVRemsvaFZ2NnV2cmRzWi9hV0x0RkxjdlhCVUEvSDJhTExxN1ZscTF3NmZZcjl4QjdKRk16UU04WVlZREh4TldmcUhCRnZjTVRGUEtoWE9jNHdmd3BKYWVqMHZNclRUc2tYTHVWSUpIbDBxU2FYUE81M2FCYWJwSnVadmIrNk4ySXJPdldhcnBrY3FBRERuNWRLdFN4NFNzQWhFVXM0UUl6ODJWeTJQaFRQcUhDVUUzRFhPc3N4SlNVNE9NWkI5MVZsR3ZSeEptYTh0aWZ2UmM2RHpCMy9BQXF4TG1JVGFQTGNSRDJvOEZzZVhmVlJjUFhMNlZybGxNakVCWmdHOXhPRFZ4c3kyTjZIVVp0TGs4a3Fub3BiYlB1M29HbTB1bWhkWkFUZ2taQXBad1RPTERYckxUcGM5cEpjU09oQTJaV3lSaitkTXR3aHRMNlcxeWZzNU9VZTdiODZjTkM3U2JqRGgyUmQxaHVtVmg0QmtQNVVGczNzcXhMbnY2L2hVVzFoak5KeUFaRElyWjk3RUQ2VTk2NjdMQ1dUN3kvekZNY014bGthVlJrQlZ4bm9QWjJ6N2lTYUNuT09uL3JXSzJCejJhNVBodjhBKzFQUEQxb2c0THQxY0FOTmZkcWMvdEFLeTFGK0paRGVjVFhmWjViTW5ab0QxMjIvR3JWdE5FdHA3VFM3VTg4Y0VMbFBZeG5iYnc4elVzMjFqbDYzYUR6ODEvQUdjRG1YS0FqdnhUSzJtM0NzUUV5ZkVWWXk4SzJ5WHQ5YkxOTUdqSmRlbmNkeDA4S1ZhYnduWTNGeDJuckU1aVplYkdSN08zdXBKcUpsbGNydXEvdGROVzJZU1NnR1FkRkcrUGZTbTRRaWFaY2RJZnFhbXR2d2hhU3Vaak5PVWxsRWNlQ09nNm5wV3ljSjJVK3JYeUdhNTVVangrejQrNnFpbmIrMk5ocVJBR0NPVng4Z2F0elRMc3phUlk2ckYxYU1DUWZoVmVjYVFpUFZWa2pCNUFnUUU5K052NVZKT0JOUUV1aFRXcmtuc1d4azlBRFFQR3RLa2Q0czBXT1NkQXc5L2ZVaDlIa3ZhYXRjZUhZYmZ4aW9qcU0yWUZpWnZhZ2tKSCtFL3dEdFVuOUhEWjFxY2Y4QTZYUC9BSzFvSW5yQkwzcXhnQWdPMGorSTlyQS9ITldFekNKSkY1bCs0dkt1Um5HS3I2NDVaZFR1RGtFOXVzWFR3YkordFQ3VVlZMEU4cklwZENRajQzQW9LcTF1VXZyZHd4UGdOdmRYQVhOc2xxNUxqdFVQTmpJQitGSXRkbVlYRjlNcFlGRjJLOWM5MVFHOHVuYWNlMFN5bmRzOWE1NWMzMWoxZUdYeFkvbCtwTGVHYVM2SlVrazc1OEtRZXJTdktBWlRrbWx1bjNJdXJkSmYyaXVHOTlFMFRCdzNOamV1a21ubXR0NXA2c05GREtNeVM4elk2TmpGYTZqcDcyZXBXa1FrWjBiR1N4enZtbkhTV2Jzd2M4M3g2VTRYVmtaSlV1RHZ5N2dHaUZrRTRXSlVKNkRIU3JkdXBzNkpPQm5sTnYzKzZxV3QzTFNFRVlPZmhWelRXTW1wYUplV1NTdEU4dHFVV1ZlcWtyMStsQkdFUU1lWUhhbFd1cnplalRWVkdNay8vd0IwcWgzNHU0bzBXL2EzdTdtVG1qT0NzZ3lweDc2dHZUTmNtNGs5QzJwM3NrYVJ5Q1JveUU2SGxaTi94b0s1bnlJSStUb3ZOek1XNkFIb0s0eHlySXdZREJCMkpwNHNiUlo0Z1NBeWtuSVllT0tjWTlHdDJJTFJLQU54c0JRY2JXVHRZSXozY3VNVTF6bG9wSnhrY3p5SHAxSS9sVXFpMCtHUG91QmpwamFrc3ZEbHROUEpPWlpnWEpZZ0VZK2xTemJlR2ZwdEZoa0RJMkhjSzJHQ0J0dlVsWGhxMnpneVRLZXU1SDRiVm4ramxwZy9hejQ5NC9LcXdpK01FbmJ3NlU2YUQ3Vit3NWlCMmJkQm53cDBIRGxwalBiem5IZGtiZmhYVzMwbUN3bU1rY2tqRWpCREVZSFR3SGpnVUc1NUE0NWVZZCtjWi8xLzcxb1h5cElVcTIrM1U0LzF2OGE2RUZpQUQ3UGVDRG5yMXJXUU1HSHM1eU01eDhmK1ZCMGljeG5DSGRqZ3VSemY2SFdwaHhISVR3bG96am1VRUxrRWYzTytvY2hVZlpsU001RzJ3UDhBck5TN2laLy9BSVMwUWdrOHdIeDlpZ2lxdXl1R0RrTU9oQjZlNm0rL3NCTXBraEFFZ3lTZ0dGZjNlQit0S1F4OW81RzJPdGI1NXdWQk80NjBFTXZKcFlPekV2TW1YNUdUdkFJTk1rMG5MQ2tBKzZBQ1NEbk5UL1VkSmcxT01KSjdFaWJDVlJ2N2o1VkZKdUc1TGVReHV6SEIyWlJzdzhSdFVzMjZZNStzc24wMnhIN01ZK2xLSWxQTm5POU8xdHcvSDJhOHp5YzNmdU1DbFEwSzNBL1d5K2VNVlhNeHZLeXBoVFQzb2Q5T3R0TWhua0tGMXloWTRPM2hYR2JTYlpHUldtbEhONWpOS2JXeWl0MUlXU1RsZmNsdCtnOHFCeml1QzA2TVhram1COW1XSitWMXo0RVZZT2o2M3JTd2t6MjBXb1JEN3JSbnNwY1lHQnkvZFBmdmtHcTZ0M0NNQ1FOL0w4S25PZzNiODI4bUF3SVV0K3h0M2U3TkJLZE40ZzAvVUpDcnFiUzVSZ2hodTFLT0dQUUxuWmlmSW1ucW1pM2xqTndTeXhTRm5HTVlQVHY5KzRwM29DaWlpZ2pYRTZzMHlnazhqVzVYSG56alA0RTFCZVA1MHN1R1RFbjNwVGdEZnFlcCtXMVQ3WDVndW9Xc0xxQWp4c1E1N2pucCtGVmg2VTVHUzIwNkJtOXBtTEVlQXdjRDhhQ08rajZ4TW11ZXRuWVFsVUhqek1jZlROV2V0c0gwYS9qUFZHVnZoazFGdlI1WU5IcDl0SXcvWHp0UDA2QlJ5ajhRYW4wVUlQcmNJR2UxalB6RkF4TFAydHJidStlU1pleGNqOWx4dHpEOEtjWGpOdncra1NqTWtqaEZQdnBxczFFMm4zbHN4OXFNOW9uOHhUdnBoOWZ0N1FuY3c3Tjd4MzBHVWo5V3RydEFRUkRiaVBJSHovR215ZjdIaEtOeDFkbUh6TlBWME9UVE5Sa3dSekRxZmVLYU5Wanh3bkFFL1lreWNVRkdhbkMxcnFWeEdkc09TTi9IY2ZXclNqdlRlNkhhTnpEN1dCZVZ6M1BqcDh4dDUxQXVMN1V4WHNOeUJ0TW1DZk5hVWNQMzVPaXZBellDU0hsYlBUdit0QklIdXZXcjJHWnZ2T015ZTlkajlLZmVEZ1R4TFl0dVY3YmJ5Mk5RL1RtOVl1cEMyd1FGdmlldjBxYzhGQUhXYlk0MjdZRWZJMEZnNm5neHpnNzdBZ2VKRy84QUtvN2I0T2t1NFQ3TW9XWWpibUdPbng2ZTRVdTRoMVNPMmtuUUVjeWpIeHdEVFBhWGd1dUZMNGh3STR3NGJHTnRzNDhzRDYwRlA4UHhtOTR2dHBKUGJBbU16ZTRaUDVWZFZuYjluWVdoSTNCN1Q0bXF6OUd0aUxuVWIyWTR5a0t4ai9qTytQbFZ2WEVZalVBREFBMjhxQmsxRnZVK0pVbTZKS01uekRWdFlONnBlWGxvTWUxOXozVm5pR012YTIxeUFlZGNLYTRNL05OYVhpQS9kQWVnZklMWVJtemgvY0djRHVwQllaZTgxTmgzaGdQaFQ1YmxaWm81Vjc5ODB5NlpHUmUzYUh2bGI4YUNxK0xiY1NhZEsrRHp4U0JzL0dtVGcvVVBWZFFudDJZY2swZTQ4eDBxWjY1YkNVWDF2Z0RtRGRmTEpxdE5NZnNOWGpCMjNLbWdtVjVkTTh6eGcrMlFGQjg4N1ZZUG8yQi9UdHp6ZGZWZ1AvV3RWYkxJRTFLM0xIYm1CNjFhWG8wZnRPSUx0dTR3RC84QU5hQ0thUXlYV3QydVJ0UGZGaVBITFkrZ0ZUbldyZ3hhWkt4NjRKTlY3d1BkTmZhL2J0S0FDczAyQVA3cGJCL0NwVnhQZG45RHUyY2N5RTBGT2E5Zjh0dEtBRHpzM0tDUFAvMnFHa2xqbnZOVERVTGVLOHRvd3hWVHo4em52SUdhUUxEWjI0NVlJQVcvZmZjbXBKSTNsbmNwSmZqbHBURzNzV2xMY3A1c2dIdnBjYmd5RUFucFRmZk1pUmNvVWMzZlN6VHJmdDlPUzRSQTU1aXJEd3hWWU9PbWFtMXJNVjV0bTYxTWwxTlhzaG45M0JIZlVCRVAybzVvZ1BoVXMwVnJVcWl2YklTVGptYndvRnRvMi9NVGtIcFY1NmZkeFFXRFRTTjdLcm5mM2IxVTZQbzZ3cW90b1J5amZyN1JyaHJQR00zNlA5VWdmQllZT080ZUZCSE9JMXRkVW11V2tRTXJTc3lud0dTYW1mQlZnMHZvUDFXMHQrZGo2ek1SanJzVVkvU3F3djcxbGp4a2ttcmo5RkE1L1JqY3F4MmU3bUJKOHdnb0lwcEVISnBzZHhNdkswamZaTGsrMHAzelRzcEFPdzdoanpOTXFTdW1vaXprbGFWSUNWUUU3QUtlNm44S3JCbXhoZXVlN0ZCajdveGdrMWhaY3Z5WUpBSFVHc3lSTUVMWndjWjVTSzU0T0RzYytZL25RZCtkdWlIYjUxZ0QyY1lQeEc5Y1VmQTJQWDRWMFZpd3pnc2UvQm9BbkdRVHk0emcvd0Fxd1RoQnZuSTZucjhxQ2ZjTWJjdGFBZ0U1eG5CNjBHZzVNOHpBZ1kvMFBsWE1vU2Z2Z0hicjE4ZnkrVmRPWDJsQUdXeWQ2NTh3NmtIM1lvTXZDYzh5akdNZkQ0Vkx1SUZZY0k2R0dQUHlxdk50OTc3T29oejl4YmJyNFZLZUo3NFdYQy9Ebk0vS2t6Q01oaDErei9DZ2l1T2JQTmpIY01kYTAvYXh5OHVlZzhhN3pRWTVuQkNnZlBGSitWU1ZJM3gzMEdWbEgzTnhrZUZkU0E4WmprQmRTY2p4WHpGQ0JNNE9DQjF3ZHpXSEFkUjNaeDMwQ0NlM2t0eGtNWGpKMmZvUGNmQ2tyU2tITE5uYW5qbEpVNVhLc044OUNLUlhlbmhVYWEzejJmN1M0eVZ3Ti9oUUpCY2NuS01BSHVyRE9uVWI0cE9NdHNwd001ei9BSzhxMkRjdlRIVE9TZW9IaFFMck8ya25rUVErMFRqWUg0Vk10STB5NGlnTFN6ckdDUUNyYm5IK2pVUXNwdXlRZ0E1eDF6MDM2L2hUc05UbDdQczRwZVZSbGNFOVR0UVdGYVdpSk5iczA2SDJnN0VJUmtnZ2Z6cVFWVk9oYXhkL3BMVG9lZGloa1VFNThXV3JXb0NpaWlnaDNGdDRMZlg5SVJzRlNHSUI4U2NmenF0dlN3Vy9TOWdHT2N3TTJNLzNxdSs2MHV4dmJpRzR1cldPYWFEOVU3amRQZFNMVU9GTkIxYVZKTlEwbTJ1WFJlVldrQkpBem5IV2dpbkIrbW0wMFcwUndjeFc2cjdzKzBmeGFubFhFVnpHY2Jad2FrVWRqYXhJRWpnUlZBQUFBOE5oV0RwOW1UazI2RTBGZGxUWTYyeUhaWE9EN2pTL1N2OEFZNzJXSTU1R0pJUHZxWVRhTnB0eElKSnJLSjNIUmlEbXRocFZnR0RDMGl5Ty9Cb0dQVkkvNmt2UDd3L25UWGNLSDRabUlYT0FHRlRWN08ya2lNVHdveUhxcDZHdVEwcXdGdWJjV2tmWWtZS1lPS0R6MXhkYnROcElsM1BaT0FBTzRZM3FPOE95ci90TnV4KzhPWWVmalhwbWJoSGg2NGlhS2JSN1Y0Mis4cEJ3ZnhwSkY2UGVFSUg1NHVIckZHeGpJVnZ6b0tHMDJabzd1NFFucnR2Vmk4RzVHdFdBQXlETGtuNEdwd3ZBdkNxdVhYUWJNTVRrbmxiODZjTFhRZEtzcFVrdHJDR0owT1ZaUWNqOGFDdGVNN2tyeFJmUUsyQTNKbGZFOG9vVVRXZkMrclFjbzdKckNWMmIvd0M2UVI5S3NlNjRjMGE5dkd2TG5UYmVXNFlnbVJnY2tnWUhmNUN0MzBIU3BMZVdCckNFeFNyeXlJUWNNUEE3MEZXZWlXMFBxdDlkc3YyWmtWUTNqeWcvL3dDaFZnUy9hbGhUcHAyaGFWcE5zMXZwOWhEYlFzM09VakJBSjhldmtLVStwVzJjOWdtYUNMVHhDYTJrdG16bkpLMDBhYUN5U1c3ZFVPd3FmbXd0R2ZtTnVoYnhya21rNmZISTBpV2tTdTNVZ0hlZ2FOTm01VUNNY1kyRkpMUk9UWExsY2RSelZKbDArMFE1VzNRSHJ0UU5QdEJPWmhicDJwR0MzZmlncUhYQ1l0VnVBd081WVZWR3JRdFphdElNRWUyR0ZlcXJqaHpScnFReVQ2YmJ5TzNWbUJ5ZnhwQmM4QThKWGtuYVhIRDlsSS9UTEtmem9QUEY1TVh1N1psQlBNUDVWYXZvbW1WOVp1VkxBeUMzR1I0ZTJ0VFJlQk9GVlpHWFFiSUdQN3A1VHQrTkxkTTRjMGJScnVTNzAzVFlMVzRsWGxlU01FRmhuT092aUFhRHo5NlBiaTRYaTJWQ1Y3T0ZMbCttNDNQNTA5Y2RhOURhV3h0WTJWcGlDR1VmczlLdDJ6NEs0YTArNGU0dE5GdElabkJET2luSkI2OS9mWEs1NEI0VHZKV2t1ZEFzcFhZNUxNR0pKK2RCNVplUnpHTW5kcXd1VXl4SFFaK05lb3YrampnMy93QU4ySDhMZm5RZlJ6d2FRUWVITERCNit5MzUwSGtxVm5sYmNlK3BSdzRPejA0RGxQdFpQNDE2Sy82TStDZi9BQXpwL3dEQzM1MHBoNEM0VHQwQ1JhQlpJbzZBSzM1MEhucVMzOXJPRFdVa2xqR0ZHSzlEbmduaGc5ZERzLzRUK2RZL29Od3YvdUt6L2hQNTBIbnMzRWlqZGpTTjNZKzFrNTg2OUhuZ1RoVnV1ZzJSL3dDRnZ6clU4QThKbnJ3L1pmd3QrZEI1Y3VuYVdjK1cxWG42Tm1OdjZKN2h5TjF2SE8vK0tPcFovd0JIUEIyYy93QkhMRCtGdnpwM3M5QzB1dzAxdE90TENHR3paaXpRb0R5a25HL1h5SHlvS1UxRlJhY1lYS3YvQU5wS1dCQTJ3M2hUMUUzTW94MFhZWjZiSEg4cXNxNDRXMEs2bjdlZlNyYVNYQUhPd09jWno0MTBUaDdSNDE1VjA2QUw0WVBqbnhvS3psWXlBbkIySCtzMXdMZFhaV3o0bllrZVlxMDI0ZDBadXVtd0g0SDg2eC9SelJzNS9Sc0djWTZIODZDcWxaems1T0QzNDd2QVYzTGxjOHJ0a2V5RGpiMzFaMzlHOUYvM2JCOGorZEI0YjBVOWROdCttT2gvT2dxNW1IUTVKMjJ6OHEySkM3Z0VuenEwRHc1b3hJSjAyM3lOODRQNTFnY09hTUJnYWJCajNIODZDcjJBeG5CeWZEcFdrbnQ1N2dSdWZDclRIRGVpZ0FEVGJmQTZiSDg2RHczb3BPVHB0djhBSS9uUVZObGlTQzJjSE9NZUZPdnBIQkhBWERSenVycWMvd0RsMVlaNGEwUW5KMHkzejdqK2RkYjdRdEsxS3poczcyd2hudDRmMVViZzRUYkcyL2hRVXpwZXBIVkxOZVlZbGp4ekFEcU9sS0VHSDhqNFZhZHR3Znc3WnNXdHRIdFlpMnhLZzcvalhYK2pHaDR4K2k3Zkh1UDUwRlU1NUdLZ01UMUlIZFc0SktoZ25UcHRqTlduL1JqUS93RGRkdjhBSS9uVzM5RzlHLzNiYi9JL25RVmVvVlBhYjJsR0JnLzY2VmlNeXhvV2tJREJpVlpEMVhQczlmeHEwdjZPYU4vdTIzK1IvT3NIaHpSajEwMjMrUi9PZ3FXNTB0TGxUTGJCSTVXenpSam8zbUQzZTZtWXhNam5uUmdWUHRCdGlNVmVuOUhkSDIvcTIzMjhqK2RhUzhNYUhPL1BMcGRzN1l4a2c1K3RCU3FLcEFCQkk2REI3alhSblorWG1CR0NENCtOWEgvUlBoLy9BSFJhL3dBSi9PZzhKNkFldWtXdnlQNTBGVjZOTXo2NXBpZ3RuMW1NSHcrK0t1MDlhYUllRjlDZ21qbWkwdTNTU05nNk1BY2dqb2V0TzlBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFmLy9aJnF1b3Q7IGFsdD0mcXVvdDtZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMsIHNvcnJ5JnF1b3Q7Lz4NCjxoMz5TdHlsZXNoZWV0czo8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+ZGl2LmhlYWRlciB7IGJhY2tncm91bmQ6IHVybChbW0NHU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9waWN0dXJlLmpwZyYjMDM5OyBub3RhZz0xXV0pOyB9PC9jb2RlPjwvcD4NCjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPg0KPGgzPkhpbGZlPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5JiMwMzk7cw0KbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPGgzPlJlcXVpcmVtZW50czwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtYWtlcyBldnRlbnNpdmUgdXNlIG9mIHRoZSBHRCBJbWFnZSBwcm9jZXNzaW5nIGxpYnJhcnkgdG8gZG8gaW1hZ2UgbWFuaXB1bGF0aW9uLiAgQWRkaXRpb25hbGx5LCB0aGUge2Nnc2lfY29udmVydH0gcGx1Z2luIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHNpbXBsZXhtbCBhbmQgWE1MRG9tIGNsYXNzZXMgYnVpbHQgaW4gdG8gcGhwLiAgVGhlcmUgbWF5IGJlIG90aGVyIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgZXJyb3JzIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQsIGFuZCB0aGF0IHlvdSBoYXZlIGFuYWx5emVkIHlvdXIgZXJyb3IgbG9ncy48L3A+DQo8aDM+Q29weXJpZ2h0IHVuZCBMaXplbno8L2gzPg0KPHA+JmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj48Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4nOwokbGFuZ1snaW5mb19hbGlhc2VzJ10gPSAnQWxpYWVzIGNhbiBiZSB1c2VkIHZpYSB0aGUgYWxpYXMxIHRocm91Z2ggYWxpYXM1IG9wdGlvbnMgb24gdGhlIENHU21hcnRJbWFnZSB0YWcgdG8gY29tYmluZSBudW1lcm91cyBmcmVxdWVudGx5IHVzZWQgb3B0aW9ucyc7CiRsYW5nWydpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1NwZWNpZnkgdGhlIGRlZmF1bHQgbG9jYXRpb24gZnJvbSB3aGljaCB0byAmcXVvdDtjcm9wIHRvIGZpdCZxdW90OyB0aGlzIHdpbGwgZWZmZWN0IGFsbCBjcm9wIHRvIGZpdCBvcGVyYXRpb25zIHVubGVzcyB0aGUgbG9jYXRpb24gcGFyYW1ldGVyIG9uIHRoZSBmaWx0ZXJfY3JvcHRvZml0IGF0dHJpYnV0ZSBvdmVycmlkZXMgaXQuICBEZWZhdWx0IGxvY2F0aW9uIGlzICZxdW90O2NlbnRlciZxdW90Oyc7CiRsYW5nWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdaJmF1bWw7aGx0IGRpZSBVUkwgb2JlbiBmJnV1bWw7ciBkYXMgWndpc2NoZW5zcGVpY2hlci1WZXJ6ZWljaG5pcyAoX0NHU21hcnRJbWFnZSknOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ0JpbGQtVVJMLVByJmF1bWw7Zml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnTWF4aW1hbGVzIEFsdGVyIGVpbmVyIERhdGVpIChpbiBUYWdlbikgYmV2b3IgZXMgZW50ZmVybnQgdW5kIG5ldSBlcnpldWd0IHdpcmQuIE4mdXVtbDt0emxpY2gsIHdlbm4gZGllIEVpbnN0ZWxsdW5nZW4gdmVyJmF1bWw7bmRlcnQgd3VyZGVuIG9kZXIgdW0gZGllIEdyJm91bWw7JnN6bGlnO2UgZGVzIGdlbnV0enRlbiBTcGVpY2hlcnBsYXR6ZXMgenUga29udHJvbGxpZXJlbi4nOwokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnVGhpcyBzZWxlY3Rpb24gZGV0ZXJtaW5lcyBob3cgdGhlIHtzbWFydGltZ30gdGFnIHdpbGwgZ2VuZXJhdGUgb3V0cHV0LiAgSWYgJnF1b3Q7bm9uZSZxdW90OyBpcyBzZWxlY3RlZCBubyBpbWFnZSBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQuICBJZiAmcXVvdDtzbWFydCZxdW90OyBpcyBzZWxlY3RlZCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCBkZWNpZGUgYmFzZWQgb24gdGhlIGltYWdlIHNpemUsIHR5cGUsIGFuZCB0aGUgYnJvd3NlciB0aGF0IGlzIHJlcXVlc3RpbmcgdGhlIGltYWdlLiAgT3RoZXIgb3B0aW9ucyBpbmNsdWRlIGFsd2F5cyBlbWJlZGRpbmcgYmFzZWQgb24gdGhlIGltYWdlIHNpemUsIG9yIHRoZSBpbWFnZSB0eXBlLic7CiRsYW5nWydpbmZvX2VtYmVkX3NpemVsaW1pdCddID0gJ0lmIHRoZSBlbWJlZGRpbmcgb3B0aW9uIGlzIGRldGVybWllZCBieSB0aGUgaW1hZ2Ugc2l6ZSwgc3BlY2lmeSB0aGUgbWF4aW11bSBzaXplIChpbiBraWxvYnl0ZXMpIGZvciBpbWFnZXMgdG8gYmUgZW1iZWRkZWQgKDMyIGlzIHJlY29tbWVuZGVkKS4nOwokbGFuZ1snaW5mb19lbWJlZF90eXBlcyddID0gJ0lmIHRoZSBlbWJlZGRpbmcgb3B0aW9uIGlzIGRldGVybWluZWQgYnkgdGhlIGltYWdlIHR5cGUsIHNwZWNpZnkgdGhlIGV4dGVuc2lvbnMgb2YgdGhlIGZpbGVzIHRoYXQgc2hvdWxkIGJlIGVtYmVkZGVkIGhlcmUgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gIFRoaXMgb3B0aW9uIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1dlbm4gSWhyIENETiBkaXJla3QgYXVmIGRhcyBad2lzY2hlbnNwZWljaGVyLVZlcnplaWNobmlzIHZlcndlaXN0LCBrJm91bWw7bm50ZSBkaWVzZSBPcHRpb24gaGlsZnJlaWNoIHNlaW4uJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1VSTCBkZXIgQmlsZGVyLiBTdGFuZGFyZG0mYXVtbDsmc3psaWc7aWcgaXN0IGRpZXMgZGllIFVwbG9hZC1VUkwuIFZlcndlbmRlbiBTaWUgZWluIENETiAob2RlciBtZWhyZXJlIERvbWFpbnMsIGRpZSBhdWYgZGFzIHNlbGJlIFZlcnplaWNobmlzIHZlcndlaXNlbikgayZvdW1sO25uZW4gU2llIGhpZXIgZWluIGVpbmUgYW5kZXJlIFVSTCBmZXN0bGVnZW4uJzsKJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICdNYXhpbWFsZXMgQWx0ZXIgZGVyIERhdGVpZW4gaW0gWndpc2NoZW5zcGVpY2hlciAoVGFnZSknOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFaW4gTW9kdWwgenVyIHNjaGxhdWVuIEVyemV1Z3VuZyB2b24gQmlsZGVybiBmJnV1bWw7ciBDTVMgTWFkZSBTaW1wbGUnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzZSBha3R1YWxpc2llcnQnOwokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ1p3aXNjaGVuc3BlaWNoZXIgZ2VsZWVydC4gJWQgRGF0ZWllbiBlbnRmZXJudC4nOwokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ1p3aXNjaGVuc3BlaWNoZXIgZW50ZmVybnQnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ0VpbnN0ZWxsdW5nZW4gYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ25vbmUnXSA9ICdLZWluZXInOwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGlvbmVuJzsKJGxhbmdbJ3BhcmFtX2FsaWFzJ10gPSAnVGhlIENHU21hcnRJbWFnZSBhZG1pbiBwYW5lbCBhbGxvd3MgY3JlYXRpbmcgbnVtZXJvdXMgY29tbWFuZCBhbGlhcyB0byBjb21iaW5lIGEgZnJlcXVlbnRseSB1c2VkIHBhdHRlcm4gb2YgYXJndW1lbnRzIGludG8gb25lIG5hbWUuICBUbyB1c2UgdGhlc2UgYWxpYXNlcyB1c2UgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYWxpYXMjIz1hbGlhc19uYW1lIGkuZTogIGFsaWFzMT1mb28gYWxpYXMyPWZvby4nOwokbGFuZ1sncGFyYW1fYWx0J10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgYWx0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0mcXVvdDtmYW5jeWJveCB0aHVtYm5haWwmcXVvdDsnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JsdXInXSA9ICcoaXJnZW5kd2FzKSBHZWJlbiBTaWUgZWluZW4gYmVsaWViaWdlbiBXZXJ0IGVpbiBmJnV1bWw7ciBkaWVzZW4gUGFyYW1ldGVyIHp1bSBIaW56dWYmdXVtbDtnZW4gZWluZXMgV2VpY2h6ZWljaG51bmdzZmlsdGVyIGF1ZiBkYXMgQmlsZCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhHYW56emFobCkgRXJoJm91bWw7aGVuIFNpZSBkaWUgSGVsbGlna2VpdCBkZXMgYmVhcmJlaXRldGVuIEJpbGRlcyBkdXJjaCBkZW4gYW5nZWdlYmVuIEdhbnp6YWhsLVdlcnQnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbG9yaXplJ10gPSAnKHIsZyxiWyxhbHBoYV0pIC0gV2llIGZpbHRlcl9ncmV5c2NhbGUsIGplZG9jaCBrJm91bWw7bm5lbiBTaWUgZGllIEZhcmJlIHVuZCBkZW4gQWxwaGEtV2VydCBiZXN0aW1tZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKEdhbnp6YWhsKSBWZXImYXVtbDtuZGVydCBkZW4gS29uc3RyYXN0IGRlcyBCaWxkZXMgdW0gZGllIGFuZ2VnZWJlbmUgR2FuenphaGwnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHQpIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIGNlbnRlciBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGlyZ2VuZHdhcykgS2FudGVuIGltIEJpbGQgaGVydm9yaGViZW4uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lbWJvc3MnXSA9ICcoaXJnZW5kd2FzKSBCaWxkIHByJmF1bWw7Z2VuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9mbGlwJ10gPSAnKG1vZGUpIC0gUGVyZm9ybSBhIGZsaXAgb24gdGhlIHNwZWNpZmllZCBpbWFnZS4gIFNwZWNpZnkgMCBmb3IgaG9yaXpvbnRhbCwgMSBmb3IgdmVydGljYWwsIGFuZCAyIGZvciBmbGlwIGluIGJvdGggZGlyZWN0aW9ucy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2dyYXlzY2FsZSddID0gJyhhbnl0aGluZykgQmlsZCBpbiBHcmF1c3R1ZmVuIHVtd2FuZGVsbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIFZlcnN1Y2h0IGVpbmVuICZxdW90O2dlemVpY2huZXQmcXVvdDstRWZmZWt0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoYW55dGhpbmcpIEJpbGQgaW5zIE5lZ2F0aXYgdW1rZWhyZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJdIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPg0KICA8bGk+dyxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIHdpZHRoICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9dyw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gd2lkdGggb2YgODAgcGl4ZWxzLjwvbGk+DQogIDxsaT5oLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgaGVpZ2h0ICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9aCw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gaGVpZ2h0IG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+Yyx4LHkgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgY3VzdG9tIHNpemUgKHdpdGhvdXQgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBpLmU6IHJlc2l6ZT1jLDUwLDc1IHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB0aGF0IGlzIDUweDc1IHBpeGVscy48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUsY29sb3IpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBhbmQgYSBjb2xvciB0byBmaWxsIHRoZSBlbXB0eSBwaXhlbHMgd2l0aC4gIFRoZSBpbWFnZSBpcyByb3RhdGVkIGFib3V0IGl0cyBjZW50ZXIuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3VuZGVkY29ybmVycyddID0gJyhyYWRpdXMpIFNwZWNpZnkgYW4gaW50ZWdlciByYWRpdXMgKGluIHBpeGVscykgZm9yIHJvdW5kaW5nIHRoZSBjb3JuZXJzLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKGlyZ2VuZHdhcykgV2Fzc2VyemVpY2hlbiAod2llIGluIGRlbiBFaW5zdGVsbHVuZ2VuIHZvbiBDR0V4dGVuc2lvbnMgZGVmaW5pZXJ0KSBhdWYgZGFzIEJpbGQgYW53ZW5kZW4nOwokbGFuZ1sncGFyYW1faGVpZ2h0J10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSZxdW90O3NvbWV0YWcmcXVvdDsnOwokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUge2Nnc2lfY29udmVydH0gdGFnIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSBoZWlnaHQgZm9yIHRoZSBjb252ZXJ0ZWQgaW1hZ2VzJzsKJGxhbmdbJ3BhcmFtX21heF93aWR0aCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUge2Nnc2lfY29udmVydH0gdGFnIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMnOwokbGFuZ1sncGFyYW1fbmFtZSddID0gJ1ZlcndlbmRldCBiZWkgZGVyIEVyc3RlbGx1bmcgZWluZXMgaW1nLVRhZ3MsIGdlYmVuIFNpZSBkZW4gV2VydCBmJnV1bWw7ciBkYXMgbmFtZSBBdHRyaWJ1dC4nOwokbGFuZ1sncGFyYW1fbm9hdXRvJ10gPSAnQXR0cmlidXRlIGYmdXVtbDtyIGRhcyBpbWctVGFnIG5pY2h0IGF1dG9tYXRpc2NoIGJlcmVjaG5ldC4gRGllcyBrJm91bWw7bm50ZSBkYXp1IGYmdXVtbDtocmVuLCBkYXNzIElocmUgU2VpdGUgbmljaHQgbWVociB2YWxpZGllcnQsIHdlbm4gdmVycGZsaWNodGVuZGUgQXR0cmlidXRlICh3aWR0aCwgaGVpZ2h0LCBhbHQpIG5pY2h0IGFuZ2VnZWJlbiBzaW5kLic7CiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ3dlbm4gQnJlaXRlIHVuZCBIJm91bWw7aGUgUGFyYW1ldGVyIGFuZ2VnZWJlbiB3ZXJkZW4sIHdpcmQgZGllc2VyIFBhcmFtZXRlciBkaWUgYXV0b21hdGlzY2hlIFNrYWxpZXJ1bmcgZGVzIEJpbGRlcyBkZWFrdGl2aWVyZW4uJzsKJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX25vZW1iZWQnXSA9ICdGb3JjZSB0aGUgaW1hZ2UgdG8gbm90IGVtYmVkLiAgUmVnYXJkbGVzcyBvZiBzZXR0aW5ncyBpbiB0aGUgYWRtaW4gcGFuZWwsIHRoZSBVUkwgYW5kIHRhZyBnZW5lcmF0ZWQgd2lsbCBiZSB0byBhIGZpbGUgb24gdGhlIHNlcnZlci4gIE5vIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZCc7CiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0RvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnS2VpbiBpbWctVGFnIGF1c2dlYmVuLCBudXIgZGllIFVSTCB6dW0gQmlsZC4gS2VpbiBFZmZla3QsIHdlbm4gQ0dTbWFydEltYWdlcyBpbiBlaW5lbSBTdHlsZXNoZWV0IHZlcndlbmRldCB3aXJkLic7CiRsYW5nWydwYXJhbV9vdmVyd3JpdGUnXSA9ICdad2lzY2hlbnNwZWljaGVyIGRlYWt0aXZpZXJlbiB1bmQgTmV1YmVyZWNobnVuZyBhbGxlciBGaWx0ZXIgZXJ6d2luZ2VuJzsKJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdRdWFsaXQmYXVtbDt0IGRlcyBCaWxkZXMuIEVpbiBXZXJ0IHp3aXNjaGVuIDAgdW5kIDEwMC4gRGllIFZvcmVpbnN0ZWxsdW5nIGlzdCA3NS4nOwokbGFuZ1sncGFyYW1fcmVsJ10gPSAnVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0mcXVvdDthbGJ1bSZxdW90Oyc7CiRsYW5nWydwYXJhbV9zcmMnXSA9ICdTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6DQo8dWw+DQogIDxsaT5GaXJzdCBsb29rIHRvIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHNyYyB2YWx1ZSBleGlzdHMgYXMgYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtLjwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgcm9vdF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSBzc2xfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSZxdW90O2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oyc7CiRsYW5nWydwYXJhbV90aXRsZSddID0gJ1RpdGVsLUF0dHJpYnV0IGYmdXVtbDtyIGRhcyBpbWctVGFnIChvcHRpb25hbCksIHouIEIuIDxjb2RlPnRpdGxlPSZxdW90O0RpZXMgaXN0IGRlciBUb29sdGlwJnF1b3Q7PC9jb2RlPic7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgd3VyZGUgaW5zdGFsbGllcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGUgRGF0ZW4gZGllc2VzIE1vZHVscyB3dXJkZW4gZW50ZmVybnQuJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTdGFuZGFyZGJlcmVpY2ggZiZ1dW1sO3IgJmJkcXVvO0Jlc2NobmVpZGVuIHVuZCBBbnBhc3NlbiZsZHF1bzsnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0Jhc2llcmVuZCBhdWYgQmlsZGdyJm91bWw7JnN6bGlnO2UnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NtYXJ0LU1vZHVzLCBhYmVyIEJpbGRnciZvdW1sOyZzemxpZztlIGJlc2NociZhdW1sO25rZW4nOwokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdCaWxkdHlwLWJhc2llcmVuZCc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICd1bnRlbiBsaW5rcyc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ3VudGVuIG1pdHRpZyc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0J10gPSAndW50ZW4gcmVjaHRzJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ21pdHRpZyBsaW5rcyc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlciddID0gJ21pdHRpZyc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnbWl0dGlnIHJlY2h0cyc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGxlZnQnXSA9ICdvYmVuIGxpbmtzJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnb2JlbiBtaXR0aWcnOwokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ29iZW4gcmVjaHRzJzsKJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnR3Imb3VtbDsmc3psaWc7ZW4mYXVtbDtuZGVydW5nJzsKJGxhbmdbJ3NtYXJ0J10gPSAnYXV0b21hdGlzY2gnOwokbGFuZ1snc3VibWl0J10gPSAnQWJzZW5kZW4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzIzMTYzNDU2LjEzMjM4MDk4MDEuMTMyMzgwOTgwMS4xMzIzODA5ODAxLjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzIzODA5ODAxLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSB2aWQmZWFjdXRlOyc7CiRsYW5nWydhZGRfcm93J10gPSAnQWpvdXRlciB1bmUgbGlnbmUnOwokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyZuYnNwOyc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXMmbmJzcDsnOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBUT1VURVMgbGVzIGltYWdlcyBlbiBjYWNoZSA/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ1N1cHByaW1lciB0b3VzIGxlcyBmaWNoaWVycyc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdTdXBwcmltZXIgbWFpbnRlbmFudCc7CiRsYW5nWydkZWxldGUnXSA9ICdFZmZhY2VyJzsKJGxhbmdbJ2VtYmVkZGluZyddID0gJ0ltYWdlcyBpbnQmZWFjdXRlO2dyJmVhY3V0ZTtlcyc7CiRsYW5nWydlbWJlZGRpbmdfbW9kZSddID0gJ01vZGUgZCYjMDM5O2ludCZlYWN1dGU7Z3JhdGlvbiBkZXMgaW1hZ2VzIChhdSBzZWluIGR1IGNvZGUgSFRNTCknOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnVGFpbGxlIGxpbWl0ZSBkZXMgaW1hZ2VzIGludCZlYWN1dGU7Z3ImZWFjdXRlO2VzIChLbykgJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnVHlwZShzKSBkJiMwMzk7aW1hZ2UocykgaW50JmVhY3V0ZTtncmFibGUocykgJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdOb20gZCYjMDM5O2FsaWFzIGR1cGxpcXUmZWFjdXRlOyBwb3VyIGwmIzAzOTthbGlhcyBkZSBsYSBsaWduZSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub25hbWVfYXRyb3cnXSA9ICdBdWN1biBub20gbiYjMDM5O2EgJmVhY3V0ZTt0JmVhY3V0ZTsgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyBwb3VyIGwmIzAzOTthbGlhcyAmYWdyYXZlOyBsYSBsaWduZSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdBdWN1bmUgb3B0aW9uIG4mIzAzOTthICZlYWN1dGU7dCZlYWN1dGU7IHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlIHBvdXIgbCYjMDM5O2FsaWFzICZhZ3JhdmU7IGxhIGxpZ25lICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlIGQmIzAzOTsmYWNpcmM7Z2UgaW52YWxpZGUuLi4gQXVjdW5lIG9wJmVhY3V0ZTtyYXRpb24gciZlYWN1dGU7YWxpcyZlYWN1dGU7ZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdVbiBwYXJhbSZlZ3JhdmU7dHJlIHJlcXVpcyBlc3QgbWFucXVhbnQgb3UgaW52YWxpZGUgOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdQYXJhbSZlZ3JhdmU7dHJlIGludmFsaWRlIGRhbnMgbCYjMDM5O2FwcGVsIDogJXMnOwokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdMZSBmaWNoaWVyIHN1aXZhbnQgbiYjMDM5O2EgcGFzICZlYWN1dGU7dCZlYWN1dGU7IHRyb3V2JmVhY3V0ZTsgOiAlcyc7CiRsYW5nWydlcnJvcl9yZW1vdGVmaWxlJ10gPSAnUHJvYmwmZWdyYXZlO21lIGRlIHImZWFjdXRlO2N1cCZlYWN1dGU7cmF0aW9uIGR1IGZpY2hpZXIgZGlzdGFudCBkZXB1aXMgJXMnOwokbGFuZ1snZXJyb3JfdW5rbm93bmZpbHRlciddID0gJ1RyYWl0ZW1lbnQgZCYjMDM5O2ltYWdlcyAtIEZpbHRyZSBpbmNvbm51IDogJXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnVHJhaXRlbWVudCBkJiMwMzk7aW1hZ2VzIChDRyknOwokbGFuZ1snZ2VuZXJhbCddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JhbCc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4NCjxwPkNlIG1vZHVsZSBmb3Vybml0IHVuZSBtYW5pJmVncmF2ZTtyZSBzaW1wbGUgZGUgdHJhaXRlciBldCBhZmZpY2hlciBkZXMgaW1hZ2VzIHN1ciB2b3RyZSBzaXRlLiBJbCB2b3VzIHBlcm1ldCBsZSB0cmFpdGVtZW50IGV0IGxlIG1hcnF1YWdlIGQmIzAzOTtpbWFnZXMgKGZpbGlncmFuZSkgZGUgZmEmY2NlZGlsO29uIHNpbXBsZS4gSWwgZGlzcG9zZSAmZWFjdXRlO2dhbGVtZW50IGRlIGZvbmN0aW9ucyBwb3VyIGFtJmVhY3V0ZTtsaW9yZXIgbGVzIHBlcmZvcm1hbmNlcyBkZSB2b3RyZSBzaXRlLCBsZSByZW5kYW50ICZhZ3JhdmU7IGxhIGZvaXMgcHVpc3NhbnQgZXQgcmFwaWRlLjwvcD4NCjxoMz5Gb25jdGlvbm5hbGl0JmVhY3V0ZTtzPC9oMz4NCjx1bD4NCjxsaT5EZXMgZmlsdHJlcyBkJiMwMzk7aW1hZ2VzIHB1aXNzYW50cyBldCBzaW1wbGVzICZhZ3JhdmU7IHV0aWxpc2VyIDoNCiAgPHVsPg0KICAgIDxsaT5GbG91PC9saT4NCiAgICA8bGk+THVtaW5vc2l0JmVhY3V0ZTs8L2xpPg0KICAgIDxsaT5Db2xvcmlzYXRpb248L2xpPg0KICAgIDxsaT5Db250cmFzdGU8L2xpPg0KICAgIDxsaT5SZWNhZHJhZ2U8L2xpPg0KICAgIDxsaT48c3Ryb25nPlJlY2FkcmFnZSB2ZXJzIGRpbWVuc2lvbnMgc2Fpc2llczwvc3Ryb25nPjwvbGk+DQogICAgPGxpPkQmZWFjdXRlO3RlY3Rpb24gZGVzIGJvcmRzPC9saT4NCiAgICA8bGk+Qm9zc2VsYWdlPC9saT4gDQogICAgPGxpPk5pdmVhdXggZGUgZ3JpczwvbGk+DQogICAgPGxpPk1lYW4gUmVtb3ZhbDwvbGk+DQogICAgPGxpPk4mZWFjdXRlO2dhdGlmPC9saT4NCiAgICA8bGk+UGl4JmVhY3V0ZTtsaXNhdGlvbjwvbGk+DQogICAgPGxpPlJlZGltZW5zaW9ubmVtZW50PC9saT4NCiAgICA8bGk+Um90YXRpb248L2xpPg0KICAgIDxsaT5GbG91IHMmZWFjdXRlO2xlY3RpZjwvbGk+DQogICAgPGxpPkFtJmVhY3V0ZTtsaW9yYXRpb248L2xpPg0KICAgIDxsaT5GaWxpZ3JhbmU8L2xpPg0KICA8L3VsPg0KPC9saT48YnIvPg0KPGxpPlNtYXJ0IGRldGVjdGlvbiBvZiBpbWFnZXMuICBTcGVjaWZ5IGFic29sdXRlIFVSTFMsIGFic29sdXRlIHBhdGhzLCBvciBmaWxlcyByZWxhdGl2ZSB0byB5b3VyIHJvb3QgaW5zdGFsbGF0aW9uLjwvbGk+DQo8bGk+U21hcnQgYXV0b21hdGljIHJlc2l6aW5nIChhdXRvbWF0aWNhbGx5IHJlc2l6ZSB0byBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgYmVmb3JlIHNlcnZpbmcgdGhlIGltYWdlLi4uIHJlc2l6aW5nIHRvIHdpZHRoIEFORCBoZWlnaHQgZG9lcyBhIGNyb3AgdG8gZml0LiA8ZW0+KGp1c3Qgc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgaGVpZ2h0IHBhcmFtZXRlciB0byB0aGUgQ0dTbWFydEltYWdlIHRhZy4pPC9lbT48L2xpPg0KPGxpPkxlY3R1cmUgYXV0b21hdGlxdWUgZGVzIGluZm9ybWF0aW9ucyBFWElGIGV0IGNvcnJlY3Rpb24gYXV0b21hdGlxdWUgZGUgbCYjMDM5O29yaWVudGF0aW9uLjwvbGk+DQo8bGk+RyZlYWN1dGU7biZlYWN1dGU7cmF0aW9uIGRlcyBhdHRyaWJ1dHMgcG91ciBsZXMgaW1hZ2VzLjwvbGk+DQo8bGk+TGVzIGltYWdlcyB0cmFpdCZlYWN1dGU7ZXMgc29udCBtaXNlcyBlbiBjYWNoZSBwb3VyIHVuIGFmZmljaGFnZSBwbHVzIHJhcGlkZS48L2xpPg0KPGxpPlRoZSBhYmlsaXR5IHRvIHVzZSBhIHNlcGFyYXRlIFVSTCAoQ0ROKSBmb3Igc2VydmluZyBpbWFnZXM8L2xpPg0KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBsaW1pdCBlbWJlZGRpbmcgaW1hZ2VzIHNtYXJ0bHksIG9ubHkgdG8gYnJvd3NlcnMgdGhhdCBhcmUgY2FwYWJsZSBvZiB1bmRlcnN0YW5kaW5nIHRoZW0uPC9saT4NCjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPg0KPGxpPkZvbmN0aW9ubmUgYXVzc2kgYXZlYyBsZXMgZmV1aWxsZXMgZGUgc3R5bGUgZW4gdXRpbGlzYW50IGxlIHRhZyB7Y21zX3N0eWxlc2hlZXR9PC9saT4NCjxsaT5UaGUgYWJpbGl0eSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGluc2lkZSBhIGJsb2NrIG9mIGh0bWwgY29kZSB1c2luZyB0aGUge2Nnc2lfY29udmVydH0gYmxvY2sgdGFnLjwvbGk+DQo8bGk+UGx1cy4uLjwvbGk+DQo8L3VsPg0KPGgzPlBvdXJxdW9pIGwmIzAzOTt1dGlsaXNlciA/PC9oMz4NCjxwPklsIHkgYSA0IGJvbm5lIHJhaXNvbnMgZCYjMDM5O3V0aWxpc2VyIGNlIHBsdWdpbiA6PC9wPg0KPHVsPg0KICA8bGk+UGVyZm9ybWFuY2UgOiAgVXNpbmcgaW1hZ2UgZW1iZWRkaW5nIChldmVuIGlmIG5vIG90aGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCkgcmVzdWx0cyBpbiBmZXdlciByZXF1ZXN0cy4gIE1vc3QgYnJvd3NlcnMgb25seSBwZXJmb3JtIHR3byB0byBmb3VyIHNpbXVsdGFuZW91cyByZXF1ZXN0cyB0byB0aGUgc2FtZSBkb21haW4gYXQgdGhlIHNhbWUgdGltZS4gIEZvciB3ZWIgcGFnZXMgd2l0aCBsb3RzIG9mIGltYWdlcyB0aGlzIGNhbiBzZXJpb3VzbHkgc2xvdyBkb3duIHlvdXIgc2l0ZS48L2xpPg0KICA8bGk+UGVyZm9ybWFuY2UgOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+DQogIDxsaT5TJmVhY3V0ZTtjdXJpdCZlYWN1dGU7IDogIENHU21hcnRJbWFnZSBjYWNoZXMgaXRzIGltYWdlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeSwgdGhlcmVieSBoaWRpbmcgdGhlIG9yaWdpbmFsIChwZXJoYXBzIGNvcHlyaWdodGVkKSBpbWFnZXMgZnJvbSB5b3VyIHVzZXJzLiAgSWYgZW1iZWRkaW5nIGlzIHVzZWQgdGhleSBjYW50IGV2ZW4gZmluZCB0aGUgY2FjaGVkIGxvY2F0aW9uKTwvbGk+DQogIDxsaT5TaW1wbGljaXQmZWFjdXRlOyA6ICBUaGUgZmlsdGVyaW5nIGNhcGFiaWxpdGllcyBvZiBDR1NtYXJ0SW1hZ2UgYWxsb3cgeW91IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgZm9yIGNvbnNpc3RlbnQgYW5kIHNlY3VyZSBkaXNwbGF5LCB3aXRob3V0IHNpdGUgZWRpdG9ycyBoYXZpbmcgdG8gcGxheSB3aXRoIHRoZW0uICBUaGV5IGNhbiB1cGxvYWQgbGFyZ2VyIGltYWdlcywgYW5kIHlvdXIgc2l0ZSB3aWxsIGp1c3QgaGFuZGxlIHRoZW0gcHJvcGVybHkuPC9saT4NCjwvdWw+DQo8aDM+Q29tbWVudCBsJiMwMzk7dXRpbGlzZXIgPzwvaDM+DQo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIFBhciBleCA6IHF1ZWxxdWUgY2hvc2UgY29tbWUgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7fTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+DQo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O3csMzUwJiMwMzk7fTwvY29kZT4uICBBcyB5b3UgbWF5IHRoaW5rLCB0aGUgd2F0ZXJtYXJrIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDMwMCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd2VzIHRoZSBpbWFnZSB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIEhUTUwgb3V0cHV0LiAgSWYgZW1iZWRkaW5nIGlzIG5vdCBwb3NzaWJsZSwgdGhlIGltZyB0YWcgd2lsbCBjb250YWluIHRoZSBVUkwgdG8gdGhlIGNhY2hlZCBpbWFnZS48L3A+DQo8cD5Gcm9tIGhlcmUgeW91IGNhbiBjb21iaW5lIHRoZSBvcHRpb25zIGJlbG93IHRvIHBlcmZvcm0gYWxvdCBvZiBkaWZmZXJlbnQgZWZmZWN0cyB0byB5b3VyIGltYWdlcywgYnVpbGQgc2ltcGxlIGdhbGxlcmllcywgYW5kIGltcHJvdmUgeW91ciBzaXRlIHBlcmZvcm1hbmNlIGF0IHRoZSBzYW1lIHRpbWUuICBFbmpveSE8L3A+DQo8aDM+UmVkaW1lbnNpb25uZW1lbnQgYXV0b21hdGlxdWUgZGVzIGltYWdlczwvaDM+DQogIDxwPklmIHlvdSBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBhIGhlaWdodCBwYXJhbWV0ZXIsIGFuZCBkbyBub3Qgc3BlY2lmeSB0aGUgJmFtcDtxdW90O25vYXV0b3NjYWxlJmFtcDtxdW90OyBwYXJhbWV0ZXIsIHRoZSBtb2R1bGUgd2lsbCBhbmFseXplIHRoZSBmaWx0ZXJzIHlvdSBoYXZlIGFscmVhZHkgc3BlY2lmaWVkLCBhbmQgaWYgdGhlcmUgaXMgbm8gcmVzaXplIGZpbHRlciBhbHJlYWR5IHNwZWNpZmllZCBhdXRvbWF0aWNhbGx5IGFkZCBhIGZpbHRlciB0byByZXNpemUgb3IgY3JvcHRvZml0IHRoZSBpbWFnZSBvbiBvdXRwdXQuICBUaGlzIGlzIHVzZWZ1bCB0byBkbyBhdXRvbWF0aWMgdGh1bWJuYWlsaW5nIG9uIHRoZSBzZXJ2ZXIsIGFuZCBub3QgcmVxdWlyZSB0aGUgYnJvd3NlciB0byByZXNpemUgdGhlIGltYWdlLjwvcD4NCiA8aDM+UiZlYWN1dGU7YWxpc2VyIHVuZSBzaW1wbGUgZ2FsZXJpZSBkJiMwMzk7aW1hZ2VzPC9oMz4NCjxwPlRoZSBjb2RlIGJlbG93IHVzZXMgdGhlIHtDR1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiAmYW1wO2x0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyZhbXA7Z3Q7e2xpdGVyYWx9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiAzOjwvc3Bhbj4gIGpRdWVyeSgmIzAzOTthLmZhbmN5Ym94JiMwMzk7KS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gey9saXRlcmFsfSZhbXA7bHQ7L3NjcmlwdCZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNjo8L3NwYW4+IHthc3NpZ24gdmFyPSYjMDM5O2ZpbGVzJiMwMzk7IHZhbHVlPSYjMDM5O3VwbG9hZHMvYWxidW0vKi5qcGcmIzAzOTt8Z2xvYn0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gODo8L3NwYW4+ICZhbXA7bHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDsmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICAmYW1wO2x0O2EgcmVsPSYjMDM5O3NpbXBsZV9hbGJ1bSYjMDM5OyBjbGFzcz0mcXVvdDtmYW5jeWJveCZxdW90OyBocmVmPSZxdW90OzxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwLDAgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCw1MDAmIzAzOTsgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiZxdW90OyZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMTo8L3NwYW4+ICA8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCwwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDE1MCYjMDM5O308L3NwYW4+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMjo8L3NwYW4+ICAmYW1wO2x0Oy9hJmFtcDtndDsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEzOjwvc3Bhbj4gey9mb3JlYWNofQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTQ6PC9zcGFuPiAmYW1wO2x0Oy9kaXYmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTU6PC9zcGFuPiB7L2lmfQ0KPC9jb2RlPjwvcHJlPjxici8+DQo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+DQo8cD5MaW5lcyAxIHRocm91Z2ggNSB1dGlsaXplIGpRdWVyeSB0byBjYWxsIGZhbmN5Ym94IG9uIGFueSBsaW5rcyB0aGF0IGhhdmUgdGhlICZhbXA7cXVvdDtmYW5jeWJveCZhbXA7cXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPg0KPHA+TGluZSA2IHVzZXMgYSBidWlsdCBpbiBwaHAgZnVuY3Rpb24gY2FsbGVkIGdsb2IsIGFuZCBzb21lIHNtYXJ0eSBtYWdpYyB0byBmaW5kIGFsbCBvZiB0aGUgSlBHIGZpbGVzIGluIHRoZSB1cGxvYWRzL2FsYnVtIGRpcmVjdG9yeSBiZWxvdyBvdXIgaW5zdGFsbGF0aW9uIHJvb3QuPC9wPg0KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4NCjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+ey9pZn08L2NvZGU+LjwvcD4NCjxwPkxpbmUgOSBiZWdpbnMgYSBsb29wIHRocm91Z2ggYWxsIG9mIHRoZSBmaWxlcyB0aGF0IHdlIGZvdW5kIGluIHRoZSBkaXJlY3RvcnkuICBUaGlzIGxvb3AgaXMgY2xvc2VkIG9uIGxpbmUgMTMuPC9wPjxici8+DQo8cD5MaW5lcyAxMCBhbmQgMTEgYXJlIHRoZSByZWFsIG1hZ2ljLiAgSGVyZSB3ZSBjcmVhdGUgYSBsaW5rIHdpdGggY2xhc3MgJmFtcDtxdW90O2ZhbmN5Ym94JmFtcDtxdW90OyBhbmQgYWRkcyB0aGUgPGNvZGU+cmVsPC9jb2RlPiBhdHRyaWJ1dGUgc28gdGhhdCBmYW5jeWJveCBrbm93cyB0aGF0IGFsbCBvZiB0aGVzZSBpbWFnZXMgc2hvdWxkIGJlIGdyb3VwZWQgdG9nZXRoZXIgYXMgb25lIGFsYnVtIGFuZCBhbGxvdyBjbGlja2luZyBiZXR3ZWVuIHRoZSBpbWFnZXMuICBUaGVuIGNvbWVzIHRoZSBwYXJ0IHdoZXJlIHdlIGRlZmluZSBvdXIgaW1hZ2VzLg0KPHA+V2Ugc3VwcGx5IHRoZSAkZmlsZSB2YXJpYWJsZSB0byB0aGUgc3JjIGFyZ3VtZW50IG9mIHRoZSA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIHNvIHRoYXQgaXQgd2lsbCBnZXQgdGhlIG5hbWUgb2YgZWFjaCBtYXRjaGVkIGpwZWcgYXMgdGhlIGxvb3AgaXMgZXhlY3V0ZWQuPC9wPg0KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MCwwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JleXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4NCjxpbWcgc3JjPSZxdW90O2RhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiZxdW90OyBhbHQ9JnF1b3Q7WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLCBzb3JyeSZxdW90Oy8+DQo8aDM+U3R5bGVzaGVldHM6PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzLCBpZiB1c2luZyB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlLiAgQmVjYXVzZSB0aGUgc21hcnR5IHN5bnRheCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgaW5zaWRlIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PmRpdi5oZWFkZXIgeyBiYWNrZ3JvdW5kOiB1cmwoW1tDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvcGljdHVyZS5qcGcmIzAzOTsgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4NCjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0IGZpbHRlcl9ncmV5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTF9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyZXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSZxdW90O21hcmdpbi1sZWZ0OiAzZW07JnF1b3Q7PjxzdHJvbmcgc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3N0cm9uZz4NCjxwPlRoaXMgdGFnIHBhcnNlcyB0aGUgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyB0byBmaW5kIHRoZSA8aW1nPiB0YWdzLiAgSXQgdGhlbiB3aWxsIG91dHB1dCBzeW50YWN0aWNhbGx5IHZhbGlkIEhUTUwgZm9yIHRoZSBzdWJzZXQgb2YgY29kZSBpdCB3YXMgcHJvdmlkZWQuICBUaGVyZWZvcmUgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIHNuaXBwZXQgb2YgSFRNTCBwYXNzZWQgdG8gdGhpcyB0YWcgYmUgaW50YWN0IGFuZCBhcyBjbG9zZSB0byB2YWxpZCBhcyBwb3NzaWJsZS4gIDxzdHJvbmc+VXNlIHdpdGggY2F1dGlvbi48L3N0cm9uZz4NCjwvZGl2Pg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UHImZWFjdXRlOy1yZXF1aXM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgbWFrZXMgZXZ0ZW5zaXZlIHVzZSBvZiB0aGUgR0QgSW1hZ2UgcHJvY2Vzc2luZyBsaWJyYXJ5IHRvIGRvIGltYWdlIG1hbmlwdWxhdGlvbi4gIEFkZGl0aW9uYWxseSwgdGhlIHtjZ3NpX2NvbnZlcnR9IHBsdWdpbiBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSBzaW1wbGV4bWwgYW5kIFhNTERvbSBjbGFzc2VzIGJ1aWx0IGluIHRvIHBocC4gIFRoZXJlIG1heSBiZSBvdGhlciBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGVycm9ycyB5b3Ugc2hvdWxkIGVuc3VyZSB0aGF0IGVycm9yIHJlcG9ydGluZyBpcyBlbmFibGVkLCBhbmQgdGhhdCB5b3UgaGF2ZSBhbmFseXplZCB5b3VyIGVycm9yIGxvZ3MuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+JmFtcDtsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4nOwokbGFuZ1snaW5mb19hbGlhc2VzJ10gPSAnTGVzIGFsaWFzIHBldXZlbnQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlO3MgdmlhIGxlcyBvcHRpb25zIGFsaWFzMSAmYWdyYXZlOyBhbGlhczUgZGVzIGJhbGlzZXMgQ0dTbWFydEltYWdlIHBvdXIgY29tYmluZXIgcGx1c2lldXJzIG9wdGlvbnMgZnImZWFjdXRlO3F1ZW1tZW50IHV0aWxpcyZlYWN1dGU7ZXMuJzsKJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3BlY2lmeSB0aGUgZGVmYXVsdCBsb2NhdGlvbiBmcm9tIHdoaWNoIHRvICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7IHRoaXMgd2lsbCBlZmZlY3QgYWxsIGNyb3AgdG8gZml0IG9wZXJhdGlvbnMgdW5sZXNzIHRoZSBsb2NhdGlvbiBwYXJhbWV0ZXIgb24gdGhlIGZpbHRlcl9jcm9wdG9maXQgYXR0cmlidXRlIG92ZXJyaWRlcyBpdC4gIERlZmF1bHQgbG9jYXRpb24gaXMgJnF1b3Q7Y2VudGVyJnF1b3Q7JzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0wmIzAzOTtVUkwgY2ktZGVzc3VzIGVzdC1lbGxlIGxlIHImZWFjdXRlO3BlcnRvaXJlIGRlIGNhY2hlIChfQ0dTbWFydEltYWdlKSA/JzsKJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdQciZlYWN1dGU7Zml4ZSBkZSBsJiMwMzk7VVJMIGRlIGwmIzAzOTtpbWFnZSAnOwokbGFuZ1snaW5mb19jYWNoZV9hZ2UnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbCYjMDM5OyZhY2lyYztnZSBtYXhpbXVtIGQmIzAzOTt1biBmaWNoaWVyLWltYWdlIChlbiBqb3VycykgYXZhbnQgcXUmIzAzOTtpbCBzb2l0IHN1cHByaW0mZWFjdXRlOyBldCByZWcmZWFjdXRlO24mZWFjdXRlO3ImZWFjdXRlOy4gQ2VjaSBlc3QgdXRpbGUgc2kgdm91cyBhdmV6IGNoYW5nJmVhY3V0ZTsgY2VydGFpbnMgcGFyYW0mZWdyYXZlO3RyZXMgZGUgZyZlYWN1dGU7biZlYWN1dGU7cmF0aW9uIGQmIzAzOTtpbWFnZXMsIG91IHBvdXIgciZlYWN1dGU7Z3VsZXIgbCYjMDM5O2VzcGFjZSBkaXNxdWUgdXRpbGlzJmVhY3V0ZTsuIFVuZSB2YWxldXIgZGUgJnF1b3Q7MCZxdW90OyBkJmVhY3V0ZTtzYWN0aXZlIGxhIHN1cHByZXNzaW9uIGF1dG9tYXRpcXVlLic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdDZSBwYXJhbSZlZ3JhdmU7dHJlIGQmZWFjdXRlO2Zpbml0IGxhIG1hbmkmZWdyYXZlO3JlIGRvbnQgbGUgbW9kdWxlIHZhIGcmZWFjdXRlO24mZWFjdXRlO3JlciBsJiMwMzk7YWZmaWNoYWdlIDoNCg0KPHVsPjxsaT5BdWN1biA6IHVuZSBiYWxpc2UgSFRNTCAmcXVvdDtpbWcmcXVvdDsgY2xhc3NpcXVlIHNlcmEgdXRpbGlzJmVhY3V0ZTtlIGV0IGwmIzAzOTtpbWFnZSBuZSBzZXJhIHBhcyBpbnQmZWFjdXRlO2dyJmVhY3V0ZTtlIGRhbnMgbGEgc291cmNlPC9saT4NCjxsaT5TbWFydCA6IGxlIHN5c3QmZWdyYXZlO21lIHZhIGludCZlYWN1dGU7Z3JlciBvdSBub24gbCYjMDM5O2ltYWdlIGRhbnMgbGUgY29kZSBzZWxvbiBzb24gcG9pZHMsIHNvbiB0eXBlIGV0IGxlIG5hdmlnYXRldXIgcXVpIGFmZmljaGUgbGEgcGFnZTwvbGk+DQo8L3VsPjxiciAvPg0KTGVzIGF1dHJlcyBtb2RlcyByJmVhY3V0ZTthbGlzZXJvbnQgdW5lIGludCZlYWN1dGU7Z3JhdGlvbiBkZSBsJiMwMzk7aW1hZ2UgYmFzJmVhY3V0ZTtlIHN1ciBsZSBwb2lkcyBvdSBsZSB0eXBlIGRlIGNlbGxlLWNpLic7CiRsYW5nWydpbmZvX2VtYmVkX3NpemVsaW1pdCddID0gJ1NpIGwmIzAzOTtpbnQmZWFjdXRlO2dyYXRpb24gZXN0IGJhcyZlYWN1dGU7ZSBzdXIgbGUgcG9pZHMgZGUgbCYjMDM5O2ltYWdlLCBwciZlYWN1dGU7Y2lzZXogaWNpIGxlIHBvaWRzIG1heGltdW0gKGVuIGtpbG8tb2N0ZXRzKSBwb3VyIGxlcyBpbWFnZXMgJmFncmF2ZTsgaW50JmVhY3V0ZTtncmVyICgzMmtvIGVzdCB1bmUgdmFsZXVyIHJlY29tbWFuZCZlYWN1dGU7ZSkuJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdTaSBsJiMwMzk7aW50JmVhY3V0ZTtncmF0aW9uIGVzdCBiYXMmZWFjdXRlO2Ugc3VyIGxlIHR5cGUgZGUgbCYjMDM5O2ltYWdlLCBwciZlYWN1dGU7Y2lzZXogaWNpIGxlcyB0eXBlcyBkJiMwMzk7aW1hZ2VzIHF1aSBkZXZyb250ICZlY2lyYzt0cmUgaW50JmVhY3V0ZTtnciZlYWN1dGU7ZXMsIGVuIGxlcyBzJmVhY3V0ZTtwYXJhbnQgcGFyIGRlcyB2aXJndWxlcy4gRXhlbXBsZSA6ICZxdW90Oy5qcGcsLnBuZywuZ2lmJnF1b3Q7LiBMYSBjYXNzZSAobWFqdXNjdWxlL21pbnVzY3VsZSkgbiYjMDM5O2VzdCBwYXMgcHJpc2UgZW4gY29tcHRlLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1NpIHZvdHJlIENETiAociZlYWN1dGU7c2VhdSBkZSBjb250ZW51KSBwb2ludGUgZGlyZWN0ZW1lbnQgdmVycyBsZSByJmVhY3V0ZTtwZXJ0b2lyZSBkZXMgaW1hZ2VzIGVuIGNhY2hlLCBhbG9ycyB2b3VzIGRldnJleiBwZXV0LSZlY2lyYzt0cmUgcGFzc2VyIGNldHRlIG9wdGlvbiAmYWdyYXZlOyAmcXVvdDtPdWkmcXVvdDsnOwokbGFuZ1snaW5mb19pbWFnZV91cmxfcHJlZml4J10gPSAnU3AmZWFjdXRlO2NpZmllIGwmIzAzOTtVUkwgJmFncmF2ZTsgYWpvdXRlciBlbiBwciZlYWN1dGU7Zml4ZSBhdXggaW1hZ2VzIGcmZWFjdXRlO24mZWFjdXRlO3ImZWFjdXRlO2VzLiBQYXIgZCZlYWN1dGU7ZmF1dCwgYyYjMDM5O2VzdCBsJiMwMzk7VVJMIGR1IHImZWFjdXRlO3BlcnRvaXJlICZxdW90O3VwbG9hZHMmcXVvdDssIG1haXMgc2kgdm91cyBhdmV6IHZvdHJlIHByb3ByZSByJmVhY3V0ZTtzZWF1IGRlIGNvbnRlbnUgKENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayksIG91IHBsdXNpZXVycyBkb21haW5lcyBwb2ludGFudCB2ZXJzIGxlIG0mZWNpcmM7bWUgciZlYWN1dGU7cGVydG9pcmUsIHZvdXMgdm91ZHJleiBwZXV0LSZlY2lyYzt0cmUgc3AmZWFjdXRlO2NpZmllciB1bmUgYWRyZXNzZSBkaWZmJmVhY3V0ZTtyZW50ZSBpY2kuJzsKJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICcmQWNpcmM7Z2UgbWF4aW11bSBkZXMgZmljaGllcnMgZW4gY2FjaGUgKGVuIGpvdXJzKSAnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdVbiBtb2R1bGUgZGUgZyZlYWN1dGU7biZlYWN1dGU7cmF0aW9uIGQmIzAzOTtpbWFnZXMgZXQgZGUgYmFsaXNlcy1pbWFnZXMgcG91ciBDTVNNUyc7CiRsYW5nWydtc2dfYWxpYXNlc191cGRhdGVkJ10gPSAnTGVzIGFsaWFzIG9udCAmZWFjdXRlO3QmZWFjdXRlOyBtaXMgJmFncmF2ZTsgam91cic7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnUiZlYWN1dGU7cGVydG9pcmUgY2FjaGUgdmlkJmVhY3V0ZTsuICVkIGZpY2hpZXJzIHN1cHByaW0mZWFjdXRlO3MnOwokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ0NhY2hlIHN1cHByaW0mZWFjdXRlOyc7CiRsYW5nWydtc2dfcHJlZnN1cGRhdGVkJ10gPSAnUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyBtb2RpZmkmZWFjdXRlO2VzJzsKJGxhbmdbJ25vbmUnXSA9ICdBdWN1bic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyZuYnNwOyc7CiRsYW5nWydwYXJhbV9hbGlhcyddID0gJ0xlIHBhbm5lYXUgZCYjMDM5O2FkbWluaXN0cmF0aW9uIGR1IG1vZHVsZSB2b3VzIHBlcm1ldCBkZSBjciZlYWN1dGU7ZXIgcGx1c2lldXJzIGFsaWFzIGRlIGNvbW1hbmRlIHF1aSBjb21iaW5lbnQgZGVzIG1vZCZlZ3JhdmU7bGVzIGQmIzAzOTthcmd1bWVudHMgZnImZWFjdXRlO3F1ZW1tZW50IHV0aWxpcyZlYWN1dGU7cywgc291cyB1biBub20uIFBvdXIgdXRpbGlzZXIgY2VzIGFsaWFzLCB1dGlsaXNleiB1biBhcmd1bWVudCBkZSBsYSBmb3JtZSBzdWl2YW50ZSA6IGFsaWFzIyM9bWluX2FsaWFzLiBQYXIgZXggOiBhbGlhczE9Zm9vIGFsaWFzMj1mb28uJzsKJGxhbmdbJ3BhcmFtX2FsdCddID0gJ1V0aWxpcyZlYWN1dGU7IGxvcnMgZGUgbGEgY3ImZWFjdXRlO2F0aW9uIGQmIzAzOTt1biB0YWcgaW1nLCBzcCZlYWN1dGU7Y2lmaWUgbGEgdmFsZXVyIGRlIGwmIzAzOTthdHRyaWJ1dCBhbHQuIE5vdGV6IHF1ZSwgc2kgY2UgbiYjMDM5O2VzdCBwYXMgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOywgdW5lIHZhbGV1ciBzZXJhIGF1dG9tYXRpcXVlbWVudCBjYWxjdWwmZWFjdXRlO2UgcG91ciBjZXQgYXR0cmlidXQgZGUgc29ydCBxdWUgbGEgcGx1cGFydCBkZXMgdGFncyBpbWcgc29pZW50IHZhbGlkZXMuIFZvdXMgcG91dmV6IGluaGliZXIgY2UgY2FsY3VsIGF1dG9tYXRpcXVlIGF2ZWMgbGEgcGFyYW0mZWdyYXZlO3RyZSAmYW1wO3F1b3Q7bm9hdXRvJmFtcDtxdW90Oyc7CiRsYW5nWydwYXJhbV9jbGFzcyddID0gJ1V0aWxpcyZlYWN1dGU7IGxvcnMgZGUgbGEgY3ImZWFjdXRlO2F0aW9uIGQmIzAzOTt1biB0YWcgPGltZz4uIFBlcm1ldCBkJiMwMzk7YWpvdXRlciB1bmUgb3UgcGx1c2lldXJzIGNsYXNzZXMgQ1NTIGF1IHRhZywgcGFyIGV4ZW1wbGUgOiBjbGFzcz0mcXVvdDtmYW5jeWJveCB0aHVtYm5haWwmcXVvdDsnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JsdXInXSA9ICcodG91dGVzIHZhbGV1cnMpIFNwJmVhY3V0ZTtjaWZpZXogdW5lIHZhbGV1ciBwb3VyIGNlIHBhcmFtJmVncmF2ZTt0cmUgcG91ciBham91dGVyIHVuIGVmZmV0IGRlIGZsb3Ugc3VyIGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhlbnRpZXIpIEF1Z21lbnRlIGxhIGx1bWlub3NpdCZlYWN1dGU7IGRlIGwmIzAzOTtpbWFnZSBnJmVhY3V0ZTtuJmVhY3V0ZTtyJmVhY3V0ZTtlIHNlbG9uIGwmIzAzOTtlbnRpZXIgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgSWRlbnRpcXVlICZhZ3JhdmU7ICZxdW90O2ZpbHRlcl9ncmV5c2NhbGUmcXVvdDsgc2F1ZiBxdWUgdm91cyBwb3V2ZXogc3AmZWFjdXRlO2NpZmllciBsYSBjb3VsZXVyIGV0IGxhIHZhbGV1ciBhbHBoYSAodHJhbnNwYXJlbmNlKSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29udHJhc3QnXSA9ICcoZW50aWVyKSBNb2RpZmllIGxlIGNvbnRyYXN0ZSBkZSBsJiMwMzk7aW1hZ2UgZyZlYWN1dGU7biZlYWN1dGU7ciZlYWN1dGU7ZSBzZWxvbiBsJiMwMzk7ZW50aWVyIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTsnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocG91cmNlbnRhZ2VbLGFsaWduZW1lbnRfaG9yaXpvbnRhbCxhbGlnbmVtZW50X3ZlcnRpY2FsXSkgLSBFZmZlY3R1ZSB1biByZWNhZHJhZ2Ugc3VyIGwmIzAzOTtpbWFnZSBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7ZS4gTGVzIHBhcmFtJmVncmF2ZTt0cmVzIGRlIHJlY2FkcmFnZSBzb250IHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtzIHNvdXMgZm9ybWUgZCYjMDM5O3VuZSBsaXN0ZSBkZSBwYXJhbSZlZ3JhdmU7dHJlcyBzJmVhY3V0ZTtwYXImZWFjdXRlO3MgcGFyIHVuZSB2aXJndWxlLiBMYSBwcmVtaSZlZ3JhdmU7cmUgdmFsZXVyIChvYmxpZ2F0b2lyZSkgZXN0IHVuIHBvdXJjZW50YWdlIGRlIGxhIHRhaWxsZSBvcmlnaW5hbGUgZGUgbCYjMDM5O2ltYWdlLiBMZSBzZWNvbmRzIHBhcmFtJmVncmF2ZTt0cmUgKG9wdGlvbm5lbCkgZG9pdCAmZWNpcmM7dHJlIGNob2lzaSBwYXJtaSAmIzAzOTtsJiMwMzk7LCAmIzAzOTtjJiMwMzk7LCBvdSAmIzAzOTtyJiMwMzk7IChyZXNwZWN0aXZlbWVudCBwb3VyIGdhdWNoZShsZWZ0KSwgY2VudHJlKGNlbnRlciksIGRyb2l0KHJpZ2h0KSkuIExlIHRyb2lzaSZlZ3JhdmU7bWUgcGFyYW0mZWdyYXZlO3RyZSAob3B0aW9ubmVsKSBkb2l0ICZlY2lyYzt0cmUgY2hvaXNpIHBhcm1pICYjMDM5O3QmIzAzOTssICYjMDM5O2MmIzAzOTssIG91ICYjMDM5O2ImIzAzOTsgKHJlc3BlY3RpdmVtZW50IHBvdXIgaGF1dCh0b3ApLCBjZW50cmUoY2VudGVyKSwgYmFzKGJvdHRvbSkpLiBDZXMgZGV1eCBkZXJuaWVycyBwYXJhbSZlZ3JhdmU7dHJlcyBzcCZlYWN1dGU7Y2lmaWVudCBsYSBwb3NpdGlvbiBhdSBzZWluIGRlIGwmIzAzOTtpbWFnZSBvcmlnaW5hbGUgJmFncmF2ZTsgbGFxdWVsbGUgYXBwbGlxdWVyIGxlIHJlY2FkcmFnZS4gZS5nLiA6IGNyb3A9MzMsYixyIHBvdXIgZWZmZWN0dWVyIHVuIHJlY2FkcmFnZSBkZSAzMyUgJmFncmF2ZTsgcGFydGlyIGR1IGJhcyBkcm9pdCBkZSBsJiMwMzk7aW1hZ2Ugb3JpZ2luYWxlLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcHRvZml0J10gPSAnKGxhcmdldXIsaGF1dGV1cikgLSBFZmZlY3R1ZSB1biByZWNhZHJhZ2Ugc3VyIGwmIzAzOTtpbWFnZSBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7ZSBwb3VyIGVuIGFkYXB0ZXIgbGEgdGFpbGxlLiBDZWxhIHRlbnRlIGRlIHJlZGltZW5zaW9ubmVyIGwmIzAzOTtpbWFnZSAmYWdyYXZlOyBsYSB0YWlsbGUgZCZlYWN1dGU7c2lyJmVhY3V0ZTtlIGVuIGdhcmRhbnQgbGUgcmF0aW8gZCYjMDM5O2FzcGVjdCwgcHVpcyByZWNlbnRyZSBsJiMwMzk7aW1hZ2UgcmVkaW1lbnNpb25uJmVhY3V0ZTtlLiBMZXMgcGFyYW0mZWdyYXZlO3RyZXMgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO3MgY29ycmVzcG9uZGVudCAmYWdyYXZlOyBsYSBoYXV0ZXVyIGV0IGxhIGxhcmdldXIgZCZlYWN1dGU7c2lyJmVhY3V0ZTtzIHBvdXIgbCYjMDM5O2ltYWdlIGRlIGRlc3RpbmF0aW9uLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyh0b3V0ZXMgdmFsZXVycykgQWNjZW50dWUgbGVzIGJvcmRzIGRlIGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZW1ib3NzJ10gPSAnKHRvdXRlcyB2YWxldXJzKSAmcXVvdDtSZXBvdXNzZSZxdW90OyBsJiMwMzk7aW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBBcHBsaXF1ZSB1bmUgcm90YXRpb24gJmFncmF2ZTsgbCYjMDM5O2ltYWdlLiAgMCA9IGhvcml6b250YWwsIDEgPSB2ZXJ0aWNhbCwgZXQgMiA9IGRhbnMgbGVzIGRldXggZGlyZWN0aW9ucy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2dyYXlzY2FsZSddID0gJyh0b3V0ZXMgdmFsZXVycykgQ29udmVydGl0IGwmIzAzOTtpbWFnZSBlbiBuaXZlYXV4IGRlIGdyaXMnOwokbGFuZ1sncGFyYW1fZmlsdGVyX21lYW5yZW1vdmFsJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBUZW50ZSBkJiMwMzk7YWpvdXRlciB1biBlZmZldCAmcXVvdDtza2V0Y2h5JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcodG91dGVzIHZhbGV1cnMpIFBhc3NlIGwmIzAzOTtpbWFnZSBlbiBuJmVhY3V0ZTtnYXRpZic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcGl4ZWxhdGUnXSA9ICcodGFpbGxlWyxhdmFuYyZlYWN1dGU7XSkgUGl4JmVhY3V0ZTtsaXNlIGwmIzAzOTtpbWFnZS4gU3AmZWFjdXRlO2NpZmlleiB1biBlbnRpZXIgcG91ciBsZSBwb2lkcyBldCB1bmUgdmFsZXVyIGJvb2wmZWFjdXRlO2VubmUgb3B0aW9ubmVsbGUgKHRydWUvZmFsc2UgLSBmYWxzZSBwYXIgZCZlYWN1dGU7ZmF1dCkgcG91ciBwZXJtZXR0cmUgdW5lIHBpeCZlYWN1dGU7bGlzYXRpb24gYXZhbmMmZWFjdXRlO2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemUnXSA9ICd0eXBlLG51bWJlclssbnVtYmVyXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiByZXNpemU9Yyw1MCw3NSB0byBjcmVhdGUgYSB0aHVtYm5haWwgdGhhdCBpcyA1MHg3NSBwaXhlbHMuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgJnF1b3Q7dHJhbnNwYXJlbnQmcXVvdDsgY2FuIGJlIHNwZWNpZmllZCB0byBmb3JjZSB0aGUgYmFja2dyb3VuZCB0byBiZSB0cmFuc3BhcmVudC4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm90YXRlJ10gPSAnKGFuZ2xlLGNvdWxldXIpIFNwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7YW5nbGUgKHNlbnMgZGVzIGFpZ3VpbGxlcyBkJiMwMzk7dW5lIG1vbnRyZSkgZGUgcm90YXRpb24gZGUgbCYjMDM5O2ltYWdlLCBldCBsYSBjb3VsZXVyIGRlIHJlbXBsaXNzYWdlIHBvdXIgbGVzIHBpeGVscyB2aWRlcy4gTGEgcm90YXRpb24gcyYjMDM5O2VmZmVjdHVlICZhZ3JhdmU7IHBhcnRpciBkdSBjZW50cmUgZGUgbCYjMDM5O2ltYWdlLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmF5b24pIFNwJmVhY3V0ZTtjaWZpZSB1bmUgdmFsZXVyIGRlIHJheW9uIChlbiBwaXhlbHMpIHBvdXIgYXJyb25kaXIgbGVzIGFuZ2xlcy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3dhdGVybWFyayddID0gJyh0b3V0ZXMgdmFsZXVycykgU3AmZWFjdXRlO2NpZmllIHF1ZSBsZSBmaWxpZ3JhbmUgKHImZWFjdXRlO2dsJmVhY3V0ZTsgZGFucyBsZSBtb2R1bGUgQ0dFeHRlbnNpb25zKSBkb2l0ICZlY2lyYzt0cmUgYXBwbGlxdSZlYWN1dGU7ICZhZ3JhdmU7IGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZhbXA7cXVvdDtub2F1dG8mYW1wO3F1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZhbXA7cXVvdDt3aWR0aCZhbXA7cXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZhbXA7cXVvdDtub2F1dG9zY2FsZSZhbXA7cXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXRpbGlzJmVhY3V0ZTsgbG9ycyBkZSBsYSBjciZlYWN1dGU7YXRpb24gZCYjMDM5O3VuIHRhZyBpbWcsIHBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIHVuIGF0dHJpYnV0IGlkICZhZ3JhdmU7IGluY2x1cmUgYXUgdGFnLiBQYXIgZXggOiBpZD0mcXVvdDttb250YWcmcXVvdDsnOwokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ1V0aWxpcyZlYWN1dGU7IHVuaXF1ZW1lbnQgYXZlYyBsYSBiYWxpc2Uge2Nnc2lfY29udmVydH0sIGNlIHBhcmFtJmVncmF2ZTt0cmUgcGVybWV0IGRlIHNwJmVhY3V0ZTtjaWZpZXIgbGEgaGF1dGV1ciBtYXguIHBvdXIgbGVzIGltYWdlcyBjb252ZXJ0aWVzJzsKJGxhbmdbJ3BhcmFtX21heF93aWR0aCddID0gJ1V0aWxpcyZlYWN1dGU7IHVuaXF1ZW1lbnQgYXZlYyBsYSBiYWxpc2Uge2Nnc2lfY29udmVydH0sIGNlIHBhcmFtJmVncmF2ZTt0cmUgcGVybWV0IGRlIHNwJmVhY3V0ZTtjaWZpZXIgbGEgbGFyZ2V1ciBtYXguIHBvdXIgbGVzIGltYWdlcyBjb252ZXJ0aWVzJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdVdGlsaXMmZWFjdXRlOyBsb3JzIGRlIGxhIGNyJmVhY3V0ZTthdGlvbiBkdSB0YWcgaW1nLCBzcCZlYWN1dGU7Y2lmaWUgbGEgdmFsZXVyIHBvdXIgbCYjMDM5O2F0dHJpYnV0IG5hbWUuJzsKJGxhbmdbJ3BhcmFtX25vYXV0byddID0gJ05lIHBhcyBjYWxjdWxlciBhdXRvbWF0aXF1ZW1lbnQgbGVzIGF0dHJpYnV0cyAod2lkdGgsIGhlaWdodCwgYWx0KSBwb3VyIGxhIGJhbGlzZSAmcXVvdDtpbWcmcXVvdDsuIENlY2kgcGV1dCBmYWlyZSBlbiBzb3J0ZSBxdWUgdm90cmUgY29kZSBuZSBzb2l0IHBhcyB2YWxpZGUgc2kgdm91cyBuZSBzcCZlYWN1dGU7Y2lmaWV6IHBhcyBsZXMgYXR0cmlidXRzICZxdW90O3dpZHRoJnF1b3Q7LCAmcXVvdDtoZWlnaHQmcXVvdDsgZXQgJnF1b3Q7YWx0JnF1b3Q7Lic7CiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ1NpIGxlcyBwYXJhbSZlZ3JhdmU7dHJlcyBoYXV0ZXVyIGV0IGxhcmdldXIgc29udCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7cywgY2UgcGFyYW0mZWdyYXZlO3RyZXMgZCZlYWN1dGU7c2FjdGl2ZSBsZSByZWRpbWVuc2lvbm5lbWVudCBhdXRvbWF0aXF1ZSBkZSBsJiMwMzk7aW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX25vZW1iZWQnXSA9ICdGb3JjZSBsJiMwMzk7aW1hZ2UgJmFncmF2ZTsgbmUgcGFzICZlY2lyYzt0cmUgaW50JmVhY3V0ZTtnciZlYWN1dGU7ZSBlbmNvZCZlYWN1dGU7ZSBkYW5zIGxlIGNvZGUgc291cmNlLiBFbiBkJmVhY3V0ZTtwaXQgZGUgc2EgY29uZmlndXJhdGlvbiBkYW5zIGwmIzAzOTthZG1pbiwgbGUgbW9kdWxlIHZhIGcmZWFjdXRlO24mZWFjdXRlO3JlciB1biBmaWNoaWVyIGltYWdlIHN1ciBsZSBzZXJ2ZXVyLic7CiRsYW5nWydwYXJhbV9ub3RpbWVjaGVjayddID0gJ0Rpc2FibGUgdGltZSBjaGVja2luZyBvZiBjYWNoZWQgZmlsZXMuJzsKJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnTmUgcGFzIHRlbnRlciBkZSBsaXJlIGxlcyBpbmZvcm1hdGlvbnMgZXhpZiBkZXB1aXMgbGUgZmljaGllciBwb3VyIGNvcnJpZ2VyIGxhIHJvdGF0aW9uIGRlIGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwYXJhbV9ub3RhZyddID0gJ05lIHBhcyBnJmVhY3V0ZTtuJmVhY3V0ZTtyZXIgZGUgYmFsaXNlICZxdW90O2ltZyZxdW90OywgbWFpcyB1bmlxdWVtZW50IGwmIzAzOTtVUkwgZGUgbCYjMDM5O2ltYWdlIGVuIGNhY2hlLiBDZWNpIG4mIzAzOTthIGF1Y3VuIGVmZmV0IHF1YW5kIENHU21hcnRJbWFnZSBlc3QgdXRpbGlzJmVhY3V0ZTsgZGVwdWlzIHVuZSBmZXVpbGxlIGRlIHN0eWxlcy4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRCZlYWN1dGU7c2FjdGl2ZSB0b3V0IGxlIGNhY2hlIGV0IGZvcmNlICZhZ3JhdmU7IHJlY2FsY3VsZXIgbGVzIGZpbHRyZXMnOwokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1NwJmVhY3V0ZTtjaWZpZXIgbGEgcXVhbGl0JmVhY3V0ZTsgZGUgbCYjMDM5O2ltYWdlIGFmZmljaCZlYWN1dGU7ZS4gIE1ldHRyZSB1bmUgdmFsZXVyIGVudHJlIDAgZXQgMTAwLic7CiRsYW5nWydwYXJhbV9yZWwnXSA9ICdVdGlsaXMmZWFjdXRlOyBsb3JzIGRlIGxhIGNyJmVhY3V0ZTthdGlvbiBkJiMwMzk7dW5lIGJhbGlzZSBkJiMwMzk7aW1hZ2UsIGlsIHBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIHVuIGF0dHJpYnV0IHJlbCBvcHRpb25uZWwgKHV0aWxpcyZlYWN1dGU7IHR5cGlxdWVtZW50IGRhbnMgbGVzIGFsYnVtcyBqYXZhc2NyaXB0KS4gZS5nOiByZWw9JnF1b3Q7YWxidW0mcXVvdDsnOwokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnU2lsZW50bHkgaWdub3JlIGVycm9ycyc7CiRsYW5nWydwYXJhbV9zcmMnXSA9ICdTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6DQo8dWw+DQogIDxsaT5GaXJzdCBsb29rIHRvIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHNyYyB2YWx1ZSBleGlzdHMgYXMgYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtLjwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgcm9vdF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSBzc2xfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCjwvdWw+DQpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNwbGl0IHRoZSBzcmMgcGFyYW1ldGVyIGludG8gbXVsdGlwbGUgYXJndW1lbnRzLCB3aGljaCBpcyB1c2VmdWwgZm9yIGV4YW1wbGUgd2hlbiB0aGUgcGF0aCB0byB0aGUgZmlsZSwgYW5kIHRoZSBmaWxlbmFtZSBhcmUgc3RvcmVkIGluIHNlcGFyYXRlIHNtYXJ0eSB2YXJpYWJsZXMuICAgWW91IGNhbiBzcGVjaWZ5IHRoZSBzcmMgYXMgc3JjMT1cJHRoZV9wYXRoIHNyYzI9XCR0aGVfZmlsZW5hbWUuICBUaGUgc3lzdGVtIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSAvIGluIGJldHdlZW4gZWFjaCBhcmd1bWVudC4gIFRoZXJlIGlzIG5vIGxpbWl0IHRvIHRoZSBudW1iZXIgb2Ygc3JjIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXRpbGlzJmVhY3V0ZTsgcG91ciBsYSBiYWxpc2UgJnF1b3Q7aW1nJnF1b3Q7LCBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciB1biBzdHlsZSBhbHRlcm5hdGlmIHBvdXIgbGEgYmFsaXNlLiAgUGFyIGV4IDogc3R5bGU9JnF1b3Q7Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3RpdGxlJ10gPSAnUmVuc2VpZ25leiB1biB0aXRyZSBvcHRpb25uZWwgcG91ciBsYSBiYWxpc2UgJnF1b3Q7aW1nJnF1b3Q7LiAgUGFyIGV4IDogdGl0bGU9JnF1b3Q7Q2VjaSBlc3QgdW5lIGFzdHVjZSZxdW90Oyc7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1V0aWxpcyZlYWN1dGU7IGxvcnMgZGUgbGEgY3ImZWFjdXRlO2F0aW9uIGQmIzAzOTt1bmUgYmFsaXNlICZxdW90O2ltZyZxdW90OyA6IHNwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7YXR0cmlidXQgJnF1b3Q7d2lkdGgmcXVvdDsgKGxhcmdldXIpLiBOb3RlIDogc2kgY2V0dGUgdmFsZXVyIG4mIzAzOTtlc3QgcGFzIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlLCB1bmUgdmFsZXVyIHZhICZlY2lyYzt0cmUgYXV0b21hdGlxdWVtZW50IGNhbGN1bCZlYWN1dGU7ZS4gVm91cyBwb3V2ZXogZCZlYWN1dGU7c2FjdGl2ZXIgY2UgY2FsY3VsIGF1dG9tYXRpcXVlIGF2ZWMgbGUgcGFyYW0mZWdyYXZlO3RyZSAmcXVvdDtub2F1dG8mcXVvdDsuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlIGluc3RhbGwmZWFjdXRlOyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVG91dGVzIGxlcyBkb25uJmVhY3V0ZTtlcyByZWxhdGl2ZXMgJmFncmF2ZTsgY2UgbW9kdWxlIG9udCAmZWFjdXRlO3QmZWFjdXRlOyBzdXBwcmltJmVhY3V0ZTtlcyc7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnUG9zaXRpb24gJmFncmF2ZTsgcGFydGlyIGRlIGxhcXVlbGxlIHJlY2FkcmVyIDonOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0ludCZlYWN1dGU7Z3JhdGlvbiBiYXMmZWFjdXRlO2Ugc3VyIGxlIHBvaWRzIGRlIGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwcm9tcHRfZW1iZWRfc21hcnRsaW1pdGVkJ10gPSAnSW50JmVhY3V0ZTtncmF0aW9uIGVuIG1vZGUgU21hcnQgbWFpcyBsaW1pdGUgbGUgcG9pZHMgZGUgbCYjMDM5O2ltYWdlJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF90eXBlJ10gPSAnSW50JmVhY3V0ZTtncmF0aW9uIGJhcyZlYWN1dGU7ZSBzdXIgbGUgdHlwZSBkZSBsJiMwMzk7aW1hZ2UnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnRW4gYmFzICZhZ3JhdmU7IGdhdWNoZSAoYmcpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tY2VudGVyJ10gPSAnRW4gYmFzIGF1IGNlbnRyZSAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdFbiBiYXMgJmFncmF2ZTsgZHJvaXRlIChiZCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQXUgY2VudHJlICZhZ3JhdmU7IGdhdWNoZSAoY2cpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQXUgY2VudHJlJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdBdSBjZW50cmUgJmFncmF2ZTsgZHJvaXRlIChjZCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnRW4gaGF1dCAmYWdyYXZlOyBnYXVjaGUgKGhnKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ0VuIGhhdXQgYXUgY2VudHJlIChoYyknOwokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ0VuIGhhdXQgJmFncmF2ZTsgZHJvaXRlIChoZCknOwokbGFuZ1sncmVzaXppbmcnXSA9ICdSZWRpbWVuc2lvbm5lbWVudCc7CiRsYW5nWydzbWFydCddID0gJ1NtYXJ0ICc7CiRsYW5nWydzdWJtaXQnXSA9ICdFbnZveWVyJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzY3NjkxMjMzLjEzMzIwMjE4MzQuMTMzMjAyMTgzNC4xMzMyMDIxODM0LjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzMyMDIxODM0LjEuMS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWydxY2EnXSA9ICc0YTNkMWI0MS01ZWIzNi1jOTU3MC1mNDllYSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSBvcGdlc2Nob29uZCc7CiRsYW5nWydhZGRfcm93J10gPSAnUmlqIHRvZXZvZWdlbic7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzICc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXNzZW4nOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IEFMTEUgYmVzdGFuZGVuIHdpbHQgdmVyd2lqZGVyZW4gdWl0IGRlIGFmYmVlbGRpbmdlbiBidWZmZXI/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ1NjaG9vbiBhbGxlIGJlc3RhbmRlbiBvcCc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdOdSBvcHNjaG9uZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZW1iZWRkaW5nJ10gPSAnR2UmZXVtbDttYmVkZGUgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnQWZiZWVsZGluZyBpbnNsdWl0bW9kdXMnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnSW5zbHVpdGJhcmUgYWZiZWVsZGluZ3Nncm9vdHRlIGxpbWlldCAoa2IpJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnSW5zbHVpdGJhcmUgYWZiZWVsZGluZyB0eXBlJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdEZXplbGZkZSBhbGlhc25hYW0gb3BnZWdldmVuIHZvb3IgZGUgYWxpYXMgb3AgcmlqICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ0dlZW4gbmFhbSBvcGdlZ2V2ZW4gdm9vciBkZSBhbGlhcyBvcCByaWogJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnR2VlbiBvcHRpZXMgb3BnZWdldmVuIHZvb3IgZGUgYWxpYXMgb3AgcmlqICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnTGVlZnRpamRzaW5zdGVsbGluZyBvbmdlbGRpZy4uLiBCZXdlcmtpbmcgbmlldCB1aXRnZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiB2ZXJwbGljaHRlIHBhcmFtZXRlciBpcyBuaWV0IChjb3JyZWN0KSBpbmdldnVsZDogJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnT25nZWxkaWdlIHBhcmFtZXRlciBpbiBvcHJvZXA6ICVzJzsKJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnS2FuIGdlZW4gYmVzdGFuZCB2aW5kZW4gaW46ICVzJzsKJGxhbmdbJ2Vycm9yX3JlbW90ZWZpbGUnXSA9ICdQcm9ibGVlbSBtZXQgaGV0IG9udHZhbmdlbiB2YW4gZWVuIGV4dGVybiBiZXN0YW5kIGluOiAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gT25iZWtlbmQgRmlsdGVyOiAlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXkmIzAzOTtzIFNtYXJ0IEltYWdlIFRvb2xraXQnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0FsZ2VtZWVuJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4NCjxoMz5GZWF0dXJlczwvaDM+DQo8dWw+DQo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOg0KICA8dWw+DQogICAgPGxpPkJsdXI8L2xpPg0KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4NCiAgICA8bGk+Q29sb3JpemU8L2xpPg0KICAgIDxsaT5Db250cmFzdDwvbGk+DQogICAgPGxpPkNyb3A8L2xpPg0KICAgIDxsaT48c3Ryb25nPkNyb3AgVG8gRml0PC9zdHJvbmc+PC9saT4NCiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPg0KICAgIDxsaT5FbWJvc3M8L2xpPiANCiAgICA8bGk+R3JheXNjYWxlPC9saT4NCiAgICA8bGk+TWVhbiBSZW1vdmFsPC9saT4NCiAgICA8bGk+TmVnYXRlPC9saT4NCiAgICA8bGk+UGl4ZWxhdGU8L2xpPg0KICAgIDxsaT5SZXNpemU8L2xpPg0KICAgIDxsaT5Sb3RhdGU8L2xpPg0KICAgIDxsaT5TZWxpY3RpdmUgQmx1cjwvbGk+DQogICAgPGxpPlNtb290aDwvbGk+DQogICAgPGxpPldhdGVybWFyazwvbGk+DQogIDwvdWw+DQo8L2xpPjxici8+DQo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4NCjxsaT5BdXRvbWF0aWMgZG93bmxvYWRpbmcsIGNhY2hpbmcsIHByb2Nlc3NpbmcsIGFuZCByZS1jYWNoaW5nIG9mIGltYWdlcyBmcm9tIHJlbW90ZSB3ZWJzaXRlcy48L2xpPg0KPGxpPlNtYXJ0IGF1dG9tYXRpYyByZXNpemluZyAoYXV0b21hdGljYWxseSByZXNpemUgdG8gZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBzZXJ2aW5nIHRoZSBpbWFnZS4uLiByZXNpemluZyB0byB3aWR0aCBBTkQgaGVpZ2h0IGRvZXMgYSBjcm9wIHRvIGZpdC4gPGVtPihqdXN0IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGhlaWdodCBwYXJhbWV0ZXIgdG8gdGhlIENHU21hcnRJbWFnZSB0YWcuKTwvZW0+PC9saT4NCjxsaT5BdXRvbWF0aWNhbGx5IHJlYWRzIGltYWdlIEVYSUYgaW5mb3JtYXRpb24gYW5kIGNvcnJlY3RzIHRoZSBvcmllbnRhdGlvbi48L2xpPg0KPGxpPkltYWdlIGNoYW5nZSBkZXRlY3Rpb24sIGlmIHRoZSBtYXN0ZXIgaW1hZ2UgaXMgY2hhbmdlZCBzY2FsZWQgaW1hZ2VzIHdpbGwgYmUgcmVnZW5lcmF0ZWQuIChzZWUgdGhlIG5vdGltZWNoZWNrIHBhcmFtZXRlciB0byBkaXNhYmxlIHRoaXMgYmVoYXZpb3IpLjwvbGk+DQo8bGk+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb24gZm9yIGltYWdlcy48L2xpPg0KPGxpPlByb2Nlc3NlZCBpbWFnZXMgYXJlIGNhY2hlZCBvbiB0aGUgc2VydmVyIGZvciBmYXN0ZXIgc2VydmluZy48L2xJPg0KPGxpPlRoZSBhYmlsaXR5IHRvIHVzZSBhIHNlcGFyYXRlIFVSTCAoQ0ROKSBmb3Igc2VydmluZyBpbWFnZXM8L2xpPg0KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBsaW1pdCBlbWJlZGRpbmcgaW1hZ2VzIHNtYXJ0bHksIG9ubHkgdG8gYnJvd3NlcnMgdGhhdCBhcmUgY2FwYWJsZSBvZiB1bmRlcnN0YW5kaW5nIHRoZW0uPC9saT4NCjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPg0KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4NCjxsaT5UaGUgYWJpbGl0eSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGluc2lkZSBhIGJsb2NrIG9mIGh0bWwgY29kZSB1c2luZyB0aGUge2Nnc2lfY29udmVydH0gYmxvY2sgdGFnLjwvbGk+DQo8bGk+TW9yZS4uLjwvbGk+DQo8L3VsPg0KPGgzPldoeSBzaG91bGQgSSB1c2UgaXQ/PC9oMz4NCjxwPlRoZXJlIGFyZSBmb3VyIHZlcnkgaW1wb3J0YW50IHJlYXNvbnMgdG8gdXNlIHRoaXMgcGx1Z2luOjwvcD4NCjx1bD4NCiAgPGxpPlBlcmZvcm1hbmNlOiAgVXNpbmcgaW1hZ2UgZW1iZWRkaW5nIChldmVuIGlmIG5vIG90aGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCkgcmVzdWx0cyBpbiBmZXdlciByZXF1ZXN0cy4gIE1vc3QgYnJvd3NlcnMgb25seSBwZXJmb3JtIHR3byB0byBmb3VyIHNpbXVsdGFuZW91cyByZXF1ZXN0cyB0byB0aGUgc2FtZSBkb21haW4gYXQgdGhlIHNhbWUgdGltZS4gIEZvciB3ZWIgcGFnZXMgd2l0aCBsb3RzIG9mIGltYWdlcyB0aGlzIGNhbiBzZXJpb3VzbHkgc2xvdyBkb3duIHlvdXIgc2l0ZS48L2xpPg0KICA8bGk+UGVyZm9ybWFuY2U6ICBFdmVuIGlmIG5vdCB1c2luZyBlbWJlZGRpbmcsIHNlbmRpbmcgbGFyZ2UgaW1hZ2VzIHRvIHlvdXIgdmlzaXRvcnMsIGFuZCBhc2tpbmcgdGhlaXIgYnJvd3NlciB0byBzY2FsZSB0aGUgaW1hZ2UgaXMgdmVyeSB2ZXJ5IHNsb3cuPC9saT4NCiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4NCiAgPGxpPlNpbXBsaWNpdHk6ICBUaGUgZmlsdGVyaW5nIGNhcGFiaWxpdGllcyBvZiBDR1NtYXJ0SW1hZ2UgYWxsb3cgeW91IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgZm9yIGNvbnNpc3RlbnQgYW5kIHNlY3VyZSBkaXNwbGF5LCB3aXRob3V0IHNpdGUgZWRpdG9ycyBoYXZpbmcgdG8gcGxheSB3aXRoIHRoZW0uICBUaGV5IGNhbiB1cGxvYWQgbGFyZ2VyIGltYWdlcywgYW5kIHlvdXIgc2l0ZSB3aWxsIGp1c3QgaGFuZGxlIHRoZW0gcHJvcGVybHkuPC9saT4NCjwvdWw+DQo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+DQo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIEkuZTogU29tZXRoaW5nIGxpa2UgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7fTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+DQo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O3csMzUwJiMwMzk7fTwvY29kZT4uICBBcyB5b3UgbWF5IHRoaW5rLCB0aGUgd2F0ZXJtYXJrIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDMwMCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd2VzIHRoZSBpbWFnZSB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIEhUTUwgb3V0cHV0LiAgSWYgZW1iZWRkaW5nIGlzIG5vdCBwb3NzaWJsZSwgdGhlIGltZyB0YWcgd2lsbCBjb250YWluIHRoZSBVUkwgdG8gdGhlIGNhY2hlZCBpbWFnZS48L3A+DQo8cD5Gcm9tIGhlcmUgeW91IGNhbiBjb21iaW5lIHRoZSBvcHRpb25zIGJlbG93IHRvIHBlcmZvcm0gYWxvdCBvZiBkaWZmZXJlbnQgZWZmZWN0cyB0byB5b3VyIGltYWdlcywgYnVpbGQgc2ltcGxlIGdhbGxlcmllcywgYW5kIGltcHJvdmUgeW91ciBzaXRlIHBlcmZvcm1hbmNlIGF0IHRoZSBzYW1lIHRpbWUuICBFbmpveSE8L3A+DQo8aDM+QXV0b21hdGljIGltYWdlIHJlc2l6aW5nPC9oMz4NCiAgPHA+SWYgeW91IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGEgaGVpZ2h0IHBhcmFtZXRlciwgYW5kIGRvIG5vdCBzcGVjaWZ5IHRoZSAmYW1wO3F1b3Q7bm9hdXRvc2NhbGUmYW1wO3F1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPg0KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4NCjxwPlRoZSBjb2RlIGJlbG93IHVzZXMgdGhlIHtDR1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiAmYW1wO2x0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyZhbXA7Z3Q7e2xpdGVyYWx9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiAzOjwvc3Bhbj4gIGpRdWVyeSgmIzAzOTthLmZhbmN5Ym94JiMwMzk7KS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gey9saXRlcmFsfSZhbXA7bHQ7L3NjcmlwdCZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNjo8L3NwYW4+IHthc3NpZ24gdmFyPSYjMDM5O2ZpbGVzJiMwMzk7IHZhbHVlPSYjMDM5O3VwbG9hZHMvYWxidW0vKi5qcGcmIzAzOTt8Z2xvYn0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gODo8L3NwYW4+ICZhbXA7bHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDsmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICAmYW1wO2x0O2EgcmVsPSYjMDM5O3NpbXBsZV9hbGJ1bSYjMDM5OyBjbGFzcz0mcXVvdDtmYW5jeWJveCZxdW90OyBocmVmPSZxdW90OzxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwLDAgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCw1MDAmIzAzOTsgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiZxdW90OyZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMTo8L3NwYW4+ICA8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCwwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDE1MCYjMDM5O308L3NwYW4+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMjo8L3NwYW4+ICAmYW1wO2x0Oy9hJmFtcDtndDsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEzOjwvc3Bhbj4gey9mb3JlYWNofQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTQ6PC9zcGFuPiAmYW1wO2x0Oy9kaXYmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTU6PC9zcGFuPiB7L2lmfQ0KPC9jb2RlPjwvcHJlPjxici8+DQo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+DQo8cD5MaW5lcyAxIHRocm91Z2ggNSB1dGlsaXplIGpRdWVyeSB0byBjYWxsIGZhbmN5Ym94IG9uIGFueSBsaW5rcyB0aGF0IGhhdmUgdGhlICZhbXA7cXVvdDtmYW5jeWJveCZhbXA7cXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPg0KPHA+TGluZSA2IHVzZXMgYSBidWlsdCBpbiBwaHAgZnVuY3Rpb24gY2FsbGVkIGdsb2IsIGFuZCBzb21lIHNtYXJ0eSBtYWdpYyB0byBmaW5kIGFsbCBvZiB0aGUgSlBHIGZpbGVzIGluIHRoZSB1cGxvYWRzL2FsYnVtIGRpcmVjdG9yeSBiZWxvdyBvdXIgaW5zdGFsbGF0aW9uIHJvb3QuPC9wPg0KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4NCjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+ey9pZn08L2NvZGU+LjwvcD4NCjxwPkxpbmUgOSBiZWdpbnMgYSBsb29wIHRocm91Z2ggYWxsIG9mIHRoZSBmaWxlcyB0aGF0IHdlIGZvdW5kIGluIHRoZSBkaXJlY3RvcnkuICBUaGlzIGxvb3AgaXMgY2xvc2VkIG9uIGxpbmUgMTMuPC9wPjxici8+DQo8cD5MaW5lcyAxMCBhbmQgMTEgYXJlIHRoZSByZWFsIG1hZ2ljLiAgSGVyZSB3ZSBjcmVhdGUgYSBsaW5rIHdpdGggY2xhc3MgJmFtcDtxdW90O2ZhbmN5Ym94JmFtcDtxdW90OyBhbmQgYWRkcyB0aGUgPGNvZGU+cmVsPC9jb2RlPiBhdHRyaWJ1dGUgc28gdGhhdCBmYW5jeWJveCBrbm93cyB0aGF0IGFsbCBvZiB0aGVzZSBpbWFnZXMgc2hvdWxkIGJlIGdyb3VwZWQgdG9nZXRoZXIgYXMgb25lIGFsYnVtIGFuZCBhbGxvdyBjbGlja2luZyBiZXR3ZWVuIHRoZSBpbWFnZXMuICBUaGVuIGNvbWVzIHRoZSBwYXJ0IHdoZXJlIHdlIGRlZmluZSBvdXIgaW1hZ2VzLg0KPHA+V2Ugc3VwcGx5IHRoZSAkZmlsZSB2YXJpYWJsZSB0byB0aGUgc3JjIGFyZ3VtZW50IG9mIHRoZSA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIHNvIHRoYXQgaXQgd2lsbCBnZXQgdGhlIG5hbWUgb2YgZWFjaCBtYXRjaGVkIGpwZWcgYXMgdGhlIGxvb3AgaXMgZXhlY3V0ZWQuPC9wPg0KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MCwwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4NCjxpbWcgc3JjPSZxdW90O2RhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiZxdW90OyBhbHQ9JnF1b3Q7WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLCBzb3JyeSZxdW90Oy8+DQo8aDM+U3R5bGVzaGVldHM6PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzLCBpZiB1c2luZyB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlLiAgQmVjYXVzZSB0aGUgc21hcnR5IHN5bnRheCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgaW5zaWRlIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PmRpdi5oZWFkZXIgeyBiYWNrZ3JvdW5kOiB1cmwoW1tDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvcGljdHVyZS5qcGcmIzAzOTsgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4NCjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0IGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTF9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSZxdW90O21hcmdpbi1sZWZ0OiAzZW07JnF1b3Q7PjxzdHJvbmcgc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3N0cm9uZz4NCjxwPlRoaXMgdGFnIHBhcnNlcyB0aGUgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyB0byBmaW5kIHRoZSA8aW1nPiB0YWdzLiAgSXQgdGhlbiB3aWxsIG91dHB1dCBzeW50YWN0aWNhbGx5IHZhbGlkIEhUTUwgZm9yIHRoZSBzdWJzZXQgb2YgY29kZSBpdCB3YXMgcHJvdmlkZWQuICBUaGVyZWZvcmUgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIHNuaXBwZXQgb2YgSFRNTCBwYXNzZWQgdG8gdGhpcyB0YWcgYmUgaW50YWN0IGFuZCBhcyBjbG9zZSB0byB2YWxpZCBhcyBwb3NzaWJsZS4gIDxzdHJvbmc+VXNlIHdpdGggY2F1dGlvbi48L3N0cm9uZz4NCjwvZGl2Pg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7Y2dzaV9jb252ZXJ0fSBwbHVnaW4gbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiB0aGUgc2ltcGxleG1sIGFuZCBYTUxEb20gY2xhc3NlcyBidWlsdCBpbiB0byBwaHAuICBUaGVyZSBtYXkgYmUgb3RoZXIgYWRkaXRpb25hbCByZXF1aXJlbWVudHMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBlcnJvcnMgeW91IHNob3VsZCBlbnN1cmUgdGhhdCBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCwgYW5kIHRoYXQgeW91IGhhdmUgYW5hbHl6ZWQgeW91ciBlcnJvciBsb2dzLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZhbXA7bHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+ICc7CiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdBbGlhc3NlbiBrdW5uZW4gd29yZGVuIGdlYnJ1aWt0IG1ldCBkZSBhbGlhczEgdG90IGVuIG1ldCBhbGlhczUgb3B0aWVzIGluIGRlIENHU21hcnRJbWFnZS10YWcgdm9vciB2ZXJzY2hpbGxlbmRlIHJlZ2VsbWF0aWcgZ2VicnVpa3RlIG9wdGllcyc7CiRsYW5nWydpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1NwZWNpZnkgdGhlIGRlZmF1bHQgbG9jYXRpb24gZnJvbSB3aGljaCB0byAmcXVvdDtjcm9wIHRvIGZpdCZxdW90OyB0aGlzIHdpbGwgZWZmZWN0IGFsbCBjcm9wIHRvIGZpdCBvcGVyYXRpb25zIHVubGVzcyB0aGUgbG9jYXRpb24gcGFyYW1ldGVyIG9uIHRoZSBmaWx0ZXJfY3JvcHRvZml0IGF0dHJpYnV0ZSBvdmVycmlkZXMgaXQuICBEZWZhdWx0IGxvY2F0aW9uIGlzICZxdW90O2NlbnRlciZxdW90OyAnOwokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnSXMgZGUgYm92ZW5zdGFhbmRlIFVSTCBpbiBnZWJydWlrIHZvb3IgZGUgY2FjaGUgZGlyZWN0b3J5IChfQ0dTbWFydEltYWdlKSc7CiRsYW5nWydpbWFnZV91cmxfcHJlZml4J10gPSAnQWZiZWVsZGluZyBVcmwgUHJlZml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnR2VlZiBkZSBtYXhpbWFsZSBsZWVmdGlqZCBvcCB2YW4gZWVuIGJlc3RhbmQgKGluIGRhZ2VuKSB2b29yZGF0IGhldCBtb2V0IHdvcmRlbiB2ZXJ3aWpkZXJkIGVuIG9wbmlldXcgZ2VnZW5lcmVlcmQgbW9ldCB3b3JkZW4gIERpdCBpcyBoYW5kaWcgYWxzIHUgc29tbWlnZSBwYXJhbWV0ZXJzIGhlZWZ0IGdld2lqemlnZCB2b29yIGhldCBnZW5lcmVyZW4gdmFuIGFmYmVlbGRpbmdlbiBvZiBvbSBkZSBnZWJydWlrdGUgc2NoaWpmcnVpbXRlIHRlIGJlaGVyZW4uICBBbHMgdSAwIGludm9lcnQgZGFuIHphbCBkZSBhdXRvbWF0aXNjaGUgYmVzdGFuZHNkZXRlY3RpZSB1aXQgc3RhYW4uJzsKJGxhbmdbJ2luZm9fZW1iZWRfbW9kZSddID0gJ0RlemUgc2VjdGllIGJlcGFhbGQgaG9lIGRlIHtzbWFydGltZ30tdGFnIGVlbiBvdXRwdXQgZ2VuZXJlZXJkLiBBbHMgJiMwMzk7bmlldHMmIzAzOTsgaXMgZ2VzZWxlY3RlZXJkLCBkYW4gemFsIGVyIGdlZW4gYWZiZWVsZGluZyBpbmdlc2xvdGVuIHdvcmRlbi4gQWxzIHUgJiMwMzk7c2xpbSYjMDM5OyBzZWxlY3RlZXJ0IGRhbiB6YWwgaGV0IHN5c3RlZW0gaGV0IHplbGYgYmVwYWxlbiBhYW4gZGUgaGFuZCB2YW4gZGUgYWZiZWVsZGluZ3Nncm9vdHRlLCB0eXBlIGVuIGRlIGJyb3dzZXIgZGllIGRlIGFmYmVlbGRpbmcgYWZiZWVsZGluZyBvcHZyYWFndC4gQW5kZXJlIG9wdGllcyB6dWxsZW4gYWx0aWpkIGRlIGFmYmVlbGRpbmcgaW5zbHVpdGVuIG9wIGJhc2lzIHZhbiBkZSBhZmJlZWxkaW5nc2dyb290dGUgZW4gYWZiZWVsZGluZ3N0eXBlLic7CiRsYW5nWydpbmZvX2VtYmVkX3NpemVsaW1pdCddID0gJ0FscyBkZSBpbnNsdWl0aW5nc29wdGllIGJlcGFhbHQgd29yZCBkb29yIGFmYmVlbGRpbmdzZ3Jvb3R0ZSwgZ2VlZiB2YW4gZWVuIG1heGltdW0gYmVzdGFuZHNncm9vdHRlIG9wIChpbiBraWxvYnl0ZXMpIHZvb3IgYWZiZWVsZGluZ2VuIG9tIGRlemUgaW4gdGUgc2x1aXRlbiAoMzIgaXMgYWFuYmV2b2xlbikuJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdBbHMgZGUgaW5zbHVpdGluZ3NvcHRpZSBiZXBhYWx0IHdvcmQgZG9vciBoZXQgYWZiZWVsZGluZ3N0eXBlLCBnZWVmIGRhbiBoaWVyIGRlIGV4dGVuc2llcyBvcCB2YW4gYmVzdGFuZGVuIGRpZSBpbmdlc2xvdGVuIG1vZ2VuIHdvcmRlbiwgZ2VzY2hpZWRlbiBkb29yIGNvbW1hJiMwMzk7cy4gRGV6ZSBvcHRpZSBpcyBuaWV0IGhvb2ZkbGV0dGVyZ2V2b2VsaWcuJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnQWxzIHV3IENETiBkaXJlY3QgdmVyd2lqc3QgbmFhciBkZSBhZmJlZWxkaW5nc2NhY2hlIGRhbiB3aWx0IHUgbWlzc2NoaWVuIGRlemUgZnVuY3RpZSBpbnNjaGFrZWxlbi4nOwokbGFuZ1snaW5mb19pbWFnZV91cmxfcHJlZml4J10gPSAnU3BlY2lmaWNlZXIgZGUgVVJMIG1ldCBlZW4gcHJlZml4IHZvb3IgYWxsZSBnZWdlbmVyZWVyZGUgYWZiZWVsZGluZ2VuLiBTdGFuZGFhcmQgaXMgZGl0IGRlIHVwbG9hZHMgVVJMLCBtYWFyIGhldCBtYWcgb29rIHV3IGVpZ2VuIENETiB6aWpuIChvZiBtZWVyZGVyZSBkb21laW5lbiBkaWUgZ2VicnVpayBtYWtlbiB2YW4gZGV6ZWxmZGUgbWFwKS4gVSBrdW50IGhpZXIgZWVuIGFuZGVyZSBuYWFtIG9wZ2VnZXZlbi4nOwokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ01heGltdW0gYmVzdGFuZHNsZWVmdGlqZCBpbiBjYWNoZSAoZGFnZW4pJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWVuIHNsaW1tZSBhZmJlZWxkaW5nc3RhZyBtb2R1bGUgdm9vciBDTVNNUyc7CiRsYW5nWydtc2dfYWxpYXNlc191cGRhdGVkJ10gPSAnQWxpYXNzZW4gYmlqZ2V3ZXJrdCc7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGVtYXAgb3BnZXNjaG9vbmQuICVkIGJlc3RhbmRlbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ21zZ19jYWNoZXJlbW92ZWQnXSA9ICdDYWNoZSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ21zZ19wcmVmc3VwZGF0ZWQnXSA9ICdWb29ya2V1cmVuIGJpamdld2Vya3QnOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGllcyc7CiRsYW5nWydwYXJhbV9hbGlhcyddID0gJ0hldCBDR1NtYXJ0SW1hZ2UgYWRtaW5wYW5lZWwgc3RhYXQgdG9lIG9tIHZlcnNjaGlsbGVuZGUgY29tbWFuZG8tYWxpYXNzZW4gdG9lIHRlIHdpanplbiBhYW4gcmVnZWxtYXRpZyBnZWJydWlrdGUgcGF0cm9uZW4gdmFuIHJlZ2VscyBpbiBlZW4gbmFhbS4gT20gZGV6ZSBhbGlhc3NlbiB0ZSBnZWJydWlrZW4gZ2VicnVpayBlZW4gcmVnZWwgaW4gZGUgdm9sZ2VuZGUgdm9ybTogYWxpYXMjIz1hbGlhc19uYW1lLiBCaWp2b29yYmVlbGQ6IGFsaWFzMT1mb28sIGFsaWFzMj1mb28uJzsKJGxhbmdbJ3BhcmFtX2FsdCddID0gJ1Zvb3IgYmlqIGhldCBnZWJydWlrIHZhbiBkZSBpbWctdGFnIG1vZXQgdSBoaWVyIGRlIHdhYXJkZSB2b29yIGhldCBhbHQtYXR0cmlidXV0IG9wZ2VnZXZlbi4gIE9wbWVya2luZzogYWxzIHUgaGllciBnZWVuIHdhYXJkZSBpbnZvZXJ0IGRhbiB6YWwgZGV6ZSB3YWFyZGUgYXV0b21hdGlzY2ggYmVyZWtlbmQgd29yZGVuIHpvZGF0IGRlIG1lZXN0ZSBpbWctdGFncyBqdWlzdCB6aWpuLiAgVSBrdW50IGRlemUgYXV0b21hdGlzY2hlIGJlcmVrZW5pbmcgdWl0c2NoYWtlbGVuIG1ldCBkZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnV29yZHQgZ2VicnVpa3QgYmlqIGhldCBnZW5lcmVyZW4gdmFuIGVlbiBpbWctdGFnLCBzdGFhdCB0b2Ugb20gZWVuIG9mIG1lZXJkZXJlIGNsYXNzZXMgdG9lIHRlIHZvZWdlbiBhYW4gZGUgdGFnLiAgYmlqdm9vcmJlZWxkOiBjbGFzcz0mcXVvdDtmYW5jeWJveCB0aHVtYm5haWwmcXVvdDsnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JsdXInXSA9ICcoYWxsZXMpIEdlZWYgZWVuIHdhYXJkZSBvcCB2b29yIGRlemUgcGFyYW1ldGVyIG9tIGVlbiBibHVyIGZpbHRlciB0b2UgdGUgdm9lZ2VuIGFhbiBkZSBhZmJlZWxkaW5nJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGhlZWwgZ2V0YWwpIFZlcmJldGVyZCBkZSBoZWxkZXJoZWlkIHZhbiBkZSBhZmJlZWxkaW5nIG1ldCBkZSBnZWhlbGUgd2FhcmRlIGRpZSB3b3JkdCBvcGdlZ2V2ZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbG9yaXplJ10gPSAnKHIsZyxiWyxhbHBoYV0pIC0gTGlqa3Qgb3AgaGV0IGZpbHRlciBfZ3JleXNjYWxlIG1hYXIgdSBrdW50IGhpZXIgZGUga2xldXIgZW4gZGUgYWxwaGF3YWFyZGUgb3BnZWdldmVuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhoZWVsIGdldGFsKSBXaWp6aWcgaGV0IGNvbnRyYXN0IHZhbiBkZSBhZmJlZWxkaW5nIGRvb3IgZGUgd2FhcmRlIG1ldCBlZW4gaGVlbCBnZXRhbCB0ZSB3aWp6aWdlbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwZXJjZW50YWdlWyxoX2FsaWduLHZfYWxpZ25dKSAtIFZvZXIgYmlqc25pamRlbiB1aXQgb3AgZGUgb3BnZWdldmVuIGFmYmVlbGRpbmcuIERlIHBhcmFtZXRlcnMgdm9vciBoZXQgYmlqc25pamRlbiB6aWpuIG9wZ2VnZXZlbiBhbHMgZWVuIGtvbW1hZ2VzY2hlaWRlbiBsaWpzdC4gIERlIGVlcnN0ZSB3YWFyZGUgaXMgZWVuIGdlaGVlbCBwZXJjZW50YWdlIHZhbiBkZSBhZmJlZWxkaW5nIG9wIG9yaWdpbmVsZSBncm9vdHRlLiAgRGV6ZSB0d2VlZGUgZW4gZGVyZGUgKG9wdGl0aW9uZWxlKSBwYXJhbWV0ZXJzIHppam46IGwsYyxyIChsaW5rcyxnZWNlbnRyZWVyZCxyZWNodHMpIGVuIHQsYyxiICh0b3AsZ2VjZW50cmVlcmQsYmVuZWRlbikgb20gZGUgbG9jYXRpZSBvcCB0ZSBnZWdldmVuIHZhbmFmIHdhYXIgZXIgYmlqZ2VzbmVkZW4gbW9ldCB3b3JkZW4uICBiaWp2b29yYmVlbGQ6IGNyb3A9MzMsYixyIG9tIGVlbiBrbmlwc2VsIHRlIG5lbWVuIHZhbiAzMyUgdmFuYWYgZGUgcmVjaHRlciBvbmRlcmthbnQgdmFuIGRlIGJyb25hZmJlZWxkaW5nJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvbl0pIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIHNlbGVjdGVkIGFyZWEgb2YgdGhlIHJlc2l6ZWQgaW1hZ2UuICBDcm9wIHRvIGZpdCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgdGhlIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIGRlc3RpbmF0aW9uIGltYWdlIGFsb25nIHdpdGggYW4gKG9wdGlvbmFsKSBsb2NhdGlvbiBjb2RlLiAgdmFsaWQgbG9jYXRpb24gY29kZXMgYXJlIHRsLHRjLHRyLGNsLGMsY3IsYmwsYixiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuICBJZiBhIGxvY2F0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYSBwcmVmZXJlbmNlIHdpbGwgYmUgdXNlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzICZhbXA7cXVvdDtjJmFtcDtxdW90OyB0byBjcm9wLXRvLWZpdCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEF0IG5vIHRpbWUgd2lsbCB0aGlzIGZpbHRlciBwZXJmb3JtIGFueSB1cHNjYWxpbmcuICc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyhhbGxlcykgTWFya2VlciBkZSByYW5kZW4gaW4gZGUgYWZiZWVsZGluZyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZW1ib3NzJ10gPSAnKGFsbGVzKSBHZWVmIGRlIGFmYmVlbGRpbmcgcmVsaSZldW1sO2YnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBEcmFhaSBkZSBvcGdlZ2V2ZW4gYWZiZWVsZGluZy4gIEdlZWYgMCBvcCB2b29yIGhvcml6b250YWFsLCAxIHZvb3IgdmVydGljYWFsIGVuIDIgdm9vciBiZWlkZSByaWNodGluZ2VuLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKGFsbGVzKSBDb252ZXJ0ZWVyIGRlIGFmYmVlbGRpbmcgbmFhciBncmlqc3dhYXJkZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX21lYW5yZW1vdmFsJ10gPSAnKGFsbGVzKSBCZWRvZWxkIHZvb3IgZWVuICZxdW90O3Rla2VuJnF1b3Q7LWVmZmVjdCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbmVnYXRlJ10gPSAnKGFsbGVzKSBPbnRrZW4gZGUgYWZiZWVsZGluZyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfcGl4ZWxhdGUnXSA9ICcoZ3Jvb3R0ZVssZ2VhdmFuY2VlcmRdKSBQaXhlbGF0ZSB0aGUgaW1hZ2UsIHNwZWNpZnkgYW4gaW50ZWdlciBzaXplIGFuZCBhbiBvcHRpb25hbCBib29sZWFuIChkZWZhdWx0IGlzIGZhbHNlKSB0byBlbmFibGUgYWR2YW5jZWQgcGl4ZWxhdGlvbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcmVzaXplJ10gPSAndHlwZSxudW1iZXJbLG51bWJlcl0gLSBQZXJmb3JtIGEgcmVzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBUaGUgcmVzaXplIGZpbHRlciBkb2VzIG5vdCBwZXJmb3JtIGFueSB1cHNjYWxlIGNoZWNraW5nLiAgUG9zc2libGUgdmFsdWVzIGFyZTogDQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+Lg0KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuICc7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm90YXRlJ10gPSAnKGFuZ2xlLGNvbG9yKSBHZWVmIG1ldCBlZW4gZ2VoZWVsIGdldGFsIGRlIGRyYWFpaG9layBvcCAoZHJhYWllbiBnYWF0IG1ldCBkZSBrbG9rIG1lZSkgb20gZGUgYWZiZWVsZGluZyB0ZSBkcmFhaWVuLiBEYWFybmFhc3QgbW9ldCB1IGVlbiBrbGV1ciBvcGdlZ2V2ZW4gd2Fhcm1lZSBkZSBvdmVyaWdlIHBpeGVscyB3b3JkZW4gb3BnZXZ1bGQuICBEZSBhZmJlZWxkaW5nIGRyYWFpdCBvbSB6aWpuIGVpZ2VuIG1pZGRlbi4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdW5kZWRjb3JuZXJzJ10gPSAnKHJhZGl1cykgU3BlY2lmaWNlZXIgZWVuIGhlZWwgZ2V0YWwgdm9vciBkZSBzdHJhYWwgKGluIHBpeGVscykgdmFuIGRlIGFmZ2Vyb25kZSBob2VrZW4uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl93YXRlcm1hcmsnXSA9ICcoYWxsZXMpLCBHZWVmIGVlbiB3YXRlcm1lcmsgb3AgKHpvYWxzIG9wZ2VnZXZlbiBpbiBkZSBDR0V4dGVudGlvbnMgbW9kdWxlKSBkaWUgbW9ldCB3b3JkZW4gdG9lZ2VwYXN0IG9wIGRlIGFmYmVlbGRpbmcnOwokbGFuZ1sncGFyYW1faGVpZ2h0J10gPSAnVm9vciBiaWogaGV0IGdlYnJ1aWsgdmFuIGRlIGltZy10YWcgbW9ldCB1IGhpZXIgZGUgd2FhcmRlIHZvb3IgaGV0IGhvb2d0ZS1hdHRyaWJ1dXQgb3BnZWdldmVuLiAgT3BtZXJraW5nOiBhbHMgdSBoaWVyIGdlZW4gd2FhcmRlIGludm9lcnQgZGFuIHphbCBkZXplIHdhYXJkZSBhdXRvbWF0aXNjaCBiZXJla2VudCB3b3JkZW4gem9kYXQgZGUgbWVlc3RlIGltZy10YWdzIGp1aXN0IHppam4uICBVIGt1bnQgZGV6ZSBhdXRvbWF0aXNjaGUgYmVyZWtlbmluZyB1aXRzY2hha2VsZW4gbWV0IGRlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9JnF1b3Q7c29tZXRhZyZxdW90Oyc7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnVmFuIHRvZXBhc3Npbmcgb3AgZGUge2Nnc2lfY29udmVydH0gdGFnLCBkZXplIHBhcmFtZXRlciBzdGFhdCB0b2Ugb20gZWVuIG1heGltdW0gaG9vZ3RlIG9wIHRlIGdldmVuIHZvb3IgZ2Vjb252ZXJ0ZWVyZGUgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ3BhcmFtX21heF93aWR0aCddID0gJ1ZhbiB0b2VwYXNzaW5nIG9wIGRlIHtjZ3NpX2NvbnZlcnR9IHRhZywgZGV6ZSBwYXJhbWV0ZXIgc3RhYXQgdG9lIG9tIGVlbiBtYXhpbXVtIGhvb2d0ZSBvcCB0ZSBnZXZlbiB2b29yIGdlY29udmVydGVlcmRlIGFmYmVlbGRpbmdlbic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnR2VicnVpa3QgYmlqIGhldCBtYWtlbiB2YW4gZGUgaW1nIHRhZywgYmVub2VtIGVlbiB3YWFyZGUgdm9vciBkZSBuYWFtIGF0dHJpYnV1dC4nOwokbGFuZ1sncGFyYW1fbm9hdXRvJ10gPSAnQmVyZWtlbiBuaWV0IGF1dG9tYXRpc2NoIGRlIHBhcmFtYXRlcnMgdm9vciBkZSBpbWctdGFnLiAgRGl0IGthbiBlciBtb2dlbGlqayB2b29yIHpvcmdlbiBkYXQgdXcgc2l0ZSBuaWV0IGp1aXN0IGdldmFsaWRlZXJkIHdvcmR0IGluZGllbiBkZSB2ZXJlaXN0ZSBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBuaWV0IHppam4gb3BnZWdldmVuJzsKJGxhbmdbJ3BhcmFtX25vYXV0b3NjYWxlJ10gPSAnaW5kaWVuIGVyIGVlbiBicmVlZHRlIGVuIGhvb2d0ZSBwYXJhbWV0ZXIgaXMgb3AgZ2VnZXZlbiwgZGFuIHphbCBkZXplIHBhcmFtZXRlciBoZXQgYXV0b21hdGlzY2hlIHNjaGFsZW4gdmFuIGRlIGFmYmVlbGRpbmcgdWl0c2NoYWtlbGVuLic7CiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ1N0YSBuaWV0IHRvZSBkYXQgZGUgaGVyc2NoYWFsZGUgYWZiZWVsZGluZyBpbiBkZSBicm93c2VyIGdlY2FjaGVkIHdvcmR0IChoYW5kaWcgdm9vciBvbnR3aWtrZWxkb2VsZWluZGVuKSBEaXQgdm9lZ3QgZWVuIHVuaWVrIG51bW1lciBhbHMgcGFyYW1ldGVyIHRvZSBhYW4gZGUgYWZiZWVsZGluZy4nOwokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0RlemUgYWZiZWVsZGluZyBtYWcgbmlldCBpbmdlc2xvdGVuIHdvcmRlbi4gT25nZWFjaHQgZGUgaW5zdGVsbGluZ2VuIGluIGhldCBiZWhlZXJkZXJzcGFuZWVsLCBkZSBVUkwgZW4gZGUgZ2VnZW5lcmVlcmRlIHRhZ3MgenVsbGVuIGRlIGJlc3RhbmRlbiBvcCBkZSBzZXJ2ZXIgd29yZGVuIG9wZ2Vyb2VwZW4uIEVyIHphbCBnZWVuIGluc2x1aXRpbmcgcGxhYXRzIHZpbmRlbi4nOwokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdUaWpkY29udHJvbGUgdm9vciBnZWJ1ZmZlcmRlIGJlc3RhbmRlbiB1aXRzY2hha2VsZW4uJzsKJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnRXh0ZXJuZSBicm9ubmVuIHZvb3IgVVJMJiMwMzk7cyBuaWV0IHRvZXN0YWFuJzsKJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnTmlldCBwcm9iZXJlbiBvbSBkZSBleGlmLWluZm9ybWF0aWUgdGUgbGV6ZW4gdmFuIGhldCBiZXN0YW5kIG9tIHZlcnZvbGdlbnMgZGUgYWZiZWVsZGluZyBqdWlzdCB0ZSByb3RlcmVuJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnR2VlZiBnZWVuIGltZy10YWcgbWVlIGluIGRlIG91dHB1dCwgYWxsZWVuIGRlIFVSTCB2YW4gZGUgZ2VjYWNoZWRlIGFmYmVlbGRpbmcuIERpdCBoZWVmdCBnZWVuIGVmZmVjdCB3YW5uZWVyIENHU21hcnRJbWFnZSB3b3JkdCBnZWJydWlrdCBpbiBlZW4gc3R5bGVzaGVldC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnU2NoYWtlbCBhbGxlIGNhY2hpbmcgdWl0IGVuIGZvcmNlZXIgaGVyYmVyZWtlbmluZyB2b29yIGFsbGUgZmlsdGVycyc7CiRsYW5nWydwYXJhbV9xdWFsaXR5J10gPSAnU3BlY2lmaWNlZXIgZGUga3dhbGl0ZWl0IHZhbiBkZSBvdXRwdXRhZmJlZWxkaW5nLiBVIG1vZXQgZWVuIHdhYXJkZSBpbnZ1bGxlbiB0dXNzZW4gZGUgMCBlbiAxMDAuJzsKJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1VzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9JnF1b3Q7YWxidW0mcXVvdDsnOwokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnTmVnZWVyIGZvdXRlbic7CiRsYW5nWydwYXJhbV9zcmMnXSA9ICdTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6DQo8dWw+DQogIDxsaT5GaXJzdCBsb29rIHRvIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHNyYyB2YWx1ZSBleGlzdHMgYXMgYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtLjwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgcm9vdF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSBzc2xfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCjwvdWw+DQpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNwbGl0IHRoZSBzcmMgcGFyYW1ldGVyIGludG8gbXVsdGlwbGUgYXJndW1lbnRzLCB3aGljaCBpcyB1c2VmdWwgZm9yIGV4YW1wbGUgd2hlbiB0aGUgcGF0aCB0byB0aGUgZmlsZSwgYW5kIHRoZSBmaWxlbmFtZSBhcmUgc3RvcmVkIGluIHNlcGFyYXRlIHNtYXJ0eSB2YXJpYWJsZXMuICAgWW91IGNhbiBzcGVjaWZ5IHRoZSBzcmMgYXMgc3JjMT1cJHRoZV9wYXRoIHNyYzI9XCR0aGVfZmlsZW5hbWUuICBUaGUgc3lzdGVtIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSAvIGluIGJldHdlZW4gZWFjaCBhcmd1bWVudC4gIFRoZXJlIGlzIG5vIGxpbWl0IHRvIHRoZSBudW1iZXIgb2Ygc3JjIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnR2VicnVpa3QgYmlqIGhldCBtYWtlbiB2YW4gZGUgaW1nIHRhZywgZ2VicnVpa3Qgdm9vciBlZW4gYWx0ZXJuYXRpZXZlIHN0eWxpbmcuICBiaWp2Ljogc3R5bGU9JnF1b3Q7Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3RpdGxlJ10gPSAnR2VlZiBoZXQgb3B0aW9uZWxlIHRpdGVsIGF0dHJpYnV1dCBvcCB2b29yIGRlIGltZy10YWcuICBiaWp2b29yYmVlbGQ6IHRpdGxlPSZxdW90O0RpdCBpcyBlZW4gdG9vbHRpcCZxdW90Oyc7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1Zvb3IgYmlqIGhldCBnZWJydWlrIHZhbiBkZSBpbWctdGFnIG1vZXQgdSBoaWVyIGRlIHdhYXJkZSB2b29yIGhldCBicmVlZHRlLWF0dHJpYnV1dCBvcGdlZ2V2ZW4uICBPcG1lcmtpbmc6IGFscyB1IGhpZXIgZ2VlbiB3YWFyZGUgaW52b2VydCBkYW4gemFsIGRlemUgd2FhcmRlIGF1dG9tYXRpc2NoIGJlcmVrZW50IHdvcmRlbiB6b2RhdCBkZSBtZWVzdGUgaW1nLXRhZ3MganVpc3Qgemlqbi4gIFUga3VudCBkZXplIGF1dG9tYXRpc2NoZSBiZXJla2VuaW5nIHVpdHNjaGFrZWxlbiBtZXQgZGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlcic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBnZSZpdW1sO25zdGFsbGVlcmQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGUgbWV0IGRlemUgbW9kdWxlIGdlYXNzb2NpZWVyZGUgZGF0YSBpcyB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTdGFuZGFhcmQgcGxhYXRzIHZvb3IgJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0dlYmFzZWVyZCBvcCBhZmJlZWxkaW5nc2dyb290dGUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NsaW1tZSBtb2R1cywgbWFhciBsaW1pdGVlciBhZmJlZWxkaW5nc2dyb290dGUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdHZWJhc2VlcmQgb3AgYWZiZWVsZGluZ3N0eXBlJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tbGVmdCddID0gJ0JlbmVkZW4gTGlua3MgKGJsKSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0JlbmVkZW4gQ2VudHJlZXIgKGJjKSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0J10gPSAnQmVuZWRlbiBSZWNodHMgKGJyKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcmxlZnQnXSA9ICdDZW50cmVlciBMaW5rcyAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQ2VudHJlZXIgKGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdDZW50cmVlciBSZWNodHMgKGNsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGxlZnQnXSA9ICdUb3AgTGlua3MgKHRsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ1RvcCBDZW50cmVlciAodGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wcmlnaHQnXSA9ICdUb3AgUmVjaHRzICh0ciknOwokbGFuZ1sncmVzaXppbmcnXSA9ICdIZXJzY2hhbGVuJzsKJGxhbmdbJ3NtYXJ0J10gPSAnU2xpbSc7CiRsYW5nWydzdWJtaXQnXSA9ICdPcHNsYWFuJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTQ1NTIxNTkyMi4xMzM3NDQ2MjQxLjEzMzc0NDYyNDEuMTMzNzQ0NjI0MS4xJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMzNzQ0NjI0MS4xLjEudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPXdpa2kuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvTWFpbl9QYWdlfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.CGImageBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlQmFzZSBpbXBsZW1lbnRzIEFycmF5QWNjZXNzCnsKICBwcml2YXRlICRfdHJhbnNwYXJlbnQ7CiAgcHJpdmF0ZSAkX3JzcmM7CiAgcHJpdmF0ZSAkX3NyY25hbWU7CiAgcHJpdmF0ZSAkX2RpcnR5OwogIHByaXZhdGUgJF9pbmZvOwogIHByaXZhdGUgc3RhdGljICRfa2V5cyA9IGFycmF5KCdkaXJ0eScsJ3JzcmMnLCd3aWR0aCcsJ2hlaWdodCcsJ3R5cGUnLCdmaWxlbmFtZScsJ25hbWUnLCd0cmFuc3BhcmVudCcpOwoKICBwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZV9uZXdfcnNyYygkbWltZXR5cGUsJHdpZHRoLCRoZWlnaHQpCiAgewogICAgc3dpdGNoKCAkbWltZXR5cGUgKQogICAgICB7CiAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOgoJJF9yc3JjID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCRoZWlnaHQpOwoJLy9pbWFnZWludGVybGFjZSgkX3JzcmMsIGZhbHNlKTsKCXJldHVybiAkX3JzcmM7CgogICAgICBjYXNlICdpbWFnZS9wbmcnOgoJLy8gZnJvbSBzdXBlcnNpemVyCgkkX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOyAgCgkkYmxhY2sgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX3JzcmMsMCwwLDAsMTI3KTsKCWltYWdlY29sb3J0cmFuc3BhcmVudCgkX3JzcmMsICRibGFjayk7ICAgCgkvLyBUdXJuIG9mZiB0cmFuc3BhcmVuY3kgYmxlbmRpbmcgKHRlbXBvcmFyaWx5KQoJaW1hZ2VhbHBoYWJsZW5kaW5nKCRfcnNyYywgZmFsc2UpOwoJLy8gQ3JlYXRlIGEgbmV3IHRyYW5zcGFyZW50IGNvbG9yIGZvciBpbWFnZQoJJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAwLCAwLCAwLCAxMjcpOwoJLy8gQ29tcGxldGVseSBmaWxsIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBuZXcgaW1hZ2Ugd2l0aCBhbGxvY2F0ZWQgY29sb3IuCglpbWFnZWZpbGwoJF9yc3JjLCAwLCAwLCAkY29sb3IpOwoJLy8gUmVzdG9yZSB0cmFuc3BhcmVuY3kgYmxlbmRpbmcKCWltYWdlc2F2ZWFscGhhKCRfcnNyYywgdHJ1ZSk7CgkvL2ltYWdlY29sb3J0cmFuc3BhcmVudCgkX3JzcmMsJGNvbG9yKTsKCgoJJHRoaXMtPl90cmFuc3BhcmVudCA9ICRjb2xvcjsKCgkvKgoJJF9yc3JjID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCRoZWlnaHQpOwoJJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAwLCAwLCAwLCAxMjcpOwoJLy9pbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9yc3JjLCRjb2xvcik7CgkvL2ltYWdlY29sb3J0cmFuc3BhcmVudCgkX3JzcmMsIGltYWdlY29sb3JhbGxvY2F0ZSgkX3JzcmMsIDAsIDAsIDApKTsgICAKCS8vIFR1cm4gb2ZmIHRyYW5zcGFyZW5jeSBibGVuZGluZyAodGVtcG9yYXJpbHkpCgkvL2ltYWdlYWxwaGFibGVuZGluZygkX3JzcmMsIGZhbHNlKTsKCS8vIENyZWF0ZSBhIG5ldyB0cmFuc3BhcmVudCBjb2xvciBmb3IgaW1hZ2UKCSR0aGlzLT5fdHJhbnNwYXJlbnQgPSAkY29sb3I7CgkvLyBDb21wbGV0ZWx5IGZpbGwgdGhlIGJhY2tncm91bmQgb2YgdGhlIG5ldyBpbWFnZSB3aXRoIGFsbG9jYXRlZCBjb2xvci4KCS8vaW1hZ2VmaWxsKCRfcnNyYywgMCwgMCwgJGNvbG9yKTsKCS8vIFJlc3RvcmUgdHJhbnNwYXJlbmN5IGJsZW5kaW5nCgkvL2ltYWdlc2F2ZWFscGhhKCRfcnNyYywgdHJ1ZSk7CgkqLwoJcmV0dXJuICRfcnNyYzsKCiAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CgkkX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOwoJaW1hZ2V0cnVlY29sb3J0b3BhbGV0dGUoJF9yc3JjLCB0cnVlLCAyNTYpOwoJaW1hZ2VhbHBoYWJsZW5kaW5nKCRfcnNyYywgZmFsc2UpOwoJaW1hZ2VzYXZlYWxwaGEoJF9yc3JjLHRydWUpOwoJJHRyYW5zcGFyZW50ID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAyNTUsIDI1NSwgMjU1LCAxMjcpOwoJaW1hZ2VmaWxsZWRyZWN0YW5nbGUoJF9yc3JjLCAwLCAwLCAkd2lkdGgsICRoZWlnaHQsICR0cmFuc3BhcmVudCk7CglpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9yc3JjLCAkdHJhbnNwYXJlbnQpOwoJcmV0dXJuICRfcnNyYzsKCiAgICAgIGRlZmF1bHQ6Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3QgY3JlYXRlIG5ldyBpbWFnZSBvZiB0eXBlICcuJG1pbWV0eXBlKTsKICAgICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaW5wdXQpCiAgewogICAgaWYoIGlzX29iamVjdCgkaW5wdXQpICYmICRpbnB1dCBpbnN0YW5jZW9mIENHSW1hZ2VCYXNlICApCiAgICAgIHsKCS8vIGNvcHkgY29uc3RydWN0b3IKCSR0aGlzLT5fcnNyYyA9ICRpbnB1dC0+X3JzcmM7CgkkdGhpcy0+X3NyY25hbWUgPSAkaW5wdXQtPl9zcmNuYW1lOwoJJHRoaXMtPl9pbmZvID0gJGlucHV0LT5faW5mbzsKCSR0aGlzLT5fZGlydHkgPSAxOwogICAgICB9CiAgICBlbHNlIGlmKCBpc19zdHJpbmcoJGlucHV0KSAmJiBpc19yZWFkYWJsZSgkaW5wdXQpICYmIGlzX2ZpbGUoJGlucHV0KSApCiAgICAgIHsKCSRkYXRhID0gZmlsZV9nZXRfY29udGVudHMoJGlucHV0KTsKCWlmKCAkZGF0YSAhPT0gRkFMU0UgKQoJICB7CgkgICAgJHRoaXMtPl9yc3JjID0gaW1hZ2VjcmVhdGVmcm9tc3RyaW5nKCRkYXRhKTsKCSAgICAkdGhpcy0+X3NyY25hbWUgPSAkaW5wdXQ7CgkgICAgJHRoaXMtPl9pbmZvID0gZ2V0aW1hZ2VzaXplKCRpbnB1dCk7CgkgICAgJHRoaXMtPl9pbmZvWzJdID0gaW1hZ2VfdHlwZV90b19taW1lX3R5cGUoJHRoaXMtPl9pbmZvWzJdKTsKCSAgICByZXR1cm47CgkgIH0KCXRocm93IG5ldyBFeGNlcHRpb24oJ1Byb2JsZW0gY3JlYXRpbmcgbmV3IENHSW1hZ2VCYXNlIG9iamVjdCBmcm9tICcuJGlucHV0KTsKICAgICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID09IDMgKQogICAgICB7CgkkdGhpcy0+X3JzcmMgPSAkdGhpcy0+Y3JlYXRlX25ld19yc3JjKCRpbnB1dFswXSwkaW5wdXRbMV0sJGlucHV0WzJdKTsKCSR0aGlzLT5faW5mbyA9IGFycmF5KCRpbnB1dFsxXSwkaW5wdXRbMl0sJGlucHV0WzBdKTsKCSR0aGlzLT5fZGlydHkgPSAxOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gY3JlYXRlIGEgQ0dJbWFnZUJhc2Ugb2JqZWN0IHdpdGggaW52YWxpZCBpbnB1dCcpOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cygkaykKICB7CiAgICByZXR1cm4gaW5fYXJyYXkoJGssQ0dJbWFnZUJhc2U6OiRfa2V5cyk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFVuc2V0KCRrKQogIHsKICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gdW5zZXQgYW4gYXR0cmlidXRlIG9mIGEgQ0dJbWFnZUJhc2Ugb2JqZWN0Jyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrKQogIHsKICAgICRrID0gc3RydG9sb3dlcigkayk7CiAgICBpZiggIWluX2FycmF5KCRrLENHSW1hZ2VCYXNlOjokX2tleXMpICkgCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IGludmFsaWQgYXR0cmlidXRlICcuJGsuJyBGcm9tIENHSW1hZ2VCYXNlJyk7CgogICAgc3dpdGNoKCAkayApCiAgICAgIHsKICAgICAgY2FzZSAncnNyYyc6CglyZXR1cm4gJHRoaXMtPl9yc3JjOwoJYnJlYWs7CgogICAgICBjYXNlICd3aWR0aCc6CglpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKQoJICB7CgkgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgaW5mb3JtYXRpb24gb24gdW5pbml0aWFsaXplZCBvYmplY3QnKTsKCSAgfQoJcmV0dXJuICR0aGlzLT5faW5mb1swXTsKCWJyZWFrOwoKICAgICAgY2FzZSAnaGVpZ2h0JzoKCWlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApCgkgIHsKCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbmZvcm1hdGlvbiBvbiB1bmluaXRpYWxpemVkIG9iamVjdCcpOwoJICB9CglyZXR1cm4gJHRoaXMtPl9pbmZvWzFdOwoJYnJlYWs7CgogICAgICBjYXNlICd0eXBlJzoKCWlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApCgkgIHsKCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbmZvcm1hdGlvbiBvbiB1bmluaXRpYWxpemVkIG9iamVjdCcpOwoJICB9CglyZXR1cm4gJHRoaXMtPl9pbmZvWzJdOwoJYnJlYWs7CgogICAgICBjYXNlICdkaXJ0eSc6CglyZXR1cm4gJHRoaXMtPl9kaXJ0eTsKCWJyZWFrOwoKICAgICAgY2FzZSAndHJhbnNwYXJlbnQnOgoJcmV0dXJuICR0aGlzLT5fdHJhbnNwYXJlbnQ7CglicmVhazsKCiAgICAgIGNhc2UgJ2ZpbGVuYW1lJzoKICAgICAgY2FzZSAnbmFtZSc6CglyZXR1cm4gJHRoaXMtPl9zcmNuYW1lOwoJYnJlYWs7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrLCR2KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGssQ0dJbWFnZUJhc2U6OiRfa2V5cykgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIEF0dGVtcHQgdG8gbW9kaWZ5IHRoZSBhdHRyaWJ1dGUgb2YgQ0dJbWFnZUJhc2UnKTsKICAgICAgfQoKICAgICR0aGlzLT5fZGlydHkgPSAxOwogICAgc3dpdGNoKCRrKQogICAgICB7CiAgICAgIGNhc2UgJ3JzcmMnOgogICAgICBjYXNlICdkaXJ0eSc6CiAgICAgIGNhc2UgJ3RyYW5zcGFyZW50JzoKCSRrID0gJ18nLiRrOwoJJHRoaXMtPiRrID0gJHY7CglicmVhazsKCiAgICAgIGNhc2UgJ3dpZHRoJzoKCWlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CgkkdGhpcy0+X2luZm9bMF0gPSAkdjsKCWJyZWFrOwoKICAgICAgY2FzZSAnaGVpZ2h0JzoKCWlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CgkkdGhpcy0+X2luZm9bMV0gPSAkdjsKCWJyZWFrOwoKICAgICAgY2FzZSAndHlwZSc6CglpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSAkdGhpcy0+X2luZm8gPSBhcnJheSgpOwoJJHRoaXMtPl9pbmZvWzJdID0gJHY7CglicmVhazsKCiAgICAgIGNhc2UgJ2ZpbGVuYW1lJzoKICAgICAgY2FzZSAnbmFtZSc6CgkkdGhpcy0+X3NyY25hbWUgPSAkdjsKCWJyZWFrOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNhdmUoJGZpbGVuYW1lLCRxdWFsaXR5ID0gNzUpCiAgewogICAgaWYoICEkdGhpcy0+X2RpcnR5ICkgcmV0dXJuOwogICAgCiAgICAkcmVzID0gJyc7CiAgICBzd2l0Y2goJHRoaXNbJ3R5cGUnXSkgCiAgICAgIHsKICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6CgkkcmVzID0gaW1hZ2VqcGVnKCR0aGlzWydyc3JjJ10sJGZpbGVuYW1lLCRxdWFsaXR5KTsKCWJyZWFrOwogICAgICBjYXNlICdpbWFnZS9wbmcnOgoJJHF1YWxpdHkgPSBjZWlsKCgxMDAuMCAtIChmbG9hdCkkcXVhbGl0eSkvMTAwLjAqMTAuMCk7CgkkcmVzID0gaW1hZ2VwbmcoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUsJHF1YWxpdHkpOwoJYnJlYWs7CiAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CgkkcmVzID0gaW1hZ2VnaWYoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUpOwoJYnJlYWs7CiAgICAgIGRlZmF1bHQ6Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3Qgc2F2ZSBpbWFnZSBvZiB0eXBlICcuJHRoaXNbJ3R5cGUnXSk7CiAgICAgIH0KCiAgICBpZiggJHJlcyApIHJldHVybjsKICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIHNhdmluZyBpbWFnZSBvZiB0eXBlICcuJHRoaXNbJ3R5cGUnXS4nIHRvICcuJGZpbGVuYW1lKTsKICB9Cgp9IC8vIGNsYXNzIENHSW1hZ2VCYXNlCgovLyAkaW1nMSA9IG5ldyBDR0ltYWdlKCRzb21lZmlsZW5hbWUpOwovLyAkZmlsdGVyID0gbmV3IENtc1NvbWV0aGluZ0ZpbHRlcigpOwovLyAkaW1nMiA9ICRmaWx0ZXItPnRyYW5zZm9ybSgkaW1nMSk7Ci8vICRpbWcyLT5zYXZlKCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImageFilterBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgphYnN0cmFjdCBjbGFzcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgLy8gcmV0dXJucyBhIENHSW1hZ2VCYXNlIG9iamVjdAogIGFic3RyYWN0IGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkaW1hZ2UpOwp9CgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Blur_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0JsdXJfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgLy8gbm90aGluZyBoZXJlLgogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9HQVVTU0lBTl9CTFVSKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0dBVVNTSUFOX0JMVVIpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Brightness_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0JyaWdodG5lc3NfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9icmlnaHRuZXNzID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICBpZiggZnVuY19udW1fYXJncygpICE9IDEgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGFyZ3VtZW50cyB0byAnLmdldF9jbGFzcygkdGhpcykpOwogICAgICB9CgogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGlzX2FycmF5KCRhcmdzKSApCiAgICAgIHsKCSR0aGlzLT5fYnJpZ2h0bmVzcyA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9icmlnaHRuZXNzID0gJGFyZ3M7CiAgICAgIH0KICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfQlJJR0hUTkVTUywkdGhpcy0+X2JyaWdodG5lc3MpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfQlJJR0hUTkVTUyk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Colorize_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0NvbG9yaXplX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfYXJncyA9IGFycmF5KDAsMCwwLDApOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgaWYoIGlzX2FycmF5KCRhcmdzWzBdKSApCiAgICAgIHsKCSRhcmdzID0gJGFyZ3NbMF07CiAgICAgIH0KCiAgICBmb3IoICRpID0gMDsgJGkgPCBtaW4oY291bnQoJHRoaXMtPl9hcmdzKSxjb3VudCgkYXJncykpOyAkaSsrICkKICAgICAgewoJJHRoaXMtPl9hcmdzWyRpXSA9IG1pbigyNTUsbWF4KDAsKGludCkkYXJnc1skaV0pKTsKICAgICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CiAgICAkdG1wID0gJHRoaXMtPl9hcmdzOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfQ09MT1JJWkUsJHRtcFswXSwkdG1wWzFdLCR0bXBbMl0sJHRtcFszXSk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9DT0xPUklaRSk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Contrast_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0NvbnRyYXN0X0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfY29udHJhc3QgPSAwOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgIGlmKCBmdW5jX251bV9hcmdzKCkgIT0gMSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgIH0KCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICRhcmdzID0gJGFyZ3NbMF07CiAgICBpZiggaXNfYXJyYXkoJGFyZ3MpICkKICAgICAgewoJJHRoaXMtPl9jb250cmFzdCA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9jb250cmFzdCA9ICRhcmdzOwogICAgICB9CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0NPTlRSQVNULCR0aGlzLT5fY29udHJhc3QpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfQ09OVFJBU1QpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Croptofit_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0Nyb3B0b2ZpdF9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHJpdmF0ZSAkX2Rlc3RfdyA9IDA7CiAgcHJpdmF0ZSAkX2Rlc3RfaCA9IDA7CiAgcHJpdmF0ZSAkX2xvYyA9ICdjJzsKICBwcml2YXRlICRfdXBzY2FsZSA9IDA7CiAgc3RhdGljIHByaXZhdGUgJF92YWxpZF9sb2NzID0gYXJyYXkoJ3RsJywndGMnLCd0cicsJ2NsJywnYycsJ2NyJywnYmwnLCdiYycsJ2JyJyk7CgogICAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICR0aGlzLT5fbG9jID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY3JvcHRvZml0X2RlZmF1bHRfbG9jJywnYycpOwogICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkKICAgICAgewoJaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKQoJICB7CgkgICAgJHRoaXMtPl9kZXN0X3cgPSAoaW50KSRpbnB1dFsnd2lkdGgnXTsKCSAgICAkdGhpcy0+X2Rlc3RfaCA9IChpbnQpJGlucHV0WydoZWlnaHQnXTsKCSAgfQoJZWxzZSBpZiAoIGlzc2V0KCRpbnB1dFsndyddKSApCgkgIHsKCSAgICAkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3J107CgkgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaCddOwoJICB9CglpZiggaXNzZXQoJGlucHV0Wydsb2MnXSkgJiYgaW5fYXJyYXkoJGlucHV0Wydsb2MnXSxzZWxmOjokX3ZhbGlkX2xvY3MpICkKCSAgewoJICAgICR0aGlzLT5fbG9jID0gJGlucHV0Wydsb2MnXTsKCSAgfQoJaWYoIGlzc2V0KCRpbnB1dFsndXBzY2FsZSddKSApIHsKCSAgJHRoaXMtPl91cHNjYWxlID0gKGludCkkaW5wdXRbJ3Vwc2NhbGUnXTsKCX0KICAgICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKQogICAgICB7CglpZiggY291bnQoJGlucHV0KSA+PSAyICkKCSAgewoJICAgICR0aGlzLT5fZGVzdF93ID0gKGludCl0cmltKCRpbnB1dFswXSk7CgkgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKCSAgICBpZiggY291bnQoJGlucHV0KSA+PSAzICYmIGluX2FycmF5KCRpbnB1dFsyXSxzZWxmOjokX3ZhbGlkX2xvY3MpICkgewoJICAgICAgJHRoaXMtPl9sb2MgPSAkaW5wdXRbMl07CgkgICAgfQoJICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDQgKSB7CgkgICAgICAkdGhpcy0+X3Vwc2NhbGUgPSAoaW50KSRpbnB1dFszXTsKCSAgICB9CgkgIH0KICAgICAgfQoKICAgIGlmKCAhJHRoaXMtPl91cHNjYWxlICkgewogICAgICAkdGhpcy0+X2Rlc3RfdyA9IGNnc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCd3aWR0aCcsJHRoaXMtPl9kZXN0X3cpOwogICAgICAkdGhpcy0+X2Rlc3RfaCA9IGNnc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCdoZWlnaHQnLCR0aGlzLT5fZGVzdF9oKTsKICAgIH0KCiAgICBpZiggJHRoaXMtPl9kZXN0X2ggPD0gMCB8fCAkdGhpcy0+X2Rlc3RfdyA8PSAwICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgc3BlY2lmaWVkIGZvciBDcm9wdG9maXQgZmlsdGVyIGNvbnN0cnVjdG9yJyk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgLy8gcHJldmVudCBhbnkgdXBzY2FsaW5nCiAgICAkdGhpcy0+X2Rlc3RfdyA9IG1pbigkdGhpcy0+X2Rlc3Rfdywkc3JjWyd3aWR0aCddKTsKICAgICR0aGlzLT5fZGVzdF9oID0gbWluKCR0aGlzLT5fZGVzdF9oLCRzcmNbJ2hlaWdodCddKTsKCiAgICAvLyBxdWljayBvcHRpbWl6YXRpb24gKG5vdGhpbmcgdG8gZG8pCiAgICBpZiggJHRoaXMtPl9kZXN0X3cgPT0gJHNyY1snd2lkdGgnXSAmJiAkdGhpcy0+X2Rlc3RfaCA9PSAkc3JjWydoZWlnaHQnXSApCiAgICAgIHsKCS8vJHNyY1snd2lkdGgnXSA9ICRzcmNbJ3dpZHRoJ107CglyZXR1cm4gJHNyYzsKICAgICAgfQoKICAgIC8vCiAgICAvLyBub3RlOiAgdGhpcyBjb2RlIGRldmVsb3BlZCBieSB1c2luZyB0aGUgZm9sbG93aW5nIHBhZ2UgYXMgYSByZWZlcmVuY2UKICAgIC8vIGh0dHA6Ly85MTEtbmVlZC1jb2RlLWhlbHAuYmxvZ3Nwb3QuY29tLzIwMDkvMDQvY3JvcC10by1maXQtaW1hZ2UtdXNpbmctYXNwcGhwLmh0bWwKICAgIC8vCiAgICAkc3JjX3JhdGlvID0gKGZsb2F0KSRzcmNbJ3dpZHRoJ10gLyAoZmxvYXQpJHNyY1snaGVpZ2h0J107CiAgICAkZGVzdF9yYXRpbyA9IChmbG9hdCkkdGhpcy0+X2Rlc3RfdyAvIChmbG9hdCkkdGhpcy0+X2Rlc3RfaDsKCiAgICAvLyBkZXRlcm1pbmUgdGhlIHNpemUgb2YgdGhlIHRlbXAgaW1hZ2UgdGhhdCBmaXRzIGludG8KICAgIC8vIHRoZSBkZXNpcmVkIGFyZWEgYnkgYXQgbGVhc3Qgb25lIGRpbWVuc2lvbi4KICAgICRuZXdfaCA9ICcnOwogICAgJG5ld193ID0gJyc7CiAgICBpZiggJHNyY19yYXRpbyA+PSAkZGVzdF9yYXRpbyApCiAgICAgIHsKCSRuZXdfaCA9IChpbnQpICR0aGlzLT5fZGVzdF9oOwoJJG5ld193ID0gKGludCkgY2VpbCgkdGhpcy0+X2Rlc3RfaCAqICRzcmNfcmF0aW8pOwogICAgICB9CiAgICBlbHNlIGlmKCAkc3JjX3JhdGlvIDwgJGRlc3RfcmF0aW8gKQogICAgICB7CgkkbmV3X3cgPSAoaW50KSAkdGhpcy0+X2Rlc3RfdzsKCSRuZXdfaCA9IChpbnQpIGNlaWwoJHRoaXMtPl9kZXN0X3cgLyAkc3JjX3JhdGlvICk7CiAgICAgIH0KCiAgICAvLyBnZXQgdGhlIHRyYW5zcGFyZW50IGNvbG9yIG9mIHRoZSBzb3VyY2UgaW1hZ2UuCiAgICAkdGMgPSBpbWFnZWNvbG9yYXQoJHNyY1sncnNyYyddLDAsJHNyY1snaGVpZ2h0J10tMSk7CiAgICAkdHIgPSAkdGcgPSAkdGIgPSAwOyAkdGEgPSAxMjc7CiAgICBpZiggJHRjID4gMCApCiAgICAgIHsKCSR0bXAgPSBpbWFnZWNvbG9yc2ZvcmluZGV4KCRzcmNbJ3JzcmMnXSwkdGMpOwoJJHRyID0gJHRtcFsncmVkJ107CgkkdGcgPSAkdG1wWydncmVlbiddOwoJJHRiID0gJHRtcFsnYmx1ZSddOwoJJHRhID0gJHRtcFsnYWxwaGEnXTsKICAgICAgfQoKICAgIC8vIGNyZWF0ZSB0ZW1wb3JhcnkgdHJhbnNwYXJlbnQgaW1hZ2UKICAgICR0bXBfcnNyYyA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdfdywkbmV3X2gpOwogICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCR0bXBfcnNyYywgVFJVRSk7CiAgICAkdHJhbnNwYXJlbnQgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkdG1wX3JzcmMsICR0ciwgJHRnLCAkdGIsICR0YSk7CiAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJHRtcF9yc3JjLCR0cmFuc3BhcmVudCk7CiAgICBpbWFnZWZpbGwoJHRtcF9yc3JjLCAwLCAwLCAkdHJhbnNwYXJlbnQpOwoKICAgIC8vIHJlc2l6ZSB0aGUgYmlnIGltYWdlIGludG8gdGhlIHRlbXBvcmFyeSB0cmFuc3BhcmVudCBpbWFnZQogICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkdG1wX3JzcmMsJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Nyb3B0b2ZpdCAtIHN0YWdlIDEgLSBmYWlsZWQnKTsKICAgICAgfQoKICAgIC8vIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0IGludG8gdGhlIGRlc3RpbmF0aW9uIGlhbWdlLgogICAgc3dpdGNoKCAkdGhpcy0+X2xvYyApCiAgICAgIHsKICAgICAgY2FzZSAndGwnOgoJJHgwID0gMDsKCSR5MCA9IDA7CglicmVhazsKCiAgICAgIGNhc2UgJ3RjJzoKCSR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApIC8gMjsKCSR5MCA9IDA7CglicmVhazsKCiAgICAgIGNhc2UgJ3RyJzoKCSR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwoJJHkwID0gMDsKCWJyZWFrOwoKICAgICAgY2FzZSAnY2wnOgoJJHgwID0gMDsKCSR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApIC8gMjsKCWJyZWFrOwoKICAgICAgY2FzZSAnY3InOgoJJHgwID0gKGludCkoICRuZXdfdyAtICR0aGlzLT5fZGVzdF93ICk7CgkkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CglicmVhazsKCiAgICAgIGNhc2UgJ2JsJzoKCSR4MCA9IDA7CgkkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKTsKCWJyZWFrOwoKICAgICAgY2FzZSAnYmMnOgoJJHgwID0gKGludCkoICRuZXdfdyAtICR0aGlzLT5fZGVzdF93ICkgLyAyOwoJJHkwID0gKGludCkoICRuZXdfaCAtICR0aGlzLT5fZGVzdF9oICk7CglicmVhazsKCiAgICAgIGNhc2UgJ2JyJzoKCSR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwoJJHkwID0gKGludCkoICRuZXdfaCAtICR0aGlzLT5fZGVzdF9oICk7CglicmVhazsKCiAgICAgIGNhc2UgJ2MnOgogICAgICBkZWZhdWx0OgoJLy8gY2VudGVyCgkkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKSAvIDI7CgkkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CglicmVhazsKICAgICAgfQoKICAgIC8vIGNyZWF0ZSBkZXN0aW5hdGlvbiBpbWFnZSBhdCB0aGUgZGVzaXJlZCB0aHVtYiBzaXplLgogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCRzcmNbJ3R5cGUnXSwkdGhpcy0+X2Rlc3RfdywkdGhpcy0+X2Rlc3RfaCkpOwoKICAgIC8vIHNldCB0aGlzIHRyYW5zcGFyZW50IGNvbG9yIGludG8gaW50byB0aGUgZGVzdCBpbWFnZS4KICAgICR0cmFuc3BhcmVudDIgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX2Rlc3RbJ3JzcmMnXSwgJHRyLCAkdGcsICR0YiwgJHRhKTsKICAgIGltYWdlY29sb3J0cmFuc3BhcmVudCgkX2Rlc3RbJ3JzcmMnXSwkdHJhbnNwYXJlbnQyKTsKICAgIGltYWdlZmlsbCgkX2Rlc3RbJ3JzcmMnXSwgMCwgMCwgJHRyYW5zcGFyZW50Mik7CgogICAgLy8gY29weSB0aGUgdGVtcCBpYW1nZSBpbnRvIHRoZSBkZXN0IGltYWdlLgogICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLFRSVUUpOwogICAgCiAgICAkcmVzID0gaW1hZ2Vjb3B5KCRfZGVzdFsncnNyYyddLCR0bXBfcnNyYywwLDAsJHgwLCR5MCwkbmV3X3csJG5ld19oKTsKICAgIC8vJHJlcyA9IGltYWdlY29weW1lcmdlKCRfZGVzdFsncnNyYyddLCR0bXBfcnNyYywkeDAsJHkwLDAsMCwkbmV3X3csJG5ld19oLDEwMCk7IHdvcmtzLgogICAgaWYoICRyZXMgPT09IEZBTFNFICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQ3JvcHRvZml0IC0gc3RhZ2UgMiAtIGZhaWxlZCcpOwogICAgICB9CiAgICBpbWFnZWRlc3Ryb3koJHRtcF9yc3JjKTsKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Crop_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0Nyb3BfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIGNvbnN0IEFMSUdOX1RPUCAgICA9ICd0b3AnOwogIGNvbnN0IEFMSUdOX0NFTlRFUiA9ICdjZW50ZXInOwogIGNvbnN0IEFMSUdOX0JPVFRPTSA9ICdib3R0b20nOwogIGNvbnN0IEFMSUdOX0xFRlQgICA9ICdsZWZ0JzsKICBjb25zdCBBTElHTl9SSUdIVCAgPSAncmlnaHQnOwoKICBwcml2YXRlICRfcGVyY2VudCA9IDUwOwogIHByaXZhdGUgJF9oX2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogIHByaXZhdGUgJF92X2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogICAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICAkcGVyY2VudCA9IDUwOwogICAgJGhfYWxpZ24gPSBDR0ltYWdlX0Nyb3BfRmlsdGVyOjpBTElHTl9DRU5URVI7CiAgICAkdl9hbGlnbiA9IENHSW1hZ2VfQ3JvcF9GaWx0ZXI6OkFMSUdOX0NFTlRFUjsKCiAgICBpZiggY2dlX2FycmF5Ojppc19oYXNoKCRpbnB1dCkgKQogICAgICB7CgkkcGVyY2VudCA9IChpbnQpJGlucHV0WydwZXJjZW50J107CgkkaF9hbGlnbiA9IHRyaW0oJHBhcmFtc1snaCddKTsKCSR2X2FsaWduID0gdHJpbSgkcGFyYW1zWyd2J10pOwogICAgICB9CiAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICApCiAgICAgIHsKCWlmKCBjb3VudCgkaW5wdXQpID4gMSApICRwZXJjZW50ID0gKGludCkkaW5wdXRbMF07CglpZiggY291bnQoJGlucHV0KSA9PSAzICkKCSAgewoJICAgICRoX2FsaWduID0gdHJpbSgkaW5wdXRbMV0pOwoJICAgICR2X2FsaWduID0gdHJpbSgkaW5wdXRbMl0pOwoJICB9CiAgICAgIH0KICAgIAogICAgJHRoaXMtPl9wZXJjZW50ID0gbWluKDEwMCxtYXgoMSwkcGVyY2VudCkpOwogICAgc3dpdGNoKCRoX2FsaWduKQogICAgICB7CiAgICAgIGNhc2UgJy0xJzoKICAgICAgY2FzZSAnbGVmdCc6CiAgICAgIGNhc2UgJ2wnOgoJJHRoaXMtPl9oX2FsaWduID0gc2VsZjo6QUxJR05fTEVGVDsKCWJyZWFrOwoJCiAgICAgIGNhc2UgJzAnOgogICAgICBjYXNlICdjJzoKICAgICAgY2FzZSAnY2VudGVyJzoKCSR0aGlzLT5faF9hbGlnbiA9IHNlbGY6OkFMSUdOX0NFTlRFUjsKCWJyZWFrOwoJCiAgICAgIGNhc2UgJzEnOgogICAgICBjYXNlICdyJzoKICAgICAgY2FzZSAncmlnaHQnOgoJJHRoaXMtPl9oX2FsaWduID0gc2VsZjo6QUxJR05fUklHSFQ7CglicmVhazsKCQogICAgICBkZWZhdWx0OgoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZSAnLiRoX2FsaWduLicgZm9yIGhvcml6b250YWwgYWxpZ25tZW50Jyk7CiAgICAgIH0KCiAgICBzd2l0Y2goJHZfYWxpZ24pCiAgICAgIHsKICAgICAgY2FzZSAnLTEnOgogICAgICBjYXNlICd0JzoKICAgICAgY2FzZSAndG9wJzoKCSR0aGlzLT5fdl9hbGlnbiA9IHNlbGY6OkFMSUdOX1RPUDsKCWJyZWFrOwoJCiAgICAgIGNhc2UgJzAnOgogICAgICBjYXNlICdjJzoKICAgICAgY2FzZSAnY2VudGVyJzoKCSR0aGlzLT5fdl9hbGlnbiA9IHNlbGY6OkFMSUdOX0NFTlRFUjsKCWJyZWFrOwoJCiAgICAgIGNhc2UgJzEnOgogICAgICBjYXNlICdiJzoKICAgICAgY2FzZSAnYm90dG9tJzoKCSR0aGlzLT5fdl9hbGlnbiA9IHNlbGY6OkFMSUdOX0JPVFRPTTsKCWJyZWFrOwoKICAgICAgZGVmYXVsdDoKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgJy4kaF9hbGlnbi4nIGZvciBob3Jpem9udGFsIGFsaWdubWVudCcpOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRuZXdfdyA9IChpbnQpKCRzcmNbJ3dpZHRoJ10gKiAkdGhpcy0+X3BlcmNlbnQgLyAxMDAuMCk7CiAgICAkbmV3X2ggPSAoaW50KSgkc3JjWydoZWlnaHQnXSAqICR0aGlzLT5fcGVyY2VudCAvIDEwMC4wKTsKCiAgICAkc3JjX3ggPSAwOwogICAgc3dpdGNoKCAkdGhpcy0+X2hfYWxpZ24gKQogICAgICB7CiAgICAgIGNhc2Ugc2VsZjo6QUxJR05fTEVGVDoKCSRzcmNfeCA9IDA7CglicmVhazsKCiAgICAgIGNhc2Ugc2VsZjo6QUxJR05fQ0VOVEVSOgoJJHNyY194ID0gKGludCkoKCRzcmNbJ3dpZHRoJ10gLSAkbmV3X3cpIC8gMik7CglicmVhazsKCiAgICAgIGNhc2Ugc2VsZjo6QUxJR05fUklHSFQ6Cgkkc3JjX3ggPSAkc3JjWyd3aWR0aCddIC0gJG5ld193OwoJYnJlYWs7CiAgICAgIH0KCiAgICAkc3JjX3kgPSAwOwogICAgc3dpdGNoKCAkdGhpcy0+X3ZfYWxpZ24gKQogICAgICB7CiAgICAgIGNhc2Ugc2VsZjo6QUxJR05fVE9QOgoJJHNyY195ID0gMDsKCWJyZWFrOwoKICAgICAgY2FzZSBzZWxmOjpBTElHTl9DRU5URVI6Cgkkc3JjX3kgPSAoaW50KSgoJHNyY1snaGVpZ2h0J10gLSAkbmV3X2gpIC8gMik7CglicmVhazsKCiAgICAgIGNhc2Ugc2VsZjo6QUxJR05fQk9UVE9NOgoJJHNyY195ID0gJHNyY1snaGVpZ2h0J10gPSAkbmV3X2g7CglicmVhazsKICAgICAgfQoKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgkc3JjWyd0eXBlJ10sJG5ld193LCRuZXdfaCkpOwogICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLCRzcmNfeCwkc3JjX3ksJG5ld193LCRuZXdfaCwkbmV3X3csJG5ld19oKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ2Nyb3AgZmFpbGVkJyk7CiAgICAgIH0KCiAgICByZXR1cm4gJF9kZXN0OwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Edgedetect_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0VkZ2VkZXRlY3RfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgLy8gbm90aGluZyBoZXJlLgogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9FREdFREVURUNUKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0VER0VERVRFQ1QpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Emboss_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0VtYm9zc19GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0VNQk9TUyk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9FTUJPU1MpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Flip_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogRmlsdGVyIGNsYXNzIGZvciBob3Jpem9udGFsbHkgZmxpcHBpbmcgYW4gaW1hZ2UuCiAqIAogKiBAYXV0aG9yIFJvYmVydCBDYW1wYmVsbCA8Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz4KICogQHBhY2thZ2UgQ0dTbWFydEltYWdlCiAqLwpjbGFzcyBDR0ltYWdlX0ZsaXBfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9tb2RlOwoKICBwdWJsaWMgZnVuY3Rpb24gY29uc3RydWN0KCkKICB7CiAgICBpZiggZnVuY19udW1fYXJncygpICE9IDEgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGFyZ3VtZW50cyB0byAnLmdldF9jbGFzcygkdGhpcykpOwogICAgICB9CgogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGlzX2FycmF5KCRhcmdzKSApCiAgICAgIHsKCSR0aGlzLT5fbW9kZSA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9tb2RlID0gJGFyZ3M7CiAgICAgIH0KICAgICR0aGlzLT5fbW9kZSA9IG1heCgwLCR0aGlzLT5fbW9kZSk7CiAgICAkdGhpcy0+X21vZGUgPSBtaW4oMiwkdGhpcy0+X21vZGUpOwogIH0KCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdXNpbmcgdGhlIHBhcmFtZXRlcnMgc2V0CiAgICoKICAgKiBAcGFyYW0gQ0dJbWFnZUJhc2UgVGhlIGltYWdlIHRvIHRyYW5zZm9ybQogICAqIEByZXR1cm4gQ0dJbWFnZUJhc2UgVGhlIHRyYW5zZm9ybWVkIGltYWdlLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkd2lkdGggICAgICAgPSAkc3JjWyd3aWR0aCddOwogICAgJGhlaWdodCAgICAgID0gJHNyY1snaGVpZ2h0J107CgogICAgJHNyY194ICAgICAgID0gMDsKICAgICRzcmNfeSAgICAgICA9IDA7CiAgICAkc3JjX3dpZHRoICAgPSAkd2lkdGg7CiAgICAkc3JjX2hlaWdodCAgPSAkaGVpZ2h0OwoKICAgIHN3aXRjaCAoIChpbnQpICRtb2RlICkKICAgICAgewogICAgICBjYXNlIDA6Cgkkc3JjX3kgICAgICAgICAgICAgICAgPSAgICAkaGVpZ2h0OwoJJHNyY19oZWlnaHQgICAgICAgICAgID0gICAgLSRoZWlnaHQ7CiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlIDE6Cgkkc3JjX3ggICAgICAgICAgICAgICAgPSAgICAkd2lkdGg7Cgkkc3JjX3dpZHRoICAgICAgICAgICAgPSAgICAtJHdpZHRoOwogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAyOgoJJHNyY194ICAgICAgICAgICAgICAgID0gICAgJHdpZHRoOwoJJHNyY195ICAgICAgICAgICAgICAgID0gICAgJGhlaWdodDsKCSRzcmNfd2lkdGggICAgICAgICAgICA9ICAgIC0kd2lkdGg7Cgkkc3JjX2hlaWdodCAgICAgICAgICAgPSAgICAtJGhlaWdodDsKICAgICAgICBicmVhazsKCiAgICAgIGRlZmF1bHQ6CglyZXR1cm4gJGltZ3NyYzsKICAgICAgfQoKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgnaW1hZ2UvcG5nJywkd2lkdGgsJGhlaWdodCkpOwogICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCAoICRfZGVzdFsncnNyYyddLCAkc3JjWydyc3JjJ10sIDAsIDAsICRzcmNfeCwgJHNyY195LCAkd2lkdGgsICRoZWlnaHQsICRzcmNfd2lkdGgsICRzcmNfaGVpZ2h0ICk7CiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbWFnZSBUcmFuc2Zvcm0gRmFpbGVkJyk7CiAgICAgIH0KCiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Grayscale_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0dyYXlzY2FsZV9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0dSQVlTQ0FMRSk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9HUkFZU0NBTEUpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Meanremoval_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX01lYW5SZW1vdmFsX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfYXJncyA9IGFycmF5KDAsMCwwLDApOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHRtcCA9ICR0aGlzLT5fYXJnczsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX01FQU5fUkVNT1ZBTCk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9NRUFOX1JFTU9WQUwpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Negate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX05lZ2F0ZV9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICR0Y29sb3IgPSBpbWFnZWNvbG9yYXQoJHNyY1sncnNyYyddLDAsJHNyY1snaGVpZ2h0J10tMSk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9ORUdBVEUpOwogICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfZGVzdFsncnNyYyddLCR0Y29sb3IpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfTkVHQVRFKTsKICAgICAgfQogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Pixelate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1BpeGVsYXRlX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfc2l6ZSA9IDM7CiAgcHJpdmF0ZSAkX3BpeGVsYXRlID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgIGlmKCBpc19hcnJheSgkYXJnc1swXSkgJiYgY291bnQoJGFyZ3MpID09IDEgKQogICAgICAkYXJncyA9ICRhcmdzWzBdOwoKICAgIGlmKCBjb3VudCgkYXJncykgIT0gMiApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgIH0KCiAgICAkdGhpcy0+X3NpemUgPSAoaW50KSRhcmdzWzBdOwogICAgJHRoaXMtPl9waXhlbGF0ZSA9IChpbnQpJGFyZ3NbMV07CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX1BJWEVMQVRFLCR0aGlzLT5fcGl4ZWxhdGUpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfUElYRUxBVEUpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Resizetofit_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1Jlc2l6ZXRvZml0X0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfZGVzdF93ID0gMDsKICBwcml2YXRlICRfZGVzdF9oID0gMDsKICBwcml2YXRlICRfcjsKICBwcml2YXRlICRfZzsKICBwcml2YXRlICRfYjsKICBwcml2YXRlICRfYWxwaGEgPSAwOwogIHByaXZhdGUgJF90cmFuc3BhcmVudCA9IDA7CiAgICAKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgJHRoaXMtPl9sb2MgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCdjJyk7CiAgICBpZiggY2dlX2FycmF5Ojppc19oYXNoKCRpbnB1dCkgKQogICAgICB7CglpZiggaXNzZXQoJGlucHV0Wyd3aWR0aCddKSApCgkgIHsKCSAgICAkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwoJICAgICR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2hlaWdodCddOwoJICB9CgllbHNlIGlmICggaXNzZXQoJGlucHV0Wyd3J10pICkKCSAgewoJICAgICR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3cnXTsKCSAgICAkdGhpcy0+X2Rlc3RfaCA9IChpbnQpJGlucHV0WydoJ107CgkgIH0KCWlmKCBpc3NldCgkaW5wdXRbJ2NvbG9yJ10pICYmICRpbnB1dFsnY29sb3InXSAhPSAnJykKCSAgewoJICAgICRpbnB1dFsnY29sb3InXSA9IHN0cnRvbG93ZXIoJGlucHV0Wydjb2xvciddKTsKCSAgICBpZiggJGlucHV0Wydjb2xvciddICE9ICd0cmFuc3BhcmVudCcgKQoJICAgICAgewoJCWxpc3QoJHRoaXMtPl9yLCR0aGlzLT5fZywkdGhpcy0+X2IpID0gY2dzaV91dGlsczo6Y29sb3JfdG9fcmdiKHRyaW0oJGlucHV0Wydjb2xvciddKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSR0aGlzLT5fdHJhbnNwYXJlbnQgPSAxOwoJICAgICAgfQoJICB9CglpZiggaXNzZXQoJGlucHV0WydhbHBoYSddKSApCgkgIHsKCSAgICAkdGhpcy0+X2FscGhhID0gKGludCkkaW5wdXRbJ2FscGhhJ107CgkgIH0KICAgICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKQogICAgICB7CglpZiggY291bnQoJGlucHV0KSA+PSAyICkKCSAgewoJICAgICR0aGlzLT5fZGVzdF93ID0gKGludCl0cmltKCRpbnB1dFswXSk7CgkgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKCSAgICBpZiggY291bnQoJGlucHV0KSA+PSAzICkKCSAgICAgIHsKCQlpZiggJGlucHV0WzJdICE9ICcnICkKCQkgIHsKCQkgICAgJGlucHV0WzJdID0gc3RydG9sb3dlcigkaW5wdXRbMl0pOwoJCSAgICBpZiggJGlucHV0WzJdICE9ICd0cmFuc3BhcmVudCcgKQoJCSAgICAgIHsKCQkJbGlzdCgkdGhpcy0+X3IsJHRoaXMtPl9nLCR0aGlzLT5fYikgPSBjZ3NpX3V0aWxzOjpjb2xvcl90b19yZ2IodHJpbSgkaW5wdXRbMl0pKTsKCQkgICAgICB9CgkJICAgIGVsc2UKCQkgICAgICB7CgkJCSR0aGlzLT5fdHJhbnNwYXJlbnQgPSAxOwoJCSAgICAgIH0KCQkgIH0KCQlpZiggY291bnQoJGlucHV0KSA+PSA0ICkKCQkgIHsKCQkgICAgaWYoICRpbnB1dFszXSAhPSAnJyApICR0aGlzLT5fYWxwaGEgPSAoaW50KSRpbnB1dFszXTsKCQkgIH0KCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgJHRoaXMtPl9kZXN0X3cgPSBjZ3NpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnd2lkdGgnLCR0aGlzLT5fZGVzdF93KTsKICAgICR0aGlzLT5fZGVzdF9oID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ2hlaWdodCcsJHRoaXMtPl9kZXN0X2gpOwoKICAgIC8vIHRvZG86IGNvbnZlcnQgY29sb3IgbmFtZSBpbnRvIHJnYi4KICAgIGlmKCAkdGhpcy0+X2Rlc3RfaCA8PSAwIHx8ICR0aGlzLT5fZGVzdF93IDw9IDAgfHwgJHRoaXMtPl9hbHBoYSA8IDAgfHwgJHRoaXMtPl9hbHBoYSA+IDEyNyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWVzIHNwZWNpZmllZCBmb3IgQ3JvcHRvZml0IGZpbHRlciBjb25zdHJ1Y3RvcicpOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgIC8vIHByZXZlbnQgYW55IHVwc2NhbGluZwogICAgJHRoaXMtPl9kZXN0X3cgPSBtaW4oJHRoaXMtPl9kZXN0X3csJHNyY1snd2lkdGgnXSk7CiAgICAkdGhpcy0+X2Rlc3RfaCA9IG1pbigkdGhpcy0+X2Rlc3RfaCwkc3JjWydoZWlnaHQnXSk7CgogICAgLy8gcXVpY2sgb3B0aW1pemF0aW9uIChub3RoaW5nIHRvIGRvKQogICAgaWYoICR0aGlzLT5fZGVzdF93ID09ICRzcmNbJ3dpZHRoJ10gJiYgJHRoaXMtPl9kZXN0X2ggPT0gJHNyY1snaGVpZ2h0J10gKQogICAgICB7CglyZXR1cm4gJHNyYzsKICAgICAgfQoKICAgIC8vIGNyZWF0ZSBvdXIgZGVzdGluYXRpb24gaW1hZ2UuCiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoYXJyYXkoJ2ltYWdlL3BuZycsJHRoaXMtPl9kZXN0X3csJHRoaXMtPl9kZXN0X2gpKTsKICAgIGltYWdlYWxwaGFibGVuZGluZygkX2Rlc3RbJ3JzcmMnXSwgVFJVRSk7CgogICAgLy8gZmlsbCBvdXIgaW1hZ2Ugd2l0aCBhIGNvbG9yIChvciB0cmFuc3BhcmVudCkKICAgICRjb2xvciA9ICcnOwogICAgaWYoICR0aGlzLT5fdHJhbnNwYXJlbnQgKQogICAgICB7CgkvLyBmaW5kIGEgcmFuZG9tIHVudXNlZCBjb2xvciBmb3IgdHJhbnNwYXJlbmN5LgoJJGZvdW5kID0gMDsKCXdoaWxlKCAhJGZvdW5kICkKCSAgewoJICAgICR0aGlzLT5fciA9IHJhbmQoMCwyNTUpOwoJICAgICR0aGlzLT5fZyA9IHJhbmQoMCwyNTUpOwoJICAgICR0aGlzLT5fYiA9IHJhbmQoMCwyNTUpOwoJICAgIGlmKCBpbWFnZWNvbG9yZXhhY3QoJHNyY1sncnNyYyddLCR0aGlzLT5fciwkdGhpcy0+X2csJHRoaXMtPl9iKSAhPSAtMSApCgkgICAgICB7CgkJJGZvdW5kID0gdHJ1ZTsKCSAgICAgIH0KCSAgfQoKCSRjb2xvciA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCRfZGVzdFsncnNyYyddLCAkdGhpcy0+X3IsICR0aGlzLT5fZywgJHRoaXMtPl9iLCAxMjcpOwoJaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfZGVzdFsncnNyYyddLCRjb2xvcik7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9kZXN0Wydyc3JjJ10sICR0aGlzLT5fciwgJHRoaXMtPl9nLCAkdGhpcy0+X2IsICR0aGlzLT5fYWxwaGEpOwogICAgICB9CiAgICBpbWFnZWZpbGwoJF9kZXN0Wydyc3JjJ10sIDAsIDAsICRjb2xvcik7CgogICAgaWYoICR0aGlzLT5fZGVzdF93ID4gJHRoaXMtPl9kZXN0X2ggKQogICAgICB7CgkvLyBoZWlnaHQgaXMgZ3JlYXRlci4uLiAKCSRuZXdfaCA9ICR0aGlzLT5fZGVzdF9oOwoJJG5ld193ID0gcm91bmQoKCRuZXdfaCAvICRzcmNbJ2hlaWdodCddKSAqICRzcmNbJ3dpZHRoJ10sIDApOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIHdpZHRoIGlzIGdyZWF0ZXIuCgkkbmV3X3cgPSAkdGhpcy0+X2Rlc3RfdzsKCSRuZXdfaCA9IHJvdW5kKCgkbmV3X3cgLyAkc3JjWyd3aWR0aCddKSAqICRzcmNbJ2hlaWdodCddLCAwKTsKICAgICAgfQoKICAgICR4MCA9IChpbnQpKCgkdGhpcy0+X2Rlc3RfdyAtICRuZXdfdykgLyAyKTsKICAgICR5MCA9IChpbnQpKCgkdGhpcy0+X2Rlc3RfaCAtICRuZXdfaCkgLyAyKTsKCiAgICAvLyByZXNpemUgdGhlIGJpZyBpbWFnZSBpbnRvIHRoZSB0ZW1wb3JhcnkgdHJhbnNwYXJlbnQgaW1hZ2UKICAgICRyZXMgPSBpbWFnZWNvcHlyZXNhbXBsZWQoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLCR4MCwkeTAsMCwwLCRuZXdfdywkbmV3X2gsJHNyY1snd2lkdGgnXSwkc3JjWydoZWlnaHQnXSk7CiAgICBpZiggJHJlcyA9PT0gRkFMU0UgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdSZXNpemV0b2ZpdCAtIHN0YWdlIDEgLSBmYWlsZWQnKTsKICAgICAgfQogICAgcmV0dXJuICRfZGVzdDsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Resize_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1Jlc2l6ZV9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHJpdmF0ZSAkX3dpZHRoOyAgICAgICAgIC8vIGRlc3Qgd2lkdGgKICBwcml2YXRlICRfaGVpZ2h0OyAgICAgICAgLy8gZGVzdCBoZWlnaHQKICBwcml2YXRlICRfZWRnZSA9IDA7CSAgIC8vZWRnZSBzaXplCiAgcHJpdmF0ZSAkX3BlcmNlbnQgPSAwOyAgIC8vIHNjYWxlIHRvIHBlcmNlbnQKICBwcml2YXRlICRfcmVzYW1wbGUgPSAxOyAgLy8gcmVzYW1wbGUsIHZzIHJlc2l6ZS4KICBwcml2YXRlICRfdXBzY2FsZSA9IDE7ICAgLy8gYWxsb3cgdXBzY2FsZSBieSBkZWZhdWx0LgoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyIGFyZ3MgKi8pCiAgewogICAgJGlucHV0ID0gZnVuY19nZXRfYXJncygpOwogICAgaWYoIGNvdW50KCRpbnB1dCkgPT0gMSAmJiBpc19hcnJheSgkaW5wdXRbMF0pICkKICAgICAgewoJJGlucHV0ID0gJGlucHV0WzBdOwogICAgICB9CgogICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkKICAgICAgewoJaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKQoJICB7CgkgICAgJHRoaXMtPl93aWR0aCA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwoJICB9CglpZiggaXNzZXQoJGlucHV0WydoZWlnaHQnXSkgKQoJICB7CgkgICAgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CgkgIH0KCWlmKCBpc3NldCgkaW5wdXRbJ3BlcmNlbnQnXSkgKQoJICB7CgkgICAgJHRoaXMtPl9wZXJjZW50ID0gKGludCkkaW5wdXRbJ3BlcmNlbnQnXTsKCSAgICAkdGhpcy0+X3BlcmNlbnQgPSBtaW4oMTAwLG1heCgxLCR0aGlzLT5fcGVyY2VudCkpOwoJICB9CglpZiggaXNzZXQoJGlucHV0WydyZXNhbXBsZSddKSApCgkgIHsKCSAgICAkdGhpcy0+X3Jlc2FtcGxlID0gKGludCkkaW5wdXRbJ3Jlc2FtcGxlJ107CgkgIH0KCWlmKCBpc3NldCgkaW5wdXRbJ3Vwc2NhbGUnXSkgKQoJICB7CgkgICAgJHRoaXMtPl91cHNjYWxlID0gKGludCkkaW5wdXRbJ3Vwc2NhbGUnXTsKCSAgfQogICAgICB9CiAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICYmIGNvdW50KCRpbnB1dCkgPj0gMiApCiAgICAgIHsKCSRpZHggPSAyOwoJc3dpdGNoKCAkaW5wdXRbMF0gKQoJICB7CgkgIGNhc2UgJ3AnOgoJICAgICR0aGlzLT5fcGVyY2VudCA9IChpbnQpJGlucHV0WzFdOwoJICAgIGJyZWFrOwoJICBjYXNlICd3JzoKCSAgICAkdGhpcy0+X3dpZHRoID0gKGludCkkaW5wdXRbMV07CgkgICAgYnJlYWs7CgkgIGNhc2UgJ2gnOgoJICAgICR0aGlzLT5faGVpZ2h0ID0gKGludCkkaW5wdXRbMV07CgkgICAgYnJlYWs7CgkgIGNhc2UgJ2UnOgoJICAgICR0aGlzLT5fZWRnZSA9IChpbnQpJGlucHV0WzFdOwoJICBjYXNlICdjJzoKCSAgICAkdGhpcy0+X3dpZHRoID0gKGludCkkaW5wdXRbMV07CgkgICAgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsyXTsKCSAgICAkaWR4ID0gMzsKCSAgICBicmVhazsKCSAgfQoKCWlmKCBjb3VudCgkaW5wdXQpID49ICRpZHggKSB7CgkgICR0aGlzLT5fdXBzY2FsZSA9IChpbnQpJGlucHV0WyRpZHhdOwoJfQogICAgICB9CgogICAgaWYoICR0aGlzLT5fd2lkdGggPiAwICkgewogICAgICAkdGhpcy0+X3dpZHRoID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkdGhpcy0+X3dpZHRoKTsKICAgIH0KICAgIGlmKCAkdGhpcy0+X2hlaWdodCA+IDAgKSB7CiAgICAgICR0aGlzLT5faGVpZ2h0ID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ2hlaWdodCcsJHRoaXMtPl9oZWlnaHQpOwogICAgfQogICAgaWYoICEoJHRoaXMtPl9wZXJjZW50ID4gMCB8fCAkdGhpcy0+X3dpZHRoID4gMCB8fCAkdGhpcy0+X2hlaWdodCA+IDAgfHwgJHRoaXMtPl9lZGdlID4gMCkgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdDb3VsZCBub3QgQ3JlYXRlIFJlc2l6ZSBGaWx0ZXIgLSBJbnZhbGlkIFBhcmFtZXRlcnMnKTsKICAgICAgfQogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX3RyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjLCRuZXdfdywkbmV3X2gpCiAgewogICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgIGlmKCAkbmV3X3cgPiAkc3JjWyd3aWR0aCddICB8fCAkbmV3X2ggPiAkc3JjWydoZWlnaHQnXSApIHsKCS8vIHVwc2NhbGluZwoJcmV0dXJuICRzcmM7CiAgICAgIH0KICAgIH0KCiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoYXJyYXkoJHNyY1sndHlwZSddLCRuZXdfdywkbmV3X2gpKTsKCiAgICAkcmVzID0gJyc7CiAgICBpZiggJHRoaXMtPl9yZXNhbXBsZSApCiAgICAgIHsKCSRyZXMgPSBpbWFnZWNvcHlyZXNhbXBsZWQoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkcmVzID0gaW1hZ2Vjb3B5cmVzaXplZCgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLDAsMCwkbmV3X3csJG5ld19oLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pOwogICAgICB9CiAgICBpZiggISRyZXMgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbWFnZSBUcmFuc2Zvcm0gRmFpbGVkJyk7CgogICAgcmV0dXJuICRfZGVzdDsKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3RyYW5zZm9ybV9wZXJjZW50YWdlKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJG5ld193ID0gKGludCkoKGZsb2F0KSRzcmNbJ3dpZHRoJ10gKiAoZmxvYXQpJHRoaXMtPl9wZXJjZW50IC8gMTAwLjApOwogICAgJG5ld19oID0gKGludCkoKGZsb2F0KSRzcmNbJ2hlaWdodCddICogKGZsb2F0KSR0aGlzLT5fcGVyY2VudCAvIDEwMC4wKTsKICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX3dpZHRoKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgLy8gY2FsY3VsYXRlIG5ldyB3aWR0aCBhbmQgaGVpZ2h0LCBwcmVzZXJ2aW5nIGFzcGVjdCByYXRpbwogICAgJG5ld193ID0gJHRoaXMtPl93aWR0aDsKICAgICRuZXdfaCA9IChpbnQpKCR0aGlzLT5fd2lkdGggKiAkc3JjWydoZWlnaHQnXSAvICRzcmNbJ3dpZHRoJ10pOwogICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3RyYW5zZm9ybV9oZWlnaHQoQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAvLyBjYWxjdWxhdGUgbmV3IHdpZHRoIGFuZCBoZWlnaHQsIHByZXNlcnZpbmcgYXNwZWN0IHJhdGlvCiAgICAkbmV3X2ggPSAkdGhpcy0+X2hlaWdodDsKICAgICRuZXdfdyA9IChpbnQpKCR0aGlzLT5faGVpZ2h0ICogJHNyY1snd2lkdGgnXSAvICRzcmNbJ2hlaWdodCddKTsKICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF90cmFuc2Zvcm1fZWRnZShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgIC8vZmluZCB0aGUgbG9uZ2VzdCBlZGdlIG9mIGltYWdlIGFuZCByZXNpemUgYmFzZWQgb24gaXQKICAgIGlmKCRzcmNbJ3dpZHRoJ10gPiAkc3JjWydoZWlnaHQnXSl7CiAgICAgICAgJG5ld193ID0gJHRoaXMtPl9lZGdlOwoJJG5ld193ID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkbmV3X3cpOwogICAgICAgICRuZXdfaCA9IChpbnQpKCR0aGlzLT5fZWRnZSAqICRzcmNbJ2hlaWdodCddIC8gJHNyY1snd2lkdGgnXSk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CgogICAgfWVsc2V7CiAgICAgICAgJG5ld19oID0gJHRoaXMtPl9lZGdlOwoJJG5ld19oID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ2hlaWdodCcsJG5ld19oKTsKICAgICAgICAkbmV3X3cgPSAoaW50KSgkdGhpcy0+X2VkZ2UgKiAkc3JjWyd3aWR0aCddIC8gJHNyY1snaGVpZ2h0J10pOwogICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogICAgfQogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3RyYW5zZm9ybV9jdXN0b20oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAvLyB0aGlzIGRvZXMgbm90IHByZXNlcnZlIGFzcGVjdCByYXRpby4KICAgICRuZXdfdyA9ICR0aGlzLT5fd2lkdGg7CiAgICAkbmV3X2ggPSAkdGhpcy0+X2hlaWdodDsKICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJGltZykKICB7CiAgICBpZiggJHRoaXMtPl9wZXJjZW50ID4gMCApCiAgICAgIHsKCS8vIHBlcmNlbnRhZ2UgcmVzaXplLgoJcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtX3BlcmNlbnRhZ2UoJGltZyk7CiAgICAgIH0KICAgICAgaWYoJHRoaXMtPl9lZGdlID4gMCAmJiAoJGltZ1snd2lkdGgnXSA+ICR0aGlzLT5fZWRnZSB8fCAkaW1nWydoZWlnaHQnXSA+ICR0aGlzLT5fZWRnZSkpewogICAgICAvL3Jlc2l6ZSBieSBsb25nZXN0IGVkZ2UKICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybV9lZGdlKCRpbWcpOwogICAgICB9CiAgICBpZiggJHRoaXMtPl93aWR0aCA+IDAgJiYgJHRoaXMtPl9oZWlnaHQgPT0gMCAmJiAkaW1nWyd3aWR0aCddID4gJHRoaXMtPl93aWR0aCApCiAgICAgIHsgCglyZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1fd2lkdGgoJGltZyk7CiAgICAgIH0KICAgIGlmKCAkdGhpcy0+X3dpZHRoID09IDAgJiYgJHRoaXMtPl9oZWlnaHQgPiAwICYmICRpbWdbJ2hlaWdodCddID4gJHRoaXMtPl9oZWlnaHQgKQogICAgICB7CglyZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1faGVpZ2h0KCRpbWcpOwogICAgICB9CiAgICBpZiggJHRoaXMtPl93aWR0aCA+IDAgJiYgJHRoaXMtPl9oZWlnaHQgPiAwICYmICRpbWdbJ3dpZHRoJ10gPiAkdGhpcy0+X3dpZHRoICYmICRpbWdbJ2hlaWdodCddID4gJHRoaXMtPl9oZWlnaHQgKQogICAgICB7CglyZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1fY3VzdG9tKCRpbWcpOwogICAgICB9CiAgICAvLyBub3RoaW5nIHRvIGRvLi4uLiBidXQgdHJpY2sgdGhlIGltYWdlIHRvIGJlIGRpcnR5LgogICAgJGltZ1snaGVpZ2h0J10gPSAkaW1nWydoZWlnaHQnXTsKICAgIHJldHVybiAkaW1nOwogIH0KfQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Rotate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogSW1hZ2Ugcm90YXRpb24gZmlsdGVyIGNsYXNzCiAqIAogKiBBbGxvd3Mgcm90YXRpbmcgYW4gaW1hZ2UgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRlZ3JlZXMuCiAqCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBDR1NtYXJ0SW1hZ2UKICovCmNsYXNzIENHSW1hZ2VfUm90YXRlX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICAvKioKICAgKiBUaGUgbnVtYmVyIG9mIGRlZ3JlZXMgdG8gcm90YXRlCiAgICoKICAgKiBAYWNjZXNzIHByaXZhdGUKICAgKiBAdmFyIGludGVnZXIKICAgKi8KICBwcml2YXRlICRfYW5nbGUgPSAwOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgaWYoIGlzX2FycmF5KCRhcmdzWzBdKSAmJiBjb3VudCgkYXJncykgPT0gMSkKICAgICAgewoJJGFyZ3MgPSAkYXJnc1swXTsKICAgICAgfQoKICAgIGlmKCBjb3VudCgkYXJncykgIT0gMSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHNwZWNpZmllZCBmb3IgJy5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgfQoKICAgICR0aGlzLT5fYW5nbGUgPSAoaW50KSRhcmdzWzBdICUgMzYwOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRhbmdsZSA9ICR0aGlzLT5fYW5nbGUgJSAzNjA7CiAgICBpZiggJGFuZ2xlID09IDAgKSByZXR1cm4gJHNyYzsgLy8gbm90aGluZyB0byBkby4KCiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CgogICAgaWYoICFmdW5jdGlvbl9leGlzdHMoJ2ltYWdlcm90YXRlJykgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbWFnZXJvdGF0ZSBmdW5jdGlvbiBub3QgZm91bmQnKTsKICAgICAgfQoKICAgICR0Y29sb3IgPSBpbWFnZWNvbG9yYXQoJHNyY1sncnNyYyddLDAsJHNyY1snaGVpZ2h0J10tMSk7CiAgICAkcmVzID0gaW1hZ2Vyb3RhdGUoJHNyY1sncnNyYyddLCR0aGlzLT5fYW5nbGUgKiAtMSwkdGNvbG9yKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfQ09MT1JJWkUpOwogICAgICB9CiAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJHJlcywkdGNvbG9yKTsKICAgICRfZGVzdFsncnNyYyddID0gJHJlczsKICAgICRfZGVzdFsnd2lkdGgnXSA9IGltYWdlc3goJHJlcyk7CiAgICAkX2Rlc3RbJ2hlaWdodCddID0gaW1hZ2VzeSgkcmVzKTsKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Roundedcorners_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1JvdW5kZWRjb3JuZXJzX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfcmFkaXVzOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogIHsKICAgIGlmKCBjZ2VfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApCiAgICAgIHsKCWlmKCBpc3NldCgkaW5wdXRbJ3JhZGl1cyddKSApCgkgIHsKCSAgICAkdGhpcy0+X3JhZGl1cyA9IChpbnQpJGlucHV0WydyYWRpdXMnXTsKCSAgfQogICAgICB9CiAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICkKICAgICAgewoJaWYoIGNvdW50KCRpbnB1dCkgPT0gMSApCgkgIHsKCSAgICAkdGhpcy0+X3JhZGl1cyA9IChpbnQpJGlucHV0WzBdOwoJICB9CiAgICAgIH0KCiAgICBpZiggJHRoaXMtPl9yYWRpdXMgPD0gMSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWVzIHNwZWNpZmllZCBmb3IgUm91bmRlZGNvcm5lcnMgZmlsdGVyIGNvbnN0cnVjdG9yJyk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJHdpZHRoID0gJHNyY1snd2lkdGgnXTsKICAgICRoZWlnaHQgPSAkc3JjWydoZWlnaHQnXTsKICAgICRyYWRpdXMgPSAkdGhpcy0+X3JhZGl1czsKCiAgICAvLyBjcmVhdGUgdGhlIG5ldyBpbWFnZSAKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgnaW1hZ2UvcG5nJywkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKSk7CiAgICAvL2ltYWdlYWxwaGFibGVuZGluZygkX2Rlc3RbJ3JzcmMnXSxUUlVFKTsKICAgIGltYWdlY29weSgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLDAsMCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgIC8vaW1hZ2VzYXZlYWxwaGEoJF9kZXN0Wydyc3JjJ10sdHJ1ZSk7CgogICAgLy8gZmluZCBhbiB1bnNlZCByZ2IgdHJpcGxldC4KICAgICRmb3VuZCA9IGZhbHNlOyAKICAgIHdoaWxlKCRmb3VuZCA9PSBmYWxzZSkgeyAKICAgICAgCiAgICAgICRyID0gcmFuZCgwLCAyNTUpOyAKICAgICAgJGcgPSByYW5kKDAsIDI1NSk7IAogICAgICAkYiA9IHJhbmQoMCwgMjU1KTsgCiAgICAgIAogICAgICBpZihpbWFnZWNvbG9yZXhhY3QoJHNyY1sncnNyYyddLCAkciwgJGcsICRiKSAhPSAoLTEpKSB7ICAgICAgICAgCiAgICAgICAgJGNvbG9yY29kZSA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCRfZGVzdFsncnNyYyddLCAkciwgJGcsICRiLCAxMjcpOyAKCWltYWdlY29sb3J0cmFuc3BhcmVudCgkX2Rlc3RbJ3JzcmMnXSwkY29sb3Jjb2RlKTsKICAgICAgICAkZm91bmQgPSB0cnVlOyAgICAgICAgIAogICAgICB9CiAgICB9CgogICAgLy8gICAgaW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvaW1hZ2VTbW9vdGhBcmNfb3B0aW1pemVkLnBocCcpOwoKICAgIC8vIHJvdW5kIHRoZSBjb3JuZXJzLgogICAgaW1hZ2VhcmMoJF9kZXN0Wydyc3JjJ10sJHJhZGl1cy0xLCRyYWRpdXMtMSwkcmFkaXVzKjIsJHJhZGl1cyoyLCAxODAsIDI3MCwgJGNvbG9yY29kZSk7CiAgICBpbWFnZWZpbGx0b2JvcmRlcigkX2Rlc3RbJ3JzcmMnXSwwLDAsJGNvbG9yY29kZSwkY29sb3Jjb2RlKTsKICAgIAogICAgaW1hZ2VhcmMoJF9kZXN0Wydyc3JjJ10sICR3aWR0aC0kcmFkaXVzLCAkcmFkaXVzLTEsICRyYWRpdXMqMiwgJHJhZGl1cyoyLCAyNzAsIDAsICRjb2xvcmNvZGUpOyAKICAgIGltYWdlZmlsbHRvYm9yZGVyKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtMSwgMCwgJGNvbG9yY29kZSwgJGNvbG9yY29kZSk7CgogICAgaW1hZ2VhcmMoJF9kZXN0Wydyc3JjJ10sICRyYWRpdXMtMSwgJGhlaWdodC0kcmFkaXVzLCAkcmFkaXVzKjIsICRyYWRpdXMqMiwgOTAsIDE4MCwgJGNvbG9yY29kZSk7IAogICAgaW1hZ2VmaWxsdG9ib3JkZXIoJF9kZXN0Wydyc3JjJ10sIDAsICRoZWlnaHQtMSwgJGNvbG9yY29kZSwgJGNvbG9yY29kZSk7CgogICAgaW1hZ2VhcmMoJF9kZXN0Wydyc3JjJ10sICR3aWR0aC0kcmFkaXVzLCAkaGVpZ2h0LSRyYWRpdXMsICRyYWRpdXMqMiwgJHJhZGl1cyoyLCAwLCA5MCwgJGNvbG9yY29kZSk7IAogICAgaW1hZ2VmaWxsdG9ib3JkZXIoJF9kZXN0Wydyc3JjJ10sICR3aWR0aC0xLCAkaGVpZ2h0LTEsICRjb2xvcmNvZGUsICRjb2xvcmNvZGUpOwoKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Selectiveblur_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogU2VsZWN0aXZlIEJsdXIgaW1hZ2UgZmlsdGVyIGNsYXNzCiAqCiAqIFBlcmZvcm1zIGEgc2VsZWN0aXZlIGJsdXIgb24gdGhlIHByb3ZpZGVkIGltYWdlLgogKiBUaGVyZSBhcmUgbm8gcGFyYW1ldGVycyB0byB0aGlzIGZpbHRlcmluZyBtZXRob2QuCiAqCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBDR1NtYXJ0SW1hZ2UKICovCmNsYXNzIENHSW1hZ2VfU2VsZWN0aXZlYmx1cl9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UKICAgKgogICAqIEBwYXJhbSBDR0ltYWdlQmFzZSBUaGUgaW1hZ2UgdG8gdHJhbnNmb3JtCiAgICogQHJldHVybiBDR0ltYWdlQmFzZSBUaGUgdHJhbnNmb3JtZWQgaW1hZ2UuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICR0bXAgPSAkdGhpcy0+X2FyZ3M7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9TRUxFQ1RJVkVfQkxVUik7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9TRUxFQ1RJVkVfQkxVUik7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Smooth_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogU21vb3RoaW5nIEltYWdlIGltYWdlIGZpbHRlciBjbGFzcwogKiAKICogUGVyZm9ybXMgYSBzbW9vdGhpbmcgZmlsdGVyIG9uIHRoZSBzdXBwbGllZCBpbWFnZS4KICoKICogQGF1dGhvciBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+CiAqIEBwYWNrYWdlIENHU21hcnRJbWFnZQogKi8KY2xhc3MgQ0dJbWFnZV9TbW9vdGhfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIC8qKgogICAqIFRoZSBTbW9vdGhpbmcgU2ljZQogICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAqLwogIHByaXZhdGUgJF9zbW9vdGggPSAwOwoKICAvKioKICAgKiBDb25zdHJ1Y3Rvci4KICAgKgogICAqIFRoaXMgbWV0aG9kIGFjY2VwdHMgYSB2YXJpZXR5IG9mIHdheXMgb2Ygc3BlY2lmeWluZyB0aGUgc21vb3RobmVzcyBmYWN0b3IuCiAgICogaS5lOiAgJG9iaiA9IG5ldyBDR0ltYWdlX1Ntb290aF9GaWx0ZXIoMyk7CiAgICogaS5lOiAgJG9iaiA9IG5ldyBDR0ltYWdlX1Ntb290aF9GaWx0ZXIoYXJyYXkoMykpOwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiB2YXJpYWJsZSBhcmd1bWVudHMgKi8pCiAgewogICAgaWYoIGZ1bmNfbnVtX2FyZ3MoKSAhPSAxICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBhcmd1bWVudHMgdG8gJy5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgfQoKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgJGFyZ3MgPSAkYXJnc1swXTsKICAgIGlmKCBpc19hcnJheSgkYXJncykgKQogICAgICB7CgkkdGhpcy0+X3Ntb290aCA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9zbW9vdGggPSAkYXJnczsKICAgICAgfQogIH0KCgogIC8qKgogICAqIFRyYW5zZm9ybSB0aGUgc3BlY2lmaWVkIGltYWdlIHVzaW5nIHRoZSBwYXJhbWV0ZXJzIHNldAogICAqCiAgICogQHBhcmFtIENHSW1hZ2VCYXNlIFRoZSBpbWFnZSB0byB0cmFuc2Zvcm0KICAgKiBAcmV0dXJuIENHSW1hZ2VCYXNlIFRoZSB0cmFuc2Zvcm1lZCBpbWFnZS4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfU01PT1RILCR0aGlzLT5fc21vb3RoKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX1NNT09USCk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Watermark_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1dhdGVybWFya19GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHJpdmF0ZSAkX3dtaW1nID0gbnVsbDsKICBwcml2YXRlICRfd21pbmZvID0gbnVsbDsKICBwcml2YXRlICRfaG1hcmdpbiA9IDQwOwogIHByaXZhdGUgJF92bWFyZ2luID0gNDA7CiAgcHJpdmF0ZSAkX2hlaWdodCA9IG51bGw7CiAgcHJpdmF0ZSAkX3dpZHRoID0gbnVsbDsKICBwcml2YXRlICRfYWxpZ24gPSBjZ193YXRlcm1hcms6OkFMSUdOX01DOwogIHByaXZhdGUgJF90cmFuc2x1Y2VuY3kgPSA1MDsKICBwcml2YXRlICRfdXNlX21lcmdlID0gZmFsc2U7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgJGNnZSA9IGNnZV91dGlsczo6Z2V0X2NnZSgpOwogICAgJHR4dCA9ICRjZ2UtPkdldFByZWZlcmVuY2UoJ3dhdGVybWFya190ZXh0Jyk7CiAgICAkaW1nID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX2ZpbGUnKTsKICAgICR0aGlzLT5fYWxpZ24gPSAkY2dlLT5HZXRQcmVmZXJlbmNlKCd3YXRlcm1hcmtfYWxpZ25tZW50JyxjZ193YXRlcm1hcms6OkFMSUdOX01DKTsKICAgICR0aGlzLT5fdHJhbnNsdWNlbmN5ID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX3RyYW5zbHVjZW5jeScsNTApOwogICAgCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAKICAgIGlmKCAhZW1wdHkoJGltZykgJiYgZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkaW1nKSkgKQogICAgICB7CgkkdG1wID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkaW1nKTsKCSR0aGlzLT5fd21pbmZvID0gZ2V0aW1hZ2VzaXplKCR0bXApOwoJJHRoaXMtPl93aWR0aCA9ICR0aGlzLT5fd21pbmZvWzBdOwoJJHRoaXMtPl9oZWlnaHQgPSAkdGhpcy0+X3dtaW5mb1sxXTsKCSRkYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR0bXApOwoJJHRoaXMtPl93bWltZyA9IGltYWdlY3JlYXRlZnJvbXN0cmluZygkZGF0YSk7CiAgICAgIH0KICAgIGVsc2UgaWYoICFlbXB0eSgkdHh0KSApCiAgICAgIHsKCSRmb250ID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX2ZvbnQnKTsKCWlmKCAhc3RhcnRzd2l0aCgkZm9udCwnLycpICkKCSAgewoJICAgICRmb250ID0gJGNnZS0+R2V0TW9kdWxlUGF0aCgpLicvZm9udHMvJy4kZm9udDsKCSAgfQoJJHNpemUgPSAkY2dlLT5HZXRQcmVmZXJlbmNlKCd3YXRlcm1hcmtfdGV4dHNpemUnKTsKCSRhbmdsID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX3RleHRhbmdsZScsMCk7CgkkYW5nbCA9IChmbG9hdCkkYW5nbDsKCSRmY2xyID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX3RleHRjb2xvcicsJyMwMDAwMDAnKTsKCSRiY2xyID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX2JnY29sb3InLCcjZmZmZmZmJyk7CgkkdHBudCA9ICRjZ2UtPkdldFByZWZlcmVuY2UoJ3dhdGVybWFya190cmFuc3BhcmVudCcsMSk7CgoJaWYoICEkZm9udCB8fCAhJHNpemUgKSAKCSAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5zdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIGdlbmVyYXRlIHdhdGFybWFyay4uLiBFbnN1cmUgd2F0ZXJtYXJrIHByZWZlcmVuY2VzIGFyZSBzZXQgaW4gQ0dFeHRlbnNpb25zJyk7CgoJLy8gY2FsY3VsYXRlIGEgc2l6ZSBmb3IgdGhlIGltYWdlCgkkdG1wID0gaW1hZ2VmdGJib3goJHNpemUsJGFuZ2wsJGZvbnQsJHR4dCk7CgkkdGhpcy0+X3dpZHRoID0gYWJzKCR0bXBbMF0pK2FicygkdG1wWzJdKSskdGhpcy0+X2htYXJnaW47CgkkdGhpcy0+X2hlaWdodCA9IGFicygkdG1wWzFdKSthYnMoJHRtcFs1XSkrJHRoaXMtPl92bWFyZ2luOwoKCS8vIGNyZWF0ZSB0aGUgaW1hZ2UuCgkkdGhpcy0+X3dtaW1nID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHRoaXMtPl93aWR0aCwkdGhpcy0+X2hlaWdodCk7CgkkdGhpcy0+X3VzZV9tZXJnZSA9IHRydWU7CgkKCS8vIGJnY29sb3IKCSRyID0gaGV4ZGVjKHN1YnN0cigkYmNsciwxLDIpKTsgJGcgPSBoZXhkZWMoc3Vic3RyKCRiY2xyLDMsMikpOyAkYiA9IGhleGRlYyhzdWJzdHIoJGJjbHIsNSwyKSk7CgkkYmMgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkdGhpcy0+X3dtaW1nLCRyLCRnLCRiLCgkdHBudCk/MDoxMjcpOwoJLy8gZmlsbCB0aGUgYmFja2dyb3VuZAoJaW1hZ2VmaWxsZWRyZWN0YW5nbGUoJHRoaXMtPl93bWltZywwLDAsJHRoaXMtPl93aWR0aC0xLCR0aGlzLT5faGVpZ2h0LTEsJGJjKTsKCS8vIG1ha2UgdGhlIGJhY2tncm91bmQgdHJhbnNwYXJlbnQuCglpZiggJHRwbnQgKQoJICB7CgkgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCR0aGlzLT5fd21pbWcsJGJjKTsKCSAgfQoJCgkvLyBkcmF3IHRoZSBmb3JlZ3JvdW5kIHRleHQKCSRyID0gaGV4ZGVjKHN1YnN0cigkZmNsciwxLDIpKTsgJGcgPSBoZXhkZWMoc3Vic3RyKCRmY2xyLDMsMikpOyAkYiA9IGhleGRlYyhzdWJzdHIoJGZjbHIsNSwyKSk7CgkkZmMgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJHRoaXMtPl93bWltZywkciwkZywkYik7CgkkcmVzID0gaW1hZ2VUVEZUZXh0KCR0aGlzLT5fd21pbWcsJHNpemUsJGFuZ2wsKGludCkoJHRoaXMtPl9obWFyZ2luLzIpLChpbnQpKCR0aGlzLT5faGVpZ2h0IC0gJHRoaXMtPl92bWFyZ2luLzIpLAoJCQkgICAgJGZjLCRmb250LCR0eHQpOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkaW1hZ2UpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRpbWFnZSk7CiAgICBpZiggJGltYWdlWyd3aWR0aCddIDwgJHRoaXMtPl93aWR0aCB8fCAkaW1hZ2VbJ2hlaWdodCddIDwgJHRoaXMtPl9oZWlnaHQgKSAKICAgICAgewoJcmV0dXJuICRfZGVzdDsKICAgICAgfQoKICAgIC8vIEZpbmQgb3V0IHRoZSBwbGFjZW1lbnQgb2YgdGhlIHdhdGVybWFyawogICAgLy8gb24gdGhlIHJlc3VsdCBpbWFnZQogICAgJHBvc3ggPSAnJzsKICAgICRwb3N5ID0gJyc7CiAgICAkY3ggPSAoJGltYWdlWyd3aWR0aCddIC0gJHRoaXMtPl93aWR0aCkvMjsKICAgICRjeSA9ICgkaW1hZ2VbJ2hlaWdodCddIC0gJHRoaXMtPl9oZWlnaHQpLzI7ICAgIAogICAgc3dpdGNoKCAkdGhpcy0+X2FsaWduICkKICAgICAgewogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fVUw6CgkkcG9zeCA9IChpbnQpJHRoaXMtPl9wYWRkaW5nX3g7CgkkcG9zeSA9IChpbnQpJHRoaXMtPl9wYWRkaW5nX3k7CglicmVhazsKCiAgICAgIGNhc2UgY2dfd2F0ZXJtYXJrOjpBTElHTl9VQzoKCSRwb3N4ID0gJGN4OwoJJHBvc3kgPSAoaW50KSR0aGlzLT5fcGFkZGluZ195OwoJYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fVVI6CgkkcG9zeCA9IChpbnQpKCRpbWFnZVsnd2lkdGgnXSAtICR0aGlzLT5fd2lkdGgpOwoJJHBvc3kgPSAwOwoJYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fTUw6CgkkcG9zeCA9IDA7CgkkcG9zeSA9IChpbnQpJGN5OwoJYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fTUM6CgkkcG9zeCA9IChpbnQpJGN4OwoJJHBvc3kgPSAoaW50KSRjeTsKCWJyZWFrOwoKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX01SOgoJJHBvc3ggPSAoaW50KSgkaW1hZ2VbJ3dpZHRoJ10gLSAkdGhpcy0+X3dpZHRoKTsKCSRwb3N5ID0gKGludCkkY3k7CglicmVhazsKCiAgICAgIGNhc2UgY2dfd2F0ZXJtYXJrOjpBTElHTl9MTDoKCSRwb3N4ID0gKGludCkwOwoJJHBvc3kgPSAoaW50KSgkaW1hZ2VbJ2hlaWdodCddIC0gJHRoaXMtPl9oZWlnaHQpOwoJYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fTEM6CgkkcG9zeCA9IChpbnQpJGN4OwoJJHBvc3kgPSAoaW50KSgkaW1hZ2VbJ2hlaWdodCddIC0gJHRoaXMtPl9oZWlnaHQpOwoJYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fTFI6CiAgICAgIGRlZmF1bHQ6CgkkcG9zeCA9IChpbnQpKCRpbWFnZVsnd2lkdGgnXSAtICR0aGlzLT5fd2lkdGgpOwoJJHBvc3kgPSAoaW50KSgkaW1hZ2VbJ2hlaWdodCddIC0gJHRoaXMtPl9oZWlnaHQpOwoJYnJlYWs7CiAgICAgIH0KICAgIGlmKCAkcG9zeCA9PT0gJycgfHwgJHBvc3kgPT09ICcnICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICh3YXRlcm1hcmspIC0gY291bGQgbm90IGNhbGN1bGF0ZSBwb3NpdGlvbicpOwogICAgICB9CgogICAgJHJlcyA9ICcnOwogICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCR0aGlzLT5fd21pbWcsRkFMU0UpOwogICAgaWYoICR0aGlzLT5fdXNlX21lcmdlICkKICAgICAgewoJJHJlcyA9IGltYWdlY29weW1lcmdlKCRfZGVzdFsncnNyYyddLCR0aGlzLT5fd21pbWcsJHBvc3gsJHBvc3ksCgkJCSAgICAgIDAsMCwkdGhpcy0+X3dpZHRoLCR0aGlzLT5faGVpZ2h0LCR0aGlzLT5fdHJhbnNsdWNlbmN5KTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglpbWFnZXNhdmVhbHBoYSgkdGhpcy0+X3dtaW1nLFRSVUUpOwoJJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkX2Rlc3RbJ3JzcmMnXSwkdGhpcy0+X3dtaW1nLCRwb3N4LCRwb3N5LAoJCQkJICAwLDAsJHRoaXMtPl93aWR0aCwkdGhpcy0+X2hlaWdodCwkdGhpcy0+X3dpZHRoLCR0aGlzLT5faGVpZ2h0KTsKICAgICAgfQogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_DeviceAtlasPersonal_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NpX0RldmljZUF0bGFzUGVyc29uYWxfY2xpZW50IGV4dGVuZHMgY2dzaV9kZXZpY2VjYXBhYmlsaXRpZXNfY2xpZW50IAp7CiAgY29uc3QgcmVxdWVzdF91cmwgPSAnaHR0cDovL2RldmljZWF0bGFzLmFwcHNwb3QuY29tL3F1ZXJ5JzsKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXZpY2VfcmVzb2x1dGlvbigpCiAgewogICAgJGNsaWVudCA9IGNnZV9odHRwOjpnZXRfaHR0cCgpOwogICAgJGNsaWVudC0+c2V0TWV0aG9kKCdHRVQnKTsKICAgICRjbGllbnQtPnNldFRhcmdldChzZWxmOjpyZXF1ZXN0X3VybCk7CiAgICAkY2xpZW50LT5hZGRQYXJhbSgnVXNlci1BZ2VudCcsJHRoaXMtPmdldF9hZ2VudCgpKTsKICAgICRqc29uID0gJGNsaWVudC0+ZXhlY3V0ZSgpOwogICAgaWYoICEkanNvbiApIHsKICAgICAgLy8gbm8gZGF0YSwgcHJvYmFibHkgYSA0MDQgb3Igc29tZSBvdGhlciBlcnJvcgogICAgICBkZWJ1Z190b19sb2coJ25vIGRhdGEnKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgCiAgICAvLyBjb3VsZCBiZSB0cmFja2luZyBmYWlsdXJlcyBoZXJlCgogICAgJGRhdGEgPSBqc29uX2RlY29kZSgkanNvbixUUlVFKTsKICAgIGlmKCAhaXNzZXQoJGRhdGFbJ2Rpc3BsYXlXaWR0aCddKSB8fCAhaXNzZXQoJGRhdGFbJ2Rpc3BsYXlIZWlnaHQnXSkgKSB7CiAgICAgIC8vIGludmFsaWQgZGF0YS4KICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIHdvb3QsIGl0IHdvcmtlZC4KICAgICRyZXMgPSBhcnJheSgpOwogICAgJHJlc1snd2lkdGgnXSA9ICRkYXRhWydkaXNwbGF5V2lkdGgnXTsKICAgICRyZXNbJ2hlaWdodCddID0gJGRhdGFbJ2Rpc3BsYXlIZWlnaHQnXTsKICAgIHJldHVybiAkcmVzOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_devicecapabilities_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgphYnN0cmFjdCBjbGFzcyBjZ3NpX2RldmljZWNhcGFiaWxpdGllc19jbGllbnQgCnsKICBwcml2YXRlICRfYWdlbnQ7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXNlcl9hZ2VudCkKICB7CiAgICAkdGhpcy0+X2FnZW50ID0gJHVzZXJfYWdlbnQ7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2FnZW50KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9hZ2VudDsKICB9CgogIC8vIHJldHVybiBhcnJheSBvZiB3aWR0aCwgaGVpZ2h0IChpbiBwaXhlbHMpLCBvciBudWxsCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9kZXZpY2VfcmVzb2x1dGlvbigpOwp9IC8vIGVuZCBvZiBpbnRlcmZhY2UKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NpX3V0aWxzCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQogIHN0YXRpYyBwcml2YXRlICRfZGV2aWNlX2RhdGE7CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfYWxpYXNfb3B0aW9ucygkbmFtZSkKICB7CiAgICBzdGF0aWMgJGFsaWFzZXM7CiAgICBpZiggISRhbGlhc2VzICkKICAgICAgewoJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CgkkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxpYXNlcycpOwoJaWYoICEkdG1wICkgCgkgICRhbGlhc2VzID0gJ0ZBTFNFJzsKCWVsc2UKCSAgJGFsaWFzZXMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgfQogICAgaWYoIGlzX2FycmF5KCRhbGlhc2VzKSApCiAgICAgIHsKCSRrZXlzID0gYXJyYXlfa2V5cygkYWxpYXNlcyk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgka2V5cyk7ICRpKysgKQoJICB7CgkgICAgJGtleSA9ICRrZXlzWyRpXTsKCSAgICBpZiggJGFsaWFzZXNbJGtleV1bJ25hbWUnXSA9PSAkbmFtZSApCgkgICAgICB7CgkJcmV0dXJuICRhbGlhc2VzWyRrZXldWydvcHRpb25zJ107CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9leHBhbmRfcXVvdGVkX3N0cmluZygkc3RyKQogIHsKICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgJGNvbCA9ICcnOwogICAgJHNhZmUgPSAnJzsKICAgICRwcmV2X2NoYXIgPSAnJzsKICAgIGZvciggJGkgPSAwOyAkaSA8IHN0cmxlbigkc3RyKTsgJGkrKyApCiAgICAgIHsKCXN3aXRjaCggJHN0clskaV0gKQoJICB7CgkgIGNhc2UgJyAnOgoJICAgIGlmKCAhJHNhZmUgKQoJICAgICAgewoJCWlmKCBzdHJwb3MoJGNvbCwnPScpICE9PSBGQUxTRSApCgkJICB7CgkJICAgIGxpc3QoJGssJHYpID0gZXhwbG9kZSgnPScsJGNvbCwyKTsKCQkgICAgJHJlc3VsdFska10gPSAkdjsKCQkgIH0KCQkkY29sID0gJyc7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRjb2wgLj0gJHN0clskaV07CgkgICAgICB9CgkgICAgYnJlYWs7CgoJICBjYXNlICInIjoKCSAgY2FzZSAnIic6CgkgICAgaWYoICRwcmV2X2NoYXIgIT0gJ1xcJyApCgkgICAgICB7CgkJaWYoICRzdHJbJGldID09ICRzYWZlICkKCQkgIHsKCQkgICAgJHNhZmUgPSBudWxsOwoJCSAgfQoJCWVsc2UKCQkgIHsKCQkgICAgJHNhZmUgPSAkc3RyWyRpXTsKCQkgIH0KCSAgICAgIH0KCSAgICBicmVhazsKCgkgIGRlZmF1bHQ6CgkgICAgJGNvbCAuPSAkc3RyWyRpXTsKCSAgICBicmVhazsKCSAgfQoKCSRwcmV2X2NoYXIgPSAkc3RyWyRpXTsKICAgICAgfQoKICAgIGlmKCBzdHJsZW4oJGNvbCkgIT0gMCApCiAgICAgIHsKCWlmKCBzdHJwb3MoJGNvbCwnPScpICE9PSBGQUxTRSApCgkgIHsKCSAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRjb2wsMik7CgkgICAgJHJlc3VsdFska10gPSAkdjsKCSAgfQogICAgICB9CgogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2lzX3N0eWxlc2hlZXQoKQogIHsKICAgICR0bXAgPSBkZWJ1Z19iYWNrdHJhY2UoKTsKICAgIGZvcmVhY2goICR0bXAgYXMgJGVsZW0gKQogICAgICB7CglpZiggaXNzZXQoJGVsZW1bJ2Z1bmN0aW9uJ10pICYmICRlbGVtWydmdW5jdGlvbiddID09ICdzbWFydHlfY21zX2Z1bmN0aW9uX2Ntc19zdHlsZXNoZWV0JyApIHJldHVybiBUUlVFOwogICAgICB9CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb2xvcl90b19yZ2IoJHN0cikKICB7CiAgICAkc3RyID0gdHJpbSgkc3RyKTsKICAgICRyZXMgPSBhcnJheSgwLDAsMCk7CgogICAgaWYoIHN0YXJ0c3dpdGgoJHN0ciwnIycpICYmIHN0cmxlbigkc3RyKSA9PSA3ICkKICAgICAgewoJJHJlc1swXSA9IGhleGRlYyhzdWJzdHIoJHN0ciwxLDIpKTsKCSRyZXNbMV0gPSBoZXhkZWMoc3Vic3RyKCRzdHIsMywyKSk7CgkkcmVzWzJdID0gaGV4ZGVjKHN1YnN0cigkc3RyLDUsMikpOwoJcmV0dXJuICRyZXM7CiAgICAgIH0KICAgIAogICAgJHRtcCA9IGV4cGxvZGUoJzonLCRzdHIsMyk7CiAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgPT0gMyAmJiBpc19udW1lcmljKCR0bXBbMF0pICYmIGlzX251bWVyaWMoJHRtcFsxXSkgJiYgaXNfbnVtZXJpYygkdG1wWzFdKSApCiAgICAgIHsKCSRyZXNbMF0gPSAoaW50KSR0bXBbMF07CgkkcmVzWzFdID0gKGludCkkdG1wWzFdOwoJJHJlc1syXSA9IChpbnQpJHRtcFsyXTsKCXJldHVybiAkcmVzOwogICAgICB9CiAgICAKICAgIC8vIGFzc3VtZSBpdCdzIGEgY29sb3IgbmFtZS4KICAgIHN0YXRpYyAkX2NvbG9yczsKICAgIGlmKCAhaXNfYXJyYXkoJF9jb2xvcnMpICkKICAgICAgewoJJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy9jb2xvcnMuZGF0JzsKCSRkYXRhID0gZmlsZSgkZm4pOwoJaWYoIGNvdW50KCRkYXRhKSApCgkgIHsKCSAgICAkX2NvbG9ycyA9IGFycmF5KCk7CgkgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkKCSAgICAgIHsKCQlsaXN0KCRyZ2IsJG5hbWUpID0gZXhwbG9kZSgnLScsJGRhdGFbJGldLDIpOwoJCWlmKCAhc3RhcnRzd2l0aCgkcmdiLCcjJykgfHwgc3RybGVuKCRyZ2IpICE9IDcgfHwgJG5hbWUgPT0gJycgKSBjb250aW51ZTsKCgkJJHRtcCA9IGFycmF5KCk7CgkJJHRtcFswXSA9IGhleGRlYyhzdWJzdHIoJHJnYiwxLDIpKTsKCQkkdG1wWzFdID0gaGV4ZGVjKHN1YnN0cigkcmdiLDMsMikpOwoJCSR0bXBbMl0gPSBoZXhkZWMoc3Vic3RyKCRyZ2IsNSwyKSk7CgoJCSRfY29sb3JzW3N0cnRvbG93ZXIodHJpbSgkbmFtZSkpXSA9ICR0bXA7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgaWYoIGlzX2FycmF5KCRfY29sb3JzKSAmJiBpc3NldCgkX2NvbG9yc1skc3RyXSkgKQogICAgICB7CgkkcmVzID0gJF9jb2xvcnNbJHN0cl07CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmcHJvY2Vzc19pbWFnZSgkcGFyYW1zKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJHdhbnRfdHJhbnNmb3JtID0gMDsKICAgICRkb190cmFuc2Zvcm0gPSAwOwogICAgJGhhdmVfdHJhbnNmb3JtID0gMDsKICAgICRkZXN0X2ZuYW1lID0gJyc7CiAgICAkZGVzdF91cmwgPSAnJzsKICAgICRpbWcgPSAnJzsKICAgICRzcmNmaWxlID0gJyc7CiAgICAkcmVsID0gMDsKICAgICRvdXRwID0gYXJyYXkoKTsgIC8vIG91dHB1dCBwYXJhbXMKICAgICRvdXRwWydpZCddID0gJyc7CiAgICAkb3V0cFsnbmFtZSddID0gJyc7CiAgICAkb3V0cFsnY2xhc3MnXSA9ICcnOwogICAgJG91dHBbJ3N0eWxlJ10gPSAnJzsKICAgICRvdXRwWydzcmMnXSA9ICcnOwogICAgJG91dHBbJ3dpZHRoJ10gPSAnJzsKICAgICRvdXRwWydoZWlnaHQnXSA9ICcnOwogICAgJG91dHBbJ2Vycm9yJ10gPSAnJzsKICAgICRvcHAgPSBhcnJheSgpOyAgLy8gb3BlcmF0aW9uIHBhcmFtcwogICAgJG9wcFsnb3ZlcndyaXRlJ10gPSAwOwogICAgJG9wcFsnbm9iY2FjaGUnXSA9IDA7CiAgICAkb3BwWydub3JlbW90ZSddID0gMDsKICAgICRvcHBbJ25vZW1iZWQnXSA9IDA7CiAgICAkb3BwWydub2F1dG8nXSA9IDA7CiAgICAkb3BwWydub3JvdGF0ZSddID0gMDsKICAgICRvcHBbJ25vdGltZWNoZWNrJ10gPSAwOwogICAgJG9wcFsnbm9hdXRvc2NhbGUnXSA9IDA7CiAgICAkb3BwWydub3RhZyddID0gMDsKICAgICRvcHBbJ25vcmVzcG9uc2l2ZSddID0gMDsKICAgICRvcHBbJ25vYnJlYWtwb2ludHMnXSA9IDA7CiAgICAkb3BwWydtYXhfd2lkdGgnXSA9ICcnOwogICAgJG9wcFsnbWF4X2hlaWdodCddID0gJyc7CiAgICAkb3BwWydzcmMnXSA9ICcnOwogICAgJG9wcFsncXVhbGl0eSddID0gNzU7CiAgICAkb3BwWydmaWx0ZXJzJ10gPSBhcnJheSgpOwogICAgJHNyY2ltZ3NpemUgPSAnJzsgLy8gc3JjIGltYWdlIHNpemUKCiAgICAkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxpYXNlcycpOwogICAgaWYoICR0bXAgKSAkYWxpYXNlcyA9IHVuc2VyaWFsaXplKCR0bXApOwoKICAgIC8vIGZpcnN0IHBhc3MuLi4gZXhwYW5kIGFsaWFzZXMgYW5kIGJ1aWxkIHNyYwogICAgJG5ld19wYXJhbXMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgIHsKCWlmKCBzdGFydHN3aXRoKCRrZXksJ2FsaWFzJykgKQoJICB7CgkgICAgLy8gZXhwYW5kIGFsaWFzCgkgICAgJG9wdGlvbnMgPSBzZWxmOjpfZ2V0X2FsaWFzX29wdGlvbnMoJHZhbHVlKTsKCSAgICBpZiggJG9wdGlvbnMgKQoJICAgICAgewoJCS8vIHBhcnNlIGEgc3RyaW5nIGludG8gYW4gYXJyYXkgb2YgYXJndW1lbnRzLgoJCSRkYXRhID0gc2VsZjo6X2V4cGFuZF9xdW90ZWRfc3RyaW5nKCRvcHRpb25zKTsKCQlpZiggaXNfYXJyYXkoJGRhdGEpICkKCQkgIHsKCQkgICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKQoJCSAgICAgIHsKCQkJJG5ld19wYXJhbXNbJGtleV0gPSAkdmFsdWU7CgkJICAgICAgfQoJCSAgfQoJCWNvbnRpbnVlOwoJICAgICAgfQoJICB9CgllbHNlaWYoIHN0YXJ0c3dpdGgoJGtleSwnc3JjJykgJiYgJGtleSAhPSAnc3JjJyApCgkgIHsKCSAgICAvLyBoYW5kbGUgc3JjMSB0aHJvdWdoIHNyYzk5IGFyZ3VtZW50cy4KCSAgICBpZiggIWlzc2V0KCRuZXdfcGFyYW1zWydzcmMnXSkgKQoJICAgICAgewoJCSRuZXdfcGFyYW1zWydzcmMnXSA9ICcnOwoJICAgICAgfQoJICAgIGlmKCAhZW1wdHkoJG5ld19wYXJhbXNbJ3NyYyddKSAmJiAhZW5kc3dpdGgoJG5ld19wYXJhbXNbJ3NyYyddLCcvJykgKQoJICAgICAgewoJCSRuZXdfcGFyYW1zWydzcmMnXSAuPSAnLyc7CgkgICAgICB9CgkgICAgJG5ld19wYXJhbXNbJ3NyYyddIC49ICR2YWx1ZTsKCSAgICBjb250aW51ZTsKCSAgfQoKCS8vIGV2ZXJ5dGhpbmcgZWxzZSBqdXN0IGdldHMgYWRkZWQuCgkkbmV3X3BhcmFtc1ska2V5XSA9ICR2YWx1ZTsKICAgICAgfQogICAgJHBhcmFtcyA9ICRuZXdfcGFyYW1zOwoKICAgIC8vIHNlY29uZCBwYXNzLCBidWlsZCBvdXIgYXJyYXlzCiAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkKICAgICAgewoJaWYoIHN0YXJ0c3dpdGgoJGtleSwnZmlsdGVyXycpICkKCSAgewoJICAgIC8vIGhhbmRsZSBmaWx0ZXIgYXJndW1lbnQuCgkgICAgJGZpbHRlciA9IHVjd29yZHMoc3Vic3RyKCRrZXksc3RybGVuKCdmaWx0ZXJfJykpKTsKCSAgICAkYXJncyA9IGV4cGxvZGUoJywnLCR2YWx1ZSk7CgkgICAgJGNsYXNzbmFtZSA9ICdDR0ltYWdlXycuJGZpbHRlci4nX0ZpbHRlcic7CgkgICAgaWYoICFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkgKQoJICAgICAgewoJCSRvdXRwWydlcnJvciddID0gJG1vZC0+TGFuZygnZXJyb3JfdW5rbm93bmZpbHRlcicsJGZpbHRlcik7CgkJYnJlYWs7CgkgICAgICB9CgoJICAgIC8vIGFkZCBpdCB0byB0aGUgb3BzLgoJICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gYXJyYXkoJGNsYXNzbmFtZSwkYXJncyk7CgkgICAgLy8gZG9uZS4KCSAgICBjb250aW51ZTsKCSAgfQoKCXN3aXRjaCggJGtleSApCgkgIHsKCSAgY2FzZSAnY2xhc3MnOgoJICBjYXNlICdpZCc6CgkgIGNhc2UgJ3N0eWxlJzoKCSAgY2FzZSAnbmFtZSc6CgkgIGNhc2UgJ2FsdCc6CgkgIGNhc2UgJ3JlbCc6CgkgIGNhc2UgJ3RpdGxlJzoKCSAgICAkb3V0cFska2V5XSA9IHRyaW0oJHZhbHVlKTsKCSAgICBicmVhazsKCSAgY2FzZSAnd2lkdGgnOgoJICBjYXNlICdoZWlnaHQnOgoJICAgICRvdXRwWyRrZXldID0gKGludCkkdmFsdWU7CgkgICAgYnJlYWs7CgoJICBjYXNlICdtYXhfd2lkdGgnOgoJICBjYXNlICdtYXhfaGVpZ2h0JzoKCSAgICAkb3BwWyRrZXldID0gKGludCkkdmFsdWU7CgkgICAgYnJlYWs7CgoJICBjYXNlICdzcmMnOgoJICAgICRvcHBbJGtleV0gPSB0cmltKCR2YWx1ZSk7CgkgICAgYnJlYWs7CgoJICBjYXNlICdxdWFsaXR5JzoKCSAgICAkb3BwWydxdWFsaXR5J10gPSAoaW50KSR2YWx1ZTsKCSAgICAkb3BwWydxdWFsaXR5J10gPSBtaW4oMTAwLG1heCgwLCRvcHBbJ3F1YWxpdHknXSkpOwoJICAgIGJyZWFrOwoKCSAgY2FzZSAnb3ZlcndyaXRlJzoKCSAgY2FzZSAnbm90YWcnOgoJICBjYXNlICdub3JlbW90ZSc6CgkgIGNhc2UgJ25vcmVzcG9uc2l2ZSc6CgkgIGNhc2UgJ25vYnJlYWtwb2ludHMnOgoJICBjYXNlICdub2JjYWNoZSc6CgkgIGNhc2UgJ25vZW1iZWQnOgoJICBjYXNlICdub3JvdGF0ZSc6CiAgICAgICAgICBjYXNlICdub3RpbWVjaGVjayc6CgkgICAgJG9wcFska2V5XSA9IGNnZV91dGlsczo6dG9fYm9vbCgkdmFsdWUpOwoJICAgIGJyZWFrOwoJICB9CiAgICAgIH0KICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgISRvcHBbJ3NyYyddICkKICAgICAgewoJJG91dHBbJ2Vycm9yJ10gPSAkbW9kLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nLCdzcmMnKTsKICAgICAgfQoKICAgIC8vCiAgICAvLyBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgLi4uIHRoZSBhY3R1YWwgZmlsZW5hbWUKICAgIC8vCiAgICAkb3BwWydzcmMnXSA9IHVybGRlY29kZSgkb3BwWydzcmMnXSk7CiAgICBpZiggISRvdXRwWydlcnJvciddICYmIGZpbGVfZXhpc3RzKCRvcHBbJ3NyYyddKSApCiAgICAgIHsKCS8vIHVzZXIgc3BlY2lmaWVkIHRoZSBjb21wbGV0ZSBwYXRoIHRvIHRoZSBmaWxlLgoJJHNyY2ZpbGUgPSAkb3BwWydzcmMnXTsKCWlmKCBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCcvJykgKSAkcmVsID0gMTsKICAgICAgfSAgICAKICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgISRzcmNmaWxlICYmIHN0YXJ0c3dpdGgoJG9wcFsnc3JjJ10sJGNvbmZpZ1sndXBsb2Fkc191cmwnXSkgKQogICAgICB7CgkkdG1wID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkb3BwWydzcmMnXSk7CglpZiggZmlsZV9leGlzdHMoJHRtcCkgKSAkc3JjZmlsZSA9ICR0bXA7CiAgICAgIH0KICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgISRzcmNmaWxlICYmIHN0YXJ0c3dpdGgoJG9wcFsnc3JjJ10sJGNvbmZpZ1sncm9vdF91cmwnXSkgKQogICAgICB7CgkkdG1wID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1sncm9vdF91cmwnXSwkY29uZmlnWydyb290X3BhdGgnXSwkb3BwWydzcmMnXSk7CglpZiggZmlsZV9leGlzdHMoJHRtcCkgKSAkc3JjZmlsZSA9ICR0bXA7CiAgICAgIH0KICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgISRzcmNmaWxlICYmIHN0YXJ0c3dpdGgoJG9wcFsnc3JjJ10sJy8nKSApCiAgICAgIHsKCSR0bXAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddLCRvcHBbJ3NyYyddKTsKCWlmKCBmaWxlX2V4aXN0cygkdG1wKSApICRzcmNmaWxlID0gJHRtcDsKICAgICAgfQogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJiAhJHNyY2ZpbGUgKSB7CiAgICAgICR0bXAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCRvcHBbJ3NyYyddKTsKICAgICAgaWYoIGZpbGVfZXhpc3RzKCR0bXApICkgJHNyY2ZpbGUgPSAkdG1wOwogICAgfQogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJiAhJHNyY2ZpbGUgJiYgaXNzZXQoJGNvbmZpZ1snc3NsX3VybCddKSAmJiBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCRjb25maWdbJ3NzbF91cmwnXSkgKQogICAgICB7CgkkdG1wID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1snc3NsX3VybCddLCRjb25maWdbJ3Jvb3RfcGF0aCddLCRvcHBbJ3NyYyddKTsKCWlmKCBmaWxlX2V4aXN0cygkdG1wKSApICRzcmNmaWxlID0gJHRtcDsKICAgICAgfQogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJiAhJHNyY2ZpbGUgJiYgJG9wcFsnbm9yZW1vdGUnXSA9PSAwICYmIAoJKHN0YXJ0c3dpdGgoJG9wcFsnc3JjJ10sJ2h0dHA6JykgfHwgc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwnaHR0cHM6JykgfHwgc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwnZnRwOicpKSkKICAgICAgIHsKCSAvLyBva2F5LCBnb3R0YSBhc3N1bWUgdGhhdCB0aHMgaXMgYSByZW1vdGUgZmlsZQoJIC8vIGdldCBpdCwgYW5kIGNhY2hlIGl0LgoJICRjYWNoZWZpbGUgPSBUTVBfQ0FDSEVfTE9DQVRJT04uJy9jZ3NpXycubWQ1KCRvcHBbJ3NyYyddKS4nLmltZyc7CgkgaWYoICFmaWxlX2V4aXN0cygkY2FjaGVmaWxlKSApCgkgICB7CgkgICAgICRkYXRhID0gZmlsZV9nZXRfY29udGVudHMoJG9wcFsnc3JjJ10pOwoJICAgICBpZiggISRkYXRhICkgJG9wcFsnZXJyb3InXSA9ICRtb2QtPkxhbmcoJ2Vycm9yX3JlbW90ZWZpbGUnLCRvcHBbJ3NyYyddKTsKCSAgICAgaWYoICRkYXRhICkgZmlsZV9wdXRfY29udGVudHMoJGNhY2hlZmlsZSwkZGF0YSk7CgkgICB9CgkgJHNyY2ZpbGUgPSAkY2FjaGVmaWxlOwogICAgICAgfQogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJiAhJHNyY2ZpbGUgKSB7CiAgICAgICRvdXRwWydlcnJvciddID0gJG1vZC0+TGFuZygnZXJyb3Jfc3Jjbm90Zm91bmQnLCRvcHBbJ3NyYyddKTsKICAgIH0KCiAgICAvLyBnZXQgdGhlIHNvdXJjZSBpbWFnZSBzaXplCiAgICBpZiggISRvdXRwWydlcnJvciddICkgewogICAgICAkdG1wID0gZ2V0aW1hZ2VzaXplKCRzcmNmaWxlKTsKICAgICAgaWYoICFpc19hcnJheSgkdG1wKSB8fCBjb3VudCgkdG1wKSA8IDIgKSB7Cgkkb3V0cFsnZXJyb3InXSA9ICRtb2QtPkxhbmcoJ2Vycm9yX3NyY25vdGZvdW5kJywkb3BwWydzcmMnXSk7CiAgICAgIH0KICAgICAgZWxzZSB7Cgkkc3JjaW1nc2l6ZSA9IGFycmF5KCd3aWR0aCc9PiR0bXBbMF0sJ2hlaWdodCc9PiR0bXBbMV0pOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIGFyZSB3ZSBhdXRvbWFnaWNhbGx5IHJvdGF0aW5nLgogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJiAhJG9wcFsnbm9yb3RhdGUnXSAmJiBmdW5jdGlvbl9leGlzdHMoJ2V4aWZfcmVhZF9kYXRhJykgKQogICAgICB7CgkvLyBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgcm90YXRlIGZpbHRlciBpbiB0aGUgbGlzdCwgd2Ugd29uJ3Qgb3ZlcnJpZGUgdGhhdC4KCSRmbiA9IDA7Cglmb3IoICRmID0gMDsgJGYgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pOyAkZisrICkKCSAgewoJICAgIGlmKCAkb3BwWydmaWx0ZXJzJ11bJGZdWzBdID09ICdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInICkKCSAgICAgIHsKCQkkZm4gPSAxOwoJCWJyZWFrOwoJICAgICAgfQoJICB9CgoJaWYoICRmbiA9PSAwICkKCSAgewoJICAgIC8vIHdlIGNhbiB0cnkgdG8gcmVhZCB0aGUgZXhpZiBpbmZvcm1hdGlvbiB0byBmaW5kIGFuIG9yaWVudGF0aW9uLgoJICAgICRleGlmID0gQGV4aWZfcmVhZF9kYXRhKCRzcmNmaWxlLDAsVFJVRSk7CgkgICAgaWYoIGlzX2FycmF5KCRleGlmKSAmJiBpc3NldCgkZXhpZlsnSUZEMCddKSAmJiBpc3NldCgkZXhpZlsnSUZEMCddWydPcmllbnRhdGlvbiddKSAmJgoJCWlzX2ludCgkZXhpZlsnSUZEMCddWydPcmllbnRhdGlvbiddKSApCgkgICAgICB7CgoJCS8vIGZvdW5kIGFuIG9yaWVudGF0aW9uLCBub3cgd2UgZ290dGEgZmlndXJlIG91dCB3aGF0IGZpbHRlcnMgdG8gYWRkLgoJCSRvcmllbnRhdGlvbiA9IChpbnQpJGV4aWZbJ0lGRDAnXVsnT3JpZW50YXRpb24nXTsKCQkkbmV3X2ZpbHRlcnMgPSBhcnJheSgpOwoJCXN3aXRjaCggJG9yaWVudGF0aW9uICkKCQkgIHsKCQkgIGNhc2UgMToKCQkgICAgLy8gbm90aGluZy4KCQkgICAgYnJlYWs7CgkJICBjYXNlIDI6CgkJICAgIC8vIGhvcml6b250YWwgZmxpcC4KCQkgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9GbGlwX0ZpbHRlcicsMCk7CgkJICAgIGJyZWFrOwoJCSAgY2FzZSAzOgoJCSAgICAvLyByb3RhdGUgMTgwCgkJICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfUm90YXRlX0ZpbHRlcicsYXJyYXkoMTgwLDApKTsKCQkgICAgYnJlYWs7CgkJICBjYXNlIDQ6CgkJICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfRmxpcF9GaWx0ZXInLDEpOwoJCSAgICBicmVhazsKCQkgIGNhc2UgNToKCQkgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9GbGlwX0ZpbHRlcicsMSk7CgkJICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfUm90YXRlX0ZpbHRlcicsYXJyYXkoOTAsMCkpOwoJCSAgICBicmVhazsKCQkgIGNhc2UgNjoKCQkgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9Sb3RhdGVfRmlsdGVyJyxhcnJheSg5MCwwKSk7CgkJICAgIGJyZWFrOwoJCSAgY2FzZSA3OgoJCSAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX0ZsaXBfRmlsdGVyJywwKTsKCQkgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9Sb3RhdGVfRmlsdGVyJyxhcnJheSg5MCwwKSk7CgkJICAgIGJyZWFrOwoJCSAgY2FzZSA4OgoJCSAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInLGFycmF5KC05MCwwKSk7CgkJICAgIGJyZWFrOwoJCSAgfQoKCQkkb3BwWydmaWx0ZXJzJ10gPSBhcnJheV9tZXJnZSgkbmV3X2ZpbHRlcnMsJG9wcFsnZmlsdGVycyddKTsKCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gbm93IGRvIHNvbWUgaW50ZWxsaWdlbmNlLCBhbmQgc2VlIGlmIHRoZSB3aWR0aCwgYW5kIGhlaWdodCBhcmd1bWVudHMgcGFzc2VkIGluCiAgICAvLyBtYXRjaCB0aGUgaW1hZ2Ugc2l6ZS4uLiBpZiBub3QsIGFkZCBhIGZpbHRlci4KICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgKCRvdXRwWyd3aWR0aCddID4gMCB8fCAkb3V0cFsnaGVpZ2h0J10gPiAwKSAmJiAkb3BwWydub2F1dG9zY2FsZSddID09IDAgKQogICAgICB7CglpZiggJG91dHBbJ3dpZHRoJ10gIT0gJHNyY2ltZ3NpemVbJ3dpZHRoJ10gfHwgJG91dHBbJ2hlaWdodCddICE9ICRzcmNpbWdzaXplWydoZWlnaHQnXSApIHsKCSAgLy8gd2Ugd2FubmEgZGlzcGxheSB0aGUgZmlsZSBhdCBhIGRpZmZlcmVudCBkaW1lbmlvbi4KCSAgJGFyZ3MgPSAnJzsKCSAgJGZpbHRlciA9ICcnOwoJICBpZiggJG91dHBbJ3dpZHRoJ10gJiYgJG91dHBbJ2hlaWdodCddICkKCSAgICB7CgkgICAgICAvLyBnb25uYSBkbyBhIGNyb3AgdG8gZml0CgkgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfQ3JvcHRvZml0X0ZpbHRlcic7CgkgICAgICAkYXJncyA9IGFycmF5KChpbnQpJG91dHBbJ3dpZHRoJ10sKGludCkkb3V0cFsnaGVpZ2h0J10pOwoJICAgIH0KCSAgZWxzZSBpZiggJG91dHBbJ3dpZHRoJ10gKQoJICAgIHsKCSAgICAgIC8vIGdvbm5hIGRvIGEgcmVzaXplCgkgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CgkgICAgICAkYXJncyA9IGFycmF5KCd3JywoaW50KSRvdXRwWyd3aWR0aCddKTsKCSAgICB9CgkgIGVsc2UgaWYgKCAkb3V0cFsnaGVpZ2h0J10gKQoJICAgIHsKCSAgICAgIC8vIGdvbm5hIGRvIGEgcmVzaXplCgkgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CgkgICAgICAkYXJncyA9IGFycmF5KCdoJywoaW50KSRvdXRwWydoZWlnaHQnXSk7CgkgICAgfQoJICBpZiggaXNfYXJyYXkoJGFyZ3MpICYmICRmaWx0ZXIgIT0gJycgKQoJICAgIHsKCSAgICAgICRmb3VuZCA9IDA7CgkgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pOyAkaSsrICkKCQl7CgkJICBpZiggJG9wcFsnZmlsdGVycyddWyRpXVswXSA9PSAnQ0dJbWFnZV9SZXNpemVfRmlsdGVyJyApCgkJICAgIHsKCQkgICAgICAkZm91bmQgPSAxOwoJCSAgICAgIGJyZWFrOwoJCSAgICB9CgkJfQoJICAgICAgaWYoICEkZm91bmQgKQoJCXsKCQkgICRvcHBbJ2ZpbHRlcnMnXVtdID0gYXJyYXkoJGZpbHRlciwkYXJncyk7CgkJfQoJICAgIH0KCX0KICAgICAgfQoKICAgIC8vIGRvaW5nIHJlc3BvbnNpdmUgaW1hZ2VzLi4uIGdldCBkZXZpY2Ugd2lkdGggYW5kIGhlaWdodC4KICAgICRpc19yZXNwb25zaXZlID0gMDsKICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsMSkgJiYgJG9wcFsnbm9yZXNwb25zaXZlJ10gPT0gMCApIHsKICAgICAgJGRldmljZSA9IHNlbGY6OmdldF9kZXZpY2VfY2FwYWJpbGl0aWVzKCk7CiAgICAgIGlmKCBpc19hcnJheSgkZGV2aWNlKSAmJiBpc3NldCgkZGV2aWNlWyd3aWR0aCddKSAmJiBpc3NldCgkZGV2aWNlWydoZWlnaHQnXSkgKSB7CgkvLyB3ZSBmb3VuZCBkZXZpY2UgY2FwYWJpbGl0aWVzLgoKCS8vIHdlIGhhdmUgdG8gZG8gYXV0by1zY2FsaW5nIG5vdywgcmVzcG9uc2l2ZSBzdHVmZiB0cnVtcHMgaXQuCgkkb3BwWydub2F1dG9zY2FsZSddID0gMDsKCSRpc19yZXNwb25zaXZlID0gMTsKCQoJLy8gbWVyZ2UgdGhhdCBkYXRhIHdpdGggYW55IG1heF93aWR0aCBhbmQgbWF4X2hlaWdodCB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHN1cHBsaWVkLgoJJHcgPSBtYXgoMSwoaW50KSRkZXZpY2VbJ3dpZHRoJ10pOwoJaWYoICRvcHBbJ21heF93aWR0aCddID4gMCApIHsKCSAgJG9wcFsnbWF4X3dpZHRoJ10gPSBtaW4oJG9wcFsnbWF4X3dpZHRoJ10sJHcpOwoJfQoJZWxzZSB7CgkgICRvcHBbJ21heF93aWR0aCddID0gJHc7Cgl9CgkKCSRoID0gbWF4KDEsKGludCkkZGV2aWNlWydoZWlnaHQnXSk7CglpZiggJG9wcFsnbWF4X2hlaWdodCddID4gMCApIHsKCSAgJG9wcFsnbWF4X2hlaWdodCddID0gbWluKCRvcHBbJ21heF9oZWlnaHQnXSwkaCk7Cgl9CgllbHNlIHsKCSAgJG9wcFsnbWF4X2hlaWdodCddID0gJGg7Cgl9CiAgICAgIH0KICAgIH0KCiAgICAvLyBpZiB3ZSBoYXZlIG1heCB3aWR0aCBhbmQvb3IgaGVpZ2h0Li4uIGFkZCBhIGZpbHRlciBoZXJlIGF0IHRoZSBlbmQKICAgIC8vIHRvIG1ha2Ugc3VyZSB0aGF0IG91ciBvdXRwdXQgbmV2ZXIgZXhjZWVkcyB0aG9zZSBtYXggdmFsdWVzLgogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJgoJKCRvcHBbJ21heF93aWR0aCddID4gMCB8fCAkb3BwWydtYXhfaGVpZ2h0J10gPiAwKSAmJgoJJG9wcFsnbm9hdXRvc2NhbGUnXSA9PSAwICkgewoKICAgICAgLy8gaWYgd2UgaGF2ZSBicmVha3BvaW50cywgdXNlIGZpbmQgdGhlIGNsb3Nlc3Qgb25lCiAgICAgICRhcmdzID0gJyc7CiAgICAgICRmaWx0ZXIgPSAnJzsKICAgICAgJGJwID0gbnVsbDsKCQogICAgICBpZiggKCR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJykpICYmICRpc19yZXNwb25zaXZlID09IDEgJiYKCSAgISRvcHBbJ25vYnJlYWtwb2ludHMnXSApIHsKCSR0bXAgPSBleHBsb2RlKCcsJywkdG1wKTsKCSRicCA9IGFycmF5KCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKCSAgJHQxID0gKGludCl0cmltKCR0bXBbJGldKTsKCSAgaWYoICR0MSA+IDAgKSAkYnBbXSA9ICR0MTsKCX0KCWFzb3J0KCRicCk7CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCBpc19hcnJheSgkYnApICYmIGNvdW50KCRicCkgKSB7CgkvLyB3ZSBoYXZlIHZhbGlkIGJyZWFrcG9pbnRzLgoJJGx2YWwgPSBtYXgoJG9wcFsnbWF4X3dpZHRoJ10sJG9wcFsnbWF4X2hlaWdodCddKTsKCWZvciggJGkgPSBjb3VudCgkYnApLTE7ICRpID4gMDsgJGktLSApIHsKCSAgaWYoICRicFskaV0gPiAkbHZhbCApIGNvbnRpbnVlOwoJICBicmVhazsKCX0KCgkvLyByZXNpemUgdG8gbWF4aW11bSBkaW1lbnNpb24gb2YgbHZhbAoJLy8gbm90ZSwgaXQnZCBiZSBuaWNlIHRvIGhhdmUgc29tZSBraW5kIG9mIHNldHRpbmdzIGhlcmUKCS8vIGkuZTogd2hpY2ggZmlsZXIgKGFuZCBvdGhlciBwYXJhbXMpIHRvIHVzZS4KCSRsdmFsID0gJGJwWyRpXTsKCSRmaWx0ZXIgPSAnQ0dJbWFnZV9SZXNpemVfRmlsdGVyJzsKCSRhcmdzID0gYXJyYXkoJ2UnLCRsdmFsLDApOwogICAgICB9CiAgICAgIGVsc2UgewoJLy8gc3RhbmRhcmQgaGFuZGxpbmcgb2YgbWF4IHdpZHRoL21heCBoZWlnaHQuCglpZiggJG9wcFsnbWF4X3dpZHRoJ10gJiYgJG9wcFsnbWF4X2hlaWdodCddICkgewoJICAkZmlsdGVyID0gJ0NHSW1hZ2VfQ3JvcHRvZml0X0ZpbHRlcic7CgkgICRhcmdzID0gYXJyYXkoKGludCkkb3BwWydtYXhfd2lkdGgnXSwoaW50KSRvcHBbJ21heF9oZWlnaHQnXSk7Cgl9CgllbHNlIGlmKCAkb3BwWydtYXhfd2lkdGgnXSApIHsKCSAgJGZpbHRlciA9ICdDR0ltYWdlX1Jlc2l6ZV9GaWx0ZXInOwoJICAkYXJncyA9IGFycmF5KCd3JywoaW50KSRvcHBbJ21heF93aWR0aCddLDApOwoJfQoJZWxzZSBpZiggJG9wcFsnbWF4X2hlaWdodCddICkgewoJICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CgkgICRhcmdzID0gYXJyYXkoJ2gnLChpbnQpJG9wcFsnbWF4X2hlaWdodCddLDApOwoJfQogICAgICB9CiAgICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gYXJyYXkoJGZpbHRlciwkYXJncyk7CiAgICB9CiAgICAKICAgIC8vCiAgICAvLyBlbmQgb2Ygc21hcnRuZXNzIHN0dWZmLi4uIG5vdyBiZWdpbiB0aGUgd29yawogICAgLy8KICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgY291bnQoYXJyYXlfa2V5cygkb3BwWydmaWx0ZXJzJ10pKSApIHsKICAgICAgLy8KICAgICAgLy8gd2UncmUgZG9pbmcgc29tZSBraW5kIG9mIG1hZ2ljIHRvIHRoZSBpbWFnZS4KICAgICAgLy8KICAgICAgJHdhbnRfdHJhbnNmb3JtID0gMTsKICAgIH0KCiAgICBpZiggISRvdXRwWydlcnJvciddICYmICRzcmNmaWxlICYmICR3YW50X3RyYW5zZm9ybSApCiAgICAgIHsKCS8vIGNhbGN1bGF0ZSBvdXIgZGVzdGluYXRpb24gbmFtZSBhbmQgdXJsLgoJJHRtcCA9IGJhc2VuYW1lKCRzcmNmaWxlKTsKCSRleHQgPSBzdHJyY2hyKCR0bXAsJy4nKTsKCSR0MiA9IG1kNShzZXJpYWxpemUoJG9wcCkpOwoJJGRlc3RuYW1lID0gc3Vic3RyKCR0bXAsMCxzdHJsZW4oJHRtcCktc3RybGVuKCRleHQpKS4nLScuJHQyOwogICAgCgkkZGVzdGRpciA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddLicvXycuJG1vZC0+R2V0TmFtZSgpOwoJaWYoICFpc19kaXIoJGRlc3RkaXIpICkgeyAKCSAgQG1rZGlyKCRkZXN0ZGlyKTsKCSAgdG91Y2goJGRlc3RkaXIuJy9pbmRleC5odG1sJyk7Cgl9CglpZiggIWlzX2RpcigkZGVzdGRpcikgKQoJICB7CgkgICAgJG91dHBbJ2Vycm9yJ10gPSAkbW9kLT5MYW5nKCdlcnJvcl9ta2RpcicsJGRlc3RkaXIpOwoJICB9CgllbHNlCgkgIHsKCSAgICAvLyBzZWUgaWYgaXQgZXhpc3RzCgkgICAgJGRlc3RfZm5hbWUgPSAkZGVzdGRpci4nLycuJGRlc3RuYW1lLiRleHQ7CgoJICAgICRkZXN0X3VybCA9ICRtb2QtPmdldF9jYWNoZWRfaW1hZ2VfdXJsKCRkZXN0bmFtZSkuJGV4dDsKCSAgICAkdDEgPSBmaWxlbXRpbWUoJHNyY2ZpbGUpOwoJICAgICR0MiA9IGZpbGVfZXhpc3RzKCRkZXN0X2ZuYW1lKSA/IGZpbGVtdGltZSgkZGVzdF9mbmFtZSkgOiAwOwoJICAgIGlmKCAhZmlsZV9leGlzdHMoJGRlc3RfZm5hbWUpIHx8ICgoJHQyIDwgJHQxKSAmJiAhJG9wcFsnbm90aW1lY2hlY2snXSkgfHwgJG9wcFsnb3ZlcndyaXRlJ10gICkKCSAgICAgIHsKCQkkZG9fdHJhbnNmb3JtID0gMTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICBlbHNlIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgJHNyY2ZpbGUgKQogICAgICB7CgkvLyBubyB0cmFuc29mbXJhdGlvbi4uLiBqdXN0IHVzZSB0aGUgc3JjIGltYWdlCgkkZGVzdF9mbmFtZSA9ICRzcmNmaWxlOwoJJGRlc3RfdXJsID0gJG9wcFsnc3JjJ107CiAgICAgIH0KIAogICAgaWYoICEkb3V0cFsnZXJyb3InXSAmJiAkZG9fdHJhbnNmb3JtICkKICAgICAgewoJdHJ5CgkgIHsKCSAgICAvLyBsb2FkIHRoZSBpbWFnZS4KCSAgICAkaW1nID0gbmV3IENHSW1hZ2VCYXNlKCRzcmNmaWxlKTsKCgkgICAgLy8gcHJvY2VzcyBmaWx0ZXJzCgkgICAgJGkgPSAwOwoJICAgIHdoaWxlKCAhJG91dHBbJ2Vycm9yJ10gJiYgJGkgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pICkKCSAgICAgIHsKCQkkZmlsdGVyID0gJG9wcFsnZmlsdGVycyddWyRpXVswXTsKCQkkZmlsdGVyX29iaiA9IG5ldyAkZmlsdGVyKCRvcHBbJ2ZpbHRlcnMnXVskaV1bMV0pOwoJCSRpbWcgPSAkZmlsdGVyX29iai0+dHJhbnNmb3JtKCRpbWcpOwoJCSRpbWdbJ2RpcnR5J10gPSAxOyAvLyBmb3JjZSB0aGUgaW1hZ2UgZGlydHksIGp1c3Qgc28gdGhhdCB3ZSBjYW4gc2F2ZSBpdC4KCQkkaSsrOwoJICAgICAgfQoKCSAgICAvLyBhbmQgd3JpdGUgdGhlIHRoaW5nLgoJICAgIGlmKCAhJG91dHBbJ2Vycm9yJ10gJiYgaXNfb2JqZWN0KCRpbWcpICkKCSAgICAgIHsKCQlpZiggJGltZ1snZGlydHknXSApCgkJICB7CgkJICAgICRpbWctPnNhdmUoJGRlc3RfZm5hbWUsJG9wcFsncXVhbGl0eSddKTsKCQkgIH0KCSAgICAgIH0KCSAgfQoJY2F0Y2goIEV4Y2VwdGlvbiAkZSApCgkgIHsKCSAgICAkb3V0cFsnZXJyb3InXSA9ICRlLT5nZXRNZXNzYWdlKCk7CgkgIH0KICAgICAgfSAvLyBpZgoKICAgIC8vIGlmIHdlIGhhdmUgYW4gZXJyb3IsIGRpc3BsYXkgaXQuLi4gd2UncmUgZG9uZS4KICAgIGlmKCAkb3V0cFsnZXJyb3InXSAhPSAnJykKICAgICAgewoJcmV0dXJuICRvdXRwOwogICAgICB9CgogICAgLy8gYXQgdGhpcyBwb2ludCwgd2UncmUgcmVhZHkgdG8gaGFuZGxlIGJ1aWxkaW5nIHRoZSB0YWcuCiAgICBpZiggJG9wcFsnbm9iY2FjaGUnXSApCiAgICAgIHsKCSRkZXN0X3VybCAuPSAnP3g9Jy50aW1lKCk7ICAgICAgCiAgICAgIH0KCiAgICBpZiggIWlzc2V0KCRvdXRwWydhbHQnXSkgKQogICAgICB7CglpZiggJGRlc3RfZm5hbWUgKSAKCSAgJG91dHBbJ2FsdCddID0gYmFzZW5hbWUoJGRlc3RfZm5hbWUpOwoJZWxzZQoJICAkb3V0cFsnYWx0J10gPSBiYXNlbmFtZSgkc3JjZmlsZSk7CiAgICAgIH0KCiAgICAvLyBidWlsZCB0aGUgb3V0cHV0LgogICAgaWYoICRvcHBbJ25vdGFnJ10gfHwgc2VsZjo6X2lzX3N0eWxlc2hlZXQoKSApCiAgICAgIHsKCSRvdXRwWydzcmMnXSA9ICRkZXN0X3VybDsKCWlmKCAhJG9wcFsnbm9lbWJlZCddICYmICRtb2QtPmNhbl9lbWJlZCgkZGVzdF9mbmFtZSkgKQoJICB7CgkgICAgJHR5cGUgPSBjZ2VfdXRpbHM6OmdldF9taW1lX3R5cGUoJGRlc3RfZm5hbWUpOwoJICAgIGlmKCAkdHlwZSAmJiAkdHlwZSAhPSAndW5rbm93bicgKSAKCSAgICAgIHsKCQkkdG1wID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZGVzdF9mbmFtZSkpOwoJCSRvdXRwWydzcmMnXSA9ICdkYXRhOicuJHR5cGUuJztiYXNlNjQsJy4kdG1wOwoJICAgICAgfQoJICB9CgllbHNlCgkgIHsKCSAgICAkb3V0cFsnc3JjJ10gPSAkZGVzdF91cmw7CgkgIH0KCglpZiggIWlzc2V0KCRvdXRwWydvdXRwdXQnXSkgKQoJICB7CgkgICAgJG91dHBbJ291dHB1dCddID0gJG91dHBbJ3NyYyddOzsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vCgkvLyBnb3R0YSBidWlsZCBhIHRhZy4KCS8vCgkvLyBnZXQgdGhlIHNyYyBmaXJzdC4KCWlmKCAhJG9wcFsnbm9lbWJlZCddICYmICRtb2QtPmNhbl9lbWJlZCgkZGVzdF9mbmFtZSkgKQoJICB7CgkgICAgJHR5cGUgPSBjZ2VfdXRpbHM6OmdldF9taW1lX3R5cGUoJGRlc3RfZm5hbWUpOwoJICAgIGlmKCAkdHlwZSAmJiAkdHlwZSAhPSAndW5rbm93bicgKSAKCSAgICAgIHsKCQkkdG1wID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZGVzdF9mbmFtZSkpOwoJCSRvdXRwWydzcmMnXSA9ICdkYXRhOicuJHR5cGUuJztiYXNlNjQsJy4kdG1wOwoJICAgICAgfQoJICB9CgoJaWYoICFpc3NldCgkb3V0cFsnc3JjJ10pIHx8ICEkb3V0cFsnc3JjJ10gKQoJICB7CgkgICAgLy8gZmFsbGJhY2sgdG8gdGhlIGRlc3RpbmF0aW9uIHVybC4KCSAgICAkb3V0cFsnc3JjJ10gPSAkZGVzdF91cmw7CgkgIH0KCglpZiggISRvdXRwWyd3aWR0aCddICYmICEkb3V0cFsnaGVpZ2h0J10gJiYgISRvcHBbJ25vYXV0byddICkKCSAgewoJICAgICRkZXRhaWxzID0gZ2V0aW1hZ2VzaXplKCRkZXN0X2ZuYW1lKTsKCSAgICBpZiggaXNfYXJyYXkoJGRldGFpbHMpICkKCSAgICAgIHsKCQkkb3V0cFsnd2lkdGgnXSAgPSAoaW50KSRkZXRhaWxzWzBdOwoJCSRvdXRwWydoZWlnaHQnXSA9IChpbnQpJGRldGFpbHNbMV07CgkgICAgICB9CgkgIH0KCgkvLyBub3cgd2UgY2FuIGJ1aWxkIHRoZSB0YWcuCgkkb3V0cHV0ID0gJzxpbWcnOwoJZm9yZWFjaCggJG91dHAgYXMgJGtleSA9PiAkdmFsdWUgKQoJICB7CgkgICAgaWYoICEkdmFsdWUgKSBjb250aW51ZTsKCSAgICAkb3V0cHV0IC49ICcgJy4ka2V5Lic9IicuJHZhbHVlLiciJzsKCSAgfQoJJG91dHB1dCAuPSAnLz4nOwoJJG91dHBbJ291dHB1dCddID0gJG91dHB1dDsKICAgICAgfQoKICAgIC8vIGhlcmUgd2UncmUgZ29ubmEgcmV0dXJuIHNvbWV0aGluZwogICAgcmV0dXJuICRvdXRwOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dzaV9jb252ZXJ0KCRwYXJhbXMsJGNvbnRlbnQsJiRzbWFydHksJHJlcGVhdCkKICB7CiAgICBpZiggISRjb250ZW50ICkgcmV0dXJuOwogICAgJG1heF93aWR0aCA9IC0xOwogICAgJG1heF9oZWlnaHQgPSAtMTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydtYXhfaGVpZ2h0J10pICkKICAgICAgewoJJG1heF9oZWlnaHQgPSBtYXgoMCwoaW50KSRwYXJhbXNbJ21heF9oZWlnaHQnXSk7Cgl1bnNldCgkcGFyYW1zWydtYXhfaGVpZ2h0J10pOwogICAgICB9CiAgICBpZiggaXNzZXQoJHBhcmFtc1snbWF4X3dpZHRoJ10pICkKICAgICAgewoJJG1heF93aWR0aCA9IG1heCgwLChpbnQpJHBhcmFtc1snbWF4X3dpZHRoJ10pOwoJdW5zZXQoJHBhcmFtc1snbWF4X3dpZHRoJ10pOwogICAgICB9CgogICAgJGRpZF9tb2RpZnkgPSBGQUxTRTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgJG9sZF9lcnJvcnZhbCA9IGxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKHRydWUpOwogICAgJGRvbSA9IG5ldyBDR0RvbURvY3VtZW50KCk7CiAgICAkZG9tLT5zdHJpY3RFcnJvckNoZWNraW5nID0gRkFMU0U7CiAgICAkZG9tLT52YWxpZGF0ZU9uUGFyc2UgPSBGQUxTRTsKICAgIGlmKCBmdW5jdGlvbl9leGlzdHMoJ21iX2NvbnZlcnRfZW5jb2RpbmcnKSApIHsKICAgICAgJGNvbnRlbnQgPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRjb250ZW50LCAnSFRNTC1FTlRJVElFUycsICdVVEYtOCcpOwogICAgfQogICAgJGRvbS0+bG9hZEhUTUwoJGNvbnRlbnQpOwoKICAgICRpbWdzID0gJGRvbS0+R2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpOwogICAgaWYoIGlzX29iamVjdCgkaW1ncykgJiYgJGltZ3MtPmxlbmd0aCApCiAgICAgIHsKCWZvciggJGkgPSAwOyAkaSA8ICRpbWdzLT5sZW5ndGg7ICRpKysgKQoJICB7CgkgICAgJG5vZGUgPSAkaW1ncy0+aXRlbSgkaSk7CgkgICAgJHN4ZSA9IHNpbXBsZXhtbF9pbXBvcnRfZG9tKCRub2RlKTsKCSAgICAKCSAgICAkcGFybXMgPSAkcGFyYW1zOwoJICAgIGZvcmVhY2goICRzeGUtPmF0dHJpYnV0ZXMoKSBhcyAkbmFtZSA9PiAkdmFsdWUgKQoJICAgICAgewoJCSR2YWx1ZSA9IChzdHJpbmcpJHZhbHVlOwoJCWlmKCAkdmFsdWUgPT0gJycgKSBjb250aW51ZTsKCgkJc3dpdGNoKCAkbmFtZSApCgkJICB7CgkJICBjYXNlICd3aWR0aCc6CgkJICAgIGlmKCAkbWF4X3dpZHRoID4gMCApCgkJICAgICAgewoJCQkkdmFsdWUgPSBtaW4oJG1heF93aWR0aCwoaW50KSR2YWx1ZSk7CgkJICAgICAgfQoJCSAgICBicmVhazsKCgkJICBjYXNlICdoZWlnaHQnOgoJCSAgICBpZiggJG1heF9oZWlnaHQgPiAwICkKCQkgICAgICB7CgkJCSR2YWx1ZSA9IG1pbigkbWF4X2hlaWdodCwoaW50KSR2YWx1ZSk7CgkJICAgICAgfQoJCSAgICBicmVhazsKCQkgIH0KCQkkcGFybXNbJG5hbWVdID0gJHZhbHVlOwoJICAgICAgfQoKCSAgICBpZiggIWlzc2V0KCRwYXJtc1snc3JjJ10pICkKCSAgICAgIHsKCQljb250aW51ZTsKCSAgICAgIH0KCgkgICAgaWYoIHN0YXJ0c3dpdGgoJHBhcm1zWydzcmMnXSwnZGF0YTonKSApIGNvbnRpbnVlOyAgIC8vIGFscmVhZHkgZW1iZWRkZWQsIGNhbid0IGRvIGFueXRoaW5nLgoKCSAgICAkcGFybXNbJ25vdGFnJ10gPSAxOwoJICAgICRvdXRwID0gc2VsZjo6cHJvY2Vzc19pbWFnZSgkcGFybXMpOwoJICAgIGlmKCAkb3V0cFsnZXJyb3InXSA9PSAnJyApCgkgICAgICB7CgkJZm9yZWFjaCggJG91dHAgYXMgJGtleSA9PiAkdmFsdWUgKQoJCSAgewoJCSAgICAkZGlkX21vZGlmeSA9IFRSVUU7CgkJICAgIHN3aXRjaCggJGtleSApCgkJICAgICAgewoJCSAgICAgIGNhc2UgJ3dpZHRoJzoKCQkgICAgICBjYXNlICdoZWlnaHQnOgoJCQkkc3hlLT5hdHRyaWJ1dGVzKCktPiRrZXkgPSAoaW50KSR2YWx1ZTsKCQkJYnJlYWs7CgkJICAgICAgY2FzZSAnc3JjJzoKCQkgICAgICBkZWZhdWx0OgoJCQkkc3hlLT5hdHRyaWJ1dGVzKCktPiRrZXkgPSAkdmFsdWU7CgkJCWJyZWFrOwoJCSAgICAgIH0KCQkgIH0KCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gZ2V0IHRoZSBjb250ZW50cy4KICAgIGlmKCAkZGlkX21vZGlmeSApCiAgICAgIHsKCSRub2RlID0gJGRvbS0+ZG9jdW1lbnRFbGVtZW50OwoJJGNvbnRlbnQgPSAkbm9kZS0+aW5uZXJIVE1MOwoJJGNvbnRlbnQgPSBzdHJfcmVwbGFjZShjaHIoMTMpLCcnLCRjb250ZW50KTsKCWlmKCBzdGFydHN3aXRoKCRjb250ZW50LCc8aHRtbD4nKSApCgkgIHsKCSAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8aHRtbD4nLCcnLCRjb250ZW50KTsKCSAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8L2h0bWw+JywnJywkY29udGVudCk7CgkgIH0KCWlmKCBzdGFydHN3aXRoKCRjb250ZW50LCc8Ym9keT4nKSApCgkgIHsKCSAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8Ym9keT4nLCcnLCRjb250ZW50KTsKCSAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8L2JvZHk+JywnJywkY29udGVudCk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRjb250ZW50OwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2RldmljZV9jYXBhYmlsaXRpZXMoKQogIHsKICAgIGlmKCBpc19hcnJheShzZWxmOjokX2RldmljZV9kYXRhKSAmJiBpc3NldChzZWxmOjokX2RldmljZV9kYXRhWyd3aWR0aCddKSApIHsKICAgICAgcmV0dXJuIHNlbGY6OiRfZGV2aWNlX2RhdGE7CiAgICB9CgogICAgaWYoICFpc3NldCgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pICkgcmV0dXJuOwogICAgJGJyb3dzZXIgPSBjZ2VfdXRpbHM6OmdldF9icm93c2VyKCk7CiAgICBpZiggISRicm93c2VyLT5pc01vYmlsZSgpICkgcmV0dXJuOwoKICAgICRhZ2VudCA9ICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRja2V5ID0gbWQ1KCRjb25maWdbJ3Jvb3RfdXJsJ10uJ0NHRXh0ZW5zaW9uc0RldmljZUNhcGFiaWxpdGllc0NhY2hlJyk7CgogICAgJGhhbmRsZXIgPSBjbXNfY2FjaGVfaGFuZGxlcjo6Z2V0X2luc3RhbmNlKCk7CiAgICAkZGF0YSA9IGFycmF5KCk7CiAgICBpZiggJGhhbmRsZXItPmV4aXN0cygkY2tleSkgKSB7CiAgICAgICRyYXdkYXQgPSAkaGFuZGxlci0+Z2V0KCRja2V5KTsKICAgICAgaWYoICRyYXdkYXQgKSB7CgkkZGF0YSA9IHVuc2VyaWFsaXplKCRyYXdkYXQpOwogICAgICB9CiAgICB9CiAgICAkdWtleSA9IG1kNSgkYWdlbnQpOwogICAgaWYoIGlzc2V0KCRkYXRhWyR1a2V5XSkgKSB7CiAgICAgIHNlbGY6OiRfZGV2aWNlX2RhdGEgPSAkZGF0YVskdWtleV07CiAgICAgIHJldHVybiAkZGF0YVskdWtleV07CiAgICB9CiAgICAKICAgIC8vIGdvdHRhIGRvIGEgd2ViIHNlcnZpY2UgcmVxdWVzdC4KICAgIC8vIGhlcmUgd2Ugd291bGQgZGV0ZXJtaW5lIHdoYXQgY2xpZW50IHRvIHVzZS4KICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgaWYoICEkbW9kICkgcmV0dXJuOwoKICAgIC8vIGluc3RhbnRpYXRlIHRoZSBjbGFzcyBhbmQgZG8gdGhlIHJlcXVlc3QKICAgICRjbGllbnRfY2xhc3MgPSAnY2dzaV9EZXZpY2VBdGxhc1BlcnNvbmFsX2NsaWVudCc7CiAgICBpZiggIWNsYXNzX2V4aXN0cygkY2xpZW50X2NsYXNzKSApIHsKICAgICAgLy8gbm8gY2xpZW50IGNsYXNzIGZvdW5kLgogICAgICByZXR1cm47CiAgICB9CiAgICAkY2xpZW50X29iaiA9IG5ldyAkY2xpZW50X2NsYXNzKCRhZ2VudCk7CiAgICBpZiggIWlzX29iamVjdCgkY2xpZW50X29iaikgKSB7CiAgICAgIC8vIG5vIGNsaWVudCBjbGFzcyBwb3NzaWJsZS4KICAgICAgcmV0dXJuOwogICAgfQogICAgJHJlcyA9ICRjbGllbnRfb2JqLT5nZXRfZGV2aWNlX3Jlc29sdXRpb24oKTsKICAgIGlmKCAhaXNfYXJyYXkoJHJlcykgKSByZXR1cm47CgogICAgLy8gZ290IHJlc3VsdHMgZnJvbSB3ZWIgc2VydmljZQogICAgJGRhdGFbJHVrZXldID0gJHJlczsKICAgICRoYW5kbGVyLT5zZXQoJGNrZXksc2VyaWFsaXplKCRkYXRhKSk7CiAgICBzZWxmOjokX2RldmljZV9kYXRhID0gJHJlczsKICAgIHJldHVybiAkcmVzOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cmltX3RvX2RldmljZSgkZmxhZywkdmFsdWUpCiAgewogICAgJGZsYWcgPSBzdHJ0b2xvd2VyKCRmbGFnKTsKICAgIGlmKCAkdmFsdWUgPiAwICYmIGlzX2FycmF5KHNlbGY6OiRfZGV2aWNlX2RhdGEpICYmIGlzc2V0KHNlbGY6OiRfZGV2aWNlX2RhdGFbJGZsYWddKSApIHsKICAgICAgcmV0dXJuIG1pbigkdmFsdWUsc2VsZjo6JF9kZXZpY2VfZGF0YVskZmxhZ10pOwogICAgfQogICAgcmV0dXJuICR2YWx1ZTsKICB9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGSmartImage_ClearCacheTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR1NtYXJ0SW1hZ2VfQ2xlYXJDYWNoZVRhc2sgaW1wbGVtZW50cyBDbXNSZWd1bGFyVGFzawp7CiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkgCiAgewogICAgcmV0dXJuIGdldF9jbGFzcygkdGhpcyk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnY2xlYXJjYWNoZXRhc2tfZGVzY3JpcHRpb24nKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdGVzdCgkdGltZSA9ICcnKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgJGFnZSA9IChpbnQpJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJyk7CiAgICBpZiggJGFnZSA8PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgIC8vIHdlIG9ubHkgYXR0ZW1wdCB0byBjbGVhciBjYWNoZWQgZmlsZXMgb25jZSBwZXIgZGF5CiAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CiAgICAkbGFzdF9leGVjdXRlID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2xlYXJjYWNoZV9sYXN0cnVuJyk7CiAgICBpZiggKCR0aW1lIC0gMjQqNjAqNjAgKSA+PSAkbGFzdF9leGVjdXRlICkKICAgIHsKICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGV4ZWN1dGUoJHRpbWUgPSAnJykKICB7CiAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CgogICAgdHJ5CiAgICAgIHsKCS8vIGNsZWFyIGNhY2hlZCBmaWxlcy4KCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwoJJG5fcmVtb3ZlZCA9ICRtb2QtPmNsZWFyX2NhY2hlZF9maWxlcygpOwoJJG1vZC0+QXVkaXQoJycsJG1vZC0+TGFuZygnYWN0X2NhY2hlY2xlYW5lZCcpLCRtb2QtPkxhbmcoJ21zZ19jYWNoZWNsZWFuZWQnLCRuX3JlbW92ZWQpKTsKCXJldHVybiBUUlVFOwogICAgICB9CiAgICBjYXRjaCggRXhjZXB0aW9uICRlICkKICAgICAgewoJcmV0dXJuIEZBTFNFOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9uX3N1Y2Nlc3MoJHRpbWUgPSAnJykKICB7CiAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2NsZWFyY2FjaGVfbGFzdHJ1bicsJHRpbWUpOwogIH0KCiAgCiAgcHVibGljIGZ1bmN0aW9uIG9uX2ZhaWx1cmUoJHRpbWUgPSAnJykKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jYWNoZWRfaW1hZ2VfdXJsKCRkZXN0bmFtZSkKICB7CiAgICAkZGVzdG5hbWUgPSBiYXNlbmFtZSgkZGVzdG5hbWUpOwoKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRkZXN0X3VybCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4JywkY29uZmlnWyd1cGxvYWRzX3VybCddKTsKICAgIGlmKCAhZW5kc3dpdGgoJGRlc3RfdXJsLCAnLycpICkgJGRlc3R1cmwgLj0gJy8nOwogICAgaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJywwKSApCiAgICAgIHsKCSRkZXN0X3VybCAuPSAnXycuJHRoaXMtPkdldE5hbWUoKS4nLyc7CiAgICAgIH0KICAgICRkZXN0X3VybCAuPSAkZGVzdG5hbWU7CiAgICByZXR1cm4gJGRlc3RfdXJsOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/colors.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0YwRjhGRi1BbGljZUJsdWUKI0ZBRUJENy1BbnRpcXVlV2hpdGUKIzAwRkZGRi1BcXVhCiM3RkZGRDQtQXF1YW1hcmluZQojRjBGRkZGLUF6dXJlCiNGNUY1REMtQmVpZ2UKI0ZGRTRDNC1CaXNxdWUKI0ZGRUJDRC1CbGFuY2hlZEFsbW9uZAojMDAwMDAwLUJsYWNrCiMwMDAwRkYtQmx1ZQojOEEyQkUyLUJsdWVWaW9sZXQKI0E1MkEyQS1Ccm93bgojREVCODg3LUJ1cmx5V29vZAojNUY5RUEwLUNhZGV0Qmx1ZQojN0ZGRjAwLUNoYXJ0cmV1c2UKI0QyNjkxRS1DaG9jb2xhdGUKI0ZGN0Y1MC1Db3JhbAojNjQ5NUVELUNvcm5mbG93ZXJCbHVlCiNGRkY4REMtQ29ybnNpbGsKI0RDMTQzQy1Dcmltc29uCiMwMEZGRkYtQ3lhbgojMDAwMDhCLURhcmtCbHVlCiMwMDhCOEItRGFya0N5YW4KI0I4ODYwQi1EYXJrR29sZGVuUm9kCiNBOUE5QTktRGFya0dyYXkKIzAwNjQwMC1EYXJrR3JlZW4KI0JEQjc2Qi1EYXJrS2hha2kKIzhCMDA4Qi1EYXJrTWFnZW50YQojNTU2QjJGLURhcmtPbGl2ZUdyZWVuCiNGRjhDMDAtRGFya29yYW5nZQojOTkzMkNDLURhcmtPcmNoaWQKIzhCMDAwMC1EYXJrUmVkCiNFOTk2N0EtRGFya1NhbG1vbgojOEZCQzhGLURhcmtTZWFHcmVlbgojNDgzRDhCLURhcmtTbGF0ZUJsdWUKIzJGNEY0Ri1EYXJrU2xhdGVHcmF5CiMwMENFRDEtRGFya1R1cnF1b2lzZQojOTQwMEQzLURhcmtWaW9sZXQKI0ZGMTQ5My1EZWVwUGluawojMDBCRkZGLURlZXBTa3lCbHVlCiM2OTY5NjktRGltR3JheQojMUU5MEZGLURvZGdlckJsdWUKI0QxOTI3NS1GZWxkc3BhcgojQjIyMjIyLUZpcmVCcmljawojRkZGQUYwLUZsb3JhbFdoaXRlCiMyMjhCMjItRm9yZXN0R3JlZW4KI0ZGMDBGRi1GdWNoc2lhCiNEQ0RDREMtR2FpbnNib3JvCiNGOEY4RkYtR2hvc3RXaGl0ZQojRkZENzAwLUdvbGQKI0RBQTUyMC1Hb2xkZW5Sb2QKIzgwODA4MC1HcmF5CiMwMDgwMDAtR3JlZW4KI0FERkYyRi1HcmVlblllbGxvdwojRjBGRkYwLUhvbmV5RGV3CiNGRjY5QjQtSG90UGluawojQ0Q1QzVDLUluZGlhblJlZAojNEIwMDgyLUluZGlnbwojRkZGRkYwLUl2b3J5CiNGMEU2OEMtS2hha2kKI0U2RTZGQS1MYXZlbmRlcgojRkZGMEY1LUxhdmVuZGVyQmx1c2gKIzdDRkMwMC1MYXduR3JlZW4KI0ZGRkFDRC1MZW1vbkNoaWZmb24KI0FERDhFNi1MaWdodEJsdWUKI0YwODA4MC1MaWdodENvcmFsCiNFMEZGRkYtTGlnaHRDeWFuCiNGQUZBRDItTGlnaHRHb2xkZW5Sb2RZZWxsb3cKI0QzRDNEMy1MaWdodEdyZXkKIzkwRUU5MC1MaWdodEdyZWVuCiNGRkI2QzEtTGlnaHRQaW5rCiNGRkEwN0EtTGlnaHRTYWxtb24KIzIwQjJBQS1MaWdodFNlYUdyZWVuCiM4N0NFRkEtTGlnaHRTa3lCbHVlCiM4NDcwRkYtTGlnaHRTbGF0ZUJsdWUKIzc3ODg5OS1MaWdodFNsYXRlR3JheQojQjBDNERFLUxpZ2h0U3RlZWxCbHVlCiNGRkZGRTAtTGlnaHRZZWxsb3cKIzAwRkYwMC1MaW1lCiMzMkNEMzItTGltZUdyZWVuCiNGQUYwRTYtTGluZW4KI0ZGMDBGRi1NYWdlbnRhCiM4MDAwMDAtTWFyb29uCiM2NkNEQUEtTWVkaXVtQXF1YU1hcmluZQojMDAwMENELU1lZGl1bUJsdWUKI0JBNTVEMy1NZWRpdW1PcmNoaWQKIzkzNzBEOC1NZWRpdW1QdXJwbGUKIzNDQjM3MS1NZWRpdW1TZWFHcmVlbgojN0I2OEVFLU1lZGl1bVNsYXRlQmx1ZQojMDBGQTlBLU1lZGl1bVNwcmluZ0dyZWVuCiM0OEQxQ0MtTWVkaXVtVHVycXVvaXNlCiNDNzE1ODUtTWVkaXVtVmlvbGV0UmVkCiMxOTE5NzAtTWlkbmlnaHRCbHVlCiNGNUZGRkEtTWludENyZWFtCiNGRkU0RTEtTWlzdHlSb3NlCiNGRkU0QjUtTW9jY2FzaW4KI0ZGREVBRC1OYXZham9XaGl0ZQojMDAwMDgwLU5hdnkKI0ZERjVFNi1PbGRMYWNlCiM4MDgwMDAtT2xpdmUKIzZCOEUyMy1PbGl2ZURyYWIKI0ZGQTUwMC1PcmFuZ2UKI0ZGNDUwMC1PcmFuZ2VSZWQKI0RBNzBENi1PcmNoaWQKI0VFRThBQS1QYWxlR29sZGVuUm9kCiM5OEZCOTgtUGFsZUdyZWVuCiNBRkVFRUUtUGFsZVR1cnF1b2lzZQojRDg3MDkzLVBhbGVWaW9sZXRSZWQKI0ZGRUZENS1QYXBheWFXaGlwCiNGRkRBQjktUGVhY2hQdWZmCiNDRDg1M0YtUGVydQojRkZDMENCLVBpbmsKI0REQTBERC1QbHVtCiNCMEUwRTYtUG93ZGVyQmx1ZQojODAwMDgwLVB1cnBsZQojRkYwMDAwLVJlZAojQkM4RjhGLVJvc3lCcm93bgojNDE2OUUxLVJveWFsQmx1ZQojOEI0NTEzLVNhZGRsZUJyb3duCiNGQTgwNzItU2FsbW9uCiNGNEE0NjAtU2FuZHlCcm93bgojMkU4QjU3LVNlYUdyZWVuCiNGRkY1RUUtU2VhU2hlbGwKI0EwNTIyRC1TaWVubmEKI0MwQzBDMC1TaWx2ZXIKIzg3Q0VFQi1Ta3lCbHVlCiM2QTVBQ0QtU2xhdGVCbHVlCiM3MDgwOTAtU2xhdGVHcmF5CiNGRkZBRkEtU25vdwojMDBGRjdGLVNwcmluZ0dyZWVuCiM0NjgyQjQtU3RlZWxCbHVlCiNEMkI0OEMtVGFuCiMwMDgwODAtVGVhbAojRDhCRkQ4LVRoaXN0bGUKI0ZGNjM0Ny1Ub21hdG8KIzQwRTBEMC1UdXJxdW9pc2UKI0VFODJFRS1WaW9sZXQKI0QwMjA5MC1WaW9sZXRSZWQKI0Y1REVCMy1XaGVhdAojRkZGRkZGLVdoaXRlCiNGNUY1RjUtV2hpdGVTbW9rZQojRkZGRjAwLVllbGxvdwojOUFDRDMyLVllbGxvd0dyZWVuCg==]]></data>
	</file>
	<file>
	  <filename>/lib/imageSmoothArc_optimized.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCiAgICAKICAgIENvcHlyaWdodCAoYykgMjAwNi0yMDA4IFVscmljaCBNaWVyZW5kb3JmZgoKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCiAgICBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAogICAgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgogICAgdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCiAgICBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKICAgIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogICAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICAgIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAgICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICAgIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCiAgICBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogICAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKICAgIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKICAgIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCiovCgpmdW5jdGlvbiBpbWFnZVNtb290aEFyY0RyYXdTZWdtZW50ICgmJGltZywgJGN4LCAkY3ksICRhLCAkYiwgJGNvbG9yLCAkc3RhcnQsICRzdG9wLCAkc2VnKQp7CiAgICAvLyBPcmlnaW5hbGx5IHdyaXR0ZW4gZnJvbSBzY3JhdGNoIGJ5IFVscmljaCBNaWVyZW5kb3JmZiwgMDYvMjAwNgogICAgLy8gUmV3cml0dGVuIGFuZCBpbXByb3ZlZCwgMDQvMjAwNywgMDcvMjAwNwogICAgLy8gT3B0aW1pemVkIGNpcmNsZSB2ZXJzaW9uOiAwMy8yMDA4CiAgICAKICAgIC8vIFBsZWFzZSBkbyBub3QgdXNlIFRISVMgZnVuY3Rpb24gZGlyZWN0bHkuIFNjcm9sbCBkb3duIHRvIGltYWdlU21vb3RoQXJjKC4uLikuCiAgICAKICAgICRmaWxsQ29sb3IgPSBpbWFnZUNvbG9yRXhhY3RBbHBoYSggJGltZywgJGNvbG9yWzBdLCAkY29sb3JbMV0sICRjb2xvclsyXSwgJGNvbG9yWzNdICk7CiAgICBzd2l0Y2ggKCRzZWcpCiAgICB7CiAgICAgICAgY2FzZSAwOiAkeHAgPSArMTsgJHlwID0gLTE7ICR4YSA9IDE7ICR5YSA9IC0xOyBicmVhazsKICAgICAgICBjYXNlIDE6ICR4cCA9IC0xOyAkeXAgPSAtMTsgJHhhID0gMDsgJHlhID0gLTE7IGJyZWFrOwogICAgICAgIGNhc2UgMjogJHhwID0gLTE7ICR5cCA9ICsxOyAkeGEgPSAwOyAkeWEgPSAwOyBicmVhazsKICAgICAgICBjYXNlIDM6ICR4cCA9ICsxOyAkeXAgPSArMTsgJHhhID0gMTsgJHlhID0gMDsgYnJlYWs7CiAgICB9CiAgICBmb3IgKCAkeCA9IDA7ICR4IDw9ICRhOyAkeCArPSAxICkgewogICAgICAgICR5ID0gJGIgKiBzcXJ0KCAxIC0gKCR4KiR4KS8oJGEqJGEpICk7CiAgICAgICAgJGVycm9yID0gJHkgLSAoaW50KSgkeSk7CiAgICAgICAgJHkgPSAoaW50KSgkeSk7CiAgICAgICAgJGRpZmZDb2xvciA9IGltYWdlQ29sb3JFeGFjdEFscGhhKCAkaW1nLCAkY29sb3JbMF0sICRjb2xvclsxXSwgJGNvbG9yWzJdLCAxMjctKDEyNy0kY29sb3JbM10pKiRlcnJvciApOwogICAgICAgIGltYWdlU2V0UGl4ZWwoJGltZywgJGN4KyR4cCokeCskeGEsICRjeSskeXAqKCR5KzEpKyR5YSwgJGRpZmZDb2xvcik7CiAgICAgICAgaW1hZ2VMaW5lKCRpbWcsICRjeCskeHAqJHgrJHhhLCAkY3krJHlwKiR5KyR5YSAsICRjeCskeHAqJHgrJHhhLCAkY3krJHlhLCAkZmlsbENvbG9yKTsKICAgIH0KICAgIGZvciAoICR5ID0gMDsgJHkgPCAkYjsgJHkgKz0gMSApIHsKICAgICAgICAkeCA9ICRhICogc3FydCggMSAtICgkeSokeSkvKCRiKiRiKSApOwogICAgICAgICRlcnJvciA9ICR4IC0gKGludCkoJHgpOwogICAgICAgICR4ID0gKGludCkoJHgpOwogICAgICAgICRkaWZmQ29sb3IgPSBpbWFnZUNvbG9yRXhhY3RBbHBoYSggJGltZywgJGNvbG9yWzBdLCAkY29sb3JbMV0sICRjb2xvclsyXSwgMTI3LSgxMjctJGNvbG9yWzNdKSokZXJyb3IgKTsKICAgICAgICBpbWFnZVNldFBpeGVsKCRpbWcsICRjeCskeHAqKCR4KzEpKyR4YSwgJGN5KyR5cCokeSskeWEsICRkaWZmQ29sb3IpOwogICAgfQp9CgoKZnVuY3Rpb24gaW1hZ2VTbW9vdGhBcmMgKCAmJGltZywgJGN4LCAkY3ksICR3LCAkaCwgJGNvbG9yLCAkc3RhcnQsICRzdG9wKQp7CiAgICAvLyBPcmlnaW5hbGx5IHdyaXR0ZW4gZnJvbSBzY3JhdGNoIGJ5IFVscmljaCBNaWVyZW5kb3JmZiwgMDYvMjAwNgogICAgLy8gUmV3cml0dGVuIGFuZCBpbXByb3ZlZCwgMDQvMjAwNywgMDcvMjAwNwogICAgLy8gT3B0aW1pemVkIGNpcmNsZSB2ZXJzaW9uOiAwMy8yMDA4CiAgICAvLyBjb21wYXJlZCB0byBvbGQgdmVyc2lvbjoKICAgIC8vICsgU3VwcG9ydCBmb3IgdHJhbnNwYXJlbmN5IGFkZGVkCiAgICAvLyArIEltcHJvdmVkIHF1YWxpdHkgb2YgZWRnZXMgJiBhbnRpYWxpYXNpbmcKICAgIAogICAgLy8gbm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXByZXNlbnQgdGhlIGZhc3Rlc3Qgd2F5IHRvIGRyYXcgZWxsaXB0aWNhbAogICAgLy8gYXJjcy4gSXQgd2FzIHdyaXR0ZW4gd2l0aG91dCByZWFkaW5nIGFueSBwYXBlcnMgb24gdGhhdCBzdWJqZWN0LiBCZXR0ZXIKICAgIC8vIGFsZ29yaXRobXMgbWF5IGJlIHR3aWNlIGFzIGZhc3Qgb3IgZXZlbiBtb3JlLgogICAgCiAgICAvLyBQYXJhbWV0ZXJzOgogICAgLy8gJGN4ICAgICAgLSBDZW50ZXIgb2YgZWxsaXBzZSwgWC1jb29yZAogICAgLy8gJGN5ICAgICAgLSBDZW50ZXIgb2YgZWxsaXBzZSwgWS1jb29yZAogICAgLy8gJHcgICAgICAgLSBXaWR0aCBvZiBlbGxpcHNlICgkdyA+PSAyKQogICAgLy8gJGggICAgICAgLSBIZWlnaHQgb2YgZWxsaXBzZSAoJGggPj0gMiApCiAgICAvLyAkY29sb3IgICAtIENvbG9yIG9mIGVsbGlwc2UgYXMgYSBmb3VyIGNvbXBvbmVudCBhcnJheSB3aXRoIFJHQkEKICAgIC8vICRzdGFydCAgIC0gU3RhcnRpbmcgYW5nbGUgb2YgdGhlIGFyYzogMCwgUEkvMiwgUEksIFBJLzIqMywgMipQSSwuLi4gKDAsOTDCsCwxODDCsCwyNzDCsCwzNjDCsCwuLi4pCiAgICAvLyAkc3RvcCAgICAtIFN0b3AgICAgIGFuZ2xlIG9mIHRoZSBhcmM6IDAsIFBJLzIsIFBJLCBQSS8yKjMsIDIqUEksLi4uICgwLDkwwrAsMTgwwrAsMjcwwrAsMzYwwrAsLi4uKQogICAgLy8gJHN0YXJ0IF9jYW5fIGJlIGdyZWF0ZXIgdGhhbiAkc3RvcCEKICAgIC8vIElmIGFueSB2YWx1ZSBpcyBub3QgaW4gdGhlIGdpdmVuIHJhbmdlLCByZXN1bHRzIGFyZSB1bmRlZmluZWQhCiAgICAKICAgIC8vIFRoaXMgc2NyaXB0IGRvZXMgbm90IHVzZSBhbnkgc3BlY2lhbCBhbGdvcml0aG1zLCBldmVyeXRoaW5nIGlzIGNvbXBsZXRlbHkKICAgIC8vIHdyaXR0ZW4gZnJvbSBzY3JhdGNoOyBzZWUgaHR0cDovL2RlLndpa2lwZWRpYS5vcmcvd2lraS9FbGxpcHNlIGZvciBmb3JtdWxhcy4KICAgIAogICAgd2hpbGUgKCRzdGFydCA8IDApCiAgICAgICAgJHN0YXJ0ICs9IDIqTV9QSTsKICAgIHdoaWxlICgkc3RvcCA8IDApCiAgICAgICAgJHN0b3AgKz0gMipNX1BJOwogICAgCiAgICB3aGlsZSAoJHN0YXJ0ID4gMipNX1BJKQogICAgICAgICRzdGFydCAtPSAyKk1fUEk7CiAgICAKICAgIHdoaWxlICgkc3RvcCA+IDIqTV9QSSkKICAgICAgICAkc3RvcCAtPSAyKk1fUEk7CiAgICAKCiAgICBpZiAoJHN0YXJ0ID4gJHN0b3ApCiAgICB7CiAgICAgICAgaW1hZ2VTbW9vdGhBcmMgKCAkaW1nLCAkY3gsICRjeSwgJHcsICRoLCAkY29sb3IsICRzdGFydCwgMipNX1BJKTsKICAgICAgICBpbWFnZVNtb290aEFyYyAoICRpbWcsICRjeCwgJGN5LCAkdywgJGgsICRjb2xvciwgMCwgJHN0b3ApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgJGEgPSAxLjAqcm91bmQgKCR3LzIpOwogICAgJGIgPSAxLjAqcm91bmQgKCRoLzIpOwogICAgJGN4ID0gMS4wKnJvdW5kICgkY3gpOwogICAgJGN5ID0gMS4wKnJvdW5kICgkY3kpOwogICAgCiAgICBmb3IgKCRpPTA7ICRpPDQ7JGkrKykKICAgIHsKICAgICAgICBpZiAoJHN0YXJ0IDwgKCRpKzEpKk1fUEkvMikKICAgICAgICB7CiAgICAgICAgICAgIGlmICgkc3RhcnQgPiAkaSpNX1BJLzIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgkc3RvcCA+ICgkaSsxKSpNX1BJLzIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaW1hZ2VTbW9vdGhBcmNEcmF3U2VnbWVudCgkaW1nLCAkY3gsICRjeSwgJGEsICRiLCAkY29sb3IsICRzdGFydCwgKCRpKzEpKk1fUEkvMiwgJGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGltYWdlU21vb3RoQXJjRHJhd1NlZ21lbnQoJGltZywgJGN4LCAkY3ksICRhLCAkYiwgJGNvbG9yLCAkc3RhcnQsICRzdG9wLCAkaSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoJHN0b3AgPiAoJGkrMSkqTV9QSS8yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGltYWdlU21vb3RoQXJjRHJhd1NlZ21lbnQoJGltZywgJGN4LCAkY3ksICRhLCAkYiwgJGNvbG9yLCAkaSpNX1BJLzIsICgkaSsxKSpNX1BJLzIsICRpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpbWFnZVNtb290aEFyY0RyYXdTZWdtZW50KCRpbWcsICRjeCwgJGN5LCAkYSwgJGIsICRjb2xvciwgJGkqTV9QSS8yLCAkc3RvcCwgJGkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnLCdzbWFydCcpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfc2l6ZScsMzIpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfdHlwZScsJ3BuZyxqcGcsZ2lmJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4JywkY29uZmlnWyd1cGxvYWRzX3VybCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLDApOwoKJGFsaWFzZXMgPSBhcnJheSgpOwokYWxpYXNlc1tdID0gYXJyYXkoJ25hbWUnPT4nc3RkX3RodW1ibmFpbCcsJ29wdGlvbnMnPT4nZmlsdGVyX3dhdGVybWFyaz0xIHdpZHRoPTE1MCBoZWlnaHQ9MTUwJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGlhc2VzJyxzZXJpYWxpemUoJGFsaWFzZXMpKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_aliases_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRtb2QtPkxhbmcoJ2luZm9fYWxpYXNlcycpfTwvcD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcjYWxpYXNfdGFibGUgdHI6bGFzdCcpLmZpbmQoJ2ltZycpLmhpZGUoKTsKICAkKCcjYWRkX3JvdycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgbmV3X3JvdyA9ICQoJyNhbGlhc190YWJsZSB0cjpsYXN0JykuY2xvbmUodHJ1ZSk7CiAgICAkKCcjYWxpYXNfdGFibGUgdHI6bGFzdCcpLmZpbmQoJ2ltZycpLnNob3coKTsKICAgIG5ld19yb3cuZmluZCgnOmlucHV0JykuZWFjaChmdW5jdGlvbigpewogICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICB9KTsKICAgICQoJyNhbGlhc190YWJsZSB0Ym9keScpLmFwcGVuZChuZXdfcm93KTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnaW1nLmRlbGV0ZXJvdycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICBpZiggJCgnI2FsaWFzX3RhYmxlIHRyJykubGVuZ3RoIDw9IDIgKSByZXR1cm4gZmFsc2U7CiAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykucmVtb3ZlKCk7ICAgCiAgfSk7Cn0pOwp7L2xpdGVyYWx9PC9zY3JpcHQ+Cgp7JGZvcm1zdGFydH0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgcGFnZWlucHV0IiBjZWxsc3BhY2luZz0iMCIgaWQ9ImFsaWFzX3RhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnYWxpYXMnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ29wdGlvbnMnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4Ke2lmIGlzc2V0KCRhbGlhc2VzKX0Ke2ZvcmVhY2ggZnJvbT0kYWxpYXNlcyBpdGVtPSdhbGlhcyd9CiAgICA8dHI+CiAgICAgIDx0ZD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hbGlhc19uYW1lW10iIHZhbHVlPSJ7JGFsaWFzLm5hbWV8aHRtbHNwZWNpYWxjaGFyc30iIHNpemU9IjIwIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hbGlhc19vcHRpb25zW10iIHZhbHVlPSJ7JGFsaWFzLm9wdGlvbnN8aHRtbHNwZWNpYWxjaGFyc30iIHNpemU9IjYwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgICA8L3RkPgogICAgICA8dGQ+CiAgICAgICAge2NnaW1hZ2UgY2xhc3M9J2RlbGV0ZXJvdycgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlJyl9CiAgICAgIDwvdGQ+CiAgICA8L3RyPgp7L2ZvcmVhY2h9CnsvaWZ9CiAgICB7KiBlbXB0eSByb3cgKn0KICAgIDx0cj4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFsaWFzX25hbWVbXSIgdmFsdWU9IiIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iNTAiLz4KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFsaWFzX29wdGlvbnNbXSIgdmFsdWU9IiIgc2l6ZT0iNjAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICB7Y2dpbWFnZSBjbGFzcz0nZGVsZXRlcm93JyBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdkZWxldGUnKX0KICAgICAgPC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJhZGRfcm93IiBuYW1lPSJ7JGFjdGlvbmlkfWFkZF9yb3ciIHZhbHVlPSJ7JG1vZC0+TGFuZygnYWRkX3JvdycpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_embedding_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW1iZWRkaW5nX21vZGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWVtYmVkX21vZGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRlbWJlZF9tb2RlcyBzZWxlY3RlZD0kZW1iZWRfbW9kZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2VtYmVkX21vZGUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2VtYmVkX3NpemVsaW1pdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1lbWJlZF9zaXplbGltaXQiIHNpemU9IjQiIG1heGxlbmd0aD0iNCIgdmFsdWU9InskZW1iZWRfc2l6ZWxpbWl0fSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2VtYmVkX3NpemVsaW1pdCcpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW1iZWRfdHlwZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZW1iZWRfdHlwZXMiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIiB2YWx1ZT0ieyRlbWJlZF90eXBlc30iLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19lbWJlZF90eXBlcycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JvcHRvZml0X2RlZmF1bHRfbG9jIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY3JvcHRvZml0X2xvY3Mgc2VsZWN0ZWQ9JGNyb3B0b2ZpdF9kZWZhdWx0X2xvY30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWF4X2NhY2hlX2FnZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jYWNoZV9hZ2UiIHZhbHVlPSJ7JGNhY2hlX2FnZX0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jbGVhcl9ub3ciIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2xlYXJfbm93Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNsZWFyX2FsbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjbGVhcl9hbGwnKX0iIG9uY2xpY2s9InJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnYXNrX2NsZWFyX2ltYWdlX2NhY2hlJyl9Jyk7Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY2FjaGVfYWdlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZV91cmxfcHJlZml4Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWltYWdlX3VybF9wcmVmaXgiIHZhbHVlPSJ7JGltYWdlX3VybF9wcmVmaXh9IiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19pbWFnZV91cmxfcHJlZml4Jyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZV91cmxfaGFzY2FjaGVkaXInKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0naW1hZ2VfdXJsX2hhc2NoYWNoZWRpcicgc2VsZWN0ZWQ9JGltYWdlX3VybF9oYXNjYWNoZWRpcn0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_responsive_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW5hYmxlX3Jlc3BvbnNpdmUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmUiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JHJlc3BvbnNpdmV9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19yZXNwb25zaXZlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmVfYnJlYWtwb2ludHMiIHZhbHVlPSJ7JHJlc3BvbnNpdmVfYnJlYWtwb2ludHN9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19yZXNwb25zaXZlX2JyZWFrcG9pbnRzJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
