<?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>SisowGateway</name>
	<version>1.0.0</version>
    <mincmsversion>1.12.1</mincmsversion>
	<help><![CDATA[PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DR0V4dGVuc2lvbnMgPSZndDsgMS41MzwvbGk+PGxpPkNHUGF5bWVudEdhdGV3YXlCYXNlID0mZ3Q7IDEuNjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSZWludCB2YW4gZGVyIExhYW4gJmx0O2pAbnRpbm8uaXQmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wLjA8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48c3Ryb25nPk1vZHVsZSBtYWRlIHBvc3NpYmxlIGFuZCBtYWpvciB0aGFua3MgdG86PC9zdHJvbmc+Cjx1bD4KCiAgICAgPGxpPlRpbSBkZSBidXVybWFuICg8YSBocmVmPSJodHRwczovL25leHRkb29ybWVkaWEubmwiPk5leHREb29yTWVkaWE8L2E+KTwvbGk+CgkgPGxpPlRpbW8gKDxhIGhyZWY9Imh0dHA6Ly93ZWJkZXNpZ25oZWVnLm5sIj5XZWJkZXNpZ24gSGVlZzwvYT4pPC9saT4KCSAKPC91bD4KCjx1bD4KICA8bGk+VmVyc2lvbiAxLjAgLSAxNyBKYW51YXJ5IDIwMTcgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+VXBkYXRlIHRvIHdvcmsgd2l0aCBlQ29tbWVyY2VCYXNlIDEuNiBhbmQgd2l0aCBDTVNNUyAyLjA8L2xpPgoJIDxsaT5BZGRlZCBmb3JtIHRlbXBsYXRlPC9saT4KCSA8bGk+QWRkZWQgbWFpbCB0ZW1wbGF0ZTwvbGk+CgkgPGxpPkFkZGVkIG11bHRpc2hvcCBvcHRpb248L2xpPgogICA8L3VsPgogPC9saT4KICA8bGk+VmVyc2lvbiAwLjUuNiAtIDMwIE1hcmNoIDIwMTUgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+VGVzdGVkIHdpdGggQ01TTVMgMi4wPC9saT4KCSA8bGk+QWRkZWQgQWZ0ZXJwYXkgZnVuY3Rpb248L2xpPgoJIDxsaT5BZGRlZCBTaXNvdyBjYWxsYmFjayBmdW5jdGlvbjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS41IC0gMjUgTm92ZW1iZXIgMjAxNCAtIEphbnRpbm8KICAgPHVsPgogICAgIDxsaT5maXJzdCBpbXBsZW1lbnRhdGlvbiAtIEtsYXJuYSBvcHRpb24gKGJldGFsaW5nIGFjaHRlcmFmIC8gYWNjZXB0Z2lybykgLSBub3Qgd29ya2luZyE8L2xpPgoJIDxsaT5BZGRlZCAibGFiZWwgZm9yIiBhdHRyaWJ1dGVzIGZvciBiZXRlciBzZWxlY3RpbmcgcGF5bWVudCBmb3JtPC9saT4KICAgPC91bD4KIDwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjIgLSAyMyBTZXB0ZW1iZXIgMjAxNCAtIEphbnRpbm8KICAgPHVsPgogICAgIDxsaT5BZGRlZCBDcmVkaXRjYXJkIG9wdGlvbnM8L2xpPgogICA8L3VsPgogPC9saT4KICA8bGk+VmVyc2lvbiAwLjUuMSAtIDE5IE9jdG9iZXIgMjAxMiAtIEphbnRpbm8KICAgPHVsPgogICAgIDxsaT5CdWdmaXgsIG5vdyBkaXNwbGF5cyBpbnZvaWNlIG51bWJlciBhbmQgc2hvcG5hbWUoYXMgZW50ZXJlZCBhdCBlY29tbWVyY2ViYXNlKSBhcyB0cmFuc2FjdGlvbiBkZXNjcmlwdGlvbjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMC41LjAgLSAxMCBPY3RvYmVyIDIwMTIgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+QWxsIGN1cnJlbnQgcGF5bWVudCBtZXRob2RzIG9mIFNpc293IGltcGxlbWVudGVkOjxiciAvPgoJCWlEZWFsIDxiciAvPgoJCURJUkVDVGViYW5raW5nPGJyIC8+CgkJTWlzdGVyQ2FzaDxiciAvPgoJCVdlYlNob3AgR2lmdENhcmQ8YnIgLz4KCQlQb2RpdW0gQ2FkZWF1a2FhcnQ8YnIgLz4KCQlQYXlwYWwgb2YgY3JlZGl0Y2FyZAoJPC9saT4KCTxsaT5PcHRpb24gZm9yIGpxdWVyeXNjcmlwdCB0byBoaWRlIGJhbmtsaXN0IHVudGlsbCBpZGVhbCBpcyBjaG9zZW4gYXMgcGF5bWVudCBtZXRob2QuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAwLjQuMCAtIDUgT2N0b2JlciAyMDEyIC0gSmFudGlubwogICA8dWw+CiAgICAgPGxpPkluaXRpYWwgdmVyc2lvbi4gQ29tcGF0aWJsZSB3aXRoIENNU01TIDEuMTEuMTwvbGk+CiAgIDwvdWw+CiA8L2xpPgogIAo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[Part of the E-Commerce collection, this module provides iDeal, Paypal and Giftcards payments for Sisow Payment Gateways]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGPaymentGatewayBase</requiredname>
	  <requiredversion>1.6</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_email.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE9yZGVycyAtIEEgc2ltcGxlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlLgojIFZlcnNpb246IDEuMCwgY2FsZ3V5MTAwMCA8Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gZXZlcnkgcGFnZSBvZgojIGl0cyBhZG1pbiBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLCBhbmQKIyBwcm92aWRlIGEgbGluayB0byB0aGUgQ01TIE1hZGUgU2ltcGxlIHdlYnNpdGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJykpOwogICAgcmV0dXJuOwogIH0KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ21haWwnKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ21haWxzdWJqZWN0J10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWFpbHN1YmplY3QnLHRyaW0oJHBhcmFtc1snbWFpbHN1YmplY3QnXSkpOwogIH0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZsYXRSYXRlU2hpcHBpbmcgLSBBIHNpbXBsZSBzaGlwcGluZyBtb2R1bGUgZm9yIENhcnQKIyBWZXJzaW9uOiAxLjAsIGNhbGd1eTEwMDAgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKTsKICAgIHJldHVybjsKICB9CgokdGhpcy0+U2V0Q3VycmVudFRhYignc2V0dGluZ3MnKTsKCmlmKCAhaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiAgJE1lcmNoYW50SUQgPSAkX1BPU1RbJGlkLiJpbnB1dF9NZXJjaGFudElEIl07CiAgJE1lcmNoYW50S2V5ID0gJF9QT1NUWyRpZC4iaW5wdXRfTWVyY2hhbnRLZXkiXTsKICAkU2hvcElkID0gJF9QT1NUWyRpZC4iaW5wdXRfU2hvcElkIl07CiAgJHRlc3Rtb2RlID0gJF9QT1NUWyRpZC4iaW5wdXRfdGVzdG1vZGUiXTsKICAkc29mb3J0ID0gJF9QT1NUWyRpZC4iaW5wdXRfc29mb3J0Il07CiAgJG1pc3RlcmNhc2ggPSAkX1BPU1RbJGlkLiJpbnB1dF9taXN0ZXJjYXNoIl07CiAgJHdlYnNob3AgPSAkX1BPU1RbJGlkLiJpbnB1dF93ZWJzaG9wIl07CiAgJHBvZGl1bSA9ICRfUE9TVFskaWQuImlucHV0X3BvZGl1bSJdOwogICRwYXlwYWxlYyA9ICRfUE9TVFskaWQuImlucHV0X3BheXBhbGVjIl07CiAgJGNyZWRpdGNhcmRzID0gJF9QT1NUWyRpZC4iaW5wdXRfY3JlZGl0Y2FyZHMiXTsKICAka2xhcm5hID0gJF9QT1NUWyRpZC4iaW5wdXRfa2xhcm5hIl07CiAgJGpxdWVyeSA9ICRfUE9TVFskaWQuImlucHV0X2pxdWVyeSJdOwogICRjb21wbGV0ZV91cmwgPSAkX1BPU1RbJGlkLiJpbnB1dF9jb21wbGV0ZV91cmwiXTsKICAkY2FuY2VsX3VybCA9ICRfUE9TVFskaWQuImlucHV0X2NhbmNlbF91cmwiXTsKLy8gCi8vIFNhdmUgdGhlIGRhdGEKLy8KCgkKICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Npc293Z2F0ZXdheSc7CiAgICAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwoKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Npc293Z2F0ZXdheQogICAgICAgICAgICAgICAgKE1lcmNoYW50SUQsIE1lcmNoYW50S2V5LCBTaG9wSWQsIHRlc3Rtb2RlLCBzb2ZvcnQsIG1pc3RlcmNhc2gsIHdlYnNob3AsIHBvZGl1bSwgcGF5cGFsZWMsIGpxdWVyeSwgY3JlZGl0Y2FyZHMsIGtsYXJuYSwgY29tcGxldGVfdXJsLCBjYW5jZWxfdXJsKSBWQUxVRVMKIAkJCQkoIicuJE1lcmNoYW50SUQuJyIsIicuJE1lcmNoYW50S2V5LiciLCInLiRTaG9wSWQuJyIsIicuJHRlc3Rtb2RlLiciLCInLiRzb2ZvcnQuJyIsIicuJG1pc3RlcmNhc2guJyIsIicuJHdlYnNob3AuJyIsIicuJHBvZGl1bS4nIiwiJy4kcGF5cGFsZWMuJyIsIicuJGpxdWVyeS4nIiwiJy4kY3JlZGl0Y2FyZHMuJyIsIicuJGtsYXJuYS4nIiwiJy4kY29tcGxldGVfdXJsLiciLCInLiRjYW5jZWxfdXJsLiciKSc7CgkKCSRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vDQojICAgICAgICAgKGluZm9AamFudGluby5ubCkNCiMNCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2Vzcw0KIyAgU2lzb3cgKGlkZWFsLCBwYXlwYWwsIGdpZnRjYXJkcykgUGF5bWVudHMgZ2F0ZXdheS4NCiMNCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLg0KIyBBbmQgSWRlYWxHYXRld2F5IExpdGUgKGMpIDIwMTAgYnkgTWFyYyB2YW4gZGUgR2Vpam4gKG1hcmNAdmRnZWlqbi5jb20pDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiNFTkRfTElDRU5TRQ0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0Ow0KDQplY2hvICR0aGlzLT5EaXNwbGF5RXJyb3JzKCk7DQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQ0KICB7DQogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3NldHRpbmdzJykpOw0KICB9DQogIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKSB7DQogICAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3RlbXBsYXRlJywnUGFzIHNqYWJsb29uIGFhbicpOw0KICB9IA0KICBpZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgew0KICAgICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdtYWlsJywnUGFzIG1haWwgYWFuJyk7DQogIH0gICAgDQplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7DQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOw0KaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQ0KICB7DQogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NldHRpbmdzJyk7DQogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3NldHRpbmdzX3RhYi5waHAnKTsNCiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsNCiAgfQ0KDQogIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKSB7DQogICAgICBlY2hvICR0aGlzLT5TdGFydFRhYigndGVtcGxhdGUnKTsNCiAgICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi50ZW1wbGF0ZV90YWIucGhwJyk7DQogICAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsNCiAgfQ0KICBpZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgew0KICAgICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ21haWwnKTsNCiAgICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5tYWlsX3RhYi5waHAnKTsNCiAgICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOw0KICB9DQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmKCAhaXNzZXQoJHBhcmFtc1snbXljdXN0b20nXSkgKQp7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdfY3VzdG9tX3ZlcmlmaWVyJykpOwoJJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdfY3VzdG9tX3ZlcmlmaWVyJykpOwp9CmVsc2UgaWYoICFpc3NldCgkcGFyYW1zWydvcmRlcl9pZCddKSApCnsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaXBuX2ludmFsaWRfb3JkZXJpZCcpKTsKCSR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCR0aGlzLT5MYW5nKCdlcnJvcl9pcG5faW52YWxpZF9vcmRlcmlkJykpOwp9CmVsc2UKewoKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2lzb3dnYXRld2F5JzsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwoJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpICkgKQoJICB7CgkgICAgJE1lcmNoYW5kSUQgPSAgJHJvd1snTWVyY2hhbnRJRCddOwoJICAgICRNZXJjaGFudEtleSA9ICRyb3dbJ01lcmNoYW50S2V5J107CgkgICAgJFNob3BJZCA9ICRyb3dbJ1Nob3BJZCddOwoJCSR0ZXN0bW9kZSA9ICRyb3dbJ3Rlc3Rtb2RlJ107CgkgIH0KCglpZiggISAkdGhpcy0+UmVzdG9yZVN0YXRlKCRwYXJhbXNbJ215Y3VzdG9tJ10pICkgewoJCXByaW50ICJVbmFibGUgdG8gcmVzdG9yZSBzdGF0ZSI7CgkJZXhpdCgpOwoJfQoKCWlmKCAhJHRoaXMtPkNoZWNrSW5mbygpICkKCXsKCQkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3Jlc3RvcmluZ190cmFuc2FjdGlvbl9zdGF0ZScpKTsKCX0KCWVsc2UKCXsKCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKCgkJJGtleSA9ICR0aGlzLT5TYXZlU3RhdGUodHJ1ZSk7CgkJCgkJCgkJCgkJJHJldHVybl91cmwgPSAkdGhpcy0+Q3JlYXRlTGluaygnY250bnQwMScsJ3N0YXR1cycsJHBhcmFtc1sncmV0dXJuaWQnXSwnJywKCQlhcnJheSgnb3JkZXJfaWQnPT4kcGFyYW1zWydvcmRlcl9pZCddLAoJCQkJCSAgICAgICAnbXljdXN0b20nPT4ka2V5KSwKCQkJCQkgJycsdHJ1ZSk7CgkJCgkJJHJldHVybl91cmwgPSBzdHJfcmVwbGFjZSggIiZhbXA7IiwiJiIsICRyZXR1cm5fdXJsKTsKCQkKCgkJCgkJJEN1cnJlbnRVcmwgPSBzdHJ0b2xvd2VyKHN1YnN0cigkX1NFUlZFUlsnU0VSVkVSX1BST1RPQ09MJ10sIDAsIHN0cnBvcygkX1NFUlZFUlsnU0VSVkVSX1BST1RPQ09MJ10sICcvJykpIC4gJzovLycgLiAkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSAuICcvJykgLiBzdWJzdHIoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10sIDEpOwoJCQoJCSRzT3JkZXJJZCA9ICRwYXJhbXNbJ29yZGVyX25hbWUnXTsKCQkkc09yZGVyRGVzY3JpcHRpb24gPSAkcGFyYW1zWydvcmRlcl9uYW1lJ10gLiAnIHRidi4gJy4gJHRoaXMtPkdldFNob3BOYW1lKCk7IC8vIFVwdG8gMzIgY2hhcmFjdGVycwoJCSRmT3JkZXJBbW91bnQgPSBzdHJfcmVwbGFjZSgnLCcsICcuJywgJHBhcmFtc1snb3JkZXJfYW1vdW50J10pOyAKCgkKCSRzaXNvdyA9IG5ldyBcU2lzb3coJE1lcmNoYW5kSUQsICRNZXJjaGFudEtleSwgJFNob3BJZCk7CgkKCgkJaWYgKGlzc2V0KCRfUE9TVFsiaXNzdWVyaWQiXSkpIHsKCQkJJHNpc293LT5wdXJjaGFzZUlkID0gJHBhcmFtc1snb3JkZXJfbmFtZSddOwoJCQkkc2lzb3ctPmRlc2NyaXB0aW9uID0gJHNPcmRlckRlc2NyaXB0aW9uOwoJCQkkc2lzb3ctPmFtb3VudCA9ICRmT3JkZXJBbW91bnQ7CgkJCSRzaXNvdy0+cGF5bWVudCA9ICRfUE9TVFsicGF5bWVudCJdOwoJCQkkc2lzb3ctPmlzc3VlcklkID0gJF9QT1NUWyJpc3N1ZXJpZCJdOwoJCQkkc2lzb3ctPnJldHVyblVybCA9ICRyZXR1cm5fdXJsOwoJCQkkc2lzb3ctPmNhbGxiYWNrVXJsID0gJHJldHVybl91cmw7CgkJCSRzaXNvdy0+bm90aWZ5VXJsID0gJHJldHVybl91cmw7CgkJCWlmICgoJGV4ID0gJHNpc293LT5UcmFuc2FjdGlvblJlcXVlc3QoKSkgPCAwKSB7CgkJCQllY2hvICdlcnJvcjogJy4kc2lzb3ctPmVycm9yTWVzc2FnZTsKCQkJfQoJCQloZWFkZXIoIkxvY2F0aW9uOiAiIC4gJHNpc293LT5pc3N1ZXJVcmwpOwoJCQkKCQl9CgkKCQkKCX0KfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.status.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokY2FydF9tb2R1bGUgPSBjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CmlmKCAhaXNfb2JqZWN0KCRjYXJ0X21vZHVsZSkgKSB7CiAgLy8gY2FuJ3QgZmluZCB0aGUgY2FydCBtb2R1bGUuCiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdnYXRld2F5X2NvbXBsYXRlIGFjdGlvbiBjYWxsZWQsIGJ1dCBubyBjYXJ0IG1vZHVsZSBmb3VuZCcpOwogICAgZWNobyAkdGhpcy0+RGlzcGxheUVycm9yTWVzc2FnZSgkdGhpcy0+TGFuZygnZXJyb3Jfbm9jYXJ0bW9kdWxlJykpOwogICAgcmV0dXJuOwp9CmlmKCAhaXNzZXQoJHBhcmFtc1snbXljdXN0b20nXSkgKSB7CiAgICAkdGhpcy0+U2V0VHJhbnNhY3Rpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ19jdXN0b21fdmVyaWZpZXInKSk7CiAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKS4nOnJldHVybl9zdWNjZXNzJywkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ19jdXN0b21fdmVyaWZpZXInKSk7CiAgICAkdGhpcy0+RmluaXNoVHJhbnNhY3Rpb24oKTsKICAgIHJldHVybjsKfQplbHNlIGlmKCAhaXNzZXQoJHBhcmFtc1snb3JkZXJfaWQnXSkgKSAgewogICAgJHRoaXMtPlNldFRyYW5zYWN0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2lwbl9pbnZhbGlkX29yZGVyaWQnKSk7CiAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKS4nOnJldHVybl9zdWNjZXNzJywkdGhpcy0+TGFuZygnZXJyb3JfaXBuX2ludmFsaWRfb3JkZXJpZCcpKTsKICAgICR0aGlzLT5GaW5pc2hUcmFuc2FjdGlvbigpOwogICAgcmV0dXJuOwp9IGVsc2UgewogICAgJGtleSA9ICR0aGlzLT5SZXN0b3JlU3RhdGUoJHBhcmFtc1snbXljdXN0b20nXSk7CiAgICBpZiggISR0aGlzLT5DaGVja0luZm8oKSApIHsKICAgICAgICAkdGhpcy0+U2V0VHJhbnNhY3Rpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcmVzdG9yaW5nX3RyYW5zYWN0aW9uX3N0YXRlJykpOwogICAgICAgICR0aGlzLT5GaW5pc2hUcmFuc2FjdGlvbigpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyB3ZSBnb3QgYSB2YWxpZCByZWRpcmVjdCBmcm9tIHNpc293LgogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKS4nOnJldHVybl9zdWNjZXNzJywnc3VjY2Vzc2Z1bCByZXR1cm4nKTsKCS8vcmVxdWlyZShkaXJuYW1lKF9fRklMRV9fKSAuICcvbGliL3Npc293LmNsczUucGhwJyk7CgkKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2lzb3dnYXRld2F5JzsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwoJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSApICkKCQkgIHsKCQkgICAgJE1lcmNoYW5kSUQgPSAgJHJvd1snTWVyY2hhbnRJRCddOwoJCSAgICAkTWVyY2hhbnRLZXkgPSAkcm93WydNZXJjaGFudEtleSddOwoJCQkkU2hvcElkID0gJHJvd1snU2hvcElkJ107CgkJCSR0ZXN0bW9kZSA9ICRyb3dbJ3Rlc3Rtb2RlJ107CgkJCSRjb21wbGV0ZV91cmwgPSAkcm93Wydjb21wbGV0ZV91cmwnXTsKCQkJJGNhbmNlbF91cmwgPSAkcm93WydjYW5jZWxfdXJsJ107CgkJICB9CgkkdHhuX2lkID0gdHJpbSgkX0dFVFsidHJ4aWQiXSk7CSAgCgkkc2lzb3cgPSBuZXcgXFNpc293KCRNZXJjaGFuZElELCAkTWVyY2hhbnRLZXksICRTaG9wSWQpOwoJCgkKCSRzaXNvdy0+U3RhdHVzUmVxdWVzdCgkdHhuX2lkKTsKCQoJJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ3RyeDogJy4kdHhuX2lkLidvcmRlcmlkOiAnLiRwYXJhbXNbJ29yZGVyX2lkJ10pIDsKCSR0aGlzLT5TZXRUcmFuc2FjdGlvbklkKCR0eG5faWQpOwoJJHRoaXMtPlNldFRyYW5zYWN0aW9uQW1vdW50KHN0cl9yZXBsYWNlKCcsJywgJy4nLCAkc2lzb3ctPmFtb3VudCkpOwoJJHRoaXMtPlNldFRyYW5zYWN0aW9uU3RhdHVzKFBBWU1FTlRfU1RBVFVTX1BFTkRJTkcpOwoJIGlmICgkc2lzb3ctPnN0YXR1cyA9PSBTaXNvdzo6c3RhdHVzU3VjY2VzcykgewoJICAvLyB0b2RvCiAgICAgIC8vICR0aGlzLT5TZXRUcmFuc2FjdGlvblN0YXR1cyhQQVlNRU5UX1NUQVRVU19BUFBST1ZFRCk7CiAgCSAgIAoJICAvLyRjb21wbGV0ZV91cmwgPSAkdGhpcy0+Q3JlYXRlTGluaygnY250bnQwMScsJ2dhdGV3YXlfY29tcGxldGUnLCRwYXJhbXNbJ3JldHVybmlkJ10sJycsCgkgIC8vYXJyYXkoCgkgIC8vCSAgJ29yZGVyX2lkJz0+JHBhcmFtc1snb3JkZXJfaWQnXSwKCSAgLy8JICAnZGF0YWtleSc9PiRrZXluYW1lLAoJICAvLwkgICdnYXRld2F5Jz0+J1Npc293R2F0ZXdheScKCSAgLy8pLAoJICAvLwkJCSAnJyx0cnVlKTsKCSAgLy8kY29tcGxldGVfdXJsID0gc3RyX3JlcGxhY2UoICImYW1wOyIsIiYiLCAkY29tcGxldGVfdXJsKTsKCSAgLy8vLwoJICAvLyRjb21wbGV0ZV91cmwgPSBzdHJfcmVwbGFjZSggIm1hY3Q9U2lzb3dHYXRld2F5LCIsICJtYWN0PU9yZGVycywiLCAkY29tcGxldGVfdXJsKTsKCSAgLy8KICAgICAgLy8KCSAgLy8KCSAgLy9oZWFkZXIoIkxvY2F0aW9uOiAiIC4gICRjb21wbGV0ZV91cmwpOwoJICAvL2V4aXQoKTsKCSAgLy8kdGhpcy0+U2V0RGVzdGluYXRpb24oJGNvbXBsZXRlX3VybCk7CiAgICAgIC8vICR0aGlzLT5GaW5pc2hUcmFuc2FjdGlvbigpOwogICAgICAgICAvL3JldHVybjsKCQkgCgkJJHRvdGFhbGJlZHJhZyA9IHN0cl9yZXBsYWNlKCcsJywgJy4nLCAkc2lzb3ctPmFtb3VudCk7CgkJJG9yZGVybW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdPcmRlcnMnKTsgLy8gZ2V0IG9yZGVyIG1vZHVsZSBpbnN0YW5jZQoJCQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIgLmNtc19kYl9wcmVmaXgoKS4gIm1vZHVsZV9vcmRlcnNfcGF5bWVudHMgV0hFUkUgdHhuX2lkID0gJyR0eG5faWQnIjsKCQkkdGVsbGVyID0gMDsKCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgKTsKCQkJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpICkgKQoJCQkgIHsKCQkJICAgICR0ZWxsZXIrKzsKCQkJICB9CgkJaWYgKCR0ZWxsZXIgPT0gMCkgeyAvL25vZyBuaWV0IHRvZWdldm9lZ2QKCQkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX29yZGVycyBTRVQgc3RhdHVzID0gJ3BhaWQnIFdIRVJFIGlkID0gJyIuJHBhcmFtc1snb3JkZXJfaWQnXS4iJyI7CgkJCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwoJCQkkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwncXVlcnk6ICcuJHF1ZXJ5KSA7CgkJCSRub3cgPSB0aW1lKCk7CQoJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9vcmRlcnNfcGF5bWVudHMgKGBpZGAsIGBvcmRlcl9pZGAsIGBhbW91bnRgLCBgcGF5bWVudF9kYXRlYCwgYHN0YXR1c2AsIGBtZXRob2RgLCBgZ2F0ZXdheWAsIGBjY19udW1iZXJgLCBgY2NfZXhwaXJ5YCwgYGNjX3ZlcmlmeWNvZGVgLCBgY29uZmlybWF0aW9uX251bWAsIGB0eG5faWRgLCBgbm90ZXNgLCBgYXNzb2NkYXRhYCkgVkFMVUVTIChOVUxMLCAnIi4kcGFyYW1zWydvcmRlcl9pZCddLiInLCAnIiAuICR0b3RhYWxiZWRyYWcgLiInLCAnIi4kbm93LiInLCAncGF5bWVudF9hcHByb3ZlZCcsICdvbmxpbmUnLCAnU2lzb3dHYXRld2F5JywgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgJyIuJHR4bl9pZC4iJywgTlVMTCwgTlVMTCkiOwoJCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgKTsKCQkJJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ3F1ZXJ5OiAnLiRxdWVyeSkgOwoJCQkKCQkJCgkJCS8qc2VuZCBtYWlsKi8KCQkJCgkgICAgCXJlcXVpcmVfb25jZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKS4nL09yZGVycy9saWIvY2xhc3Mub3JkZXJzX29wcy5waHAnKTsKCQkJJG9yZGVyX2lkID0gKGludCkkcGFyYW1zWydvcmRlcl9pZCddOwoJCQkkb3JkZXJfb2JqID0gb3JkZXJzX29wczo6bG9hZF9ieV9pZCgkb3JkZXJfaWQpOwoJCQkkb3JkZXJfYXJyID0gJG9yZGVyX29iai0+dG9fYXJyYXkoKTsKCgkJCS8vIEdldCB0aGlzIHVzZXJzIGVtYWlsIGFkZHJlc3MKCQkJJGJpbGxpbmdfYWRkciA9ICRvcmRlcl9vYmotPmdldF9iaWxsaW5nKCk7CgkJCSRlbWFpbF9hZGRyID0gJGJpbGxpbmdfYWRkci0+Z2V0X2VtYWlsKCk7CgkJCWlmKCAhJGVtYWlsX2FkZHIgKSB7CgkJCSAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwkdGhpcy0+TGFuZygnZXJyb3Jfbm9lbWFpbGFkZHJlc3MnKSk7CgkJCSAgICBlY2hvICR0aGlzLT5EaXNwbGF5RXJyb3JNZXNzYWdlKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2VtYWlsYWRkcmVzcycpKTsKCQkJICAgIHJldHVybjsKCQkJfQoKCgkJCS8vCgkJCS8vIEFuZCBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CgkJCS8vCgkJCSRzbWFydHktPmFzc2lnbignb3JkZXJfaWQnLCAkb3JkZXJfaWQpOwoJCQkkc21hcnR5LT5hc3NpZ24oJ29yZGVybnVtYmVyJywkb3JkZXJfb2JqLT5nZXRfaW52b2ljZSgpKTsKCQkJJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeXN5bWJvbCcsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CgkJCSRzbWFydHktPmFzc2lnbignd2VpZ2h0dW5pdHMnLGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwoJCQkkc21hcnR5LT5hc3NpZ24oJ29yZGVyJywkb3JkZXJfYXJyKTsKCQkJJHNtYXJ0eS0+YXNzaWduKCdvcmRlcl9vYmonLCRvcmRlcl9vYmopOwoJCQkkc21hcnR5LT5hc3NpZ24oJ2VtYWlsX2FkZHJlc3MnLCRlbWFpbF9hZGRyKTsKCgkJCS8vCgkJCS8vIFNlbmQgYW4gZW1haWwgdG8gdGhlIGN1c3RvbWVyCgkJCS8vCgoJCQkkbWFpbHRla3N0ID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbWFpbF90ZW1wbGF0ZScpOwoJCQkKCQkJJGNtc21haWxlciA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ01TTWFpbGVyJyk7CgkJCSRjbXNtYWlsZXItPmNsZWFyQXR0YWNobWVudHMoKTsKCQkJJGNtc21haWxlci0+QWRkQWRkcmVzcygkZW1haWxfYWRkcik7CiAJCSAgIAkkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFpbHN1YmplY3QnKSkpOwogCQkgICAJJGNtc21haWxlci0+U2V0Qm9keSgkbWFpbHRla3N0KTsKIAkJICAgCSRjbXNtYWlsZXItPklzSFRNTCh0cnVlKTsKIAkJICAgCQogCQkgICAJJGNtc21haWxlci0+U2VuZCgpOwoJCQkkY21zbWFpbGVyLT5yZXNldCgpOwoKCQl9CgkJICR0aGlzLT5TZXRUcmFuc2FjdGlvblN0YXR1cyhQQVlNRU5UX1NUQVRVU19BUFBST1ZFRCk7CgkJJHRoaXMtPkZpbmlzaFRyYW5zYWN0aW9uKCk7CiAgCSAgJGNhcnRfbW9kdWxlLT5FcmFzZUNhcnQoJ2dhdGV3YXktY29tcGxldGUnKTsKICAJICAKICAJICAka2V5bmFtZSA9IG9yZGVyc19oZWxwZXI6OmdldF9zZWN1cml0eV9rZXkoKTsKICAJICAkY25hbWUgPSAnYycub3JkZXJzX2hlbHBlcjo6Z2V0X3NlY3VyaXR5X2tleSgpOwogIAkgIC8vJG9yZGVyX2lkID0gZW5jcnlwdGVkX3N0b3JlOjpnZXQoJGtleW5hbWUpOwogIAkgIGVuY3J5cHRlZF9zdG9yZTo6ZXJhc2UoJGtleW5hbWUpOwogIAkgIGVuY3J5cHRlZF9zdG9yZTo6ZXJhc2UoJGNuYW1lKTsKCQloZWFkZXIoIkxvY2F0aW9uOiAiIC4gICRjb21wbGV0ZV91cmwpOwoJCQoJIH0gZWxzZSB7CiAgICAgICAgICR0aGlzLT5TZXRUcmFuc2FjdGlvbkVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl90cmFuc2FjdGlvbl9zaXNvd19mYWlsZWQnKS4nIC0gc3RhdHVzID0gJy4kc2lzb3ctPnN0YXR1cyk7CiAgICAgICAgICR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLic6cmV0dXJuX3N1Y2Nlc3MnLCR0aGlzLT5MYW5nKCdlcnJvcl90cmFuc2FjdGlvbl9zaXNvd19mYWlsZWQnKSk7CgkJIGhlYWRlcigiTG9jYXRpb246ICIgLiAgJGNhbmNlbF91cmwpOwoJIH0KCQoKfTsKCgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0cm9uZz5Nb2R1bGUgbWFkZSBwb3NzaWJsZSBhbmQgbWFqb3IgdGhhbmtzIHRvOjwvc3Ryb25nPgo8dWw+CgogICAgIDxsaT5UaW0gZGUgYnV1cm1hbiAoPGEgaHJlZj0iaHR0cHM6Ly9uZXh0ZG9vcm1lZGlhLm5sIj5OZXh0RG9vck1lZGlhPC9hPik8L2xpPgoJIDxsaT5UaW1vICg8YSBocmVmPSJodHRwOi8vd2ViZGVzaWduaGVlZy5ubCI+V2ViZGVzaWduIEhlZWc8L2E+KTwvbGk+CgkgCjwvdWw+Cgo8dWw+CiAgPGxpPlZlcnNpb24gMS4wIC0gMTcgSmFudWFyeSAyMDE3IC0gSmFudGlubwogICA8dWw+CiAgICAgPGxpPlVwZGF0ZSB0byB3b3JrIHdpdGggZUNvbW1lcmNlQmFzZSAxLjYgYW5kIHdpdGggQ01TTVMgMi4wPC9saT4KCSA8bGk+QWRkZWQgZm9ybSB0ZW1wbGF0ZTwvbGk+CgkgPGxpPkFkZGVkIG1haWwgdGVtcGxhdGU8L2xpPgoJIDxsaT5BZGRlZCBtdWx0aXNob3Agb3B0aW9uPC9saT4KICAgPC91bD4KIDwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjYgLSAzMCBNYXJjaCAyMDE1IC0gSmFudGlubwogICA8dWw+CiAgICAgPGxpPlRlc3RlZCB3aXRoIENNU01TIDIuMDwvbGk+CgkgPGxpPkFkZGVkIEFmdGVycGF5IGZ1bmN0aW9uPC9saT4KCSA8bGk+QWRkZWQgU2lzb3cgY2FsbGJhY2sgZnVuY3Rpb248L2xpPgogICA8L3VsPgogPC9saT4KICA8bGk+VmVyc2lvbiAwLjUuNSAtIDI1IE5vdmVtYmVyIDIwMTQgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+Zmlyc3QgaW1wbGVtZW50YXRpb24gLSBLbGFybmEgb3B0aW9uIChiZXRhbGluZyBhY2h0ZXJhZiAvIGFjY2VwdGdpcm8pIC0gbm90IHdvcmtpbmchPC9saT4KCSA8bGk+QWRkZWQgImxhYmVsIGZvciIgYXR0cmlidXRlcyBmb3IgYmV0ZXIgc2VsZWN0aW5nIHBheW1lbnQgZm9ybTwvbGk+CiAgIDwvdWw+CiA8L2xpPgogIDxsaT5WZXJzaW9uIDAuNS4yIC0gMjMgU2VwdGVtYmVyIDIwMTQgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+QWRkZWQgQ3JlZGl0Y2FyZCBvcHRpb25zPC9saT4KICAgPC91bD4KIDwvbGk+CiAgPGxpPlZlcnNpb24gMC41LjEgLSAxOSBPY3RvYmVyIDIwMTIgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+QnVnZml4LCBub3cgZGlzcGxheXMgaW52b2ljZSBudW1iZXIgYW5kIHNob3BuYW1lKGFzIGVudGVyZWQgYXQgZWNvbW1lcmNlYmFzZSkgYXMgdHJhbnNhY3Rpb24gZGVzY3JpcHRpb248L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDAuNS4wIC0gMTAgT2N0b2JlciAyMDEyIC0gSmFudGlubwogICA8dWw+CiAgICAgPGxpPkFsbCBjdXJyZW50IHBheW1lbnQgbWV0aG9kcyBvZiBTaXNvdyBpbXBsZW1lbnRlZDo8YnIgLz4KCQlpRGVhbCA8YnIgLz4KCQlESVJFQ1RlYmFua2luZzxiciAvPgoJCU1pc3RlckNhc2g8YnIgLz4KCQlXZWJTaG9wIEdpZnRDYXJkPGJyIC8+CgkJUG9kaXVtIENhZGVhdWthYXJ0PGJyIC8+CgkJUGF5cGFsIG9mIGNyZWRpdGNhcmQKCTwvbGk+Cgk8bGk+T3B0aW9uIGZvciBqcXVlcnlzY3JpcHQgdG8gaGlkZSBiYW5rbGlzdCB1bnRpbGwgaWRlYWwgaXMgY2hvc2VuIGFzIHBheW1lbnQgbWV0aG9kLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMC40LjAgLSA1IE9jdG9iZXIgMjAxMiAtIEphbnRpbm8KICAgPHVsPgogICAgIDxsaT5Jbml0aWFsIHZlcnNpb24uIENvbXBhdGlibGUgd2l0aCBDTVNNUyAxLjExLjE8L2xpPgogICA8L3VsPgogPC9saT4KICAKPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/doc/Installation.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/function.admin_settings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygnZXJyb3JfcGVybWlzc2lvbmRlbmllZCcpOwogICAgcmV0dXJuOwogIH0KCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdzZXR0aW5ncycpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZV9zZXR0aW5ncycsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwoKCiRzbWFydHktPmFzc2lnbignaW5wdXRfTWVyY2hhbnRJRCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X01lcmNoYW50SUQnLCdVdyBNZXJjaGFudElEJywxMiwgMTIpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9NZXJjaGFudEtleScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X01lcmNoYW50S2V5JywnVXcgTWVyY2hhbnRLZXknLDYwLDYwKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfU2hvcElkJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfU2hvcElkJywnVXcgU2hvcElkJyw2MCw2MCkpOwoJCQoJCQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3Rlc3Rtb2RlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X3Rlc3Rtb2RlJywndHJ1ZScpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfc29mb3J0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X3NvZm9ydCcsJ3RydWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbWlzdGVyY2FzaCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9taXN0ZXJjYXNoJywndHJ1ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF93ZWJzaG9wJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X3dlYnNob3AnLCd0cnVlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3BvZGl1bScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9wb2RpdW0nLCd0cnVlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3BheXBhbGVjJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X3BheXBhbGVjJywndHJ1ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jcmVkaXRjYXJkcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9jcmVkaXRjYXJkcycsJ3RydWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfa2xhcm5hJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X2tsYXJuYScsJ3RydWUnKSk7CQkKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hZnRlcnBheScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9hZnRlcnBheScsJ3RydWUnKSk7CQkKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9qcXVlcnknLAoJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5wdXRfanF1ZXJ5JywndHJ1ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jb21wbGV0ZV91cmwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5wdXRfY29tcGxldGVfdXJsJywndHJ1ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYW5jZWxfdXJsJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X2NhbmNlbF91cmwnLCd0cnVlJykpOwovLyBHZXQgdGhlIGV4aXN0aW5nIGRhdGEgb3V0IG9mIHRoZSBkYXRhYmFzZQokZW50cmllcyA9IGFycmF5KCk7CiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2lzb3dnYXRld2F5JzsKJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CndoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSApICkKICB7CiAgICAkb2JqID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7CgkKICAgICRvYmotPmlucHV0X01lcmNoYW50SUQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfTWVyY2hhbnRJRCcsJHJvd1snTWVyY2hhbnRJRCddLDEyLDEyKTsKICAgICRvYmotPmlucHV0X01lcmNoYW50S2V5ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X01lcmNoYW50S2V5Jywkcm93WydNZXJjaGFudEtleSddLDYwLDYwKTsKCSRvYmotPmlucHV0X1Nob3BJZCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9TaG9wSWQnLCRyb3dbJ1Nob3BJZCddLDEyLDEyKTsgCgkkb2JqLT5pbnB1dF90ZXN0bW9kZSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5wdXRfdGVzdG1vZGUnLCAndHJ1ZScsICRyb3dbJ3Rlc3Rtb2RlJ10pOwoKJG9iai0+aW5wdXRfY29tcGxldGVfdXJsID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2NvbXBsZXRlX3VybCcsJHJvd1snY29tcGxldGVfdXJsJ10sNjAsNjApOwokb2JqLT5pbnB1dF9jYW5jZWxfdXJsID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2NhbmNlbF91cmwnLCRyb3dbJ2NhbmNlbF91cmwnXSw2MCw2MCk7CgoJJG9iai0+aW5wdXRfc29mb3J0ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9zb2ZvcnQnLCAndHJ1ZScsICRyb3dbJ3NvZm9ydCddKTsKCSRvYmotPmlucHV0X21pc3RlcmNhc2ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X21pc3RlcmNhc2gnLCAndHJ1ZScsICRyb3dbJ21pc3RlcmNhc2gnXSk7Cgkkb2JqLT5pbnB1dF93ZWJzaG9wID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF93ZWJzaG9wJywgJ3RydWUnLCAkcm93Wyd3ZWJzaG9wJ10pOwoJJG9iai0+aW5wdXRfcG9kaXVtID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9wb2RpdW0nLCAndHJ1ZScsICRyb3dbJ3BvZGl1bSddKTsKCSRvYmotPmlucHV0X3BheXBhbGVjID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9wYXlwYWxlYycsICd0cnVlJywgJHJvd1sncGF5cGFsZWMnXSk7Cgkkb2JqLT5pbnB1dF9jcmVkaXRjYXJkcyA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5wdXRfY3JlZGl0Y2FyZHMnLCAndHJ1ZScsICRyb3dbJ2NyZWRpdGNhcmRzJ10pOwoJJG9iai0+aW5wdXRfa2xhcm5hID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9rbGFybmEnLCAndHJ1ZScsICRyb3dbJ2tsYXJuYSddKTsKCSRvYmotPmlucHV0X2FmdGVycGF5ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9hZnRlcnBheScsICd0cnVlJywgJHJvd1snYWZ0ZXJwYXknXSk7CgkKCSRvYmotPmlucHV0X2pxdWVyeSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5wdXRfanF1ZXJ5JywgJ3RydWUnLCAkcm93WydqcXVlcnknXSk7CgkKCQoJJG9iai0+aW5wdXRfTWVyY2hhbnRJRGFmdGVycGF5ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X01lcmNoYW50SURhZnRlcnBheScsICRyb3dbJ2FmdGVycGF5TWVyY2hhbnRJRCddLDEyLDYwKTsKCSRvYmotPmlucHV0X3BvcnRmb2xpb2lkID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X3BvcnRmb2xpb2lkJywgJHJvd1snYWZ0ZXJwYXlQb3J0Zm9saW9pZCddLDYwLDYwKTsKCSRvYmotPmlucHV0X3Bhc3N3b3JkID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X3Bhc3N3b3JkJywgJHJvd1snYWZ0ZXJwYXlQYXNzd29yZCddLDYwLDYwKTsKCQoJCgogICAgJGVudHJ5ID0gJG9iajsKICB9CiRzbWFydHktPmFzc2lnbignZW50cnknLCRlbnRyeSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3NldHRpbmdzX3RhYi50cGwnKTsKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.mail_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgKGMpIDIwMDkgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB0aGUgYWJpbGl0eSB0byBwcm9jZXNzCiMgIFBheW1lbnRzIG1hZGUgdXNpbmcgdGhlIEUtY29tbWVyY2Ugc3VpdGUgdGhyb3VnaCB0aGUgQXV0aE5ldCBwYXltZW50CiMgIGdhdGV3YXkuCiMKIyBOb3RlOiBUaGlzIG1vZHVsZSB3YXMgb3JpZ2luYWxseSBzdGFydGVkIGJ5IFRlZCBLdWxwLCBidXQgcmV3cml0dGVuCiMgdW5kZXIgdGhlIHNhbWUgbmFtZSBieSBSb2JlcnQgQ2FtcGJlbGwuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCQkJCSAKCQkJCSAKCQkJCSAkc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJCQkgCQkkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9lbWFpbCcsCgkJCQkgCQkJCQkgJHJldHVybmlkKSk7CgkJCQkgJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywKCQkJCSAJCSR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCQkJICRzbWFydHktPmFzc2lnbignc3VibWl0JywKCQkJCSAJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CgkJCQkJCSRzbWFydHktPmFzc2lnbignaW5wdXRfbWFpbHN1YmplY3QnLAoJCQkJCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnbWFpbHN1YmplY3QnLAoJCQkJCQkJCQkJICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYWlsc3ViamVjdCcsJycpLCA2NCw2NCkpOwoKCQkJCSBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21haWxfdGFiLnRwbCcpOwkJCQkgCmVjaG8gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc2luZ2xlX3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwKCQkJCQkJICAnbWFpbF90ZW1wbGF0ZScsCgkJCQkJCSAgJ3RlbXBsYXRlJywKCQkJCQkJICAkdGhpcy0+TGFuZygncHJvbXB0X21haWxfdGVtcGxhdGUnKSwKCQkJCQkJICAnb3JpZ19tYWlsX3RlbXBsYXRlLnRwbCcpOwkJCQkJCSAgCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgKGMpIDIwMDkgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB0aGUgYWJpbGl0eSB0byBwcm9jZXNzCiMgIFBheW1lbnRzIG1hZGUgdXNpbmcgdGhlIEUtY29tbWVyY2Ugc3VpdGUgdGhyb3VnaCB0aGUgQXV0aE5ldCBwYXltZW50CiMgIGdhdGV3YXkuCiMKIyBOb3RlOiBUaGlzIG1vZHVsZSB3YXMgb3JpZ2luYWxseSBzdGFydGVkIGJ5IFRlZCBLdWxwLCBidXQgcmV3cml0dGVuCiMgdW5kZXIgdGhlIHNhbWUgbmFtZSBieSBSb2JlcnQgQ2FtcGJlbGwuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zaW5nbGVfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJHJldHVybmlkLAoJCQkJCQkgICdmb3JtX3RlbXBsYXRlJywKCQkJCQkJICAndGVtcGxhdGUnLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdwcm9tcHRfZm9ybV90ZW1wbGF0ZScpLAoJCQkJCQkgICdvcmlnX2Zvcm1fdGVtcGxhdGUudHBsJyk7CgkJCQkJCSAgCgkJCQkgIAojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAxAOZsAP6IEs4ZOv+6f7eOv/2ePiCFxdlLZS6VzP+7f+xMbr/f8S+VzP/Ws516s7/f8thLZLePwP75+v/kzv/lzrePvy+Vzf/VssDg8v/n0uhGauhHapp2sCCFxgB1vv3+/+Rfef6fQMuw0L/g8pt2sOxLbv/7/P6ePvX6/f/lz516su+Tpf7n0iCSzoG/4N3I4edGathLZf/Tq/6sXvvh50Gj0iCTy/3x9P/x5P/+/C+Wzf38/f2iUfjz+P+3cv7+/5Van/fBzfKwvuv1+v/w4++TppRanv6jUedGafPr9P/TqtHo9dLn8pVanuvf7Pv9/vb7/f38/v7+/vfz+P/38bJ/u8yw0KufyfLr9P/9/P/7+Pj7/UGi0etLboG/4f/Dj80YOmQshWQrhWMrhf2HEQB0vs0YOf2IEf6IEWQshs4YOgB0vf///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGwALAAAAAAwADEAAAf/gGyCg4SFg1FUP0xFaxJGOxg4hpOUlYRIViloYGhhYGsTZmZjZwQEPVmWqoY6IRucYWKcnWsMZ2MAZgBnpSArq6shDWDEaMZgYcagZrdnuWOipRjAk1cNYp3JnWjYtBZnzADQo6OlBNSEwp3I27PdoOO8zLe7oiA36NedYrHJ3dmfLJAiBU4ctGZmCMQAVoUbsjCxxEjc1q8RuHnMmOGKdsbEQksNuPHDJouTLIjr1nwTFU0UwYu3TEyp5GLEJmM4ZyWbpQzFqGekxPECR2oUAUmGoITEifLYPzATa9ETtcsZr6DzOk7asAkWMaib/OHkZlGevHIDxbWcRqjJNZT//7btM7az1kGqzTa+jHaOENeHEE0eE2kSG7yz4HgZxIgxySApDiXyZJeT0yyVZ3EV1XXwarO+bDRZjjUWKjZ/2tDAa+ks11WNBQ3iY/NXm21Pnuii9CR18etdY8a5DCeDDY9kO28fEysxqoTMwYdqDF7u1hgQbFxwy0aatKzmN0nabR0UAPByGW9pxGIT50iTgk3PgtooV7R61ltqxLuivb+TcW1yGklhSKWLegTFgwtRQ52BgVxj8bPddqlBVSAKniWWWHSdBVeUDMZIuI8n/4h4DH0MZGTfOLjgl0s9GlEAAQQUDADBAAPUeCOON9bIY41rDCEAAkMKUCQCRBppJP+RTA7pxRpQRinllFRWaeWVUSaggZYkZJBABiQc0WUCL2j5JZlcbLmGEgsscEAFblZwwAFtzrlADgvImQOcc6bhp59lAApoGV/4+UWghKZRxhoOqOHoo5CqQYakkT5agAGBCoqooYoGYGgZZQSwqAKTTgopGaY6SkYHj5q6hQGKCvonoYEW6mkah/q5hgKsqlppqqiWimoLD3SqaKKxzgoqrp3uKmmqlfoKrRpCAJEps3/+WegXhW6ahrOUButrq9JO6kEJgnLb7abrBnoro9OOG66qphYgCKagLntsstdyq+sFlD4bsLQBT1qDIERcm+mht+YLaqGKMipvpKhGq8b7E4JEgCm/smKbK65riDDwox1UTC6lHBDyAagB+Psws/52G3Gj4QI7MqRLEBJBsQ+3/MWtxzoc6K4mC7uqyZHaW4gK2GYLs8JDX2A0sOJCWsAJkxQba8O1xtptAERbPLC4NFBigwEfM5spojKvAfC0cJvKgiUzaC2rpz9z+i2prZZKrqkceKBKEJh+/PKfon7rANKnkluAD8DUrWzaabwrcsEWFyA4NTtnC/G2f4ZM8bQFzI3OIB/AoK2mokpc9KkctHB6ISUYgG+siS5K880FHDz7JBF8gHa+oQMsbwE0bP57JTaooHroCjxbAAddYL387CVEIIgWTlzPRiAAOw==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCgojIEIKCiMgQwokbGFuZ1snY2hhbmdlbG9nJ10gPSA8PDxFT1QKPHVsPgogIDxsaT5WZXJzaW9uIDAuNS4xIC0gMTkgT2N0b2JlciAyMDEyIC0gSmFudGlubwogICA8dWw+CiAgICAgPGxpPkJ1Z2ZpeCwgbm93IGRpc3BsYXlzIGludm9pY2UgbnVtYmVyIGFuZCBzaG9wbmFtZShhcyBlbnRlcmVkIGF0IGVjb21tZXJjZWJhc2UpIGFzIHRyYW5zYWN0aW9uIGRlc2NyaXB0aW9uPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAwLjUuMCAtIDEwIE9jdG9iZXIgMjAxMiAtIEphbnRpbm8KICAgPHVsPgogICAgIDxsaT5BbGwgY3VycmVudCBwYXltZW50IG1ldGhvZHMgb2YgU2lzb3cgaW1wbGVtZW50ZWQ6PGJyIC8+CgkJaURlYWwgPGJyIC8+CgkJRElSRUNUZWJhbmtpbmc8YnIgLz4KCQlNaXN0ZXJDYXNoPGJyIC8+CgkJV2ViU2hvcCBHaWZ0Q2FyZDxiciAvPgoJCVBvZGl1bSBDYWRlYXVrYWFydDxiciAvPgoJCVBheXBhbCBvZiBjcmVkaXRjYXJkCgk8L2xpPgoJPGxpPk9wdGlvbiBmb3IganF1ZXJ5c2NyaXB0IHRvIGhpZGUgYmFua2xpc3QgdW50aWxsIGlkZWFsIGlzIGNob3NlbiBhcyBwYXltZW50IG1ldGhvZC48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDAuNC4wIC0gNSBPY3RvYmVyIDIwMTIgLSBKYW50aW5vCiAgIDx1bD4KICAgICA8bGk+SW5pdGlhbCB2ZXJzaW9uLiBDb21wYXRpYmxlIHdpdGggQ01TTVMgMS4xMS4xPC9saT4KICAgPC91bD4KIDwvbGk+CiAgCjwvdWw+CkVPVDsKJGxhbmdbJ2NoZWNrb3V0X2J1dHRvbl9tZXNzYWdlJ10gPSAnICBTdGFydCBiZXZlaWxpZ2RlIGJldGFsaW5nICAnOwokbGFuZ1snY2hlY2tvdXRfbWVzc2FnZSddID0gJ0JldGFsZW4gdmlhIGlEZWFsLCBQYXlwYWwgb2YgQ3JlZGl0Y2FyZCAnOwojIEQKCiMgRQokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtZXRlciddID0gJ0ludmFsaWQgUGFyYW1ldGVyOiAlcyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWlzc2lvbiBEZW5pZWQnOwokbGFuZ1snZXJyb3JfcHJpY2VvcmRlciddID0gJ1RoZXJlIGlzIGFuIGVycm9yIGluIHRoZSBvcmRlcmluZyBvZiB5b3VyIHNoaXBwaW5nIHByaWNlcy4gUHJpY2VzIG11c3QgYWx3YXlzIGluY3JlYXNlLiAgVGhlIGVycmFudCB2YWx1ZSBpczogJXMnOwokbGFuZ1snZXJyb3Jfd2VpZ2h0b3JkZXInXSA9ICdUaGVyZSBpcyBhbiBlcnJvciBpbiB0aGUgb3JkZXJpbmcgb2YgeW91ciBzaGlwcGluZyBwcmljZXMuIFdlaWdodHMgbXVzdCBhbHdheXMgaW5jcmVhc2UuICBUaGUgZXJyYW50IHZhbHVlIGlzOiAlcyc7CgojIEYKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Npc293R2F0ZXdheSc7CgojIEcKCiMgSAokbGFuZ1snaGVscCddID0gPDw8RU9UCjxoMz5XaGF0IElzIFRoaXM8L2gzPgo8cD5QYXltZW50eSBtb2R1bGUgZm9yIFNpc293IFBheW1lbnQgR2F0ZXdheTxici8+CjxiPk9uZGVyc3RldW4gZGV6ZSBwbHVnaW4gem9uZGVyIGdlbGQgdWl0IHRlIGdldmVuLjwvYj4gTGFhdCB1dyBrbGFudCBhYW5tZWxkZW4gdm9vciBlZW4gU2lzb3cgYWNjb3VudCB2aWEgPGI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2lzb3cubmwvU2lzb3cvaURlYWwvQWFubWVsZGVuLmFzcHg/cj0xNDA2MDUiIHRhcmdldD0iX0JMQU5LIj5kZXplIFVSTDwvYT48L2I+LjxiciAvPgpVdyBrbGFudGVuIHp1bGxlbiBoaWVyIG5pZXRzIHZhbiBvcG1lcmtlbjsgemUgenVsbGVuIGRlemVsZmRlIHRhcmlldmVuIGVuIHZvb3J3YWFyZGVuIGtyaWpnZW4uIDwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPkZpbGwgaW4geW91ciBTaXNvdyBNZXJjaGFudElEIGFuZCBNZXJjaGFudEtleSBhbmQgY2hvb3NlIHdoZXRoZXIgeW91IHdhbnQgdGhlIHRlc3QgbW9kZSBvciBub3QuIFNhdmUgYW5kIHNlbGVjdCBTaXNvd0dhdGV3YXkgYXMgeW91ciBQYXltZW50IHRoaW5nZ2llIGluIENhbGd1eXMgRWNvbW1lcmNlIEJhc2U8L3A+CjxwPkhlYiB2ZXJzY2hpbGxlbmRlIGNsYXNzZXMgdG9lZ2V2b2VnZCBhYW4gaGV0IGZvcm11bGllciwgem9kYXQgdSBoZXQgZm9ybXVsaWVyIGt1bnQgb3BtYWtlbiBuYWFyIHdlbnMgbWJ2IGNzcy4gRGUgdm9sZ2VuZGUgY2xhc3NlcyB6aWpuIGdlZGVmaW5lZXJkOjxiciAvPgo8YnIgLz4KaGV0IGdlaGVsZSBmb3JtdWxpZXI6IHNpc293Zm9ybTxiciAvPgo8YnIgLz4KYWxsZSBiZXRhYWwgbW9nZWxpamtoZWRlbjo8YnIgLz4Kc2lzb3dCYW5rPGJyIC8+CjxiciAvPgpwZXIgYmV0YWFsbW9nZWxpamtoZWlkOjxiciAvPgpzaXNvd0RpcmVjdGViYW5raW5nPGJyIC8+CnNpc293TWlzdGVyQ2FzaDxiciAvPgpzaXNvd1dlYlNob3BHaWZ0Q2FyZDxiciAvPgpzaXNvd1BvZGl1bTxiciAvPgpzaXNvd1BheXBhbDxiciAvPgpzaXNvd2lEZWFsPGJyIC8+CnNpc293aURlYWxiYW5rZW4gKGRlemUgYmV2YXQgZGUgbGlqc3QgbWV0IGJhbmtlbik8YnIgLz4KPGJyIC8+CnZlcnplbmRidXR0b246PGJyIC8+CnNpc293U3VibWl0PGJyIC8+CjxiciAvPgogPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPk1vZHVsZSBpcyBhcy1pcy4gR2VlbiBnYXJhbnRpZXMuIEh1bHAgaXMgbW9nZWxpamssIG9mZmVydGUgdm9vcmFmLiBOZWVtIGNvbnRhY3Qgb3AgbWV0IDxhIGhyZWY9Im1haWx0bzogaW5mb0BqYW50aW5vLm5sIj5SZWludCBKYW50aW5vPC9hPiBvZiBwcm9iZWVyIGhldCBvcCAndCBmb3J1bS48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgwqkgMjAxMiwgUmVpbnQgdmFuIGRlciBMYWFuIC4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuClRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZSBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgpUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBIE9yIHJlYWQgaXQgb25saW5lCjwvcD4KRU9UOwoKIyBJCgojIEoKCiMgSwoKIyBMCiRsYW5nWydsYWJlbCddID0gJ0xhYmVsJzsKCiMgTQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdQYXJ0IG9mIHRoZSBFLUNvbW1lcmNlIGNvbGxlY3Rpb24sIHRoaXMgbW9kdWxlIHByb3ZpZGVzIGlEZWFsLCBQYXlwYWwgYW5kIEdpZnRjYXJkcyBwYXltZW50cyBmb3IgU2lzb3cgUGF5bWVudCBHYXRld2F5cyc7CgojIE4KCiMgTwoKIyBQCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBTaXNvd0dhdGV3YXkgTW9kdWxlIGhhcyBzdWNjZXNzZnVsbHkgYmVlbiBpbnN0YWxsZWQsIHBsZWFzZSBlbnN1cmUgaXQgaXMgY29uZmlndXJlZCBjb3JyZWN0bHknOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBTaXNvd0dhdGV3YXkgbW9kdWxlIGFuZCBhbGwgYXNzb2NpYXRlZCBkYXRhIGhhcyBiZWVuIHJlbW92ZWQnOwoKIyBRCgojIFIKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZS4gIERvaW5nIHNvIGNvdWxkIHJlbmRlciB5b3VyIEUtQ29tbWVyY2Ugc2l0ZSBpbm9wZXJhYmxlLiAgUHJvY2VlZCB3aXRoIGNhdXRpb24uJzsKCiMgUwokbGFuZ1snc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwoKIyBUCgojIFUKCiMgVgoKIyBXCgojIFgKCiMgWQoKIyBaCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBTaXNvd0dhdGV3YXk7CgpmaW5hbCBjbGFzcyBnYXRld2F5IGltcGxlbWVudHMgXENHRWNvbW1lcmNlQmFzZVxwYXltZW50X2dhdGV3YXkKewogICAgdXNlIFxDR0Vjb21tZXJjZUJhc2VcZGZsdF9nYXRld2F5X2ltcGxlbWVudGF0aW9uOwoKICAgIC8vIG1vZHVsZSBsaW1pdHMKICAgIHB1YmxpYyBmdW5jdGlvbiBBbGxvd3NJbnN0YW50Q2hlY2tvdXQoKSB7IHJldHVybiBmYWxzZTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFJlcXVpcmVzQ3JlZGl0Q2FyZEluZm8oKSB7IHJldHVybiBmYWxzZTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFJlcXVpcmVzU1NMKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXF1aXJlc1NoaXBwaW5nSW5mbygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gUmVxdWlyZXNCaWxsaW5nSW5mbygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gU3VwcG9ydHNPZmZsaW5lQ2hhcmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gU3VwcG9ydHNSZWZ1bmRzKCkgeyByZXR1cm4gZmFsc2U7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSXNDb25maWd1cmVkKCkKICAgIHsKICAgICAgICAvLyR0bXAgPSBudWxsOwogICAgICAgIC8vJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BBWVBBTEdBVEVXQVkpOwogICAgICAgIC8vaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2Rtb2RlJykgKSB7CiAgICAgICAgLy8gICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2RfYWNjdCcpOwogICAgICAgIC8vfQogICAgICAgIC8vZWxzZSB7CiAgICAgICAgLy8gICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3Rlc3RfYWNjdCcpOwogICAgICAgIC8vfQogICAgICAgIC8vcmV0dXJuIGlzX2VtYWlsKCR0bXApOwoJCS8vdG9kbwoJCXJldHVybiB0cnVlOwogICAgfQoKICAgIGZ1bmN0aW9uIENoZWNrSW5mbygpIHsgcmV0dXJuIHRydWU7IH0KCiAgICBmdW5jdGlvbiBGaW5pc2hUcmFuc2FjdGlvbigpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ10pICkgcmV0dXJuIEZBTFNFOwoJCS8qCiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BBWVBBTEdBVEVXQVkpOwogICAgICAgICRrZXkgPSAkdGhpcy0+U2F2ZVN0YXRlKHRydWUpOwogICAgICAgICR1cmwgPSAkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ107CiAgICAgICAgJHVybCA9IGh0bWxfZW50aXR5X2RlY29kZSgkdXJsKTsKICAgICAgICAkdXJsIC49ICImY250bnQwMWRhdGFrZXk9JGtleSI7CiAgICAgICAgJHVybCAuPSAnJmNudG50MDFnYXRld2F5PScuJG1vZC0+R2V0TmFtZSgpOwogICAgICAgIHJlZGlyZWN0KCR1cmwpOwoJCSovCiAgICB9CgogICAgZnVuY3Rpb24gR2V0Rm9ybSgkcmV0dXJuaWQpCiAgICB7CgkJCgkJCgkJCiAgICAgICAgaWYoICEkdGhpcy0+Q2hlY2tJbmZvKCkgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRrZXkgPSAkdGhpcy0+U2F2ZVN0YXRlKHRydWUpOwogICAgICAgICR1cmwgPSAnJzsKCQkKCQkKCQkKCQkvLyBTZXQgZGVmYXVsdCB0aW1lem9uZSBmb3IgREFURS9USU1FIGZ1bmN0aW9ucwoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCcpKQoJCXsKCQkJZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnRXVyb3BlL0Ftc3RlcmRhbScpOwoJCX0KCQkKCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Npc293Z2F0ZXdheSc7CgkJCgkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CgkJCgkJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpICkgKQoJCSAgewoJCSAgICAkTWVyY2hhbmRJRCA9ICAkcm93WydNZXJjaGFudElEJ107CgkJICAgICRNZXJjaGFudEtleSA9ICRyb3dbJ01lcmNoYW50S2V5J107CgkJCSRTaG9wSWQgPSAkcm93WydTaG9wSWQnXTsKCQkJJHRlc3Rtb2RlID0gJHJvd1sndGVzdG1vZGUnXTsKCQkJJHNzb2ZvcnQgPSAkcm93Wydzb2ZvcnQnXTsKCQkJJHNtaXN0ZXJjYXNoID0gJHJvd1snbWlzdGVyY2FzaCddOwoJCQkkc3dlYnNob3AgPSAkcm93Wyd3ZWJzaG9wJ107CgkJCSRzcG9kaXVtID0gJHJvd1sncG9kaXVtJ107CgkJCSRzcGF5cGFsZWMgPSAkcm93WydwYXlwYWxlYyddOwoJCQkkc2NyZWRpdGNhcmRzID0gJHJvd1snY3JlZGl0Y2FyZHMnXTsKCQkJJHNrbGFybmEgPSAkcm93WydrbGFybmEnXTsKCQkJJHNqcXVlcnkgPSAkcm93WydqcXVlcnknXTsKCQkgIH0KCQkgIAoJCXJlcXVpcmUoZGlybmFtZShfX0ZJTEVfXykgLiAnL3Npc293LmNsczUucGhwJyk7CgoJCSRzaXNvdyA9IG5ldyBcU2lzb3coJE1lcmNoYW5kSUQsICRNZXJjaGFudEtleSwgJFNob3BJZCk7CgkJCgkJJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Npc293R2F0ZXdheScpOwoJCQoJCQoJCSRpdGVtcyA9ICR0aGlzLT5HZXRJdGVtcygpOwogICAgICAgICRhbW91bnQgPSAwOwogICAgICAgIGZvcmVhY2goICRpdGVtcyBhcyAkbmFtZSA9PiAkZGF0YSApIHsKICAgICAgICAgICAgJGFtb3VudCArPSAkZGF0YVsnYW1vdW50J10gKiAkZGF0YVsncXVhbnRpdHknXTsKICAgICAgICB9CgkJJHVybCA9ICAJICRtb2QtPkNyZWF0ZUxpbmsoJ2NudG50MDEnLCdyZWRpcmVjdCcsJHJldHVybmlkLCcnLAoJCQkJCSAJCQkJCQkgYXJyYXkoCgkJCQkJCQkJCQkJCSAnb3JkZXJfaWQnPT4kdGhpcy0+R2V0T3JkZXJJZCgpLAoJCQkJCQkJCQkJCQkgJ215Y3VzdG9tJz0+JGtleSwKCQkJCQkJCQkJCQkgCSAnb3JkZXJfbmFtZSc9PiR0aGlzLT5HZXRJbnZvaWNlKCksCgkJCQkJCQkJCQkJCSAnb3JkZXJfYW1vdW50Jz0+JGFtb3VudAoJCQkJCQkJCQkJCSApLCcnLHRydWUpOwkJCQoJCSAKICAgICAgICAvLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CiAgICAgICAgJGdDbXMgPSBjbXNtcygpOwogICAgICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAgICAgJHNtYXJ0eSA9ICRnQ21zLT5HZXRTbWFydHkoKTsKCSAgICAKCQkKCSAgICBpZiAoJHRlc3Rtb2RlKXsKCQkJJHNpc293LT5EaXJlY3RvcnlSZXF1ZXN0KCRzZWxlY3QsIHRydWUsIHRydWUpOyAvL2xpanN0LCBodG1sY29kZXMsIHRlc3Rtb2R1cwoJCX0gZWxzZSB7CgkJCSRzaXNvdy0+RGlyZWN0b3J5UmVxdWVzdCgkc2VsZWN0LCB0cnVlLCBmYWxzZSk7IC8vbGlqc3QsIGh0bWxjb2RlcywgdGVzdG1vZHVzCgkJfQoJCQogICAgICAgICRzbWFydHktPmFzc2lnbigndGVzdG1vZGUnLCR0ZXN0bW9kZSk7CgkJJHNtYXJ0eS0+YXNzaWduKCdiYW5rZW4nLCRzZWxlY3QpOwoJCSRzbWFydHktPmFzc2lnbignc3NvZm9ydCcsJHNzb2ZvcnQpOwoJCSRzbWFydHktPmFzc2lnbignc21pc3RlcmNhc2gnLCRzbWlzdGVyY2FzaCk7CgkJJHNtYXJ0eS0+YXNzaWduKCdzd2Vic2hvcCcsJHN3ZWJzaG9wKTsKCQkkc21hcnR5LT5hc3NpZ24oJ3Nwb2RpdW0nLCRzcG9kaXVtKTsKCQkkc21hcnR5LT5hc3NpZ24oJ3NwYXlwYWxlYycsJHNwYXlwYWxlYyk7CgkJJHNtYXJ0eS0+YXNzaWduKCdzY3JlZGl0Y2FyZHMnLCRzY3JlZGl0Y2FyZHMpOwoJCSRzbWFydHktPmFzc2lnbignc2tsYXJuYScsJHNrbGFybmEpOwoJCSRzbWFydHktPmFzc2lnbignc2pxdWVyeScsJHNqcXVlcnkpOwoJCSRzbWFydHktPmFzc2lnbigndXJsJywkdXJsKTsKICAgICAgICAKICAgICAgICAKCiAgICAgICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZm9ybV90ZW1wbGF0ZScpOwoJCS8qCiAgICAgICAKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRwYXJtc1sndXBsb2FkJ10gPSAxOwogICAgICAgICRwYXJtc1sncm0nXSA9IDI7CiAgICAgICAgJHBhcm1zWydidXNpbmVzcyddID0gJyc7CiAgICAgICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2Rtb2RlJykgKSB7CiAgICAgICAgICAgICRwYXJtc1snYnVzaW5lc3MnXSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2RfYWNjdCcsMCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcGFybXNbJ2J1c2luZXNzJ10gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCd0ZXN0X2FjY3QnLDApOwogICAgICAgIH0KICAgICAgICAkcGFybXNbJ2NoYXJzZXQnXSA9ICdVVEYtOCc7CiAgICAgICAgJHBhcm1zWydjdXN0b20nXSA9ICR0aGlzLT5HZXRPcmRlcklkKCk7CiAgICAgICAgaWYoICgkdG1wID0gJHRoaXMtPkdldEN1cnJlbmN5Q29kZSgpKSApICRwYXJtc1snY3VycmVuY3lfY29kZSddID0gJHRtcDsKICAgICAgICBpZiggKCR0bXAgPSAkdGhpcy0+R2V0V2VpZ2h0VW5pdHMoKSkgKSAkcGFybXNbJ3dlaWdodHVuaXRzJ10gPSAkdG1wOwogICAgICAgICRwYXJtc1snY21kJ10gPSAnX2NhcnQnOwogICAgICAgIGlmKCAkc3Vic2NyX2l0ZW0gKSAkcGFybXNbJ2NtZCddID0gJ194Y2xpY2stc3Vic2NyaXB0aW9ucyc7CgogICAgICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfaXBuJywwKSApIHsKICAgICAgICAgICAgJHBhcm1zWydub3RpZnlfdXJsJ10gPSAkbW9kLT5DcmVhdGVVUkwoJ2NudG50MDEnLCdpcG4nLCRyZXR1cm5pZCwgYXJyYXkoJ29yZGVyX2lkJz0+JHRoaXMtPkdldE9yZGVySWQoKSwnbXljdXN0b20nPT4ka2V5KSk7CiAgICAgICAgfQoKICAgICAgICAkcGFybXNbJ3JldHVybiddID0gJG1vZC0+Q3JlYXRlTGluaygnY250bnQwMScsJ3JldHVybl9zdWNjZXNzJywkcmV0dXJuaWQsJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdvcmRlcl9pZCc9PiR0aGlzLT5HZXRPcmRlcklkKCksJ215Y3VzdG9tJz0+JGtleSksJycsdHJ1ZSk7CiAgICAgICAgJHBhcm1zWydjYW5jZWxfcmV0dXJuJ10gPSAkbW9kLT5DcmVhdGVMaW5rKCdjbnRudDAxJywncmV0dXJuX2NhbmNlbCcsJHJldHVybmlkLCcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ29yZGVyX2lkJz0+JHRoaXMtPkdldE9yZGVySWQoKSwnbXljdXN0b20nPT4ka2V5KSwnJyx0cnVlKTsKCiAgICAgICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3BhZ2Vfc3R5bGUnKTsgaWYoICEkdG1wICkgJHRtcCA9ICdwYXlwYWwnOwogICAgICAgICRwYXJtc1sncGFnZV9zdHlsZSddID0gJHRtcDsKICAgICAgICAkcGFybXNbJ25vX3NoaXBwaW5nJ10gPSAxOwogICAgICAgICRwYXJtc1snbm9fbm90ZSddID0gMTsKCiAgICAgICAgLy9BZGQgYWRkcmVzcyBkZXRhaWxzCiAgICAgICAgaWYoICgkYWRkcmVzcyA9ICR0aGlzLT5HZXRCaWxsaW5nQWRkcmVzcygpKSApIHsKICAgICAgICAgICAgJHBhcm1zWydhZGRyZXNzMSddID0gJGFkZHJlc3MtPmdldF9hZGRyZXNzMSgpOwogICAgICAgICAgICAkcGFybXNbJ2FkZHJlc3MyJ10gPSAkYWRkcmVzcy0+Z2V0X2FkZHJlc3MyKCk7CiAgICAgICAgICAgICRwYXJtc1snY2l0eSddID0gJGFkZHJlc3MtPmdldF9jaXR5KCk7CiAgICAgICAgICAgICRwYXJtc1snc3RhdGUnXSA9ICRhZGRyZXNzLT5nZXRfc3RhdGUoKTsKICAgICAgICAgICAgJHBhcm1zWyd6aXAnXSA9ICRhZGRyZXNzLT5nZXRfcG9zdGFsKCk7CiAgICAgICAgICAgICRwYXJtc1snY291bnRyeSddID0gJGFkZHJlc3MtPmdldF9jb3VudHJ5KCk7CiAgICAgICAgICAgICRwYXJtc1snZmlyc3RfbmFtZSddID0gJGFkZHJlc3MtPmdldF9maXJzdG5hbWUoKTsKICAgICAgICAgICAgJHBhcm1zWydsYXN0X25hbWUnXSA9ICRhZGRyZXNzLT5nZXRfbGFzdG5hbWUoKTsKICAgICAgICAgICAgJHBhcm1zWyduaWdodF9waG9uZV9hJ10gPSAkYWRkcmVzcy0+Z2V0X3Bob25lKCk7CiAgICAgICAgICAgICRwYXJtc1snYWRkcmVzc19vdmVycmlkZSddID0gMTsKICAgICAgICB9CgogICAgICAgCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIGFkZCBpdGVtIGRldGFpbHMuCiAgICAgICAgICAgIC8vIHNjYW4gZm9yIG5lZ2F0aXZlIGFtb3VudHMuCiAgICAgICAgICAgICRoYXNfbmVnYXRpdmUgPSBmYWxzZTsKICAgICAgICAgICAgJGl0ZW1zID0gJHRoaXMtPkdldEl0ZW1zKCk7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJGl0ZW1zKSB8fCBjb3VudCgkaXRlbXMpID09IDAgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1RoZXJlIGFyZSBubyBpdGVtcyBpbiB0aGUgY2FydCcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcmVhY2goICRpdGVtcyBhcyAkbmFtZSA9PiAkZGF0YSApIHsKICAgICAgICAgICAgICAgIGlmKCAkZGF0YVsnYW1vdW50J10gPCAwLjAwICkgewogICAgICAgICAgICAgICAgICAgICRoYXNfbmVnYXRpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJGhhc19uZWdhdGl2ZSApIHsKICAgICAgICAgICAgICAgIC8vIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIG5lZ2F0aXZlIGFtb3VudAogICAgICAgICAgICAgICAgLy8gc3R1cGlkIHBheXBhbCB3b24ndCBhbGxvdyB1cyB0byBzcGVjaWZ5IHRoYXQKICAgICAgICAgICAgICAgIC8vIHNvIHdlJ2xsIG11bmdlIGV2ZXJ5dGhpbmcgdG9nZXRoZXIgaW4gb25lIGxpbmUgaXRlbS4KICAgICAgICAgICAgICAgICRjb3VudCA9IDE7CiAgICAgICAgICAgICAgICAkYW1vdW50ID0gMDsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRpdGVtcyBhcyAkbmFtZSA9PiAkZGF0YSApIHsKICAgICAgICAgICAgICAgICAgICAkYW1vdW50ICs9ICRkYXRhWydhbW91bnQnXSAqICRkYXRhWydxdWFudGl0eSddOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHBhcm1zWydhbW91bnRfJy4kY291bnRdID0gbnVtYmVyX2Zvcm1hdCgkYW1vdW50LDIsJy4nLCcnKTsKICAgICAgICAgICAgICAgICRuYW1lID0gdHJpbSgkdGhpcy0+R2V0T3JkZXJEZXNjcmlwdGlvbigpKTsKICAgICAgICAgICAgICAgIGlmKCAhJG5hbWUgKSAkbmFtZSA9ICRtb2QtPkxhbmcoJ29ubGluZV9wdXJjaGFzZScpOwogICAgICAgICAgICAgICAgJHBhcm1zWydpdGVtX25hbWVfJy4kY291bnRdID0gJG5hbWU7CiAgICAgICAgICAgICAgICAkcGFybXNbJ3F1YW50aXR5XycuJGNvdW50XSA9IDE7CiAgICAgICAgICAgICAgICAkcGFybXNbJ2l0ZW1fbnVtYmVyXycuJGNvdW50XSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkY291bnQgPSAxOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJGl0ZW1zIGFzICRuYW1lID0+ICRkYXRhICkgewogICAgICAgICAgICAgICAgICAgICRwYXJtc1snYW1vdW50XycuJGNvdW50XSA9IG51bWJlcl9mb3JtYXQoJGRhdGFbJ2Ftb3VudCddLDIsJy4nLCcnKTsKICAgICAgICAgICAgICAgICAgICAkcGFybXNbJ2l0ZW1fbmFtZV8nLiRjb3VudF0gPSAkbmFtZTsKICAgICAgICAgICAgICAgICAgICAkcGFybXNbJ3F1YW50aXR5XycuJGNvdW50XSA9ICRkYXRhWydxdWFudGl0eSddOwoKICAgICAgICAgICAgICAgICAgICAkZGF0YVsnbnVtYmVyJ10gPSAkY291bnQ7CiAgICAgICAgICAgICAgICAgICAgJHBhcm1zWydpdGVtX251bWJlcl8nLiRjb3VudF0gPSAkZGF0YVsnbnVtYmVyJ107CgogICAgICAgICAgICAgICAgICAgICRjb3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CiAgICAgICAgJGdDbXMgPSBjbXNtcygpOwogICAgICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAgICAgJHNtYXJ0eSA9ICRnQ21zLT5HZXRTbWFydHkoKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3Bvc3R1cmwnLCR1cmwpOwogICAgICAgICRzbWFydHktPmFzc2lnbignY2hlY2tvdXRfdGV4dCcsJG1vZC0+TGFuZygnY2hlY2tvdXRfbWVzc2FnZScpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybCcsICRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzLycuJG1vZC0+R2V0TmFtZSgpLicvaW1hZ2VzL2V4cHJlc3MtY2hlY2tvdXQyLnBuZycpOwoKICAgICAgICAkc3RyID0gJyc7CiAgICAgICAgJGZtdCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIlcyIgdmFsdWU9IiVzIi8+Jy4iXG4iOwogICAgICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5PT4kdmFsdWUgKSB7CiAgICAgICAgICAgICRzdHIgLj0gc3ByaW50ZigkZm10LCRrZXksKHN0cmluZykkdmFsdWUpOwogICAgICAgIH0KICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2Zvcm12YWx1ZXMnLCRzdHIpOwoKICAgICAgICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdmb3JtX3RlbXBsYXRlJyk7CgkJKi8KCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXJ0aXRlbV9wb2xpY3koKQogICAgewogICAgICAgICRwb2xpY3kgPSBuZXcgXGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeTsKICAgICAgICAkcG9saWN5LT5zZXRfbWF4X3N1YnNjcmlwdGlvbnMoMCk7CiAgICAgICAgJHBvbGljeS0+c2V0X21peGVkX3N1YnNjcmlwdGlvbnMoRkFMU0UpOwogICAgICAgIHJldHVybiAkcG9saWN5OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBQcm9jZXNzVHJhbnNhY3Rpb24oKQogICAgewogICAgICAgIGRpZShfX01FVEhPRF9fLicgaXMgbm90IGltcGxlbWVudGVkJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFByb2Nlc3NTeW5jVHJhbnNhY3Rpb24oKQogICAgewogICAgICAgIGRpZShfX01FVEhPRF9fLicgaXMgbm90IGltcGxlbWVudGVkJyk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/sisow.cls5.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmNsYXNzIFNpc293DQp7DQoJcHJvdGVjdGVkIHN0YXRpYyAkaXNzdWVyczsNCglwcm90ZWN0ZWQgc3RhdGljICRsYXN0Y2hlY2s7DQoNCglwcml2YXRlICRyZXNwb25zZTsNCg0KCS8vIE1lcmNoYW50IGRhdGENCglwcml2YXRlICRtZXJjaGFudElkOw0KCXByaXZhdGUgJG1lcmNoYW50S2V5Ow0KCXByaXZhdGUgJHNob3BJZDsNCg0KCS8vIFRyYW5zYWN0aW9uIGRhdGENCglwdWJsaWMgJHBheW1lbnQ7CS8vIGVtcHR5PWlERUFMOyBzb2ZvcnQ9RElSRUNUZWJhbmtpbmc7IG1pc3RlcmNhc2g9TWlzdGVyQ2FzaDsgLi4uDQoJcHVibGljICRpc3N1ZXJJZDsJLy8gbWFuZGF0b3J5OyBzaXNvdyBiYW5rIGNvZGUNCglwdWJsaWMgJHB1cmNoYXNlSWQ7CS8vIG1hbmRhdG9yeTsgbWF4IDE2IGFscGhhbnVtZXJpYw0KCXB1YmxpYyAkZW50cmFuY2VDb2RlOwkvLyBtYXggNDAgc3RyaWN0IGFscGhhbnVtZXJpYyAobGV0dGVycyBhbmQgbnVtYmVycyBvbmx5KQ0KCXB1YmxpYyAkZGVzY3JpcHRpb247CS8vIG1hbmRhdG9yeTsgbWF4IDMyIGFscGhhbnVtZXJpYw0KCXB1YmxpYyAkYW1vdW50OwkJLy8gbWFuZGF0b3J5OyBtaW4gMC40NQ0KCXB1YmxpYyAkbm90aWZ5VXJsOw0KCXB1YmxpYyAkcmV0dXJuVXJsOwkvLyBtYW5kYXRvcnkNCglwdWJsaWMgJGNhbmNlbFVybDsNCglwdWJsaWMgJGNhbGxiYWNrVXJsOw0KDQoJLy8gU3RhdHVzIGRhdGENCglwdWJsaWMgJHN0YXR1czsNCglwdWJsaWMgJHRpbWVTdGFtcDsNCglwdWJsaWMgJGNvbnN1bWVyQWNjb3VudDsNCglwdWJsaWMgJGNvbnN1bWVyTmFtZTsNCglwdWJsaWMgJGNvbnN1bWVyQ2l0eTsNCgkNCgkvLyBJbnZvaWNlIGRhdGENCglwdWJsaWMgJGludm9pY2VObzsNCglwdWJsaWMgJGRvY3VtZW50SWQ7DQoNCgkvLyBSZXN1bHQvY2hlY2sgZGF0YQ0KCXB1YmxpYyAkdHJ4SWQ7DQoJcHVibGljICRpc3N1ZXJVcmw7DQoNCgkvLyBFcnJvciBkYXRhDQoJcHVibGljICRlcnJvckNvZGU7DQoJcHVibGljICRlcnJvck1lc3NhZ2U7DQoNCgkvLyBTdGF0dXMNCgljb25zdCBzdGF0dXNTdWNjZXNzID0gIlN1Y2Nlc3MiOw0KCWNvbnN0IHN0YXR1c0NhbmNlbGxlZCA9ICJDYW5jZWxsZWQiOw0KCWNvbnN0IHN0YXR1c0V4cGlyZWQgPSAiRXhwaXJlZCI7DQoJY29uc3Qgc3RhdHVzRmFpbHVyZSA9ICJGYWlsdXJlIjsNCgljb25zdCBzdGF0dXNPcGVuID0gIk9wZW4iOw0KDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtZXJjaGFudGlkLCAkbWVyY2hhbnRrZXksICRzaG9waWQgPSAiIikgew0KCQkkdGhpcy0+bWVyY2hhbnRJZCA9ICRtZXJjaGFudGlkOw0KCQkkdGhpcy0+bWVyY2hhbnRLZXkgPSAkbWVyY2hhbnRrZXk7DQoJCSR0aGlzLT5zaG9wSWQgPSAkc2hvcGlkOw0KCX0NCg0KCXByaXZhdGUgZnVuY3Rpb24gZXJyb3IoKSB7DQoJCSR0aGlzLT5lcnJvckNvZGUgPSAkdGhpcy0+cGFyc2UoImVycm9yY29kZSIpOw0KCQkkdGhpcy0+ZXJyb3JNZXNzYWdlID0gdXJsZGVjb2RlKCR0aGlzLT5wYXJzZSgiZXJyb3JtZXNzYWdlIikpOw0KCX0NCg0KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2UoJHNlYXJjaCwgJHhtbCA9IGZhbHNlKSB7DQoJCWlmICgkeG1sID09PSBmYWxzZSkgew0KCQkJJHhtbCA9ICR0aGlzLT5yZXNwb25zZTsNCgkJfQ0KCQlpZiAoKCRzdGFydCA9IHN0cnBvcygkeG1sLCAiPCIgLiAkc2VhcmNoIC4gIj4iKSkgPT09IGZhbHNlKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJJHN0YXJ0ICs9IHN0cmxlbigkc2VhcmNoKSArIDI7DQoJCWlmICgoJGVuZCA9IHN0cnBvcygkeG1sLCAiPC8iIC4gJHNlYXJjaCAuICI+IiwgJHN0YXJ0KSkgPT09IGZhbHNlKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJcmV0dXJuIHN1YnN0cigkeG1sLCAkc3RhcnQsICRlbmQgLSAkc3RhcnQpOw0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBzZW5kKCRtZXRob2QsIGFycmF5ICRrZXl2YWx1ZSA9IE5VTEwsICRyZXR1cm4gPSAxKSB7DQoJCSR1cmwgPSAiaHR0cHM6Ly93d3cuc2lzb3cubmwvU2lzb3cvaURlYWwvUmVzdEhhbmRsZXIuYXNoeC8iIC4gJG1ldGhvZDsNCgkJJG9wdGlvbnMgPSBhcnJheSgNCgkJCUNVUkxPUFRfUE9TVCA9PiAxLA0KCQkJQ1VSTE9QVF9IRUFERVIgPT4gMCwNCgkJCUNVUkxPUFRfVVJMID0+ICR1cmwsDQoJCQlDVVJMT1BUX0ZSRVNIX0NPTk5FQ1QgPT4gMSwNCgkJCUNVUkxPUFRfUkVUVVJOVFJBTlNGRVIgPT4gJHJldHVybiwNCgkJCUNVUkxPUFRfRk9SQklEX1JFVVNFID0+IDEsDQoJCQlDVVJMT1BUX1RJTUVPVVQgPT4gMTIwLA0KCQkJQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiA9PiAwLA0KCQkJQ1VSTE9QVF9QT1NURklFTERTID0+ICRrZXl2YWx1ZSA9PSBOVUxMID8gIiIgOiBodHRwX2J1aWxkX3F1ZXJ5KCRrZXl2YWx1ZSwgJycsICcmJykpOw0KCQkkY2ggPSBjdXJsX2luaXQoKTsNCgkJY3VybF9zZXRvcHRfYXJyYXkoJGNoLCAkb3B0aW9ucyk7DQoJCSR0aGlzLT5yZXNwb25zZSA9IGN1cmxfZXhlYygkY2gpOw0KCQljdXJsX2Nsb3NlKCRjaCk7IA0KCQlpZiAoISR0aGlzLT5yZXNwb25zZSkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCXByaXZhdGUgZnVuY3Rpb24gZ2V0RGlyZWN0b3J5KCkgew0KCQkkZGlmZiA9IDI0ICogNjAgKjYwOw0KCQlpZiAoc2VsZjo6JGxhc3RjaGVjaykNCgkJCSRkaWZmID0gdGltZSgpIC0gc2VsZjo6JGxhc3RjaGVjazsNCgkJaWYgKCRkaWZmIDwgMjQgKjYwICo2MCkNCgkJCXJldHVybiAwOw0KCQlpZiAoISR0aGlzLT5zZW5kKCJEaXJlY3RvcnlSZXF1ZXN0IikpDQoJCQlyZXR1cm4gLTE7DQoJCSRzZWFyY2ggPSAkdGhpcy0+cGFyc2UoImRpcmVjdG9yeSIpOw0KCQlpZiAoISRzZWFyY2gpIHsNCgkJCSR0aGlzLT5lcnJvcigpOw0KCQkJcmV0dXJuIC0yOw0KCQl9DQoJCXNlbGY6OiRpc3N1ZXJzID0gYXJyYXkoKTsNCgkJJGlzcyA9IGV4cGxvZGUoIjxpc3N1ZXI+Iiwgc3RyX3JlcGxhY2UoIjwvaXNzdWVyPiIsICIiLCAkc2VhcmNoKSk7DQoJCWZvcmVhY2ggKCRpc3MgYXMgJGsgPT4gJHYpIHsNCgkJCSRpc3N1ZXJpZCA9ICR0aGlzLT5wYXJzZSgiaXNzdWVyaWQiLCAkdik7DQoJCQkkaXNzdWVybmFtZSA9ICR0aGlzLT5wYXJzZSgiaXNzdWVybmFtZSIsICR2KTsNCgkJCWlmICgkaXNzdWVyaWQgJiYgJGlzc3Vlcm5hbWUpIHsNCgkJCQlzZWxmOjokaXNzdWVyc1skaXNzdWVyaWRdID0gJGlzc3Vlcm5hbWU7DQoJCQl9DQoJCX0NCgkJc2VsZjo6JGxhc3RjaGVjayA9IHRpbWUoKTsNCgkJcmV0dXJuIDA7DQoJfQ0KDQoJLy8gRGlyZWN0b3J5UmVxdWVzdA0KCXB1YmxpYyBmdW5jdGlvbiBEaXJlY3RvcnlSZXF1ZXN0KCYkb3V0cHV0LCAkc2VsZWN0ID0gZmFsc2UsICR0ZXN0ID0gZmFsc2UpIHsNCgkJaWYgKCR0ZXN0ID09PSB0cnVlKSB7DQoJCQkvLyBrYW4gb29rIHZpYSBkZSBnYXRld2F5IGFhbmdldnJhYWdkIHdvcmRlbiwgbWFhciBpcyBhbHRpamQgaGV0emVsZmRlDQoJCQlpZiAoJHNlbGVjdCA9PT0gdHJ1ZSkgew0KCQkJCSRvdXRwdXQgPSAiPHNlbGVjdCBpZD1cInNpc293YmFua1wiIG5hbWU9XCJpc3N1ZXJpZFwiPiI7DQoJCQkJJG91dHB1dCAuPSAiPG9wdGlvbiB2YWx1ZT1cIjk5XCI+U2lzb3cgQmFuayAodGVzdCk8L29wdGlvbj4iOw0KCQkJCSRvdXRwdXQgLj0gIjwvc2VsZWN0PiI7DQoJCQl9DQoJCQllbHNlIHsNCgkJCQkkb3V0cHV0ID0gYXJyYXkoIjk5IiA9PiAiU2lzb3cgQmFuayAodGVzdCkiKTsNCgkJCX0NCgkJCXJldHVybiAwOw0KCQl9DQoJCSRvdXRwdXQgPSBmYWxzZTsNCgkJJGV4ID0gJHRoaXMtPmdldERpcmVjdG9yeSgpOw0KCQlpZiAoJGV4IDwgMCkgew0KCQkJcmV0dXJuICRleDsNCgkJfQ0KCQlpZiAoJHNlbGVjdCA9PT0gdHJ1ZSkgew0KCQkJJG91dHB1dCA9ICI8c2VsZWN0IGlkPVwic2lzb3diYW5rXCIgbmFtZT1cImlzc3VlcmlkXCI+IjsNCgkJfQ0KCQllbHNlIHsNCgkJCSRvdXRwdXQgPSBhcnJheSgpOw0KCQl9DQoJCWZvcmVhY2ggKHNlbGY6OiRpc3N1ZXJzIGFzICRrID0+ICR2KSB7DQoJCQlpZiAoJHNlbGVjdCA9PT0gdHJ1ZSkgew0KCQkJCSRvdXRwdXQgLj0gIjxvcHRpb24gdmFsdWU9XCIiIC4gJGsgLiAiXCI+IiAuICR2IC4gIjwvb3B0aW9uPiI7DQoJCQl9DQoJCQllbHNlIHsNCgkJCQkkb3V0cHV0WyRrXSA9ICR2Ow0KCQkJfQ0KCQl9DQoJCWlmICgkc2VsZWN0ID09PSB0cnVlKSB7DQoJCQkkb3V0cHV0IC49ICI8L3NlbGVjdD4iOw0KCQl9DQoJCXJldHVybiAwOw0KCX0NCg0KCS8vIFRyYW5zYWN0aW9uUmVxdWVzdA0KCXB1YmxpYyBmdW5jdGlvbiBUcmFuc2FjdGlvblJlcXVlc3QoJGtleXZhbHVlID0gTlVMTCkgew0KCQkkdGhpcy0+dHJ4SWQgPSAkdGhpcy0+aXNzdWVyVXJsID0gIiI7DQoJCWlmICghJHRoaXMtPm1lcmNoYW50SWQpIHsNCgkJCSR0aGlzLT5lcnJvck1lc3NhZ2UgPSAnTm8gTWVyY2hhbnQgSUQnOw0KCQkJcmV0dXJuIC0xOw0KCQl9DQoJCWlmICghJHRoaXMtPm1lcmNoYW50S2V5KSB7DQoJCQkkdGhpcy0+ZXJyb3JNZXNzYWdlID0gJ05vIE1lcmNoYW50IEtleSc7DQoJCQlyZXR1cm4gLTI7DQoJCX0NCgkJaWYgKCEkdGhpcy0+cHVyY2hhc2VJZCkgew0KCQkJJHRoaXMtPmVycm9yTWVzc2FnZSA9ICdObyBwdXJjaGFzZWlkJzsNCgkJCXJldHVybiAtMzsNCgkJfQ0KCQlpZiAoJHRoaXMtPmFtb3VudCA8IDAuNDUpIHsNCgkJCSR0aGlzLT5lcnJvck1lc3NhZ2UgPSAnQW1vdW50IDwgMC40NSc7DQoJCQlyZXR1cm4gLTQ7DQoJCX0NCgkJaWYgKCEkdGhpcy0+ZGVzY3JpcHRpb24pIHsNCgkJCSR0aGlzLT5lcnJvck1lc3NhZ2UgPSAnTm8gZGVzY3JpcHRpb24nOw0KCQkJcmV0dXJuIC01Ow0KCQl9DQoJCWlmICghJHRoaXMtPnJldHVyblVybCkgew0KCQkJJHRoaXMtPmVycm9yTWVzc2FnZSA9ICdObyByZXR1cm51cmwnOw0KCQkJcmV0dXJuIC02Ow0KCQl9DQoJCWlmICghJHRoaXMtPmlzc3VlcklkICYmICEkdGhpcy0+cGF5bWVudCkgew0KCQkJJHRoaXMtPmVycm9yTWVzc2FnZSA9ICdObyBpc3N1ZXJpZCBvciBubyBwYXltZW50IG1ldGhvZCc7DQoJCQlyZXR1cm4gLTc7DQoJCX0NCgkJaWYgKCEkdGhpcy0+ZW50cmFuY2VDb2RlKQ0KCQkJJHRoaXMtPmVudHJhbmNlQ29kZSA9ICR0aGlzLT5wdXJjaGFzZUlkOw0KCQkkcGFycyA9IGFycmF5KCk7DQoJCSRwYXJzWyJtZXJjaGFudGlkIl0gPSAkdGhpcy0+bWVyY2hhbnRJZDsNCgkJJHBhcnNbInNob3BpZCJdID0gJHRoaXMtPnNob3BJZDsNCgkJJHBhcnNbInBheW1lbnQiXSA9ICR0aGlzLT5wYXltZW50Ow0KCQkkcGFyc1siaXNzdWVyaWQiXSA9ICR0aGlzLT5pc3N1ZXJJZDsNCgkJJHBhcnNbInB1cmNoYXNlaWQiXSA9ICR0aGlzLT5wdXJjaGFzZUlkOyANCgkJJHBhcnNbImFtb3VudCJdID0gcm91bmQoJHRoaXMtPmFtb3VudCAqIDEwMCk7DQoJCSRwYXJzWyJkZXNjcmlwdGlvbiJdID0gJHRoaXMtPmRlc2NyaXB0aW9uOw0KCQkkcGFyc1siZW50cmFuY2Vjb2RlIl0gPSAkdGhpcy0+ZW50cmFuY2VDb2RlOw0KCQkkcGFyc1sicmV0dXJudXJsIl0gPSAkdGhpcy0+cmV0dXJuVXJsOw0KCQkkcGFyc1siY2FuY2VsdXJsIl0gPSAkdGhpcy0+Y2FuY2VsVXJsOw0KCQkkcGFyc1siY2FsbGJhY2t1cmwiXSA9ICR0aGlzLT5jYWxsYmFja1VybDsNCgkJJHBhcnNbIm5vdGlmeXVybCJdID0gJHRoaXMtPm5vdGlmeVVybDsNCgkJJHBhcnNbInNoYTEiXSA9IHNoYTEoJHRoaXMtPnB1cmNoYXNlSWQgLiAkdGhpcy0+ZW50cmFuY2VDb2RlIC4gcm91bmQoJHRoaXMtPmFtb3VudCAqIDEwMCkgLiAkdGhpcy0+c2hvcElkIC4gJHRoaXMtPm1lcmNoYW50SWQgLiAkdGhpcy0+bWVyY2hhbnRLZXkpOw0KCQlpZiAoJGtleXZhbHVlKSB7DQoJCQlmb3JlYWNoICgka2V5dmFsdWUgYXMgJGsgPT4gJHYpIHsNCgkJCQkkcGFyc1ska10gPSAkdjsNCgkJCX0NCgkJfQ0KCQlpZiAoISR0aGlzLT5zZW5kKCJUcmFuc2FjdGlvblJlcXVlc3QiLCAkcGFycykpDQoJCQlyZXR1cm4gLTg7DQoJCSR0aGlzLT50cnhJZCA9ICR0aGlzLT5wYXJzZSgidHJ4aWQiKTsNCgkJJHRoaXMtPmlzc3VlclVybCA9IHVybGRlY29kZSgkdGhpcy0+cGFyc2UoImlzc3VlcnVybCIpKTsNCgkJJHRoaXMtPmludm9pY2VObyA9ICR0aGlzLT5wYXJzZSgiaW52b2ljZW5vIik7DQoJCSR0aGlzLT5kb2N1bWVudElkID0gJHRoaXMtPnBhcnNlKCJkb2N1bWVudGlkIik7DQoJCWlmICghJHRoaXMtPmlzc3VlclVybCkgew0KCQkJJHRoaXMtPmVycm9yKCk7DQoJCQlyZXR1cm4gLTk7DQoJCX0NCgkJcmV0dXJuIDA7DQoJfQ0KDQoJLy8gU3RhdHVzUmVxdWVzdA0KCXB1YmxpYyBmdW5jdGlvbiBTdGF0dXNSZXF1ZXN0KCR0cnhpZCA9IGZhbHNlKSB7DQoJCWlmICgkdHJ4aWQgPT09IGZhbHNlKQ0KCQkJJHRyeGlkID0gJHRoaXMtPnRyeElkOw0KCQlpZiAoISR0aGlzLT5tZXJjaGFudElkKQ0KCQkJcmV0dXJuIC0xOw0KCQlpZiAoISR0aGlzLT5tZXJjaGFudEtleSkNCgkJCXJldHVybiAtMjsNCgkJaWYgKCEkdHJ4aWQpDQoJCQlyZXR1cm4gLTM7DQoJCSR0aGlzLT50cnhJZCA9ICR0cnhpZDsNCgkJJHBhcnMgPSBhcnJheSgpOw0KCQkkcGFyc1sibWVyY2hhbnRpZCJdID0gJHRoaXMtPm1lcmNoYW50SWQ7DQoJCSRwYXJzWyJzaG9waWQiXSA9ICR0aGlzLT5zaG9wSWQ7DQoJCSRwYXJzWyJ0cnhpZCJdID0gJHRoaXMtPnRyeElkOw0KCQkkcGFyc1sic2hhMSJdID0gc2hhMSgkdGhpcy0+dHJ4SWQgLiAkdGhpcy0+c2hvcElkIC4gJHRoaXMtPm1lcmNoYW50SWQgLiAkdGhpcy0+bWVyY2hhbnRLZXkpOw0KCQlpZiAoISR0aGlzLT5zZW5kKCJTdGF0dXNSZXF1ZXN0IiwgJHBhcnMpKQ0KCQkJcmV0dXJuIC00Ow0KCQkkdGhpcy0+c3RhdHVzID0gJHRoaXMtPnBhcnNlKCJzdGF0dXMiKTsNCgkJaWYgKCEkdGhpcy0+c3RhdHVzKSB7DQoJCQkkdGhpcy0+ZXJyb3IoKTsNCgkJCXJldHVybiAtNTsNCgkJfQ0KCQkkdGhpcy0+dGltZVN0YW1wID0gJHRoaXMtPnBhcnNlKCJ0aW1lc3RhbXAiKTsNCgkJJHRoaXMtPmFtb3VudCA9ICR0aGlzLT5wYXJzZSgiYW1vdW50IikgLyAxMDAuMDsNCgkJJHRoaXMtPmNvbnN1bWVyQWNjb3VudCA9ICR0aGlzLT5wYXJzZSgiY29uc3VtZXJhY2NvdW50Iik7DQoJCSR0aGlzLT5jb25zdW1lck5hbWUgPSAkdGhpcy0+cGFyc2UoImNvbnN1bWVybmFtZSIpOw0KCQkkdGhpcy0+Y29uc3VtZXJDaXR5ID0gJHRoaXMtPnBhcnNlKCJjb25zdW1lcmNpdHkiKTsNCgkJJHRoaXMtPnB1cmNoYXNlSWQgPSAkdGhpcy0+cGFyc2UoInB1cmNoYXNlaWQiKTsNCgkJJHRoaXMtPmRlc2NyaXB0aW9uID0gJHRoaXMtPnBhcnNlKCJkZXNjcmlwdGlvbiIpOw0KCQkkdGhpcy0+ZW50cmFuY2VDb2RlID0gJHRoaXMtPnBhcnNlKCJlbnRyYW5jZWNvZGUiKTsNCgkJcmV0dXJuIDA7DQoJfQ0KDQoJLy8gUmVmdW5kUmVxdWVzdA0KCXB1YmxpYyBmdW5jdGlvbiBSZWZ1bmRSZXF1ZXN0KCR0cnhpZCkgew0KCQkkcGFycyA9IGFycmF5KCk7DQoJCSRwYXJzWyJtZXJjaGFudGlkIl0gPSAkdGhpcy0+bWVyY2hhbnRJZDsNCgkJJHBhcnNbInRyeGlkIl0gPSAkdHJ4aWQ7DQoJCSRwYXJzWyJzaGExIl0gPSBzaGExKCR0cnhpZCAuICR0aGlzLT5tZXJjaGFudElkIC4gJHRoaXMtPm1lcmNoYW50S2V5KTsNCgkJaWYgKCEkdGhpcy0+c2VuZCgiUmVmdW5kUmVxdWVzdCIsICRwYXJzKSkNCgkJCXJldHVybiAtMTsNCgkJJHRoaXMtPmRvY3VtZW50SWQgPSAkdGhpcy0+cGFyc2UoInJlZnVuZGlkIik7DQoJCWlmICghJHRoaXMtPmRvY3VtZW50SWQpIHsNCgkJCSR0aGlzLT5lcnJvcigpOw0KCQkJcmV0dXJuIC0yOw0KCQl9DQoJCXJldHVybiAkdGhpcy0+ZG9jdW1lbnRJZDsNCgl9DQoNCgkvLyBJbnZvaWNlUmVxdWVzdA0KCXB1YmxpYyBmdW5jdGlvbiBJbnZvaWNlUmVxdWVzdCgkdHJ4aWQsICRrZXl2YWx1ZSA9IE5VTEwpIHsNCgkJJHBhcnMgPSBhcnJheSgpOw0KCQkkcGFyc1sibWVyY2hhbnRpZCJdID0gJHRoaXMtPm1lcmNoYW50SWQ7DQoJCSRwYXJzWyJ0cnhpZCJdID0gJHRyeGlkOw0KCQkkcGFyc1sic2hhMSJdID0gc2hhMSgkdHJ4aWQgLiAkdGhpcy0+bWVyY2hhbnRJZCAuICR0aGlzLT5tZXJjaGFudEtleSk7DQoJCWlmICgka2V5dmFsdWUpIHsNCgkJCWZvcmVhY2ggKCRrZXl2YWx1ZSBhcyAkayA9PiAkdikgew0KCQkJCSRwYXJzWyRrXSA9ICR2Ow0KCQkJfQ0KCQl9DQoJCWlmICghJHRoaXMtPnNlbmQoIkludm9pY2VSZXF1ZXN0IiwgJHBhcnMpKQ0KCQkJcmV0dXJuIC0xOw0KCQkkdGhpcy0+aW52b2ljZU5vID0gJHRoaXMtPnBhcnNlKCJpbnZvaWNlbm8iKTsNCgkJaWYgKCEkdGhpcy0+aW52b2ljZU5vKSB7DQoJCQkkdGhpcy0+ZXJyb3IoKTsNCgkJCXJldHVybiAtMjsNCgkJfQ0KICAgICAgICAgICAgICAgIA0KCQkkdGhpcy0+ZG9jdW1lbnRJZCA9ICR0aGlzLT5wYXJzZSgiZG9jdW1lbnRpZCIpOw0KCQlyZXR1cm4gMDsgLy8kdGhpcy0+aW52b2ljZU5vOw0KCX0NCg0KCS8vIENhbmNlbFJlc2VydmF0aW9uUmVxdWVzdA0KCXB1YmxpYyBmdW5jdGlvbiBDYW5jZWxSZXNlcnZhdGlvblJlcXVlc3QoJHRyeGlkKSB7DQoJCSRwYXJzID0gYXJyYXkoKTsNCgkJJHBhcnNbIm1lcmNoYW50aWQiXSA9ICR0aGlzLT5tZXJjaGFudElkOw0KCQkkcGFyc1sidHJ4aWQiXSA9ICR0cnhpZDsNCgkJJHBhcnNbInNoYTEiXSA9IHNoYTEoJHRyeGlkIC4gJHRoaXMtPm1lcmNoYW50SWQgLiAkdGhpcy0+bWVyY2hhbnRLZXkpOw0KCQlpZiAoISR0aGlzLT5zZW5kKCJDYW5jZWxSZXNlcnZhdGlvblJlcXVlc3QiLCAkcGFycykpDQoJCQlyZXR1cm4gLTE7DQoJCXJldHVybiAwOw0KCX0NCg0KCS8vIENyZWRpdEludm9pY2VSZXF1ZXN0DQoJcHVibGljIGZ1bmN0aW9uIENyZWRpdEludm9pY2VSZXF1ZXN0KCR0cnhpZCwgJGtleXZhbHVlID0gTlVMTCkgew0KCQkkcGFycyA9IGFycmF5KCk7DQoJCSRwYXJzWyJtZXJjaGFudGlkIl0gPSAkdGhpcy0+bWVyY2hhbnRJZDsNCgkJJHBhcnNbInRyeGlkIl0gPSAkdHJ4aWQ7DQoJCSRwYXJzWyJzaGExIl0gPSBzaGExKCR0cnhpZCAuICR0aGlzLT5tZXJjaGFudElkIC4gJHRoaXMtPm1lcmNoYW50S2V5KTsNCgkJaWYgKCRrZXl2YWx1ZSkgew0KCQkJZm9yZWFjaCAoJGtleXZhbHVlIGFzICRrID0+ICR2KSB7DQoJCQkJJHBhcnNbJGtdID0gJHY7DQoJCQl9DQoJCX0NCgkJaWYgKCEkdGhpcy0+c2VuZCgiQ3JlZGl0SW52b2ljZVJlcXVlc3QiLCAkcGFycykpDQoJCQlyZXR1cm4gLTE7DQoJCSR0aGlzLT5pbnZvaWNlTm8gPSAkdGhpcy0+cGFyc2UoImludm9pY2VubyIpOw0KCQlpZiAoISR0aGlzLT5pbnZvaWNlTm8pIHsNCgkJCSR0aGlzLT5lcnJvcigpOw0KCQkJcmV0dXJuIC0yOw0KCQl9DQoJCSR0aGlzLT5kb2N1bWVudElkID0gJHRoaXMtPnBhcnNlKCJkb2N1bWVudGlkIik7DQoJCXJldHVybiAwOyAvLyR0aGlzLT5pbnZvaWNlTm87DQoJfQ0KfQ0KDQovKiR0ID0gbmV3IFNpc293KCIyNTM3Mjc4ODEzIiwgImYxYmNhYzA0ZWY0NjFlN2E4NDc1N2U2Mzk0YmEyMDViMWY2MzkzNmUiKTsNCiRzZWxlY3QgPSAiIjsNCiR0LT5EaXJlY3RvcnlSZXF1ZXN0KCRzZWxlY3QpOyAvLyAkc2VsZWN0IHdvcmR0IGdldnVsZCBtZXQgYXJyYXkoIjAxIiA9PiAiQUJOIEFtcm8gQmFuayIsICIwMiIgPT4gIkFTTiBCYW5rIiwgLi4uKQ0KJHQtPkRpcmVjdG9yeVJlcXVlc3QoJHNlbGVjdCwgdHJ1ZSk7IC8vICRzZWxlY3Qgd29yZHQgZ2V2dWxkIG1ldCBlZW4gZHJvcGRvd24gIjxzZWxlY3QgLi4uPjxvcHRpb24uLi4+Li4uPC9zZWxlY3Q+Ig0KJHQtPmlzc3VlcklkID0gIjEwIjsNCiR0LT5wdXJjaGFzZUlkID0gIjIwMTEwMzI5MDAxIjsNCiR0LT5kZXNjcmlwdGlvbiA9ICJCZXN0ZWxsaW5nIDIwMTEwMzI5MDAxIjsNCiR0LT5hbW91bnQgPSAzLjQ0Ow0KJHQtPm5vdGlmeVVybCA9ICJodHRwOi8vLi4uIjsJCS8vIFZlcndlcmtpbmdzIFVSTDsgbmlldCB2ZXJwbGljaHQsIGthbiBvb2sgdmlhIHJldHVyblVSTA0KJHQtPnJldHVyblVybCA9ICJodHRwOi8vLi4uIjsJCS8vIFN1Y2Nlc3MgVVJMDQokdC0+Y2FuY2VsVXJsID0gImh0dHA6Ly8uLi4iOwkJLy8gTmlldCBTdWNjZXNzIFVSTDsgbmlldCBhYW53ZXppZywgZGFuIHdvcmR0IHJldHVyblVSTCBoaWVydm9vciBnZWJydWlrdA0KJHQtPlRyYW5zYWN0aW9uUmVxdWVzdCgpOw0KJHQtPlN0YXR1c1JlcXVlc3QoKTsNCiR0LT5TdGF0dXNSZXF1ZXN0KCIwMDUwMDAwNzE1NDY2MTU0Iik7DQppZiAoJHQtPnN0YXR1cyA9PSBTaXNvdzo6c3RhdHVzU3VjY2VzcykNCnsNCgllY2hvICJHZWx1a3QiOw0KfSovDQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9Y21zbXMoKS0+R2V0RGIoKTsKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKCiRmbGRzID0gImlkIEkgS0VZIEFVVE8sCiAgICAgICAgIE1lcmNoYW50SUQgQygyMCksCgkJIFNob3BJZCBDKDIwKSwKICAgICAgICAgTWVyY2hhbnRLZXkgQyg4MCksCiAgICAgICAgIHRlc3Rtb2RlIEMoNSksCgkJIHNvZm9ydCBDKDUpLAoJCSBtaXN0ZXJjYXNoIEMoNSksCgkJIHdlYnNob3AgQyg1KSwKCQkgcG9kaXVtIEMoNSksCiAJCSBwYXlwYWxlYyBDKDUpLAogCQkganF1ZXJ5IEMoNSksCiAJCSBjcmVkaXRjYXJkcyBDKDUpLAogCQkga2xhcm5hIEMoNSksCgkJIGNvbXBsZXRlX3VybCBDKDgwKSwKCQkgY2FuY2VsX3VybCBDKDgwKTsKCQkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2lzb3dnYXRld2F5JywKCQkJCSAgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfZm9ybV90ZW1wbGF0ZS50cGwnOwokZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwokdGhpcy0+U2V0VGVtcGxhdGUoJ2Zvcm1fdGVtcGxhdGUnLCRkYXRhKTsKCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfbWFpbF90ZW1wbGF0ZS50cGwnOwokZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwokdGhpcy0+U2V0VGVtcGxhdGUoJ21haWxfdGVtcGxhdGUnLCRkYXRhKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYWlsc3ViamVjdCcsJ0JlZGFua3Qgdm9vciB1dyBiZXN0ZWxsaW5nIGVuIGJldGFsaW5nIGFhbiB7c2l0ZW5hbWV9Jyk7Ci8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2lzb3dnYXRld2F5IiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpc293R2F0ZXdheSAoYykgMjAxMiBieSBSZWludCBKYW50aW5vCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5LgojCiMgTm90ZTogVGhpcyBtb2R1bGUgaXMgYmFzZWQgb24gdGhlIFBheXBhbEdhdGV3YXkgYnkgUm9iZXJ0IENhbXBiZWxsLgojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9Y21zbXMoKS0+R2V0RGIoKTsKCgoKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IFNpc293R2F0ZXdheQp2ZXJzaW9uID0gMS4wLjAKZGVzY3JpcHRpb24gPSAKYXV0aG9yID0gUmVpbnQgdmFuIGRlciBMYWFuCmF1dGhvcmVtYWlsID0gakBudGluby5pdAptaW5jbXN2ZXJzaW9uID0gMS4xMi4xCmxhenlsb2FkYWRtaW4gPSAxCmxhenlsb2FkZnJvbnRlbmQgPSAwCltkZXBlbmRzXQpDR0V4dGVuc2lvbnMgPSAxLjUzCkNHUGF5bWVudEdhdGV3YXlCYXNlID0gMS42Cg==]]></data>
	</file>
	<file>
	  <filename>/SisowGateway.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KI0JFR0lOX0xJQ0VOU0UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogU2lzb3dHYXRld2F5IChjKSAyMDEyIGJ5IFJlaW50IEphbnRpbm8NCiMgICAgICAgICAoaW5mb0BqYW50aW5vLm5sKQ0KIw0KIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB0aGUgYWJpbGl0eSB0byBwcm9jZXNzDQojICBTaXNvdyAoaWRlYWwsIHBheXBhbCwgZ2lmdGNhcmRzKSBQYXltZW50cyBnYXRld2F5Lg0KIw0KIyBOb3RlOiBUaGlzIG1vZHVsZSBpcyBiYXNlZCBvbiB0aGUgUGF5cGFsR2F0ZXdheSBieSBSb2JlcnQgQ2FtcGJlbGwuDQojIEFuZCBJZGVhbEdhdGV3YXkgTGl0ZSAoYykgMjAxMCBieSBNYXJjIHZhbiBkZSBHZWlqbiAobWFyY0B2ZGdlaWpuLmNvbSkNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KI0VORF9MSUNFTlNFDQoNCiRjZ3BheW1lbnRnYXRld2F5YmFzZSA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLA0KCSdDR1BheW1lbnRHYXRld2F5QmFzZScsJ0NHUGF5bWVudEdhdGV3YXlCYXNlLm1vZHVsZS5waHAnKTsNCmlmKCAhaXNfcmVhZGFibGUoICRjZ3BheW1lbnRnYXRld2F5YmFzZSApICkNCnsNCgllY2hvICc8aDE+PGZvbnQgY29sb3I9InJlZCI+RVJST1I6IFRoZSBDR1BheW1lbnRHYXRld2F5QmFzZSBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLiAgUGxlYXNlIGluc3RhbGwgaXQ8L2ZvbnQ+PC9oMT4nOw0KCXJldHVybjsNCn0NCmlmKCAhY2xhc3NfZXhpc3RzKCdDR1BheW1lbnRHYXRld2F5QmFzZScpICkNCnsNCiAgcmVxdWlyZV9vbmNlKCRjZ3BheW1lbnRnYXRld2F5YmFzZSk7DQp9DQoNCmNsYXNzIFNpc293R2F0ZXdheSBleHRlbmRzIENHUGF5bWVudEdhdGV3YXlCYXNlDQp7DQogICAgcHJpdmF0ZSAkX2RhdGEgPSBhcnJheSgpOw0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMC4wJzsgfQ0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCkgeyByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL2RvYy9oZWxwLmluYycpOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgcmV0dXJuICdSZWludCB2YW4gZGVyIExhYW4nOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2pAbnRpbm8uaXQnOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvZG9jL2NoYW5nZWxvZy5pbmMnKTsgfQ0KICAgIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIFRSVUU7IH0NCiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdlY29tbWVyY2UnOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQ0KICAgIHB1YmxpYyBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQ0KICAgIHB1YmxpYyBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0NCiAgICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7IH0NCiAgICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMS4xMi4xJzsgfQ0KICAgIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4nMS41MycsJ0NHUGF5bWVudEdhdGV3YXlCYXNlJz0+JzEuNicpOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9DQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBGQUxTRTsgfQ0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRTaG9wTmFtZSgpDQogICAgew0KICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsNCiAgCSR0bXAgPSAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ215aW5mb19hZGRyZXNzJyk7DQogIAkkbXlfYWRkcmVzcyA9ICcnOw0KICAJaWYoICR0bXAgKQ0KICAJICB7DQogIAkgICAgJG15X2FkZHJlc3MgPSB1bnNlcmlhbGl6ZSgkdG1wKTsNCiAgCSAgfQ0KCQ0KICAJcmV0dXJuICRteV9hZGRyZXNzLT5nZXRfY29tcGFueSgpOw0KDQogIAkvLyRzbWFydHktPmFzc2lnbignbXlfYWRkcmVzcycsJG15X2FkZHJlc3MpOw0KICAgIH0NCiAgIA0KICAgIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOw0KICAgICAgICANCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Byb2Nlc3MnLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnb3JkZXJfaWQnLCBDTEVBTl9JTlQpOw0KICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbXljdXN0b20nLCBDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnb3JkZXJfbmFtZScsIENMRUFOX1NUUklORyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvcmRlcl9hbW91bnQnLCBDTEVBTl9GTE9BVCk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkYXRha2V5JywgQ0xFQU5fU1RSSU5HKTsNCiAgICB9DQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiAgICAvLyBCZWdpbiBtZXRob2RzIHJlcXVpcmVkIGZvciBwYXltZW50IGdhdGV3YXlzDQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfbmV3X2dhdGV3YXkoKQ0KICAgIHsNCiAgICAgICAgJG9iaiA9IG5ldyBcU2lzb3dHYXRld2F5XGdhdGV3YXk7DQogICAgICAgIHJldHVybiAkb2JqOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQ9JycpDQogICAgew0KCQlyZXF1aXJlX29uY2UoX19ESVJfXy4nL2xpYi9zaXNvdy5jbHM1LnBocCcpOw0KCQlwYXJlbnQ6OkRvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7DQogICAgfQ0KDQogDQoNCg0KfSAvLyBjbGFzcw0K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_settings_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij48aWZyYW1lIHNyYz0iL21vZHVsZXMvU2lzb3dHYXRld2F5L3RlbXBsYXRlcy9wYXlwYWwuaHRtbCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI0MCIgYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT48L2Rpdj4KCTxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+CgkJPGgzPlN0ZXVuIGRlemUgcGx1Z2luIGRvb3IgdGUgZG9uZXJlbiBvZiBkb29yIHV3IGtsYW50ZW4gYWFuIHRlIGxhdGVuIG1lbGRlbiB2b29yIFNpc293IHZpYSA8YSBocmVmPSJodHRwczovL3d3dy5zaXNvdy5ubC9TaXNvdy9pRGVhbC9BYW5tZWxkZW4uYXNweD9yPTE0MDYwNSIgdGFyZ2V0PSJfQkxBTksiPmRlemUgbGluazwvYT48L2gzPgoJCVUsIG9mIHV3IGtsYW50ZW4genVsbGVuIGRlIHplbGZkZSB0YXJpZXZlbiBob3VkZW4sIGhldCBrb3N0IHUgKG9mIHV3IGtsYW50ZW4pIGR1cyA8Yj5uaWV0czwvYj4gb20gZGV6ZSBwbHVnaW4gdGUgc3RldW5lbiE8YnIvPgoJCTxiciAvPjxiciAvPgoJCTxiciAvPjxlbT4oVGVzdCkgQmV0YWxpbmdlbiB3ZXJrZW4gZW5rZWwgbWV0IGVlbiBnZWxkaWcgU2lzb3cgYWNjb3VudCB3YWFyYmlqIHRlc3Rtb2R1cyBvb2sgaW4gZGUgYWRtaW4gcGFuZWwgdmFuIFNpc293IGFhbiBzdGFhdCwgZW5rZWwgYWxzIGhldCBTaXNvdyBhY2NvdW50IGdlYWN0aXZlZXJkIGlzIGthbiBkZSB0ZXN0bW9kdXMgdWl0LjwvZW0+PGJyIC8+PGJyIC8+Cgk8L2Rpdj4KICA8dGFibGU+CiAgICA8dGhlYWQ+CiAgICAgIDx0cj4KICAgICAgICA8dGg+TWVyY2hhbnRJRDwvdGg+CiAgICAgICAgPHRoPk1lcmNoYW50S2V5PC90aD4KCQk8dGg+U2hvcElkPC90aD4KICAgICAgICA8dGg+dGVzdG1vZGU8L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgICAge2lmIGlzc2V0KCRlbnRyeSl9CiAgICAgICAgCiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5pbnB1dF9NZXJjaGFudElEfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5pbnB1dF9NZXJjaGFudEtleX08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+aW5wdXRfU2hvcElkfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5pbnB1dF90ZXN0bW9kZX08L3RkPgogICAgICAgICAgPC90cj4KCQkgIDx0cj4KCQkJPHRkIGNvbHNwYW49IjQiPgoJCQkJPGg0PkdlZWYgZGUgbm9kaWdlIHBhZ2luYSB1cmwncyBvcDwvaDQ+CgkJCQl7JGVudHJ5LT5pbnB1dF9jb21wbGV0ZV91cmx9IEJldGFsaW5nIGdlbHVrdDxiciAvPgoJCQkJeyRlbnRyeS0+aW5wdXRfY2FuY2VsX3VybH0gQmV0YWxpbmcgZ2Vhbm51bGVlcmQgb2YgZm91dDxiciAvPgoJCQk8L3RkPgoJCSAgPC90cj4KCQkgIDx0cj4KCQkJPHRkIGNvbHNwYW49IjQiPgoJCQkJPGg0PlNlbGVjdGVlciB3ZWxrZSBiZXRhYWxmdW5jdGllcyB1IHdpbHQgYWFuYmllZGVuICh3ZXJrdCBuaWV0IGluIHRlc3Rtb2R1cyk8L2g0PgoJCQkJeyRlbnRyeS0+aW5wdXRfc29mb3J0fSBESVJFQ1RlYmFua2luZzxiciAvPgoJCQkJeyRlbnRyeS0+aW5wdXRfbWlzdGVyY2FzaH0gTWlzdGVyQ2FzaDxiciAvPgoJCQkJeyRlbnRyeS0+aW5wdXRfd2Vic2hvcH0gV2ViU2hvcCBHaWZ0Q2FyZDxiciAvPgoJCQkJeyRlbnRyeS0+aW5wdXRfcG9kaXVtfSBQb2RpdW0gQ2FkZWF1a2FhcnQ8YnIgLz4KCQkJCXskZW50cnktPmlucHV0X3BheXBhbGVjfSBQYXlwYWw8YnIgLz4KCQkJCXskZW50cnktPmlucHV0X2NyZWRpdGNhcmRzfSBDcmVkaXRjYXJkczxiciAvPgoJCQkJeyRlbnRyeS0+aW5wdXRfa2xhcm5hfSBLbGFybmE8YnIgLz4KCgkJCQl7JGVudHJ5LT5pbnB1dF9qcXVlcnl9IEdlYnJ1aWsgalF1ZXJ5IHZvb3IgaGV0IHdlZXJnZXZlbiAvIHZlcmJlcmdlbiB2YW4gZGUgaURlYWwgYmFua2VuPGJyIC8+CgkJCTwvdGQ+CgkJICA8L3RyPgoKCQkKICAgICAgICAKICAgICAge2Vsc2V9CiAgICAgIDx0cj4KICAgICAgICA8dGQ+eyRpbnB1dF9NZXJjaGFudElEfTwvdGQ+CiAgICAgICAgPHRkPnskaW5wdXRfTWVyY2hhbnRLZXl9PC90ZD4KCQk8dGQ+eyRpbnB1dF9TaG9wSWR9PC90ZD4KICAgICAgICA8dGQ+eyRpbnB1dF90ZXN0bW9kZX08L3RkPgogICAgICA8L3RyPgoJICA8dHI+CgkJPHRkIGNvbHNwYW49IjQiPgoJCQk8aDQ+R2VlZiBkZSBub2RpZ2UgcGFnaW5hIHVybCdzIG9wPC9oND4KCQkJeyRpbnB1dF9jb21wbGV0ZV91cmx9IEJldGFsaW5nIGdlbHVrdDxiciAvPgoJCQl7JGlucHV0X2NhbmNlbF91cmx9IEJldGFsaW5nIGdlYW5udWxlZXJkIG9mIGZvdXQ8YnIgLz4KCQk8L3RkPgoJICA8L3RyPgoJICA8dHI+CgkJPHRkIGNvbHNwYW49IjQiPgoJCQk8aDQ+U2VsZWN0ZWVyIHdlbGtlIGJldGFhbGZ1bmN0aWVzIHUgd2lsdCBhYW5iaWVkZW4gKHdlcmt0IG5pZXQgaW4gdGVzdG1vZHVzKTwvaDQ+CgkJCXskaW5wdXRfc29mb3J0fSBESVJFQ1RlYmFua2luZzxiciAvPgoJCQl7JGlucHV0X21pc3RlcmNhc2h9IE1pc3RlckNhc2g8YnIgLz4KCQkJeyRpbnB1dF93ZWJzaG9wfSBXZWJTaG9wIEdpZnRDYXJkPGJyIC8+CgkJCXskaW5wdXRfcG9kaXVtfSBQb2RpdW0gQ2FkZWF1a2FhcnQ8YnIgLz4KCQkJeyRpbnB1dF9wYXlwYWxlY30gUGF5cGFsPGJyIC8+CgkJCXskaW5wdXRfY3JlZGl0Y2FyZHN9IENyZWRpdGNhcmRzPGJyIC8+CgkJCXskaW5wdXRfa2xhcm5hfSBLbGFybmE8YnIgLz4KCQkKCQkJPGJyLz4KCQkJeyRpbnB1dF9qcXVlcnl9IEdlYnJ1aWsgalF1ZXJ5IHZvb3IgaGV0IHdlZXJnZXZlbiAvIHZlcmJlcmdlbiB2YW4gZGUgaURlYWwgYmFua2VuPGJyIC8+CgkJPC90ZD4KCSAgPC90cj4KCSAgCgkgIHsvaWZ9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/mail_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5FLU1haWwgb25kZXJ3ZXJwPC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbWFpbHN1YmplY3R9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+CjwvZGl2Pgp7JGZvcm1lbmR9Cjxici8+]]></data>
	</file>
	<file>
	  <filename>/templates/orig_form_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZm9ybSB0ZW1wbGF0ZSAqfQo8Zm9ybSBuYW1lPSJib2R5X2Zvcm0iIG1ldGhvZD0icG9zdCIgeGFjdGlvbj0ieyR1cmx9IiBhY3Rpb249InskdXJsfSIgaWQ9ImJvZHlfZm9ybSIgY2xhc3M9InNpc293Zm9ybSI+CjxkaXYgY2xhc3M9InNpc293QmFuayBzaXNvd2lEZWFsIj4KCTxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9InNpc293aURlYWwiIG5hbWU9InBheW1lbnQiIHZhbHVlPSIiPgoJPGxhYmVsIGZvcj0ic2lzb3dpRGVhbCI+aURFQUw8L2xhYmVsPgoJPGRpdiBjbGFzcz0ic2lzb3dpRGVhbGJhbmtlbiI+eyRiYW5rZW59PC9kaXY+CjwvZGl2PgoKCntpZiAkc3NvZm9ydH0KCTxkaXYgY2xhc3M9InNpc293QmFuayBzaXNvd0RpcmVjdGViYW5raW5nIj48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJzaXNvd0RpcmVjdGViYW5raW5nIiBuYW1lPSJwYXltZW50IiB2YWx1ZT0ic29mb3J0Ij48bGFiZWwgZm9yPSJzaXNvd0RpcmVjdGViYW5raW5nIj5ESVJFQ1RlYmFua2luZzwvbGFiZWw+PC9kaXY+CnsvaWZ9CntpZiAkc21pc3RlcmNhc2h9Cgk8ZGl2IGNsYXNzPSJzaXNvd0Jhbmsgc2lzb3dNaXN0ZXJDYXNoIj48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJzaXNvd01pc3RlckNhc2giIG5hbWU9InBheW1lbnQiIHZhbHVlPSJtaXN0ZXJjYXNoIj48bGFiZWwgZm9yPSJzaXNvd01pc3RlckNhc2giPk1pc3RlckNhc2g8L2xhYmVsPjwvZGl2Pgp7L2lmfQp7aWYgJHN3ZWJzaG9wfQoJPGRpdiBjbGFzcz0ic2lzb3dCYW5rIHNpc293V2ViU2hvcEdpZnRDYXJkIj48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJzaXNvd1dlYlNob3BHaWZ0Q2FyZCIgbmFtZT0icGF5bWVudCIgdmFsdWU9IndlYnNob3AiPjxsYWJlbAlmb3I9InNpc293V2ViU2hvcEdpZnRDYXJkIj5XZWJTaG9wIEdpZnRDYXJkPC9sYWJlbD48L2Rpdj4Key9pZn0Ke2lmICRzcG9kaXVtfQoJPGRpdiBjbGFzcz0ic2lzb3dCYW5rIHNpc293UG9kaXVtIj48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJzaXNvd1BvZGl1bSIgbmFtZT0icGF5bWVudCIgdmFsdWU9InBvZGl1bSI+PGxhYmVsIGZvcj0ic2lzb3dQb2RpdW0iPlBvZGl1bSBDYWRlYXVrYWFydDwvbGFiZWw+PC9kaXY+CnsvaWZ9CntpZiAkc3BheXBhbGVjfQoJPGRpdiBjbGFzcz0ic2lzb3dCYW5rIHNpc293UGF5cGFsIj48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJzaXNvd1BheXBhbCIgbmFtZT0icGF5bWVudCIgdmFsdWU9InBheXBhbGVjIj48bGFiZWwgZm9yPSJzaXNvd1BheXBhbCI+UGF5cGFsIG9mIGNyZWRpdGNhcmQ8L2xhYmVsPjwvZGl2Pgp7L2lmfQp7aWYgJHNjcmVkaXRjYXJkc30KPGRpdiBjbGFzcz0ic2lzb3dCYW5rIHNpc293Q3JlZGl0Y2FyZHMiPgoJPGlucHV0IHR5cGU9InJhZGlvIiBpZD0ic2lzb3dDcmVkaXRjYXJkcyIgbmFtZT0icGF5bWVudCIgdmFsdWU9ImNjIj4KCTxsYWJlbCBmb3I9InNpc293Q3JlZGl0Y2FyZHMiPkNyZWRpdGNhcmQ8L2xhYmVsPgoJPGRpdiBjbGFzcz0ic2lzb3dDcmVkaXRjYXJkc2xpc3QiPgoJCTxzZWxlY3QgbmFtZT0icGF5bWVudCI+CgkJCTxvcHRpb24gdmFsdWU9Im1hZXN0cm8iPk1hZXN0cm88L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0ibWFzdGVyY2FyZCI+TWFzdGVyY2FyZDwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSJ2aXNhIj5WaXNhPC9vcHRpb24+CQoJCTwvc2VsZWN0PgoJPC9kaXY+CjwvZGl2Pgp7L2lmfQoKCgoKe2lmICRza2xhcm5hfQoJeyp0b2RvIG5vdCBpbXBsZW1lbnRlZCB5ZXQqfQoJPGRpdiBjbGFzcz0ic2lzb3dCYW5rIHNpc293S2xhcm5hIj4KCQk8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJzaXNvd0tsYXJuYSIgbmFtZT0icGF5bWVudCIgdmFsdWU9ImtsYXJuYSI+PGxhYmVsIGZvcj0ic2lzb3dLbGFybmEiPkFjaHRlcmFmIGJldGFsZW4gKEtsYXJuYSk8L2xhYmVsPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJzaXNvd0Jhbmsgc2lzb3dLbGFybmFkZWxlbiI+CgkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9InNpc293S2xhcm5hZGVsZW4iIG5hbWU9InBheW1lbnQiIHZhbHVlPSJrbGFybmFhY2MiPjxsYWJlbCBmb3I9InNpc293S2xhcm5hZGVsZW4iPkdlc3ByZWlkIGJldGFsZW4gKEtsYXJuYSk8L2xhYmVsPgoJPC9kaXY+CnsvaWZ9CgkJCgoKCgo8aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ0aGlzLmRpc2FibGVkPXRydWU7ZG9jdW1lbnQuYm9keV9mb3JtLnN1Ym1pdCgpIiB2YWx1ZT0iR2EgdmVyZGVyIiB0aXRsZT0iQmV0YWFsIiBjbGFzcz0ic2lzb3dTdWJtaXQiIGlkPSJzaXNvd3N1Ym1pdCIgLz4KPC9mb3JtPgp7aWYgJHNqcXVlcnl9e2xpdGVyYWx9CjxzdHlsZT4uc2lzb3dpRGVhbGJhbmtlbiB7ZGlzcGxheTogbm9uZTt9PC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJLyogPCFbQ0RBVEFbICovCgkJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCQkJJCgiLnNpc293Zm9ybSBpbnB1dFt0eXBlPSdyYWRpbyddIikuY2hhbmdlKGZ1bmN0aW9uKCkgewoJCQkJICAJaWYgKCQoIi5zaXNvd2Zvcm0gaW5wdXRbdHlwZT0ncmFkaW8nXTpjaGVja2VkIikudmFsKCkgPT0gJycpewoJCQkJCQkkKCIuc2lzb3dpRGVhbGJhbmtlbiIpLnNsaWRlRG93bignZmFzdCcpOwoJCQkJCQkkKCIuc2lzb3dDcmVkaXRjYXJkc2xpc3QiKS5zbGlkZVVwKCdmYXN0Jyk7CgkJCQkJfSBlbHNlIGlmICgkKCIuc2lzb3dmb3JtIGlucHV0W3R5cGU9J3JhZGlvJ106Y2hlY2tlZCIpLnZhbCgpID09ICdjYycpIHsKCQkJCQkJJCgiLnNpc293aURlYWxiYW5rZW4iKS5zbGlkZVVwKCdmYXN0Jyk7CgkJCQkJCSQoIi5zaXNvd0NyZWRpdGNhcmRzbGlzdCIpLnNsaWRlRG93bignZmFzdCcpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSQoIi5zaXNvd2lEZWFsYmFua2VuIikuc2xpZGVVcCgnZmFzdCcpOwoJCQkJCQkkKCIuc2lzb3dDcmVkaXRjYXJkc2xpc3QiKS5zbGlkZVVwKCdmYXN0Jyk7CgkJCQkJfTsKCQkJCX0pOwoJCQkJCgkJCX0pOwoJCS8qIF1dPiAqLwoJCTwvc2NyaXB0PgkKey9saXRlcmFsfXsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_mail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGg0PlV3IG9yZGVybnVtbWVyOiZuYnNwO3skb3JkZXJudW1iZXJ9PC9oND4Ke2lmICRvcmRlcl9vYmotPmNvdW50X3BheW1lbnRzKCkgfQo8aDQ+QmV0YWxpbmdzIGRldGFpbHM6PC9oND4KPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPkRhdHVtPC90aD4KICAgICAgPHRoPk1ldGhvZGU8L3RoPgogICAgICA8dGg+RGV0YWlsczwvdGg+CiAgICAgIDx0aD5TdGF0dXM8L3RoPgogICAgICA8dGg+SG9ldmVlbGhlaWQ8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSRvcmRlcl9vYmotPmdldF9wYXltZW50cygpIGl0ZW09J3BheW1lbnQnfQogIDx0cj4KICAgPHRkPnskcGF5bWVudC0+Z2V0X3BheW1lbnRfZGF0ZSgpfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICA8dGQ+e2Fzc2lnbiB2YXI9J3RtcCcgdmFsdWU9JHBheW1lbnQtPmdldF9tZXRob2QoKX17JHRtcH08L3RkPgogICA8dGQ+CiAgICAge2lmICR0bXAgPT0gJ2NyZWRpdGNhcmQnfQogICAgICAgeyRwYXltZW50LT5nZXRfY2NfbnVtYmVyX21hc2tlZCgpfQogICAgIHtlbHNlIGlmICR0bXAgPT0gJ29ubGluZSd9CiAgICAgICB7JHBheW1lbnQtPmdldF9nYXRld2F5KCl9OiB7JHBheW1lbnQtPmdldF90eG5faWR9CiAgICAgey9pZn0KICAgPC90ZD4KICAgPHRkPnthc3NpZ24gdmFyPSd0bXAnIHZhbHVlPSRwYXltZW50LT5nZXRfc3RhdHVzKCl9eyR0bXB9PC90ZD4KICAgPHRkPiZldXJvO3skcGF5bWVudC0+Z2V0X2Ftb3VudCgpfG51bWJlcl9mb3JtYXQ6MjoiLCI6Ii4ifTwvdGQ+CiAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4KPGJyLz4Key9pZn0KPGg0PkZhY3R1dXIgYWFuPC9oND4Ke2Fzc2lnbiB2YXI9J2JpbGxpbmcnIHZhbHVlPSRvcmRlcl9vYmotPmdldF9iaWxsaW5nKCl9Cjx0YWJsZT4KICA8dHI+CiAgIDx0ZD5Wb29ybmFhbTo8L3RkPgogICA8dGQ+eyRiaWxsaW5nLT5nZXRfZmlyc3RuYW1lKCl9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgPHRkPkFjaHRlcm5hYW06PC90ZD4KICAgPHRkPnskYmlsbGluZy0+Z2V0X2xhc3RuYW1lKCl9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgPHRkPkFkcmVzIDE6PC90ZD4KICAgPHRkPnskYmlsbGluZy0+Z2V0X2FkZHJlc3MxKCl9PC90ZD4KICA8L3RyPgogIHtpZiAkYmlsbGluZy0+Z2V0X2FkZHJlc3MyKCkgIT0gJyd9CiAgPHRyPgogICA8dGQ+QWRyZXMgMjo8L3RkPgogICA8dGQ+eyRiaWxsaW5nLT5nZXRfYWRkcmVzczIoKX08L3RkPgogIDwvdHI+CiAgey9pZn0KICA8dHI+CiAgIDx0ZD5TdGFkOjwvdGQ+CiAgIDx0ZD57JGJpbGxpbmctPmdldF9jaXR5KCl9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgPHRkPlByb3ZpbmNpZTo8L3RkPgogICA8dGQ+eyRiaWxsaW5nLT5nZXRfc3RhdGUoKX08L3RkPgogIDwvdHI+CiAgPHRyPgogICA8dGQ+UG9zdGNvZGU6PC90ZD4KICAgPHRkPnskYmlsbGluZy0+Z2V0X3Bvc3RhbCgpfTwvdGQ+CiAgPC90cj4KICA8dHI+CiAgIDx0ZD5MYW5kOjwvdGQ+CiAgIDx0ZD57JGJpbGxpbmctPmdldF9jb3VudHJ5KCl9PC90ZD4KICA8L3RyPgogIHtpZiAkYmlsbGluZy0+Z2V0X3Bob25lKCkgIT0gJyd9CiAgPHRyPgogICA8dGQ+VGVsZWZvb246PC90ZD4KICAgPHRkPnskYmlsbGluZy0+Z2V0X3Bob25lKCl9PC90ZD4KICA8L3RyPgogIHsvaWZ9CiAge2lmICRiaWxsaW5nLT5nZXRfZmF4KCkgIT0gJyd9CiAgPHRyPgogICA8dGQ+RmF4OjwvdGQ+CiAgIDx0ZD57JGJpbGxpbmctPmdldF9mYXgoKX08L3RkPgogIDwvdHI+CiAgey9pZn0KICB7aWYgJGJpbGxpbmctPmdldF9lbWFpbCgpICE9ICcnfQogIDx0cj4KICAgPHRkPkUtbWFpbDo8L3RkPgogICA8dGQ+eyRiaWxsaW5nLT5nZXRfZW1haWwoKX08L3RkPgogIDwvdHI+CiAgey9pZn0KPC90YWJsZT4KPGJyLz4KCntpZiAkb3JkZXJfb2JqLT5nZXRfb3JkZXJfbm90ZXMoKSAhPSAnJ30KPGg0Pk9wbWVya2luZ2VuPC9oND4KeyRvcmRlcl9vYmotPmdldF9vcmRlcl9ub3RlcygpfTxici8+Cjxici8+CnsvaWZ9Cgp7Zm9yZWFjaCBmcm9tPSRvcmRlcl9vYmotPmdldF9kZXN0aW5hdGlvbnMoKSBpdGVtPSdzaGlwcGluZyd9CiAgIHthc3NpZ24gdmFyPSdzaGlwcGluZ19hZGRyJyB2YWx1ZT0kc2hpcHBpbmctPmdldF9zaGlwcGluZ19hZGRyZXNzKCl9CjxoND5WZXJ6ZW5kIGFhbjogeyRzaGlwcGluZ19hZGRyLT5nZXRfbGFzdG5hbWUoKX0sIHskc2hpcHBpbmdfYWRkci0+Z2V0X2ZpcnN0bmFtZSgpfTwvaDQ+CiAgPHA+ICAKICAgIHskc2hpcHBpbmdfYWRkci0+Z2V0X2FkZHJlc3MxKCl9PGJyLz4KICAgIHtpZiAkc2hpcHBpbmdfYWRkci0+Z2V0X2FkZHJlc3MyKCkgIT0gJyd9eyRzaGlwcGluZ19hZGRyLT5nZXRfYWRkcmVzczIoKX08YnIvPnsvaWZ9CiAgICB7JHNoaXBwaW5nX2FkZHItPmdldF9jaXR5KCl9LCB7JHNoaXBwaW5nX2FkZHItPmdldF9zdGF0ZSgpfTxici8+CiAgICB7JHNoaXBwaW5nX2FkZHItPmdldF9jb3VudHJ5KCl9PGJyLz4KICAgIHskc2hpcHBpbmdfYWRkci0+Z2V0X3Bvc3RhbCgpfTxici8+CiAgICB7aWYgJHNoaXBwaW5nX2FkZHItPmdldF9waG9uZSgpICE9ICcnfVRlbGVmb29uOiB7JHNoaXBwaW5nX2FkZHItPmdldF9waG9uZSgpfTxici8+ey9pZn0KICAgIHtpZiAkc2hpcHBpbmdfYWRkci0+Z2V0X2ZheCgpICE9ICcnfUZheDogeyRzaGlwcGluZ19hZGRyLT5nZXRfZmF4KCl9PGJyLz57L2lmfQogICAge2lmICRzaGlwcGluZ19hZGRyLT5nZXRfZW1haWwoKSAhPSAnJ31FLW1haWw6Jm5ic3A7eyRzaGlwcGluZ19hZGRyLT5nZXRfZW1haWwoKX08YnIvPnsvaWZ9CiAgPC9wPgogIDxwPjxzdHJvbmc+SXRlbXM6PC9zdHJvbmc+PC9wPgogIDx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4KICAgIDx0aGVhZD4KICAgICAgPHRyPgogICAgICAgIDx0aD5PbXNjaHJpanZpbmc8L3RoPgogICAgICAgIDx0aD5Ib2V2ZWVsaGVpZDwvdGg+CiAgICAgICAgPHRoPlN0dWtzcHJpanM8L3RoPgogICAgICAgIDx0aD5Lb3J0aW5nPC90aD4KICAgICAgICA8dGg+VG90YWFsPC90aD4KICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICB7Zm9yZWFjaCBmcm9tPSRzaGlwcGluZy0+Z2V0X2l0ZW1zKCkgaXRlbT0naXRlbScgbmFtZT0naXRlbXMnfQogICAgICA8dHI+CiAgICAgICAgPHRkPnskaXRlbS0+Z2V0X2Rlc2NyaXB0aW9uKCl9PC90ZD4KICAgICAgICA8dGQ+eyRpdGVtLT5nZXRfcXVhbnRpdHkoKX08L3RkPgogICAgICAgIDx0ZD57JGN1cnJlbmN5c3ltYm9sfXskaXRlbS0+Z2V0X3VuaXRfcHJpY2UoKXxudW1iZXJfZm9ybWF0OjI6IiwiOiIuIn08L3RkPgogICAgICAgIDx0ZCBjbGFzcz0ia29ydGluZyI+e2lmICRpdGVtLT5nZXRfZGlzY291bnQoKSAhPSAnJ317JGN1cnJlbmN5c3ltYm9sfXskaXRlbS0+Z2V0X2Rpc2NvdW50KCl8bnVtYmVyX2Zvcm1hdDoyOiIsIjoiLiJ9ey9pZn08L3RkPgogICAgICAgIDx0ZD57JGN1cnJlbmN5c3ltYm9sfXttYXRoIGVxdWF0aW9uPSd4ICogeScgeD0kaXRlbS0+Z2V0X3F1YW50aXR5KCkgeT0kaXRlbS0+Z2V0X25ldF9wcmljZSgpIGFzc2lnbj0ndG1wJ317JHRtcHxudW1iZXJfZm9ybWF0OjI6IiwiOiIuIn08L3RkPgogICAgICA8L3RyPgogICAgey9mb3JlYWNofQogICAgPHRyPgogICAgICA8dGQgY29sc3Bhbj0iMiI+QlRXICgyMSUpOjwvdGQ+CiAgICAgIDx0ZCBjb2xzcGFuPSIzIj4KCQkJe2Fzc2lnbiB2YXI9ImJ0d2JlbGFzdGJhYXIiIHZhbHVlPSRvcmRlcl9vYmotPmdldF90b3RhbCgpfQoJCQl7YXNzaWduIHZhcj0iZXhidHciIHZhbHVlPSRidHdiZWxhc3RiYWFyLSgkYnR3YmVsYXN0YmFhci8xLjIxKX0JCQkKCQkJeyRjdXJyZW5jeXN5bWJvbH17JGV4YnR3fG51bWJlcl9mb3JtYXQ6MjoiLCI6Ii4ifQoJCTwvdGQ+CiAgICA8L3RyPgogICAgICA8dGQgY29sc3Bhbj0iNCIgYWxpZ249InJpZ2h0Ij5Ub3RhYWw8L3RkPgogICAgICA8dGQgYWxpZ249InJpZ2h0Ij57JGN1cnJlbmN5c3ltYm9sfXskc2hpcHBpbmctPmdldF90b3RhbCgpfG51bWJlcl9mb3JtYXQ6MnxudW1iZXJfZm9ybWF0OjI6IiwiOiIuIn08L3RkPgogICAgPC90cj4KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KPC90YWJsZT4KPGJyLz4Key9mb3JlYWNofQo8YnIvPgoKPGg0PlNhbWVudmF0dGluZzwvaDQ+Cjx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4KICA8dHI+CiAgICA8dGQgd2lkdGg9IjgwJSIgYWxpZ249InJpZ2h0Ij5Ub3RhYWw8L3RkPgogICAgPHRkIGFsaWduPSJyaWdodCI+eyRjdXJyZW5jeXN5bWJvbH17JG9yZGVyX29iai0+Z2V0X3RvdGFsKCl8bnVtYmVyX2Zvcm1hdDoyOiIsIjoiLiJ9PC90ZD4KICA8L3RyPgo8L3RhYmxlPg==]]></data>
	</file>
	<file>
	  <filename>/templates/paypal.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiIGlkPSJwYXlwYWxqYW50aW5vIiB0YXJnZXQ9Il9CTEFOSyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuY3J5cHRlZCIgdmFsdWU9Ii0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhOd1lKS29aSWh2Y05BUWNFb0lJSEtEQ0NCeVFDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBR3RaaUNwalYxTjRzQy90OWtEdUs1L1p6UHhvSkErTlRQK1BmY25kYlFyYmJDdURyc0YydERWdW5rYmVoTkVTd2ROMkhpZzZoMEpzWmJwa2ZsTktHVitjSUFFUUhTdUZ4b0VYY1lGckoxUTdsdE5WbVRUZE05NGtCVzdSZWdwaHE4QXJ1eDV2ZzU1Zk9RUURnWGxkd2kvcWtIWlNLMVNjZklJeW9ubVVlRlhERUxNQWtHQlNzT0F3SWFCUUF3Z2JRR0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJRXU1SWYyZG5GMFdBZ1pEVVk2eGFhUWJXRlpuWGZHaDdYZWIrUjdwZExlZUlCYzc5bWhCME5jekpyT0NZd3prUkZkT1l5QzFmVnVPSVNOc3Z0aVRqVG9ONXhNK0ZnM2t5MWwzQmJPZ3RzWjcvZjRBK2NSTVBBYWkwbkJISlpJVGhrejMvTG1MUjN4V2hKQ3VlemVaQUFWZ3BvK09hdlcvUGhOUjdCTzlCQ01adDFCdHJ2YWVvSGhUWWNkZ0dUNENGUGxBZHdjcm9CRGIwM0FDZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncweE1URXdNVEV4TWpVMU1ESmFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCVHc5VTRPb0IzY2d6MThDWENPdDhnZUpLcElYakFOQmdrcWhraUc5dzBCQVFFRkFBU0JnTHM4RDA4WnROeklwVWFYK3U3V09zamdDM2FiMTdSZXdJVDdxTEljbTNiNDlsYU5wYXdKSzNrMkZTNEJqOWZGZjFGSFdmNFN4d2pLeEptYUJ2LzY0a2xDRHBlUmRtemd5Zlcra05kb2RSanU3S1NVYkJoaFEwMGhIa2ZGQ0huVE53LzhXY3VHYS9IdVhBVjYwSXdnOFZlWjBhYUdZZzNHbFBLaFphU1FnSTliLS0tLS1FTkQgUEtDUzctLS0tLQoiPgo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsb2JqZWN0cy5jb20vbmxfTkwvTkwvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCwgZGUgdmVpbGlnZSBlbiBjb21wbGV0ZSBtYW5pZXIgdmFuIG9ubGluZSBiZXRhbGVuLiI+CjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWxvYmplY3RzLmNvbS9ubF9OTC9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8L2Zvcm0+]]></data>
	</file>
</module>
