<?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>CGExtensions</name>
	<version>1.5</version>
  <mincmsversion>1.2</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkncyBhbmQgc21hcnR5IHRhZ3MgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzLiAgSXQgaXMgbWVhbnQgc29sZWx5IGFzIGEgYmFzZSBjbGFzcyBhbmQgdXRpbGl0eSBjbGFzcyBmb3Igb3RoZXIgbW9kdWxlcy48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5XZWxsLCB5b3Ugc3RhcnQgeW91ciBvd24gbW9kdWxlIChJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCB0aGUgU2tlbGV0b24gbW9kdWxlKSwgYW5kIHRoZW4gd2hlbiB5b3UgbmVlZCB0byB1c2UgYW4gYWR2YW5jZWQgZm9ybSBvYmplY3QgZnJvbSB0aGlzIGxpYnJhcnksIHNpbXBseSBtYWtlIHlvdXIgbW9kdWxlIGRlcGVuZGFudCB1cG9uIEZvcm1PYmplY3RzLCBhbmQgdGhlbiBpbnN0YW50aWF0ZSBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuICBTZWUgdGhlIGNvZGUgaW5zaWRlIHRoZSBGb3JtT2JqZWN0cyBkaXJlY3RvcnkgZm9yIHVzYWdlIGluc3RydWN0aW9ucy48L3A+CjxoMz5TbWFydHkgQWRkb25zPC9oMz4KPHA+VGhpcyBtb2R1bGUgYWRkcyBhIGZldyBzbWFydHkgY29udmVuaWVuY2VzIGZvciB1c2Ugd2l0aCBvdGhlciBtb2R1bGVzLiBUaGV5IGFyZSBsaXN0ZWQgYW5kIGRlc2NyaWJlZCBoZXJlOjwvcD4KPHVsPgo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbgo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfVRoaXMgaXMgZXJyb3IgdGV4dHsvY2dlcnJvcn08L2NvZGU+PGJyLz4KICAgIG9yOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4KPC9wPgo8cD5vcHRpb25hbCBwYXJhbWV0ZXJzOiAnZXJyb3JjbGFzcycgPSBvdmVycmlkZSB0aGUgZGVmYXVsdCBjbGFzcyBuYW1lIGluIHRoZSB0ZW1wbGF0ZS4KPC9wPgo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPgo8L3VsPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yKHMpLCBjYWxndXkgZXQgYWxsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20iPiZsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuNTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPgo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPgo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+CjxsaT5WZXJzaW9uIDEuMi4gICBOb3ZlbWJlciAgMjAwNywgIEFkZHMgbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPgo8bGk+VmVyc2lvbiAxLjMuICAgTm92ZW1iZXIgIDIwMDcuICBBZGRzIGV2ZW4gbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPgo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kLCBtZXRob2RzIGZvciBzdGF0ZSBhbmQgY291bnRyeSBkcm9wZG93bnMgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzLjwvbGk+CjxsaT5WZXJzaW9uIDEuNS4gICBKYW51YXJ5ICAgMjAwNy4gIEZpeGVzIHRvIGh0bWxfZW50aXRpZXNfZGVjb2RlIGluIHV0Zjg8L2xpPgo8L3VsPjxiciAvPg==</about>
	<description>This module is a library of php classes used to build advanced forms</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0KCk7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkgcmV0dXJuIGZhbHNlOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApCiAgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9yX3RlbXBsYXRlJ10gKSApCiAgICAgICR0aGlzLT5TZXRFcnJvclRlbXBsYXRlKHRyaW0oJHBhcmFtc1snZXJyb3JfdGVtcGxhdGUnXSkpOwoKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZWV4dGVuc2lvbnMnLHRyaW0oJHBhcmFtc1snaW1hZ2VleHRlbnNpb25zJ10pKTsKICB9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3Jlc2V0dG9mYWN0b3J5J10pICkKICB7CiAgICAkdGhpcy0+UmVzZXRFcnJvclRlbXBsYXRlKCk7CiAgfQoKJGVycm9yX3RlbXBsYXRlID0gJHRoaXMtPkdldEVycm9yVGVtcGxhdGUoKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXNldCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXR0b2ZhY3RvcnknLAoJCQkJCQkgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdlcnJvcl90ZW1wbGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsCgkJJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwKCQkJCSAgICAgICRlcnJvcl90ZW1wbGF0ZSwnZXJyb3JfdGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2ltYWdlZXh0ZW5zaW9ucycsCgkJJHRoaXMtPkxhbmcoJ2ltYWdlX2V4dGVuc2lvbnMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaW1hZ2VleHRlbnNpb25zJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW1hZ2VleHRlbnNpb25zJywKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VleHRlbnNpb25zJywnJyksMjUsMjU1KSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWlucGFuZWwudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCAhICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgewogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlCiAgICByZXR1cm47CiAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snbW9kbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQokbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCRwYXJhbXNbJ21vZG5hbWUnXSk7CmlmKCAhJG1vZHVsZSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgoKaWYoICEoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkpICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICRtb2R1bGUtPlJlZGlyZWN0VG9UYWIoJGlkLCAkcGFyYW1zWydjZ19hY3RpdmV0YWInXSk7CiAgICByZXR1cm47CiAgfQoKJG1vZHVsZS0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSk7CiRtb2R1bGUtPlJlZGlyZWN0VG9UYWIoJGlkLCR0aGlzLT5fY3VycmVudF90YWIsJycsJHBhcmFtcyk7CgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_addtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICEkZ0NtcyApIGV4aXQoKTsKCi8vIGlmKCAhICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCi8vICAgewovLyAgICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlCi8vICAgICByZXR1cm47Ci8vICAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snbW9kbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQokbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCRwYXJhbXNbJ21vZG5hbWUnXSk7CmlmKCAhJG1vZHVsZSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgoKaWYoIGlzc2V0KCAkcGFyYW1zWydjYW5jZWwnXSApICkKICB7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2NnX2FjdGl2ZXRhYiddICkgJiYgJHBhcmFtc1snY2dfYWN0aXZldGFiJ10gIT0gJycgKQogICAgICB7CgkkbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCwgJHBhcmFtc1snY2dfYWN0aXZldGFiJ10pOwogICAgICB9CiAgICAkbW9kdWxlLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicpOwogIH0KCgokdGVtcGxhdGUgPSAiIjsKaWYoIGlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgfQogIAokcHJlZml4ID0gIiI7CmlmKCBpc3NldCggJHBhcmFtc1sncHJlZml4J10gKSApCiAgewogICAgJHByZWZpeCA9IHRyaW0oJHBhcmFtc1sncHJlZml4J10pOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgppZiggJHRlbXBsYXRlID09ICIiIHx8ICRwcmVmaXggPT0gIiIgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgoKJG5ld3RlbXBsYXRlID0gJHByZWZpeCAuICR0ZW1wbGF0ZTsKCi8vIGNoZWNrIGlmIHRoaXMgdGVtcGxhdGUgYWxyZWFkeSBleGlzdHMKJHR4dCA9IHRyaW0oJG1vZHVsZS0+R2V0VGVtcGxhdGUoJG5ld3RlbXBsYXRlKSk7CmlmKCAkdHh0ICE9ICIiICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJHBhcmFtc1snb3JpZ2FjdGlvbiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCi8vIHdlJ3JlIHJlYWR5IHRvIHNldCBpdAokdHh0ID0gbXlfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddLEVOVF9RVU9URVMsZ2V0X2VuY29kaW5nKCkpOwokbW9kdWxlLT5TZXRUZW1wbGF0ZSgkbmV3dGVtcGxhdGUsJHR4dCk7CgppZiggJHRoaXMtPl9jdXJyZW50X3RhYiAhPSAnJyApCiAgewogICAgJG1vZHVsZS0+X2N1cnJlbnRfdGFiID0gJHRoaXMtPl9jdXJyZW50X3RhYjsKICAgICRtb2R1bGUtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIHJldHVybjsKICB9CiRtb2R1bGUtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.do_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFF1ZXN0aW9ucyAtIGEgc2ltcGxlIFF1ZXN0aW9ucyAmIEFuc3dlciBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIGNhbGd1eTEwMDAgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7CgovLyBpZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQovLyAgIHsKLy8gICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQovLyAgICAgcmV0dXJuOwovLyAgIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ21vZG5hbWUnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgkcGFyYW1zWydtb2RuYW1lJ10pOwppZiggISRtb2R1bGUgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydjYW5jZWwnXSApICkKICB7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2NnX2FjdGl2ZXRhYiddICkgJiYgJHBhcmFtc1snY2dfYWN0aXZldGFiJ10gIT0gJycgKQogICAgICB7CgkkbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCwgJHBhcmFtc1snY2dfYWN0aXZldGFiJ10pOwogICAgICB9CiAgICAkbW9kdWxlLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicpOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgppZiggIWlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CiRtb2R1bGUtPlNldFRlbXBsYXRlKCAkcGFyYW1zWydwcmVmaXgnXS4kcGFyYW1zWyd0ZW1wbGF0ZSddLCAKCQkgICAgICBteV9odG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10sRU5UX1FVT1RFUyxnZXRfZW5jb2RpbmcoKSkpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2FwcGx5YnV0dG9uJ10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0dGVtcGxhdGUnLCRyZXR1cm5pZCwkcGFyYW1zKTsKICB9CgppZiggJHRoaXMtPl9jdXJyZW50X3RhYiAhPSAnJyApCiAgewogICAgJG1vZHVsZS0+X2N1cnJlbnRfdGFiID0gJHRoaXMtPl9jdXJyZW50X3RhYjsKICAgICRtb2R1bGUtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIHJldHVybjsKICB9CiRtb2R1bGUtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCAhJGdDbXMgKSBleGl0KCk7CgovLyBpZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQovLyAgIHsKLy8gICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQovLyAgICAgcmV0dXJuOwovLyAgIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ21vZG5hbWUnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgkcGFyYW1zWydtb2RuYW1lJ10pOwppZiggISRtb2R1bGUgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKCi8vIGNoZWNrIGlmIHdlIGhhdmUgYSB0ZW1wbGF0ZSBuYW1lCmlmKCAhKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KaWYoICFpc3NldCgkcGFyYW1zWydtb2RlJ10pIHx8ICFpc3NldCgkcGFyYW1zWyd0aXRsZSddKSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkbW9kdWxlLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKLy8gaGFuZGxlIGVycm9ycy4KaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSApCiAgewogICAgZWNobyAkbW9kdWxlLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTsKICB9CgoKJHBhcmFtc1snb3JpZ2FjdGlvbiddID0gJHBhcmFtc1snYWN0aW9uJ107CiRjb250ZW50cyA9ICIiOwppZiggJHBhcmFtc1snbW9kZSddID09ICdhZGQnICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ2RvX2FkZHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAoJCQkJCSAgICBmYWxzZSwgJycsICRwYXJhbXMpKTsKICAgICRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGVtcGxhdGUnLCAiIiwgNDAsIDIwMCApKTsKICAgICRzbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3ByZWZpeCcsICRwYXJhbXNbJ3ByZWZpeCddKS4KCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NnX2FjdGl2ZXRhYicsCgkJCQkJICAgICAkdGhpcy0+X2N1cnJlbnRfdGFiKSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKSAmJiAkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10gIT0gJycgKQogICAgICB7CgkkY29udGVudHMgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7CiAgICAgIH0KICB9CiBlbHNlIAogICB7CiAgICAgJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCSAgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAoJCQkJCQkgICAgZmFsc2UsICcnLCAkcGFyYW1zKSk7CiAgICAgJHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwogICAgICRzbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd0ZW1wbGF0ZScsICRwYXJhbXNbJ3RlbXBsYXRlJ10gKS4KCQkgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjZ19hY3RpdmV0YWInLAoJCQkJCSAgICAgICR0aGlzLT5fY3VycmVudF90YWIpKTsKICAgICAkY29udGVudHMgPSAkbW9kdWxlLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWydwcmVmaXgnXS4kcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICAgICAkc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2FwcGx5YnV0dG9uJywKCQkJCQkJICAgJHRoaXMtPkxhbmcoJ2FwcGx5JykpKTsKICAgfQoKaWYoIG1ldGhvZF9leGlzdHMoJG1vZHVsZSwgJ0dldEVkaXRUZW1wbGF0ZU1lc3NhZ2UnKSApCiAgewogICAgICR0eHQgPSAkbW9kdWxlLT5HZXRFZGl0VGVtcGxhdGVNZXNzYWdlKCRwYXJhbXNbJ3ByZWZpeCddKTsKICAgICAkc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX2luZm8nLCR0eHQpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snaW5mbyddKSAmJiAhZW1wdHkoJHBhcmFtc1snaW5mbyddKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9pbmZvJyx0cmltKCRwYXJhbXNbJ2luZm8nXSkpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsbXlfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RpdGxlJ10pKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbigndGVtcGxhdGUnLAoJCSR0aGlzLT5DcmVhdGVUZXh0QXJlYSAoZmFsc2UsICRpZCwKCQkJCSAgICAgICAkY29udGVudHMsICd0ZW1wbGF0ZWNvbnRlbnQnLCAnJykpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLAoJCQkJCQkgICAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnY2FuY2VsJywgCgkJCQkJCSAgICR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXR0ZW1wbGF0ZS50cGwnKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.makedefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFF1ZXN0aW9ucyAtIGEgc2ltcGxlIFF1ZXN0aW9ucyAmIEFuc3dlciBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIGNhbGd1eTEwMDAgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7CgovLyBpZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQovLyAgIHsKLy8gICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQovLyAgICAgcmV0dXJuOwovLyAgIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ21vZG5hbWUnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KJG1vZHVsZSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJHBhcmFtc1snbW9kbmFtZSddKTsKaWYoICEkbW9kdWxlICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCwkdGhpcy0+X2N1cnJlbnRfdGFiLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ2RlZmF1bHRwcmVmbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3RUb1RhYigkaWQsJHRoaXMtPl9jdXJyZW50X3RhYiwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CiRtb2R1bGUtPlNldFByZWZlcmVuY2UoJHBhcmFtc1snZGVmYXVsdHByZWZuYW1lJ10sJHBhcmFtc1sndGVtcGxhdGUnXSk7CgokbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCwkdGhpcy0+X2N1cnJlbnRfdGFiKTsKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.setdefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJyk7IC8vRG9uJ3QgYWN0dWFsbHkgY2FyZS4gIEp1c3QgZm9yY2UgYSBsb2dpbi4KCmlmKCAhaXNzZXQoJHBhcmFtc1snZGVzdG1vZHVsZSddKSApCnsKICAgIHN0YWNrX3RyYWNlKCk7CiAgICBkaWUoJzxici8+RGVzdGluYXRpb24gbW9kdWxlIG5vdCBzZXQnKTsKfQokbW9kdWxlID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgkcGFyYW1zWydkZXN0bW9kdWxlJ10pOwppZiggIWlzX29iamVjdCgkbW9kdWxlKSApCnsKICAgIHN0YWNrX3RyYWNlKCk7CiAgICBkaWUoJzxici8+Q291bGQgbm90IGZpbmQgZGVzdGluYXRpb24gbW9kdWxlJyk7IAp9CgppZiggaXNzZXQoJHBhcmFtc1sncmVzZXR0b2RlZmF1bHQnXSkgJiYKICAgIGlzc2V0KCRwYXJhbXNbJ3ByZWZuYW1lJ10pICYmCiAgICBpc3NldCgkcGFyYW1zWydmaWxlbmFtZSddKSApCiAgewogICAgJGZuID0gZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuRElSRUNUT1JZX1NFUEFSQVRPUi4kbW9kdWxlLT5HZXROYW1lKCkuRElSRUNUT1JZX1NFUEFSQVRPUi4KICAgICAgJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4kcGFyYW1zWydmaWxlbmFtZSddOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJG1vZHVsZS0+U2V0UHJlZmVyZW5jZSgkcGFyYW1zWydwcmVmbmFtZSddLCR0ZW1wbGF0ZSk7CiAgICAgIH0KICB9CiBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYKCSAgaXNzZXQoJHBhcmFtc1sncHJlZm5hbWUnXSkgKQogICB7CiAgICAgJG1vZHVsZS0+U2V0UHJlZmVyZW5jZSgkcGFyYW1zWydwcmVmbmFtZSddLCRwYXJhbXNbJ2lucHV0X3RlbXBsYXRlJ10pOwogICB9CgokbW9kdWxlLT5TZXRDdXJyZW50VGFiKCR0aGlzLT5fY3VycmVudF90YWIpOwokbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vaWYoIGlzc2V0KCAkcGFyYW1zWydhY3RpdmVfdGFiJ10gKSApCi8vICB7Ci8vICAgICRtb2R1bGUtPm15UmVkaXJlY3RUb1RhYigkaWQsJHBhcmFtc1snYWN0aXZlX3RhYiddKTsKLy8gICAgcmV0dXJuOwovLyAgfQovLyRtb2R1bGUtPm15UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/CGExtensions.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucwojIFZlcnNpb246IDEuMCwgUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8KCmlmKCAhY2xhc3NfZXhpc3RzKCdDR0V4dGVuc2lvbnMnKSApCiAgewoKcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb25zLm1pc2MucGhwJyk7CmNsYXNzIENHRXh0ZW5zaW9ucyBleHRlbmRzIENNU01vZHVsZQp7CiAgdmFyICRfaW1hZ2VfZGlyZWN0b3JpZXM7CiAgdmFyICRfY3VycmVudF90YWI7CiAgdmFyICRfZXJyb3Jtc2c7CiAgdmFyICRfcmV0dXJuaWQ7CgogIC8qCiAgICogQSBzbWFydHkgYmxvY2sgcGx1Z2luIGZvciBkaXNwbGF5aW5nIGFuIGVycm9yIHVzaW5nCiAgICogYSB0ZW1wbGF0ZS4gIGkuZSB7ZXJyb3J9YmxhaCBibGFoIGJsYWh7L2Vycm9yfQogICAqCiAgICovCiAgZnVuY3Rpb24gYmxvY2tEaXNwbGF5RXJyb3IoJHBhcmFtcywkY29udGVudCwmJHNtYXJ0eSwkcmVwZWF0KQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICR0eHQgPSAnJzsKICAgIGlmKCB0cmltKCRjb250ZW50KSAhPSAnJyApCiAgICAgIHsKCSRlcnJvcmNsYXNzID0gJ2Vycm9yJzsKCWlmKCBpc3NldCggJHBhcmFtc1snZXJyb3JjbGFzcyddICkgKQoJICB7CgkgICAgJGVycm9yY2xhc3MgPSB0cmltKCRwYXJhbXNbJ2Vycm9yY2xhc3MnXSk7CgkgIH0KCSRvYmogPSYgJGdDbXMtPm1vZHVsZXNbJ0NHRXh0ZW5zaW9ucyddWydvYmplY3QnXTsKCSR0eHQgPSAkb2JqLT5EaXNwbGF5RXJyb3JNZXNzYWdlKCRjb250ZW50LCRlcnJvcmNsYXNzKTsKICAgICAgfQogICAgCiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2Fzc2lnbiddICkgKQogICAgICB7Cgkkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJHR4dCk7CglyZXR1cm4gJyc7CiAgICAgIH0KICAgIHJldHVybiAkdHh0OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIENvbnN0cnVjdG9yOgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIENHRXh0ZW5zaW9ucygpCiAgewogICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKICAgIAogICAgZ2xvYmFsICRnQ21zOwogICAgJHNtYXJ0eSA9JiAkZ0Ntcy0+R2V0U21hcnR5KCk7CgogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfYmxvY2soJ2NnZXJyb3InLAoJCQkgICAgYXJyYXkoJ0NHRXh0ZW5zaW9ucycsJ2Jsb2NrRGlzcGxheUVycm9yJykpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldE5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAnQ0dFeHRlbnNpb25zJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRGcmllbmRseU5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKICB9CgoJCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewogICAgcmV0dXJuICcxLjUnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEhlbHAoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEhlbHAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvcigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICB7CiAgICByZXR1cm4gJ2NhbGd1eTEwMDAnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvckVtYWlsKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewogICAgcmV0dXJuICdjYWxndXkxMDAwQGhvdG1haWwuY29tJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRDaGFuZ2VMb2coKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJc1BsdWdpbk1vZHVsZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiBmYWxzZTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBIYXNBZG1pbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSGFzQWRtaW4oKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluU2VjdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKICB7CiAgICByZXR1cm4gJ2V4dGVuc2lvbnMnOyAvLyBOZWVkZWQgZm9yIHdpa2kgaGVscCBsaW5rIHRvIHdvcmsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldERlcGVuZGVuY2llcygpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICIxLjIiOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgfQoKCiAgLyoqKgogICAqIEEgbWV0aG9kIHRvIHRlc3QgaWYgYW4gYXJyYXkgZWxlbWVudCBleGlzdHMgYnkgdGVzdGluZwogICAqIGEgc3Vic2V0IG9mIGl0J3Mga2V5CiAgICoKICAgKiBAcGFyYW0gYXJyYXkgIFRoZSBhcnJheSB0byB0ZXN0CiAgICogQHBhcmFtIHN0cmluZyBUaGUgc3Vic3RyaW5nIGV4cHJlc3Npb24gdG8gdGVzdCBmb3IKICAgKi8KICBmdW5jdGlvbiBhcnJheV9rZXlfZXhpc3RzX3N1YnN0ciggJGFyciwgJGV4cHIgKQogIHsKICAgICRrZXlzID0gYXJyYXlfa2V5cyggJGFyciApOwogICAgZm9yZWFjaCggJGtleXMgYXMgJGsgKQogICAgICB7CglpZiggc3Ryc3RyKCAkaywgJGV4cHIgKSApIHJldHVybiB0cnVlOwogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyoqCiAgICogVGVzdCBpZiBhbiBhcnJheSBrZXkgZXhpc3RzLCBnaXZlbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbgogICAqCiAgICogQHBhcmFtIGFycmF5ICBUaGUgYXJyYXkgdG8gc2VhcmNoCiAgICogQHBhcmFtIHN0cmluZyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSBpbiB0aGUgc2VhcmNoCiAgICovCiAgZnVuY3Rpb24gYXJyYXlfZmluZF9rZXlfcmVnZXhwKCAkYXJyLCAkZXhwciApCiAgewogICAgJGtleXMgPSBhcnJheV9rZXlzKCAkYXJyICk7CiAgICBmb3JlYWNoKCAka2V5cyBhcyAkayApCiAgICAgIHsKCWlmKCBwcmVnX21hdGNoKCAkZXhwciwgJGsgKSApIHJldHVybiAkazsKICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCgogIC8qKgogICAqIE1lcmdlIHR3byBoYXNoZXMKICAgKgogICAqIEBwYXJhbSBhcnJheSAgVGhlIGFycmF5IHRvIHNlYXJjaAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB1c2UgaW4gdGhlIHNlYXJjaAogICAqLwogIGZ1bmN0aW9uIGFycmF5X21lcmdlX2J5X25hbWVfcmVxdWlyZWQoICRhcnIxLCAkYXJyMiApCiAgewogICAgJHh4cmVzdWx0ID0gYXJyYXkoKTsKICAgIC8vIGFkZCBpdGVtcyBjb21tb24gdG8gYXJyMSBhbmQgYXJyMiAKICAgIC8vIGJ1dCBmYXZvciByZXF1aXJlZCBpdGVtcwogICAgaWYoICFpc19hcnJheSggJGFycjEgKSB8fCAhaXNfYXJyYXkoICRhcnIyICkgKQogICAgICB7CglyZXR1cm47CiAgICAgIH0KICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApCiAgICAgIHsKCWZvcmVhY2goICRhcnIyIGFzICRhMiApCgkgIHsKCSAgICBpZiggJGExWyduYW1lJ10gPT0gJGEyWyduYW1lJ10gKSAKCSAgICAgIHsKCQlpZiggJGExWydyZXF1aXJlZCddID09IDIgKSAKCQkgIHsKCQkgICAgYXJyYXlfcHVzaCggJHh4cmVzdWx0LCAkYTEgKTsKCQkgICAgYnJlYWs7CgkJICB9CgkJZWxzZSAKCQkgIHsKCQkgICAgYXJyYXlfcHVzaCggJHh4cmVzdWx0LCAkYTIgKTsKCQkgICAgYnJlYWs7CgkJICB9CgkgICAgICB9ICAgIAoJICB9CiAgICAgIH0KICAKICAgIC8vIGFkZCBpdGVtcyBpbiBhcnIxIG5vdCBpbiByZXN1bHQKICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApCiAgICAgIHsKCSRmb3VuZCA9IGZhbHNlOwoJZm9yZWFjaCggJHh4cmVzdWx0IGFzICRyZXMgKQoJICB7CgkgICAgaWYoICRhMVsnbmFtZSddID09ICRyZXNbJ25hbWUnXSApCgkgICAgICB7CgkJJGZvdW5kID0gdHJ1ZTsKCQlicmVhazsKCSAgICAgIH0KCSAgfQoJaWYoICEkZm91bmQgKQoJICB7CgkgICAgYXJyYXlfcHVzaCggJHh4cmVzdWx0LCAkYTEgKTsKCSAgfQogICAgICB9CiAgCiAgICAvLyBhZGQgaXRlbXMgaW4gYXJyMiBub3QgaW4gcmVzdWx0CiAgICBmb3JlYWNoKCAkYXJyMiBhcyAkYTIgKQogICAgICB7CgkkZm91bmQgPSBmYWxzZTsKCWZvcmVhY2goICR4eHJlc3VsdCBhcyAkcmVzICkKCSAgewoJICAgIGlmKCAkYTJbJ25hbWUnXSA9PSAkcmVzWyduYW1lJ10gKQoJICAgICAgewoJCSRmb3VuZCA9IHRydWU7CgkJYnJlYWs7CgkgICAgICB9CgkgIH0KCWlmKCAhJGZvdW5kICkKCSAgewoJICAgIGFycmF5X3B1c2goICR4eHJlc3VsdCwgJGEyICk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICR4eHJlc3VsdDsKICB9CgoKICAvKgogICAqIENvbXBhcmUgdHdvIGhhc2hlcyBieSB0aGUga2V5ICdzb3J0X2tleScKICAgKi8KICBmdW5jdGlvbiBjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXkoICRlMSwgJGUyICkKICB7CiAgICBpZiggJGUxWydzb3J0X2tleSddIDwgJGUyWydzb3J0X2tleSddICkKICAgICAgewoJcmV0dXJuIC0xOwogICAgICB9CiAgICBlbHNlIGlmKCAkZTFbJ3NvcnRfa2V5J10gPiAkZTJbJ3NvcnRfa2V5J10gKQogICAgICB7CglyZXR1cm4gMTsKICAgICAgfQogICAgcmV0dXJuIDA7CiAgfQoKCiAgLyoKICAgKiBFeHBsb2RlIGFuIGFycmF5IGludG8gYSBoYXNoCiAgICovCiAgZnVuY3Rpb24gZXhwbG9kZV93aXRoX2tleSgkc3RyLCAkaW5nbHVlPSc9JywgJG91dGdsdWU9JyYnKQogIHsKICAgICRyZXQgPSBhcnJheSgpOwogICAgJGExID0gc3BsaXQoJG91dGdsdWUsJHN0cik7CiAgICBmb3JlYWNoKCAkYTEgYXMgJGEyICkKICAgICAgewoJbGlzdCggJGssICR2ICkgPSBzcGxpdCggJGluZ2x1ZSwgJGEyICk7CgkkcmV0WyAkayBdID0gJHY7CiAgICAgIH0KICAgIHJldHVybiAkcmV0OwogIH0KCgogIC8qCiAgICogRmluZCB0aGUgaW5kZXggdGhhdCBzdG9yZXMgYSB2YWx1ZSBpbiBhbiBhcnJheQogICAqLwogIGZ1bmN0aW9uIGZpbmRfaW5kZXhfb2ZfdmFsdWUoICRkYXRhLCAkdmFsdWUsICRkZmx0ICkKICB7CiAgICAkaSA9IDA7CiAgICBmb3JlYWNoKCAkZGF0YSBhcyAkaz0+JHYgKQogICAgICB7CglpZiggJHYgPT0gJHZhbHVlICkKCSAgewoJICAgIHJldHVybiAkaTsKCSAgfQoJJGkrKzsKICAgICAgfQogICAgcmV0dXJuICRkZmx0OwogIH0KCiAgLyoKICAgKiBzZWFyY2ggYW4gYXJyYXkgb2YgaGFzaGVzIGZvciBhIHBhcnRpY3VsYXIga2V5IHZhbHVlCiAgICovCiAgZnVuY3Rpb24gbmVzdGVkX2FycmF5X3NlYXJjaF9ieV9rZXkoICYkaW5wdXQsICRrZXksICR2YWx1ZSApCiAgewogICAgZm9yZWFjaCggJGlucHV0IGFzICRvbmVlbGVtICkKICAgICAgewoJaWYoIGlzc2V0KCRvbmVlbGVtWyRrZXldKSApCgkgIHsKCSAgICBpZiggJG9uZWVsZW1bJGtleV0gPT0gJHZhdWUgKQoJICAgICAgewoJCXJldHVybiB0cnVlOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIC8qCiAgICogSW1wbG9kZSBhIGhhc2ggaW50byBhbiBhcnJheQogICAqLwogIGZ1bmN0aW9uIGltcGxvZGVfd2l0aF9rZXkoJGFzc29jLCAkaW5nbHVlID0gJz0nLCAkb3V0Z2x1ZSA9ICcmJykKICB7CiAgICAkcmV0dXJuID0gbnVsbDsKICAgIGZvcmVhY2ggKCRhc3NvYyBhcyAkdGsgPT4gJHR2KSAkcmV0dXJuIC49ICRvdXRnbHVlLiR0ay4kaW5nbHVlLiR0djsKICAgIHJldHVybiBzdWJzdHIoJHJldHVybixzdHJsZW4oJG91dGdsdWUpKTsKICB9CgoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIGEgdXJsCiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlVVJMKCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSkKICB7CiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCRhY3Rpb24sJHJldHVybmlkLCcnLCRwYXJhbXMsJycsdHJ1ZSwkaW5saW5lKTsKICB9CgoKICAvKgogICAqIENyZWF0ZSBhIHllcy9ubyBkcm9wZG93bgogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJG5hbWUsJHNlbGVjdGVkdmFsdWU9JycsJGFkZHRleHQ9JycpCiAgewogICAgJGNnZXh0ZW5zaW9ucyA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHRXh0ZW5zaW9ucycpOwogICAgJGl0ZW1zID0gYXJyYXkoJGNnZXh0ZW5zaW9ucy0+TGFuZygneWVzJyk9PjEsCgkJICAgJGNnZXh0ZW5zaW9ucy0+TGFuZygnbm8nKT0+MCk7CiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRpdGVtcywtMSwkc2VsZWN0ZWR2YWx1ZSwkYWRkdGV4dCk7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIG1ldGhvZCB0byBjcmVhdGUgYSBjaGVja2JveAogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkc2VsZWN0ZWR2YWx1ZT0nJywgCgkJCSAgICAgICAkYWRkdHRleHQ9JycpCiAgewogICAgJHRleHQgPSAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyInOwogICAgJGFyciA9IHNwbGl0KCIsIiwkc2VsZWN0ZWR2YWx1ZSk7CiAgICBmb3JlYWNoKCAkYXJyIGFzICRhICkKICAgICAgewoJaWYgKCRhID09ICR2YWx1ZSkKCSAgewoJICAgICR0ZXh0IC49ICcgJyAuICdjaGVja2VkPSJjaGVja2VkIic7CgkgIH0KICAgICAgfQogICAgaWYgKCRhZGR0dGV4dCAhPSAnJykKICAgICAgewoJJHRleHQgLj0gJyAnLiRhZGR0dGV4dDsKICAgICAgfQogICAgJHRleHQgLj0gIiAvPlxuIjsKICAgIHJldHVybiAkdGV4dDsKICB9CgoKICAvKgogICAqIEEgQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGZvcm1zCiAgICovCiAgZnVuY3Rpb24gQ0dDcmVhdGVGb3JtU3RhcnQoJGlkLCRhY3Rpb249J2RlZmF1bHQnLCRyZXR1cm5pZD0nJywkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSwkbWV0aG9kPSdwb3N0JywkZW5jdHlwZT0nJywkaWRzdWZmaXg9JycsJGV4dHJhPScnKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkbWV0aG9kLCRlbmN0eXBlLCRpbmxpbmUsJGlkc3VmZml4LCRwYXJhbXMsJGV4dHJhKTsKICB9CgoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgZnJvbnRlbmQgZm9ybQogICAqLwogIGZ1bmN0aW9uIENHQ3JlYXRlRnJvbnRlbmRGb3JtU3RhcnQoJGlkLCRhY3Rpb249J2RlZmF1bHQnLCRyZXR1cm5pZD0nJywkcGFyYW1zPWFycmF5KCksJGlubGluZT10cnVlLCRtZXRob2Q9J3Bvc3QnLCRlbmN0eXBlPScnLCRpZHN1ZmZpeD0nJywkZXh0cmE9JycpCiAgewogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVGcm9udGVuZEZvcm1TdGFydCgkaWQsJHJldHVybmlkLCRhY3Rpb24sJG1ldGhvZCwkZW5jdHlwZSwkaW5saW5lLCRpZHN1ZmZpeCwkcGFyYW1zLCRleHRyYSk7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIGhpZGRlbiBmb3JtIGVsZW1lbnQKICAgKi8KICBmdW5jdGlvbiBDcmVhdGVJbnB1dEhpZGRlbiggJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkYWRkdGV4dD0nJywgJGRlbGltPScsJykKICB7CiAgICBpZiggaXNfYXJyYXkoICR2YWx1ZSApICkKICAgICAgewoJJHZhbCA9IGltcGxvZGVfd2l0aF9rZXkoICR2YWx1ZSApOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR2YWwgPSAkdmFsdWU7CiAgICAgIH0KICAgICR2YWwgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsKTsKICAgICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicuJGlkLiRuYW1lLiciIHZhbHVlPSInLiR2YWwuJyInOwogICAgaWYgKCRhZGR0ZXh0ICE9ICcnKQogICAgICB7CgkkdGV4dCAuPSAnICcuJGFkZHRleHQ7CiAgICAgIH0KICAgICR0ZXh0IC49ICIgLz5cbiI7CiAgICByZXR1cm4gJHRleHQ7CiAgfQoKCiAgLyoKICAgKiBBIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIHJlZGlyZWN0IHRvIGFuIGFkbWluIHRhYiBpbiB0aGUKICAgKiBkZWZhdWx0YWRtaW4gYWN0aW9uCiAgICoKICAgKiBTZWUgQWxzbzogIFNldEN1cnJlbnRUYWIKICAgKi8KICBmdW5jdGlvbiBSZWRpcmVjdFRvVGFiKCAkaWQsICR0YWIgPSAnJywgJHBhcmFtcyA9ICcnICkKICB7CiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCAkcGFyYW1zICkgKQogICAgICB7CgkkcGFybXMgPSAkcGFyYW1zOwogICAgICB9CiAgICBpZiggJHRhYiA9PSAnJyApCiAgICAgIHsKCSR0YWIgPSAkdGhpcy0+X2N1cnJlbnRfdGFiOwogICAgICB9CiAgICAkcGFybXNbJ2NnX2FjdGl2ZXRhYiddID0gJHRhYjsKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2Vycm9ybXNnKSAmJiBjb3VudCgkdGhpcy0+X2Vycm9ybXNnKSApCiAgICAgIHsKCSRwYXJtc1snY2dfZXJyb3InXSA9IGltcGxvZGUoJzplcnI6JywkdGhpcy0+X2Vycm9ybXNnKTsKICAgICAgfQoKICAgICR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJtcywgdHJ1ZSApOwogIH0KCgogIC8qCiAgICogQSByZXBsYWNlbWVudCBmb3IgdGhlIGJ1aWx0IGluIERvQWN0aW9uIG1ldGhvZAogICAqLwogIGZ1bmN0aW9uIERvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZD0nJykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCRpZCk7CgogICAgJHRoaXMtPl9yZXR1cm5pZCA9ICRyZXR1cm5pZDsKICAgIGlmKCAkcmV0dXJuaWQgPT0gJycgKQogICAgICB7CglpZiggaXNzZXQoJHBhcmFtc1snY2dfYWN0aXZldGFiJ10pICkKCSAgewoJICAgICR0aGlzLT5fY3VycmVudF90YWIgPSB0cmltKCRwYXJhbXNbJ2NnX2FjdGl2ZXRhYiddKTsKCSAgICB1bnNldCgkcGFyYW1zWydjZ19hY3RpdmV0YWInXSk7CgkgIH0KCWlmKCBpc3NldCgkcGFyYW1zWydjZ19lcnJvciddKSApCgkgIHsKCSAgICAkdGhpcy0+X2Vycm9ybXNnID0gZXhwbG9kZSgnOmVycjonLCRwYXJhbXNbJ2NnX2Vycm9yJ10pOwoJICAgIHVuc2V0KCRwYXJhbXNbJ2NnX2Vycm9yJ10pOwoJICB9CiAgICAgIH0KICAgIHBhcmVudDo6RG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICB9CgoKICAvKgogICAqIFRlc3QgaWYgdGhlIGN1cnJlbnQgY29kZSBpcyBoYW5kbGluZyBhbiBhZG1pbiBhY3Rpb24gb3IKICAgKiBhIGZyb250ZW5kIGFjdGlvbgogICAqLwogIGZ1bmN0aW9uIElzQWRtaW5BY3Rpb24oKQogIHsKICAgIHJldHVybiAoJHRoaXMtPl9yZXR1cm5pZCA9PSAnJyk7CiAgfQoKCiAgLyoKICAgKiBTZXQgYW4gZXJyb3IKICAgKi8KICBmdW5jdGlvbiBTZXRFcnJvcigkc3RyKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoICR0aGlzLT5fZXJyb3Jtc2cgKSApCiAgICAgICR0aGlzLT5fZXJyb3Jtc2cgPSBhcnJheSgpOwogICAgJHRoaXMtPl9lcnJvcm1zZ1tdID0gJHN0cjsKICB9CgoKICAvKgogICAqIERpc3BsYXkgZXJyb3JzIHVzaW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUKICAgKi8KICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JzKCkKICB7CiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9lcnJvcm1zZykgJiYgY291bnQoJHRoaXMtPl9lcnJvcm1zZykgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5fZXJyb3Jtc2cpOwoJJHRoaXMtPl9lcnJvcm1zZyA9IGFycmF5KCk7CiAgICAgIH0KICB9CgoKICAvKgogICAqIFNldCB0aGUgY3VycmVudCBhZG1pbiB0YWIKICAgKiBTZWUgQWxzbzogIFJlZGlyZWN0IFRvIFRhYgogICAqLwogIGZ1bmN0aW9uIFNldEN1cnJlbnRUYWIoJHRhYm5hbWUpCiAgewogICAgJHRoaXMtPl9jdXJyZW50X3RhYiA9ICR0YWJuYW1lOwogIH0KCgogIC8qCiAgICogQSByZXBsYWNlbWVudCBmb3IgdGhlIGJ1aWx0IGluIFNldFRhYkhlYWRlcgogICAqLwogIGZ1bmN0aW9uIFNldFRhYkhlYWRlcigkbmFtZSwkc3RyLCRzdGF0ZSA9ICd1bmtub3duJykKICB7CiAgICBpZiggJHN0YXRlID09ICd1bmtub3duJyApCiAgICAgIHsKCSRzdGF0ZSA9ICgkbmFtZSA9PSAkdGhpcy0+X2N1cnJlbnRfdGFiKTsKICAgICAgfQogICAgcmV0dXJuIHBhcmVudDo6U2V0VGFiSGVhZGVyKCRuYW1lLCRzdHIsJHN0YXRlKTsKICB9CgoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGFuIDxpbWc+IHRhZy4KICAgKi8KICBmdW5jdGlvbiBDcmVhdGVJbWFnZVRhZygkaW1hZ2UsJGFsdD0nJywkd2lkdGg9JycsJGhlaWdodD0nJywkY2xhc3M9JycsJGFkZHRleHQ9JycpCiAgewogICAgJHR4dCA9ICI8aW1nIHNyYz1cIiRpbWFnZVwiIjsKICAgIGlmKCAkYWx0ICE9ICcnICkKICAgICAgewoJJHR4dCAuPSAiIGFsdD1cIiRhbHRcIiI7CgkkdHh0IC49ICIgdGl0bGU9XCIkYWx0XCIiOwogICAgICB9CiAgICBpZiggJHdpZHRoICE9ICcnICkKICAgICAgewoJJHR4dCAuPSAiIHdpZHRoPVwiJHdpZHRoXCIiOwogICAgICB9CiAgICBpZiggJGhlaWdodCAhPSAnJyApCiAgICAgIHsKCSR0eHQgLj0gIiBoZWlnaHQ9XCIkaGVpZ2h0XCIiOwogICAgICB9CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHR4dCAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICBpZiggJGFkZHRleHQgIT0gJycgKQogICAgICB7CgkkdHh0IC49ICIgJGFkZHRleHQiOwogICAgICB9CiAgICAkdHh0IC49ICIgLz4iOwogICAgcmV0dXJuICR0eHQ7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIHNlYXJjaCBmb3IgYW4gaW1hZ2UgaW4gY2VydGFpbiBwcmVzZXQgCiAgICogZGlyZWN0b3JpZXMKICAgKi8KICBmdW5jdGlvbiBEaXNwbGF5SW1hZ2UoJGltYWdlLCRhbHQ9JycsJGNsYXNzPScnLCR3aWR0aD0nJywkaGVpZ2h0PScnKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOwoKICAgIC8vIGNoZWNrIGltYWdlX2RpcmVjdG9yaWVzIGZpcnN0CiAgICBpZiggaXNzZXQoJHRoaXMtPl9pbWFnZV9kaXJlY3RvcmllcykgJiYgIWVtcHR5KCR0aGlzLT5faW1hZ2VfZGlyZWN0b3JpZXMpKQogICAgICB7Cglmb3JlYWNoKCAkdGhpcy0+X2ltYWdlX2RpcmVjdG9yaWVzIGFzICRkaXIgKQoJICB7CgkgICAgJHVybCA9IGNtc19qb2luX3BhdGgoJGRpciwkaW1hZ2UpOwoJICAgICRwYXRoID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwkdXJsKTsKCgkgICAgaWYoIGlzX3JlYWRhYmxlKCRwYXRoKSApCgkgICAgICB7CgkJaWYoICR0aGlzLT5Jc0FkbWluQWN0aW9uKCkgKQoJCSAgJHVybCA9IGNtc19qb2luX3BhdGgoJy4uJywkdXJsKTsKCQlyZXR1cm4gJHRoaXMtPkNyZWF0ZUltYWdlVGFnKCR1cmwsJGFsdCwkd2lkdGgsJGhlaWdodCwkY2xhc3MpOwoJICAgICAgfQoJICB9CiAgICAgIH0KCiAgICAkdGhlbWUgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOwogICAgaWYoIGlzX29iamVjdCgkdGhlbWUpICkgCiAgICAgIHsKCS8vIHdlJ3JlIGluIHRoZSBhZG1pbgoJJHR4dCA9ICR0aGVtZS0+RGlzcGxheUltYWdlKCRpbWFnZSwkYWx0LCR3aWR0aCwkaGVpZ2h0LCRjbGFzcyk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gZnJvbnRlbmQKCSR0eHQgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VUYWcoJGltYWdlLCRhbHQsJHdpZHRoLCRoZWlnaHQsJGNsYXNzKTsKICAgICAgfQogICAgcmV0dXJuICR0eHQ7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIGxpbmsgd2l0aCBhbiBpbWFnZQogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUltYWdlTGluaygkaWQsJGFjdGlvbiwkcmV0dXJuaWQsJGNvbnRlbnRzLCRpbWFnZSwKCQkJICAgJHBhcmFtcz1hcnJheSgpLCRjbGFzc25hbWU9JycsCgkJCSAgICR3YXJuX21lc3NhZ2U9JycsJGltYWdlb25seT10cnVlLAoJCQkgICAkaW5saW5lPWZhbHNlLAoJCQkgICAkYWRkdGV4dD0nJywkdGFyZ2V0Y29udGVudG9ubHk9ZmFsc2UsJHByZXR0eXVybD0nJykKICB7CiAgICBpZiggJGNsYXNzbmFtZSA9PSAnJyApICRjbGFzc25hbWUgPSAnc3lzdGVtaWNvbic7CgogICAgJHR4dCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwKCQkJICAgICAkdGhpcy0+RGlzcGxheUltYWdlKCRpbWFnZSwkY29udGVudHMsJGNsYXNzbmFtZSksIAoJCQkgICAgICRwYXJhbXMsICR3YXJuX21lc3NhZ2UsIGZhbHNlLCAkaW5saW5lLCAKCQkJICAgICAkYWRkdGV4dCwgJHRhcmdldGNvbnRlbnRvbmx5LCAkcHJldHR5dXJsICk7CiAgICBpZiggJGltYWdlb25seSAhPT0gdHJ1ZSApCiAgICAgIHsKCSR0eHQgLj0gJyZuYnNwOyc7CgkkdHh0IC49ICR0aGlzLT5DcmVhdGVMaW5rCgkgICgkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwKCSAgICRjb250ZW50cywgJHBhcmFtcywgJHdhcm5fbWVzc2FnZSwgZmFsc2UsIAoJICAgJGlubGluZSwgJGFkZHRleHQsICR0YXJnZXRjb250ZW50b25seSwgCgkgICAkcHJldHR5dXJsICk7CiAgICAgIH0KICAgIHJldHVybiAkdHh0OwogIH0KCgogIC8qCiAgICogQSBmdW5jdGlvbiBmb3IgdXNpbmcgYSB0ZW1wbGF0ZSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UKICAgKi8KICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JNZXNzYWdlKCR0eHQsJGNsYXNzID0gJ2Vycm9yJykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbignY2dfZXJyb3JjbGFzcycsJGNsYXNzKTsKICAgICRzbWFydHktPmFzc2lnbignY2dfZXJyb3Jtc2cnLCR0eHQpOwogICAgJHJlcyA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2NnX2Vycm9ybXNnJywnJyx0cnVlLCdDR0V4dGVuc2lvbnMnKTsKICAgIHJldHVybiAkcmVzOwogIH0KCgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY3VycmVudCBlcnJvciB0ZW1wbGF0ZQogICAqLwogIGZ1bmN0aW9uIEdldEVycm9yVGVtcGxhdGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0VGVtcGxhdGUoJ2NnX2Vycm9ybXNnJywnQ0dFeHRlbnNpb25zJyk7CiAgfQoKCiAgLyoKICAgKiBSZXNldCB0aGUgZXJyb3IgdGVtcGxhdGUgdG8gZmFjdG9yeSBkZWZhdWx0cwogICAqLwogIGZ1bmN0aW9uIFJlc2V0RXJyb3JUZW1wbGF0ZSgpCiAgewogICAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19lcnJvcl90ZW1wbGF0ZS50cGwnKTsKICAgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogICAgICB7CgkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSggJ2NnX2Vycm9ybXNnJywgJHRlbXBsYXRlLCdDR0V4dGVuc2lvbnMnICk7CiAgICAgIH0KICB9CgoKICAvKgogICAqIFNldCB0aGUgZXJyb3IgdGVtcGxhdGUKICAgKi8KICBmdW5jdGlvbiBTZXRFcnJvclRlbXBsYXRlKCR0bXBsKQogIHsKICAgIHJldHVybiAkdGhpcy0+U2V0VGVtcGxhdGUoJ2NnX2Vycm9ybXNnJywkdG1wbCwnQ0dFeHRlbnNpb25zJyk7CiAgfQoKCiAgLyoKICAgKiBBZGQgYSBkaXJlY3RvcnkgdG8gdGhlIGxpc3Qgb2Ygc2VhcmNoYWJsZSBkaXJlY3RvcmllcwogICAqLwogIGZ1bmN0aW9uIEFkZEltYWdlRGlyKCRkaXIpCiAgewogICAgaWYoIHN0cnBvcygnLycsJGRpcikgIT09IDAgKQogICAgICB7CgkkZGlyID0gIm1vZHVsZXMvIi4kdGhpcy0+R2V0TmFtZSgpLicvJy4kZGlyOwogICAgICB9CiAgICAkdGhpcy0+X2ltYWdlX2RpcmVjdG9yaWVzW10gPSAkZGlyOwogIH0KCgogIC8qCiAgICogUGFydCBvZiB0aGUgbXVsdGlwbGUgZGF0YWJhc2UgdGVtcGxhdGUgZnVuY3Rpb25hbGl0eSwKICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBsaXN0IG9mIHRlbXBsYXRlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlCiAgICogdGhhdCBhbGwgc3RhcnQgd2l0aCB0aGUgc3BlY2lmaWVkIHByZWZpeC4KICAgKi8KICBmdW5jdGlvbiBMaXN0VGVtcGxhdGVzV2l0aFByZWZpeCgkcHJlZml4ID0gJycpCiAgewogICAgJHRlbXBsYXRlcyA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzKCk7CiAgICBpZiggJHByZWZpeCA9PSAnJyApIHJldHVybiAkdGVtcGxhdGVzOwoKICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdGVtcGxhdGVzIGFzICRvbmVuYW1lICkKICAgICAgewoJaWYoIHByZWdfbWF0Y2goJy9eJy4kcHJlZml4LicvJywkb25lbmFtZSkgKQoJICB7CgkgICAgJGl0ZW1zW10gPSAkb25lbmFtZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGl0ZW1zOwogIH0KCiAgLyoKICAgKiBQYXJ0IG9mIHRoZSBtdWx0aXBsZSBkYXRhYmFzZSB0ZW1wbGF0ZSBmdW5jdGlvbmFsaXR5LAogICAqIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgZHJvcGRvd24gbGlzdCB0byBhbGxvdyBzZWxlY3RpbmcKICAgKiBhIHRlbXBsYXRlIGZyb20gdGhlIG1vZHVsZXMgdGVtcGxhdGUgbGlzdCwgCiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlVGVtcGxhdGVEcm9wZG93bigkaWQsJG5hbWUsJHByZWZpeCA9ICcnLCRzZWxlY3RlZHZhbHVlID0gLTEsCgkJCQkgICRhZGR0ZXh0ID0gJycpCiAgewogICAgJHRlbXBsYXRlcyA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzV2l0aFByZWZpeCgkcHJlZml4KTsKICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdGVtcGxhdGVzIGFzICRvbmVuYW1lICkKICAgICAgewoJJHRtcCA9IHN1YnN0cigkb25lbmFtZSxzdHJsZW4oJHByZWZpeCkpOwoJJGl0ZW1zWyR0bXBdID0gJG9uZW5hbWU7CiAgICAgIH0KICAgIAogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwkbmFtZSwkaXRlbXMsLTEsJHNlbGVjdGVkdmFsdWUsJGFkZHRleHQpOwogIH0KCiAgLyoKICAgKiBQYXJ0IG9mIHRoZSBtdWx0aXBsZSBkYXRhYmFzZSB0ZW1wbGF0ZSBmdW5jdGlvbmFsaXR5CiAgICogdGhpcyBmdW5jdGlvbiBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGFkZGluZywgZWRpdGluZywKICAgKiBkZWxldGluZyBhbmQgbWFya2luZyBhY3RpdmUgYWxsIHRlbXBsYXRlcyB0aGF0IG1hdGNoCiAgICogYSBwcmVmaXguCiAgICovCiAgZnVuY3Rpb24gU2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCRwcmVmaXgsCgkJCSAgICAkZGVmYXVsdHRlbXBsYXRlcHJlZiwkYWN0aXZlX3RhYiwKCQkJICAgICRkZWZhdWx0cHJlZm5hbWUsCgkJCSAgICAkdGl0bGUsJGluZm8gPSAnJykKICB7CiAgICAkY2dleHRlbnNpb25zID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dFeHRlbnNpb25zJyk7CiAgICByZXR1cm4gJGNnZXh0ZW5zaW9ucy0+X0Rpc3BsYXlUZW1wbGF0ZUxpc3QoJHRoaXMsJGlkLCRyZXR1cm5pZCwkcHJlZml4LAoJCQkJICAgICAgJGRlZmF1bHR0ZW1wbGF0ZXByZWYsJGFjdGl2ZV90YWIsCgkJCSAgICAgICAgICAgICAgJGRlZmF1bHRwcmVmbmFtZSwkdGl0bGUsJGluZm8pOwogIH0KCgoKICBmdW5jdGlvbiBfRGlzcGxheVRlbXBsYXRlTGlzdCggJiRtb2R1bGUsICRpZCwgJHJldHVybmlkLCAkcHJlZml4LCAKCQkJCSAkZGVmYXVsdHRlbXBsYXRlcHJlZiwgCgkJCQkgJGFjdGl2ZV90YWIsICRkZWZhdWx0cHJlZm5hbWUsCgkJCQkgJHRpdGxlLCAkaW5mbyA9ICcnKQogIHsKICAgIC8vIHdlJ3JlIGdvbm5hIGFsbG93IG11bHRpcGxlIHRlbXBsYXRlcyBoZXJlCiAgICAvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nCiAgICBnbG9iYWwgJGdDbXM7CiAgICAKICAgICRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOwogICAgJHRydWVpbWFnZTEgPSAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywnZGVmYXVsdCcsJycsJycsJ3N5c3RlbWljb24nKTsKICAgICRhbGx0ZW1wbGF0ZXMgPSAkbW9kdWxlLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAkcm93YXJyYXkgPSBhcnJheSgpOwogICAgJHJvd2NsYXNzID0gJ3JvdzEnOwoKICAgIGZvcmVhY2goICRhbGx0ZW1wbGF0ZXMgYXMgJG9uZXRlbXBsYXRlICkKICAgICAgewoJaWYoICFwcmVnX21hdGNoKCIvXiRwcmVmaXgvIiwgJG9uZXRlbXBsYXRlICkgKQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCQoJJHRtcCA9IHN1YnN0cigkb25ldGVtcGxhdGUsc3RybGVuKCRwcmVmaXgpKTsKCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKCSRyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCSR0bXAsIGFycmF5KCd0ZW1wbGF0ZScgPT4gJHRtcCwKCQkJCQkJICAgICdjZ19hY3RpdmV0YWInID0+ICRhY3RpdmVfdGFiLAoJCQkJCQkgICAgJ3RpdGxlJz0+JHRpdGxlLAoJCQkJCQkgICAgJ2luZm8nPT4kaW5mbywKCQkJCQkJICAgICdwcmVmaXgnPT4kcHJlZml4LAoJCQkJCQkgICAgJ21vZG5hbWUnPT4kbW9kdWxlLT5HZXROYW1lKCksCgkJCQkJCSAgICAnbW9kZSc9PidlZGl0JykpOwoJJHJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgoJJGRlZmF1bHQgPSAoJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgkZGVmYXVsdHByZWZuYW1lKSA9PSAkdG1wKSA/IHRydWUgOiBmYWxzZTsKCWlmKCAkZGVmYXVsdCApCgkgIHsKCSAgICAkcm93LT5kZWZhdWx0ID0gJHRydWVpbWFnZTE7CgkgIH0KCWVsc2UKCSAgewoJICAgICRyb3ctPmRlZmF1bHQgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnbWFrZWRlZmF1bHR0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCQkgICAgICAgJGZhbHNlaW1hZ2UxLAoJCQkJCSAgICAgICBhcnJheSgndGVtcGxhdGUnPT4kdG1wLAoJCQkJCQkgICAgICdkZWZhdWx0cHJlZm5hbWUnPT4kZGVmYXVsdHByZWZuYW1lLAoJCQkJCQkgICAgICdtb2RuYW1lJz0+JG1vZHVsZS0+R2V0TmFtZSgpLAoJCQkJCQkgICAgICdjZ19hY3RpdmV0YWInID0+ICRhY3RpdmVfdGFiKSk7CgkgIH0KCgkkcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoICRpZCwnZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsCgkJCQkJCSAkdGhpcy0+TGFuZygncHJvbXB0X2VkaXR0ZW1wbGF0ZScpLAoJCQkJCQkgJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCgkJCQkJCSBhcnJheSAoJ3RlbXBsYXRlJyA9PiAkdG1wLAoJCQkJCQkJJ2NnX2FjdGl2ZXRhYicgPT4gJGFjdGl2ZV90YWIsCgkJCQkJCQkncHJlZml4Jz0+JHByZWZpeCwKCQkJCQkJCSd0aXRsZSc9PiR0aXRsZSwKCQkJCQkJCSdpbmZvJz0+JGluZm8sCgkJCQkJCQknbW9kbmFtZSc9PiRtb2R1bGUtPkdldE5hbWUoKSwKCQkJCQkJCSdtb2RlJz0+J2VkaXQnKSk7CgkKCWlmKCAkZGVmYXVsdCApCgkgIHsKCSAgICAkcm93LT5kZWxldGVsaW5rID0gJyZuYnNwOyc7CgkgIH0KCWVsc2UKCSAgewoJICAgICRyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCAkaWQsICdkZWxldGV0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCQkJICAgICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRldGVtcGxhdGUnKSwKCQkJCQkJICAgICAgICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkJCSAgICAgICBhcnJheSAoJ3RlbXBsYXRlJyA9PiAkb25ldGVtcGxhdGUsCgkJCQkJCQkgICAgICAnbW9kbmFtZSc9PiRtb2R1bGUtPkdldE5hbWUoKSwKCQkJCQkJCSAgICAgICdjZ19hY3RpdmV0YWInID0+ICRhY3RpdmVfdGFiKSwKCQkJCQkJICAgICAgICcnLAoJCQkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKSk7CgkgIH0KCQoJYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkcm93KTsKCSgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKICAgICAgfQogICAgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5ICk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVwcm9tcHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X25hbWUnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRwcm9tcHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X2RlZmF1bHQnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld3RlbXBsYXRlbGluaycsCgkJCSAgJHRoaXMtPkNyZWF0ZUltYWdlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3dGVtcGxhdGUnKSwKCQkJCQkJICAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLAoJCQkJCQkgIGFycmF5KCdwcmVmaXgnID0+ICRwcmVmaXgsCgkJCQkJCQknY2dfYWN0aXZldGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJCSdtb2RuYW1lJyA9PiAkbW9kdWxlLT5HZXROYW1lKCksCgkJCQkJCQkndGl0bGUnPT4kdGl0bGUsCgkJCQkJCQknaW5mbyc9PiRpbmZvLAoJCQkJCQkJJ21vZGUnID0+ICdhZGQnLAoJCQkJCQkJJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnID0+ICRkZWZhdWx0dGVtcGxhdGVwcmVmCgkJCQkJCQkpLCcnLCcnLGZhbHNlKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbGlzdHRlbXBsYXRlcy50cGwnKTsKICB9CgoKICAvLyAtLS0tLS0tLS0tLS0gbGl4bHBpeGVsIHJlY3Vyc2l2ZSBQSFAgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0KICAvLyByZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSggZGlyZWN0b3J5IHRvIGRlbGV0ZSwgZW1wdHkgKQogIC8vIGV4cGVjdHMgcGF0aCB0byBkaXJlY3RvcnkgYW5kIG9wdGlvbmFsIFRSVUUgLyBGQUxTRSB0byBlbXB0eQogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGZ1bmN0aW9uIHJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRkaXJlY3RvcnksICRlbXB0eT1GQUxTRSkKICB7CiAgICBpZihzdWJzdHIoJGRpcmVjdG9yeSwtMSkgPT0gJy8nKQogICAgICB7CiAgICAgICAgJGRpcmVjdG9yeSA9IHN1YnN0cigkZGlyZWN0b3J5LDAsLTEpOwogICAgICB9CiAgICBpZighZmlsZV9leGlzdHMoJGRpcmVjdG9yeSkgfHwgIWlzX2RpcigkZGlyZWN0b3J5KSkKICAgICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgfWVsc2VpZihpc19yZWFkYWJsZSgkZGlyZWN0b3J5KSkKCSB7CgkgICAkaGFuZGxlID0gb3BlbmRpcigkZGlyZWN0b3J5KTsKCSAgIHdoaWxlIChGQUxTRSAhPT0gKCRpdGVtID0gcmVhZGRpcigkaGFuZGxlKSkpCgkgICAgIHsKCSAgICAgICBpZigkaXRlbSAhPSAnLicgJiYgJGl0ZW0gIT0gJy4uJykKCQkgewoJCSAgICRwYXRoID0gJGRpcmVjdG9yeS4nLycuJGl0ZW07CgkJICAgaWYoaXNfZGlyKCRwYXRoKSkgCgkJICAgICB7CgkJICAgICAgIHJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRwYXRoKTsKCQkgICAgIH1lbHNlewoJCSAgICAgdW5saW5rKCRwYXRoKTsKCQkgICB9CgkJIH0KCSAgICAgfQoJICAgY2xvc2VkaXIoJGhhbmRsZSk7CgkgICBpZigkZW1wdHkgPT0gRkFMU0UpCgkgICAgIHsKCSAgICAgICBpZighcm1kaXIoJGRpcmVjdG9yeSkpCgkJIHsKCQkgICByZXR1cm4gRkFMU0U7CgkJIH0KCSAgICAgfQoJIH0KICAgIHJldHVybiBUUlVFOwogIH0KCgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjcmVhdGUgYSBzdGF0ZSBkcm9wZG93biBsaXN0CiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlSW5wdXRTdGF0ZURyb3Bkb3duKCRpZCwkbmFtZSwkdmFsdWU9J0FMJywkc2VsZWN0b25lPWZhbHNlKQogIHsKICAgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3N0YXRlcy50eHQnKTsKICAgICRyYXdfc3RhdGVzID0gQGZpbGUoJGZuKTsKICAgICRzdGF0ZXMgPSBhcnJheSgpOwogICAgaWYoICRzZWxlY3RvbmUgIT09IGZhbHNlICkKICAgICAgewoJJHN0YXRlc1skdGhpcy0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwogICAgICB9CiAgICBmb3JlYWNoKCRyYXdfc3RhdGVzIGFzICRvbmUpCiAgICAgIHsKCWxpc3QoJGFjcm9ueW0sJHN0YXRlX25hbWUpID0gc3BsaXQoJywnLCRvbmUpOwoJJHN0YXRlc1skc3RhdGVfbmFtZV0gPSBzdHJ0b3VwcGVyKCRhY3JvbnltKTsKICAgICAgfQogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwkbmFtZSwkc3RhdGVzLC0xLAoJCQkJICAgICAgc3RydG91cHBlcigkdmFsdWUpKTsKICB9CgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjcmVhdGUgYSBjb3VudHJ5IGRyb3Bkb3duIGxpc3QKICAgKi8KICBmdW5jdGlvbiBDcmVhdGVJbnB1dENvdW50cnlEcm9wZG93bigkaWQsJG5hbWUsJHZhbHVlPSdVUycsJHNlbGVjdG9uZT1mYWxzZSkKICB7CiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCdjb3VudHJpZXMudHh0Jyk7CiAgICAkcmF3X2NvdW50cmllcyA9IEBmaWxlKCRmbik7CiAgICAkY291bnRyaWVzID0gYXJyYXkoKTsKICAgIGlmKCAkc2VsZWN0b25lICE9PSBmYWxzZSApCiAgICAgIHsKCSRjb3VudHJpZXNbJHRoaXMtPkxhbmcoJ3NlbGVjdF9vbmUnKV0gPSAnJzsKICAgICAgfQogICAgZm9yZWFjaCgkcmF3X2NvdW50cmllcyBhcyAkb25lKQogICAgICB7CglsaXN0KCRhY3JvbnltLCRjb3VudHJ5X25hbWUpID0gc3BsaXQoJywnLCRvbmUpOwoJJGNvdW50cmllc1skY291bnRyeV9uYW1lXSA9IHN0cnRvdXBwZXIoJGFjcm9ueW0pOwogICAgICB9CiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRjb3VudHJpZXMsLTEsCgkJCQkgICAgICBzdHJ0b3VwcGVyKCR2YWx1ZSkpOwogIH0KCgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjcmVhdGUgYSBmaWxlIGxpc3QKICAgKi8KICBmdW5jdGlvbiBHZXRGaWxlTGlzdCgkZGlyLCRmaWxldHlwZXMpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgogICAgJGZpbGV0eXBlc2EgPSBhcnJheSgpOwogICAgaWYoICFlbXB0eSgkZmlsZXR5cGVzKSApCiAgICAgIHsKCSRmaWxldHlwZXNhID0gZXhwbG9kZSgnLCcsc3RydG9sb3dlcigkZmlsZXR5cGVzKSk7CiAgICAgIH0KCiAgICAkZmlsZXMgPSBhcnJheSgpOwogICAgJGRoID0gb3BlbmRpciggJGRpciApOwogICAgaWYoICRkaCApCiAgICAgIHsKCXdoaWxlIChmYWxzZSAhPT0gKCRmaWxlID0gcmVhZGRpcigkZGgpKSkgewoJICBpZiggJGZpbGUgPT0gJy4nIHx8ICRmaWxlID09ICcuLicgKSBjb250aW51ZTsKCSAgCgkgICRmdWxscGF0aCA9IGNtc19qb2luX3BhdGgoJGRpciwkZmlsZSk7CgkgIGlmKCBpc19kaXIoICRmdWxscGF0aCApICkgY29udGludWU7CgoJICAkZXh0ID0gc3Vic3RyKHN0cnJjaHIoJGZpbGUsICcuJyksIDEpOwoJICBpZiggY291bnQoJGZpbGV0eXBlc2EpID4gMCAmJiAhaW5fYXJyYXkoICRleHQsICRmaWxldHlwZXNhICkgKSBjb250aW51ZTsKCgkgICRmaWxlc1skZmlsZV0gPSAkZmlsZTsKCX0KCWNsb3NlZGlyKCRkaCk7CiAgICAgIH0KCiAgICByZXR1cm4gJGZpbGVzOwogIH0KCiAgCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGZpbGUgZHJvcGRvd24KICAgKi8KICBmdW5jdGlvbiBDcmVhdGVJbWFnZURyb3Bkb3duKCRpZCwkbmFtZSwkc2VsZWN0ZWRmaWxlLCRkaXIgPSAnJykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKCiAgICBpZiggJGRpciA9PSAnJyApCiAgICAgIHsKCSRkaXIgPSAkY29uZmlnWydpbWFnZV91cGxvYWRzX3BhdGgnXTsKICAgICAgfQogICAgJGV4dGVuc2lvbnMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VleHRlbnNpb25zJyk7CgogICAgJGZpbGVsaXN0ID0gJHRoaXMtPkdldEZpbGVMaXN0KCRkaXIsJGV4dGVuc2lvbnMpOwogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwkbmFtZSwkZmlsZWxpc3QsLTEsJHNlbGVjdGVkZmlsZSk7CiAgfQoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIGEgZmlsZSBkcm9wZG93bgogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUZpbGVEcm9wZG93bigkaWQsJG5hbWUsJHNlbGVjdGVkZmlsZSwkZGlyID0gJycpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAKICAgIGlmKCAkZGlyID09ICcnICkgJGRpciA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogICAgJGV4dGVuc2lvbnMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmlsZWV4dGVuc2lvbnMnLCcnKTsKCiAgICAkZmlsZWxpc3QgPSAkdGhpcy0+R2V0RmlsZUxpc3QoJGRpciwkZXh0ZW5zaW9ucyk7CiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRmaWxlbGlzdCwtMSwkc2VsZWN0ZWRmaWxlKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBFZGl0RGVmYXVsdFRlbXBsYXRlRm9ybQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgQSBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIGEgZm9ybSBmb3IgZWRpdGluZyBhIGRlZmF1bHQgdGVtcGxhdGUKICAgYW5kL29yIHJldHVybmluZyBpdCB0byBzeXN0ZW0gZGVmYXVsdHMuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gRWRpdERlZmF1bHRUZW1wbGF0ZUZvcm0oJiRtb2R1bGUsJGlkLCRyZXR1cm5pZCwkcHJlZm5hbWUsJGFjdGl2ZV90YWIsJHRpdGxlLAoJCQkJICAgJGZpbGVuYW1lLCRpbmZvKQogIHsKICAgICRjZ2V4dGVuc2lvbnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR0V4dGVuc2lvbnMnKTsKICAgICRzbWFydHkgPSYgJHRoaXMtPnNtYXJ0eTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHRlbXBsYXRlZm9ybV90aXRsZScsJHRpdGxlKTsKICAgICRzbWFydHktPmFzc2lnbignaW5mb190aXRsZScsJGluZm8pOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAkKCSAgICAkY2dleHRlbnNpb25zLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRkZWZhdWx0dGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsCgkJCQkJICAgYXJyYXkoJ3ByZWZuYW1lJz0+JHByZWZuYW1lLAoJCQkJCQkgJ2Rlc3Rtb2R1bGUnPT4kbW9kdWxlLT5HZXROYW1lKCksCgkJCQkJCSAnY2dfYWN0aXZldGFiJz0+JGFjdGl2ZV90YWIsCgkJCQkJCSAnZmlsZW5hbWUnPT4kZmlsZW5hbWUpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJGNnZXh0ZW5zaW9ucy0+TGFuZygndGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RlbXBsYXRlJywkY2dleHRlbnNpb25zLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsCgkJCQkJCQkgICAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSksCgkJCQkJCQkgICAnaW5wdXRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJGNnZXh0ZW5zaW9ucy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCRjZ2V4dGVuc2lvbnMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0JywkY2dleHRlbnNpb25zLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0dG9kZWZhdWx0JywKCQkJCQkJICAgICAkY2dleHRlbnNpb25zLT5MYW5nKCdyZXNldHRvZmFjdG9yeScpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLAoJCSAgICAkY2dleHRlbnNpb25zLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgZWNobyAkY2dleHRlbnNpb25zLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRkZWZhdWx0dGVtcGxhdGUudHBsJyk7CiAgfQoKCiAgZnVuY3Rpb24gJkFycmF5VG9PYmplY3QoJGFycmF5KQogIHsKICAgICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICAgIGZvcmVhY2goICRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgIHsKCSRvYmotPiRrZXkgPSAkdmFsdWU7CiAgICAgIH0KICAgIHJldHVybiAkb2JqOwogIH0KCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHVybCB0byBhIGNlcnRhaW4gQ01TIHBhZ2UKICAgKi8KICBmdW5jdGlvbiBDcmVhdGVDb250ZW50VVJMKCRwYWdlaWQpCiAgewoJZ2xvYmFsICRnQ21zOwoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgkkYWxpYXMgPSAkY29udGVudG9wcy0+R2V0UGFnZUFsaWFzRnJvbUlEKCAkcGFnZWlkICk7CgoJJHRleHQgPSAnJzsKICAgICAgICBpZiAoJGNvbmZpZ1siYXNzdW1lX21vZF9yZXdyaXRlIl0pCgl7CgkJIyBtb2RfcmV3cml0ZQoJCWlmKCAkYWxpYXMgPT0gZmFsc2UgKQoJCXsKCQkJcmV0dXJuICc8IS0tIEVSUk9SOiBjb3VsZCBub3QgZ2V0IGFuIGFsaWFzIGZvciBwYWdlaWQ9Jy4kcGFnZWlkLictLT4nOwoJCX0KCQllbHNlCgkJewoJCQkkdGV4dCAuPSAkY29uZmlnWyJyb290X3VybCJdLiIvIi4kYWxpYXMuCgkJCShpc3NldCgkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddKT8kY29uZmlnWydwYWdlX2V4dGVuc2lvbiddOicuc2h0bWwnKTsKCQl9Cgl9CgllbHNlCgl7CgkJIyBtb2QgcmV3cml0ZQoJCSR0ZXh0IC49ICRjb25maWdbInJvb3RfdXJsIl0uIi9pbmRleC5waHA/Ii4kY29uZmlnWyJxdWVyeV92YXIiXS4iPSIuJHBhZ2VpZDsKCQlyZXR1cm4gJHRleHQ7Cgl9CiAgfQoKCiAgZnVuY3Rpb24gR2V0TWltZVR5cGUoJGZpbGVuYW1lKQogIHsKICAgICRtaW1lX3R5cGUgPSAndW5rbm93bic7CiAgICBpZiggZnVuY3Rpb25fZXhpc3RzKCdmaW5mb19vcGVuJykgKQogICAgICB7CgkkZmggPSBmaW5mb19vcGVuKEZJTEVJTkZPX0NPTVBSRVNTKTsKCSRtaW1lX3R5cGUgPSBmaW5mb19maWxlKCRmaCwkZmlsZW5hbWUpOwogICAgICB9CiAgICBlbHNlIGlmKCBmdW5jdGlvbl9leGlzdHMoJ21pbWVfY29udGVudF90eXBlJykgKQogICAgICB7CgkkbWltZV90eXBlID0gbWltZV9jb250ZW50X3R5cGUoJGZpbGVuYW1lKTsKICAgICAgfQoKICAgIHJldHVybiAkbWltZV90eXBlOwogIH0KCgogIGZ1bmN0aW9uIFNlbmREYXRhQW5kRXhpdCgkZGF0YSwkY29udGVudF90eXBlID0gJ3RleHQvcGxhaW4nLCRmaWxlbmFtZSA9ICdyZXBvcnQudHh0JykKICB7CiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IAogICAgZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KCiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6ICcuJGNvbnRlbnRfdHlwZSk7CiAgICBoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiJGZpbGVuYW1lXCIiICk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeScpOwogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIGNvdW50KCRkYXRhKSk7CgogICAgLy8gc2VuZCB0aGUgZGF0YQogICAgcHJpbnQoJGRhdGEpOwoKICAgIC8vIGRvbid0IGFsbG93IGFueSBmdXJ0aGVyIHByb2Nlc3NpbmcuCiAgICBleGl0KCk7CiAgfQoKCiAgZnVuY3Rpb24gU2VuZEZpbGVBbmRFeGl0KCRmaWxlKQogIHsKICAgIGlmKCAhZmlsZV9leGlzdHMoJGZpbGUpICkKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgJG1pbWVfdHlwZSA9ICR0aGlzLT5HZXRNaW1lVHlwZSgkZmlsZSk7CiAgICBpZiggJG1pbWVfdHlwZSA9PSAndW5rbm93bicgKQogICAgICB7CgkkbWltZV90eXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CiAgICAgIH0KCiAgICAkYm4gPSBiYXNlbmFtZSgkZmlsZSk7CiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IAogICAgZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KCiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6ICcuJG1pbWVfdHlwZSk7CiAgICBoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiJGJuXCIiICk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeScpOwogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIGZpbGVzaXplKCRmaWxlKSk7CgogICAgJGhhbmRsZT1mb3BlbigkZmlsZSwncmInKTsKICAgICRjb250ZW50cyA9ICcnOwogICAgZG8gewogICAgICAkZGF0YSA9IGZyZWFkKCRoYW5kbGUsJGNodW5rc2l6ZSk7CiAgICAgIGlmKCBzdHJsZW4oJGRhdGEpID09IDAgKSBicmVhazsKICAgICAgcHJpbnQoJGRhdGEpOyAKICAgIH0gd2hpbGUodHJ1ZSk7CiAgICBmY2xvc2UoJGhhbmRsZSk7CiAgICAKICAgIC8vIGRvbid0IGFsbG93IGFueSBtb3JlIHByb2Nlc3NpbmcKICAgIGV4aXQoKTsKICB9CgogIGZ1bmN0aW9uIENyZWF0ZVVzZXJNdWx0aXNlbGVjdCgkaWQsICRzZWxlY3RlZCA9ICcnLCAkbmFtZT0nb3duZXJpZCcsIAoJCQkJICRncm91cHMgPSB0cnVlLCAkc2l6ZT01KQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRyZXN1bHQgPSAnJzsKICAgIAogICAgJHJlc3VsdCAuPSAnPHNlbGVjdCBtdWx0aXBsZSBzaXplPSInLiRzaXplLiciIG5hbWU9IicuJGlkLiRuYW1lLidbXSI+JzsKICAgIGlmKCAkZ3JvdXBzICkKICAgICAgewoJJGdyb3Vwb3BzID0mICRnQ21zLT5HZXRHcm91cE9wZXJhdGlvbnMoKTsKCSRhbGxncm91cHMgPSAkZ3JvdXBvcHMtPkxvYWRHcm91cHMoKTsKCWZvcmVhY2goICRhbGxncm91cHMgYXMgJG9uZWdyb3VwICkKCSAgewoJICAgICRyZXN1bHQgLj0gJzxvcHRpb24gdmFsdWU9Ii0nLiRvbmVncm91cC0+aWQuJyInOwoJICAgIGlmKCBpc19hcnJheSgkc2VsZWN0ZWQpICYmIGluX2FycmF5KCRvbmVncm91cC0+aWQgKiAtMSwgJHNlbGVjdGVkKSApCgkgICAgICB7CgkJJHJlc3VsdCAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOwoJICAgICAgfQoJICAgIGVsc2UgaWYoICgkb25lZ3JvdXAtPmlkICogLTEpID09ICRzZWxlY3RlZCApCgkgICAgICB7CgkJJHJlc3VsdCAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOwoJICAgICAgfQoJICAgICRyZXN1bHQgLj0gJz4nLmxhbmcoJ2dyb3VwJykuJzogJy4kb25lZ3JvdXAtPm5hbWUuJzwvb3B0aW9uPic7CgkgIH0KICAgICAgfQoKICAgICRhbGx1c2VycyA9IFVzZXJPcGVyYXRpb25zOjpMb2FkVXNlcnMoKTsKICAgIGlmIChjb3VudCgkYWxsdXNlcnMpID4gMCkKICAgICAgewoJZm9yZWFjaCAoJGFsbHVzZXJzIGFzICRvbmV1c2VyKQoJICB7CgkgICAgJHJlc3VsdCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4kb25ldXNlci0+aWQuJyInOwoJICAgIGlmKCBpc19hcnJheSgkc2VsZWN0ZWQpICYmIGluX2FycmF5KCRvbmV1c2VyLT5pZCwgJHNlbGVjdGVkKSApCgkgICAgICB7CgkJJHJlc3VsdCAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOwoJICAgICAgfQoJICAgIGVsc2UgaWYoICRvbmV1c2VyLT5pZCA9PSAkc2VsZWN0ZWQgKQoJICAgICAgewoJCSRyZXN1bHQgLj0gJyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzsKCSAgICAgIH0KCSAgICAkcmVzdWx0IC49ICc+Jy4kb25ldXNlci0+dXNlcm5hbWUuJzwvb3B0aW9uPic7CgkgIH0KICAgICAgfQogICAgJHJlc3VsdCAuPSAnPC9zZWxlY3Q+JzsKICAgIAogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICAKICBmdW5jdGlvbiBFeHBhbmRTZWxlY3RlZFVzZXJzKCR1c2VyaWRsaXN0KQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICR1c2Vyb3BzID0mICRnQ21zLT5HZXRVc2VyT3BlcmF0aW9ucygpOwoKICAgICR1c2VycyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdXNlcmlkbGlzdCBhcyAkb25ldWlkICkKICAgICAgewoJaWYoICRvbmV1aWQgPCAwICkKCSAgewoJICAgIC8vIGFzc3VtZSBpdHMgYSBncm91cCBpZAoJICAgIC8vIGFuZCBnZXQgYWxsIHRoZSB1aWRzIGZvciB0aGF0IGdyb3VwCgkgICAgJGdyb3VwdXNlcnMgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkb25ldWlkICogLTEpOwoJICAgIGZvcmVhY2goICRncm91cHVzZXJzIGFzICRvbmV1c2VyICkKCSAgICAgIHsKCQkkdXNlcnNbXSA9ICRvbmV1c2VyLT5pZDsKCSAgICAgIH0KCSAgfQoJZWxzZQoJICB7CgkgICAgJHVzZXJzW10gPSAkb25ldWlkOwoJICB9CiAgICAgIH0KCiAgICAkdXNlcnMgPSBhcnJheV91bmlxdWUoJHVzZXJzKTsKICAgIHJldHVybiAkdXNlcnM7CiAgfQoKCn0gLy8gY2xhc3MKCgogIH0gLy8gaWYKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/countries.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QUYsQWZnaGFuaXN0YW4KQUwsQWxiYW5pYQpEWixBbGdlcmlhCkFTLEFtZXJpY2FuIFNhbW9hCkFELEFuZG9ycmEKQU8sQW5nb2xhCkFJLEFuZ3VpbGxhCkFRLEFudGFyY3RpY2EKQUcsQW50aWd1YSBBbmQgQmFyYnVkYQpBUixBcmdlbnRpbmEKQU0sQXJtZW5pYQpBVyxBcnViYQpBVSxBdXN0cmFsaWEKQVQsQXVzdHJpYQpBWixBemVyYmFpamFuCkJTLEJhaGFtYXMKQkgsQmFocmFpbgpCRCxCYW5nbGFkZXNoCkJCLEJhcmJhZG9zCkJZLEJlbGFydXMKQkUsQmVsZ2l1bQpCWixCZWxpemUKQkosQmVuaW4KQk0sQmVybXVkYQpCVCxCaHV0YW4KQk8sQm9saXZpYQpCQSxCb3NuaWEgQW5kIEhlcnplZ293aW5hCkJXLEJvdHN3YW5hCkJWLEJvdXZldCBJc2xhbmQKQlIsQnJhemlsCklPLEJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeQpCTixCcnVuZWkgRGFydXNzYWxhbQpCRyxCdWxnYXJpYQpCRixCdXJraW5hIEZhc28KQkksQnVydW5kaQpLSCxDYW1ib2RpYQpDTSxDYW1lcm9vbgpDQSxDYW5hZGEKQ1YsQ2FwZSBWZXJkZQpLWSxDYXltYW4gSXNsYW5kcwpDRixDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMKVEQsQ2hhZApDTCxDaGlsZQpDTixDaGluYQpDWCxDaHJpc3RtYXMgSXNsYW5kCkNDLENvY29zIChLZWVsaW5nKSBJc2xhbmRzCkNPLENvbG9tYmlhCktNLENvbW9yb3MKQ0csQ29uZ28KQ0ssQ29vayBJc2xhbmRzCkNSLENvc3RhIFJpY2EKQ0ksQ290ZSBEJ0l2b2lyZQpIUixDcm9hdGlhIChMb2NhbCBOYW1lOiBIcnZhdHNrYSkKQ1UsQ3ViYQpDWSxDeXBydXMKQ1osQ3plY2ggUmVwdWJsaWMKREssRGVubWFyawpESixEamlib3V0aQpETSxEb21pbmljYQpETyxEb21pbmljYW4gUmVwdWJsaWMKVFAsRWFzdCBUaW1vcgpFQyxFY3VhZG9yCkVHLEVneXB0ClNWLEVsIFNhbHZhZG9yCkdRLEVxdWF0b3JpYWwgR3VpbmVhCkVSLEVyaXRyZWEKRUUsRXN0b25pYQpFVCxFdGhpb3BpYQpGSyxGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykKRk8sRmFyb2UgSXNsYW5kcwpGSixGaWppCkZJLEZpbmxhbmQKRlIsRnJhbmNlCkdGLEZyZW5jaCBHdWlhbmEKUEYsRnJlbmNoIFBvbHluZXNpYQpURixGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMKR0EsR2Fib24KR00sR2FtYmlhCkdFLEdlb3JnaWEKREUsR2VybWFueQpHSCxHaGFuYQpHSSxHaWJyYWx0YXIKR1IsR3JlZWNlCkdMLEdyZWVubGFuZApHRCxHcmVuYWRhCkdQLEd1YWRlbG91cGUKR1UsR3VhbQpHVCxHdWF0ZW1hbGEKR04sR3VpbmVhCkdXLEd1aW5lYS1CaXNzYXUKR1ksR3V5YW5hCkhULEhhaXRpCkhNLEhlYXJkIEFuZCBNYyBEb25hbGQgSXNsYW5kcwpWQSxIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKQpITixIb25kdXJhcwpISyxIb25nIEtvbmcKSFUsSHVuZ2FyeQpJUyxJY2VsIEFuZApJTixJbmRpYQpJRCxJbmRvbmVzaWEKSVIsSXJhbiAoSXNsYW1pYyBSZXB1YmxpYyBPZikKSVEsSXJhcQpJRSxJcmVsYW5kCklMLElzcmFlbApJVCxJdGFseQpKTSxKYW1haWNhCkpQLEphcGFuCkpPLEpvcmRhbgpLWixLYXpha2hzdGFuCktFLEtlbnlhCktJLEtpcmliYXRpCktQLEtvcmVhLCBEZW0gUGVvcGxlJ1MgUmVwdWJsaWMKS1IsS29yZWEsIFJlcHVibGljIE9mCktXLEt1d2FpdApLRyxLeXJneXpzdGFuCkxBLExhbyBQZW9wbGUnUyBEZW0gUmVwdWJsaWMKTFYsTGF0dmlhCkxCLExlYmFub24KTFMsTGVzb3RobwpMUixMaWJlcmlhCkxZLExpYnlhbiBBcmFiIEphbWFoaXJpeWEKTEksTGllY2h0ZW5zdGVpbgpMVCxMaXRodWFuaWEKTFUsTHV4ZW1ib3VyZwpNTyxNYWNhdQpNSyxNYWNlZG9uaWEKTUcsTWFkYWdhc2NhcgpNVyxNYWxhd2kKTVksTWFsYXlzaWEKTVYsTWFsZGl2ZXMKTUwsTWFsaQpNVCxNYWx0YQpNSCxNYXJzaGFsbCBJc2xhbmRzCk1RLE1hcnRpbmlxdWUKTVIsTWF1cml0YW5pYQpNVSxNYXVyaXRpdXMKWVQsTWF5b3R0ZQpNWCxNZXhpY28KRk0sTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcwpNRCxNb2xkb3ZhLCBSZXB1YmxpYyBPZgpNQyxNb25hY28KTU4sTW9uZ29saWEKTVMsTW9udHNlcnJhdApNQSxNb3JvY2NvCk1aLE1vemFtYmlxdWUKTU0sTXlhbm1hcgpOQSxOYW1pYmlhCk5SLE5hdXJ1Ck5QLE5lcGFsCk5MLE5ldGhlcmxhbmRzCkFOLE5ldGhlcmxhbmRzIEFudCBJbGxlcwpOQyxOZXcgQ2FsZWRvbmlhCk5aLE5ldyBaZWFsYW5kCk5JLE5pY2FyYWd1YQpORSxOaWdlcgpORyxOaWdlcmlhCk5VLE5pdWUKTkYsTm9yZm9sayBJc2xhbmQKTVAsTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzCk5PLE5vcndheQpPTSxPbWFuClBLLFBha2lzdGFuClBXLFBhbGF1ClBBLFBhbmFtYQpQRyxQYXB1YSBOZXcgR3VpbmVhClBZLFBhcmFndWF5ClBFLFBlcnUKUEgsUGhpbGlwcGluZXMKUE4sUGl0Y2Fpcm4KUEwsUG9sYW5kClBULFBvcnR1Z2FsClBSLFB1ZXJ0byBSaWNvClFBLFFhdGFyClJFLFJldW5pb24KUk8sUm9tYW5pYQpSVSxSdXNzaWFuIEZlZGVyYXRpb24KUlcsUndhbmRhCktOLFNhaW50IEsgSXR0cyBBbmQgTmV2aXMKTEMsU2FpbnQgTHVjaWEKVkMsU2FpbnQgVmluY2VudCwgVGhlIEdyZW5hZGluZXMKV1MsU2Ftb2EKU00sU2FuIE1hcmlubwpTVCxTYW8gVG9tZSBBbmQgUHJpbmNpcGUKU0EsU2F1ZGkgQXJhYmlhClNOLFNlbmVnYWwKU0MsU2V5Y2hlbGxlcwpTTCxTaWVycmEgTGVvbmUKU0csU2luZ2Fwb3JlClNLLFNsb3Zha2lhIChTbG92YWsgUmVwdWJsaWMpClNJLFNsb3ZlbmlhClNCLFNvbG9tb24gSXNsYW5kcwpTTyxTb21hbGlhClpBLFNvdXRoIEFmcmljYQpHUyxTb3V0aCBHZW9yZ2lhICwgUyBTYW5kd2ljaCBJcy4KRVMsU3BhaW4KTEssU3JpIExhbmthClNILFN0LiBIZWxlbmEKUE0sU3QuIFBpZXJyZSBBbmQgTWlxdWVsb24KU0QsU3VkYW4KU1IsU3VyaW5hbWUKU0osU3ZhbGJhcmQsIEphbiBNYXllbiBJc2xhbmRzClNaLFN3IEF6aWxhbmQKU0UsU3dlZGVuCkNILFN3aXR6ZXJsYW5kClNZLFN5cmlhbiBBcmFiIFJlcHVibGljClRXLFRhaXdhbgpUSixUYWppa2lzdGFuClRaLFRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgT2YKVEgsVGhhaWxhbmQKVEcsVG9nbwpUSyxUb2tlbGF1ClRPLFRvbmdhClRULFRyaW5pZGFkIEFuZCBUb2JhZ28KVE4sVHVuaXNpYQpUUixUdXJrZXkKVE0sVHVya21lbmlzdGFuClRDLFR1cmtzIEFuZCBDYWljb3MgSXNsYW5kcwpUVixUdXZhbHUKVUcsVWdhbmRhClVBLFVrcmFpbmUKQUUsVW5pdGVkIEFyYWIgRW1pcmF0ZXMKR0IsVW5pdGVkIEtpbmdkb20KVVMsVW5pdGVkIFN0YXRlcwpVTSxVbml0ZWQgU3RhdGVzIE1pbm9yIElzLgpVWSxVcnVndWF5ClVaLFV6YmVraXN0YW4KVlUsVmFudWF0dQpWRSxWZW5lenVlbGEKVk4sVmlldCBOYW0KVkcsVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpClZJLFZpcmdpbiBJc2xhbmRzIChVLlMuKQpXRixXYWxsaXMgQW5kIEZ1dHVuYSBJc2xhbmRzCkVILFdlc3Rlcm4gU2FoYXJhCllFLFllbWVuCllVLFl1Z29zbGF2aWEKWlIsWmFpcmUKWk0sWmFtYmlhClpXLFppbWJhYndlIA==]]></data>
	</file>
	<file>
	  <filename>/functions.misc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucwojIFZlcnNpb246IDEuMCwgUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8KCmZ1bmN0aW9uIG15X2h0bWxfZW50aXR5X2RlY29kZSgkc3RyaW5nLCRmbGFncyA9IEVOVF9DT01QQVQsCgkJCSAgICAgICAkZW5jb2Rpbmc9J0lTTy04ODU5LTEnKQp7CiAgaWYoIHN0cnRvbG93ZXIoJGVuY29kaW5nKSA9PSAndXRmLTgnICkKICAgIHsKICAgICAgcmV0dXJuIGh0bWxfZW50aXR5X2RlY29kZV91dGY4KCRzdHJpbmcpOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgcmV0dXJuIGh0bWxfZW50aXR5X2RlY29kZSgkc3RyaW5nLCRmbGFncywkZW5jb2RpbmcpOwogICAgfQp9CgovLyBjb252ZXJ0IGh0bWwgZW50aXRpZXMgaW50byB1dGY4IHN0cmluZ3MKLy8gY291cnRlc3k6IGxhdXJ5bmFzIGRvdCBidXRrdXMgYXQgZ21haWwgZG90IGNvbQpmdW5jdGlvbiBodG1sX2VudGl0eV9kZWNvZGVfdXRmOCgkc3RyaW5nKQp7CiAgICBzdGF0aWMgJHRyYW5zX3RibDsKICAgCiAgICAvLyByZXBsYWNlIG51bWVyaWMgZW50aXRpZXMKICAgICRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoJ34mI3goWzAtOWEtZl0rKTt+ZWknLCAnY29kZTJ1dGYoaGV4ZGVjKCJcXDEiKSknLCAkc3RyaW5nKTsKICAgICRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoJ34mIyhbMC05XSspO35lJywgJ2NvZGUydXRmKFxcMSknLCAkc3RyaW5nKTsKCiAgICAvLyByZXBsYWNlIGxpdGVyYWwgZW50aXRpZXMKICAgIGlmICghaXNzZXQoJHRyYW5zX3RibCkpCiAgICB7CiAgICAgICAgJHRyYW5zX3RibCA9IGFycmF5KCk7CiAgICAgICAKICAgICAgICBmb3JlYWNoIChnZXRfaHRtbF90cmFuc2xhdGlvbl90YWJsZShIVE1MX0VOVElUSUVTKSBhcyAkdmFsPT4ka2V5KQogICAgICAgICAgICAkdHJhbnNfdGJsWyRrZXldID0gdXRmOF9lbmNvZGUoJHZhbCk7CiAgICB9CiAgIAogICAgcmV0dXJuIHN0cnRyKCRzdHJpbmcsICR0cmFuc190YmwpOwp9CgovLyBSZXR1cm5zIHRoZSB1dGYgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHVuaWNvZGUgdmFsdWUgKGZyb20gcGhwLm5ldCwgY291cnRlc3kgLSByb21hbnNAdm9pZC5sdikKZnVuY3Rpb24gY29kZTJ1dGYoJG51bSkKewogICAgaWYgKCRudW0gPCAxMjgpIHJldHVybiBjaHIoJG51bSk7CiAgICBpZiAoJG51bSA8IDIwNDgpIHJldHVybiBjaHIoKCRudW0gPj4gNikgKyAxOTIpIC4gY2hyKCgkbnVtICYgNjMpICsgMTI4KTsKICAgIGlmICgkbnVtIDwgNjU1MzYpIHJldHVybiBjaHIoKCRudW0gPj4gMTIpICsgMjI0KSAuIGNocigoKCRudW0gPj4gNikgJiA2MykgKyAxMjgpIC4gY2hyKCgkbnVtICYgNjMpICsgMTI4KTsKICAgIGlmICgkbnVtIDwgMjA5NzE1MikgcmV0dXJuIGNocigoJG51bSA+PiAxOCkgKyAyNDApIC4gY2hyKCgoJG51bSA+PiAxMikgJiA2MykgKyAxMjgpIC4gY2hyKCgoJG51bSA+PiA2KSAmIDYzKSArIDEyOCkgLiBjaHIoKCRudW0gJiA2MykgKyAxMjgpOwogICAgcmV0dXJuICcnOwp9CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdJbWFnZSBGaWxlIEV4dGVuc2lvbnMnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcm91cCc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3Byb21wdF9lZGl0dGVtcGxhdGUnXSA9ICdFZGl0IFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGV0ZW1wbGF0ZSddID0gJ0RlbGV0ZSBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnVGVtcGxhdGUgTmFtZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBUZXh0JzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnVGVtcGxhdGUgTmFtZSc7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdOZXcgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKCiRsYW5nWyd5ZXMnXSA9ICdZZXMnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snYXBwbHknXSA9ICdBcHBseSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwoKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgdG8gZmFjdG9yeSBkZWZhdWx0cyc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0Vycm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0EgVGVtcGxhdGUgYnkgdGhhdCBOYW1lIEFscmVhZHkgRXhpc3RzJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTW9kdWxlIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGlzIG1vZHVsZSBpcyByZWFkeSB0byB1c2UuICBDb2RlIGF3YXkhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTZWUgeW91IGFnYWluIHNvbWUgZGF5JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSBwcmVmZXJlbmNlcyB1cGRhdGVkLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBpcyBhIGxpYnJhcnkgb2YgcGhwIGNsYXNzZXMgdXNlZCB0byBidWlsZCBhZHZhbmNlZCBmb3Jtcyc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xLiBBcHJpbCAyMDA3LiAgRml4ZXMgdG8gQ3JlYXRlSW1hZ2VMaW5rPC9saT4KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBkZWZhdWx0IGZyb250ZW5kIGVycm9yIGhhbmRsaW5nIHBsdWdpbi48L2xpPgo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1iZXIgIDIwMDcsICBBZGRzIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4KPGxpPlZlcnNpb24gMS4zLiAgIE5vdmVtYmVyICAyMDA3LiAgQWRkcyBldmVuIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4KPGxpPlZlcnNpb24gMS40LiAgIERlY2VtYmVyICAyMDA3LiAgQWRkcyBDcmVhdGVJbWFnZURyb3Bkb3duIG1ldGhvZCwgbWV0aG9kcyBmb3Igc3RhdGUgYW5kIGNvdW50cnkgZHJvcGRvd25zIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHRoaW5ncy48L2xpPgo8bGk+VmVyc2lvbiAxLjUuICAgSmFudWFyeSAgIDIwMDcuICBGaXhlcyB0byBodG1sX2VudGl0aWVzX2RlY29kZSBpbiB1dGY4PC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBtZXJlbHkgcHJvdmlkZXMgY29udmVuaWVuY2UgYXBpXCdzIGFuZCBzbWFydHkgdGFncyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuICBJdCBpcyBtZWFudCBzb2xlbHkgYXMgYSBiYXNlIGNsYXNzIGFuZCB1dGlsaXR5IGNsYXNzIGZvciBvdGhlciBtb2R1bGVzLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPgo8dWw+CjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPgogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPgo8L3A+CjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6IFwnZXJyb3JjbGFzc1wnID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuCjwvcD4KPHA+RGVzY3JpcHRpb246IFRoaXMgYmxvY2sgcGx1Z2luIHVzZXMgdGhlIGVycm9yIHRlbXBsYXRlIChjb25maWd1cmFibGUgZnJvbSB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIGludGVyZmFjZSkgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlLjwvcD4KPC91bD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIGRldmVsb3BtZW50IGZvcmdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IocykgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tIj4mbHQ7Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+Cic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2dyb3VwJ10gPSAnU2t1cGluYSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWeWJyYXQgamVkbnUnOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ1VwcmF2aXQgJnNjYXJvbjthYmxvbnUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnU21hemF0ICZzY2Fyb247YWJsb251JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdKbSZlYWN1dGU7bm8gJnNjYXJvbjthYmxvbnknOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGV4dCAmc2Nhcm9uO2FibG9ueSc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ0ptJmVhY3V0ZTtubyAmc2Nhcm9uO2FibG9ueSc7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdOb3YmYWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyc7CiRsYW5nWyd5ZXMnXSA9ICdBbm8nOwokbGFuZ1snbm8nXSA9ICdOZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdWbG/Fvml0JzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBsaWtvdmF0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1N0b3Jubyc7CiRsYW5nWydlZGl0J10gPSAnVXByYXZpdCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnT3ByYXZkdT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdPYm5vdml0IHDFr3ZvZG4maWFjdXRlOyBob2Rub3R5JzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnQ2h5Ym4mYWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlvdmEgcm96JnNjYXJvbjsmaWFjdXRlO8WZZW4maWFjdXRlOyBtb2R1bMWvJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgamUgcMWZaXByYXZlbiBrIHBvdcW+aXQmaWFjdXRlOy4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1TEmyZzY2Fyb247JmlhY3V0ZTttZSBzZSBuYXNobGVkYW5vdSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIG9kaW5zdGFsb3YmYWFjdXRlO24uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnplIGJ5bCAlcyBuYWluc3RhbG92JmFhY3V0ZTtuLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdOYXN0YXZlbiZpYWN1dGU7IG1vZHVsdSBieWxhIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdQxZkmaWFjdXRlO3N0dXAgemFrJmFhY3V0ZTt6JmFhY3V0ZTtuLiBQcm9zJmlhY3V0ZTttIHprb250cm9sdWp0ZSBzdiZhYWN1dGU7IG9wciZhYWN1dGU7dm7Em24maWFjdXRlOy4nOwokbGFuZ1snZXJyb3InXSA9ICdDaHliYSEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBieWwgcG92JnlhY3V0ZTsmc2Nhcm9uO2VuIG5hIHZlcnppICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RlbnRvIG1vZHVsIGplIGtuaWhvdm5hIHBocCBmdW5rYyZpYWN1dGU7IHBvdcW+JmlhY3V0ZTt2YW4meWFjdXRlO2NoIGsgdnl0diZhYWN1dGU7xZllbiZpYWN1dGU7IHBva3JvxI1pbCZ5YWN1dGU7Y2ggZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+Q28gZMSbbCZhYWN1dGU7IHRlbnRvIG1vZHVsPzwvaDM+DQo8cD5UZW50byBtb2R1bCBwb3NreXR1amUgQVBJIGEgU21hcnR5IHRhZ3kgcHJvIHBvdcW+aXQmaWFjdXRlOyB2IG9zdGF0biZpYWN1dGU7Y2ggbW9kdWxlY2guIFMmYWFjdXRlO20gbyBzb2LEmyBwcm90byBuZW0mYWFjdXRlOyDFviZhYWN1dGU7ZG4meWFjdXRlOyBzbXlzbC48L3A+DQo8aDM+SmFrIGhvIHBvdcW+JmlhY3V0ZTt2YXQ/PC9oMz4NCjxwPlBva3VkIG0mYWFjdXRlOyBwcm8gViZhYWN1dGU7cyB0ZW50byBtb2R1bCBzbXlzbCwgamlzdMSbIGRvayZhYWN1dGU7xb5ldGUgcMWZZcSNJmlhY3V0ZTtzdCBuJmFhY3V0ZTtzbGVkdWomaWFjdXRlO2MmaWFjdXRlOyB0ZXh0IHNhbWkgOi0pPC9wPg0KPHA+V2VsbCwgeW91IHN0YXJ0IHlvdXIgb3duIG1vZHVsZSAoSSBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggdGhlIFNrZWxldG9uIG1vZHVsZSksIGFuZCB0aGVuIHdoZW4geW91IG5lZWQgdG8gdXNlIGFuIGFkdmFuY2VkIGZvcm0gb2JqZWN0IGZyb20gdGhpcyBsaWJyYXJ5LCBzaW1wbHkgbWFrZSB5b3VyIG1vZHVsZSBkZXBlbmRhbnQgdXBvbiBGb3JtT2JqZWN0cywgYW5kIHRoZW4gaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgU2VlIHRoZSBjb2RlIGluc2lkZSB0aGUgRm9ybU9iamVjdHMgZGlyZWN0b3J5IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuPC9wPg0KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWRkcyBhIGZldyBzbWFydHkgY29udmVuaWVuY2VzIGZvciB1c2Ugd2l0aCBvdGhlciBtb2R1bGVzLiBUaGV5IGFyZSBsaXN0ZWQgYW5kIGRlc2NyaWJlZCBoZXJlOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfVRoaXMgaXMgZXJyb3IgdGV4dHsvY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvcjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+DQo8L3A+DQo8cD5vcHRpb25hbCBwYXJhbWV0ZXJzOiAmIzAzOTtlcnJvcmNsYXNzJiMwMzk7ID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuDQo8L3A+DQo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yKHMpLCBjYWxndXkgZXQgYWxsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSZxdW90O21haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tJnF1b3Q7PjxjYWxndXkxMDAwQGhvdG1haWwuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuODgwMjY3ODM3LjExODA5OTE2NjkuMTE5NjQzNjEyMS4xMTk2NDk3MTAyLjI0Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTY0MTM1NjQuMjM4LjQ4LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC9ib2FyZCw3LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1cmYXVtbDtobGVuIFNpZSBlaW5zIGF1cyc7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgYmVhcmJlaXRlbic7CiRsYW5nWydwcm9tcHRfZGVsZXRldGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBsJm91bWw7c2NoZW4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1RlbXBsYXRlLU5hbWUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUtVGV4dCc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ1RlbXBsYXRlLU5hbWUnOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTmV1ZXMgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laW4nOwokbGFuZ1snc3VibWl0J10gPSAnQWJzZW5kZW4nOwokbGFuZ1snYXBwbHknXSA9ICdBbndlbmRlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1snZWRpdCddID0gJ0JlYXJiZWl0ZW4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpbmQgU2llIHNpY2hlcj8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIFdlcmtzZWluc3RlbGx1bmdlbiB6dXImdXVtbDtja3NldHplbic7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0ZlaGxlci1UZW1wbGF0ZSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIE1vZHVsLUVyd2VpdGVydW5nZW4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEaWVzZXMgTW9kdWwgaXN0IGVpbnNhdHpiZXJlaXQuIFZpZWwgU3Bhc3MgYmVpbSBQcm9ncmFtbWllcmVuISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQmlzIHNwJmF1bWw7dGVyIGRhbm4gLi4uJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgZGVpbnN0YWxsaWVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxpZXJ0Lic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGVpbnN0ZWxsdW5nZW4gYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdadWdyaWZmIHZlcndlaWdlcnQuIEJpdHRlIHByJnV1bWw7ZmVuIFNpZSBJaHJlIEJlcmVjaHRpZ3VuZ2VuLic7CiRsYW5nWydlcnJvciddID0gJ0ZlaGxlciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGllc2VzIE1vZHVsIGlzdCBlaW5lIFBIUC1LbGFzc2VuLUJpYmxpb3RoZWsgZiZ1dW1sO3IgZGllIEVyemV1Z3VuZyBrb21wbGV4ZXIgRm9ybXVsYXJlLic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldhcyBtYWNodCBkaWVzZXMgTW9kdWw/PC9oMz4NCjxwPkRpZXNlcyBNb2R1bCBzdGVsbHQgZWluZSBBUEkgdW5kIFNtYXJ0eS1UYWdzIHp1ciBWZXJ3ZW5kdW5nIGluIGFuZGVyZW4gTW9kdWxlbiBiZXJlaXQuIERhcyBoZWlzc3QsIGVzIGlzdCBhdXNzY2hsaWUmc3psaWc7bGljaCBlaW5lIEJhc2lzLUtsYXNzZSB1bmQgV2Vya3pldWctS2xhc3NlIGYmdXVtbDtyIGFuZGVyZSBNb2R1bGUuPC9wPg0KPGgzPldpZSB3aXJkIGVzIGVpbmdlc2V0enQ/PC9oMz4NCjxwPldlbm4gU2llIGVpbiBlaWdlbmVzIE1vZHVsIHByb2dyYW1taWVyZW4gbSZvdW1sO2NodGVuLCBlbWZlaGxlIGljaCBJaG5lbiwgbWl0IGRlbSBTa2VsZXRvbi1Nb2R1bCB6dSBiZWdpbm5lbi4gVW5kIHdlbm4gU2llIGRhbm4gZWluIEZvcm11bGFyLU9iamVrdCBhdXMgZGllc2VyIEJpYmxpb3RoZWsgYmVuJm91bWw7dGlnZW4sIG0mdXVtbDtzc2VuIFNpZSBJaHIgTW9kdWwgbnVyIHZvbiBGb3JtT2JqZWN0cyBhYmgmYXVtbDtuZ2lnIG1hY2hlbiB1bmQgZGFtbSBlaW4gT2JqZWt0IGRlcyBlbnRzcHJlY2hlbmRlbiBUeXBzIGluc3RhbnppaWVyZW4uIEYmdXVtbDtyIHdlaXRlcmUgSW5mb3JtYXRpb25lbiBzZWhlbiBTaWUgc2ljaCBiaXR0ZSBkZW4gQ29kZSBpbSBWZXJ6ZWljaG5pcyBGb3JtT2JqZWN0cyBhbi48L3A+DQo8aDM+U21hcnR5LUVyd2VpdGVydW5nZW48L2gzPg0KPHA+RGllc2VzIE1vZHVsIHN0ZWxsdCBlaW5lIHBhYXIgU21hcnR5LUVyd2VpdGVydW5nZW4genVyIFZlcndlbmR1bmcgaW4gYW5kZXJlbiBNb2R1bGVuIGJlcmVpdCwgZGllIGltIGZvbGdlbmRlbiBiZXNjaHJpZWJlbiB3ZXJkZW46PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPkJlaXNwaWVsOiA8Y29kZT57Y2dlcnJvcn1EaWVzIGlzdCBlaW4gRmVobGVydGV4dHsvY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvZGVyOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmFsZSBQYXJhbWV0ZXI6ICYjMDM5O2Vycm9yY2xhc3MmIzAzOTsgPSAmdXVtbDtiZXJzY2hyZWlidCBkZW4gdm9yZ2VnZWJlbmVuIEtsYXNzZW5uYW1lbiBkZXMgVGVtcGxhdGVzLg0KPC9wPg0KPHA+QmVzY2hyZWlidW5nOiBEaWVzZXMgYmxvY2stUGx1Z2luIHZlcndlbmRldCBkYXMgZXJyb3ItVGVtcGxhdGUsIHVtIGVpbmUgRmVobGVybmFjaHJpY2h0IGFuenV6ZWlnZW4uIERpZXMgaXN0IHZvbiBkZXIgQWRtaW5pc3RyYXRpb24gZGVzIENHRXh0ZW5zaW9ucy1Nb2R1bHMgbSZvdW1sO2dsaWNoLjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgYmVpbmhhbHRldCBrZWluZW4ga29tbWVyemllbGxlbiBTdXBwb3J0LiBTaWUgayZvdW1sO25uZW4gamVkb2NoICZ1dW1sO2JlciBmb2xnZW5kZSBNJm91bWw7Z2xpY2hrZWl0ZW4gSGlsZmUgenUgZGVtIE1vZHVsIGVyaGFsdGVuOjwvcD4NCjx1bD4NCjxsaT5GJnV1bWw7ciBkaWUgbGV0enRlIFZlcnNpb24gZGllc2VzIE1vZHVscywgRkFRcywgZGVtIFZlcnNhbmQgZWluZXMgRmVobGVycmVwb3J0cyBvZGVyIGRlbSBLYXVmIGtvbW1lcnppZWxsZW4gU3VwcG9ydCBiZXN1Y2hlbiBzaWUgYml0dGUgZGllIFByb2pla3RzZWl0ZSB1bnRlciA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPg0KPGxpPkVpbmUgd2VpdGVyZSBEaXNrdXNzaW9uIHp1IGRpZXNlbSBNb2R1bCBpc3QgYXVjaCBpbiBkZW4gRm9yZW4gdm9uIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZTwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+RGVyIEF1dG9yIGNhbGd1eTEwMDAsIGlzdCBoJmF1bWw7dWZpZyBpbSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkxldHp0bGljaCBlcnJlaWNoZW4gc2llIGRlbiBBdXRvciBhdWNoICZ1dW1sO2JlciBlaW5lIGRpcmVrdGUgRW1haWwuPC9saT4gIA0KPC91bD4NCjxwPk5hY2ggZGVyIEdQTCB3aXJkIGRpZXNlIFNvZnR3YXJlIHNvIHZlciZvdW1sO2ZmZW50bGljaHQsIHdpZSBzaWUgaXN0LiBCaXR0ZSBsZXNlbiBTaWUgZGVuIExpemVuenRleHQgZiZ1dW1sO3IgZGVuIHZvbGxlbiBIYWZ0dW5nc2F1c3NjaGx1c3MuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IHVuZCBMaXplbno8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz5jYWxndXkxMDAwQGhvdG1haWwuY29tPC9hPi4gQWxsZSBSZWNodGUgdm9yYmVoYWx0ZW4uPC9wPg0KPHA+RGllc2VzIE1vZHVsIHd1cmRlIHVudGVyIGRlciA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjcxNzQ2MjczNi4xMTQ3NTExODU2LjExOTUzMDE1MTkuMTE5NTM4MTI4Mi4yNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTk0Mjg0NzE1LjI0NS4xMTQudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWdvb2dsZS5kZXx1dG1jY3Q9L2lnfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25lcyBkZSBBcmNoaXZvcyBkZSBJbWFnZW5lcyc7CiRsYW5nWydncm91cCddID0gJ0dydXBvJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY2Npb25hciBVbm8nOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXRhciBQbGFudGlsbGEnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnQm9ycmFyIFBsYW50aWxsYSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTm9tYnJlIGRlIFBsYW50aWxsYSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZXh0byBkZSBQbGFudGlsbGEnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOb21icmUgZGUgUGxhbnRpbGxhJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ051ZXZhIFBsYW50aWxsYSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1BvciBEZWZlY3RvJzsKJGxhbmdbJ3llcyddID0gJ1NpJzsKJGxhbmdbJ25vJ10gPSAnTm8gJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudmlhcic7CiRsYW5nWydhcHBseSddID0gJ0FwbGljYXInOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsYXInOwokbGFuZ1snZWRpdCddID0gJ0VkaXRhcic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXN0JmFhY3V0ZTsgc2VndXJvPyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc3RhdXJhciBhIHZhbG9yZXMgcG9yIGRlZmVjdG8nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgRXJyb3InOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnWWEgZXhpc3RlIHVuYSBQbGFudGlsbGEgY29uIGVzZSBub21icmUnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRXh0ZW5zaW9uZXMgTW9kdWxhcmVzIGRlIENhbGd1eSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0VzdGUgbSZvYWN1dGU7ZHVsbyBlc3QmYWFjdXRlOyBsaXN0byBwYXJhIHNlciB1dGlsaXphZG8uJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdOb3MgdmVtb3Mgb3RybyBkJmlhY3V0ZTthLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ00mb2FjdXRlO2R1bG8gRGVzaW5zdGFsYWRvLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdWZXJzaW9uIGRlIGVzdGUgbSZvYWN1dGU7ZHVsbyBpbnN0YWxhZGE6ICVzJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2lhcyBBY3R1YWxpemFkYXMuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzbyBEZW5lZ2Fkby4gUG9yIGZhdm9yIHJldmlzZSBzdXMgcGVybWlzb3MuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnJmlleGNsO0Vycm9yISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ00mb2FjdXRlO2R1bG8gYWN0dWFsaXphZG8gYSB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VzdGUgbSZvYWN1dGU7ZHVsbyBlcyB1bmEgbGlicmVyaWEgZGUgY2xhc2VzIHBocCB1c2FkYXMgcGFyYSBjb25zdHJ1aXIgZm9ybXVsYXJpb3MgYXZhbnphZG9zJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+JmlxdWVzdDtRdSZlYWN1dGU7IEhhY2UgRXN0bz88L2gzPg0KPHA+RXN0ZSBtJm9hY3V0ZTtkdWxvIHByb3ZlZSB0YWdzIGFwaSB5IHNtYXJ0eSBkZSBjb252ZW5pZW5jaWEgZW4gZWwgdXNvIGRlIG90cm9zIG0mb2FjdXRlO2R1bG9zLiAgVGllbmUgZWwgcyZvYWN1dGU7bG8gc2VudGlkbyBkZSBzZXIgdW5hIGNsYXNlIGRlIGJhc2UgeSB1bmEgY2xhc2UgZGUgdXRpbGlkYWQgcGFyYSBvdHJvcyBtJm9hY3V0ZTtkdWxvcy48L3A+DQo8aDM+QyZvYWN1dGU7bW8gVXNvIGEgRXN0bzwvaDM+DQo8cD5CdWVubywgdXN0ZWQgY29taWVuemEgZWwgZGVzYXJyb2xsbyBkZSBzdSBwcm9waW8gbSZvYWN1dGU7ZHVsbyAoeW8gc3VnaWVybyBoYWNlcmxvIGNvbiBlbCBtJm9hY3V0ZTtkdWxvIFNrZWxldG9uKSwgeSBlbnRvbmNlcyBjdWFuZG8gdXN0ZWQgbmVjZXNpdGUgdXNhciB1biBvYmpldG8gZm9ybXVsYXJpbyBhdmFuemFkbyBkZSBlc3RhIGxpYnJlciZpYWN1dGU7YSwgc2ltcGxlbWVudGUgZGViZSBoYWNlciBxdWUgc3UgbSZvYWN1dGU7ZHVsbyBzZWEgZGVwZW5kaWVudGUgZGVsIEZvcm1PYmplY3RzLCB5IGx1ZWdvIGluc3RhbmNpYXIgdW4gb2JqZXRvIGRlbCB0aXBvIGFwcm9waWFkby4gIFZlYSBlbCBjJm9hY3V0ZTtkaWdvIGRlbnRybyBkZWwgZGlyZWN0b3JpbyBkZSBGb3JtT2JqZWN0cyBwb3IgaW5zdHJ1Y2Npb25lcyBkZSB1c28uPC9wPg0KPGgzPkFncmVnYWRvcyBTbWFydHk8L2gzPg0KPHA+RXN0ZSBtJm9hY3V0ZTtkdWxvIGFncmVnYSB1bmFzIHBvY2FzIGV0aXF1ZXRhcyBzbWFydHkgcGFyYSBzZXIgdXNhZGFzIGVuIG90cm9zIG0mb2FjdXRlO2R1bG9zLiBTZSBsaXN0YW4geSBkZXNjcmliZW4gYSBjb250aW51YWNpJm9hY3V0ZTtuOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfUVzdGUgZXMgdGV4dG8gZGUgZXJyb3J7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IHJlZW1wbGF6YSBlbCBub21icmUgZGUgbGEgY2xhc2UgcG9yIGRlZmVjdG8gZW4gbGEgcGxhbnRpbGxhLg0KPC9wPg0KPHA+RGVzY3JpcGNpJm9hY3V0ZTtuOiBFc3RlIHBsdWdpbiBibG9jayB1c2EgbGEgcGxhbnRpbGxhIGRlIGVycm9yIChjb25maWd1cmFibGUgZGVzZGUgbGEgaW50ZXJmYXNlIGRlIGFkbWluaXN0cmFjaSZvYWN1dGU7biBkZSBDR0V4dGVuc2lvbnMpIHBhcmEgbW9zdHJhciB1biBtZW5zYWplIGRlIGVycm9yLjwvcD4NCjwvdWw+DQo8aDM+U29wb3J0ZTwvaDM+DQo8cD5Fc3RlIG0mb2FjdXRlO2R1bG8gbm8gaW5jbHV5ZSBzb3BvcnRlIGNvbWVyY2lhbC4gU2luIGVtYmFyZ28sIGhheSB1biBzaW4gbiZ1YWN1dGU7bWVybyBkZSByZWN1cnNvcyBkaXNwb25pYmxlcyBwYXJhIGF5dWRhciBhIHVzdGVkIGNvbiAmZWFjdXRlO2w6PC9wPg0KPHVsPg0KPGxpPlBvciBsYSB2ZXJzaSZvYWN1dGU7biAmdWFjdXRlO2x0aW1hIGRlIGVzdGUgbSZvYWN1dGU7ZHVsbywgRkFRcywgcGFyYSBwcmVzZW50YXIgdW4gYXJjaGl2byBkZSBJbmZvcm1lIGRlIEJ1ZyBvIGNvbXByYXIgc29wb3J0ZSBjb21lcmNpYWwsIHBvciBmYXZvciB2aXNpdGUgZWwgc2l0aW8gd2ViIGRlbCBtJm9hY3V0ZTtkdWxvIGVuIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRlbSZhYWN1dGU7cyBlbCBpbnRlcmNhbWJpbyBkZSBpZGVhcyByZXNwZWN0byBhIGVzdGUgbSZvYWN1dGU7ZHVsbyBzZSBwdWVkZSByZWFsaXphciB2aXNpdGFuZG8gYSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5Gb3JvIGRlIENNUyBNYWRlIFNpbXBsZTwvYT4uPC9saT4NCjxsaT5FbCBhdXRvciwgY2FsZ3V5MTAwMCwgY29uIGZyZWN1ZW5jaWEgcHVlZGUgZW5jb250cmFybG8gZW4gZWwgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkZpbmFsbWVudGUsIHB1ZWRlIHRlbmVyIGFsZyZ1YWN1dGU7biAmZWFjdXRlO3hpdG8gZW52aWFuZG8gdW4gZW1haWwgYWwgYXV0b3IgZW4gZm9ybWEgZGlyZWN0YS48L2xpPg0KPC91bD4NCjxwPkRlIGFjdWVyZG8gY29uIGxhIEdQTCwgZXN0ZSBzb2Z0d2FyZSBzZSBwcm92ZWUgY29tbyBlcy4gUG9yIGZhdm9yIGxlYSBlbCB0ZXh0byBkZSBsYSBsaWNlbmNpYSBwb3IgY29tcGxldG8gcGFyYSBjb25vY2VyIHN1cyBhZmlybWFjaW9uZXMuPC9wPg0KPGgzPkNvcHlyaWdodCB5IExpY2VuY2lhPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+PGNhbGd1eTEwMDBAaG90bWFpbC5jb20+PC9hPi4gVG9kb3MgbG9zIERlcmVjaG9zIFJlc2VydmFkb3MuPC9wPg0KPHA+RXN0ZSBtJm9hY3V0ZTtkdWxvIHNlIGhhIHJlYWxpemFkbyBiYWpvIGxhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkxpY2VuY2lhIFAmdWFjdXRlO2JsaWNhIEdOVTwvYT4uIFVzdGVkIGRlYmUgZXN0YXIgZGUgYWN1ZXJkbyBjb24gbGEgbGljZW5jaWEgYW50ZXMgZGUgdXNhciBlbCBtJm9hY3V0ZTtkdWxvLjwvcD4NCic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkzODI3NzYuMjc1LjY2LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxODI3NC4wL3RvcGljc2Vlbi5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEyODMxOTAxNzcuMTE5MjU3MjgwOS4xMTk5NTA0NTU4LjExOTk1NzYzMTYuMjc3JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUG9oamEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZhbGl0c2UgeWtzaSc7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnTXVva2thYSBwb2hqYWEnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnUG9pc3RhIHBvaGphJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdQb2hqYW4gbmltaSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdQb2hqYW4ga29vZGknOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdQb2hqYW4gbmltaSc7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdVdXNpIHBvaGphJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnT2xldHVzJzsKJGxhbmdbJ3llcyddID0gJ0t5bGwmYXVtbDsnOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydzdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7JzsKJGxhbmdbJ2FwcGx5J10gPSAnT3RhIGsmYXVtbDt5dHQmb3VtbDsmb3VtbDtuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnUnOwokbGFuZ1snZWRpdCddID0gJ011b2trYWEnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ09sZXRrbyB2YXJtYT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdOb2xsYWEgb2xldHVzIHBvaGpha3NpJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnVmlyaGUgcG9oamEnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBNb2R1bGUgRXh0ZW5zaW9ucyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsaSBvbiB2YWxtaXMgayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sO2tzaS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ04mYXVtbDtoZCZhdW1sOyZhdW1sO24gdGFhcyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnVmlyaGUhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgaXMgYSBsaWJyYXJ5IG9mIHBocCBjbGFzc2VzIHVzZWQgdG8gYnVpbGQgYWR2YW5jZWQgZm9ybXMnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBBcHJpbCAyMDA3LiAgRml4ZXMgdG8gQ3JlYXRlSW1hZ2VMaW5rPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBBcHJpbCAyMDA3LiAgQ3JlYXRlSW1hZ2VMaW5rIHdpbGwgbm93IHdvcmsgb24gdGhlIGZyb250ZW5kLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPg0KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBkZWZhdWx0IGZyb250ZW5kIGVycm9yIGhhbmRsaW5nIHBsdWdpbi48L2xpPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgbWVyZWx5IHByb3ZpZGVzIGNvbnZlbmllbmNlIGFwaSYjMDM5O3MgYW5kIHNtYXJ0eSB0YWdzIGZvciB1c2UgaW4gb3RoZXIgbW9kdWxlcy4gIEl0IGlzIG1lYW50IHNvbGVseSBhcyBhIGJhc2UgY2xhc3MgYW5kIHV0aWxpdHkgY2xhc3MgZm9yIG90aGVyIG1vZHVsZXMuPC9wPg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5XZWxsLCB5b3Ugc3RhcnQgeW91ciBvd24gbW9kdWxlIChJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCB0aGUgU2tlbGV0b24gbW9kdWxlKSwgYW5kIHRoZW4gd2hlbiB5b3UgbmVlZCB0byB1c2UgYW4gYWR2YW5jZWQgZm9ybSBvYmplY3QgZnJvbSB0aGlzIGxpYnJhcnksIHNpbXBseSBtYWtlIHlvdXIgbW9kdWxlIGRlcGVuZGFudCB1cG9uIEZvcm1PYmplY3RzLCBhbmQgdGhlbiBpbnN0YW50aWF0ZSBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuICBTZWUgdGhlIGNvZGUgaW5zaWRlIHRoZSBGb3JtT2JqZWN0cyBkaXJlY3RvcnkgZm9yIHVzYWdlIGluc3RydWN0aW9ucy48L3A+DQo8aDM+U21hcnR5IEFkZG9uczwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9yOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6ICYjMDM5O2Vycm9yY2xhc3MmIzAzOTsgPSBvdmVycmlkZSB0aGUgZGVmYXVsdCBjbGFzcyBuYW1lIGluIHRoZSB0ZW1wbGF0ZS4NCjwvcD4NCjxwPkRlc2NyaXB0aW9uOiBUaGlzIGJsb2NrIHBsdWdpbiB1c2VzIHRoZSBlcnJvciB0ZW1wbGF0ZSAoY29uZmlndXJhYmxlIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBpbnRlcmZhY2UpIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZS48L3A+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIGRldmVsb3BtZW50IGZvcmdlIGF0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IocyksIGNhbGd1eSBldCBhbGwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IocykgZGlyZWN0bHkuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+PGNhbGd1eTEwMDBAaG90bWFpbC5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zIGRlcyBmaWNoaWVycyBpbWFnZSc7CiRsYW5nWydncm91cCddID0gJ0dyb3VwZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ0dhYmFyaXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW4nOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJyZFYWN1dGU7ZGl0ZXIgbGUgZ2FiYXJpdCc7CiRsYW5nWydwcm9tcHRfZGVsZXRldGVtcGxhdGUnXSA9ICdTdXBwcmltZXIgbGUgZ2FiYXJ0aSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTm9tIGR1IGdhYmFyaXQnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGV4dGUgZHUgZ2FiYXJpdCc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ05vbSBkdSBnYWJhcml0JzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ05vdXZlYXUgZ2FiYXJpdCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1BhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3llcyddID0gJ091aSc7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydzdWJtaXQnXSA9ICdTb3VtZXR0cmUnOwokbGFuZ1snYXBwbHknXSA9ICdBcHBsaXF1ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxlcic7CiRsYW5nWydlZGl0J10gPSAnJkVhY3V0ZTtkaXRlcic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7cj8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlciBhdXggdmFsZXVycyBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0VycmV1ciBkZSBnYWJhcml0JzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0lsIHkgYSBkJmVhY3V0ZTtqJmFncmF2ZTsgdW4gZ2FiYXJpdCBkdSBtJmVjaXJjO21lIG5vbSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIE1vZHVsZSBFeHRlbnNpb25zJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnQ2UgbW9kdWxlIGVzdCBwciZlY2lyYzt0ICZhZ3JhdmU7IGwmIzAzOTtlbXBsb2kuIENvZGV6ISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQSBiaWVudCZvY2lyYzt0JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ0xhIHZlcnNpb24gJXMgYSAmZWFjdXRlO3QmZWFjdXRlOyBpbnN0YWxsJmVhY3V0ZTtlLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdMZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyBkdSBtb2R1bGUgb250ICZlYWN1dGU7dCZlYWN1dGU7IG1pc2VzICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjYyZlZ3JhdmU7cyByZWZ1cyZlYWN1dGU7LiBWZXVpbGxleiB2JmVhY3V0ZTtyaWZpZXIgdm9zIHBlcm1pc3Npb25zLic7CiRsYW5nWydlcnJvciddID0gJ0VycmV1ciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdMZSBtb2R1bGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBtaXMgJmFncmF2ZTsgam91ciAmYWdyYXZlOyBsYSB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0NlIG1vZHVsZSBlc3QgdW5lIGxpYnJhcmllIGRlIGNsYXNzZXMgcGhwIHV0aWxpcyZlYWN1dGU7ZXMgcG91ciBjciZlYWN1dGU7ZXIgZGVzIGZvcm11bGFpcmVzIGNvbXBsZXhlcyc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFycyAyMDA3LiAgUHJlbWkmZWdyYXZlO3JlIHZlcnNpb24uPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBBdnJpbCAyMDA3LiAgQ29ycmVjdGlvbiAmYWdyYXZlOyBsYSBmb25jdGlvbiBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEF2cmlsIDIwMDcuICBMYSBmb25jdGlvbiBDcmVhdGVJbWFnZUxpbmsgZm9uY3Rpb25uZSBtYWludGVuYW50IGVuIGZyb250LWVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJyZSAyMDA3LiAgQWpvdXQgZGUgYm91dG9ucyBBcHBsaXF1ZXIgYXV4IG5vdXZlYXV4IGdhYmFydGlzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYnJlIDIwMDcuICBBam91dCBkJiMwMzk7dW4gcGx1Z2luIHF1aSBnJmVncmF2ZTtyZSBsZXMgZXJyZXVycyBmcm9udC1lbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMi4gICBOb3ZlbWJyZSAyMDA3LCAgQWpvdXRlIHBsdXMgZGUgZm9uY3Rpb25zIHByYXRpcXVlczwvbGk+DQo8bGk+VmVyc2lvbiAxLjMuICAgTm92ZW1icmUgMjAwNy4gIEFqb3V0ZSBlbmNvcmUgcGx1cyBkZSBmb25jdGlvbnMgcHJhdGlxdWVzczwvbGk+DQo8bGk+VmVyc2lvbiAxLjQuICAgRCZlYWN1dGU7Y2VtYnJlIDIwMDcuICBBam91dCBkJiMwMzk7dW5lIG0mZWFjdXRlO3Rob2RlIENyZWF0ZUltYWdlRHJvcGRvd248L2xpPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgbWVyZWx5IHByb3ZpZGVzIGNvbnZlbmllbmNlIGFwaSYjMDM5O3MgYW5kIHNtYXJ0eSB0YWdzIGZvciB1c2UgaW4gb3RoZXIgbW9kdWxlcy4gIEl0IGlzIG1lYW50IHNvbGVseSBhcyBhIGJhc2UgY2xhc3MgYW5kIHV0aWxpdHkgY2xhc3MgZm9yIG90aGVyIG1vZHVsZXMuPC9wPg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5XZWxsLCB5b3Ugc3RhcnQgeW91ciBvd24gbW9kdWxlIChJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCB0aGUgU2tlbGV0b24gbW9kdWxlKSwgYW5kIHRoZW4gd2hlbiB5b3UgbmVlZCB0byB1c2UgYW4gYWR2YW5jZWQgZm9ybSBvYmplY3QgZnJvbSB0aGlzIGxpYnJhcnksIHNpbXBseSBtYWtlIHlvdXIgbW9kdWxlIGRlcGVuZGFudCB1cG9uIEZvcm1PYmplY3RzLCBhbmQgdGhlbiBpbnN0YW50aWF0ZSBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuICBTZWUgdGhlIGNvZGUgaW5zaWRlIHRoZSBGb3JtT2JqZWN0cyBkaXJlY3RvcnkgZm9yIHVzYWdlIGluc3RydWN0aW9ucy48L3A+DQo8aDM+U21hcnR5IEFkZG9uczwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9yOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6ICYjMDM5O2Vycm9yY2xhc3MmIzAzOTsgPSBvdmVycmlkZSB0aGUgZGVmYXVsdCBjbGFzcyBuYW1lIGluIHRoZSB0ZW1wbGF0ZS4NCjwvcD4NCjxwPkRlc2NyaXB0aW9uOiBUaGlzIGJsb2NrIHBsdWdpbiB1c2VzIHRoZSBlcnJvciB0ZW1wbGF0ZSAoY29uZmlndXJhYmxlIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBpbnRlcmZhY2UpIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZS48L3A+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIGRldmVsb3BtZW50IGZvcmdlIGF0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IocyksIGNhbGd1eSBldCBhbGwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IocykgZGlyZWN0bHkuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+PGNhbGd1eTEwMDBAaG90bWFpbC5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTk4MDc0OTIyLjE4Ni4zNC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvdG9waWMsMTc3NjEuMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjMxMTkxODM5MC4xMTY4NzczMDM2LjEyMDAxMzE1NDguMTIwMDM5NzU5OC4yMjQnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pIGRlbCBmaWxlIGltbWFnZSc7CiRsYW5nWydncm91cCddID0gJ0dydXBwbyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01vZGVsbG8nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGV6aW9uYSBVbm8nOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ01vZGlmaWNhIE1vZGVsbG8nOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnQ2FuY2VsbGEgTW9kZWxsbyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTm9tZSBNb2RlbGxvJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1Rlc3RvIE1vZGVsbG8nOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOb21lIE1vZGVsbG8nOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTnVvdm8gTW9kZWxsbyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvJzsKJGxhbmdbJ3llcyddID0gJ1MmaWdyYXZlOyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0ludmlhJzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBwbGljYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxsYSc7CiRsYW5nWydlZGl0J10gPSAnTW9kaWZpY2EnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIHNpY3VyaT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZWltcG9zdGEgYWkgdmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnRXJyb3JlIE1vZGVsbG8nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnVW4gTW9kZWxsbyBjb24gcXVlbCBub21lIGVzaXN0ZSBnaSZhZ3JhdmU7JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTW9kdWxlIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdRdWVzdG8gbW9kdWxvICZlZ3JhdmU7IHByb250byBhbGwmIzAzOTt1c28uIFBhcnRlbnphISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVmVkaSBkaSBudW92byBmcmEgcXVhbGNoZSBnaW9ybm8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gZGlzaW5zdGFsbGF0by4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVzcmlvbmUgZGVsIG1vZHVsbyAlcyBpbnN0YWxsYXRvLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJlbnplIG1vZHVsbyBhZ2dpb3JuYXRlLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3NvIG5lZ2F0by4gU2kgcHJlZ2EgZGkgY29udG9sbGFyZSBpIHZvc3RyaSBwZXJtZXNzaS4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvcmUhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxvIGFnZ2lvcm5hdG8gYWxsYSB2ZXJzaW9uZSAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdRdWVzdG8gbW9kdWxvICZlZ3JhdmU7IHVuYSBsaWJyZXJpYSBkaSBjbGFzc2kgcGhwIHVzYXRlIHBlciBjb3N0cnVpcmUgZm9ybSBhdmFuemF0aSc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1iZXIgIDIwMDcsICBBZGRzIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4NCjxsaT5WZXJzaW9uIDEuMy4gICBOb3ZlbWJlciAgMjAwNy4gIEFkZHMgZXZlbiBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkmIzAzOTtzIGFuZCBzbWFydHkgdGFncyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuICBJdCBpcyBtZWFudCBzb2xlbHkgYXMgYSBiYXNlIGNsYXNzIGFuZCB1dGlsaXR5IGNsYXNzIGZvciBvdGhlciBtb2R1bGVzLjwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+V2VsbCwgeW91IHN0YXJ0IHlvdXIgb3duIG1vZHVsZSAoSSBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggdGhlIFNrZWxldG9uIG1vZHVsZSksIGFuZCB0aGVuIHdoZW4geW91IG5lZWQgdG8gdXNlIGFuIGFkdmFuY2VkIGZvcm0gb2JqZWN0IGZyb20gdGhpcyBsaWJyYXJ5LCBzaW1wbHkgbWFrZSB5b3VyIG1vZHVsZSBkZXBlbmRhbnQgdXBvbiBGb3JtT2JqZWN0cywgYW5kIHRoZW4gaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgU2VlIHRoZSBjb2RlIGluc2lkZSB0aGUgRm9ybU9iamVjdHMgZGlyZWN0b3J5IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuPC9wPg0KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWRkcyBhIGZldyBzbWFydHkgY29udmVuaWVuY2VzIGZvciB1c2Ugd2l0aCBvdGhlciBtb2R1bGVzLiBUaGV5IGFyZSBsaXN0ZWQgYW5kIGRlc2NyaWJlZCBoZXJlOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfVRoaXMgaXMgZXJyb3IgdGV4dHsvY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvcjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+DQo8L3A+DQo8cD5vcHRpb25hbCBwYXJhbWV0ZXJzOiAmIzAzOTtlcnJvcmNsYXNzJiMwMzk7ID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuDQo8L3A+DQo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yKHMpLCBjYWxndXkgZXQgYWxsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz5jYWxndXkxMDAwQGhvdG1haWwuY29tPC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTgwNzE1MTY0MC4xMTgyOTYwNDU2LjExOTgxMDQ1NzEuMTE5ODI0NTg1NC40MjMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTk4MDg5NjU3LjQyMS43LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxNDYxNS4wL3RvcGljc2Vlbi5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdCaWxkZSBmaWwgdXR2aWRlbHNlcic7CiRsYW5nWydncm91cCddID0gJ0dydXBwZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01hbCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmVsZyBlbic7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnUmVkaWdlciBtYWwnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnU2xldHQgbWFsJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdNYWwgbmF2bic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWwgdGVrc3QnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdNYWwgbmF2bic7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdOeSBtYWwnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydzdWJtaXQnXSA9ICdTZW5kJzsKJGxhbmdbJ2FwcGx5J10gPSAnVXRmJm9zbGFzaDtyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyPyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1RpbGJha2VzdGlsbCB0aWwgZmFicmlra3N0YW5kYXJkJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnRmVpbG1hbCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFbiBtYWwgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIE1vZHVsZSBFeHRlbnNpb25zICc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0Rlbm5lIG1vZHVsZW4gZXIgZmVyZGlnIHRpbCBicnVrLiBLb2QgaSB2ZWkhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTZXIgZGVnIGlnamVuIGVuIGFubmVuIGRhZyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJzam9uICVzIGluc3RhbGxlcnQnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWwgaW5uc3RpbGxpbmdlciBvcHBkYXRlcnQuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FkZ2FuZyBuZWt0ZXQuIFZlbm5saWdzdCBzamVrayBkaW5lIHJldHRpZ2hldGVyLic7CiRsYW5nWydlcnJvciddID0gJ0ZlaWwhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgb3BwZ3JhZGVydCB0aWwgdmVyc2pvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdEZW5uZSBtb2R1bGVuIGVyIGV0IGJpYmxpb3RlayBhdiBwaHAga2xhc3NlciBicnVrdCB0aWwgJmFyaW5nOyBieWdnZSBhdmFuc2VydGUgc2tqZW1hZXInOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBBcHJpbCAyMDA3LiAgRml4ZXMgdG8gQ3JlYXRlSW1hZ2VMaW5rPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBBcHJpbCAyMDA3LiAgQ3JlYXRlSW1hZ2VMaW5rIHdpbGwgbm93IHdvcmsgb24gdGhlIGZyb250ZW5kLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPg0KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBkZWZhdWx0IGZyb250ZW5kIGVycm9yIGhhbmRsaW5nIHBsdWdpbi48L2xpPg0KPGxpPlZlcnNpb24gMS4yLiAgIE5vdmVtYmVyICAyMDA3LCAgQWRkcyBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjMuICAgTm92ZW1iZXIgIDIwMDcuICBBZGRzIGV2ZW4gbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPg0KPGxpPlZlcnNpb24gMS40LiAgIERlY2VtYmVyICAyMDA3LiAgQWRkcyBDcmVhdGVJbWFnZURyb3Bkb3duIG1ldGhvZDwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtZXJlbHkgcHJvdmlkZXMgY29udmVuaWVuY2UgYXBpJiMwMzk7cyBhbmQgc21hcnR5IHRhZ3MgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzLiAgSXQgaXMgbWVhbnQgc29sZWx5IGFzIGEgYmFzZSBjbGFzcyBhbmQgdXRpbGl0eSBjbGFzcyBmb3Igb3RoZXIgbW9kdWxlcy48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4NCjxoMz5TbWFydHkgQWRkb25zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFkZHMgYSBmZXcgc21hcnR5IGNvbnZlbmllbmNlcyBmb3IgdXNlIHdpdGggb3RoZXIgbW9kdWxlcy4gVGhleSBhcmUgbGlzdGVkIGFuZCBkZXNjcmliZWQgaGVyZTo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+aS5lOiA8Y29kZT57Y2dlcnJvcn1UaGlzIGlzIGVycm9yIHRleHR7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaW4gdGhlIHRlbXBsYXRlLg0KPC9wPg0KPHA+RGVzY3JpcHRpb246IFRoaXMgYmxvY2sgcGx1Z2luIHVzZXMgdGhlIGVycm9yIHRlbXBsYXRlIChjb25maWd1cmFibGUgZnJvbSB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIGludGVyZmFjZSkgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlLjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+JmFtcDtsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41MjU0MDY4MTIuMTE4ODA3NzQxNy4xMTk3OTI4ODgxLjExOTc5OTk1MjMuMzI0JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE5Nzk5OTUyMy4zMjQuMTgudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdBZmJlZWxkaW5nc2Jlc3RhbmRleHRlbnRpZXMnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcm9lcCc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3RlZXIgJmVhY3V0ZTsmZWFjdXRlO24nOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ0Jld2VyayBzamFibG9vbic7CiRsYW5nWydwcm9tcHRfZGVsZXRldGVtcGxhdGUnXSA9ICdWZXJ3aWpkZXIgc2phYmxvb24nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1NqYWJsb29ubmFhbSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdTamFibG9vbnRla3N0JzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnU2phYmxvb25uYWFtJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ05pZXV3IHNqYWJsb29uJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnU3RhbmRhYXJkJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1ZlcnN0dXVyJzsKJGxhbmdbJ2FwcGx5J10gPSAnVG9lcGFzc2VuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZWVyJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZXdlcmsnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dlZXQgdSBoZXQgemVrZXI/JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnSGVyc3RlbCBuYWFyIGZhYnJpZWtzc3RhbmRhYXJkJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnRm91dGVuc2phYmxvb24nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnRWVuIHNqYWJsb29uIG1ldCBkaWUgbmFhbSBiZXN0YWF0IGFsJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NNIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEZXplIG1vZHVsZSBpcyBnZXJlZWQgdm9vciBnZWJydWlrLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVG90IHppZW5zJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlZGVpbnN0YWxlZXJkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGV2ZXJzaWUgJXMgZ2UmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgdm9vcmtldXJlbiBiaWpnZXdlcmt0Lic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdUb2VnYW5nIGdld2VpZ2VyZC4gQ29udHJvbGVlciBkZSByZWNodGVuLic7CiRsYW5nWydlcnJvciddID0gJ0ZvdXQhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIGJpamdld2Vya3QgbmFhciB2ZXJzaWUgJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGUgbW9kdWxlIGlzIGVlbiBiaWJsaW90aGVlayBtZXQgcGhwLWNsYXNzZXMgdm9vciBoZXQgYm91d2VuIHZhbiB1aXRnZWJyZWlkZSBmb3JtdWxpZXJlbic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldhdCBkb2V0IGhldD88L2gzPg0KPHA+RGV6ZSBtb2R1bGUgbGV2ZXJ0IHNsZWNodHMgaGFuZGlnZSBBUEkmIzAzOTtzIGVuIHNtYXJ0eSB0YWdzIG9tIHRlIGdlYnJ1aWtlbiBpbiBhbmRlcmUgbW9kdWxlcy4gIEhldCBpcyB1aXRzbHVpdGVuZCBiZWRvZWxkIGFscyBiYXNpcy1jbGFzcyBlbiB1dGlsaXR5LWNsYXNzIHZvb3IgYW5kZXJlIG1vZHVsZXMuPC9wPg0KPGgzPkhvZSBnZWJydWlrdCB1IGhldD88L2gzPg0KPHA+VSBiZWdpbnQgbWV0IHV3IGVpZ2VuIG1vZHVsZSAoaWsgc3RlbCB2b29yIG9tIHRlIGJlZ2lubmVuIG1ldCBkZSBTa2VsZXRvbi1tb2R1bGUpIGVuIGFscyB1IGVlbiB1aXRnZWJyZWlkIGZvcm11bGllcm9iamVjdCB1aXQgZGV6ZSBiaWJsaW90aGVlayBub2RpZyBoZWVmdCwgZGFuIG1hYWt0IHUgdXcgbW9kdWxlIGFmaGFua2VsaWprIHZhbiBGb3JtT2JqZWN0cywgdmVydm9sZ2VucyBpbnN0YW50aWVlcnQgdSBlZW4gb2JqZWN0IHZhbiBoZXQganVpc3RlIHR5cGUuIFppZSBkZSBjb2RlIGluIGRlIEZvcm1PYmplY3RzLW1hcCB2b29yIGdlYnJ1aWtzaW5zdHJ1Y3RpZXMuPC9wPg0KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPg0KPHA+RGV6ZSBtb2R1bGUgdm9lZ3QgZW5rZWxlIHNtYXJ0eSBoYW5kaWdoZWRlbiB0b2Ugdm9vciBoZXQgZ2VicnVpayBtZXQgYW5kZXJlIG1vZHVsZXMuIFplIHppam4gaGllcm9uZGVyIG9wZ2Vzb21kIGVuIGJlc2NocmV2ZW46PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPmR1czogPGNvZGU+e2NnZXJyb3J9RGl0IGlzIGVlbiBmb3V0bWVsZGluZ3svY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvZjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+DQo8L3A+DQo8cD5vcHRpb25lbGUgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IG92ZXJzY2hyaWpmIGRlIHN0YW5kYWFyZCBjbGFzcy1uYWFtIGluIGhldCBzamFibG9vbi4NCjwvcD4NCjxwPkJlc2NocmlqdmluZzogRGV6ZSBibG9jayBwbHVnaW4gZ2VicnVpa3QgZGUgZm91dGVuc2phYmxvb24gKGNvbmZpZ3VyZWVyYmFhciB2aWEgaGV0IENHRXh0ZW5zaW9ucy1iZWhlZXJwYW5lZWwpIG9tIGVlbiBmb3V0bWVsZGluZyB0ZSB0b25lbi48L3A+DQo8L3VsPg0KPGgzPk9uZGVyc3RldW5pbmc8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIGRldmVsb3BtZW50IGZvcmdlIGF0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IocyksIGNhbGd1eSBldCBhbGwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IocykgZGlyZWN0bHkuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+PGNhbGd1eTEwMDBAaG90bWFpbC5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My40Mzc0MjMxMjQuMTE5ODI1MDU5My4xMTk5NTM1NTM1LjExOTk1Mzc0NjEuOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkzNzgwMTQuNy41LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxODI2My4wLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnU2FibG9uJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdBbGVnZXRpIHVudWwoYSknOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXRlYXphIHNhYmxvbic7CiRsYW5nWydwcm9tcHRfZGVsZXRldGVtcGxhdGUnXSA9ICdTdGVyZ2Ugc2FibG9uJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdOdW1lIHNhYmxvbic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZXN0IHNhYmxvbic7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ051bWUgc2FibG9uJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ1NhYmxvbiBub3UnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdJbXBsaWNpdCc7CiRsYW5nWyd5ZXMnXSA9ICdEYSc7CiRsYW5nWydubyddID0gJ051JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1RyaW1pdGUnOwokbGFuZ1snYXBwbHknXSA9ICdBcGxpY2EnOwokbGFuZ1snY2FuY2VsJ10gPSAnQW51bGVhemEnOwokbGFuZ1snZWRpdCddID0gJ0VkaXRlYXphJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdTdW50ZXRpIHNpZ3VyKGEpPyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc3RhYmlsaXJlIHZhbG9yaSBkZSBmYWJyaWNhcmUnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdTYWJsb24gZXJvYXJlJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0V4dGVuc2lpIG1vZHVsIENhbGd1eXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdBY2VzdCBtb2R1bCBlc3RlIHByZWdhdGl0IHBlbnRydSBmb2xvc2lyZS4gIENvZGFyZSB1c29hcmEhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMYSByZXZlZGVyZSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGRlemluc3RhbGF0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdWZXJzaXVuZWEgJXMgYSBtb2R1bHVpIGEgZm9zdCBpbnN0YWxhdGEuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmludGUgbW9kdWwgYWN0dWFsaXphdGUuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzIGludGVyemlzLiBWZXJpZmljYXRpLXZhIHBlcm1pc2l1bmlsZSB2YSByb2cuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJvYXJlISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGFjdHVhbGl6YXQgbGEgdmVyc2l1bmVhICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0FjZXN0IG1vZHVsIGVzdGUgbyBiaWJsaW90ZWNhIGRlIGNsYXNlIHBocCBmb2xvc2l0ZSBwZW50cnUgY29uc3RydWlyZWEgZGUgZm9ybXVsYXJlIGF2YW5zYXRlLic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPkNlIHJlYWxpemVhemEgYWNlc3QgbW9kdWw/PC9oMz4NCjxwPkFjZXN0IG1vZHVsIG9mZXJhIGluIHByaW5jaXBhbCBpbnRlcmZldGUgYXBsaWNhdGllIHNpIGV0aWNoZXRlIHNtYXJ0eSBwZW50cnUgZm9sb3NpcmVhIGxvciBpbiBhbHRlIG1vZHVsZS4gRXN0ZSBjb25zdGl0dWl0IGRpbiBjbGFzZSBkZSBiYXphIHNpIGNsYXNlIHV0aWxpdGFyZSBkaXNwb25pYmlsZSBwZW50cnUgYWx0ZSBtb2R1bGUuPC9wPg0KPGgzPkN1bSBpbCBmb2xvc2VzYzwvaDM+DQo8cD5FaSBiaW5lLCBpbmNlcGV0aSBtb2R1bHVsIGR1bW5lYXZvYXN0cmEgKHN1Z2VyZXogc2EgaW5jZXBldGkgY3UgbW9kdWx1bCBTa2VsZXRvbiksIHNpIGFwb2kgY2FuZCBkb3JpdGkgc2EgZm9sb3NpdGkgdW4gb2JpZWN0IGZvcm11bGFyIGF2YW5zYXQgZGluIGFjZWFzdGEgYmlibGlvdGVjYSwgdHJlYnVpZSBkb2FyIHNhIGZhY2V0aSBtb2R1bHVsIGR1bW5lYXZvYXN0cmEgZGVwZW5kZW50IGRpbiBGb3JtT2JqZWN0cywgc2kgc2EgaW5zdGFudGlhdGkgdW4gb2JpZWN0IGRlIHRpcHVsIGNvcmVzcHVuemF0b3IuICBWZXppIGNvZHVsIGRpbiBkaXJlY3RvcnVsIEZvcm1PYmplY3RzIHBlbnRydSBpbnN0cnVjdGl1bmkgZGUgdXRpbGl6YXJlLjwvcD4NCjxoMz5BZGRvbi11cmkgU21hcnR5PC9oMz4NCjxwPkFjZXN0IG1vZHVsIG9mZXJhIGluIHBsdXMgY2F0ZXZhIGNvbnZlbmllbnRlIHNtYXJ0eSBwZW50cnUgZm9sb3NpcmVhIGluIGFsdGUgbW9kdWxlLiBBY2VzdGVhIHN1bnQgbGlzdGF0ZSBzaSBkZXNjcmlzZSBhaWNpOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2M8L2VtPiBwbHVnaW4NCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9QWNlc3RhIGVzdGUgdGV4dHVsIGVyb3JpaXsvY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvcjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+DQo8L3A+DQo8cD5wYXJhbWV0cmkgb3B0aW9uYWxpOiAmIzAzOTtlcnJvcmNsYXNzJiMwMzk7ID0gc3VwcmFzY3JpZSBudW1lbGUgY2xhc2VpIGltcGxpY2l0ZSBpbiBzYWJsb24uDQo8L3A+DQo8cD5EZXNjcmllcmU6IEFjZXN0IHBsdWdpbiBibG9jIGZvbG9zZXN0ZSBzYWJsb251bCBlcm9hcmUgKGNvbmZpZ3VyYWJpbCBkaW4gaW50ZXJmYXRhIGRlIGFkbWluaXN0cmFyZSBDR0V4dGVuc2lvbnMpIHBlbnRydSBhZmlzZWFyZWEgdW51aSBtZXNhaiBkZSBlcm9hcmUuPC9wPg0KPC91bD4NCjxoMz5TdXBvcnQ8L2gzPg0KPHA+QWNlc3QgbW9kdWwgbnUgb2ZlcmEgc3Vwb3J0IGNvbWVyY2lhbC4gVG90dXNpLCBleGlzdGEgdW4gbnVtYXIgZGlzcG9uaWJpbCBkZSByZXN1cnNlIGNhcmUgdmEgcG90IGFqdXRhOjwvcD4NCjx1bD4NCjxsaT5QZW50cnUgdWx0aW1hIHZlcnNpdW5lIGEgYWNlc3R1aSBtb2R1bCwgRkFRLXVyaSwgcmFwb3J0YXJlYSB1bnVpIEJ1ZyBzYXUgYWNoaXppdGlhIGRlIHN1cG9ydCBjb21lcmNpYWwsIHZhIHJvZyBzYSB2aXppdGF0aSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgbGEgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5EaXNjdXRpaSByZWZlcml0b2FyZSBsYSBhY2VzdCBtb2R1bCBwb3QgZmkgZ2FzaXRlIGxhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+QXV0b3J1bCwgY2FsZ3V5IHNpIGFsdGlpIHBvdCBmaSBhZGVzZWEgZ2FzaXRpIGxhIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5JbiBmaW5hbCwgYXRpIHB1dGVhIGF2ZWEgc3VjY2VzIHByaW4gdHJpbWl0ZXJlYSB1bnVpIGUtbWFpbCBkaXJlY3QgYXV0b3J1bHVpLjwvbGk+ICANCjwvdWw+DQo8cD5SZWZlcml0b3IgbGEgR1BMLCBhY2VzdCBzb2Z0IGVzdGUgb2Zlcml0IGFzYSBjdW0gZXN0ZS4gVmEgcm9nIHNhIGNpdGl0aSB0ZXh0dWwgbGljZW50ZWkgcGVudHJ1IGRpc2N1bHBhIHRvdGFsYS48L3A+DQoNCjxoMz5Db3B5cmlnaHQgc2kgTGljZW50YTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSZxdW90O21haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tJnF1b3Q7PjxjYWxndXkxMDAwQGhvdG1haWwuY29tPjwvYT4uIFRvYXRlIGRyZXB0dXJpbGUgcmV6ZXJ2YXRlLjwvcD4NCjxwPkFjZXN0IG1vZHVsIGEgZm9zdCBsaXZyYXQgc3ViIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkxpY2VudGEgcHVibGljYSBHTlU8L2E+LiBUcmVidWllIHNhIGZpdGkgZGUgYWNvcmQgY3UgYWNlYXN0YSBpbmFpbnRlIHNhIGZvbG9zaXRpIG1vZHVsdWwuPC9wPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzAzMDIzOTQyLjExOTMyOTQzODYuMTE5NDYxMjc2MS4xMTk0ODY3MTQyLjI5JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE5NDUzNjMzNC4yMy41LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZS5mNTYyLm1haWwueWFob28uY29tfHV0bWNjdD0veW0vU2hvd0xldHRlcnx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdJbWFnZSBGaWxlIEV4dGVuc2lvbnMnOwokbGFuZ1snZ3JvdXAnXSA9ICfQk9GA0YPQv9C/0LAnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ9CS0YvQsdGA0LDRgtGMINC+0LTQuNC9JzsKJGxhbmdbJ3Byb21wdF9lZGl0dGVtcGxhdGUnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0nOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1INGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ9Ci0LXQutGB0YIg0YjQsNCx0LvQvtC90LAnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1INGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ9Cd0L7QstGL0Lkg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAn0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sneWVzJ10gPSAn0JTQsCc7CiRsYW5nWydubyddID0gJ9Cd0LXRgic7CiRsYW5nWydzdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snYXBwbHknXSA9ICdBcHBseSc7CiRsYW5nWydjYW5jZWwnXSA9ICfQntGC0LzQtdC90LAnOwokbGFuZ1snZWRpdCddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90Ys/JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgdG8gZmFjdG9yeSBkZWZhdWx0cyc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ9Ce0YjQuNCx0LrQsCDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICfQotCw0LrQvtC1INC90LDQt9Cy0LDQvdC40LUg0YjQsNCx0LvQvtC90LAg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTW9kdWxlIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGlzIG1vZHVsZSBpcyByZWFkeSB0byB1c2UuICBDb2RlIGF3YXkhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTZWUgeW91IGFnYWluIHNvbWUgZGF5JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMINC00LXQuNC90YHRgtCw0LvQu9C40YDQvtCy0LDQvS4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMINCy0LXRgNGB0LjQuCAlcyDRg9GB0YLQsNC90L7QstC70LXQvS4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC80L7QtNGD0LvRjyDQvtCx0L3QvtCy0LvQtdC90YsuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzcyBEZW5pZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zLic7CiRsYW5nWydlcnJvciddID0gJ9Ce0YjQuNCx0LrQsCEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICfQnNC+0LTRg9C70Ywg0L7QsdC90L7QstC70LXQvSDQtNC+INCy0LXRgNGB0LjQuCAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBpcyBhIGxpYnJhcnkgb2YgcGhwIGNsYXNzZXMgdXNlZCB0byBidWlsZCBhZHZhbmNlZCBmb3Jtcyc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1iZXIgIDIwMDcsICBBZGRzIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4NCjxsaT5WZXJzaW9uIDEuMy4gICBOb3ZlbWJlciAgMjAwNy4gIEFkZHMgZXZlbiBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGlcJ3MgYW5kIHNtYXJ0eSB0YWdzIGZvciB1c2UgaW4gb3RoZXIgbW9kdWxlcy4gIEl0IGlzIG1lYW50IHNvbGVseSBhcyBhIGJhc2UgY2xhc3MgYW5kIHV0aWxpdHkgY2xhc3MgZm9yIG90aGVyIG1vZHVsZXMuPC9wPg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5XZWxsLCB5b3Ugc3RhcnQgeW91ciBvd24gbW9kdWxlIChJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCB0aGUgU2tlbGV0b24gbW9kdWxlKSwgYW5kIHRoZW4gd2hlbiB5b3UgbmVlZCB0byB1c2UgYW4gYWR2YW5jZWQgZm9ybSBvYmplY3QgZnJvbSB0aGlzIGxpYnJhcnksIHNpbXBseSBtYWtlIHlvdXIgbW9kdWxlIGRlcGVuZGFudCB1cG9uIEZvcm1PYmplY3RzLCBhbmQgdGhlbiBpbnN0YW50aWF0ZSBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuICBTZWUgdGhlIGNvZGUgaW5zaWRlIHRoZSBGb3JtT2JqZWN0cyBkaXJlY3RvcnkgZm9yIHVzYWdlIGluc3RydWN0aW9ucy48L3A+DQo8aDM+U21hcnR5IEFkZG9uczwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9yOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6IFwnZXJyb3JjbGFzc1wnID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuDQo8L3A+DQo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tIj48Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTA0NTU2NjYwMC4xMTkzMTY0NDQwLjExOTkzMzYzODguMTE5OTQyMzk2OS4yNCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkyNzM2OTEuMjAuNy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vZm9ydW0vZm9ydW0ucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Byb21wdF9lZGl0dGVtcGxhdGUnXSA9ICdSZWRpZ2VyYSBtYWxsJzsKJGxhbmdbJ3Byb21wdF9kZWxldGV0ZW1wbGF0ZSddID0gJ1RhIGJvcnQgbWFsbCc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTWFsbG5hbW4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTWFsbHRleHQnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdNYWxsbmFtbic7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdOeSBtYWxsJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1snc3VibWl0J10gPSAnU2tpY2thJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyYSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyPyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIG1vZHVsdGlsbCZhdW1sO2dnJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGVuIGgmYXVtbDtyIG1vZHVsZW4gJmF1bWw7ciBmJmF1bWw7cmRpZyBhdHQgYW52JmF1bWw7bmRhcy4gS29kYSBwJmFyaW5nOyEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1ZpIHNlcyBuJmFyaW5nO24gZGFnJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlbiAmYXVtbDtyIGF2aW5zdGFsbGVyYWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdmVyc2lvbiAlcyBpbnN0YWxsZXJhZC4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxpbnN0JmF1bWw7bGxuaW5nYXJuYSB1cHBkYXRlcmFkZXMuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJyZBcmluZzt0a29tc3QgbmVrYWQuIFYmYXVtbDtubGlnIGtvbnRyb2xsZXJhIGRpbmEgciZhdW1sO3R0aWdoZXRlci4nOwokbGFuZ1snZXJyb3InXSA9ICdGZWwhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlbiB1cHBncmFkZXJhZGVzIHRpbGwgdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdEZW4gaCZhdW1sO3IgbW9kdWxlbiAmYXVtbDtyIGV0dCBiaWJsaW90ZWsgbWVkIHBocC1rbGFzc2VyIHNvbSBhbnYmYXVtbDtuZHMgZiZvdW1sO3IgYXR0IGJ5Z2dhIGF2YW5jZXJhZGUgZm9ybXVsJmF1bWw7cic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPk5vdGhpbmcuIEl0IG1lcmVseSBwcm92aWRlcyBzb21lIGNvbnZlbmllbnQgaGlnaGVyIGxldmVsIGZvcm0gb2JqZWN0cyBmb3IgdXNlIHdoZW4gZGV2ZWxvcGluZyB5b3VyIG93biBtb2R1bGVzLjwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+V2VsbCwgeW91IHN0YXJ0IHlvdXIgb3duIG1vZHVsZSAoSSBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggdGhlIFNrZWxldG9uIG1vZHVsZSksIGFuZCB0aGVuIHdoZW4geW91IG5lZWQgdG8gdXNlIGFuIGFkdmFuY2VkIGZvcm0gb2JqZWN0IGZyb20gdGhpcyBsaWJyYXJ5LCBzaW1wbHkgbWFrZSB5b3VyIG1vZHVsZSBkZXBlbmRhbnQgdXBvbiBGb3JtT2JqZWN0cywgYW5kIHRoZW4gaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgU2VlIHRoZSBjb2RlIGluc2lkZSB0aGUgRm9ybU9iamVjdHMgZGlyZWN0b3J5IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIGRldmVsb3BtZW50IGZvcmdlIGF0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IocyksIGNhbGd1eSBldCBhbGwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IocykgZGlyZWN0bHkuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+PGNhbGd1eTEwMDBAaG90bWFpbC5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTc1Nzg5MjAxLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMjU4NjIzNjMuMTE3NTc4OTIwMS4xMTc1ODkwNTIwLjExNzU5Mzg5NDYuMyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Progress2_Lite.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIExhdXJlbnQgTGF2aWxsZSA8cGVhckBsYXVyZW50LWxhdmlsbGUub3JnPg0KICoNCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogKg0KICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCiAqIGFyZSBtZXQ6DQogKg0KICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCiAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQogKiAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9ycyBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMNCiAqICAgICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQ0KICogICAgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKg0KICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiDQogKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQogKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQ0KICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTDQogKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQogKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRg0KICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQogKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCiAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQogKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAqDQogKiBAY2F0ZWdvcnkgICBIVE1MDQogKiBAcGFja2FnZSAgICBIVE1MX1Byb2dyZXNzMg0KICogQGF1dGhvciAgICAgTGF1cmVudCBMYXZpbGxlIDxwZWFyQGxhdXJlbnQtbGF2aWxsZS5vcmc+DQogKiBAY29weXJpZ2h0ICAyMDA1LTIwMDcgTGF1cmVudCBMYXZpbGxlDQogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocCAgTmV3IEJTRCBMaWNlbnNlDQogKiBAdmVyc2lvbiAgICBDVlM6ICRJZDogUHJvZ3Jlc3MyX0xpdGUucGhwLHYgMS45IDIwMDcvMDQvMDggMTQ6NTU6NTYgZmFyZWxsIEV4cCAkDQogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvSFRNTF9Qcm9ncmVzczINCiAqIEBzaW5jZSAgICAgIEZpbGUgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMi4wLjBSQzENCiAqLw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygnb2JfZ2V0X2NsZWFuJykpIHsNCiAgICBmdW5jdGlvbiBvYl9nZXRfY2xlYW4oKQ0KICAgIHsNCiAgICAgICAgJGNvbnRlbnRzID0gb2JfZ2V0X2NvbnRlbnRzKCk7DQoNCiAgICAgICAgaWYgKCRjb250ZW50cyAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIG9iX2VuZF9jbGVhbigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuICRjb250ZW50czsNCiAgICB9DQp9DQoNCmlmICghZGVmaW5lZCgnUEhQX0VPTCcpKSB7DQogICAgc3dpdGNoIChzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSkgew0KICAgICAgICAvLyBXaW5kb3dzDQogICAgICAgIGNhc2UgJ1dJTic6DQogICAgICAgICAgICBkZWZpbmUoJ1BIUF9FT0wnLCAiXHJcbiIpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgLy8gTWFjDQogICAgICAgIGNhc2UgJ0RBUic6DQogICAgICAgICAgICBkZWZpbmUoJ1BIUF9FT0wnLCAiXHIiKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIC8vIFVuaXgNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGRlZmluZSgnUEhQX0VPTCcsICJcbiIpOw0KICAgIH0NCn0NCg0KLyoqDQogKiBTdGFuZGFsb25lIEhUTUwgbG9hZGluZyBiYXIgd2l0aCBvbmx5IFBIUCBhbmQgSlMgaW50ZXJmYWNlLg0KICoNCiAqIFRoZSBIVE1MX1Byb2dyZXNzMl9MaXRlIGNsYXNzIGFsbG93IHlvdSB0byBhZGQgYSBxdWljaw0KICogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBsb2FkaW5nIGJhciB0byBhbnkgb2YgeW91ciB4aHRtbCBkb2N1bWVudC4NCiAqIFlvdSBzaG91bGQgaGF2ZSBhIGJyb3dzZXIgdGhhdCBhY2NlcHQgREhUTUwgZmVhdHVyZS4NCiAqDQogKiBUaGlzIGNsYXNzIGhhcyBubyBkZXBlbmRlbmN5IGFuZCBjYW4gYmUgdXNlZCBjb21wbGV0ZWx5IG91dHNpZGUNCiAqIHRoZSBQRUFSIGluZnJhc3RydWN0dXJlLg0KICoNCiAqIEhlcmUgaXMgYSBiYXNpYyBleGFtcGxlOg0KICogPGNvZGU+DQogKiA8aHRtbD4NCiAqIDxib2R5Pg0KICogPD9waHANCiAqIHJlcXVpcmVfb25jZSAnSFRNTC9Qcm9ncmVzczJfTGl0ZS5waHAnOw0KICoNCiAqIGZ1bmN0aW9uIG15UHJvY2VzcygpDQogKiB7DQogKiAgICAgZm9yICgkaT0wOyAkaTwxMDAwMDA7ICRpKyspIHsgfQ0KICogfQ0KICoNCiAqICRwYmwgPSBuZXcgSFRNTF9Qcm9ncmVzczJfTGl0ZSgpOw0KICogJHBibC0+YWRkTGFiZWwoJ3RleHQnLCd0eHQxJywnUHJvZ3Jlc3MyIExpdGUgLSBCYXNpYyBFeGFtcGxlJyk7DQogKiAkcGJsLT5kaXNwbGF5KCk7DQogKg0KICogZm9yKCRpPTE7ICRpPD0xMDA7ICRpKyspIHsNCiAqICAgICAkcGJsLT5tb3ZlU3RlcCgkaSk7DQogKiAgICAgbXlQcm9jZXNzKCk7DQogKiB9DQogKiA/Pg0KICogPC9ib2R5Pg0KICogPC9odG1sPg0KICogPC9jb2RlPg0KICoNCiAqIEBjYXRlZ29yeSAgIEhUTUwNCiAqIEBwYWNrYWdlICAgIEhUTUxfUHJvZ3Jlc3MyDQogKiBAYXV0aG9yICAgICBMYXVyZW50IExhdmlsbGUgPHBlYXJAbGF1cmVudC1sYXZpbGxlLm9yZz4NCiAqIEBhdXRob3IgICAgIE1pa2EgVHVyaW4gPHR1cmluQGluYm94Lmx2Pg0KICogQGF1dGhvciAgICAgR2VyZCBXZWl0ZW5iZXJnIDxoYWhuZWJ1ZWNoZW5Ad2ViLmRlPg0KICogQGNvcHlyaWdodCAgMjAwNS0yMDA3IExhdXJlbnQgTGF2aWxsZQ0KICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAgIE5ldyBCU0QgTGljZW5zZQ0KICogQHZlcnNpb24gICAgUmVsZWFzZTogMi4zLjANCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9IVE1MX1Byb2dyZXNzMg0KICogQGxpbmsgICAgICAgaHR0cDovL3d3dy5waHBjbGFzc2VzLm9yZy9icm93c2UvcGFja2FnZS8xMjIyLmh0bWwNCiAqICAgICAgICAgICAgIEZyb20gYW4gb3JpZ2luYWwgaWRlYSBvZiBNaWtlIFR1cmluDQogKiBAbGluayAgICAgICBodHRwOi8vd3d3LnBocGNsYXNzZXMub3JnL2Jyb3dzZS9wYWNrYWdlLzE5NjQuaHRtbA0KICogICAgICAgICAgICAgSW1wcm92ZSB2ZXJzaW9uIG9mIEdlcmQgV2VpdGVuYmVyZw0KICogQHNpbmNlICAgICAgQ2xhc3MgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMi4wLjBSQzENCiAqLw0KDQpjbGFzcyBIVE1MX1Byb2dyZXNzMl9MaXRlDQp7DQogICAgLyoqDQogICAgICogTGFiZWwgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBzdHJpbmcNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICB2YXIgJF9pZGVudDsNCg0KICAgIC8qKg0KICAgICAqIFN0YXR1cyBvZiB0aGUgcHJvZ3Jlc3MgYmFyIChuZXcsIHNob3csIGhpZGUpLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwcml2YXRlDQogICAgICovDQogICAgdmFyICRfc3RhdHVzID0gJ25ldyc7DQoNCiAgICAvKioNCiAgICAgKiBTdGVwcyBvZiB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgaW50ZWdlcg0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHZhciAkX3N0ZXAgPSAwOw0KDQogICAgLyoqDQogICAgICogTWluaW11bSBzdGVwcyBvZiB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgaW50ZWdlcg0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRtaW47DQoNCiAgICAvKioNCiAgICAgKiBNYXhpbXVtIHN0ZXBzIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBpbnRlZ2VyDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJG1heDsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciBwb3NpdGlvbiAoYWJzb2x1dGUsIHJlbGF0aXZlKS4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIHN0cmluZw0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRwb3NpdGlvbjsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciBwb3NpdGlvbiBmcm9tIGxlZnQuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBpbnRlZ2VyDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJGxlZnQ7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgcG9zaXRpb24gZnJvbSB0b3AuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBpbnRlZ2VyDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJHRvcDsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciB3aWR0aCBpbiBwaXhlbC4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIGludGVnZXINCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIHZhciAkd2lkdGg7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgaGVpZ2h0IGluIHBpeGVsLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgaW50ZWdlcg0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRoZWlnaHQ7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgcGFkZGluZyBpbiBwaXhlbC4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIGludGVnZXINCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIHZhciAkcGFkZGluZzsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciBmb3JlZ3JvdW5kIGNvbG9yLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJGZvcmVncm91bmRfY29sb3IgPSAnIzAwMzNGRic7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgZm9yZWdyb3VuZCBjb2xvci4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIHN0cmluZw0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRiYWNrZ3JvdW5kX2NvbG9yID0gJyNDMEMwQzAnOw0KDQogICAgLyoqDQogICAgICogUHJvZ3Jlc3MgYmFyIGJvcmRlciBwcm9wZXJ0aWVzDQogICAgICoNCiAgICAgKiA8Y29kZT4NCiAgICAgKiAkYm9yZGVyID0gYXJyYXkoDQogICAgICogICAgJ3dpZHRoJyA9PiAxICAgICAgICAgICMgd2lkdGggc2l6ZSBpbiBwaXhlbA0KICAgICAqICAgICdzdHlsZScgPT4gJ3NvbGlkJyAgICAjIHN0eWxlIChzb2xpZCwgZGFzaGVkLCBkb3R0ZWQgLi4uKQ0KICAgICAqICAgICdjb2xvcicgPT4gJyMwMDAwMDAnICAjIGNvbG9yDQogICAgICogKTsNCiAgICAgKiA8L2NvZGU+DQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBhcnJheQ0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRib3JkZXIgPSBhcnJheSgnd2lkdGgnID0+IDEsICdzdHlsZScgPT4gJ3NvbGlkJywgJ2NvbG9yJyA9PiAnIzAwMDAwMCcpOw0KDQogICAgLyoqDQogICAgICogRGlyZWN0aW9uIG9mIG1vdGlvbiAocmlnaHQsIGxlZnQsIHVwLCBkb3duKS4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIHN0cmluZw0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRkaXJlY3Rpb24gPSAncmlnaHQnOw0KDQogICAgLyoqDQogICAgICogUHJvZ3Jlc3MgYmFyIGZyYW1lIHByb3BlcnRpZXMNCiAgICAgKg0KICAgICAqIDxjb2RlPg0KICAgICAqICRmcmFtZSA9IGFycmF5KA0KICAgICAqICAgICdzaG93JyA9PiBmYWxzZSwgICAgICAjIGZyYW1lIHNob3cgKHRydWUvZmFsc2UpDQogICAgICogICAgJ2xlZnQnID0+IDIwMCwgICAgICAgICMgZnJhbWUgcG9zaXRpb24gZnJvbSBsZWZ0DQogICAgICogICAgJ3RvcCcgPT4gMTAwLCAgICAgICAgICMgZnJhbWUgcG9zaXRpb24gZnJvbSB0b3ANCiAgICAgKiAgICAnd2lkdGgnID0+IDMyMCwgICAgICAgIyBmcmFtZSB3aWR0aA0KICAgICAqICAgICdoZWlnaHQnID0+IDkwLCAgICAgICAjIGZyYW1lIGhlaWdodA0KICAgICAqICAgICdjb2xvcicgPT4gJyNDMEMwQzAnLCAjIGZyYW1lIGNvbG9yDQogICAgICogICAgJ2JvcmRlci13aWR0aCcgPT4gMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZnJhbWUgYm9yZGVyIHdpZHRoDQogICAgICogICAgJ2JvcmRlci1zdHlsZScgPT4gJ3NvbGlkJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZnJhbWUgYm9yZGVyIHN0eWxlIChzb2xpZCwNCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkYXNoZWQsIGRvdHRlZCwgaW5zZXQgLi4uKQ0KICAgICAqICAgICdib3JkZXItY29sb3InID0+ICcjREZERkRGICM0MDQwNDAgIzQwNDA0MCAjREZERkRGJyAgICAjIGZyYW1lIGJvcmRlciBjb2xvciAoM2RmeCkNCiAgICAgKiApOw0KICAgICAqIDwvY29kZT4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIGFycmF5DQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKiBAc2VlICAgICAgICBzZXRGcmFtZUF0dHJpYnV0ZXMoKQ0KICAgICAqLw0KICAgIHZhciAkZnJhbWUgPSBhcnJheSgnc2hvdycgPT4gZmFsc2UpOw0KDQogICAgLyoqDQogICAgICogUHJvZ3Jlc3MgYmFyIGxhYmVscyBwcm9wZXJ0aWVzDQogICAgICoNCiAgICAgKiA8Y29kZT4NCiAgICAgKiAkbGFiZWwgPSBhcnJheSgNCiAgICAgKiAgICAnbmFtZScgPT4gYXJyYXkoICAgICAgICAgICAgICAgICAgIyBsYWJlbCBuYW1lDQogICAgICogICAgICAndHlwZScgPT4gJ3RleHQnLCAgICAgICAgICAgICAgICMgbGFiZWwgdHlwZQ0KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICh0ZXh0LGJ1dHRvbixzdGVwLHBlcmNlbnQsY3Jvc3NiYXIpDQogICAgICogICAgICAndmFsdWUnID0+ICcmbmJzcDsnLCAgICAgICAgICAgICMgbGFiZWwgdmFsdWUNCiAgICAgKiAgICAgICdsZWZ0JyA9PiAoJGxlZnQpLCAgICAgICAgICAgICAgIyBsYWJlbCBwb3NpdGlvbiBmcm9tIGxlZnQNCiAgICAgKiAgICAgICd0b3AnID0+ICgkdG9wIC0gMTYpLCAgICAgICAgICAgIyBsYWJlbCBwb3NpdGlvbiBmcm9tIHRvcA0KICAgICAqICAgICAgJ3dpZHRoJyA9PiAwLCAgICAgICAgICAgICAgICAgICAjIGxhYmVsIHdpZHRoDQogICAgICogICAgICAnaGVpZ2h0JyA9PiAwLCAgICAgICAgICAgICAgICAgICMgbGFiZWwgaGVpZ2h0DQogICAgICogICAgICAnYWxpZ24nID0+ICdsZWZ0JywgICAgICAgICAgICAgICMgbGFiZWwgYWxpZ24NCiAgICAgKiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLCAgICAgICAgICAjIGxhYmVsIGJhY2tncm91bmQgY29sb3INCiAgICAgKiAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLCAgICAjIGxhYmVsIGZvbnQgZmFtaWx5DQogICAgICogICAgICAnZm9udC1zaXplJyA9PiAxMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsYWJlbCBmb250IHNpemUNCiAgICAgKiAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsICAgICAgICAgICAgICAgICAgICAjIGxhYmVsIGZvbnQgd2VpZ2h0DQogICAgICogICAgICAnZm9udC1zdHlsZScgPT4gJ25vcm1hbCcsICAgICAgICAgICAgICAgICAgICAgIyBsYWJlbCBmb250IHN0eWxlDQogICAgICogICAgICAnY29sb3InID0+ICcjMDAwMDAwJyAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsYWJlbCBmb250IGNvbG9yDQogICAgICogKTsNCiAgICAgKiA8L2NvZGU+DQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBhcnJheQ0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgYWRkTGFiZWwoKSwgc2V0TGFiZWxBdHRyaWJ1dGVzKCkNCiAgICAgKi8NCiAgICB2YXIgJGxhYmVsID0gYXJyYXkoKTsNCg0KICAgIC8qKg0KICAgICAqIENvbnN0cnVjdG9yIChaRTEpDQogICAgICoNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIGZ1bmN0aW9uIEhUTUxfUHJvZ3Jlc3MyX0xpdGUoJG9wdGlvbnMgPSBhcnJheSgpLCAkaWQgPSBudWxsKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPl9fY29uc3RydWN0KCRvcHRpb25zLCAkaWQpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIENvbnN0cnVjdG9yIChaRTIpIFN1bW1hcnkuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBhcnJheSAgICAgJG9wdGlvbnMgICAgICAgKG9wdGlvbmFsKSBoYXMgb2Ygc3R5bGUgcGFyYW1ldGVycw0KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgcHJvZ3Jlc3MgYmFyDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRpZCAgICAgICAgICAgIChvcHRpb25hbCkgcHJvZ3Jlc3MgYmFyIHVuaXF1ZSBpZGVudGlmaWVyDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICBvYmplY3QNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByb3RlY3RlZA0KICAgICAqLw0KICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcHRpb25zID0gYXJyYXkoKSwgJGlkID0gbnVsbCkNCiAgICB7DQogICAgICAgIGlmIChpc19udWxsKCRpZCkpIHsNCiAgICAgICAgICAgICR0aGlzLT5faWRlbnQgPSBzdWJzdHIobWQ1KG1pY3JvdGltZSgpKSwgMCwgNik7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkdGhpcy0+X2lkZW50ID0gJGlkOw0KICAgIH0NCg0KICAgICAgICAkZGVmYXVsdF9vcHRpb25zID0gYXJyYXkoDQogICAgICAgICAgICAncG9zaXRpb24nID0+ICdhYnNvbHV0ZScsDQogICAgICAgICAgICAnbGVmdCcgPT4gMTAsDQogICAgICAgICAgICAndG9wJyA9PiAyNSwNCiAgICAgICAgICAgICd3aWR0aCcgPT4gMzAwLA0KICAgICAgICAgICAgJ2hlaWdodCcgPT4gMjUsDQogICAgICAgICAgICAncGFkZGluZycgPT4gMCwNCiAgICAgICAgICAgICdtaW4nID0+IDAsDQogICAgICAgICAgICAnbWF4JyA9PiAxMDANCiAgICAgICAgKTsNCiAgICAgICAgJGFsbG93ZWRfb3B0aW9ucyA9IGFycmF5X2tleXMoJGRlZmF1bHRfb3B0aW9ucyk7DQoNCiAgICAgICAgJG9wdGlvbnMgPSBhcnJheV9tZXJnZSgkZGVmYXVsdF9vcHRpb25zLCAkb3B0aW9ucyk7DQoNCiAgICAgICAgZm9yZWFjaCgkb3B0aW9ucyBhcyAkcHJvcCA9PiAkdmFsKSB7DQogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHByb3AsICRhbGxvd2VkX29wdGlvbnMpKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPnskcHJvcH0gPSAkdmFsOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJvcHRpb24gJyRwcm9wJyBpcyBub3QgYWxsb3dlZCIsIEVfVVNFUl9XQVJOSU5HKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkdGhpcy0+X3NldFN0ZXAoMCk7DQoNCiAgICAgICAgb2JfaW1wbGljaXRfZmx1c2goMSk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogTW92ZXMgdGhlIHByb2dyZXNzIGJhciBpbiBhbGwgZGlyZWN0aW9ucyAobGVmdCwgcmlnaHQsIHVwICwgZG93bikuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJGRpcmVjdGlvbiAgICAgZmlsbCB3YXkgb2YgdGhlIHByb2dyZXNzIGJhcg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgZnVuY3Rpb24gc2V0RGlyZWN0aW9uKCRkaXJlY3Rpb24pDQogICAgew0KICAgICAgICAkdGhpcy0+ZGlyZWN0aW9uID0gJGRpcmVjdGlvbjsNCg0KICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICRiYXIgPSBvYl9nZXRfY2xlYW4oKTsNCiAgICAgICAgICAgICRwb3NpdGlvbiA9ICR0aGlzLT5fY29tcHV0ZVBvc2l0aW9uKCk7DQoNCiAgICAgICAgICAgICRjc3NUZXh0ICA9ICdsZWZ0OicgLiAkcG9zaXRpb25bJ2xlZnQnXSAuICdweDsnOw0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3RvcDonIC4gJHBvc2l0aW9uWyd0b3AnXSAuICdweDsnOw0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3dpZHRoOicgLiAkcG9zaXRpb25bJ3dpZHRoJ10gLiAncHg7JzsNCiAgICAgICAgICAgICRjc3NUZXh0IC49ICdoZWlnaHQ6JyAuICRwb3NpdGlvblsnaGVpZ2h0J10gLiAncHg7JzsNCg0KICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGJhcicsICcnLCAkY3NzVGV4dCk7DQoNCiAgICAgICAgICAgIGVjaG8gJGJhciAuIFBIUF9FT0w7DQogICAgICAgICAgICBvYl9zdGFydCgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQWRkIGEgbmV3IGxhYmVsIHRvIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJHR5cGUgICAgICAgICAgTGFiZWwgdHlwZSAodGV4dCxidXR0b24sc3RlcCxwZXJjZW50LGNyb3NzYmFyKQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkbmFtZSAgICAgICAgICBMYWJlbCBuYW1lDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICR2YWx1ZSAgICAgICAgIChvcHRpb25hbCkgZGVmYXVsdCBsYWJlbCB2YWx1ZQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgc2V0TGFiZWxBdHRyaWJ1dGVzKCksIHJlbW92ZUxhYmVsKCkNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBhZGRMYWJlbCgkdHlwZSwgJG5hbWUsICR2YWx1ZSA9ICcmbmJzcDsnKQ0KICAgIHsNCiAgICAgICAgc3dpdGNoKCR0eXBlKSB7DQogICAgICAgIGNhc2UgJ3RleHQnOg0KICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICd0eXBlJyA9PiAkdHlwZSwNCiAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR2YWx1ZSwNCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gJHRoaXMtPmxlZnQsDQogICAgICAgICAgICAgICAgJ3RvcCcgPT4gJHRoaXMtPnRvcCAtIDE2LA0KICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gMCwNCiAgICAgICAgICAgICAgICAnaGVpZ2h0JyA9PiAwLA0KICAgICAgICAgICAgICAgICdhbGlnbicgPT4gJ2xlZnQnLA0KICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLA0KICAgICAgICAgICAgICAgICdmb250LXNpemUnID0+IDExLA0KICAgICAgICAgICAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdjb2xvcicgPT4gJyMwMDAwMDAnDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2J1dHRvbic6DQogICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdID0gYXJyYXkoDQogICAgICAgICAgICAgICAgJ3R5cGUnID0+ICR0eXBlLA0KICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gJHZhbHVlLA0KICAgICAgICAgICAgICAgICdhY3Rpb24nID0+ICcnLA0KICAgICAgICAgICAgICAgICd0YXJnZXQnID0+ICdzZWxmJywNCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gJHRoaXMtPmxlZnQsDQogICAgICAgICAgICAgICAgJ3RvcCcgPT4gJHRoaXMtPnRvcCArICR0aGlzLT5oZWlnaHQgKyAxMCwNCiAgICAgICAgICAgICAgICAnd2lkdGgnID0+IDAsDQogICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gMCwNCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLA0KICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLA0KICAgICAgICAgICAgICAgICdmb250LXNpemUnID0+IDExLA0KICAgICAgICAgICAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdjb2xvcicgPT4gJyMwMDAwMDAnDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ3N0ZXAnOg0KICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICd0eXBlJyA9PiAkdHlwZSwNCiAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR2YWx1ZSwNCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gJHRoaXMtPmxlZnQgKyA1LA0KICAgICAgICAgICAgICAgICd0b3AnID0+ICR0aGlzLT50b3AgKyA1LA0KICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gMTAsDQogICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gMCwNCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdyaWdodCcsDQogICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InID0+ICd0cmFuc3BhcmVudCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScgPT4gMTEsDQogICAgICAgICAgICAgICAgJ2ZvbnQtZmFtaWx5JyA9PiAnVmVyZGFuYSwgVGFob21hLCBBcmlhbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtd2VpZ2h0JyA9PiAnbm9ybWFsJywNCiAgICAgICAgICAgICAgICAnZm9udC1zdHlsZScgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2NvbG9yJyA9PiAnIzAwMDAwMCcNCiAgICAgICAgICAgICk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAncGVyY2VudCc6DQogICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdID0gYXJyYXkoDQogICAgICAgICAgICAgICAgJ3R5cGUnID0+ICR0eXBlLA0KICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gJHZhbHVlLA0KICAgICAgICAgICAgICAgICdsZWZ0JyA9PiAkdGhpcy0+bGVmdCArICR0aGlzLT53aWR0aCAtIDUwLA0KICAgICAgICAgICAgICAgICd0b3AnID0+ICR0aGlzLT50b3AgLSAxNiwNCiAgICAgICAgICAgICAgICAnd2lkdGgnID0+IDUwLA0KICAgICAgICAgICAgICAgICdoZWlnaHQnID0+IDAsDQogICAgICAgICAgICAgICAgJ2FsaWduJyA9PiAncmlnaHQnLA0KICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLA0KICAgICAgICAgICAgICAgICdmb250LXNpemUnID0+IDExLA0KICAgICAgICAgICAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdjb2xvcicgPT4gJyMwMDAwMDAnDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2Nyb3NzYmFyJzoNCiAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV0gPSBhcnJheSgNCiAgICAgICAgICAgICAgICAndHlwZScgPT4gJHR5cGUsDQogICAgICAgICAgICAgICAgJ3ZhbHVlJyA9PiAkdmFsdWUsDQogICAgICAgICAgICAgICAgJ2xlZnQnID0+ICR0aGlzLT5sZWZ0ICsgKCR0aGlzLT53aWR0aCAvIDIpLA0KICAgICAgICAgICAgICAgICd0b3AnID0+ICR0aGlzLT50b3AgLSAxNiwNCiAgICAgICAgICAgICAgICAnd2lkdGgnID0+IDEwLA0KICAgICAgICAgICAgICAgICdoZWlnaHQnID0+IDAsDQogICAgICAgICAgICAgICAgJ2FsaWduJyA9PiAnY2VudGVyJywNCiAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicgPT4gJ3RyYW5zcGFyZW50JywNCiAgICAgICAgICAgICAgICAnZm9udC1zaXplJyA9PiAxMSwNCiAgICAgICAgICAgICAgICAnZm9udC1mYW1pbHknID0+ICdWZXJkYW5hLCBUYWhvbWEsIEFyaWFsJywNCiAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXN0eWxlJyA9PiAnbm9ybWFsJywNCiAgICAgICAgICAgICAgICAnY29sb3InID0+ICcjMDAwMDAwJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUmVtb3ZlcyBhIGxhYmVsIHRvIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJG5hbWUgICAgICAgICAgTGFiZWwgbmFtZQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgYWRkTGFiZWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHJlbW92ZUxhYmVsKCRuYW1lKQ0KICAgIHsNCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5sYWJlbFskbmFtZV0pICYmICR0aGlzLT5sYWJlbFskbmFtZV1bJ3R5cGUnXSAhPSAnYnV0dG9uJykgew0KICAgICAgICAgICAgdW5zZXQoJHRoaXMtPmxhYmVsWyRuYW1lXSk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBBZGQgYSBuZXcgYnV0dG9uIHdpdGggdGhlIHByb2dyZXNzIGJhci4NCiAgICAgKg0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkbmFtZSAgICAgICAgICBCdXR0b24gbmFtZQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkdmFsdWUgICAgICAgICBMYWJlbCB2YWx1ZQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkYWN0aW9uICAgICAgICBBY3Rpb24gdG8gZG8gKHNlZSBRVUVSWV9TVFJJTkcpDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICR0YXJnZXQgICAgICAgIChvcHRpb25hbCkgRnJhbWUgdGFyZ2V0IChkZWZhdWx0IGlzIHNlbGYpDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKiBAc2VlICAgICAgICByZW1vdmVCdXR0b24oKSwgYWRkTGFiZWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIGFkZEJ1dHRvbigkbmFtZSwgJHZhbHVlLCAkYWN0aW9uLCAkdGFyZ2V0ID0gJ3NlbGYnKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPmFkZExhYmVsKCdidXR0b24nLCAkbmFtZSwgJHZhbHVlKTsNCiAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXVsnYWN0aW9uJ10gPSAkYWN0aW9uOw0KICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdWyd0YXJnZXQnXSA9ICR0YXJnZXQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUmVtb3ZlcyBhIGJ1dHRvbiB0byB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRuYW1lICAgICAgICAgIExhYmVsIG5hbWUNCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqIEBzZWUgICAgICAgIGFkZEJ1dHRvbigpDQogICAgICovDQogICAgZnVuY3Rpb24gcmVtb3ZlQnV0dG9uKCRuYW1lKQ0KICAgIHsNCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5sYWJlbFskbmFtZV0pICYmICR0aGlzLT5sYWJlbFskbmFtZV1bJ3R5cGUnXSA9PSAnYnV0dG9uJykgew0KICAgICAgICAgICAgdW5zZXQoJHRoaXMtPmxhYmVsWyRuYW1lXSk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBCdWlsZCBhIGZyYW1lIGFyb3VuZCB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgYXJyYXkgICAgICRhdHRyaWJ1dGVzICAgIChvcHRpb25hbCkgaGFzaCBvZiBzdHlsZSBwYXJhbWV0ZXJzDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBzZXRGcmFtZUF0dHJpYnV0ZXMoJGF0dHJpYnV0ZXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICAgJGRlZmF1bHQgPSBhcnJheSgNCiAgICAgICAgICAgICdzaG93JyA9PiB0cnVlLA0KICAgICAgICAgICAgJ2xlZnQnID0+IDIwMCwNCiAgICAgICAgICAgICd0b3AnID0+IDEwMCwNCiAgICAgICAgICAgICd3aWR0aCcgPT4gMzIwLA0KICAgICAgICAgICAgJ2hlaWdodCcgPT4gOTAsDQogICAgICAgICAgICAnY29sb3InID0+ICcjQzBDMEMwJywNCiAgICAgICAgICAgICdib3JkZXItd2lkdGgnID0+IDIsDQogICAgICAgICAgICAnYm9yZGVyLXN0eWxlJyA9PiAnc29saWQnLA0KICAgICAgICAgICAgJ2JvcmRlci1jb2xvcicgPT4gJyNERkRGREYgIzQwNDA0MCAjNDA0MDQwICNERkRGREYnDQogICAgICAgICk7DQogICAgICAgICRhbGxvd2VkX29wdGlvbnMgPSBhcnJheV9rZXlzKCRkZWZhdWx0KTsNCg0KICAgICAgICAkb3B0aW9ucyA9IGFycmF5X21lcmdlKCRkZWZhdWx0LCAkYXR0cmlidXRlcyk7DQoNCiAgICAgICAgZm9yZWFjaCgkb3B0aW9ucyBhcyAkcHJvcCA9PiAkdmFsKSB7DQogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHByb3AsICRhbGxvd2VkX29wdGlvbnMpKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmZyYW1lWyRwcm9wXSA9ICR2YWw7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoImZyYW1lIG9wdGlvbiAnJHByb3AnIGlzIG5vdCBhbGxvd2VkIiwgRV9VU0VSX1dBUk5JTkcpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogRGVmaW5lcyBtYWluIHN0eWxlIG9mIGEgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgYXJyYXkgICAgICRhdHRyaWJ1dGVzICAgIChvcHRpb25hbCkgaGFzaCBvZiBzdHlsZSBwYXJhbWV0ZXJzDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBzZXRCYXJBdHRyaWJ1dGVzKCRhdHRyaWJ1dGVzID0gYXJyYXkoKSkNCiAgICB7DQogICAgICAgICRjc3NUZXh0ID0gJGNzc1RleHRfYm9yZGVyID0gJyc7DQogICAgICAgICRiYXIgID0gb2JfZ2V0X2NsZWFuKCk7DQoNCiAgICAgICAgZm9yZWFjaCAoJGF0dHJpYnV0ZXMgYXMgJGF0dHJOYW1lID0+ICRhdHRyVmFsKSB7DQogICAgICAgICAgICBpZiAoJGF0dHJOYW1lID09ICdib3JkZXItc3R5bGUnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmJvcmRlclsnc3R5bGUnXSA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgICAgICRjc3NUZXh0X2JvcmRlciAuPSAnYm9yZGVyU3R5bGU6JyAuICR0aGlzLT5ib3JkZXJbJ3N0eWxlJ10gLiAnOyc7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2JvcmRlci13aWR0aCcpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+Ym9yZGVyWyd3aWR0aCddID0gJGF0dHJWYWw7DQogICAgICAgICAgICAgICAgJGNzc1RleHRfYm9yZGVyIC49ICdib3JkZXJXaWR0aDonIC4gJHRoaXMtPmJvcmRlclsnd2lkdGgnXSAuICdweDsnOw0KDQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdib3JkZXItY29sb3InKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmJvcmRlclsnY29sb3InXSA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgICAgICRjc3NUZXh0X2JvcmRlciAuPSAnYm9yZGVyQ29sb3I6JyAuICR0aGlzLT5ib3JkZXJbJ2NvbG9yJ10gLiAnOyc7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2JhY2tncm91bmQtY29sb3InKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmJhY2tncm91bmRfY29sb3IgPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICAkY3NzVGV4dF9ib3JkZXIgLj0gJ2JhY2tncm91bmRDb2xvcjonIC4gJHRoaXMtPmJhY2tncm91bmRfY29sb3IgLiAnOyc7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2NvbG9yJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5mb3JlZ3JvdW5kX2NvbG9yID0gJGF0dHJWYWw7DQogICAgICAgICAgICAgICAgJGNzc1RleHQgLj0gJ2JhY2tncm91bmRDb2xvcjonIC4gJHRoaXMtPmZvcmVncm91bmRfY29sb3IgLiAnOyc7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgIGlmICghZW1wdHkoJGNzc1RleHRfYm9yZGVyKSkgew0KICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BicmQnLCAnJywgJGNzc1RleHRfYm9yZGVyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICghZW1wdHkoJGNzc1RleHQpKSB7DQogICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGJhcicsICcnLCAkY3NzVGV4dCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBlY2hvICRiYXIgLiBQSFBfRU9MOw0KICAgICAgICBvYl9zdGFydCgpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIERlZmluZXMgc3R5bGUgb2YgYSBwcm9ncmVzcyBiYXIgbGFiZWwuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJG5hbWUgICAgICAgICAgTGFiZWwgaWRlbnRpZmllcg0KICAgICAqIEBwYXJhbSAgICAgIGFycmF5ICAgICAkYXR0cmlidXRlcyAgICAob3B0aW9uYWwpIGhhc2ggb2Ygc3R5bGUgcGFyYW1ldGVycw0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgYWRkTGFiZWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHNldExhYmVsQXR0cmlidXRlcygkbmFtZSwgJGF0dHJpYnV0ZXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICAgJGZvbnRmYW1pbHkgPSAkZm9udHdlaWdodCA9ICcnOw0KDQogICAgICAgICRiYXIgPSBvYl9nZXRfY2xlYW4oKTsNCg0KICAgICAgICBmb3JlYWNoICgkYXR0cmlidXRlcyBhcyAkYXR0ck5hbWUgPT4gJGF0dHJWYWwpIHsNCiAgICAgICAgICAgIGlmICgkYXR0ck5hbWUgPT0gJ2NvbG9yJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2NvbG9yJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAgICAgJGNzc1RleHQgPSAnY29sb3I6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ2NvbG9yJ10gLiAnOyc7DQogICAgICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAnYmFja2dyb3VuZC1jb2xvcicpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdWydiYWNrZ3JvdW5kLWNvbG9yJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAgICAgJGNzc1RleHQgPSAnYmFja2dyb3VuZENvbG9yOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydiYWNrZ3JvdW5kLWNvbG9yJ10gLiAnOyc7DQogICAgICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAnZm9udC1zaXplJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtc2l6ZSddID0gJGZvbnQgPSAkYXR0clZhbDsNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2ZvbnQtZmFtaWx5Jykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtZmFtaWx5J10gPSAkZm9udCA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAnZm9udC13ZWlnaHQnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXVsnZm9udC13ZWlnaHQnXSA9ICRmb250ID0gJGF0dHJWYWw7DQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdmb250LXN0eWxlJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtc3R5bGUnXSA9ICRmb250ID0gJGF0dHJWYWw7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ3ZhbHVlJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ3ZhbHVlJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUxhYmVsVGV4dCgkbmFtZSwgJHRoaXMtPmxhYmVsWyRuYW1lXVsndmFsdWUnXSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdsZWZ0Jykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2xlZnQnXSA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAndG9wJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ3RvcCddID0gJGF0dHJWYWw7DQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICd3aWR0aCcpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdWyd3aWR0aCddID0gJGF0dHJWYWw7DQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdoZWlnaHQnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXVsnaGVpZ2h0J10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2FsaWduJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2FsaWduJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoaXNzZXQoJGZvbnQpKSB7DQogICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAkY3NzVGV4dCA9ICdmb250U2l6ZTonIC4gJHRoaXMtPmxhYmVsWyRuYW1lXVsnZm9udC1zaXplJ10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2ZvbnRGYW1pbHk6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtZmFtaWx5J10gLiAnOycNCiAgICAgICAgICAgICAgICAgICAgICAgICAuICdmb250V2VpZ2h0OicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydmb250LXdlaWdodCddIC4gJzsnDQogICAgICAgICAgICAgICAgICAgICAgICAgLiAnZm9udFN0eWxlOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydmb250LXN0eWxlJ10gLiAnOyc7DQoNCiAgICAgICAgICAgICAgICAkYmFyIC49ICR0aGlzLT5fY2hhbmdlRWxlbWVudFN0eWxlKCdwbGJsJywgJG5hbWUsICRjc3NUZXh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgkdGhpcy0+X3N0YXR1cyAhPSAnbmV3Jykgew0KICAgICAgICAgICAgJGNzc1RleHQgPSAndG9wOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWyd0b3AnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgICAuICdsZWZ0OicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydsZWZ0J10gLiAncHg7JzsNCg0KICAgICAgICAgICAgaWYoJHRoaXMtPmxhYmVsWyRuYW1lXVsnd2lkdGgnXSA+IDApIHsNCiAgICAgICAgICAgICAgICAkY3NzVGV4dCAuPSAnd2lkdGg6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ3dpZHRoJ10gLiAncHg7JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKCR0aGlzLT5sYWJlbFskbmFtZV1bJ2hlaWdodCddID4gMCkgew0KICAgICAgICAgICAgICAgICRjc3NUZXh0IC49ICdoZWlnaHQ6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ2hlaWdodCddIC4gJ3B4Oyc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkY3NzVGV4dCAuPSAndGV4dEFsaWduOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydhbGlnbiddIC4nOyc7DQoNCiAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgZWNobyAkYmFyIC4gUEhQX0VPTDsNCiAgICAgICAgb2Jfc3RhcnQoKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDaGFuZ2VzIG5ldyBzdGVwIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBpbnRlZ2VyICAgJHN0ZXAgICAgICAgICAgbmV3IHN0ZXAgdmFsdWUNCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIGZ1bmN0aW9uIG1vdmVTdGVwKCRzdGVwKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPl9zZXRTdGVwKCRzdGVwKTsNCiAgICAgICAgJHBvc2l0aW9uID0gJHRoaXMtPl9jb21wdXRlUG9zaXRpb24oKTsNCiAgICAgICAgJGJhciA9IG9iX2dldF9jbGVhbigpOw0KDQogICAgICAgICRjc3NUZXh0ID0gJyc7DQogICAgICAgIGlmICgkdGhpcy0+ZGlyZWN0aW9uID09ICdyaWdodCcgfHwgJHRoaXMtPmRpcmVjdGlvbiA9PSAnbGVmdCcpIHsNCiAgICAgICAgICAgIGlmICgkdGhpcy0+ZGlyZWN0aW9uID09ICdsZWZ0Jykgew0KICAgICAgICAgICAgICAgICRjc3NUZXh0IC49ICdsZWZ0OicgLiAkcG9zaXRpb25bJ2xlZnQnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3dpZHRoOicgLiAkcG9zaXRpb25bJ3dpZHRoJ10gLiAncHg7JzsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJHRoaXMtPmRpcmVjdGlvbiA9PSAndXAnIHx8ICR0aGlzLT5kaXJlY3Rpb24gPT0gJ2Rvd24nKSB7DQogICAgICAgICAgICBpZiAoJHRoaXMtPmRpcmVjdGlvbiA9PSAndXAnKSB7DQogICAgICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3RvcDonIC4gJHBvc2l0aW9uWyd0b3AnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ2hlaWdodDonIC4gJHBvc2l0aW9uWydoZWlnaHQnXSAuICdweDsnOw0KICAgICAgICB9DQogICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BiYXInLCAnJywgJGNzc1RleHQpOw0KDQogICAgICAgIGZvcmVhY2goJHRoaXMtPmxhYmVsIGFzICRuYW1lID0+ICRkYXRhKSB7DQogICAgICAgICAgICBzd2l0Y2goJGRhdGFbJ3R5cGUnXSkgew0KICAgICAgICAgICAgY2FzZSAnc3RlcCc6DQogICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUxhYmVsVGV4dCgkbmFtZSwgJHRoaXMtPl9zdGVwLicvJy4kdGhpcy0+bWF4KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ3BlcmNlbnQnOg0KICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VMYWJlbFRleHQoJG5hbWUsICR0aGlzLT5fY29tcHV0ZVBlcmNlbnQoKSAuICclJyk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICdjcm9zc2Jhcic6DQogICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUNyb3NzSXRlbSgkbmFtZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBlY2hvICRiYXIgLiBQSFBfRU9MOw0KICAgICAgICBvYl9zdGFydCgpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIENoYW5nZXMgdmFsdWUgb2YgdGhlIHByb2dyZXNzIGJhciB0byB0aGUgbmV4dCBzdGVwLg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgbW92ZVN0ZXAoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIG1vdmVOZXh0KCkNCiAgICB7DQogICAgICAgICR0aGlzLT5tb3ZlU3RlcCgkdGhpcy0+X3N0ZXAgKyAxKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDaGFuZ2VzIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIgdG8gdGhlIG1pbmltdW0gc3RlcC4NCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqIEBzZWUgICAgICAgIG1vdmVTdGVwKCkNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBtb3ZlTWluKCkNCiAgICB7DQogICAgICAgICR0aGlzLT5tb3ZlU3RlcCgkdGhpcy0+bWluKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmVzcyBiYXIgc3RydWN0dXJlIGFzIEhUTUwuDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICBzdHJpbmcNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqIEBzZWUgICAgICAgIGRpc3BsYXkoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHRvSHRtbCgpDQogICAgew0KICAgICAgICAkaHRtbCA9ICcnOw0KICAgICAgICAkanMgPSAnJzsNCg0KICAgICAgICAvLyR0aGlzLT5fc2V0U3RlcCgkdGhpcy0+X3N0ZXApOw0KICAgICAgICAkcG9zaXRpb24gPSAkdGhpcy0+X2NvbXB1dGVQb3NpdGlvbigpOw0KDQogICAgICAgICRzdHlsZV9icmQgPSAncG9zaXRpb246YWJzb2x1dGU7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3RvcDonIC4gJHRoaXMtPnRvcCAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnbGVmdDonIC4gJHRoaXMtPmxlZnQgLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3dpZHRoOicgLiAkdGhpcy0+d2lkdGggLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ2hlaWdodDonIC4gJHRoaXMtPmhlaWdodCAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnYmFja2dyb3VuZC1jb2xvcjonIC4gJHRoaXMtPmJhY2tncm91bmRfY29sb3IgLiAnOyc7DQoNCiAgICAgICAgaWYgKCR0aGlzLT5ib3JkZXJbJ3dpZHRoJ10gPiAwICkgew0KICAgICAgICAgICAgJHN0eWxlX2JyZCAuPSAnYm9yZGVyLXdpZHRoOicgLiAkdGhpcy0+Ym9yZGVyWyd3aWR0aCddIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgICAgICAgLiAgJ2JvcmRlci1zdHlsZTonIC4gJHRoaXMtPmJvcmRlclsnc3R5bGUnXSAuICc7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICAnYm9yZGVyLWNvbG9yOicgLiAkdGhpcy0+Ym9yZGVyWydjb2xvciddIC4gJzsnOw0KICAgICAgICB9DQogICAgICAgICRzdHlsZV9iYXIgPSAncG9zaXRpb246YWJzb2x1dGU7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3RvcDonIC4gJHBvc2l0aW9uWyd0b3AnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnbGVmdDonIC4gJHBvc2l0aW9uWydsZWZ0J10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3dpZHRoOicgLiAkcG9zaXRpb25bJ3dpZHRoJ10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ2hlaWdodDonIC4gJHBvc2l0aW9uWydoZWlnaHQnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnYmFja2dyb3VuZC1jb2xvcjonIC4gJHRoaXMtPmZvcmVncm91bmRfY29sb3IgLiAnOyc7DQoNCiAgICAgICAgaWYgKCR0aGlzLT5mcmFtZVsnc2hvdyddKSB7DQogICAgICAgICAgICBpZiAoJHRoaXMtPmZyYW1lWydib3JkZXItd2lkdGgnXSA+IDApIHsNCiAgICAgICAgICAgICAgICAkYm9yZGVyID0gJ2JvcmRlci13aWR0aDonIC4gJHRoaXMtPmZyYW1lWydib3JkZXItd2lkdGgnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgICAgICAuICdib3JkZXItc3R5bGU6JyAuICR0aGlzLT5mcmFtZVsnYm9yZGVyLXN0eWxlJ10gLiAnOycNCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2JvcmRlci1jb2xvcjonIC4gJHRoaXMtPmZyYW1lWydib3JkZXItY29sb3InXSAuICc7JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkdGhpcy0+cG9zaXRpb24gPT0gJ3JlbGF0aXZlJykgew0KICAgICAgICAgICAgICAgICRodG1sID0gJzxkaXYgaWQ9InRmcm0nIC4gJHRoaXMtPl9pZGVudCAuICciJw0KICAgICAgICAgICAgICAgICAgICAgIC4gJyBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dG9wOjA7bGVmdDowOyI+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAkdG9wID0gJGxlZnQgPSAwOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkdG9wID0gJHRoaXMtPmZyYW1lWyd0b3AnXTsNCiAgICAgICAgICAgICAgICAkbGVmdCA9ICR0aGlzLT5mcmFtZVsnbGVmdCddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGh0bWwgLj0gJzxkaXYgaWQ9InBmcm0nIC4gJHRoaXMtPl9pZGVudCAuJyIgc3R5bGU9IicNCiAgICAgICAgICAgICAgICAgIC4gICdwb3NpdGlvbjphYnNvbHV0ZTsnDQogICAgICAgICAgICAgICAgICAuICAndG9wOicgLiAkdG9wIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgIC4gICdsZWZ0OicgLiAkbGVmdCAuICdweDsnDQogICAgICAgICAgICAgICAgICAuICAnd2lkdGg6JyAuICR0aGlzLT5mcmFtZVsnd2lkdGgnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAuICAnaGVpZ2h0OicgLiAkdGhpcy0+ZnJhbWVbJ2hlaWdodCddIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgIC4gICRib3JkZXINCiAgICAgICAgICAgICAgICAgIC4gICdiYWNrZ3JvdW5kLWNvbG9yOicgLiAkdGhpcy0+ZnJhbWVbJ2NvbG9yJ10gLiAnOyI+Jw0KICAgICAgICAgICAgICAgICAgLiAgUEhQX0VPTDsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGlmICgkdGhpcy0+cG9zaXRpb24gPT0gJ3JlbGF0aXZlJykgew0KICAgICAgICAgICAgICAgICRodG1sID0gJzxkaXYgaWQ9InRmcm0nIC4gJHRoaXMtPl9pZGVudCAuICciJw0KICAgICAgICAgICAgICAgICAgICAgIC4gJyBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dG9wOjA7bGVmdDowOyI+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gUEhQX0VPTDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICRodG1sIC49ICc8ZGl2IGlkPSJwYnJkJy4kdGhpcy0+X2lkZW50LiciIHN0eWxlPSInLiRzdHlsZV9icmQuJyI+Jy5QSFBfRU9MOw0KICAgICAgICAkaHRtbCAuPSAnPGRpdiBpZD0icGJhcicuJHRoaXMtPl9pZGVudC4nIiBzdHlsZT0iJy4kc3R5bGVfYmFyLiciPjwvZGl2PjwvZGl2PicuUEhQX0VPTDsNCg0KICAgICAgICBmb3JlYWNoICgkdGhpcy0+bGFiZWwgYXMgJG5hbWUgPT4gJGRhdGEpIHsNCiAgICAgICAgICAgICRzdHlsZV9sYmwgPSAncG9zaXRpb246YWJzb2x1dGU7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICd0b3A6JyAuICRkYXRhWyd0b3AnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgICAgIC4gJ2xlZnQ6JyAuICRkYXRhWydsZWZ0J10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICd0ZXh0LWFsaWduOicgLiAkZGF0YVsnYWxpZ24nXSAuICc7JzsNCg0KICAgICAgICAgICAgaWYgKCRkYXRhWyd3aWR0aCddID4gMCkgew0KICAgICAgICAgICAgICAgICRzdHlsZV9sYmwgLj0gJ3dpZHRoOicgLiAkZGF0YVsnd2lkdGgnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRkYXRhWydoZWlnaHQnXSA+IDApIHsNCiAgICAgICAgICAgICAgICAkc3R5bGVfbGJsIC49ICdoZWlnaHQ6JyAuICRkYXRhWydoZWlnaHQnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHN0eWxlX2xibCAuPSAnY29sb3I6JyAuICRkYXRhWydjb2xvciddIC4nOycNCiAgICAgICAgICAgICAgICAgICAgICAgLiAgJ2ZvbnQtc2l6ZTonIC4gJGRhdGFbJ2ZvbnQtc2l6ZSddIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgICAgICAgLiAgJ2ZvbnQtZmFtaWx5OicgLiAkZGF0YVsnZm9udC1mYW1pbHknXSAuICc7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICAnZm9udC13ZWlnaHQ6JyAuICRkYXRhWydmb250LXdlaWdodCddIC4gJzsnOw0KDQogICAgICAgICAgICBpZiAoJGRhdGFbJ2JhY2tncm91bmQtY29sb3InXSAhPSAnJykgew0KICAgICAgICAgICAgICAgICRzdHlsZV9sYmwgLj0gJ2JhY2tncm91bmQtY29sb3I6JyAuICRkYXRhWydiYWNrZ3JvdW5kLWNvbG9yJ10gLiAnOyc7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN3aXRjaCgkZGF0YVsndHlwZSddKSB7DQogICAgICAgICAgICBjYXNlICdidXR0b24nOg0KICAgICAgICAgICAgICAgICRodG1sIC49ICc8ZGl2PjxpbnB1dCBpZD0icGxibCcgLiAkbmFtZSAuICR0aGlzLT5faWRlbnQNCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiB0eXBlPSJidXR0b24iIHZhbHVlPSInIC4gJGRhdGFbJ3ZhbHVlJ10NCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiBzdHlsZT0iJyAuICRzdHlsZV9sYmwNCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiBvbmNsaWNrPSInIC4gJGRhdGFbJ3RhcmdldCddDQogICAgICAgICAgICAgICAgICAgICAgLiAgJy5sb2NhdGlvbi5ocmVmPVwnJyAuICRkYXRhWydhY3Rpb24nXSAuICdcJyIgLz48L2Rpdj4nDQogICAgICAgICAgICAgICAgICAgICAgLiAgUEhQX0VPTDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ3N0ZXAnOg0KICAgICAgICAgICAgICAgICRodG1sIC49ICc8ZGl2IGlkPSJwbGJsJyAuICRuYW1lIC4gJHRoaXMtPl9pZGVudA0KICAgICAgICAgICAgICAgICAgICAgIC4gICciIHN0eWxlPSInIC4gJHN0eWxlX2xibCAuICciPicNCiAgICAgICAgICAgICAgICAgICAgICAuICAkdGhpcy0+X3N0ZXANCiAgICAgICAgICAgICAgICAgICAgICAuICAnPC9kaXY+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gIFBIUF9FT0w7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICdwZXJjZW50JzoNCiAgICAgICAgICAgICAgICAkaHRtbCAuPSAnPGRpdiBpZD0icGxibCcgLiAkbmFtZSAuICR0aGlzLT5faWRlbnQNCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiBzdHlsZT0iJyAuICRzdHlsZV9sYmwgLiAnIj4nDQogICAgICAgICAgICAgICAgICAgICAgLiAgJHRoaXMtPl9jb21wdXRlUGVyY2VudCgpIC4gJyUnDQogICAgICAgICAgICAgICAgICAgICAgLiAgJzwvZGl2PicNCiAgICAgICAgICAgICAgICAgICAgICAuICBQSFBfRU9MOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAndGV4dCc6DQogICAgICAgICAgICBjYXNlICdjcm9zc2Jhcic6DQogICAgICAgICAgICAgICAgJGh0bWwgLj0gJzxkaXYgaWQ9InBsYmwnIC4gJG5hbWUgLiAkdGhpcy0+X2lkZW50DQogICAgICAgICAgICAgICAgICAgICAgLiAgJyIgc3R5bGU9IicgLiAkc3R5bGVfbGJsIC4gJyI+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gICRkYXRhWyd2YWx1ZSddDQogICAgICAgICAgICAgICAgICAgICAgLiAgJzwvZGl2PicNCiAgICAgICAgICAgICAgICAgICAgICAuICBQSFBfRU9MOw0KICAgICAgICAgICAgICAgIGlmICgkZGF0YVsndHlwZSddID09ICdjcm9zc2JhcicpIHsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICdmdW5jdGlvbiBzZXRSb3RhcnlDcm9zcycuJG5hbWUuJHRoaXMtPl9pZGVudC4nKCkgeycuUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgY3Jvc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxibCcuJG5hbWUuJHRoaXMtPl9pZGVudC4nIikuZmlyc3RDaGlsZC5ub2RlVmFsdWU7Jy5QSFBfRU9MOw0KICAgICAgICAgICAgICAgICAgICAkanMgLj0gJyBzd2l0Y2goY3Jvc3MpIHsnLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnICBjYXNlICItLSI6IGNyb3NzID0gIlxcXFwiOyBicmVhazsnLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnICBjYXNlICJcXFxcIjogY3Jvc3MgPSAifCI7IGJyZWFrOycuUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgIGNhc2UgInwiOiBjcm9zcyA9ICIvIjsgYnJlYWs7Jy5QSFBfRU9MOw0KICAgICAgICAgICAgICAgICAgICAkanMgLj0gJyAgZGVmYXVsdDogY3Jvc3MgPSAiLS0iOyBicmVhazsnLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIH0nLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGJsJy4kbmFtZS4kdGhpcy0+X2lkZW50LiciKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IGNyb3NzOycuUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICd9Jy5QSFBfRU9MOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChjb3VudCgkdGhpcy0+bGFiZWwpID4gMCkgew0KICAgICAgICAgICAgJGpzIC49ICdmdW5jdGlvbiBzZXRMYWJlbFRleHQnLiR0aGlzLT5faWRlbnQuJyhuYW1lLHRleHQpIHsnLlBIUF9FT0w7DQogICAgICAgICAgICAkanMgLj0gJyBuYW1lID0gInBsYmwiICsgbmFtZSArICInLiR0aGlzLT5faWRlbnQuJyI7Jy5QSFBfRU9MOw0KICAgICAgICAgICAgJGpzIC49ICcgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSkuZmlyc3RDaGlsZC5ub2RlVmFsdWU9dGV4dDsnLlBIUF9FT0w7DQogICAgICAgICAgICAkanMgLj0gJ30nLlBIUF9FT0w7DQogICAgICAgIH0NCg0KICAgICAgICAkanMgLj0gJ2Z1bmN0aW9uIHNldEVsZW1lbnRTdHlsZScuJHRoaXMtPl9pZGVudC4nKHByZWZpeCxuYW1lLHN0eWxlcykgeycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgbmFtZSA9IHByZWZpeCArIG5hbWUgKyAiJy4kdGhpcy0+X2lkZW50LiciOycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgc3R5bGVzID0gc3R5bGVzLnNwbGl0KCI7Iik7Jy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyBzdHlsZXMucG9wKCk7Jy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyBmb3IodmFyIGk9MDsgaTxzdHlsZXMubGVuZ3RoOyBpKyspJy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyB7Jy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyAgIHMgPSBzdHlsZXNbaV0uc3BsaXQoIjoiKTsnLlBIUF9FT0w7DQogICAgICAgICRqcyAuPSAnICAgYyA9ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKS5zdHlsZS4iK3NbMF0rIj1cIiIrc1sxXSsiXCIiOycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgICBldmFsKGMpOycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgfScuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICd9Jy5QSFBfRU9MOw0KDQogICAgICAgIGlmICgkdGhpcy0+ZnJhbWVbJ3Nob3cnXSkgew0KICAgICAgICAgICAgJGh0bWwgLj0gJzwvZGl2PicuUEhQX0VPTDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJHRoaXMtPnBvc2l0aW9uID09ICdyZWxhdGl2ZScpIHsNCiAgICAgICAgICAgICRodG1sIC49ICc8L2Rpdj4nLlBIUF9FT0w7DQogICAgICAgIH0NCg0KICAgICAgICAkaHRtbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPicuUEhQX0VPTDsNCiAgICAgICAgJGh0bWwgLj0gJGpzOw0KICAgICAgICAkaHRtbCAuPSAnPC9zY3JpcHQ+Jy5QSFBfRU9MOw0KDQogICAgICAgIHJldHVybiAkaHRtbDsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBTaG93IHRoZSByZW5kZXJzIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKiBAc2VlICAgICAgICB0b0h0bWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIGRpc3BsYXkoKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPl9zdGF0dXMgPSAnc2hvdyc7DQogICAgICAgIGVjaG8gJHRoaXMtPnRvSHRtbCgpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIEhpZGVzIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBoaWRlKCkNCiAgICB7DQogICAgICAgIGlmICgkdGhpcy0+X3N0YXR1cz09J3Nob3cnKSB7DQogICAgICAgICAgICAkdGhpcy0+X3N0YXR1cyA9ICdoaWRlJzsNCiAgICAgICAgICAgICR0aGlzLT5faGlkZSgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2hvd3MgYSBwcm9ncmVzcyBiYXIgaGlkZGVuLg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgZnVuY3Rpb24gc2hvdygpDQogICAgew0KICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXM9PSdoaWRlJykgew0KICAgICAgICAgICAgJHRoaXMtPl9zdGF0dXMgPSAnc2hvdyc7DQogICAgICAgICAgICAkdGhpcy0+X2hpZGUoKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNob3cgb3IgSGlkZSBhIHByb2dyZXNzIGJhciBkZXBlbmRpbmcgb2YgaXRzIGN1cnJlbnQgc3RhdHVzLg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHJpdmF0ZQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIF9oaWRlKCkNCiAgICB7DQogICAgICAgIGlmICgkdGhpcy0+X3N0YXR1cyA9PSAnaGlkZScpIHsNCiAgICAgICAgICAgICRjc3NUZXh0ID0gJ3Zpc2liaWxpdHk6aGlkZGVuOyc7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkY3NzVGV4dCA9ICd2aXNpYmlsaXR5OnZpc2libGU7JzsNCiAgICB9DQogICAgICAgICRiYXIgID0gb2JfZ2V0X2NsZWFuKCk7DQoNCiAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGJyZCcsICcnLCAkY3NzVGV4dCk7DQogICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BiYXInLCAnJywgJGNzc1RleHQpOw0KDQogICAgICAgIGlmICgkdGhpcy0+ZnJhbWVbJ3Nob3cnXSkgew0KICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGZybScsICcnLCAkY3NzVGV4dCk7DQogICAgICAgIH0NCiAgICAgICAgZm9yZWFjaCgkdGhpcy0+bGFiZWwgYXMgJG5hbWUgPT4gJGRhdGEpIHsNCiAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgZWNobyAkYmFyIC4gUEhQX0VPTDsNCiAgICAgICAgb2Jfc3RhcnQoKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDYWxjdWxhdGUgdGhlIGN1cnJlbnQgcGVyY2VudCBvZiBwcm9ncmVzcy4NCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIGludGVnZXINCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfY29tcHV0ZVBlcmNlbnQoKQ0KICAgIHsNCiAgICAgICAgJHBlcmNlbnQgPSByb3VuZCgoJHRoaXMtPl9zdGVwIC0gJHRoaXMtPm1pbikgLyAoJHRoaXMtPm1heCAtICR0aGlzLT5taW4pICogMTAwKTsNCiAgICAgICAgaWYgKCRwZXJjZW50ID4gMTAwKSB7DQogICAgICAgICAgICAkcGVyY2VudCA9IDEwMDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJHBlcmNlbnQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQ2FsY3VsYXRlIHRoZSBuZXcgcG9zaXRpb24gaW4gcGl4ZWwgb2YgdGhlIHByb2dyZXNzIGJhciB2YWx1ZS4NCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfY29tcHV0ZVBvc2l0aW9uKCkNCiAgICB7DQogICAgICAgIHN3aXRjaCAoJHRoaXMtPmRpcmVjdGlvbikgew0KICAgICAgICBjYXNlICdyaWdodCc6DQogICAgICAgIGNhc2UgJ2xlZnQnOg0KICAgICAgICAgICAgJGJhciA9ICR0aGlzLT53aWR0aDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkb3duJzoNCiAgICAgICAgY2FzZSAndXAnOg0KICAgICAgICAgICAgJGJhciA9ICR0aGlzLT5oZWlnaHQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAkcGl4ZWwgPSByb3VuZCggICgkdGhpcy0+X3N0ZXAgLSAkdGhpcy0+bWluKSAqICgkYmFyIC0gKCR0aGlzLT5wYWRkaW5nICogMikpDQogICAgICAgICAgICAgICAgICAgICAgIC8gKCR0aGlzLT5tYXggLSAkdGhpcy0+bWluKSApOw0KICAgICAgICBpZiAoJHRoaXMtPl9zdGVwIDw9ICR0aGlzLT5taW4pIHsNCiAgICAgICAgICAgICRwaXhlbCA9IDA7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCR0aGlzLT5fc3RlcCA+PSAkdGhpcy0+bWF4KSB7DQogICAgICAgICAgICAkcGl4ZWwgPSAkYmFyIC0gKCR0aGlzLT5wYWRkaW5nICogMik7DQogICAgICAgIH0NCg0KICAgICAgICBzd2l0Y2ggKCR0aGlzLT5kaXJlY3Rpb24pIHsNCiAgICAgICAgY2FzZSAncmlnaHQnOg0KICAgICAgICAgICAgJHBvc2l0aW9uWydsZWZ0J10gPSAkdGhpcy0+cGFkZGluZzsNCiAgICAgICAgICAgICRwb3NpdGlvblsndG9wJ10gPSAkdGhpcy0+cGFkZGluZzsNCiAgICAgICAgICAgICRwb3NpdGlvblsnd2lkdGgnXSA9ICRwaXhlbDsNCiAgICAgICAgICAgICRwb3NpdGlvblsnaGVpZ2h0J10gPSAkdGhpcy0+aGVpZ2h0IC0gKCR0aGlzLT5wYWRkaW5nICogMik7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnbGVmdCc6DQogICAgICAgICAgICAkcG9zaXRpb25bJ2xlZnQnXSA9ICR0aGlzLT53aWR0aCAtICR0aGlzLT5wYWRkaW5nIC0gJHBpeGVsOw0KICAgICAgICAgICAgJHBvc2l0aW9uWyd0b3AnXSA9ICR0aGlzLT5wYWRkaW5nOw0KICAgICAgICAgICAgJHBvc2l0aW9uWyd3aWR0aCddID0gJHBpeGVsOw0KICAgICAgICAgICAgJHBvc2l0aW9uWydoZWlnaHQnXSA9ICR0aGlzLT5oZWlnaHQgLSAoJHRoaXMtPnBhZGRpbmcgKiAyKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkb3duJzoNCiAgICAgICAgICAgICRwb3NpdGlvblsnbGVmdCddID0gJHRoaXMtPnBhZGRpbmc7DQogICAgICAgICAgICAkcG9zaXRpb25bJ3RvcCddID0gJHRoaXMtPnBhZGRpbmc7DQogICAgICAgICAgICAkcG9zaXRpb25bJ3dpZHRoJ10gPSAkdGhpcy0+d2lkdGggLSAoJHRoaXMtPnBhZGRpbmcgKiAyKTsNCiAgICAgICAgICAgICRwb3NpdGlvblsnaGVpZ2h0J10gPSAkcGl4ZWw7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAndXAnOg0KICAgICAgICAgICAgJHBvc2l0aW9uWydsZWZ0J10gPSAkdGhpcy0+cGFkZGluZzsNCiAgICAgICAgICAgICRwb3NpdGlvblsndG9wJ10gPSAkdGhpcy0+aGVpZ2h0IC0gJHRoaXMtPnBhZGRpbmcgLSAkcGl4ZWw7DQogICAgICAgICAgICAkcG9zaXRpb25bJ3dpZHRoJ10gPSAkdGhpcy0+d2lkdGggLSAoJHRoaXMtPnBhZGRpbmcgKiAyKTsNCiAgICAgICAgICAgICRwb3NpdGlvblsnaGVpZ2h0J10gPSAkcGl4ZWw7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJHBvc2l0aW9uOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNldHMgdGhlIG5ldyBzdGVwIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBpbnRlZ2VyICAgJHN0ZXAgICAgICAgICAgbmV3IHN0ZXAgdmFsdWUNCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfc2V0U3RlcCgkc3RlcCkNCiAgICB7DQogICAgICAgIGlmKCRzdGVwID4gJHRoaXMtPm1heCkgew0KICAgICAgICAgICAgJHN0ZXAgPSAkdGhpcy0+bWF4Ow0KICAgICAgICB9DQogICAgICAgIGlmKCRzdGVwIDwgJHRoaXMtPm1pbikgew0KICAgICAgICAgICAgJHN0ZXAgPSAkdGhpcy0+bWluOw0KICAgICAgICB9DQogICAgICAgICR0aGlzLT5fc3RlcCA9ICRzdGVwOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNlbmRzIGEgRE9NIGNvbW1hbmQgKGVtdWxhdGUgY3NzVGV4dCBhdHRyaWJ1dGUpIHRocm91Z2ggYSBqYXZhc2NyaXB0IGZ1bmN0aW9uDQogICAgICogdG8gY2hhbmdlIHN0eWxlcyBvZiBhIHByb2dyZXNzIGJhcidzIGVsZW1lbnQuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJHByZWZpeCAgICAgICAgcHJlZml4IGlkZW50aWZpZXIgb2YgdGhlIGVsZW1lbnQNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJGVsZW1lbnQgICAgICAgZWxlbWVudCBuYW1lIChsYWJlbCBpZC4pDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRzdHlsZXMgICAgICAgIHN0eWxlcyBvZiBhIERPTSBlbGVtZW50DQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICBzdHJpbmcNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfY2hhbmdlRWxlbWVudFN0eWxlKCRwcmVmaXgsICRlbGVtZW50LCAkc3R5bGVzKQ0KICAgIHsNCiAgICAgICAgJGNtZCA9ICc8c2NyaXB0IHR5cGU9InRleHQvSmF2YVNjcmlwdCI+Jw0KICAgICAgICAgICAgIC4gJ3NldEVsZW1lbnRTdHlsZScgLiAkdGhpcy0+X2lkZW50DQogICAgICAgICAgICAgLiAnKCInIC4gJHByZWZpeCAuICciLCInIC4gJGVsZW1lbnQgLiAnIiwiJyAuICRzdHlsZXMgLiAnIik7Jw0KICAgICAgICAgICAgIC4gJzwvc2NyaXB0Pic7DQoNCiAgICAgICAgcmV0dXJuICRjbWQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2VuZHMgYSBET00gY29tbWFuZCAoZW11bGF0ZSBmaXJzdENoaWxkLm5vZGVWYWx1ZSkgdGhyb3VnaCBhIGphdmFzY3JpcHQgZnVuY3Rpb24NCiAgICAgKiB0byBjaGFuZ2UgbGFiZWwgdmFsdWUgb2YgYSBwcm9ncmVzcyBiYXIncyBlbGVtZW50Lg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRlbGVtZW50ICAgICAgIGVsZW1lbnQgbmFtZSAobGFiZWwgaWQuKQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkdGV4dCAgICAgICAgICBlbGVtZW50IHZhbHVlIChsYWJlbCBjb250ZW50KQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwcml2YXRlDQogICAgICovDQogICAgZnVuY3Rpb24gX2NoYW5nZUxhYmVsVGV4dCgkZWxlbWVudCwgJHRleHQpDQogICAgew0KICAgICAgICAkY21kID0gJzxzY3JpcHQgdHlwZT0idGV4dC9KYXZhU2NyaXB0Ij4nDQogICAgICAgICAgICAgLiAnc2V0TGFiZWxUZXh0JyAuICR0aGlzLT5faWRlbnQNCiAgICAgICAgICAgICAuICcoIicgLiAkZWxlbWVudCAuICciLCInIC4gJHRleHQgLiAnIik7Jw0KICAgICAgICAgICAgIC4gJzwvc2NyaXB0Pic7DQoNCiAgICAgICAgcmV0dXJuICRjbWQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2VuZHMgYSBET00gY29tbWFuZCB0aHJvdWdoIGEgamF2YXNjcmlwdCBmdW5jdGlvbg0KICAgICAqIHRvIGNoYW5nZSB0aGUgbmV4dCBmcmFtZSBhbmltYXRpb24gb2YgYSBjcm9zcyBiYXIncyBlbGVtZW50Lg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRlbGVtZW50ICAgICAgIGVsZW1lbnQgbmFtZSAoY3Jvc3MgaWQuKQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwcml2YXRlDQogICAgICovDQogICAgZnVuY3Rpb24gX2NoYW5nZUNyb3NzSXRlbSgkZWxlbWVudCkNCiAgICB7DQogICAgICAgICRjbWQgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPicNCiAgICAgICAgICAgICAuICdzZXRSb3RhcnlDcm9zcycgLiAkZWxlbWVudCAuICR0aGlzLT5faWRlbnQgLiAnKCk7Jw0KICAgICAgICAgICAgIC4gJzwvc2NyaXB0Pic7DQoNCiAgICAgICAgcmV0dXJuICRjbWQ7DQogICAgfQ0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZWV4dGVuc2lvbnMnLCdqcGcscG5nLGdpZicpOwokdGhpcy0+UmVzZXRFcnJvclRlbXBsYXRlKCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiR0aGlzLT5SZXNldEVycm9yVGVtcGxhdGUoKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/states.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QUwsQWxhYmFtYQpBSyxBbGFza2EKQVMsQW1lcmljYW4gU2Ftb2EKQVosQXJpem9uYQpBUixBcmthbnNhcwpDQSxDYWxpZm9ybmlhCkNPLENvbG9yYWRvCkNULENvbm5lY3RpY3V0CkRFLERlbGF3YXJlCkRDLERpc3RyaWN0IG9mIENvbHVtYmlhCkZNLEZlZC4gU3RhdGVzIG9mIE1pY3JvbmVzaWEKRkwsRmxvcmlkYQpHQSxHZW9yZ2lhCkdVLEd1YW0KSEksSGF3YWlpCklELElkYWhvCklMLElsbGlub2lzCklOLEluZGlhbmEKSUEsSW93YQpLUyxLYW5zYXMKS1ksS2VudHVja3kKTEEsTG91aXNpYW5hCk1FLE1haW5lCk1ILE1hcnNoYWxsIElzbGFuZHMKTUQsTWFyeWxhbmQKTUEsTWFzc2FjaHVzZXR0cwpNSSxNaWNoaWdhbgpNTixNaW5uZXNvdGEKTVMsTWlzc2lzc2lwcGkKTU8sTWlzc291cmkKTVQsTW9udGFuYQpORSxOZWJyYXNrYQpOVixOZXZhZGEKTkgsTmV3IEhhbXBzaGlyZQpOSixOZXcgSmVyc2V5Ck5NLE5ldyBNZXhpY28KTlksTmV3IFlvcmsKTkMsTm9ydGggQ2Fyb2xpbmEKTkQsTm9ydGggRGFrb3RhCk1QLE5vcnRoZXJuIE1hcmlhbmEgSXMuCk9ILE9oaW8KT0ssT2tsYWhvbWEKT1IsT3JlZ29uClBXLFBhbGF1ClBBLFBlbm5zeWx2YW5pYQpQUixQdWVydG8gUmljbwpSSSxSaG9kZSBJc2xhbmQKU0MsU291dGggQ2Fyb2xpbmEKU0QsU291dGggRGFrb3RhClROLFRlbm5lc3NlZQpUWCxUZXhhcwpVVCxVdGFoClZULFZlcm1vbnQKVkEsVmlyZ2luaWEKVkksVmlyZ2luIElzbGFuZHMKV0EsV2FzaGluZ3RvbgpXVixXZXN0IFZpcmdpbmlhCldJLFdpc2NvbnNpbgpXWSxXeW9taW5nCkFCLEFsYmVydGEKQkMsQnJpdGlzaCBDb2x1bWJpYQpNQixNYW5pdG9iYQpOQixOZXcgQnJ1bnN3aWNrCk5GLE5ld2ZvdW5kbGFuZApOVCxOb3J0aHdlc3QgVGVycml0b3JpZXMKTlMsTm92YSBTY290aWEKT04sT250YXJpbwpQRSxQcmluY2UgRWR3YXJkIElzbGFuZApRQyxRdWViZWMKU0ssU2Fza2F0Y2hld2FuCllULFl1a29u]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWRtaW4gcGFuZWwgdGVtcGxhdGUgKn0KeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pbWFnZWV4dGVuc2lvbnN9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaW1hZ2VleHRlbnNpb25zfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90ZW1wbGF0ZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fSZuYnNwO3skcmVzZXR9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9Jm5ic3A7eyRyZXNldH08L3A+CiAgPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editdefaulttemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8aDQ+eyRkZWZhdWx0dGVtcGxhdGVmb3JtX3RpdGxlfTwvaDQ+CiAgICAgICAgPGVtPnskaW5mb190aXRsZX08L2VtPjxici8+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RlbXBsYXRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JHJlc2V0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cjxici8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGgzPnskdGl0bGV9PC9oMz4KPC9kaXY+CnskZm9ybXN0YXJ0fXskaGlkZGVufQp7aWYgaXNzZXQoJHRlbXBsYXRlX2luZm8pfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIHskdGVtcGxhdGVfaW5mb30KPC9kaXY+CnsvaWZ9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZW5hbWV9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRlbXBsYXRlbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGV9OjwvcD4KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskdGVtcGxhdGV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskc3VibWl0fXskY2FuY2VsfXskYXBwbHl9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/listtemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aCB3aWR0aD0iNzUlIj57JG5hbWVwcm9tcHR9PC90aD4KICAgICAgPHRoPnskZGVmYXVsdHByb21wdH08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgPHRkPnskZW50cnktPmRlZmF1bHR9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgogICA8L3RyPgp7L2ZvcmVhY2h9CjwvdGFibGU+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXd0ZW1wbGF0ZWxpbmt9PC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_error_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZ2luYWwgdGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgZnJvbnRlbmQgZXJyb3JzICp9CjxkaXYgY2xhc3M9InskY2dfZXJyb3JjbGFzc30iPnskY2dfZXJyb3Jtc2d9PC9kaXY+]]></data>
	</file>
</module>
