<?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>CGSMS</name>
	<version>1.0</version>
  <mincmsversion>1.6.5</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyB3ZWJzaXRlIHZpc2l0b3JzIHRvIGVpdGhlciBzZW5kIGEgcHJlLWRldGVybWluZWQgKGFuZCBlbmNyeXB0ZWQpIHRleHQgbWVzc2FnZSB0byBhbnkgdGV4dCBjYXBhYmxlIHBob25lLCBvciB0byBhbGxvdyBzZW5kaW5nIGEgdXNlciBzcGVjaWZpZWQgdGV4dCBtZXNzYWdlIHRvIGEgcHJlLWRldGVybWluZWQgKGFuZCBoaWRkZW4pIG1vYmlsZSBwaG9uZSBudW1iZXIuICBJdCBpcyB1c2VmdWwgZm9yIHN1Y2ggdGhpbmdzIGFzIHNlbmRpbmcgYWRkcmVzc2VzIGZyb20gYSBkaXJlY3RvcnkgdG8gYSBwZXJzb25zIG1vYmlsZSBwaG9uZSBudW1iZXIuLi4gb3IgZm9yIG1lc3NhZ2luZyBhIHdlYnNpdGUgYWRtaW5pc3RyYXRvciB3aXRoIHVyZ2VudCBpbmZvcm1hdGlvbi48L3A+CjxoMz5TZWN1cml0eTwvaDM+CjxwPkF0dGVtcHRzIGhhdmUgYmVlbiBtYWRlIHRvIGVuc3VyZSBhIHJlYXNvbmFibGUgbGV2ZWwgb2Ygc2VjdXJpdHkgYXQgYWxsIHRpbWVzLiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgaW4gYSB2YXJpZXR5IG9mIHdheXM6PC9wPgo8dWw+CjxsaT4xLCBBbGwgdGV4dCBtZXNzYWdlcyBhcmUgY2hlY2tlZCBmb3IgbGVuZ3RoIGxpbWl0cywgYW5kIHZhbGlkIGNoYXJhY3RlcnMgYmVmb3JlIHNlbmRpbmcuPC9saT4KPGxpPjIuIEFsbCB0ZXh0IG1lc3NhZ2VzIGFyZSByZWNvcmRlZCBpbiB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgc2VuZGVyLjwvbGk+CjxsaT4zLiBCZWZvcmUgYW55IHRleHQgbWVzc2FnZSBpcyBzZW50LCBhIGNoZWNrIGlzIG1hZGUgdG8gZW5zdXJlIHRoYXQgdGhlIHVzZXIgaGFzIG5vdCBleGNlZWRlZCB0aGUgbWF4aW11bSBhbW91bnQgb2YgbWVzc2FnZXMgc2VudCBmb3IgdGhhdCBJUCBhZGRyZXNzLjwvbGk+CjxsaT40LiBXaGVuIHNlbmRpbmcgdG8gYSBwcmUtZGVmaW5lZCBtb2JpbGUgcGhvbmUgdGhlIFNNUyBudW1iZXIgaXMgaGlkZGVuIGZyb20gdGhlIHdlYnNpdGUgdmlzaXRvciBhdCBhbGwgdGltZXMgdG8gcHJldmVudCBzcGFtbWluZy48L2xpPgo8bGk+NS4gV2hlbiBzZW5kaW5nIGEgcHJlLWRlZmluZWQgbWVzc2FnZSB0aGUgdGV4dCBvZiB0aGUgbWVzc2FnZSBpcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCB0aGUgdmlzaXRvciBpcyBnaXZlbiBhIHVuaXF1ZSBrZXkgdG8gdGhlIHRleHQgb2YgdGhlIG1lc3NhZ2UsIHByZXZlbnRpbmcgYWx0ZXJhdGlvbiBvZiB0aGUgdGV4dCBpdHNlbGYuPC9saT4KPC91bD4KPGgzPlNNUyBHYXRld2F5czwvaDM+CjxwPlRoaXMgbW9kdWxlIGRlcGVuZHMgb24gc2VsZWN0aW5nIGEgc3VwcG9ydGVkIFNNUyBnYXRld2F5IGFuZCBmaWxsaW5nIGluIHRoZSByZXF1aXJlZCBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbi4gICBZb3Ugd2lsbCBuZWVkIHRvIHNpZ24gdXAgdG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBzdXBwb3J0ZWQgZ2F0ZXdheXMuICBUaGlzIG1heSBpbnZvbHZlIHBheWluZyBtb25leSB0byBhIHRoaGlyZCBwYXJ0eS48L3A+CjxwPkRpZmZlcmVudCBTTVMgR2F0ZXdheXMgd2lsbCBoYXZlIGRpZmZlcmVudCByZXF1aXJlbWVudHMgYW5kIGxpbWl0YXRpb25zIG9uIHRoZSBhbW91bnQsIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHNlbnQuLi4gaXQgaXMgeW91ciByZXNwb25zaWJpbGl0eSB0byB1bmRlcnN0YW5kIHRoZXNlIGxpbWl0YXRpb25zLjwvcD4KPHA+Q3VycmVudGx5LCB0aGVzZSBnYXRld2F5cyBhcmUgSW1wbGVtZW50ZWQ6PC9wPgo8dWw+CiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pbnRlcmxpbmtlZC5tb2JpIj48c3Ryb25nPkludGVybGlua2VkLm1vYmk8L3N0cm9uZz48L2E+IC0gQSBVSyBiYXNlZCBTTVMgbWFya2V0aW5nIHByb3ZpZGVyLjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vdm9pY2UuZ29vZ2xlLmNvbSI+PHN0cm9uZz5Hb29nbGUgVm9pY2U8L3N0cm9uZz48L2E+IC0gQW4gZXhwZXJpbWVudGFsIChidXQgd29ya2luZyBhdCB0aGlzIHRpbWUpIHV0aWxpdHkgdG8gYWxsb3cgc2VuZGluZyBTTVMgbWVzc2FnZXMgdGhyb3VnaCBHb29nbGUgVm9pY2UuPC9saT4KPC91bD4KPGgzPkhvdyBkbyBJIHVzZSBpdDwvaDM+CjxwPlRoZSBmaXJzdCB0aGluZyB5b3Ugc2hvdWxkIGRvIGlzIHRvIGdvIGludG8gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwgdW5kZXIgJnF1b3Q7RXh0ZW5zaW9ucyAmZ3Q7Jmd0OyBDYWxndXlzIFNNUyBVdGlsaXR5JnF1b3Q7LiAgVGhlcmUgeW91IHdpbGwgYmUgYWJsZSB0byBjaG9vc2Ugb25lIG9mIHRoZSBhdmFpbGFibGUgZ2F0ZXdheXMgYW5kIHRvIGVudGVyIHRoZSBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhhdCBnYXRld2F5LiAgQXQgdGhpcyB0aW1lIHlvdSBjYW4gYWxzbyBkZWZpbmUgdGhlIFNNUyBzZW5kaW5nIGxpbWl0cyB0byByZWR1Y2Ugc3BhbS48L3A+CjxwPlNlY29uZGx5IHlvdSBzaG91bGQgcGVyZm9ybSBhdCBsZWFzdCBvbmUgU01TIFRlc3QgKHRoZXJlIGlzIGEgdGFiIGluIHRoZSBtb2R1bGUgYWRtaW4gcGFuZWwgdG8gYWxsb3cgdGhpcykgdG8gZW5zdXJlIHRoYXQgU01TIG1lc3NhZ2VzIGFyZSBiZWluZyBzZW50IHRvIHlvdXIgbW9iaWxlIHBob25lLjwvcD4KPHA+VGhpcmRseSB5b3UgbmVlZCB0byBwbGFjZSBhdCBsZWFzdCBvbmUgdGFnIGludG8gYSBwYWdlLCBvciBwYWdlIHRlbXBhbHRlIGluIHRoZSBDTVNNUyBBZG1pbiBjb25zb2xlLiAgVGhlcmUgYXJlIHR3byBwcmltYXJ5IHdheXMgaW4gd2hpY2ggdG8gdXNlIHRoaXMgbW9kdWxlOjwvcD4KPHVsPgogICA8bGk+MS4gU2VuZCBwcmVkZWZpbmVkIHRleHQgdG8gYSB1c2VyIGRlZmluZWQgbW9iaWxlIG51bWJlciA8Y29kZT57Q0dTTVMgYWN0aW9uPSdlbnRlcm51bWJlcicgdGV4dD0ndGhlIHF1aWNrIGJyb3duIGZveCd9PC9jb2RlPgogICAgPHA+VGhpcyB3aWxsIGdlbmVyYXRlIGEgbGluayB0aGF0IHdoZW4gY2xpY2tlZCB3aWxsIGRpc3BsYXkgYSBmb3JtIHRvIHRoZSB1c2VyIHRvIGFsbG93IHRoZW0gdG8gZW50ZXIgYSBtb2JpbGUgcGhvbmUgbnVtYmVyLjwvcD4KICA8L2xpPgogIDxsaT4yLiBTZW5kIHVzZXIgZGVmaW5lZCB0ZXh0IHRvIGEgcHJlZGVmaW5lZCBtb2JpbGUgbnVtYmVyIDxjb2RlPntDR1NNUyBhY3Rpb249J2VudGVydGV4dCcgc21zbnVtPTV9PC9jb2RlPgogIDxwPlRoaXMgd2lsbCBnZW5lcmF0ZSBhIGxpbmsgdGhhdCB3aGVuIGNsaWNrZWQgd2lsbCBkaXNwbGF5IGEgZm9ybSB0byBhbGxvdyB0aGUgdXNlciB0byBlbnRlciBhIDE2MCBjaGFyYWN0ZXIgU01TIE1lc3NhZ2UgdGhhdCBpcyB0aGVuIHNlbnQgdG8gYSBwcmVkZXRlcm1pbmVkIG1vYmlsZSBudW1iZXIgd2l0aHQgaGUgaWQ9NS48L3A+CiAgPC9saT4KPC91bD4KPGgzPkFQSTwvaDM+CjxwPlRoaXMgbW9kdWxlIGNvbnRhaW5zIGEgY29tcGxldGUgQVBJIHRvIGFsbG93IHNlbmRpbmcgbWVzc2FnZXMgZnJvbSBvdGhlciBtb2R1bGVzIG9yIGZyb20gVURUcy4gQSBicmllZiBleGFtcGxlIG9mIGhvdyB0byBkbyB0aGlzIGlzIGJlbG93Li4uIGZvciBhIGNvbXBsZXRlIGlsbHVzdHJhdGlvbiBvZiB0aGUgQVBJIGxvb2sgYXQgdGhlIGxpYi9jbGFzcy5jZ3Ntc19zZW5kZXJfYmFzZS5waHAgZmlsZS48L3A+CjxwcmUgc3R5bGU9Im1hcmdpbi1sZWZ0OiA1ZW07Ij48Y29kZT4KJGdhdGV3YXkgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXkoKTsKJGdhdGV3YXktPnNldF9tc2coJ2hlbGxvIHdvcmxkJyk7CiRnYXRld2F5LT5zZXRfbnVtKCcxMjIyNTU1MTIxMicpOwokZ2F0ZXdheS0+c2VuZCgpOwo8L2NvZGU+PC9wcmU+CjxoMz5SZXF1aXJlbWVudHM6PC9oMz4KPHA+VGhlIHJlcXVpcmVtZW50cyBhcmUgbnVtZXJvdXMsIHBsZWFzZSB1c2UgY2F1dGlvbjo8L3A+Cjx1bD4KPGxpPkNNUyBNYWRlIFNpbXBsZSAxLjYuNiBvciBncmVhdGVyPC9saT4KPGxpPlBIUCBWZXJzaW9uIDUuMisgKDUuMi4xMSBvciBiZXR0ZXIgaXMgcmVjb21tZW5kZWQpPC9saT4KPGxpPkEgc3Vic2NyaXB0aW9uIG9yIGFjY2VzcyB0byBhdCBsZWFzdCBvbmUgc3Vwb3J0ZWQgZ2F0ZXdheS48L2xpPgo8bGk+WW91ciBob3N0IG11c3QgYWxsb3cgb3V0Z29pbmcgSFRUUCBjb25uZWN0aW9uczwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCdzCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDAxMCwgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+ClRPRE88aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjE3Ljc8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJlbnRlcm51bWJlciIgLSBUaGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGRlY2lkZSB0aGUgYmVoYXZvdXIgb2YgdGhlIG1vZHVsZS4gIFZhbGlkIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOgo8dWw+CjxsaT5lbnRlcm51bWJlciA8ZW0+KGRlZmF1bHQpPC9lbT4gLSBEaXNwbGF5IGEgbGluayB0byBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VuZCBwcmUtZGVmaW5lZCB0ZXh0IHRvIGEgdXNlci1kZWZpbmVkIG1vYmlsZSBwaG9uZSBudW1iZXIuPC9saT4KPGxpPmVudGVydGV4dCAtIERpc3BsYXkgYSBsaW5rIHRvIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzZW5kIHVzZXItZGVmaW5lZCB0ZXh0IHRvIGEgcHJlLWRlZmluZWQgbW9iaWxlIHBob25lIG51bWJlci48L2xpPgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc21zdGV4dD0iIiAtIC0tQWRkIE1lIC0gbW9kdWxlOkNHU01TIHN0cmluZzpoZWxwX3RleHQtLTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGlua3RleHQ9IlNlbmQgdG8gTW9iaWxlIiAtIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSB0ZXh0IHRoYXQgaXMgZGlzcGxheWVkIGluIHRoZSBsaW5rLiAgVGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdCB3aGVuIHRoZSB1cmxvbmx5IHBhcmFtZXRlciBpcyB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdXJsb25seT0iMCIgLSBUaGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCBpbnN0ZWFkIG9mIGEgZnVsbCBsaW5rIG9ubHkgdGhlIFVSTCBzaG91bGQgYmUgZWNob2VkLCBhbGxvd2luZyB5b3UgdG8gYnVpbGQgeW91ciBvd24gbGluay48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlubGluZT0iMCIgLSBUaGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgZm9ybSBzaG91bGQgcmVwbGFjZSB0aGUgbGluayAoaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBjb250ZW50IGFyZWEgb2YgdGhlIHBhZ2UpLiAgSXQgaXMgbm90IHVzZWZ1bCB3aXRoIHRoZSBkZXN0cGFnZSBwYXJhbWV0ZXI8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGVudGVybnVtYmVydGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVybnVtYmVyIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBlbnRlcm51bWJlciB0ZW1wbGF0ZSB0byBjcmVhdGUgdGhlIGZvcm0gd2l0aDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZW50ZXJ0ZXh0dGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVybnVtYmVyIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBlbnRlcm51bWJlciB0ZW1wbGF0ZSB0byBjcmVhdGUgdGhlIGZvcm0gd2l0aDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVzdHBhZ2U9IjAiIC0gVGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIHJlc3VsdGluZyBmb3JtIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgQ01TTVMgY29udGVudCBwYWdlIChzcGVjaWZpZWQgYnkgcGFnZSBpZCBvciBhbGlhcyk8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNtc251bT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZW50ZXJ0ZXh0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgZGVmaW5lcyB0aGUgbnVtZXJpYyBJRCBvZiBhIHByZS1kZWZpbmVkIG1vYmlsZSBwaG9uZSBudW1iZXI8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICA8bGk+VmVyc2lvbiAxLjAgLSBGZWJydWFyeSAyMDEwCiAgICA8dWw+CiAgICAgICA8bGk+SW5pdGlhbCByZWxlYXNlIHdpdGggaW50ZXJsaW5rZWQgYW5kIGV4cGVyaW1lbnRhbCBnb29nbGUgdm9pY2UgZ2F0ZXdheXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[A module to allow sending of SMS messages from within a CMS Made Simple Website]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.17.7</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_del_mobile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ21vYmlsZXMnKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ21pZCddKSApCiAgewogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dzbXMKICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICR0bXAgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KChpbnQpJHBhcmFtc1snbWlkJ10pKTsKCiAgICBpZiggISR0bXAgKQogICAgICB7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vdGZvdW5kJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfcmVjX2RlbGV0ZWQnKSk7CiAgICAgIH0KICB9CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_mobile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6ZQovLwokbWlkID0gJyc7CiRuYW1lID0gJyc7CiRtb2JpbGUgPSAnJzsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ21vYmlsZXMnKTsKCi8vCi8vIGdldCBwYXJhbWV0ZXJzCi8vCmlmKCBpc3NldCgkcGFyYW1zWydtaWQnXSkgKQogIHsKICAgICRtaWQgPSAoaW50KSRwYXJhbXNbJ21pZCddOwogIH0KCi8vCi8vIGdldCB0aGUgZGF0YQovLwppZiggJG1pZCAhPSAnJyApCiAgewogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3NtcwogICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwogICAgJHRtcCA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkbWlkKSk7CiAgICBpZiggISR0bXAgKQogICAgICB7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vdGZvdW5kJykpOwoJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgfQogICAgJG5hbWUgPSAkdG1wWyduYW1lJ107CiAgICAkbW9iaWxlID0gJHRtcFsnbW9iaWxlJ107CiAgfQoKLy8KLy8gaGFuZGxlIGZvcm0gc3VibWlzc2lvbgovLwppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKICAgICRtb2JpbGUgPSB0cmltKCRwYXJhbXNbJ21vYmlsZSddKTsKICAgICRlcnJvciA9ICcnOwoKICAgIC8vIGRvIGJhc2ljIGRhdGEgY2hlY2tzCiAgICBpZiggJG5hbWUgPT0gJycgfHwgIWlzX251bWVyaWMoJG1vYmlsZSkgKQogICAgICB7CiAgICAgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfaW5mbycpOwogICAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKQogICAgICB7CgkvLyBjaGVjayBmb3IgZHVwbGljYXRlIG5hbWUKCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3NtcyAKICAgICAgICAgICAgICAgICAgIFdIRVJFIG5hbWUgPSA/JzsKCSRwYXJtcyA9IGFycmF5KCk7CglpZiggJG1pZCAhPSAnJyApCgkgIHsKCSAgICAkcXVlcnkgLj0gJyBBTkQgaWQgIT0gPyc7CgkgICAgJHBhcm1zW10gPSAkbWlkOwoJICB9CgkkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCRwYXJtcyk7CglpZiggJHRtcCApCgkgIHsKCSAgICAkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfbmFtZV9leGlzdHMnKTsKCSAgfQogICAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKQogICAgICB7CgkvLyBnb29kIHRvIGdvLi4uIGRvIGFkZCBvciBpbnNlcnQKCSRkYnIgPSAnJzsKCWlmKCAkbWlkID09ICcnICkKCSAgewoJICAgIC8vIGluc2VydAoJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc21zCiAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lLG1vYmlsZSkgVkFMVUVTKD8sPyknOwoJICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCRtb2JpbGUpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgLy8gdXBkYXRlCgkgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc21zCiAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgbmFtZSA9ID8sIG1vYmlsZSA9ID8gCiAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKCSAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmFtZSwkbW9iaWxlLCRtaWQpKTsKCSAgfQoJCglpZiggISRkYnIgKQoJICB7CgkgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2RiX29wX2ZhaWxlZCcpOwoJICB9CiAgICAgIH0KCiAgICBpZiggIWVtcHR5KCRlcnJvcikgKQogICAgICB7CgkkdGhpcy0+U2V0RXJyb3IoJGVycm9yKTsKICAgICAgfQogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgovLwovLyBidWlsZCB0aGUgZm9ybQovLwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdF9tb2JpbGUnLCRyZXR1cm5pZCwKCQkJCQkJICAgICAkcGFyYW1zKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbmFtZScsJG5hbWUpOwokc21hcnR5LT5hc3NpZ24oJ21vYmlsZScsJG1vYmlsZSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2VkaXRfbW9iaWxlLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_savesecurity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3NlY3VyaXR5Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzbXNfaG91cmx5bGltaXQnLChpbnQpJHBhcmFtc1snaG91cmx5bGltaXQnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzbXNfZGFpbHlsaW1pdCcsKGludCkkcGFyYW1zWydkYWlseWxpbWl0J10pOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_savesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKaWYoICFpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdzZXR0aW5ncycpOwoKJG9ianMgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXlzX2Z1bGwoKTsKaWYoICFpc19hcnJheSgkb2JqcykgfHwgY291bnQoJG9ianMpID09IDAgKQogIHsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKJGdhdGV3YXkgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ3Ntc19nYXRld2F5J10pICkKICB7CiAgICAkZ2F0ZXdheSA9IHRyaW0oJHBhcmFtc1snc21zX2dhdGV3YXknXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc21zX2dhdGV3YXknLCRnYXRld2F5KTsKICB9Cgpmb3JlYWNoKCAkb2JqcyBhcyAkY2xhc3NuYW1lID0+ICRyZWMgKQp7CiAgJHJlY1snb2JqJ10tPmhhbmRsZV9zZXR1cF9mb3JtKCRwYXJhbXMpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_smstest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Rlc3QnKTsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICRudW1iZXIgPSAnJzsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydtb2JpbGUnXSkgKQogICAgICB7CgkkbnVtYmVyID0gdHJpbSgkcGFyYW1zWydtb2JpbGUnXSk7CiAgICAgIH0KCiAgICBpZiggJG51bWJlciA9PSAnJyB8fCAhY2dzbXNfdXRpbHM6OmlzX3ZhbGlkX3Bob25lKCRudW1iZXIpICkKICAgICAgewoJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbnVtYmVyJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIHJlYWR5IHRvIHRlc3QKCSRzZW5kZXIgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXkoKTsKCWlmKCAhJHNlbmRlciApCgkgIHsKCSAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ2F0ZXdheScpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHNlbmRlci0+c2V0X251bSgkbnVtYmVyKTsKCSAgICAkc2VuZGVyLT5zZXRfbXNnKENHU01TOjpURVNUX01FU1NBR0UuJyBAJy5zdHJmdGltZSgnJVggJVonKSk7CgkgICAgJHNlbmRlci0+c2VuZCgpOwoJICAgICRzdGF0dXMgPSAkc2VuZGVyLT5nZXRfc3RhdHVzKCk7CgkgICAgJG1zZyA9ICRzZW5kZXItPmdldF9zdGF0dXNtc2coKTsKCSAgICBpZiggJHN0YXR1cyAhPSBjZ3Ntc19zZW5kZXJfYmFzZTo6U1RBVF9PSyApCgkgICAgICB7CgkJJHRoaXMtPlNldEVycm9yKCRtc2cpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkdGhpcy0+U2V0TWVzc2FnZSgkbXNnKTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgfQokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKaW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvYWN0aW9uLmVudGVybnVtYmVyLnBocCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJG9ianMgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXlzX2Z1bGwoKTsKaWYoICFpc19hcnJheSgkb2JqcykgfHwgY291bnQoJG9ianMpID09IDAgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ2F0ZXdheXNmb3VuZCcpKTsKICAgIHJldHVybjsKICB9CgokbGlzdG5hbWUgPSBhcnJheSgpOwokbGlzdG5hbWVzWy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7CmZvcmVhY2goICRvYmpzIGFzICRrZXkgPT4gJHJlYyApCiAgewogICAgJGxpc3RuYW1lc1ska2V5XSA9ICRyZWNbJ25hbWUnXTsKICB9CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbW9iaWxlcycsJHRoaXMtPkxhbmcoJ21vYmlsZV9udW1iZXJzJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3NldHRpbmdzJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZWN1cml0eScsJHRoaXMtPkxhbmcoJ3NlY3VyaXR5X3RhYl9sYmwnKSk7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3Rlc3QnLCR0aGlzLT5MYW5nKCd0ZXN0JykpOwogIH0KaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdlbnRlcm51bWJlcicsJHRoaXMtPkxhbmcoJ2VudGVyX251bWJlcl90ZW1wbGF0ZXMnKSk7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2VudGVydGV4dCcsJHRoaXMtPkxhbmcoJ2VudGVyX3RleHRfdGVtcGxhdGVzJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkZmx0X3RlbXBsYXRlcycsJHRoaXMtPkxhbmcoJ2RlZmF1bHRfdGVtcGxhdGVzJykpOwogIH0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKCgoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdtb2JpbGVzJywkcGFyYW1zKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9tb2JpbGVzX3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogICAgCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnLCRwYXJhbXMpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVzZXR0aW5ncycpKTsKICAgICRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3JlcG9ydHVybCcsY2dzbXNfdXRpbHM6OmdldF9yZXBvcnRpbmdfdXJsKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdnYXRld2F5bmFtZXMnLCRsaXN0bmFtZXMpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzbXNfZ2F0ZXdheScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Ntc19nYXRld2F5JywnLTEnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ29iamVjdHMnLCRvYmpzKTsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fc2V0dGluZ3N0YWIudHBsJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2VjdXJpdHknLCRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLnNlY3VyaXR5X3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCd0ZXN0JywkcGFyYW1zKTsKICAgICRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zbXN0ZXN0JykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fdGVzdHRhYi50cGwnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIH0KaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2VudGVybnVtYmVyJywkcGFyYW1zKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5lbnRlcm51bWJlcl90ZW1wbGF0ZXNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2VudGVydGV4dCcsJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uZW50ZXJ0ZXh0X3RlbXBsYXRlc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignZGZsdF90ZW1wbGF0ZXMnLCRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmRmbHRfdGVtcGxhdGVzX3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIH0KCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.devreport.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gcmVjZWl2ZSBkZWxpdmVyeSByZXBvcnRzLgovLyBoYXZlIHRvIHBhcnNlICRfUkVRVUVTVCBkaXJlY3RseS4KZGVidWdfdG9fbG9nKCdnb3QgdG8gZGV2cmVwb3J0Jyk7CgokZ2F0ZXdheSA9IGNnc21zX3V0aWxzOjpnZXRfZ2F0ZXdheSgpOwokbXNnID0gJGdhdGV3YXktPnByb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCk7CmlmKCAkbXNnICE9ICcnICkKICB7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCRtc2cpOwogIH0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.do_enternumber.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggIWlzc2V0KCRwYXJhbXNbJ3Ntc2tleSddKSApIHJldHVybjsgIC8vIG5vIGtleS4KCi8vCi8vIGluaXRpYWxpemUKLy8KJGlubGluZSA9IDA7CiR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKENHU01TOjpQUkVGX0RGTFRFTlRFUk5VTUJFUl9UUEwpOwokZXJyb3IgPSAnJzsKJG1lc3NhZ2UgPSAnJzsKCi8vCi8vIHZlcmlmeSB0aGF0IHRoZSB0ZXh0IGlzIHN0aWxsIGluIHRoZSBkYXRhYmFzZS4uLgovLyBhbmQgdG91Y2ggaXQganVzdCBpbmNhc2UgaXQgd291bGQgZ2V0IGV4cGlyZWQuCi8vCiRrZXkgPSB0cmltKCRwYXJhbXNbJ3Ntc2tleSddKTsKJGRhdGFzdG9yZSA9IG5ldyBjZ2VfZGF0YXN0b3JlKCk7CiRzbXN0ZXh0ID0gJGRhdGFzdG9yZS0+Z2V0KCR0aGlzLT5HZXROYW1lKCksJGtleSk7CmlmKCAhJHNtc3RleHQgKSByZXR1cm47ICAvLyBub3RoaW5nIHRvIGRvLgokZGF0YXN0b3JlLT5lcmFzZSgkdGhpcy0+R2V0TmFtZSgpLCRrZXkpOwokZGF0YXN0b3JlLT5zdG9yZSgkc21zdGV4dCwkdGhpcy0+R2V0TmFtZSgpLCRrZXkpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2VudGVybnVtYmVydGVtcGxhdGUnXSkgKQogIHsKICAgICR0aGV0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snZW50ZXJudW1iZXJ0ZW1wbGF0ZSddKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snY2dzbXNfc3VibWl0J10pICkKICB7CiAgICAkbW9iaWxlID0gJyc7CgogICAgLy8KICAgIC8vIGhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KICAgIC8vCiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2dzbXNfbW9iaWxlJ10pICkKICAgICAgewoJJG1vYmlsZSA9IHRyaW0oJHBhcmFtc1snY2dzbXNfbW9iaWxlJ10pOwogICAgICB9CgogICAgLy8gZGF0YSB2YWxpZGF0aW9uCiAgICBpZiggIWNnc21zX3V0aWxzOjppc192YWxpZF9waG9uZSgkbW9iaWxlKSApCiAgICAgIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX251bWJlcicpOwogICAgICB9CgogICAgaWYoICEkZXJyb3IgKQogICAgICB7CgkvLyBub3cgd2VyJ3JlIHJlYWR5IHRvIHNlbmQuCgoJJGdhdGV3YXkgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXkoKTsKCWlmKCAhJGdhdGV3YXkgKQoJICB7CgkgICAgJHRoaXMtPkF1ZGl0KDAsJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ2F0ZXdheWZvdW5kJyksJ2VudGVybnVtYmVyJyk7CgkgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ2F0ZXdheWZvdW5kJyk7CgkgIH0KCWVsc2UKCSAgewoJICAgICRnYXRld2F5LT5zZXRfbXNnKCRzbXN0ZXh0KTsKCSAgICAkZ2F0ZXdheS0+c2V0X251bSgkbW9iaWxlKTsKCSAgICAkZ2F0ZXdheS0+c2VuZCgpOwoKCSAgICAkc3RhdCA9ICRnYXRld2F5LT5nZXRfc3RhdHVzKCk7CgkgICAgJG1zZyA9ICRnYXRld2F5LT5nZXRfc3RhdHVzbXNnKCk7CgkgICAgaWYoICRzdGF0ICE9IGNnc21zX3NlbmRlcl9iYXNlOjpTVEFUX09LICkKCSAgICAgIHsKCQkkZXJyb3IgPSAkbXNnOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdzbXNfbWVzc2FnZV9zZW50Jyk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCi8vIG5vdyBkaXNwbGF5IHRoZSBmb3JtLgppZiggJGVycm9yICE9ICcnICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkZXJyb3IpOwogIH0KaWYoICRtZXNzYWdlICE9ICcnICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICB9CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkb19lbnRlcm51bWJlcicsCgkJCQkJCSAgICAgJHJldHVybmlkLAoJCQkJCQkgICAgICRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZW50ZXJudW1iZXJfJy4kdGhldGVtcGxhdGUpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_entertext.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggIWlzc2V0KCRwYXJhbXNbJ3Ntc251bSddKSApIHJldHVybjsgIC8vIG5vIG51bWJlciBpZC4KCi8vCi8vIGluaXRpYWxpemUKLy8KJHNtc251bSA9IChpbnQpJHBhcmFtc1snc21zbnVtJ107CiRpbmxpbmUgPSAwOwokdGhldGVtcGxhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZShDR1NNUzo6UFJFRl9ERkxURU5URVJURVhUX1RQTCk7CiRlcnJvciA9ICcnOwokbWVzc2FnZSA9ICcnOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2VudGVybnVtYmVydGVtcGxhdGUnXSkgKQogIHsKICAgICR0aGV0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snZW50ZXJudW1iZXJ0ZW1wbGF0ZSddKTsKICB9CgovLwovLyB2ZXJpZnkgdGhhdCB0aGUgU01TIElEIGVudGVyZWQgaXMgdmFsaWQKLy8KJHF1ZXJ5ID0gJ1NFTEVDVCBtb2JpbGUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc21zCiAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKJG1vYmlsZSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc21zbnVtKSk7CgppZiggaXNzZXQoJHBhcmFtc1snY2dzbXNfc3VibWl0J10pICkKICB7CiAgICAkc21zdGV4dCA9ICcnOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Nnc21zX3Ntc3RleHQnXSkgKQogICAgICB7Cgkkc21zdGV4dCA9IHRyaW0oJHBhcmFtc1snY2dzbXNfc21zdGV4dCddKTsKICAgICAgfQoKICAgIGlmKCAhY2dzbXNfdXRpbHM6OnRleHRfaXNfdmFsaWQoJHNtc3RleHQpKQogICAgICB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF90ZXh0Jyk7CiAgICAgIH0KCiAgICBpZiggISRlcnJvciApCiAgICAgIHsKCS8vIG5vdyB3ZSdyZSByZWFkeSB0byBzZW5kLgoJJGdhdGV3YXkgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXkoKTsKCWlmKCAhJGdhdGV3YXkgKQoJICB7CgkgICAgJHRoaXMtPkF1ZGl0KDAsJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ2F0ZXdheWZvdW5kJyksJ2VudGVybnVtYmVyJyk7CgkgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ2F0ZXdheWZvdW5kJyk7CgkgIH0KCWVsc2UKCSAgewoJICAgICRnYXRld2F5LT5zZXRfbXNnKCRzbXN0ZXh0KTsKCSAgICAkZ2F0ZXdheS0+c2V0X251bSgkbW9iaWxlKTsKCSAgICAkZ2F0ZXdheS0+c2VuZCgpOwoKCSAgICAkc3RhdCA9ICRnYXRld2F5LT5nZXRfc3RhdHVzKCk7CgkgICAgJG1zZyA9ICRnYXRld2F5LT5nZXRfc3RhdHVzbXNnKCk7CgkgICAgaWYoICRzdGF0ICE9IGNnc21zX3NlbmRlcl9iYXNlOjpTVEFUX09LICkKCSAgICAgIHsKCQkkZXJyb3IgPSAkbXNnOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdzbXNfbWVzc2FnZV9zZW50JywkbW9iaWxlKTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgfQoKLy8gbm93IGRpc3BsYXkgdGhlIGZvcm0uCmlmKCAkZXJyb3IgIT0gJycgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignZXJyb3InLCRlcnJvcik7CiAgfQppZiggJG1lc3NhZ2UgIT0gJycgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCdtYXhzbXNjaGFycycsMTYwKTsKJHNtYXJ0eS0+YXNzaWduKCdzbXN0ZXh0Jywkc21zdGV4dCk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkb19lbnRlcnRleHQnLAoJCQkJCQkgICAgICRyZXR1cm5pZCwKCQkJCQkJICAgICAkcGFyYW1zKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2VudGVydGV4dF8nLiR0aGV0ZW1wbGF0ZSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.enternumber.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6ZQovLwoka2V5ID0gJyc7CiRzbXN0ZXh0ID0gJyc7CiR1cmxvbmx5ID0gMDsKJGxpbmt0ZXh0ID0gJHRoaXMtPkxhbmcoJ3NlbmRfdG9fbW9iaWxlJyk7CiRpbmxpbmUgPSAwOwoKLy8KLy8gR2V0IFBhcmFtcwovLwppZiggaXNzZXQoJHBhcmFtc1snc21zdGV4dCddKSApCiAgewogICAgJHNtc3RleHQgPSB0cmltKCRwYXJhbXNbJ3Ntc3RleHQnXSk7CiAgICB1bnNldCgkcGFyYW1zWydzbXN0ZXh0J10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2xpbmt0ZXh0J10pICkKICB7CiAgICAkbGlua3RleHQgPSB0cmltKCRwYXJhbXNbJ2xpbmt0ZXh0J10pOwogICAgdW5zZXQoJHBhcmFtc1snbGlua3RleHQnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1sndXJsb25seSddKSApCiAgewogICAgJHVybG9ubHkgPSAoaW50KSRwYXJhbXNbJ3VybG9ubHknXTsKICAgIHVuc2V0KCRwYXJhbXNbJ3VybG9ubHknXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pICkKICB7CiAgICAkaW5saW5lID0gKGludCkkcGFyYW1zWydpbmxpbmUnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydkZXN0cGFnZSddKSApCiAgewogICAgJHBhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydkZXN0cGFnZSddKTsKICAgIGlmKCAkcGFnZSApCiAgICAgIHsKCSRyZXR1cm5pZCA9ICRwYWdlOwoJJGlubGluZSA9IDA7CiAgICAgIH0KICAgIHVuc2V0KCRwYXJhbXNbJ2Rlc3RwYWdlJ10pOwogIH0KaWYoICRzbXN0ZXh0ID09ICcnICkKICB7CiAgICAvLyBjb3VsZCBub3QgZmluZCB0ZXh0LgogICAgcmV0dXJuOwogIH0KCi8vIGdpdmVuIHRoZSB0ZXh0Li4uIGdldCBhIGtleQoka2V5ID0gbWQ1KCR0ZXh0KTsKCi8vIHN0b3JlIHRoZSBkYXRhIGluIHRoZSB0ZW1wb3JhcnkgZGF0YSBzdG9yZS4KLy8ganVzdCBpbmNhc2UgdGhpcyBpcyBhIHJlYWxvYWRlZCBwYWdlLCBtYWtlIHN1cmUgd2UgZXJhc2UKLy8gdGhlIGRhdGEgZmlyc3QuCiRkYXRhc3RvcmUgPSBuZXcgY2dlX2RhdGFzdG9yZSgpOwokZGF0YXN0b3JlLT5lcmFzZSgkdGhpcy0+R2V0TmFtZSgpLCRrZXkpOwokZGF0YXN0b3JlLT5zdG9yZSgkc21zdGV4dCwkdGhpcy0+R2V0TmFtZSgpLCRrZXkpOwoKLy8gTm93IGNyZWF0ZSBhIGxpbmsuCiRwYXJhbXNbJ3Ntc2tleSddID0gJGtleTsKJHR4dCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZG9fZW50ZXJudW1iZXInLCRyZXR1cm5pZCwkbGlua3RleHQsCgkJCSAkcGFyYW1zLCcnLCR1cmxvbmx5LCRpbmxpbmUpOwplY2hvICR0eHQ7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.entertext.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6ZQovLwokc21zbnVtID0gJyc7CiRzbXN0ZXh0ID0gJyc7CiR1cmxvbmx5ID0gMDsKJGxpbmt0ZXh0ID0gJHRoaXMtPkxhbmcoJ3NlbmRfbWVfbWVzc2FnZScpOwokaW5saW5lID0gMDsKCi8vCi8vIEdldCBQYXJhbXMKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ3Ntc251bSddKSApCiAgewogICAgJHNtc251bSA9IChpbnQpJHBhcmFtc1snc21zbnVtJ107CiAgfQppZiggaXNzZXQoJHBhcmFtc1sndXJsb25seSddKSApCiAgewogICAgJHVybG9ubHkgPSAoaW50KSRwYXJhbXNbJ3VybG9ubHknXTsKICAgIHVuc2V0KCRwYXJhbXNbJ3VybG9ubHknXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pICkKICB7CiAgICAkaW5saW5lID0gKGludCkkcGFyYW1zWydpbmxpbmUnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydkZXN0cGFnZSddKSApCiAgewogICAgJHBhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydkZXN0cGFnZSddKTsKICAgIGlmKCAkcGFnZSApCiAgICAgIHsKCSRpbmxpbmUgPSAwOwoJJHJldHVybmlkID0gJHBhZ2U7CiAgICAgIH0KICAgIHVuc2V0KCRwYXJhbXNbJ2Rlc3RwYWdlJ10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2xpbmt0ZXh0J10pICkKICB7CiAgICAkbGlua3RleHQgPSB0cmltKCRwYXJhbXNbJ2xpbmt0ZXh0J10pOwogICAgdW5zZXQoJHBhcmFtc1snbGlua3RleHQnXSk7CiAgfQppZiggJHNtc251bSA9PSAnJyApCiAgewogICAgLy8gZG9uJ3Qga25vdyB3aG8gdG8gc2VuZCB0by4KICAgIHJldHVybjsKICB9CgovLyBOb3cgQ3JlYXRlIGEgTGluawokdHh0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkb19lbnRlcnRleHQnLCRyZXR1cm5pZCwkbGlua3RleHQsCgkJCSAkcGFyYW1zLCcnLCR1cmxvbmx5LCRpbmxpbmUpOwplY2hvICR0eHQ7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/CGSMS.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFRoaXMgbW9kdWxlIGlzIGRlcml2ZWQgZnJvbSBDR0V4dGVuc2lvbnMgCiRjZ2V4dGVuc2lvbnMgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddLCdtb2R1bGVzJywKCQkJICAgICAgJ0NHRXh0ZW5zaW9ucycsJ0NHRXh0ZW5zaW9ucy5tb2R1bGUucGhwJyk7CmlmKCAhaXNfcmVhZGFibGUoICRjZ2V4dGVuc2lvbnMgKSApCnsKICBlY2hvICc8aDE+PGZvbnQgY29sb3I9InJlZCI+RVJST1I6IFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIGNvdWxkIG5vdCBiZSBmb3VuZC48L2ZvbnQ+PC9oMT4nOwogIHJldHVybjsKfQpyZXF1aXJlX29uY2UoJGNnZXh0ZW5zaW9ucyk7Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgQ0dTTVMgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewoKICBjb25zdCBURVNUX01FU1NBR0UgPSAnVGVzdCBNZXNzYWdlIGZyb20gQ0dTTVMnOwogIGNvbnN0IFBSRUZfTkVXRU5URVJOVU1CRVJfVFBMID0gJ2VudGVybnVtYmVyX25ld3RwbCc7CiAgY29uc3QgUFJFRl9ERkxURU5URVJOVU1CRVJfVFBMID0gJ2VudGVybnVtYmVyX2RmbHR0cGwnOwogIGNvbnN0IFBSRUZfTkVXRU5URVJURVhUX1RQTCA9ICdlbnRlcnRleHRfbmV3dHBsJzsKICBjb25zdCBQUkVGX0RGTFRFTlRFUlRFWFRfVFBMID0gJ2VudGVydGV4dF9kZmx0dHBsJzsKICAKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQ29uc3RydWN0b3IoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldE5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJ0NHU01TJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRGcmllbmRseU5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS4wJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRIZWxwKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QXV0aG9yKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICB7CiAgICByZXR1cm4gJ2NhbGd1eTEwMDAnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvckVtYWlsKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0Q2hhbmdlTG9nKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CiAgICAkdHh0ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvY2hhbmdlbG9nLmluYycpOwogICAgcmV0dXJuICR0eHQ7CiAgfQogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElzUGx1Z2luTW9kdWxlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEhhc0FkbWluKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluU2VjdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdleHRlbnNpb25zJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2R1bGVfZGVzY3JpcHRpb24nKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBWaXNpYmxlVG9BZG1pblVzZXIoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpIHx8CiAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXREZXBlbmRlbmNpZXMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgIHJldHVybiBhcnJheSgnQ0dFeHRlbnNpb25zJz0+JzEuMTcuNycpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHVibGljIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogIHsKICAgIHJldHVybiAiMS42LjUiOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEFsbG93QXV0b0luc3RhbGwoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkgCiAgewogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEFsbG93QXV0b1VwZ3JhZGUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgCiAgewogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldFBhcmFtZXRlcnMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICB7CiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCiAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL0NHU01TXC9kZXZyZXBvcnQkLycsYXJyYXkoJ2FjdGlvbic9PidkZXZyZXBvcnQnKSk7CgogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aW9uJywnZW50ZXJudW1iZXInLCR0aGlzLT5MYW5nKCdoZWxwX2FjdGlvbicpKTsKCiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzbXN0ZXh0JywnJywkdGhpcy0+TGFuZygnaGVscF90ZXh0JykpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Ntc3RleHQnLENMRUFOX1NUUklORyk7CgogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbGlua3RleHQnLCR0aGlzLT5MYW5nKCdzZW5kX3RvX21vYmlsZScpLCR0aGlzLT5MYW5nKCdoZWxwX2xpbmt0ZXh0JykpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xpbmt0ZXh0JyxDTEVBTl9TVFJJTkcpOwoKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3VybG9ubHknLDAsJHRoaXMtPkxhbmcoJ2hlbHBfdXJsb25seScpKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1cmxvbmx5JyxDTEVBTl9JTlQpOwoKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2lubGluZScsMCwkdGhpcy0+TGFuZygnaGVscF9pbmxpbmUnKSk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaW5saW5lJyxDTEVBTl9JTlQpOwoKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2VudGVybnVtYmVydGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2VudGVybnVtYmVydGVtcGxhdGUnKSk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZW50ZXJudW1iZXJ0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdlbnRlcnRleHR0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ2hlbHBfZW50ZXJudW1iZXJ0ZW1wbGF0ZScpKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdlbnRlcnRleHR0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXN0cGFnZScsMCwkdGhpcy0+TGFuZygnaGVscF9kZXN0cGFnZScpKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZXN0cGFnZScsQ0xFQU5fU1RSSU5HKTsKCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc21za2V5JyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvY2dzbXNfLiovJyxDTEVBTl9OT05FKTsKCiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzbXNudW0nLCcnLCR0aGlzLT5MYW5nKCdoZWxwX3Ntc251bScpKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzbXNudW0nLENMRUFOX0lOVCk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0SGVhZGVySFRNTCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgewogICAgJG9iaiA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0pRdWVyeVRvb2xzJyk7CiAgICBpZiggaXNfb2JqZWN0KCRvYmopICkKICAgICAgewokdG1wbCA9IDw8PEVPVAp7SlF1ZXJ5VG9vbHMgYWN0aW9uPSdpbmNqcycgZXhjbHVkZT0nZm9ybSd9CntKUXVlcnlUb29scyBhY3Rpb249J3JlYWR5J30KRU9UOwogICAgICAgICR0eHQgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRtcGwpOwoJcmV0dXJuICR0eHQ7CiAgICAgIH0KICB9CQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMCAtIEZlYnJ1YXJ5IDIwMTAKICAgIDx1bD4KICAgICAgIDxsaT5Jbml0aWFsIHJlbGVhc2Ugd2l0aCBpbnRlcmxpbmtlZCBhbmQgZXhwZXJpbWVudGFsIGdvb2dsZSB2b2ljZSBnYXRld2F5cy48L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_mobiles_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgovLyBHZXQgdGhlIGxpc3Qgb2YgbW9iaWxlcy4KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dzbXMgCiAgICAgICAgICAgT1JERVIgQlkgaWQgQVNDJzsKJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApID4gMCApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQogICAgICB7CgkkcmVjID0mICR0bXBbJGldOwoJJHJlY1snZWRpdF9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZWRpdF9tb2JpbGUnLCRyZXR1cm5pZCwnJywKCQkJCQkJICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkJICBhcnJheSgnbWlkJz0+JHJlY1snaWQnXSkpOwoJJHJlY1snZGVsX2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9kZWxfbW9iaWxlJywkcmV0dXJuaWQsJycsCgkJCQkJCSAgJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJICBhcnJheSgnbWlkJz0+JHJlY1snaWQnXSksICcnLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdhc2tfZGVsZXRlX21vYmlsZScpKTsKICAgICAgfQoKICAgICRzbWFydHktPmFzc2lnbignbW9iaWxlcycsJHRtcCk7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdhZGRfbGluaycsCgkJJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2VkaXRfbW9iaWxlJywkcmV0dXJuaWQsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2FkZF9tb2JpbGUnKSwKCQkJCSAgICAgICAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLAoJCQkJICAgICAgIGFycmF5KCksJycsJycsZmFsc2UpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fbW9iaWxlc190YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.dflt_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+R2V0RGVmYXVsdFRlbXBsYXRlRm9ybSgkdGhpcywkaWQsJHJldHVybmlkLAoJCQkJICAgQ0dTTVM6OlBSRUZfTkVXRU5URVJOVU1CRVJfVFBMLCdkZWZhdWx0YWRtaW4nLCdkZmx0X3RlbXBsYXRlcycsCgkJCQkgICAkdGhpcy0+TGFuZygnZGZsdF9lbnRlcm51bWJlcl90ZW1wbGF0ZScpLAoJCQkJICAgJ29yaWdfZW50ZXJudW1iZXJfdGVtcGxhdGUudHBsJywKCQkJCSAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfZW50ZXJudW1iZXJfdGVtcGxhdGUnKSk7CmVjaG8gJzxici8+PGhyLz4nOwoKZWNobyAkdGhpcy0+R2V0RGVmYXVsdFRlbXBsYXRlRm9ybSgkdGhpcywkaWQsJHJldHVybmlkLAoJCQkJICAgQ0dTTVM6OlBSRUZfTkVXRU5URVJURVhUX1RQTCwnZGVmYXVsdGFkbWluJywnZGZsdF90ZW1wbGF0ZXMnLAoJCQkJICAgJHRoaXMtPkxhbmcoJ2RmbHRfZW50ZXJ0ZXh0X3RlbXBsYXRlJyksCgkJCQkgICAnb3JpZ19lbnRlcnRleHRfdGVtcGxhdGUudHBsJywKCQkJCSAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfZW50ZXJ0ZXh0X3RlbXBsYXRlJykpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.enternumber_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdlbnRlcm51bWJlcl8nLAoJCQkgICAgIENHU01TOjpQUkVGX05FV0VOVEVSTlVNQkVSX1RQTCwnZW50ZXJudW1iZXInLAoJCQkgICAgIENHU01TOjpQUkVGX0RGTFRFTlRFUk5VTUJFUl9UUEwsCgkJCSAgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2VudGVybnVtYmVyX3RlbXBsYXRlcycpLAoJCQkgICAgICR0aGlzLT5MYW5nKCdpbmZvX2VudGVybnVtYmVyX3RlbXBsYXRlcycpKTsKCQkJICAgICAKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.entertext_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdlbnRlcnRleHRfJywKCQkJICAgICBDR1NNUzo6UFJFRl9ORVdFTlRFUlRFWFRfVFBMLCdlbnRlcnRleHQnLAoJCQkgICAgIENHU01TOjpQUkVGX0RGTFRFTlRFUlRFWFRfVFBMLAoJCQkgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9lbnRlcnRleHRfdGVtcGxhdGVzJyksCgkJCSAgICAgJHRoaXMtPkxhbmcoJ2luZm9fZW50ZXJ0ZXh0X3RlbXBsYXRlcycpKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.security_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdob3VybHlsaW1pdCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Ntc19ob3VybHlsaW1pdCcsNSkpOwokc21hcnR5LT5hc3NpZ24oJ2RhaWx5bGltaXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzbXNfZGFpbHlsaW1pdCcsMjApKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlc2VjdXJpdHknKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnc2VjdXJpdHlfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAwAPYAAEYDA00FBXICAnoEBH4ODowDA5UEBJsGBqYGBqoBAaMKCqoMDLMCA7cIB7YKCrkMDKUWFq0UFKocHLQUFLwTE7YbG7wbG74fIK4hIbMlJbwjI7QrK7srK7YyMrw0NLs9PcEcHMIkJMQsLMkuLsYzM8o0NMQ7O8w8PNA9Pc8/QL5DQ79JSsZCQs1DQ8JKSs1JSdFERdBHSNRLS9dPUMZSUshRUcxcXNVSUtlUVNlXWdZdXdtcXN5fYM1jY9ZkZN1jY9Jra9ppadZzc911ddt7e+FmZuNsbOV0dOh2duV4d+R7e+p8fN2Dg9yZmeWEhOyEhOeIh+SLi+uMi/GMjOSUlOyTk+aZmeybm/OUlPOcnPienuOiou2jo+2srPWiovqkpPOsrPysrOWzs+2ysu26uvOzs/6wsPO7u/i/v+/ExO7MzPLBwfjFxfLMzPnOzvXT0/nX1/XZ2fnd3Pfk5Prk5Pvt7f319f77+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAHgAIf8LSUNDUkdCRzEwMTL/AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmll/3cAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAf8AAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0L/AAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVog/wAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAv8UAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWT/CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kX/64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4f8uFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk3/Sk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+/3abdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqv8cqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LxU6Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//ACwAAAAAMAAwAAAH/oB4goOEhYaHiImJPkGNjo+QkZKRPoo3OlVWV1dcWlxeYF1go2BlpmamqaqmY61dXWNXOzeHN1FcUEdLS09TUlNYWFlaX8Vhx2FmyslmYWBfpNBcXGVkUTKFtlE/RUZISLu9U8BYWubExl9hxcVe7u5cWVlXmmNQtIM6Vjs/Rv7gvMQFK4eOXbFnX955uSJv0yYrVcjoGCSDyZAc3f4BFBjsnMF2XhJ6kTfPIb0rVLgwqSHoRRQcOfh1OwKQ16+BWgiGVPguy8J5VYIKZUIFG54XTG7g4MEj4zcoI7GMGzjsnBZ3PkmWxCKUShUqQ5i8aJkUxw6m3ZAYwXKnrR06/m7OfAlWdaRWeVW4Cq0ihUqUHWLJKt1xNqORKm0Tu4XDJgvdu1f28q0Spe+RGUxaCGJB5MYMmEz9GZGS2I7itnXYeKHKNVheoVCkRImSQwYRFpuJvJAxuKmRIlNOC79T58zAoFylBI0tO4oRGS9u55bB+0bMItgRD3ebGE4WKXqliG8eBYqSG7uF4MZjQkgLGLxj+jbixMmVMXJMb68DZvx4KFDUp8QOMsDQAhEmCNLee9TlYFZT2Bm2BBhv6KefW2U8IQUUTzgRYH0/UGegEAni8QEQLDCo1HUZHZEEEkn4U0Ub22VY3xL1OREidSmwAESJJgBxwgnwyQATYdwE/mHEEbrswmQVciimXxdK5KjEDzOI2OOPgnjwI5FFHvnDEf4EUQSTSSyhhBFJnMFdYlcc4cQRWGYJAwxDAkFClz2QMCSD1SkRxxttlFEFmS4moUSMXJTWFh3OzSKigSeY0IMHXdpAQgknpFBklk5IKQcZSyzp4hFBXOHoHW3kMMMNkw5JQg8dCMKBpn6e8F6RRFiYGB1coMoknV2s6gR8d7aQwgklkGBDrXjc6sGmJ6Bw551HmGaHtvqtYYSS/vyQhqNy5HDtkCeQ4IENGwiyAQ0ciLApCvTeKcS2q7b1xhFFKBnED2/csa1pVKDQArokkCACDe3ikQG88lKrK3xB/hDBRYVvshoED0EQOAS+psUhA7rNisABw4Jk4IIGISRcAqedwsACCidER6PA+p2xAw6ewTAGzgIzMUK6CZvsQgaCYLACyyGIIMLLQ1p77gtbcNtWFEXCEEQdA98hRroliBBCCBq4gEHSKmjAstMjjABztXcWeEIUboVcoNxqAD2HDPKOTbYKZ+OBwQcVWOB3xC8nLjWeVgBtR8F3lsBE13cE0fTYGligggSCSEC4BWof7rQtVPhQAr1D5o3vG3iiUMILA5vWBOYXWFDBB5zjIYEHFVBggeF+h+DDHNpGwSkKI9wrsMBGDP1yG12TwfLvtnuQOwQdTECB7yCAMDYJ/nHgbEcdN7hdggk04ktFCCWMIEIT4scRAgi/UzBBBxAIAsEG2mvvuwUggF3s7CC0toWgcfjqAttCwASB1YE4IqjfBCawgfzhIQIbcIAD/Pc/E3Cta0AIgftCIITl3SENJWgaCIIgvjqYwH4T0OAGIiAIAmRgAQ54wAP6t70tAE0N8/ObDrTFqhJ0zwI2MKEdXNCAB9jPARsggCACYIEFNECDOtweBS7QhDrUQQwk6N4F5jcCGpiRBi3oXvdOtgIXtLECGmwAAxagAQBMsYoMaMAVdbjDBSygAhlogBoHub0mEpICcnQAAxgQRzky4AIBmGIFFknJK+bQiTpkAAgE2vkAEHSSfmp8gCa350QKaFCRjkyABSKJhwBUIAGUpKQD9JhDCnRPk5vspC71KEhP6lCRwIxlAirAygBMAJaxrCQvF7nJZvKxk4LMIy/l6EhhTqCYE0BAMre5yGl685vV5CYDEnDNQSggAglApji7KU1p6jGP6xRmAhagAEIMYAEISOciYcnPffrzn+pEpj79mc4EIGABAyiEAQ6AgHwW9KEQjahEJ2pQBRjgEAVgaEM3ytGGKgCfHQ2pSDd6gAIkAgACSKlKV8rSlrr0pXZUhExnStOa2vSmiQgEADs=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2FkZF9tb2JpbGUnXSA9ICdBZGQgTW9iaWxlJzsKJGxhbmdbJ2FkZGVkaXRfbW9iaWxlJ10gPSAnQWRkL0VkaXQgYSBNb2JpbGUgUGhvbmUgUmVjb3JkJzsKJGxhbmdbJ2Fza19kZWxldGVfbW9iaWxlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1vYmlsZSBwaG9uZSBudW1iZXIgZnJvbSB0aGUgZGF0YWJhc2U/JzsKCiNCCgoKI0MKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydjdXN0b20nXSA9ICdDdXN0b20nOwoKI0QKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZGZsdF9lbnRlcm51bWJlcl90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0ICZxdW90O0VudGVyIFlvdXIgTnVtYmVyJnF1b3Q7IFRlbXBsYXRlJzsKJGxhbmdbJ2RmbHRfZW50ZXJ0ZXh0X3RlbXBsYXRlJ10gPSAnU3lzdGVtIERlZmF1bHQgJnF1b3Q7RW50ZXIgWW91ciBNZXNzYWdlIFRleHQmcXVvdDsgVGVtcGxhdGUnOwoKI0UKJGxhbmdbJ2VudGVyX21vYmlsZV9udW1iZXInXSA9ICdFbnRlciBNb2JpbGUgUGhvbmUgTnVtYmVyJzsKJGxhbmdbJ2VudGVyX251bWJlcl90ZW1wbGF0ZXMnXSA9ICcmcXVvdDtFbnRlciBZb3VyIE51bWJlciZxdW90OyBUZW1wbGF0ZXMnOwokbGFuZ1snZW50ZXJfdGV4dF90ZW1wbGF0ZXMnXSA9ICcmcXVvdDtTZW5kIEEgTWVzc2FnZSZxdW90OyBUZW1wbGF0ZXMnOwokbGFuZ1snZXJyb3JfZGJfb3BfZmFpbGVkJ10gPSAnRGF0YWJhc2Ugb3BlcmF0aW9uIGZhaWxlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1snZXJyb3JfaW52YWxpZF9pbmZvJ10gPSAnT25lIG9yIG1vcmUgdmFsdWVzIHNwZWNpZmllZCBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX251bWJlciddID0gJ1RoZSBtb2JpbGUgcGhvbmUgbnVtYmVyIHlvdSBlbnRlcmVkIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF90ZXh0J10gPSAnVGhlIHRleHQgeW91IGVudGVyZWQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzJzsKJGxhbmdbJ2Vycm9yX25hbWVfZXhpc3RzJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3Jfbm9nYXRld2F5c2ZvdW5kJ10gPSAnQ291bGQgbm90IGZpbmQgYW55IFNNUyBnYXRld2F5cyc7CiRsYW5nWydlcnJvcl9ub3Rmb3VuZCddID0gJ1RoZSByZXF1ZXN0ZWQgaXRlbSBjb3VsZCBub3QgYmUgZm91bmQnOwoKI0YKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgU01TIFV0aWxpdHknOwokbGFuZ1snZnJvbSddID0gJ0Zyb20nOwoKI0cKJGxhbmdbJ2dvb2dsZXZvaWNlX3Ntc19nYXRld2F5J10gPSAnR29vZ2xlIFZvaWNlIFNNUyBHYXRld2F5JzsKCiNICiRsYW5nWydoZWxwX2FjdGlvbiddID0gPDw8RU9UClRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gZGVjaWRlIHRoZSBiZWhhdm91ciBvZiB0aGUgbW9kdWxlLiAgVmFsaWQgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBhcmU6Cjx1bD4KPGxpPmVudGVybnVtYmVyIDxlbT4oZGVmYXVsdCk8L2VtPiAtIERpc3BsYXkgYSBsaW5rIHRvIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzZW5kIHByZS1kZWZpbmVkIHRleHQgdG8gYSB1c2VyLWRlZmluZWQgbW9iaWxlIHBob25lIG51bWJlci48L2xpPgo8bGk+ZW50ZXJ0ZXh0IC0gRGlzcGxheSBhIGxpbmsgdG8gYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbmQgdXNlci1kZWZpbmVkIHRleHQgdG8gYSBwcmUtZGVmaW5lZCBtb2JpbGUgcGhvbmUgbnVtYmVyLjwvbGk+CjwvdWw+CkVPVDsKJGxhbmdbJ2hlbHBfc21zdGV4dCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZW50ZXJudW1iZXIgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBkZWZpbmVzIHRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBzZW50IGluIHRoZSBzbXMgbWVzc2FnZS4gICBUaGUgdGV4dCBpcyBuZXZlciBkaXNwbGF5ZWQgaW4gdGhlIEhUTUwgb3V0cHV0IG9mIHRoZSBwYWdlIGZvciBzZWN1cml0eSByZWFzb25zLic7CiRsYW5nWydoZWxwX2xpbmt0ZXh0J10gPSAnVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIHRleHQgdGhhdCBpcyBkaXNwbGF5ZWQgaW4gdGhlIGxpbmsuICBUaGlzIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IHdoZW4gdGhlIHVybG9ubHkgcGFyYW1ldGVyIGlzIHVzZWQuJzsKJGxhbmdbJ2hlbHBfdXJsb25seSddID0gJ1RoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IGluc3RlYWQgb2YgYSBmdWxsIGxpbmsgb25seSB0aGUgVVJMIHNob3VsZCBiZSBlY2hvZWQsIGFsbG93aW5nIHlvdSB0byBidWlsZCB5b3VyIG93biBsaW5rLic7CiRsYW5nWydoZWxwX2lubGluZSddID0gJ1RoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSBmb3JtIHNob3VsZCByZXBsYWNlIHRoZSBsaW5rIChpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGNvbnRlbnQgYXJlYSBvZiB0aGUgcGFnZSkuICBJdCBpcyBub3QgdXNlZnVsIHdpdGggdGhlIGRlc3RwYWdlIHBhcmFtZXRlcic7CiRsYW5nWydoZWxwX2Rlc3RwYWdlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIHJlc3VsdGluZyBmb3JtIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgQ01TTVMgY29udGVudCBwYWdlIChzcGVjaWZpZWQgYnkgcGFnZSBpZCBvciBhbGlhcyknOwokbGFuZ1snaGVscF9zbXNudW0nXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVydGV4dCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGRlZmluZXMgdGhlIG51bWVyaWMgSUQgb2YgYSBwcmUtZGVmaW5lZCBtb2JpbGUgcGhvbmUgbnVtYmVyJzsKJGxhbmdbJ2hlbHBfZW50ZXJudW1iZXJ0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZW50ZXJudW1iZXIgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IGVudGVybnVtYmVyIHRlbXBsYXRlIHRvIGNyZWF0ZSB0aGUgZm9ybSB3aXRoJzsKJGxhbmdbJ2hlbHBfZW50ZXJ0ZXh0dGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVydGV4dCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgZW50ZXJ0ZXh0IHRlbXBsYXRlIHRvIGNyZWF0ZSB0aGUgZm9ybSB3aXRoJzsKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPVAo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxsb3dzIHdlYnNpdGUgdmlzaXRvcnMgdG8gZWl0aGVyIHNlbmQgYSBwcmUtZGV0ZXJtaW5lZCAoYW5kIGVuY3J5cHRlZCkgdGV4dCBtZXNzYWdlIHRvIGFueSB0ZXh0IGNhcGFibGUgcGhvbmUsIG9yIHRvIGFsbG93IHNlbmRpbmcgYSB1c2VyIHNwZWNpZmllZCB0ZXh0IG1lc3NhZ2UgdG8gYSBwcmUtZGV0ZXJtaW5lZCAoYW5kIGhpZGRlbikgbW9iaWxlIHBob25lIG51bWJlci4gIEl0IGlzIHVzZWZ1bCBmb3Igc3VjaCB0aGluZ3MgYXMgc2VuZGluZyBhZGRyZXNzZXMgZnJvbSBhIGRpcmVjdG9yeSB0byBhIHBlcnNvbnMgbW9iaWxlIHBob25lIG51bWJlci4uLiBvciBmb3IgbWVzc2FnaW5nIGEgd2Vic2l0ZSBhZG1pbmlzdHJhdG9yIHdpdGggdXJnZW50IGluZm9ybWF0aW9uLjwvcD4KPGgzPlNlY3VyaXR5PC9oMz4KPHA+QXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUgdG8gZW5zdXJlIGEgcmVhc29uYWJsZSBsZXZlbCBvZiBzZWN1cml0eSBhdCBhbGwgdGltZXMuICBUaGlzIGlzIGFjY29tcGxpc2hlZCBpbiBhIHZhcmlldHkgb2Ygd2F5czo8L3A+Cjx1bD4KPGxpPjEsIEFsbCB0ZXh0IG1lc3NhZ2VzIGFyZSBjaGVja2VkIGZvciBsZW5ndGggbGltaXRzLCBhbmQgdmFsaWQgY2hhcmFjdGVycyBiZWZvcmUgc2VuZGluZy48L2xpPgo8bGk+Mi4gQWxsIHRleHQgbWVzc2FnZXMgYXJlIHJlY29yZGVkIGluIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBzZW5kZXIuPC9saT4KPGxpPjMuIEJlZm9yZSBhbnkgdGV4dCBtZXNzYWdlIGlzIHNlbnQsIGEgY2hlY2sgaXMgbWFkZSB0byBlbnN1cmUgdGhhdCB0aGUgdXNlciBoYXMgbm90IGV4Y2VlZGVkIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBtZXNzYWdlcyBzZW50IGZvciB0aGF0IElQIGFkZHJlc3MuPC9saT4KPGxpPjQuIFdoZW4gc2VuZGluZyB0byBhIHByZS1kZWZpbmVkIG1vYmlsZSBwaG9uZSB0aGUgU01TIG51bWJlciBpcyBoaWRkZW4gZnJvbSB0aGUgd2Vic2l0ZSB2aXNpdG9yIGF0IGFsbCB0aW1lcyB0byBwcmV2ZW50IHNwYW1taW5nLjwvbGk+CjxsaT41LiBXaGVuIHNlbmRpbmcgYSBwcmUtZGVmaW5lZCBtZXNzYWdlIHRoZSB0ZXh0IG9mIHRoZSBtZXNzYWdlIGlzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYW5kIHRoZSB2aXNpdG9yIGlzIGdpdmVuIGEgdW5pcXVlIGtleSB0byB0aGUgdGV4dCBvZiB0aGUgbWVzc2FnZSwgcHJldmVudGluZyBhbHRlcmF0aW9uIG9mIHRoZSB0ZXh0IGl0c2VsZi48L2xpPgo8L3VsPgo8aDM+U01TIEdhdGV3YXlzPC9oMz4KPHA+VGhpcyBtb2R1bGUgZGVwZW5kcyBvbiBzZWxlY3RpbmcgYSBzdXBwb3J0ZWQgU01TIGdhdGV3YXkgYW5kIGZpbGxpbmcgaW4gdGhlIHJlcXVpcmVkIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uLiAgIFlvdSB3aWxsIG5lZWQgdG8gc2lnbiB1cCB0byBhdCBsZWFzdCBvbmUgb2YgdGhlIHN1cHBvcnRlZCBnYXRld2F5cy4gIFRoaXMgbWF5IGludm9sdmUgcGF5aW5nIG1vbmV5IHRvIGEgdGhoaXJkIHBhcnR5LjwvcD4KPHA+RGlmZmVyZW50IFNNUyBHYXRld2F5cyB3aWxsIGhhdmUgZGlmZmVyZW50IHJlcXVpcmVtZW50cyBhbmQgbGltaXRhdGlvbnMgb24gdGhlIGFtb3VudCwgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gbWVzc2FnZXMgdGhhdCBjYW4gYmUgc2VudC4uLiBpdCBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIHVuZGVyc3RhbmQgdGhlc2UgbGltaXRhdGlvbnMuPC9wPgo8cD5DdXJyZW50bHksIHRoZXNlIGdhdGV3YXlzIGFyZSBJbXBsZW1lbnRlZDo8L3A+Cjx1bD4KICA8bGk+PGEgaHJlZj0iaHR0cDovL2ludGVybGlua2VkLm1vYmkiPjxzdHJvbmc+SW50ZXJsaW5rZWQubW9iaTwvc3Ryb25nPjwvYT4gLSBBIFVLIGJhc2VkIFNNUyBtYXJrZXRpbmcgcHJvdmlkZXIuPC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly92b2ljZS5nb29nbGUuY29tIj48c3Ryb25nPkdvb2dsZSBWb2ljZTwvc3Ryb25nPjwvYT4gLSBBbiBleHBlcmltZW50YWwgKGJ1dCB3b3JraW5nIGF0IHRoaXMgdGltZSkgdXRpbGl0eSB0byBhbGxvdyBzZW5kaW5nIFNNUyBtZXNzYWdlcyB0aHJvdWdoIEdvb2dsZSBWb2ljZS48L2xpPgo8L3VsPgo8aDM+SG93IGRvIEkgdXNlIGl0PC9oMz4KPHA+VGhlIGZpcnN0IHRoaW5nIHlvdSBzaG91bGQgZG8gaXMgdG8gZ28gaW50byB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCB1bmRlciAmcXVvdDtFeHRlbnNpb25zICZndDsmZ3Q7IENhbGd1eXMgU01TIFV0aWxpdHkmcXVvdDsuICBUaGVyZSB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBvbmUgb2YgdGhlIGF2YWlsYWJsZSBnYXRld2F5cyBhbmQgdG8gZW50ZXIgdGhlIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uIGZvciB0aGF0IGdhdGV3YXkuICBBdCB0aGlzIHRpbWUgeW91IGNhbiBhbHNvIGRlZmluZSB0aGUgU01TIHNlbmRpbmcgbGltaXRzIHRvIHJlZHVjZSBzcGFtLjwvcD4KPHA+U2Vjb25kbHkgeW91IHNob3VsZCBwZXJmb3JtIGF0IGxlYXN0IG9uZSBTTVMgVGVzdCAodGhlcmUgaXMgYSB0YWIgaW4gdGhlIG1vZHVsZSBhZG1pbiBwYW5lbCB0byBhbGxvdyB0aGlzKSB0byBlbnN1cmUgdGhhdCBTTVMgbWVzc2FnZXMgYXJlIGJlaW5nIHNlbnQgdG8geW91ciBtb2JpbGUgcGhvbmUuPC9wPgo8cD5UaGlyZGx5IHlvdSBuZWVkIHRvIHBsYWNlIGF0IGxlYXN0IG9uZSB0YWcgaW50byBhIHBhZ2UsIG9yIHBhZ2UgdGVtcGFsdGUgaW4gdGhlIENNU01TIEFkbWluIGNvbnNvbGUuICBUaGVyZSBhcmUgdHdvIHByaW1hcnkgd2F5cyBpbiB3aGljaCB0byB1c2UgdGhpcyBtb2R1bGU6PC9wPgo8dWw+CiAgIDxsaT4xLiBTZW5kIHByZWRlZmluZWQgdGV4dCB0byBhIHVzZXIgZGVmaW5lZCBtb2JpbGUgbnVtYmVyIDxjb2RlPntDR1NNUyBhY3Rpb249J2VudGVybnVtYmVyJyB0ZXh0PSd0aGUgcXVpY2sgYnJvd24gZm94J308L2NvZGU+CiAgICA8cD5UaGlzIHdpbGwgZ2VuZXJhdGUgYSBsaW5rIHRoYXQgd2hlbiBjbGlja2VkIHdpbGwgZGlzcGxheSBhIGZvcm0gdG8gdGhlIHVzZXIgdG8gYWxsb3cgdGhlbSB0byBlbnRlciBhIG1vYmlsZSBwaG9uZSBudW1iZXIuPC9wPgogIDwvbGk+CiAgPGxpPjIuIFNlbmQgdXNlciBkZWZpbmVkIHRleHQgdG8gYSBwcmVkZWZpbmVkIG1vYmlsZSBudW1iZXIgPGNvZGU+e0NHU01TIGFjdGlvbj0nZW50ZXJ0ZXh0JyBzbXNudW09NX08L2NvZGU+CiAgPHA+VGhpcyB3aWxsIGdlbmVyYXRlIGEgbGluayB0aGF0IHdoZW4gY2xpY2tlZCB3aWxsIGRpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHRoZSB1c2VyIHRvIGVudGVyIGEgMTYwIGNoYXJhY3RlciBTTVMgTWVzc2FnZSB0aGF0IGlzIHRoZW4gc2VudCB0byBhIHByZWRldGVybWluZWQgbW9iaWxlIG51bWJlciB3aXRodCBoZSBpZD01LjwvcD4KICA8L2xpPgo8L3VsPgo8aDM+QVBJPC9oMz4KPHA+VGhpcyBtb2R1bGUgY29udGFpbnMgYSBjb21wbGV0ZSBBUEkgdG8gYWxsb3cgc2VuZGluZyBtZXNzYWdlcyBmcm9tIG90aGVyIG1vZHVsZXMgb3IgZnJvbSBVRFRzLiBBIGJyaWVmIGV4YW1wbGUgb2YgaG93IHRvIGRvIHRoaXMgaXMgYmVsb3cuLi4gZm9yIGEgY29tcGxldGUgaWxsdXN0cmF0aW9uIG9mIHRoZSBBUEkgbG9vayBhdCB0aGUgbGliL2NsYXNzLmNnc21zX3NlbmRlcl9iYXNlLnBocCBmaWxlLjwvcD4KPHByZSBzdHlsZT0ibWFyZ2luLWxlZnQ6IDVlbTsiPjxjb2RlPgpcJGdhdGV3YXkgPSBjZ3Ntc191dGlsczo6Z2V0X2dhdGV3YXkoKTsKXCRnYXRld2F5LT5zZXRfbXNnKCdoZWxsbyB3b3JsZCcpOwpcJGdhdGV3YXktPnNldF9udW0oJzEyMjI1NTUxMjEyJyk7ClwkZ2F0ZXdheS0+c2VuZCgpOwo8L2NvZGU+PC9wcmU+CjxoMz5SZXF1aXJlbWVudHM6PC9oMz4KPHA+VGhlIHJlcXVpcmVtZW50cyBhcmUgbnVtZXJvdXMsIHBsZWFzZSB1c2UgY2F1dGlvbjo8L3A+Cjx1bD4KPGxpPkNNUyBNYWRlIFNpbXBsZSAxLjYuNiBvciBncmVhdGVyPC9saT4KPGxpPlBIUCBWZXJzaW9uIDUuMisgKDUuMi4xMSBvciBiZXR0ZXIgaXMgcmVjb21tZW5kZWQpPC9saT4KPGxpPkEgc3Vic2NyaXB0aW9uIG9yIGFjY2VzcyB0byBhdCBsZWFzdCBvbmUgc3Vwb3J0ZWQgZ2F0ZXdheS48L2xpPgo8bGk+WW91ciBob3N0IG11c3QgYWxsb3cgb3V0Z29pbmcgSFRUUCBjb25uZWN0aW9uczwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCdzCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDAxMCwgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+ClRPRE8KRU9UOwoKI0kKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snaW5mb19lbnRlcm51bWJlcl90ZW1wbGF0ZXMnXSA9ICdUaGlzIGZvcm0gYWxsb3dzIHlvdSB0byBkZWZpbmUgYW5kIGVkaXQgYSB0ZW1wbGF0ZSB0aGF0IGFsbG93cyB3ZWJzaXRlIHZpc2l0b3JzIHRvIGVudGVyIHRoZWlyIG1vYmlsZSBwaG9uZSBudW1iZXIgdG8gcmVjZWl2ZSBhIHByZWRlZmluZWQgdGV4dCBtZXNzYWdlJzsKJGxhbmdbJ2luZm9fZW50ZXJ0ZXh0X3RlbXBsYXRlcyddID0gJ1RoaXMgZm9ybSBhbGxvd3MgeW91IHRvIGRlZmluZSBhbmQgZWRpdCBhIHRlbXBsYXRlIHRoYXQgYWxsb3dzIHdlYnNpdGUgdmlzaXRvcnMgdG8gZW50ZXIgYSBtZXNzYWdlIHRoYXQgd2lsbCBiZSBzZW50IHRvIGEgcHJlZGVmaW5lZCBtb2JpbGUgcGhvbmUgbnVtYmVyJzsKJGxhbmdbJ2luZm9fc21zdGVzdCddID0gJ1RoaXMgZnVuY3Rpb24gd2lsbCBzZW5kIGEgaGFyZGNvZGVkIG1lc3NhZ2UgdG8gdGhlIHNwZWNpZmllZCBtb2JpbGUgcGhvbmUgbnVtYmVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGNhbiBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHlvdXIgc2V0dGluZ3MgZm9yIHlvdXIgc2VsZWN0ZWQgU01TIGdhdGV3YXkgYXJlIGNvcnJlY3QuICBQbGVhc2UgYmUgYXdhcmUgdGhhdCBkZXBlbmRpbmcgdXBvbiB0aGUgZ2F0ZXdheSwgaXQgbWF5IHRha2Ugc2V2ZXJhbCBtaW51dGVzIGJlZm9yZSB5b3VyIHBob25lIHJlY2VpdmVzIHRoZSBtZXNzYWdlLic7CiRsYW5nWydpbmZvX3N5c2RmbHRfZW50ZXJudW1iZXJfdGVtcGxhdGUnXSA9ICdUaGlzIHRlbXBsYXRlIHdpbGwgYmUgdXNlZCB3aGVuIHlvdSBjcmVhdGUgYSBuZXcgZW50ZXJudW1iZXIgdGVtcGxhdGUuICBBbHRlcmluZyB0aGlzIHRlbXBsYXRlIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIGFueSBkaXNwbGF5IGl0ZW1zIG9uIHlvdXIgd2Vic2l0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZW50ZXJ0ZXh0X3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSB3aWxsIGJlIHVzZWQgd2hlbiB5b3UgY3JlYXRlIGEgbmV3IGVudGVydGV4dCB0ZW1wbGF0ZS4gIEFsdGVyaW5nIHRoaXMgdGVtcGxhdGUgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24gYW55IGRpc3BsYXkgaXRlbXMgb24geW91ciB3ZWJzaXRlJzsKJGxhbmdbJ2ludGVybGlua2VkX3Ntc19nYXRld2F5J10gPSAnSW50ZXJsaW5rZWQgU01TIEdhdGV3YXknOwoKI0oKCgojSwoKCiNMCiRsYW5nWydsb2dpbiddID0gJ0xvZ2luJzsKCiNNCiRsYW5nWydtb2JpbGVfbnVtYmVyJ10gPSAnTW9iaWxlIE51bWJlcic7CiRsYW5nWydtb2JpbGVfbnVtYmVycyddID0gJ01vYmlsZSBOdW1iZXJzJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIHRvIGFsbG93IHNlbmRpbmcgb2YgU01TIG1lc3NhZ2VzIGZyb20gd2l0aGluIGEgQ01TIE1hZGUgU2ltcGxlIFdlYnNpdGUnOwokbGFuZ1snbXNnX3JlY19kZWxldGVkJ10gPSAnTW9iaWxlIE51bWJlciBEZWxldGVkJzsKCiNOCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydudW1iZXInXSA9ICdOdW1iZXInOwoKI08KCgojUAokbGFuZ1sncGFzc3dvcmQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkLCBub3cgcGxlYXNlIGVuc3VyZSB0aGF0IGl0IGlzIGNvbmZpZ3VyZWQgcHJvcGVybHkgZm9yIHVzZSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWxlIHN1Y2Nlc3NmdWxseSByZW1vdmVkJzsKJGxhbmdbJ3Byb21wdF9zbXNfZGFpbHlfbGltaXQnXSA9ICdOdW1iZXIgb2YgTWVzc2FnZXMgdGhhdCBjYW4gYmUgc2VudCBieSBvbmUgSVAgYWRkcmVzcyBwZXIgZGF5JzsKJGxhbmdbJ3Byb21wdF9zbXNfaG91cmx5X2xpbWl0J10gPSAnTnVtYmVyIG9mIE1lc3NhZ2VzIHRoYXQgY2FuIGJlIHNlbnQgYnkgb25lIElQIGFkZHJlc3MgcGVyIGhvdXInOwoKI1EKCgojUgokbGFuZ1sncmVwb3J0aW5nX3VybCddID0gJ1VSTCB0byB3aGljaCB0aGUgc21zIGdhdGV3YXkgY2FuIHNlbmQgZGVsaXZlcnkgcmVwb3J0cyc7CgojUwokbGFuZ1snc2VjdXJpdHlfdGFiX2xibCddID0gJ1NlY3VyaXR5IC8gQW50aS1TcGFtJzsKJGxhbmdbJ3NlbGVjdGVkX2dhdGV3YXknXSA9ICdTZWxlY3RlZCBHYXRld2F5JzsKJGxhbmdbJ3NlbmQnXSA9ICdTZW5kJzsKJGxhbmdbJ3NlbmRfbWVfbWVzc2FnZSddID0gJ1NlbmQgbWUgYW4gU01TJzsKJGxhbmdbJ3NlbmRfdG9fbW9iaWxlJ10gPSAnU2VuZCB0byBNb2JpbGUnOwokbGFuZ1snc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydzbXNfbWVzc2FnZV9zZW50J10gPSAnWW91ciBtZXNzYWdlIGhhcyBiZWVuIHNlbnQuLi4gQWN0dWFsIGRlbGl2ZXJ5IHRpbWUgbWF5IHZhcnknOwokbGFuZ1snc21zX3NlbnQnXSA9ICdTTVMgTWVzc2FnZSAiJXMiIHNlbnQgdG8gJXMgZnJvbSBJUDolcyBTTVNJRD0lcyc7CiRsYW5nWydzbXNfZGVsaXZlcnlfb2snXSA9ICdTTVMgTWVzc2FnZSBJRDolcyBkZWxpdmVyZWQgdG8gJXMgSVA6JXMnOwokbGFuZ1snc21zX2RlbGl2ZXJ5X2JpbGxpbmcnXSA9ICdTTVMgTWVzc2FnZSBJRDolcyBiaWxsaW5nIGVycm9yIGF0ICVzLiBJUDolcyc7CiRsYW5nWydzbXNfZGVsaXZlcnlfaW52YWxpZCddID0gJ1NNUyBNZXNzYWdlIElEOiVzIGZhaWxlZCAoYmFycmVkIG9yIGludmFsaWQgbnVtYmVyOiAlcykgSVA6JXMnOwokbGFuZ1snc21zX2RlbGl2ZXJ5X290aGVyJ10gPSAnU01TIE1lc3NhZ2UgSUQ6JXMgb3RoZXIgZXJyb3IgKGZpbHRlcmVkIG9yIG1pc2MgZXJyb3IgdG8gJXMpIElQOiAlcyc7CiRsYW5nWydzbXNfZGVsaXZlcnlfcGVuZGluZyddID0gJ1NNUyBNZXNzYWdlIElEOiVzIHBlbmRpbmcgdG8gJXMgSVA6JXMnOwokbGFuZ1snc21zX2RlbGl2ZXJ5X3Vua25vd24nXSA9ICdTTVMgTWVzc2FnZSBJRDolcyB1bmtub3duIGVycm9yIGF0ICVzLiBJUDolcyc7CiRsYW5nWydzbXNfZXJyb3JfYXV0aCddID0gJ0F1dGhlbnRpY2F0aW9uIEVycm9yIGF0dGVtcHRpbmcgdG8gc2VuZCBTTVMgTWVzc2FnZSAiJXMiIHRvICVzIGZyb20gSVA6JXMnOwokbGFuZ1snc21zX2Vycm9yX2Jsb2NrZWQnXSA9ICdBdHRlbXB0IHRvIHNlbmQgU01TIE1lc3NhZ2UgIiVzIiB0byAlcyBmcm9tIElQOiVzJzsKJGxhbmdbJ3Ntc19lcnJvcl9pbnZhbGlkX2RhdGEnXSA9ICdEYXRhIEVycm9yIGF0dGVtcHRpbmcgdG8gc2VuZCBTTVMgTWVzc2FnZSAiJXMiIHRvICVzIGZyb20gSVA6JXMnOwokbGFuZ1snc21zX2Vycm9yX2xpbWl0J10gPSAnTGltaXQgRXJyb3IgYXR0ZW1wdGluZyB0byBzZW5kIFNNUyBNZXNzYWdlICIlcyIgdG8gJXMgZnJvbSBJUDolcyc7CiRsYW5nWydzbXNfZXJyb3Jfb3RoZXInXSA9ICdVbmtub3duIEVycm9yICglcykgYXR0ZW1wdGluZyB0byBzZW5kIFNNUyBNZXNzYWdlICIlcyIgdG8gJXMgZnJvbSBJUDolcyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwoKI1QKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKJGxhbmdbJ3RpdGxlX2VudGVybnVtYmVyX3RlbXBsYXRlcyddID0gJyZxdW90O0VudGVyIFlvdXIgTnVtYmVyJnF1b3Q7IFRlbXBsYXRlIEVkaXQgRm9ybSc7CiRsYW5nWyd0aXRsZV9lbnRlcnRleHRfdGVtcGxhdGVzJ10gPSAnJnF1b3Q7RW50ZXIgWW91ciBNZXNzYWdlJnF1b3Q7IFRlbXBsYXRlIEVkaXQgRm9ybSc7CgojVQokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CgojVgoKCiNXCgoKI1gKCgojWQoKCiNaCgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cgsms_sender_base.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmFic3RyYWN0IGNsYXNzIGNnc21zX3NlbmRlcl9iYXNlCnsKICBjb25zdCBTVEFUX09LID0gJ3Ntc19zZW50JzsKICBjb25zdCBTVEFUX05PVFNFTlQgPSAnc21zX25vdHNlbnQnOwogIGNvbnN0IFNUQVRfRVJST1JfT1RIRVIgPSAnc21zX2Vycm9yX290aGVyJzsKICBjb25zdCBTVEFUX0VSUk9SX0FVVEggPSAnc21zX2Vycm9yX2F1dGgnOwogIGNvbnN0IFNUQVRfRVJST1JfTElNSVQgPSAnc21zX2Vycm9yX2xpbWl0JzsKICBjb25zdCBTVEFUX0VSUk9SX0lOVkFMSURfREFUQSA9ICdzbXNfZXJyb3JfaW52YWxpZF9kYXRhJzsKICBjb25zdCBTVEFUX0VSUk9SX0JMT0NLRUQgPSAnc21zX2Vycm9yX2Jsb2NrZWRfbnVtYmVyJzsKICBjb25zdCBERUxJVkVSWV9PSyA9ICdzbXNfZGVsaXZlcnlfb2snOwogIGNvbnN0IERFTElWRVJZX1BFTkRJTkcgPSAnc21zX2RlbGl2ZXJ5X3BlbmRpbmcnOwogIGNvbnN0IERFTElWRVJZX0lOVkFMSUQgPSAnc21zX2RlbGl2ZXJ5X2ludmFsaWQnOwogIGNvbnN0IERFTElWRVJZX1VOS05PV04gPSAnc21zX2RlbGl2ZXJ5X3Vua25vd24nOwogIGNvbnN0IERFTElWRVJZX0JJTExJTkcgPSAnc21zX2RlbGl2ZXJ5X2JpbGxpbmcnOwogIGNvbnN0IERFTElWRVJZX09USEVSICAgPSAnc21zX2RlbGl2ZXJ5X290aGVyJzsKCiAgcHJpdmF0ZSAkX21zZzsKICBwcml2YXRlICRfbnVtOwogIHByaXZhdGUgJF9tb2R1bGU7CiAgcHJpdmF0ZSAkX3N0YXR1c21zZzsKICBwcm90ZWN0ZWQgJF91c2VfY3VybDsKICBwcm90ZWN0ZWQgJF9zdGF0dXM7CiAgcHJvdGVjdGVkICRfc21zaWQ7CgoKICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJG1vZHVsZSkKICB7CiAgICAkdGhpcy0+X251bSA9ICcnOwogICAgJHRoaXMtPl9tc2cgPSAnJzsKICAgICR0aGlzLT5fbW9kdWxlID0gJG1vZHVsZTsKICAgICR0aGlzLT5fdXNlX2N1cmwgPSAnJzsKICAgICR0aGlzLT5fc3RhdHVzID0gc2VsZjo6U1RBVF9OT1RTRU5UOwogICAgJHRoaXMtPl9zdGF0dXNtc2cgPSAnJzsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gcmVzZXQoKQogIHsKICAgICR0aGlzLT5fbnVtID0gJyc7CiAgICAkdGhpcy0+X21zZyA9ICcnOwogICAgJHRoaXMtPl91c2VfY3VybCA9ICcnOwogICAgJHRoaXMtPl9zdGF0dXMgPSBzZWxmOjpTVEFUX05PVFNFTlQ7CiAgICAkdGhpcy0+X3N0YXR1c21zZyA9ICcnOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB1c2VfY3VybCgkZmxhZyA9IHRydWUpCiAgewogICAgaWYoICRmbGFnICkKICAgICAgJHRoaXMtPl91c2VfY3VybCA9IDE7CiAgICBlbHNlCiAgICAgICR0aGlzLT5fdXNlX2N1cmwgPSAwOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfbXNnKCRtc2cpCiAgewogICAgJHRoaXMtPl9tc2cgPSAkbXNnOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfbnVtKCRudW0pCiAgewogICAgJHRoaXMtPl9udW0gPSAkbnVtOwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfbnVtKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9udW07CiAgfQoKCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9tc2coKQogIHsKICAgIHJldHVybiAkdGhpcy0+X21zZzsKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X3N0YXR1cygkc3RhdCkKICB7CiAgICAkdGhpcy0+X3N0YXR1cyA9ICRzdGF0OwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3RhdHVzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9zdGF0dXM7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zdGF0dXNtc2coKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3N0YXR1c21zZzsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2VuZCgpCiAgewogICAgJHRoaXMtPl9zbXNpZCA9ICcnOwoKICAgIC8vIGNoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIG5lY2Vzc2FyeSBkYXRhLgogICAgJHRoaXMtPnNldHVwKCk7CiAgICBpZiggJHRoaXMtPl9udW0gPT0gJycgfHwgJHRoaXMtPl9tc2cgPT0gJycgKQogICAgICB7CgkkdGhpcy0+X3N0YXR1cyA9IHNlbGY6OlNUQVRfRVJST1JfSU5WQUxJRF9EQVRBOwoJcmV0dXJuIEZBTFNFOwogICAgICB9CgogICAgaWYoICFjZ3Ntc191dGlsczo6aXBfY2FuX3NlbmQoZ2V0ZW52KCdSRU1PVEVfQUREUicpKSApCiAgICAgIHsKCSR0aGlzLT5fc3RhdHVzID0gc2VsZjo6U1RBVF9FUlJPUl9MSU1JVDsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgIC8vIG5leHQgcHJlcGFyZSB0aGUgb3V0cHV0LgogICAgJGNtZCA9ICR0aGlzLT5wcmVwX2NvbW1hbmQoKTsKICAgIGlmKCAkY21kID09PSBGQUxTRSB8fCAkY21kID09ICcnICkKICAgICAgewoJJHRoaXMtPl9zdGF0dXMgPSBzZWxmOjpTVEFUX0VSUk9SX0lOVkFMSURfREFUQTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgIC8vIHNlbmQgaXQuCiAgICAkcmVzID0gJHRoaXMtPl9jb21tYW5kKCRjbWQpOwogICAgaWYoICRyZXMgKQogICAgICB7CgkkdGhpcy0+cGFyc2VfcmVzdWx0KCRyZXMpOwoJJHRoaXMtPl9zdGF0dXNtc2cgPSBjZ3Ntc191dGlsczo6Z2V0X21zZygkdGhpcywkdGhpcy0+X251bSwkdGhpcy0+X3N0YXR1cywkdGhpcy0+X21zZywkdGhpcy0+Z2V0X3Jhd19zdGF0dXMoKSk7CglpZiggJHRoaXMtPl9zdGF0dXMgPT0gc2VsZjo6U1RBVF9PSyApCgkgIHsKCSAgICBjZ3Ntc191dGlsczo6bG9nX3NlbmQoZ2V0ZW52KCdSRU1PVEVfQUREUicpLCR0aGlzLT5fbnVtLCR0aGlzLT5fbXNnKTsKCSAgfQoJYXVkaXQoJycsJHRoaXMtPmdldF9tb2R1bGUoKS0+R2V0TmFtZSgpLCR0aGlzLT5fc3RhdHVzbXNnKTsKCXJldHVybiBUUlVFOwogICAgICB9CgogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc21zaWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3Ntc2lkOwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiAmZ2V0X21vZHVsZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fbW9kdWxlOwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBfY29tbWFuZCgkY21kKQogIHsKICAgICR0aGlzLT5fY2hlY2tfY3VybCgpOwogICAgJHJlcyA9ICcnOwogICAgaWYoICR0aGlzLT5fdXNlX2N1cmwgPT0gMCApCiAgICAgIHsKCSRyZXMgPSAkdGhpcy0+X3NlbmRfZm9wZW4oJGNtZCk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHJlcyA9ICR0aGlzLT5fc2VuZF9jdXJsKCRjbWQpOwogICAgICB9CiAgICBkZWJ1Z190b19sb2coJ2Nnc21zX3NlbmRlcl9iYXNlIC0gY29tbWFuZCA9ICcuJGNtZC4nIHJlcyA9ICcuJHJlcyk7CiAgICByZXR1cm4gJHJlczsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9zZW5kX2ZvcGVuKCRjbWQpCiAgewogICAgJHJlc3VsdCA9ICcnOwogICAgJGZoID0gQGZvcGVuICgkY21kLCAncicpOwogICAgaWYgKCRmaCkgewogICAgICB3aGlsZSAoJGxpbmUgPSBAZmdldHMoJGZoLDEwMjQpKSB7CgkkcmVzdWx0IC49ICRsaW5lOwogICAgICB9CiAgICAgIGZjbG9zZSAoJGZoKTsKICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc2VuZF9jdXJsKCRjbWQpCiAgewogICAgJGNoID0gY3VybF9pbml0ICgkY21kKTsKICAgIGN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKICAgIGN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7CiAgICBjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLDApOwovLyAgICAgaWYgKCR0aGlzLT5jdXJsX3VzZV9wcm94eSkgewovLyAgICAgICBjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX1BST1hZLCAkdGhpcy0+Y3VybF9wcm94eSk7Ci8vICAgICAgIGN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfUFJPWFlVU0VSUFdELCAkdGhpcy0+Y3VybF9wcm94eXVzZXJwd2QpOwovLyAgICAgfQogICAgJHJlc3VsdD1jdXJsX2V4ZWMgKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfY2hlY2tfY3VybCgpCiAgewogICAgaWYoICR0aGlzLT5fdXNlX2N1cmwgPT0gJycgKQogICAgICB7CgkkdGhpcy0+X3VzZV9jdXJsID0gMDsKCWlmKCBleHRlbnNpb25fbG9hZGVkKCdjdXJsJykgKQoJICB7CgkgICAgJHRoaXMtPl91c2VfY3VybCA9IDE7CgkgIH0KICAgICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9wcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydCgpOwogIH0KCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCk7CiAgCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpOwoKICBhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXAoKTsKCiAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIHByZXBfY29tbWFuZCgpOwoKICBhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VfcmVzdWx0KCRzdHIpOwoKICBhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gX3Byb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dXBfZm9ybSgpOwoKICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX3NldHVwX2Zvcm0oJHBhcmFtcyk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfcmF3X3N0YXR1cygpOwp9IC8vIGVuZCBvZiBjbGFzcwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsms_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKY2xhc3MgY2dzbXNfdXRpbHMKewogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2dhdGV3YXlzX2Z1bGwoKQogIHsKICAgICRkaXIgPSBkaXJuYW1lKF9fRklMRV9fKS4nL2dhdGV3YXlzLyc7CiAgICAkZmlsZXMgPSBnbG9iKCRkaXIuJ2NsYXNzLipzbXNfZ2F0ZXdheS5waHAnKTsKICAgIGlmKCBjb3VudCgkZmlsZXMpID09IDAgKQogICAgICB7CglyZXR1cm4gRkFMU0U7CiAgICAgIH0KICAgIAogICAgJG9ianMgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpbGVzKTsgJGkrKyApCiAgICAgIHsKCSRjbGFzc25hbWUgPSBzdHJfcmVwbGFjZSgkZGlyLCcnLCRmaWxlc1skaV0pOwoJJGNsYXNzbmFtZSA9IHN0cl9yZXBsYWNlKCdjbGFzcy4nLCcnLCRjbGFzc25hbWUpOwoJJGNsYXNzbmFtZSA9IHN0cl9yZXBsYWNlKCcucGhwJywnJywkY2xhc3NuYW1lKTsKCglpbmNsdWRlX29uY2UoJGZpbGVzWyRpXSk7CgoJJG9iaiA9IG5ldyAkY2xhc3NuYW1lKGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dTTVMnKSk7Cgkkb2Jqc1skY2xhc3NuYW1lXSA9IGFycmF5KCk7Cgkkb2Jqc1skY2xhc3NuYW1lXVsnb2JqJ10gPSAkb2JqOwoJJG9ianNbJGNsYXNzbmFtZV1bJ25hbWUnXSA9ICRvYmotPmdldF9uYW1lKCk7Cgkkb2Jqc1skY2xhc3NuYW1lXVsnZGVzYyddID0gJG9iai0+Z2V0X2Rlc2NyaXB0aW9uKCk7Cgkkb2Jqc1skY2xhc3NuYW1lXVsnZm9ybSddID0gJG9iai0+Z2V0X3NldHVwX2Zvcm0oKTsKICAgICAgfQoKICAgIHJldHVybiAkb2JqczsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZnZXRfZ2F0ZXdheSgpCiAgewogICAgJG1vZHVsZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dTTVMnKTsKICAgICRjbGFzc25hbWUgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdzbXNfZ2F0ZXdheScpOwogICAgaWYoICRjbGFzc25hbWUgPT0gJycgfHwgJGNsYXNzbmFtZSA9PSAnLTEnICkgcmV0dXJuIEZBTFNFOwoKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvZ2F0ZXdheXMvY2xhc3MuJy4kY2xhc3NuYW1lLicucGhwJzsKICAgIGluY2x1ZGVfb25jZSgkZm4pOwoKICAgICRvYmogPSBuZXcgJGNsYXNzbmFtZSgkbW9kdWxlKTsKICAgIGlmKCAhJG9iaiApIHJldHVybiBGQUxTRTsKICAgICAgCiAgICByZXR1cm4gJG9iajsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9tc2coJiRnYXRld2F5LCRudW0sJHN0YXQsJG1zZywkb3B0ID0gJycpCiAgewogICAgJG1vZHVsZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dTTVMnKTsKICAgICRpcCA9IGdldGVudignUkVNT1RFX0FERFInKTsKICAgICR0eHQgPSAnJzsKICAgIGlmKCAkc3RhdCA9PSBjZ3Ntc19zZW5kZXJfYmFzZTo6U1RBVF9PSyApCiAgICAgIHsKCSR0eHQgPSAkbW9kdWxlLT5MYW5nKCRzdGF0LCRtc2csJG51bSwkaXAsJGdhdGV3YXktPmdldF9zbXNpZCgpKTsKICAgICAgfQogICAgZWxzZSBpZiggJHN0YXQgPT0gY2dzbXNfc2VuZGVyX2Jhc2U6OlNUQVRfRVJST1JfT1RIRVIgKQogICAgICB7CgkkdHh0ID0gJG1vZHVsZS0+TGFuZygkc3RhdCwkb3B0LCRtc2csJG51bSwkaXAsJGdhdGV3YXktPmdldF9zbXNpZCgpKTsKICAgICAgfQogICAgZWxzZSBpZiggJHN0YXQgIT0gY2dzbXNfc2VuZGVyX2Jhc2U6OlNUQVRfTk9UU0VOVCApCiAgICAgIHsKCSR0eHQgPSAkbW9kdWxlLT5MYW5nKCRzdGF0LCRtc2csJG51bSwkaXApOwogICAgICB9CiAgICByZXR1cm4gJHR4dDsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9kZWxpdmVyeV9tc2coJGdhdGV3YXksJGRlbF9zdGF0dXMsJHNtc2lkLCRzbXN0bykKICB7CiAgICAkbW9kdWxlID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NNUycpOwogICAgJGlwID0gZ2V0ZW52KCdSRU1PVEVfQUREUicpOwogICAgJHR4dCA9ICcnOwoKICAgICR0eHQgPSAkbW9kdWxlLT5MYW5nKCRkZWxfc3RhdHVzLCRzbXNpZCwkc21zdG8sJGlwKTsKICAgIHJldHVybiAkdHh0OwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gZ2V0X3JlcG9ydGluZ191cmwoKQogIHsKICAgIC8vIGdldCB0aGUgZGVmYXVsdCBwYWdlIGlkLgogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgICRyZXR1cm5pZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgJG1vZHVsZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dTTVMnKTsKCiAgICAkcHJldHR5dXJsID0gJ0NHU01TL2RldnJlcG9ydCc7CiAgICAkdXJsID0gJG1vZHVsZS0+Q3JlYXRlVVJMKCdjbnRudDAxJywnZGV2cmVwb3J0JywkcmV0dXJuaWQsYXJyYXkoKSxmYWxzZSwkcHJldHR5dXJsKTsKICAgIHJldHVybiAkdXJsOwogIH0KCiAgCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBpc192YWxpZF9waG9uZSgkbnVtYmVyKQogIHsKICAgICRmb3JtYXRzID0gYXJyYXkoJysjIyMjIyMjIyMjJywKCQkgICAgICcrIyMjIyMjIyMjIyMnLAoJCSAgICAgJyMjIy0jIyMtIyMjIycsIAoJCSAgICAgJyMjIyMtIyMjLSMjIycsCgkJICAgICAnKCMjIykgIyMjLSMjIycsIAoJCSAgICAgJyMjIyMtIyMjIy0jIyMjJywKCQkgICAgICcjIy0jIyMtIyMjIy0jIyMjJywgCgkJICAgICAnIyMjIy0jIyMjJywgCgkJICAgICAnIyMjLSMjIy0jIyMnLAoJCSAgICAgJyMjIyMjLSMjIy0jIyMnLCAKCQkgICAgICcjIyMjIyMjIyMjJywKCQkgICAgICcjIyMjIyMjIyMjIycpOwoKICAgICRzdHIgPSBlcmVnX3JlcGxhY2UoJ1swLTldJywnIycsJG51bWJlcik7CiAgICBpZiggaW5fYXJyYXkoJHN0ciwkZm9ybWF0cykgKSByZXR1cm4gVFJVRTsKICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvZ19zZW5kKCRpcF9hZGRyZXNzLCRtb2JpbGUsJG1zZywkc3RhdHVzbXNnID0gJycpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJGRiID0gJGdDbXMtPkdldERiKCk7CgogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dzbXNfc2VudAogICAgICAgICAgICAgICAobW9iaWxlLGlwLG1zZyxzZGF0ZSkgVkFMVUVTICg/LD8sPyxOT1coKSknOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbW9iaWxlLCRpcF9hZGRyZXNzLCRtc2cpKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXBfY2FuX3NlbmQoJGlwX2FkZHJlc3MpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJGRiID0gJGdDbXMtPkdldERiKCk7CgogICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgICRkYXRlMSA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpLTM2MDApOwogICAgJGRhdGUyID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCktMjQqMzYwMCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIENPVU5UKG1vYmlsZSkgQVMgY291bnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnc21zX3NlbnQKICAgICAgICAgICAgICAgV0hFUkUgaXAgPSA/IEFORCAoc2RhdGUgQkVUV0VFTiAkZGF0ZTEgYW5kICRub3cpIjsKICAgICR0bXAxID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRpcF9hZGRyZXNzKSk7CgogICAgJG1vZHVsZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dTTVMnKTsKICAgICRob3VybHkgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdzbXNfaG91cmx5bGltaXQnLDUpOwogICAgaWYoICR0bXAxID4gJGhvdXJseSApIHJldHVybiBGQUxTRTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUIENPVU5UKG1vYmlsZSkgQVMgY291bnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnc21zX3NlbnQKICAgICAgICAgICAgICAgV0hFUkUgaXAgPSA/IEFORCAoc2RhdGUgQkVUV0VFTiAkZGF0ZTIgYW5kICRub3cpIjsKICAgICRkYWlseSA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3Ntc19kYWlseWxpbWl0JywyMCk7CiAgICAkdG1wMiA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkaXBfYWRkcmVzcykpOwogICAgaWYoICR0bXAyID4gJGRhaWx5ICkgcmV0dXJuIEZBTFNFOwoKICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0ZXh0X2lzX3ZhbGlkKCR0ZXh0KQogIHsKICAgIGlmKCAkdGV4dCA9PSAnJyApIHJldHVybiBGQUxTRTsKICAgIGlmKCBzdHJsZW4oJHRleHQpID4gMTYwICkgcmV0dXJuIEZBTFNFOwogICAgaWYoIHByZWdfbWF0Y2goJy9bXlx3XHMhXEBcI1wkXCVcXlwmXCpcKFwpX1wrXC1cPVxgXHtcfVxbXF1cfFxlXCJcOlw7XD9cL1w8XD5cLlwsXC9dLycsJHRleHQpICkgcmV0dXJuIEZBTFNFOwogICAgcmV0dXJuIFRSVUU7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/class.googlevoice_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKY2xhc3MgZ29vZ2xldm9pY2Vfc21zX2dhdGV3YXkgZXh0ZW5kcyBjZ3Ntc19zZW5kZXJfYmFzZQp7CiAgcHJpdmF0ZSAkX3Jhd3N0YXR1czsKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICB7CiAgICByZXR1cm4gJ0dvb2dsZSBWb2ljZSc7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9tb2R1bGUoKS0+TGFuZygnZGVzY3JpcHRpb25fZ29vZ2xldm9pY2UnKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dXBfZm9ybSgpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJHNtYXJ0eSA9ICRnQ21zLT5HZXRTbWFydHkoKTsKICAgICRtb2QgPSAkdGhpcy0+Z2V0X21vZHVsZSgpOwoKICAgICRzbWFydHktPmFzc2lnbignZ29vZ2xldm9pY2VfZW1haWwnLCRtb2QtPkdldFByZWZlcmVuY2UoJ2dvb2dsZXZvaWNlX2VtYWlsJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdnb29nbGV2b2ljZV9wYXNzd29yZCcsJG1vZC0+R2V0UHJlZmVyZW5jZSgnZ29vZ2xldm9pY2VfcGFzc3dvcmQnKSk7CgogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnZ29vZ2xldm9pY2Vfc2V0dXAudHBsJyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX3NldHVwX2Zvcm0oJHBhcmFtcykKICB7CiAgICAkbW9kID0gJHRoaXMtPmdldF9tb2R1bGUoKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydnb29nbGV2b2ljZV9lbWFpbCddKSApCiAgICAgIHsKCSRtb2QtPlNldFByZWZlcmVuY2UoJ2dvb2dsZXZvaWNlX2VtYWlsJyx0cmltKCRwYXJhbXNbJ2dvb2dsZXZvaWNlX2VtYWlsJ10pKTsKICAgICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2dvb2dsZXZvaWNlX3Bhc3N3b3JkJ10pICkKICAgICAgewoJJG1vZC0+U2V0UHJlZmVyZW5jZSgnZ29vZ2xldm9pY2VfcGFzc3dvcmQnLHRyaW0oJHBhcmFtc1snZ29vZ2xldm9pY2VfcGFzc3dvcmQnXSkpOwogICAgICB9CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXAoKQogIHsKICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4KICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBwcmVwX2NvbW1hbmQoKQogIHsKICAgIC8vIG5lZWQgdG8gcmV0dXJuIHNvbWV0aGluZy4gZXZlbiB0aG91Z2ggd2UgaWdub3JlIGl0LgogICAgcmV0dXJuICdnb29kJzsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfY29tbWFuZCgpCiAgewogICAgdHJ5IHsKICAgICAgJG1vZCA9ICR0aGlzLT5nZXRfbW9kdWxlKCk7CiAgICAgIGluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2dvb2dsZXZvaWNlL2NsYXNzLmdvb2dsZXZvaWNlMi5waHAnKTsKICAgICAgJGd2ID0gbmV3IEdvb2dsZVZvaWNlKCRtb2QtPkdldFByZWZlcmVuY2UoJ2dvb2dsZXZvaWNlX2VtYWlsJyksCgkJCSAgICAkbW9kLT5HZXRQcmVmZXJlbmNlKCdnb29nbGV2b2ljZV9wYXNzd29yZCcpKTsKICAgICAgCiAgICAgICRudW0gPSAkdGhpcy0+Z2V0X251bSgpOwogICAgICAkbnVtID0gcHJlZ19yZXBsYWNlKCcvW15cZF0vJywnJywkbnVtKTsKCiAgICAgICRtc2cgPSBzdWJzdHIoc3RyaXBfdGFncygkdGhpcy0+Z2V0X21zZygpKSwwLDE2MCk7CiAgICAgICRndi0+c21zKCRudW0sJG1zZyk7CiAgICAgIAogICAgICAvLyBuZWVkIHRvIHJldHVybiBhIHN0YXR1czsKICAgICAgcmV0dXJuICdnb29kJzsKICAgIH0KICAgIGNhdGNoKEV4Y2VwdGlvbiAkZSkKICAgICAgewoJZGllKCdnb3QgZXhjZXB0aW9uICcuJGUtPmdldE1lc3NhZ2UoKSk7CglyZXR1cm4gJGUtPmdldE1lc3NhZ2UoKTsKICAgICAgfQogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZV9yZXN1bHQoJHN0cikKICB7CiAgICAkdGhpcy0+X3Jhd3N0YXR1cyA9ICRzdHI7CiAgICBpZiggJHN0ciAhPSAnZ29vZCcgKQogICAgICB7CgkkdGhpcy0+c2V0X3N0YXR1cyhzZWxmOjpTVEFUX0VSUk9SX09USEVSKTsKICAgICAgfQogICAgJHRoaXMtPnNldF9zdGF0dXMoc2VsZjo6U1RBVF9PSyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX3Byb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCkKICB7CiAgICAvLyBub3RoaW5nIHRvIGRvIGhlcmUuCiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jhd19zdGF0dXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3Jhd3N0YXR1czsKICB9Cn0KCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/class.interlinked_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKY2xhc3MgaW50ZXJsaW5rZWRfc21zX2dhdGV3YXkgZXh0ZW5kcyBjZ3Ntc19zZW5kZXJfYmFzZQp7CiAgY29uc3QgSU5URVJMSU5LRURfSFRUUF9HQVRFV0FZID0gJ2h0dHA6Ly9teS5JbnRlcmxpbmtlZC5tb2JpL3NlbmQuYXNoeCc7CiAgcHJpdmF0ZSAkX3Jhd3N0YXR1czsKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICB7CiAgICByZXR1cm4gJ0ludGVybGlua2VkLm1vYmknOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5nZXRfbW9kdWxlKCktPkxhbmcoJ2Rlc2NyaXB0aW9uX2ludGVybGlua2VkJyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NldHVwX2Zvcm0oKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRzbWFydHkgPSAkZ0Ntcy0+R2V0U21hcnR5KCk7CiAgICAkbW9kID0gJHRoaXMtPmdldF9tb2R1bGUoKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2ludGVybGlua2VkX3VzZXJuYW1lJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaW50ZXJsaW5rZWRfdXNlcm5hbWUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ludGVybGlua2VkX3Bhc3N3b3JkJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaW50ZXJsaW5rZWRfcGFzc3dvcmQnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ludGVybGlua2VkX2Zyb20nLCAgICAgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaW50ZXJsaW5rZWRfZnJvbScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW50ZXJsaW5rZWRfY3VzdG9tJywgICAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpbnRlcmxpbmtlZF9jdXN0b20nKSk7CgogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnaW50ZXJsaW5rZWRfc2V0dXAudHBsJyk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9zZXR1cF9mb3JtKCRwYXJhbXMpCiAgewogICAgJG1vZCA9ICR0aGlzLT5nZXRfbW9kdWxlKCk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snaW50ZXJsaW5rZWRfdXNlcm5hbWUnXSkgKQogICAgICB7CgkkbW9kLT5TZXRQcmVmZXJlbmNlKCdpbnRlcmxpbmtlZF91c2VybmFtZScsdHJpbSgkcGFyYW1zWydpbnRlcmxpbmtlZF91c2VybmFtZSddKSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydpbnRlcmxpbmtlZF9wYXNzd29yZCddKSApCiAgICAgIHsKCSRtb2QtPlNldFByZWZlcmVuY2UoJ2ludGVybGlua2VkX3Bhc3N3b3JkJyx0cmltKCRwYXJhbXNbJ2ludGVybGlua2VkX3Bhc3N3b3JkJ10pKTsKICAgICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2ludGVybGlua2VkX2Zyb20nXSkgKQogICAgICB7CgkkbW9kLT5TZXRQcmVmZXJlbmNlKCdpbnRlcmxpbmtlZF9mcm9tJyx0cmltKCRwYXJhbXNbJ2ludGVybGlua2VkX2Zyb20nXSkpOwogICAgICB9CiAgICBpZiggaXNzZXQoJHBhcmFtc1snaW50ZXJsaW5rZWRfY3VzdG9tJ10pICkKICAgICAgewoJJG1vZC0+U2V0UHJlZmVyZW5jZSgnaW50ZXJsaW5rZWRfY3VzdG9tJyx0cmltKCRwYXJhbXNbJ2ludGVybGlua2VkX2N1c3RvbSddKSk7CiAgICAgIH0KICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXAoKQogIHsKICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4KICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gcHJlcF9jb21tYW5kKCkKICB7CiAgICAkbW9kdWxlID0gJHRoaXMtPmdldF9tb2R1bGUoKTsKICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAkcGFybXNbJ3VzZXInXSA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2ludGVybGlua2VkX3VzZXJuYW1lJyk7CiAgICBpZiggJHBhcm1zWyd1c2VyJ10gPT0gJycgKSByZXR1cm4gRkFMU0U7CgogICAgJHBhcm1zWydwYXNzJ10gPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpbnRlcmxpbmtlZF9wYXNzd29yZCcpOwogICAgaWYoICRwYXJtc1sndXNlciddID09ICcnICkgcmV0dXJuIEZBTFNFOwoKICAgICRwYXJtc1snc21zdG8nXSA9ICR0aGlzLT5nZXRfbnVtKCk7CiAgICBpZiggJHBhcm1zWydzbXN0byddID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgJHBhcm1zWydzbXN0byddID0gcHJlZ19yZXBsYWNlKCcvW15cZF0vJywnJywkcGFybXNbJ3Ntc3RvJ10pOwoKICAgICRwYXJtc1snc21zbXNnJ10gPSBzdWJzdHIodXJsZW5jb2RlKHN0cmlwX3RhZ3MoJHRoaXMtPmdldF9tc2coKSkpLDAsMTYwKTsKICAgIGlmKCAkcGFybXNbJ3Ntc21zZyddICA9PSAnJyApIHJldHVybiBGQUxTRTsKCiAgICAkZnJvbSA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2ludGVybGlua2VkX2Zyb20nKTsKICAgIGlmKCAhZW1wdHkoJGZyb20pICkKICAgICAgewoJJHBhcm1zWydzbXNmcm9tJ10gPSB1cmxlbmNvZGUoJGZyb20pOwogICAgICB9CiAgICAkY3VzdG9tID0gJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaW50ZXJsaW5rZWRfY3VzdG9tJyk7CiAgICBpZiggIWVtcHR5KCRjdXN0b20pICkKICAgICAgewoJJHBhcm1zWydjdXN0b20nXSA9IHVybGVuY29kZSgkY3VzdG9tKTsKICAgICAgfQogICAgLy8gdG9kbywgd2UgY291bGQgcHV0IGRlbGF5IHN0dWZmIGluIGhlcmUgdG9vCiAgICAkc3RyID0gc2VsZjo6SU5URVJMSU5LRURfSFRUUF9HQVRFV0FZLic/Jy5jZ2VfYXJyYXk6OmltcGxvZGVfd2l0aF9rZXkoJHBhcm1zKTsKICAgIGRlYnVnX3RvX2xvZygnY21kX2JlZm9yZSA9ICcuJHN0cik7CiAgICAkc3RyID0gc3RyX3JlcGxhY2UoJ2FtcDsnLCcnLCRzdHIpOwogICAgZGVidWdfdG9fbG9nKCdjbWRfYWZ0ZXIgPSAnLiRzdHIpOwogICAgcmV0dXJuICRzdHI7CiAgfQoKCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIHBhcnNlX3Jlc3VsdCgkc3RyKQogIHsKICAgICR0aGlzLT5fcmF3c3RhdHVzID0gJHN0cjsKICAgIHN3aXRjaCgkc3RyKQogICAgICB7CiAgICAgIGNhc2UgJzEwMSc6CiAgICAgIGNhc2UgJzEwMic6CiAgICAgIGNhc2UgJzEwMyc6CgkkdGhpcy0+c2V0X3N0YXR1cyhzZWxmOjpTVEFUX0VSUk9SX0FVVEgpOwoJYnJlYWs7CgogICAgICBjYXNlICcxMDQnOgoJJHRoaXMtPnNldF9zdGF0dXMoc2VsZjo6U1RBVF9FUlJPUl9MSU1JVCk7CglicmVhazsKCiAgICAgIGNhc2UgJzExMSc6CiAgICAgIGNhc2UgJzExMic6CiAgICAgIGNhc2UgJzExMyc6CiAgICAgIGNhc2UgJzExNCc6CiAgICAgIGNhc2UgJzExNSc6CiAgICAgIGNhc2UgJzExNic6CgkkdGhpcy0+c2V0X3N0YXR1cyhzZWxmOjpTVEFUX0VSUk9SX0lOVkFMSURfREFUQSk7CglicmVhazsKCiAgICAgIGNhc2UgJzIwMSc6CgkkdGhpcy0+c2V0X3N0YXR1cyhzZWxmOjpTVEFUX0VSUk9SX0lOVkFMSURfQkxPQ0tFRCk7CglicmVhazsKCiAgICAgIGNhc2UgJzEwNSc6CgkkdGhpcy0+c2V0X3N0YXR1cyhzZWxmOjpTVEFUX0VSUk9SX09USEVSKTsKCWJyZWFrOwoKICAgICAgZGVmYXVsdDoKCWlmKCBzdHJsZW4oJHN0cikgPT0gOSApCgkgIHsKCSAgICAvLyBhc3N1bWUgYSBzdXNzZXNmdWxsIFNNUyBpZC4KCSAgICAkdGhpcy0+c2V0X3N0YXR1cyhzZWxmOjpTVEFUX09LKTsKCSAgICAkdGhpcy0+X3Ntc2lkID0gJHN0cjsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHRoaXMtPnNldF9zdGF0dXMoc2VsZjo6U1RBVF9FUlJPUl9PVEhFUik7CgkgIH0KCWJyZWFrOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIF9wcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydCgpCiAgewogICAgZGVidWdfdG9fbG9nKCdwcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydCcpOwogICAgZGVidWdfdG9fbG9nKCRfUkVRVUVTVCk7CgogICAgLy8gYSBmdW5jdGlvbiB0byBnYXRoZXIgdGhlIGRhdGEgZGlyZWN0bHkgZnJvbSB0aGUgUkVRVUVTVCBhbmQgaGFuZGxlIGRlbGl2ZXJ5IGluZm9ybWF0aW9uLgogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ1NNU0Zyb20nXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnU01TSUQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnU1RBVFVTJ10pKQogICAgICB7CglyZXR1cm47CiAgICAgIH0KCiAgICAvLyBub3cgd2UgY291bGQgbG9vayB1cCB0aGUgc21zIG1lc3NhZ2UgaW4gdGhlIGRhdGFiYXNlIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nCiAgICAvLyBidXQgZm9yIG5vdyB3ZSdsbCBqdXN0IHNlbmQgYSBsb2cgbWVzc2FnZS4KICAgICRzbXN0byA9IHRyaW0oJF9SRVFVRVNUWydTTVNGcm9tJ10pOwogICAgJHNtc2lkID0gdHJpbSgkX1JFUVVFU1RbJ1NNU0lEJ10pOwogICAgJHN0YXR1cyA9IGNnc21zX3NlbmRlcl9iYXNlOjpERUxJVkVSWV9VTktOT1dOOwogICAgc3dpdGNoKCAoaW50KSRfUkVRVUVTVFsnU1RBVFVTJ10gKQogICAgICB7CiAgICAgIGNhc2UgMDogLy8gaW4gcHJvZ3Jlc3MuCgkvLyBpZ25vcmUgdGhpcyBvbmUuCgkkc3RhdHVzID0gc2VsZjo6REVMSVZFUllfUEVORElORzsKCWJyZWFrOwoKICAgICAgY2FzZSAxMDA6IC8vIGRlbGl2ZXJlZC4KCSRzdGF0dXMgPSBzZWxmOjpERUxJVkVSWV9PSzsKCWJyZWFrOwoKICAgICAgY2FzZSAyMDA6IC8vIGludmFsaWQvYmFycmVkCiAgICAgIGNhc2UgMjAxOiAvLyBETlMgTGlzdAogICAgICBjYXNlIDM1MTogLy8gUGFyZW50YWwgYmxvY2sKICAgICAgY2FzZSAzNTI6IC8vIFVzZXIgYmFycmVkCgkkc3RhdHVzID0gc2VsZjo6REVMSVZFUllfQkFSUkVEOwoJYnJlYWs7CgogICAgICBjYXNlIDMwMjogLy8gYmlsbGluZyBmYWlsZWQKICAgICAgY2FzZSAzMDM6IC8vIHByZXBheSBiaWxsaW5nIHVuc3VwcG9ydGVkCiAgICAgIGNhc2UgMzUwOiAvLyBNVCBjaGFyZ2UgYmFycmVkCgkkc3RhdHVzID0gc2VsZjo6REVMSVZFUllfQklMTElOR19FUlJPUjsKCWJyZWFrOwoKICAgICAgY2FzZSAzNTM6IC8vIFNJTSBGdWxsCiAgICAgIGNhc2UgMzU0OiAvLyBBYnNlbnQKICAgICAgY2FzZSAzNTU6IC8vIEZpbHRlcmVkCiAgICAgIGNhc2UgMzU2OiAvLyBNc2cgRXhwaXJlZAoJJHN0YXR1cyA9IHNlbGY6OkRFTElWRVJZX09USEVSOwoJYnJlYWs7CgogICAgICBkZWZhdWx0OiAgLy8gdW5rbm93bgoJZGVidWdfdG9fbG9nKCdDR1NNUzo6aW50ZXJsaW5rZWQgZ2F0ZXdheTogdW5rbm93biBlcnJvciBjb2RlICcuJF9SRVFVRVNUWydTVEFUVVMnXS4nIGluIGRlbGl2ZXJ5IHJlcG9ydCcpOwoJYnJlYWs7ICAKICAgICAgfQoKICAgIHJldHVybiBjZ3Ntc191dGlsczo6Z2V0X2RlbGl2ZXJ5X21zZygkdGhpcywkc3RhdHVzLCRzbXNpZCwkc21zdG8pOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9yYXdfc3RhdHVzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9yYXdzdGF0dXM7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/class.googlevoice.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9QSFAKICAgIGNsYXNzIEdvb2dsZVZvaWNlCiAgICB7CiAgICAgICAgcHVibGljICR1c2VybmFtZTsKICAgICAgICBwdWJsaWMgJHBhc3N3b3JkOwoKICAgICAgICBwcml2YXRlICRsYXN0VVJMOwoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHVzZXJuYW1lLCAkcGFzc3dvcmQpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+dXNlcm5hbWUgPSAkdXNlcm5hbWU7CiAgICAgICAgICAgICR0aGlzLT5wYXNzd29yZCA9ICRwYXNzd29yZDsKICAgICAgICB9CgogICAgICAgIC8vIExvZ2luIHRvIEdvb2dsZSBWb2ljZQogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBsb2dpbigpCiAgICAgICAgewogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5jdXJsKCdodHRwOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvbScpOwoKICAgICAgICAgICAgJGFjdGlvbiA9ICR0aGlzLT5tYXRjaCgnITxmb3JtLio/YWN0aW9uPSIoLio/KSIhbXMnLCAkaHRtbCwgMSk7CgogICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnITxpbnB1dC4qP3R5cGU9ImhpZGRlbiIuKj9uYW1lPSIoLio/KSIuKj92YWx1ZT0iKC4qPykiIW1zJywgJGh0bWwsICRoaWRkZW4pOwoKICAgICAgICAgICAgJHBvc3QgPSAiRW1haWw9eyR0aGlzLT51c2VybmFtZX0mUGFzc3dkPXskdGhpcy0+cGFzc3dvcmR9IjsKICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkaGlkZGVuWzBdKTsgJGkrKykKICAgICAgICAgICAgICAgICRwb3N0IC49ICcmJyAuICRoaWRkZW5bMV1bJGldIC4gJz0nIC4gdXJsZW5jb2RlKCRoaWRkZW5bMl1bJGldKTsKCgkgICAgZGllKCdhY3Rpb24gPSAnLiRhY3Rpb24pOwogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5jdXJsKCRhY3Rpb24sICR0aGlzLT5sYXN0VVJMLCAkcG9zdCk7CgogICAgICAgICAgICByZXR1cm4gJGh0bWw7CiAgICAgICAgfQoKICAgICAgICAvLyBDb25uZWN0ICR5b3UgdG8gJHRoZW0uIFRha2VzIHR3byAxMCBkaWdpdCBVUyBwaG9uZSBudW1iZXJzLgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBjYWxsKCR5b3UsICR0aGVtKQogICAgICAgIHsKICAgICAgICAgICAgJHlvdSA9IHByZWdfcmVwbGFjZSgnL1teMC05XS8nLCAnJywgJHlvdSk7CiAgICAgICAgICAgICR0aGVtID0gcHJlZ19yZXBsYWNlKCcvW14wLTldLycsICcnLCAkdGhlbSk7CgogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5sb2dpbigpOwoKICAgICAgICAgICAgJGNydW1iID0gdXJsZW5jb2RlKCR0aGlzLT5tYXRjaCgnITxpbnB1dC4qP25hbWU9Il9ybnJfc2UiLio/dmFsdWU9IiguKj8pIiFtcycsICRodG1sLCAxKSk7CgogICAgICAgICAgICAkcG9zdCA9ICJfcm5yX3NlPSRjcnVtYiZudW1iZXI9JHRoZW0mY2FsbD1DYWxsIjsKICAgICAgICAgICAgJGh0bWwgPSAkdGhpcy0+Y3VybCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tL2NhbGxzbXMiLCAkdGhpcy0+bGFzdFVSTCwgJHBvc3QpOwoKICAgICAgICAgICAgcHJlZ19tYXRjaF9hbGwoJyE8aW5wdXQuKj90eXBlPSJoaWRkZW4iLio/bmFtZT0iKC4qPykiLio/dmFsdWU9IiguKj8pIiFtcycsICRodG1sLCAkaGlkZGVuKTsKICAgICAgICAgICAgJHBvc3QgPSAnJzsKICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkaGlkZGVuWzBdKTsgJGkrKykKICAgICAgICAgICAgICAgICRwb3N0IC49ICcmJyAuICRoaWRkZW5bMV1bJGldIC4gJz0nIC4gdXJsZW5jb2RlKCRoaWRkZW5bMl1bJGldKTsKICAgICAgICAgICAgJHBvc3QgLj0gIiZwaG9uZT0rMSR5b3UmQ2FsbD0iOwoKICAgICAgICAgICAgJGh0bWwgPSAkdGhpcy0+Y3VybCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tL3NlbmRjYWxsIiwgJHRoaXMtPmxhc3RVUkwsICRwb3N0KTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBzbXMoJHRoZW0sICRzbXR4dCkKICAgICAgICB7CiAgICAgICAgICAgICR0aGVtID0gcHJlZ19yZXBsYWNlKCcvW14wLTldLycsICcnLCAkdGhlbSk7CgogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5sb2dpbigpOwoKICAgICAgICAgICAgJGNydW1iID0gdXJsZW5jb2RlKCR0aGlzLT5tYXRjaCgnITxpbnB1dC4qP25hbWU9Il9ybnJfc2UiLio/dmFsdWU9IiguKj8pIiFtcycsICRodG1sLCAxKSk7CgogICAgICAgICAgICAkcG9zdCA9ICJfcm5yX3NlPSRjcnVtYiZudW1iZXI9JHRoZW0mc21zdGV4dD0kc210eHQmc3VibWl0PVNlbmQiOwogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5jdXJsKCJodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL20vc2VuZHNtcyIsICR0aGlzLT5sYXN0VVJMLCAkcG9zdCk7CgogICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnITxpbnB1dC4qP3R5cGU9ImhpZGRlbiIuKj9uYW1lPSIoLio/KSIuKj92YWx1ZT0iKC4qPykiIW1zJywgJGh0bWwsICRoaWRkZW4pOwogICAgICAgICAgICAkcG9zdCA9ICcnOwogICAgICAgICAgICBmb3IoJGkgPSAwOyAkaSA8IGNvdW50KCRoaWRkZW5bMF0pOyAkaSsrKQogICAgICAgICAgICAgICAgJHBvc3QgLj0gJyYnIC4gJGhpZGRlblsxXVskaV0gLiAnPScgLiB1cmxlbmNvZGUoJGhpZGRlblsyXVskaV0pOwogICAgICAgICAgICAkcG9zdCAuPSAiJnN1Ym1pdD0iOwoKICAgICAgICAgICAgJGh0bWwgPSAkdGhpcy0+Y3VybCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tL3NlbmRjYWxsIiwgJHRoaXMtPmxhc3RVUkwsICRwb3N0KTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgZnVuY3Rpb24gY3VybCgkdXJsLCAkcmVmZXJlciA9IG51bGwsICRwb3N0ID0gbnVsbCwgJHJldHVybl9oZWFkZXIgPSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHN0YXRpYyAkdG1wZmlsZTsKCiAgICAgICAgICAgIGlmKCFpc3NldCgkdG1wZmlsZSkgfHwgKCR0bXBmaWxlID09ICcnKSkgJHRtcGZpbGUgPSB0ZW1wbmFtKCcvdG1wJywgJ0ZPTycpOwoKICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJHRtcGZpbGUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkdG1wZmlsZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICJNb3ppbGxhLzUuMCAoaVBob25lOyBVOyBDUFUgaVBob25lIE9TIDJfMl8xIGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBBcHBsZVdlYktpdC81MjUuMTguMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMy4xLjEgTW9iaWxlLzVIMTEgU2FmYXJpLzUyNS4yMCIpOwogICAgICAgICAgICBpZigkcmVmZXJlcikgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFRkVSRVIsICRyZWZlcmVyKTsKCiAgICAgICAgICAgIGlmKCFpc19udWxsKCRwb3N0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIHRydWUpOwogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRwb3N0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoJHJldHVybl9oZWFkZXIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOwogICAgICAgICAgICAgICAgJGh0bWwgICAgICAgID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgICAgICAgICAkaGVhZGVyX3NpemUgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19IRUFERVJfU0laRSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bGFzdFVSTCA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwpOwogICAgICAgICAgICAgICAgcmV0dXJuIHN1YnN0cigkaHRtbCwgMCwgJGhlYWRlcl9zaXplKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRodG1sID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bGFzdFVSTCA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwpOwogICAgICAgICAgICAgICAgcmV0dXJuICRodG1sOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIGZ1bmN0aW9uIG1hdGNoKCRyZWdleCwgJHN0ciwgJGkgPSAwKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJHJlZ2V4LCAkc3RyLCAkbWF0Y2gpID09IDEgPyAkbWF0Y2hbJGldIDogZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIC8vIEV4YW1wbGUgVXNnZToKICAgIC8qCiAgICAkZ3YgPSBuZXcgR29vZ2xlVm9pY2UoJ3VzZXJuYW1lQGdtYWlsLmNvbScsICdwYXNzd29yZCcpOwogICAgJGd2LT5jYWxsKCd5b3VybnVtYmVyJywgJ3RoZWlyIG51bWJlcicpOwoKICAgICRndi0+c21zKCdzb21lbnVtYmVyJywgaGVsbG8gd29ybGQnKTsKICAgICovCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/class.googlevoice2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9QSFANCi8qDQpMaWNlbnNlCQlUaGlzIGNvZGUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBPcGVuIFNvdXJjZSBMaWNlbnNlLiBGZWVsIGZyZWUgdG8gZG8gd2hhdGV2ZXIgeW91IHdhbnQgd2l0aCBpdC4NCkF1dGhvcgkJbG9zdGxlb25AZ21haWwuY29tLCBodHRwOi8vd3d3Lmxvc3RsZW9uLmNvbS8NCiovDQpjbGFzcyBHb29nbGVWb2ljZQ0Kew0KICAgIHB1YmxpYyAkdXNlcm5hbWU7DQogICAgcHVibGljICRwYXNzd29yZDsNCiAgICBwdWJsaWMgJHN0YXR1czsNCiAgICBwcml2YXRlICRsYXN0VVJMOw0KICAgIHByaXZhdGUgJGxvZ2luX2F1dGg7DQoJcHJpdmF0ZSAkaW5ib3hVUkwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tLyc7DQoJcHJpdmF0ZSAkbG9naW5VUkwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hY2NvdW50cy9DbGllbnRMb2dpbic7DQoJcHJpdmF0ZSAkc21zVVJMID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvbS9zZW5kc21zJzsNCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXNlcm5hbWUsICRwYXNzd29yZCkNCiAgICB7DQogICAgICAgICR0aGlzLT51c2VybmFtZSA9ICR1c2VybmFtZTsNCiAgICAgICAgJHRoaXMtPnBhc3N3b3JkID0gJHBhc3N3b3JkOw0KICAgIH0NCg0KCXB1YmxpYyBmdW5jdGlvbiBnZXRMb2dpbkF1dGgoKQ0KCXsNCgkJJGxvZ2luX3BhcmFtID0gImFjY291bnRUeXBlPUdPT0dMRSZFbWFpbD17JHRoaXMtPnVzZXJuYW1lfSZQYXNzd2Q9eyR0aGlzLT5wYXNzd29yZH0mc2VydmljZT1ncmFuZGNlbnRyYWwmc291cmNlPWxvc3RsZW9uQVRnbWFpbERPVGNvbS1Hb29nbGVWb2ljZVRvb2wiOw0KCSAgICAkbG9naW5fb3V0cHV0ID0gJHRoaXMtPmN1cmwoJHRoaXMtPmxvZ2luVVJMLCAkdGhpcy0+bGFzdFVSTCwgJGxvZ2luX3BhcmFtKTsNCgkgICAgJHRoaXMtPmxvZ2luX2F1dGggPSAkdGhpcy0+bWF0Y2goJy9BdXRoPShbQS16MC05Xy1dKykvJywgJGxvZ2luX291dHB1dCwgMSk7DQoJICAgIHJldHVybiAkdGhpcy0+bG9naW5fYXV0aDsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jucl9zZSgpDQoJew0KCQkkYXV0aF9wYXJhbSA9ICI/YXV0aD0iLiR0aGlzLT5nZXRMb2dpbkF1dGgoKTsNCgkgICAgJGluYm94X291dHB1dCA9ICR0aGlzLT5jdXJsKCR0aGlzLT5pbmJveFVSTC4kYXV0aF9wYXJhbSwgJHRoaXMtPmxhc3RVUkwpOw0KCSAgICAkX3Jucl9zZSA9ICR0aGlzLT5tYXRjaCgnITxpbnB1dC4qP25hbWU9Il9ybnJfc2UiLio/dmFsdWU9IiguKj8pIiFtcycsICRpbmJveF9vdXRwdXQsIDEpOw0KCSAgICByZXR1cm4gJF9ybnJfc2U7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIHNtcygkdG9fcGhvbmVudW1iZXIsICRzbXN0eHQpDQoJew0KCSAgICAkX3Jucl9zZSA9ICR0aGlzLT5nZXRfcm5yX3NlKCk7DQoJICAgICRzbXNfcGFyYW0gPSAiaWQ9JmM9Jm51bWJlcj0iLnVybGVuY29kZSgkdG9fcGhvbmVudW1iZXIpLiImc21zdGV4dD0iLnVybGVuY29kZSgkc21zdHh0KS4iJl9ybnJfc2U9Ii51cmxlbmNvZGUoJF9ybnJfc2UpOw0KCQkkcG9zdHVybCA9ICR0aGlzLT5zbXNVUkwuIj9hdXRoPSIuJHRoaXMtPmxvZ2luX2F1dGg7DQoJICAgICRzbXNfb3V0cHV0ID0gJHRoaXMtPmN1cmwoJHBvc3R1cmwsICR0aGlzLT5sYXN0VVJMLCAkc21zX3BhcmFtKTsNCgkgICAgJHRoaXMtPnN0YXR1cyA9ICRzbXNfb3V0cHV0Ow0KCSAgICByZXR1cm4gJHNtc19vdXRwdXQ7DQoJfQ0KDQoJcHJpdmF0ZSBmdW5jdGlvbiBjdXJsKCR1cmwsICRyZWZlcmVyID0gbnVsbCwgJHBvc3RfcGFyYW0gPSBudWxsKQ0KCXsNCgkJJGNoID0gY3VybF9pbml0KCR1cmwpOw0KCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCgkJY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7IA0KCSAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KCSAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiTW96aWxsYS81LjAgKGlQaG9uZTsgVTsgQ1BVIGlQaG9uZSBPUyAyXzJfMSBsaWtlIE1hYyBPUyBYOyBlbi11cykgQXBwbGVXZWJLaXQvNTI1LjE4LjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzMuMS4xIE1vYmlsZS81SDExIFNhZmFyaS81MjUuMjAiKTsNCg0KCQlpZigkcmVmZXJlcikNCgkJCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRUZFUkVSLCAkcmVmZXJlcik7DQoNCgkgICAgaWYoIWlzX251bGwoJHBvc3RfcGFyYW0pKQ0KCSAgICB7DQoJICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7DQoJICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJHBvc3RfcGFyYW0pOw0KCSAgICB9DQoNCgkJJGh0bWwgPSBjdXJsX2V4ZWMoJGNoKTsNCiAgICAgICAgJHRoaXMtPmxhc3RVUkwgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19FRkZFQ1RJVkVfVVJMKTsNCgkJY3VybF9jbG9zZSgkY2gpOw0KCQlyZXR1cm4gJGh0bWw7DQoJfQ0KCQ0KCXByaXZhdGUgZnVuY3Rpb24gbWF0Y2goJHJlZ2V4LCAkc3RyLCAkb3V0X2FyeSA9IDApDQoJew0KCSAgICByZXR1cm4gcHJlZ19tYXRjaCgkcmVnZXgsICRzdHIsICRtYXRjaCkgPT0gMSA/ICRtYXRjaFskb3V0X2FyeV0gOiBmYWxzZTsNCgl9DQoNCn0NCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/GoogleVoice.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGN1cmxfcmVkaXJlY3RfZXhlYygkY2gsICRjdXJsb3B0X2hlYWRlciA9IGZhbHNlKSB7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgdHJ1ZSk7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAkZGF0YSA9IGN1cmxfZXhlYygkY2gpOwogICRpbmZvID0gICAgY3VybF9nZXRpbmZvKCRjaCk7CiAgJGh0dHBfY29kZSA9ICRpbmZvWydodHRwX2NvZGUnXTsKICBpZiAoJGh0dHBfY29kZSA9PSAzMDEgfHwgJGh0dHBfY29kZSA9PSAzMDIgfHwgJGh0dHBfY29kZSA9PSAzMDMpIHsKICAgIGxpc3QoJGhlYWRlcikgPSBleHBsb2RlKCJcclxuXHJcbiIsICRkYXRhLCAyKTsKICAgICRtYXRjaGVzID0gYXJyYXkoKTsKICAgIHByZWdfbWF0Y2goJy8oTG9jYXRpb246fFVSSTopKC4qPylcbi8nLCAkaGVhZGVyLCAkbWF0Y2hlcyk7CiAgICAkdXJsID0gdHJpbShhcnJheV9wb3AoJG1hdGNoZXMpKTsKICAgICR1cmxfcGFyc2VkID0gcGFyc2VfdXJsKCR1cmwpOwogICAgaWYgKGlzc2V0KCR1cmxfcGFyc2VkWydob3N0J10pKSB7CiAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogICAgICByZXR1cm4gY3VybF9yZWRpcmVjdF9leGVjKCRjaCk7CiAgICB9CiAgfQoKICBlbHNlaWYoJGh0dHBfY29kZSA9PSAyMDApewogICAgJG1hdGNoZXMgPSBhcnJheSgpOwogICAgcHJlZ19tYXRjaCgnLyg8bWV0YSBodHRwLWVxdWl2PSkoLio/KShyZWZyZXNoKSguKj8pKHVybD0pKC4qPylbXCd8Il1ccyo+LycsIHN0cnRvbG93ZXIoJGRhdGEpLCAkbWF0Y2hlcyk7CiAgICAkdXJsID0gdHJpbShhcnJheV9wb3AoJG1hdGNoZXMpKTsKICAgICR1cmxfcGFyc2VkID0gcGFyc2VfdXJsKCR1cmwpOwogICAgaWYgKGlzc2V0KCR1cmxfcGFyc2VkWydob3N0J10pKSB7CiAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogICAgICByZXR1cm4gY3VybF9yZWRpcmVjdF9leGVjKCRjaCk7CiAgICB9CiAgfQoKICByZXR1cm4gICAgICRpbmZvWyd1cmwnXTsKfSAKCmNsYXNzIEdvb2dsZVZvaWNlCnsKICBjb25zdCBsb2dpblVSTCA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL2FjY291bnRzL0NsaWVudExvZ2luIjsKICBjb25zdCBnZW5VUkwgICA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlLyI7CiAgY29uc3Qgc2VuZFNNU1VSTCA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL3Ntcy9zZW5kLyI7CgoJLy8gT3VyIGNyZWRlbnRpYWxzCglwcml2YXRlICRfbG9naW47Cglwcml2YXRlICRfcGFzczsKCXByaXZhdGUgJF9ybnJfc2U7IC8vIHNvbWUgY3JhenkgZ29vZ2xlIHRoaW5nIHRoYXQgd2UgbmVlZCBsYXRlcgogICAgICAgIHByaXZhdGUgJF9hdXRoOwoKCS8vIE91ciBwcml2YXRlIGN1cmwgaGFuZGxlCglwcml2YXRlICRfY2g7CgoJLy8gVGhlIGxvY2F0aW9uIG9mIG91ciBjb29raWVzCglwcml2YXRlICRfY29va2llRmlsZTsKCgkvLyBBcmUgd2UgbG9nZ2VkIGluIGFscmVhZHk/Cglwcml2YXRlICRfbG9nZ2VkSW4gPSBGQUxTRTsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGxvZ2luLCAkcGFzcykKCXsKCQkkdGhpcy0+X2xvZ2luID0gJGxvZ2luOwoJCSR0aGlzLT5fcGFzcyA9ICRwYXNzOwoKCQlnbG9iYWwgJGdDbXM7CgkJJGNvbmZpZyA9ICRnQ21zLT5nZXRDb25maWcoKTsKCQkkdGhpcy0+X2Nvb2tpZUZpbGUgPSAkY29uZmlnWydyb290X3VybCddLicvdG1wL2NhY2hlL2d2Q29va2llcy50eHQnOwoKCQkkdGhpcy0+X2NoID0gY3VybF9pbml0KCk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9DT09LSUVKQVIsICR0aGlzLT5fY29va2llRmlsZSk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgRkFMU0UpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIFRSVUUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsMCk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICJNb3ppbGxhLzQuMCAoY29tcGF0aWJsZTsgTVNJRSA3LjA7IFdpbmRvd3MgTlQgNi4wKSIpOwoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIF9sb2dJbigpCgl7CgkJZ2xvYmFsICRjb25mOwoKCQlpZiggJHRoaXMtPl9sb2dnZWRJbiApCgkJICByZXR1cm4gVFJVRTsKCgkJLy8KCQkvLyBkbyB0aGUgbG9naW4gYW5kIGZldGNoIEFVVEgKCQkvLwoJCS8vY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgVFJVRSk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9VUkwsIHNlbGY6OmxvZ2luVVJMKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIFRSVUUpOwoJCSRkYXRhID0gYXJyYXkoCgkJCSAgICAgICdhY2NvdW50VHlwZScgPT4gJ0dPT0dMRScsCgkJCSAgICAgICdFbWFpbCcgPT4gJHRoaXMtPl9sb2dpbiwKCQkJICAgICAgJ1Bhc3N3ZCcgPT4gJHRoaXMtPl9wYXNzLAoJCQkgICAgICAnc2VydmljZScgPT4gJ2dyYW5kY2VudHJhbCcsCgkJCSAgICAgICdzb3VyY2UnID0+ICdDR1NNUycKCQkJKTsKCQlkZWJ1Z19kaXNwbGF5KCRkYXRhKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRkYXRhICk7CQoJCSRodG1sID0gY3VybF9leGVjKCR0aGlzLT5fY2gpOwoJCSRyZXNjb2RlID0gY3VybF9nZXRpbmZvKCR0aGlzLT5fY2gsQ1VSTElORk9fSFRUUF9DT0RFKTsKCQlpZiggJHJlc2NvZGUgPiAzOTkgKQoJCSAgewoJCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBMb2dpbiBmYWlsZWQgd2l0aCBjb2RlICcuJHJlc2NvZGUpOwoJCSAgfQoKCQlpZiggJGh0bWwgPT0gJycgKQoJCSAgewoJCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRtcHQgdG8gbG9naW4gLSByZXN1bHQgZW1wdHknKTsKCQkgIH0KCgkJaWYoIHByZWdfbWF0Y2goJy9BdXRoPShbX2EtekEtWjAtOV0rKS8nLCAkaHRtbCwgJG1hdGNoZXMpICkKCQkgIHsKCQkgICAgJHRoaXMtPl9hdXRoID0gJG1hdGNoZXNbMV07CgkJICB9CgkJZWxzZQoJCSAgewoJCSAgICBkZWJ1Z19kaXNwbGF5KCRodG1sKTsgZGllKCk7CgkJICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NvdWxkIG5vdCBnZXQgYXV0aCB0b2tlbicpOwoJCSAgfQoKCQkvLwoJCS8vIGdldCB0aGUgcm5yX3NlZSB2YWx1ZQoJCS8vCgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9VUkwsIHNlbGY6OmdlblVSTC4nP2F1dGg9Jy4kdGhpcy0+X2F1dGgpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIEZBTFNFKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX0hUVFBHRVQsIDEpOwoJCSRodG1sID0gY3VybF9leGVjKCR0aGlzLT5fY2gpOwoJCWRlYnVnX2Rpc3BsYXkoY3VybF9nZXRpbmZvKCR0aGlzLT5fY2gpKTsKCQkkcmVzY29kZSA9IGN1cmxfZ2V0aW5mbygkdGhpcy0+X2NoLENVUkxJTkZPX0hUVFBfQ09ERSk7CgkJaWYoICRyZXNjb2RlID4gMzk5ICkKCQkgIHsKCQkgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgTG9naW4gZmFpbGVkIHdpdGggY29kZSAnLiRyZXNjb2RlKTsKCQkgIH0KCgkJaWYoIHByZWdfbWF0Y2goJy9uYW1lPSJfcm5yX3NlIi4qP3ZhbHVlPSIoLio/KSIvJywgJGh0bWwsICRtYXRjaCkgKQoJCXsKCQkJJHRoaXMtPl9ybnJfc2UgPSAkbWF0Y2hbMV07CgkJfQoJCWVsc2UKCQl7CgkJICBkZWJ1Z19kaXNwbGF5KCRodG1sKTsgZGllKCk7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2cgaW4gdG8gR29vZ2xlIFZvaWNlIHdpdGggdXNlcm5hbWU6ICIgLiAkdGhpcy0+X2xvZ2luKTsKCQl9CgoJfQoKCS8qKgoJICogUGxhY2UgYSBjYWxsIHRvICRudW1iZXIgY29ubmVjdGluZyBmaXJzdCB0byAkZnJvbU51bWJlcgoJICogQHBhcmFtICRudW1iZXIgVGhlIDEwLWRpZ2l0IHBob25lIG51bWJlciB0byBjYWxsIChmb3JtYXR0ZWQgd2l0aCBwYXJlbnMgYW5kIGh5cGhlbnMgb3Igbm9uZSkKCSAqIEBwYXJhbSAkZnJvbU51bWJlciBUaGUgMTAtZGlnaXQgbnVtYmVyIG9uIHlvdXIgYWNjb3VudCB0byBjb25uZWN0IHRoZSBjYWxsIChubyBoeXBoZW5zIG9yIHNwYWNlcykKCSAqIEBwYXJhbSAkcGhvbmVUeXBlIChtb2JpbGUsIHdvcmssIGhvbWUsIGdpem1vKSBUaGUgdHlwZSBvZiBwaG9uZSB0aGUgJGZyb21OdW1iZXIgaXMuIFRoZSBjYWxsIHdpbGwgbm90IGJlIGNvbm5lY3RlZCB3aXRob3V0IHRoaXMgdmFsdWUuIAoJICovCglwdWJsaWMgZnVuY3Rpb24gY2FsbE51bWJlcigkbnVtYmVyLCAkZnJvbU51bWJlciwgJHBob25lVHlwZT0nbW9iaWxlJykKCXsKCQkkdHlwZXMgPSBhcnJheSgKCQkJJ21vYmlsZScgPT4gMiwKCQkJJ3dvcmsnID0+IDMsCgkJCSdob21lJyA9PiAxLAoJCQknZ2l6bW8nID0+IDcKCQkpOwoJCgkJaWYoIWFycmF5X2tleV9leGlzdHMoJHBob25lVHlwZSwgJHR5cGVzKSkKCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbignUGhvbmUgdHlwZSBtdXN0IGJlIG1vYmlsZSwgd29yaywgaG9tZSBvciBnaXptbycpOwoJCQoJCSR0aGlzLT5fbG9nSW4oKTsKCQkKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvY2FsbC9jb25uZWN0LycpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUE9TVCwgVFJVRSk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9QT1NURklFTERTLCBhcnJheSgKCQkJJ19ybnJfc2UnPT4kdGhpcy0+X3Jucl9zZSwKCQkJJ2F1dGgnPT4kdGhpcy0+X2F1dGgsCgkJCSdmb3J3YXJkaW5nTnVtYmVyJz0+JysxJyAuICRmcm9tTnVtYmVyLAoJCQknb3V0Z29pbmdOdW1iZXInPT4kbnVtYmVyLAoJCQkncGhvbmVUeXBlJz0+JHR5cGVzWyRwaG9uZVR5cGVdLAoJCQkncmVtZW1iZXInPT4wLAoJCQknc3Vic2NyaWJlck51bWJlcic9Pid1bmRlZmluZWQnCgkJCSkpOwoJCWN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2VuZFNNUygkbnVtYmVyLCAkbWVzc2FnZSkKCXsKCQkkdGhpcy0+X2xvZ0luKCk7CgoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9zbXMvc2VuZC8nKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIFRSVUUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgYXJyYXkoCgkJCSdfcm5yX3NlJz0+JHRoaXMtPl9ybnJfc2UsCgkJCSdhdXRoJz0+JHRoaXMtPl9hdXRoLAoJCQkncGhvbmVOdW1iZXInPT4nKzEnIC4gJG51bWJlciwKCQkJJ3RleHQnPT4kbWVzc2FnZSwKCQkJJ2lkJz0+JycKCQkJKSk7CgkJJHJlcyA9IGN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCQkkcmVzY29kZSA9IGN1cmxfZ2V0aW5mbygkdGhpcy0+X2NoLENVUkxJTkZPX0hUVFBfQ09ERSk7CgkJaWYoICRyZXNjb2RlICE9IDIwMCApCgkJICB7CgkJICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IExvZ2luIGZhaWxlZCB3aXRoIGNvZGUgJy4kcmVzY29kZSk7CgkJICB9Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXROZXdTTVMoKQoJewoJCSR0aGlzLT5fbG9nSW4oKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvaW5ib3gvcmVjZW50L3Ntcy8nKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIEZBTFNFKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCBUUlVFKTsKCQkkeG1sID0gY3VybF9leGVjKCR0aGlzLT5fY2gpOwoKCQkkZG9tID0gbmV3IERPTURvY3VtZW50KCk7CgoJCS8vIGxvYWQgdGhlICJ3cmFwcGVyIiB4bWwgKGNvbnRhaW5zIHR3byBlbGVtZW50cywganNvbiBhbmQgaHRtbCkKCQkkZG9tLT5sb2FkWE1MKCR4bWwpOwoJCSRqc29uID0gJGRvbS0+ZG9jdW1lbnRFbGVtZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZSgianNvbiIpLT5pdGVtKDApLT5ub2RlVmFsdWU7CgkJJGpzb24gPSBqc29uX2RlY29kZSgkanNvbik7CgoJCS8vIG5vdyBtYWtlIGEgZG9tIHBhcnNlciB3aGljaCBjYW4gcGFyc2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBIVE1MIHRhZwoJCSRodG1sID0gJGRvbS0+ZG9jdW1lbnRFbGVtZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpLT5pdGVtKDApLT5ub2RlVmFsdWU7CgkJLy8gcmVwbGFjZSBhbGwgIiYiIHdpdGggIiZhbXA7IiBzbyBpdCBjYW4gYmUgcGFyc2VkCgkJJGh0bWwgPSBzdHJfcmVwbGFjZSgiJiIsICImYW1wOyIsICRodG1sKTsKCQkkZG9tLT5sb2FkSFRNTCgkaHRtbCk7CgkJJHhwYXRoID0gbmV3IERPTVhQYXRoKCRkb20pOwoJCQoJCSRyZXN1bHRzID0gYXJyYXkoKTsKCQkKCQlmb3JlYWNoKCAkanNvbi0+bWVzc2FnZXMgYXMgJG1pZD0+JGNvbnZvICkKCQl7CgkJCSRlbGVtZW50cyA9ICR4cGF0aC0+cXVlcnkoIi8vZGl2W0BpZD0nJG1pZCddLy9kaXZbQGNsYXNzPSdnYy1tZXNzYWdlLXNtcy1yb3cnXSIpOwoJCQlpZighaXNfbnVsbCgkZWxlbWVudHMpKQoJCQl7CgkJCQlpZiggaW5fYXJyYXkoJ3VucmVhZCcsICRjb252by0+bGFiZWxzKSApCgkJCQl7CgkJCQkJZm9yZWFjaCgkZWxlbWVudHMgYXMgJGk9PiRlbGVtZW50KQoJCQkJCXsKCQkJCQkJJFhNc2dGcm9tID0gJHhwYXRoLT5xdWVyeSgic3BhbltAY2xhc3M9J2djLW1lc3NhZ2Utc21zLWZyb20nXSIsICRlbGVtZW50KTsKCQkJCQkJJG1zZ0Zyb20gPSAnJzsKCQkJCQkJZm9yZWFjaCgkWE1zZ0Zyb20gYXMgJG0pCgkJCQkJCQkkbXNnRnJvbSA9IHRyaW0oJG0tPm5vZGVWYWx1ZSk7CgoJCQkJCQlpZiggJG1zZ0Zyb20gIT0gIk1lOiIgKQoJCQkJCQl7CgkJCQkJCQkkWE1zZ1RleHQgPSAkeHBhdGgtPnF1ZXJ5KCJzcGFuW0BjbGFzcz0nZ2MtbWVzc2FnZS1zbXMtdGV4dCddIiwgJGVsZW1lbnQpOwoJCQkJCQkJJG1zZ1RleHQgPSAnJzsKCQkJCQkJCWZvcmVhY2goJFhNc2dUZXh0IGFzICRtKQoJCQkJCQkJCSRtc2dUZXh0ID0gdHJpbSgkbS0+bm9kZVZhbHVlKTsKCQoJCQkJCQkJJFhNc2dUaW1lID0gJHhwYXRoLT5xdWVyeSgic3BhbltAY2xhc3M9J2djLW1lc3NhZ2Utc21zLXRpbWUnXSIsICRlbGVtZW50KTsKCQkJCQkJCSRtc2dUaW1lID0gJyc7CgkJCQkJCQlmb3JlYWNoKCRYTXNnVGltZSBhcyAkbSkKCQkJCQkJCQkkbXNnVGltZSA9IHRyaW0oJG0tPm5vZGVWYWx1ZSk7CgkKCQkJCQkJCSRyZXN1bHRzW10gPSBhcnJheSgnbXNnSUQnPT4kbWlkLCAncGhvbmVOdW1iZXInPT4kY29udm8tPnBob25lTnVtYmVyLCAnbWVzc2FnZSc9PiRtc2dUZXh0LCAnZGF0ZSc9PmRhdGUoJ1ktbS1kIEg6aTpzJywgc3RydG90aW1lKGRhdGUoJ20vZC9ZICcsaW50dmFsKCRjb252by0+c3RhcnRUaW1lLzEwMDApKS4kbXNnVGltZSkpKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkvL2VjaG8gIlRoaXMgbWVzc2FnZSBpcyBub3QgdW5yZWFkXG4iOwkKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCS8vZWNobyAiZ2MtbWVzc2FnZS1zbXMtcm93IHF1ZXJ5IGZhaWxlZFxuIjsKCQkJfQoJCX0KCQkKCQlyZXR1cm4gJHJlc3VsdHM7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBtYXJrU01TUmVhZCgkbXNnSUQpCgl7CgkJJHRoaXMtPl9sb2dJbigpOwoKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvaW5ib3gvbWFyay8nKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIFRSVUUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgYXJyYXkoCgkJCSdfcm5yX3NlJz0+JHRoaXMtPl9ybnJfc2UsCgkJCSdtZXNzYWdlcyc9PiRtc2dJRCwKCQkJJ3JlYWQnPT4xCgkJCSkpOwoJCWN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0TmV3Vm9pY2VtYWlsKCkKCXsKCQkkdGhpcy0+X2xvZ0luKCk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL2luYm94L3JlY2VudC92b2ljZW1haWwvJyk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9QT1NULCBGQUxTRSk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgVFJVRSk7CgkJJHhtbCA9IGN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCgkJJGRvbSA9IG5ldyBET01Eb2N1bWVudCgpOwoKCQkvLyBsb2FkIHRoZSAid3JhcHBlciIgeG1sIChjb250YWlucyB0d28gZWxlbWVudHMsIGpzb24gYW5kIGh0bWwpCgkJJGRvbS0+bG9hZFhNTCgkeG1sKTsKCQkkanNvbiA9ICRkb20tPmRvY3VtZW50RWxlbWVudC0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoImpzb24iKS0+aXRlbSgwKS0+bm9kZVZhbHVlOwoJCSRqc29uID0ganNvbl9kZWNvZGUoJGpzb24pOwoKCQkvLyBub3cgbWFrZSBhIGRvbSBwYXJzZXIgd2hpY2ggY2FuIHBhcnNlIHRoZSBjb250ZW50cyBvZiB0aGUgSFRNTCB0YWcKCQkkaHRtbCA9ICRkb20tPmRvY3VtZW50RWxlbWVudC0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS0+aXRlbSgwKS0+bm9kZVZhbHVlOwoJCS8vIHJlcGxhY2UgYWxsICImIiB3aXRoICImYW1wOyIgc28gaXQgY2FuIGJlIHBhcnNlZAoJCSRodG1sID0gc3RyX3JlcGxhY2UoIiYiLCAiJmFtcDsiLCAkaHRtbCk7CgkJJGRvbS0+bG9hZEhUTUwoJGh0bWwpOwoJCSR4cGF0aCA9IG5ldyBET01YUGF0aCgkZG9tKTsKCQkKCQkkcmVzdWx0cyA9IGFycmF5KCk7CgkJCgkJZm9yZWFjaCggJGpzb24tPm1lc3NhZ2VzIGFzICRtaWQ9PiRjb252byApCgkJewoJCQkkZWxlbWVudHMgPSAkeHBhdGgtPnF1ZXJ5KCIvL2RpdltAaWQ9JyRtaWQnXSIpOwoJCQlpZighaXNfbnVsbCgkZWxlbWVudHMpKQoJCQl7CgkJCQlpZiggJGNvbnZvLT5pc1JlYWQgPT0gZmFsc2UgKQoJCQkJewoJCQkJCSRlbGVtZW50ID0gJGVsZW1lbnRzLT5pdGVtKDApOwoJCQkJCSRYTXNnID0gJHhwYXRoLT5xdWVyeSgiLy9kaXZbQGNsYXNzPSdnYy1tZXNzYWdlLW1lc3NhZ2UtZGlzcGxheSddIiwgJGVsZW1lbnQpOwoJCQkJCSRYTXNnUGFydCA9ICR4cGF0aC0+cXVlcnkoInNwYW58YSIsICRYTXNnLT5pdGVtKDApKTsKCQkJCQkKCQkJCQkkbXNnVGV4dCA9ICcnOwoJCQkJCSRtc2dXb3JkcyA9IGFycmF5KCk7CgkJCQkJZm9yZWFjaCgkWE1zZ1BhcnQgYXMgJG0pCgkJCQkJewoJCQkJCQkkd29yZCA9ICR0aGlzLT5fdW5odG1sZW50aXRpZXModHJpbSgkbS0+bm9kZVZhbHVlKSk7CgkJCQkJCSRtc2dUZXh0IC49ICR3b3JkIC4gJyAnOwoJCQkJCQlpZihwcmVnX21hdGNoKCcvZ2Mtd29yZC0oLispLycsICRtLT5hdHRyaWJ1dGVzLT5nZXROYW1lZEl0ZW0oJ2NsYXNzJyktPnRleHRDb250ZW50LCAkbWF0Y2gpKQoJCQkJCQkJJGNvbmZpZGVuY2UgPSAkbWF0Y2hbMV07CgkJCQkJCWVsc2UKCQkJCQkJCSRjb25maWRlbmNlID0gJyc7CgkJCQkJCSRtc2dXb3Jkc1tdID0gYXJyYXkoJ3dvcmQnPT4kd29yZCwgJ2NvbmZpZGVuY2UnPT4kY29uZmlkZW5jZSk7CgkJCQkJfQoJCQkJCQkKCQkJCQkkcmVzdWx0c1tdID0gYXJyYXkoJ21zZ0lEJz0+JG1pZCwgJ3Bob25lTnVtYmVyJz0+JGNvbnZvLT5waG9uZU51bWJlciwgJ21lc3NhZ2UnPT4kbXNnVGV4dCwgJ2RhdGUnPT5kYXRlKCdZLW0tZCBIOmk6cycsIGludHZhbCgkY29udm8tPnN0YXJ0VGltZS8xMDAwKSksICd3b3Jkcyc9PiRtc2dXb3Jkcyk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJZWNobyAiVGhpcyBtZXNzYWdlICgkbWlkKSBpcyBub3QgdW5yZWFkXG4iOwoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJZWNobyAiQ291bGQgbm90IGZpbmQgSFRNTCB2ZXJzaW9uIG9mIG1lc3NhZ2U6ICRtaWRcbiI7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICRyZXN1bHRzOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZG9tX2R1bXAoJG9iaikgewoJCWlmICgkY2xhc3NuYW1lID0gZ2V0X2NsYXNzKCRvYmopKSB7CgkJCSRyZXR2YWwgPSAiSW5zdGFuY2Ugb2YgJGNsYXNzbmFtZSwgbm9kZSBsaXN0OiBcbiI7CgkJCXN3aXRjaCAodHJ1ZSkgewoJCQkJY2FzZSAoJG9iaiBpbnN0YW5jZW9mIERPTURvY3VtZW50KToKCQkJCQkkcmV0dmFsIC49ICJYUGF0aDogeyRvYmotPmdldE5vZGVQYXRoKCl9XG4iLiRvYmotPnNhdmVYTUwoJG9iaik7CgkJCQkJYnJlYWs7CgkJCQljYXNlICgkb2JqIGluc3RhbmNlb2YgRE9NRWxlbWVudCk6CgkJCQkJJHJldHZhbCAuPSAiWFBhdGg6IHskb2JqLT5nZXROb2RlUGF0aCgpfVxuIi4kb2JqLT5vd25lckRvY3VtZW50LT5zYXZlWE1MKCRvYmopOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAoJG9iaiBpbnN0YW5jZW9mIERPTUF0dHIpOgoJCQkJCSRyZXR2YWwgLj0gIlhQYXRoOiB7JG9iai0+Z2V0Tm9kZVBhdGgoKX1cbiIuJG9iai0+b3duZXJEb2N1bWVudC0+c2F2ZVhNTCgkb2JqKTsKCQkJCQlicmVhazsKCQkJCWNhc2UgKCRvYmogaW5zdGFuY2VvZiBET01Ob2RlTGlzdCk6CgkJCQkJZm9yICgkaSA9IDA7ICRpIDwgJG9iai0+bGVuZ3RoOyAkaSsrKSB7CgkJCQkJCSRyZXR2YWwgLj0gIkl0ZW0gIyRpLCBYUGF0aDogeyRvYmotPml0ZW0oJGkpLT5nZXROb2RlUGF0aCgpfVxuIi4ieyRvYmotPml0ZW0oJGkpLT5vd25lckRvY3VtZW50LT5zYXZlWE1MKCRvYmotPml0ZW0oJGkpKX1cbiI7CgkJCQkJfQoJCQkJCWJyZWFrOwoJCQkJZGVmYXVsdDoKCQkJCQlyZXR1cm4gIkluc3RhbmNlIG9mIHVua25vd24gY2xhc3MiOwoJCQl9CgkJfSBlbHNlIHsKCQkJcmV0dXJuICdubyBlbGVtZW50cy4uLic7CgkJfQoJCXJldHVybiBodG1sc3BlY2lhbGNoYXJzKCRyZXR2YWwpOwoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIF91bmh0bWxlbnRpdGllcygkc3RyaW5nKQoJewoJCS8vIHJlcGxhY2UgbnVtZXJpYyBlbnRpdGllcwoJCSRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoJ34mI3goWzAtOWEtZl0rKTt+ZWknLCAnY2hyKGhleGRlYygiXFwxIikpJywgJHN0cmluZyk7CgkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgnfiYjKFswLTldKyk7fmUnLCAnY2hyKCJcXDEiKScsICRzdHJpbmcpOwoJCS8vIHJlcGxhY2UgbGl0ZXJhbCBlbnRpdGllcwoJCSRzdHJpbmcgPSBodG1sX2VudGl0eV9kZWNvZGUoJHN0cmluZyk7CgkJcmV0dXJuICRzdHJpbmc7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvQlNELwoKQ29weXJpZ2h0IChjKSAyMDA5LCBBYXJvbiBQYXJlY2tpCkFsbCByaWdodHMgcmVzZXJ2ZWQuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEFhcm9uIFBhcmVja2kgbm9yIHRoZQogICAgICBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwogICAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQUFST04gUEFSRUNLSSAnJ0FTIElTJycgQU5EIEFOWQpFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQUFST04gUEFSRUNLSSAgQkUgTElBQkxFIEZPUiBBTlkKRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwpMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R29vZ2xlIFZvaWNlIFBIUCBBUEkKPT09PT09PT09PT09PT09PT09PT0KCkFuIEFQSSB0byBpbnRlcmFjdCB3aXRoIEdvb2dsZSBWb2ljZSB1c2luZyBQSFAuCgpDdXJyZW50bHkgdGhlIEFQSSBjYW4gcGxhY2UgY2FsbHMsIHNlbmQgYW5kIHJlY2VpdmUgU01TIG1lc3NhZ2VzLCBhbmQKZG93bmxvYWQgdHJhbnNjcmlwdGlvbnMgb2Ygdm9pY2VtYWlsLgoKRmVlbCBmcmVlIHRvIGltcGxlbWVudCBuZXcgZnVuY3Rpb25hbGl0eSBhbmQgc2VuZCBtZSB5b3VyIGNoYW5nZXMgc28KSSBjYW4gaW5jb3Jwb3JhdGUgdGhlbSBpbnRvIHRoaXMgbGlicmFyeSEKCk5vdGU6IFJlY2VpdmluZyBTTVNzIGFuZCB2b2ljZW1haWxzIGlzIG1vc3RseSB1bm5lY2Vzc2FyeSB2aWEgdGhpcyBBUEkKc2luY2UgR29vZ2xlIG5vdyBhbGxvd3MgU01TcyB0byBiZSBmb3J3YXJkZWQgdG8gYW4gZW1haWwgYWRkcmVzcy4gSXQgaXMgCmEgYmV0dGVyIGlkZWEgdG8gcGFyc2UgdGhvc2UgaW5jb21pbmcgZW1haWxzIHdpdGggYSBzY3JpcHQuCgpEaXNjbGFpbWVyCj09PT09PT09PT0KClRoaXMgY29kZSBpcyBwcm92aWRlZCBmb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMgb25seS4gVGhpcyBjb2RlIG1heSBzdG9wIHdvcmtpbmcKYXQgYW55IHRpbWUgaWYgR29vZ2xlIGNoYW5nZXMgdGhlaXIgbG9naW4gbWVjaGFuaXNtIG9yIHRoZWlyIHdlYiBwYWdlcy4gWW91IGFncmVlIHRoYXQKYnkgZG93bmxvYWRpbmcgdGhpcyBjb2RlIHlvdSBhZ3JlZSB0byB1c2UgaXQgc29sZWx5IGF0IHlvdXIgb3duIHJpc2suCgpMaWNlbnNlCj09PT09PT0KCkNvcHlyaWdodCAyMDA5IGJ5IEFhcm9uIFBhcmVja2kKaHR0cDovL2Fhcm9ucGFyZWNraS5jb20KClNlZSBMSUNFTlNFCgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGRiID0mICR0aGlzLT5HZXREYigpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokZmxkcyA9ICIKICAgICAgICAgaWQgSSBLRVkgQVVUTywKICAgICAgICAgbW9iaWxlIEMoMjUpLAogICAgICAgICBuYW1lICAgQygyNSkgS0VZCiAgICAgICAgIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnc21zIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIm1vYmlsZSBDKDI1KSwKICAgICAgICAgaXAgICAgIEMoMjUpLAogICAgICAgICBtc2cgICAgQygxNjApLAogICAgICAgICBzZGF0ZSAgIi5DTVNfQURPREJfRFQ7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3Ntc19zZW50JywkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojIGVudGVyIG51bWJlciB0ZW1wbGF0ZXMKJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvb3JpZ19lbnRlcm51bWJlcl90ZW1wbGF0ZS50cGwnOwppZiggZmlsZV9leGlzdHMoJGZuKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENHU01TOjpQUkVGX05FV0VOVEVSTlVNQkVSX1RQTCwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdlbnRlcm51bWJlcl9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR1NNUzo6UFJFRl9ERkxURU5URVJOVU1CRVJfVFBMLCdTYW1wbGUnKTsKICB9CgojIGVudGVyIHRleHQgdGVtcGxhdGVzCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfZW50ZXJ0ZXh0X3RlbXBsYXRlLnRwbCc7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dTTVM6OlBSRUZfTkVXRU5URVJURVhUX1RQTCwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdlbnRlcnRleHRfU2FtcGxlJywkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dTTVM6OlBSRUZfREZMVEVOVEVSVEVYVF9UUEwsJ1NhbXBsZScpOwogIH0KIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CgokZGIgPSYgJHRoaXMtPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2dzbXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2dzbXNfc2VudCIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU01TIChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBvdGhlcgojICBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_edit_mobile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRlZGl0X21vYmlsZScpfTwvaDM+CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3A+IAogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskbmFtZX0iIHNpemU9IjI1IiBtYXhsZW5ndGg9IjI1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbW9iaWxlX251bWJlcicpfTwvcD4gCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tb2JpbGUiIHZhbHVlPSJ7JG1vYmlsZX0iIHNpemU9IjI1IiBtYXhsZW5ndGg9IjI1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+IAogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_mobiles_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtb2JpbGVzKX0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGJvcmRlcj0iMCI+CiAgPHRoZWFkPgogICA8dHI+CiAgICAgPHRoPnskbW9kLT5MYW5nKCdpZCcpfTwvdGg+CiAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICA8dGg+eyRtb2QtPkxhbmcoJ251bWJlcicpfTwvdGg+CiAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogIHtmb3JlYWNoIGZyb209JG1vYmlsZXMgaXRlbT0nbW9iaWxlJ30KICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgICA8dGQ+eyRtb2JpbGUuaWR9PC90ZD4KICAgICAgPHRkPnskbW9iaWxlLm5hbWV9PC90ZD4KICAgICAgPHRkPnskbW9iaWxlLm1vYmlsZX08L3RkPgogICAgICA8dGQ+eyRtb2JpbGUuZWRpdF9saW5rfTwvdGQ+CiAgICAgIDx0ZD57JG1vYmlsZS5kZWxfbGlua308L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4Key9pZn0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIHskYWRkX2xpbmt9CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_settingstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp7bGl0ZXJhbH0KaWYoIGpRdWVyeSApIHsKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIC8vIHNldHVwIHRoZSBjaGFuZ2UgY2FsbGJhY2suCiAgalF1ZXJ5KCcjc21zX2dhdGV3YXknKS5jaGFuZ2UoZnVuY3Rpb24oKXsKICAgIC8vIGdldCB0aGUgc2VsZWN0ZWQgY2xhc3MgbmFtZQogICAgalF1ZXJ5KCcuc21zX2dhdGV3YXlfcGFuZWwnKS5oaWRlKCk7CiAgICB2YXIgdmFsID0galF1ZXJ5KCcjc21zX2dhdGV3YXknKS52YWwoKTsKICAgIGpRdWVyeSgnIycrdmFsKS5zaG93KCk7CiAgICAvLyAKICB9KTsKICAKICAvLyBoaWRlIGFsbCB0aGUgcGFuZWxzCiAgalF1ZXJ5KCcuc21zX2dhdGV3YXlfcGFuZWwnKS5oaWRlKCk7CgogIHZhciB2YWwgPSBqUXVlcnkoJyNzbXNfZ2F0ZXdheScpLnZhbCgpOwogIC8vIHNob3cgb25seSB0aGUgc2VsZWN0ZWQgb25lLgogIGpRdWVyeSgnIycrdmFsKS5zaG93KCk7Cn0pCn0Key9saXRlcmFsfQo8L3NjcmlwdD4KCnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3JlcG9ydGluZ191cmwnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcmVwb3J0dXJsfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NlbGVjdGVkX2dhdGV3YXknKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBpZD0ic21zX2dhdGV3YXkiIG5hbWU9InskYWN0aW9uaWR9c21zX2dhdGV3YXkiPiAKICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGdhdGV3YXluYW1lcyBzZWxlY3RlZD0kc21zX2dhdGV3YXl9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKe2ZvcmVhY2ggZnJvbT0kb2JqZWN0cyBrZXk9J2NsYXNzbmFtZScgaXRlbT0nb25lJ30KPGRpdiBpZD0ieyRjbGFzc25hbWV9IiBjbGFzcz0ic21zX2dhdGV3YXlfcGFuZWwiIHN0eWxlPSJtYXJnaW4tdG9wOiAwLjVlbTsgbWFyZ2luLWJvdHRvbTogMC41ZW07Ij4KeyRvbmUuZm9ybX0KPC9kaXY+CnsvZm9yZWFjaH0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_testtab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRtb2QtPkxhbmcoJ2luZm9fc21zdGVzdCcpfTwvcD4KeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbW9iaWxlX251bWJlcicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bW9iaWxlIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/googlevoice_setup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZ29vZ2xlIHZvaWNlIHNldHVwICp9Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2dvb2dsZXZvaWNlX3Ntc19nYXRld2F5Jyl9PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbG9naW4nKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1nb29nbGV2b2ljZV9lbWFpbCIgc2l6ZT0iMjAiIHZhbHVlPSJ7JGdvb2dsZXZvaWNlX2VtYWlsfSIvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Bhc3N3b3JkJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJ7JGFjdGlvbmlkfWdvb2dsZXZvaWNlX3Bhc3N3b3JkIiBzaXplPSIyMCIgdmFsdWU9InskZ29vZ2xldm9pY2VfcGFzc3dvcmR9Ii8+CiAgPC9wPgo8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/templates/interlinked_setup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW50ZXJsaW5rZWQgdGVtcGxhdGUgKn0KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnaW50ZXJsaW5rZWRfc21zX2dhdGV3YXknKX08L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd1c2VybmFtZScpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWludGVybGlua2VkX3VzZXJuYW1lIiBzaXplPSIyMCIgdmFsdWU9InskaW50ZXJsaW5rZWRfdXNlcm5hbWV9Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncGFzc3dvcmQnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1pbnRlcmxpbmtlZF9wYXNzd29yZCIgc2l6ZT0iMjAiIHZhbHVlPSJ7JGludGVybGlua2VkX3Bhc3N3b3JkfSIvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2Zyb20nKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1pbnRlcmxpbmtlZF9mcm9tIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIxMiIgdmFsdWU9InskaW50ZXJsaW5rZWRfZnJvbX0iLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjdXN0b20nKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1pbnRlcmxpbmtlZF9jdXN0b20iIHNpemU9IjIwIiBtYXhsZW5ndGg9IjUwIiB2YWx1ZT0ieyRpbnRlcmxpbmtlZF9jdXN0b219Ii8+CiAgPC9wPgo8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_enternumber_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZW50ZXIgbnVtYmVyIGZvciBzbXMgbWVzc2FnZSB0ZW1wbGF0ZSAqfQo8ZGl2IGNsYXNzPSJjZ3Ntc19lbnRlcm51bWJlciI+CntpZiBpc3NldCgkZXJyb3IpfQogIDxkaXYgY2xhc3M9ImVycm9ybXNnIj57JGVycm9yfTwvZGl2Pgp7L2lmfQp7aWYgaXNzZXQoJG1lc3NhZ2UpfQogIDxkaXYgY2xhc3M9ImluZm9tc2ciPnskbWVzc2FnZX08L2Rpdj4Key9pZn0KCnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJsZWZ0Y29sIj57JENHU01TLT5MYW5nKCdlbnRlcl9tb2JpbGVfbnVtYmVyJyl9OjwvcD4KICA8cCBjbGFzcz0icmlnaHRjb2wiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2dzbXNfbW9iaWxlIiB2YWx1ZT0iIiBzaXplPSIxNCIgbWF4bGVuZ3RoPSIxNCIvPgogIDwvcD4KPC9kaXY+CiAgPHAgY2xhc3M9ImxlZnRjb2wiPjwvcD4KICA8cCBjbGFzcz0icmlnaHRjb2wiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jZ3Ntc19zdWJtaXQiIHZhbHVlPSJ7JENHU01TLT5MYW5nKCdzZW5kJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_entertext_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZW50ZXIgdGV4dCB0ZW1wbGF0ZSAqfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBudW1jaGFycz0neyRtYXhzbXNjaGFyc30nOwp7bGl0ZXJhbH0KZnVuY3Rpb24gY2dzbXNfZW50ZXJ0ZXh0X29uY2hhbmdlKCkKewogIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2dzbXNfZW50ZXJ0ZXh0X3Ntc3RleHQnKS52YWx1ZTsKICBjaGFyc2xlZnQgPSBudW1jaGFycyAtIHRleHQubGVuZ3RoIC0gMTsKICBpZiggY2hhcnNsZWZ0IDwgMCApIHJldHVybiBmYWxzZTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2dzbXNfZW50ZXJ0ZXh0X2NoYXJzbGVmdCcpLmlubmVySFRNTCA9IGNoYXJzbGVmdDsKfQp7L2xpdGVyYWx9Cjwvc2NyaXB0PgoKPGRpdiBpZD0iY2dzbXNfZW50ZXJ0ZXh0Ij4Ke2lmIGlzc2V0KCRlcnJvcil9CiAgPGRpdiBjbGFzcz0iZXJyb3Jtc2ciPnskZXJyb3J9PC9kaXY+CnsvaWZ9CntpZiBpc3NldCgkbWVzc2FnZSl9CiAgPGRpdiBjbGFzcz0iaW5mb21zZyI+eyRtZXNzYWdlfTwvZGl2Pgp7L2lmfQoKeyRmb3Jtc3RhcnR9Cjx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfWNnc21zX3Ntc3RleHQiIGlkPSJjZ3Ntc19lbnRlcnRleHRfc21zdGV4dCIgcm93cz0iNCIgY29scz0iNDAiIG9ua2V5cHJlc3M9ImNnc21zX2VudGVydGV4dF9vbmNoYW5nZSgpOyI+eyRzbXN0ZXh0fTwvdGV4dGFyZWE+Cjxici8+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJjZ3Ntc19lbnRlcnRleHRfc3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNnc21zX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KPHNwYW4gaWQ9ImNnc21zX2VudGVydGV4dF9jaGFyc2xlZnQiPnskbWF4c21zY2hhcnN9PC9zcGFuPgp7JGZvcm1lbmR9CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/security_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3Ntc19ob3VybHlfbGltaXQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWhvdXJseWxpbWl0IiB2YWx1ZT0ieyRob3VybHlsaW1pdH0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3Ntc19kYWlseV9saW1pdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZGFpbHlsaW1pdCIgdmFsdWU9InskZGFpbHlsaW1pdH0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
</module>
