<?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>CGTiny</name>
	<version>1.2.7</version>
  <mincmsversion>1.12</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgb2YgZHluYW1pY2FsbHkgY3JlYXRpbmcgc2hvcnQgVVJMUyB2aWEgYSB2YXJpZXR5IG9mIFVSTCBzaG9ydGVuaW5nIHNlcnZpY2VzLCBhbmQgaW50ZXJhY3Rpbmcgd2l0aCB0aGVtIG9uIHlvdXIgQ01TTVMgV2Vic2l0ZS48L3A+CjxoMz5GZWF0dXJlczwvaDM+Cjx1bD4KICA8bGk+U3VwcG9ydHMgYSB2YXJpZXR5IG9mIFVSTCBTaG9ydGVuaW5nIFNlcnZpY2VzLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGNhY2hpbmcgdG8gbWluaW1pemUgZXh0ZXJuYWwgcmVxdWVzdHMgYW5kIG1heGltaXplIHBlcmZvcm1hbmNlLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGNhc2NhZGluZyBvZiBzZXJ2aWNlcyAoaWYgb25lIGZhaWxzLCB0aGUgbmV4dCBpbiB0aGUgbGlzdCB3aWxsIGJlIHRyaWVkKTwvbGk+CiAgPGxpPkZsZXhpYmxlIEludGVyZmFjZTwvbGk+CjwvdWw+CjxoMz5Ib3cgZG8gSSB1c2UgaXQ8L2gzPgogIDxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIGp1c3QgdXNlIHRoZSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlLCBhIG1vZHVsZSB0ZW1wbGF0ZSwgYSBHQ0IsIG9yIGEgY29udGVudCBibG9jay4gIGxpa2U6IDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3Rpbnkgc3JjPSdodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnJ30+PC9jb2RlPi4gIFRoaXMgd2lsbCBsb29wIHRocm91Z2ggdGhlIGF2YWlsYWJsZSBzZXJ2aWNlcyBhdHRlbXB0aW5nIHRvIHJldHJpZXZlIGEgc2hvcnQgVVJMLCB3aGVuIGEgcmVzdWx0IGlzIHJldHVybmVkIGl0IGlzIGNhY2hlZCBhbmQgZGlzcGxheWVkIG9uIHRoZSBwYWdlLiAgIFRoaXMgb3V0cHV0IGNvdWxkIHRoZW4gYmUgdXNlZCB3aGVuIGdlbmVyYXRpbmcgYSBsaW5rLCBvciBzdXBwbGllZCB0byBvdGhlciBzZXJ2aWNlcywgbGlrZSBmYWNlYm9vaywgb3IgdHdpdHRlci48L3A+CiAgPHA+U29tZSBzZXJ2aWNlcyAobGlrZSBiaXQubHkpIHJlcXVpcmUgdGhhdCB5b3UgcmVnaXN0ZXIgaW4gb3JkZXIgdG8gdXNlIHRoZWlyIHNlcnZpY2UgKGFuZCBhbHNvIHRha2UgYWR2YW50YWdlIG9mIGFkdmFuY2VkIGZlYXR1cmVzKS4gICBZb3UgbWF5IG5lZWQgdG8gcHJvdmlkZSB0aGUgQ0dUaW55IG1vZHVsZSB3aXRoIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBhbGxvdyBpdCB0byBzaG9ydGVuIHVybHMgb24geW91ciBiZWhhbGYuPC9wPgo8aDM+U21hcnR5IEZ1bmN0aW9uczwvaDM+Cjx1bD4KICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NndGlueSBzcmM9Jmx0O3N0cmluZyZndDsgW3NlcnZpY2U9Jmx0O3N0cmluZyZndDtdIFtub2NhY2hlPSZsdDtib29sJmd0O10gWy4uLl0gW2Fzc2lnbj0mbHQ7c3RyaW5nJmd0O119PC9jb2RlPgogICAgPHA+UGFyYW1ldGVyczo8L3A+CiAgICA8dWw+CiAgICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+c3JjPSZsdDtzdHJpbmcmZ3Q7PC9jb2RlPiAtIDxlbT5SZXF1aXJlZDwvZW0+IC0gU3BlY2lmeSB0aGUgVVJMIHRvIHNob3J0ZW4uICAgQXMgYSBjb252ZW5pZW5jZSB0aGUgc3RyaW5nIDo6SEVSRTo6IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGN1cnJlbnQgcGFnZSB1cmwuPC9saT4KICAgIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5zZXJ2aWNlPSZsdDtzdHJpbmcmZ3Q7PC9jb2RlPiAtIChvcHRpb25hbCkgLSBTcGVjaWZ5IGEgc3BlY2lmaWMgc2VydmljZSB0byB1c2UuIEN1cnJlbnRseSBhdmFpbGFibGUgc2VydmljZXMgaW5jbHVkZSBpc2dkLCB0aW55dXJsLCBiaXRseSwgYW5kIGdvb2dsLjwvbGk+CiAgICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+bm9jYWNoZT0mbHQ7Ym9vbCZndDs8L2NvZGU+IC0gKG9wdGlvbmFsKSAtIERpc2FibGUgdXNhZ2Ugb2YgdGhlIGNhY2hlIGZvciB0aGlzIGNhbGwuPC9saT4KICAgIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5hc3NpZ249Jmx0O3N0cmluZyZndDs8L2NvZGU+IC0gKG9wdGlvbmFsKSAtIFNwZWNpZnkgdGhlIG5hbWUgb2YgYSBzbWFydHkgdmFyaWFibGUgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHJlc3VsdHMuPC9saT4KICAgIDxsaT5Bbnkgb3RoZXIgcGFyYW1ldGVycyBzdXBwbGllZCB0byB0aGUgdGFnIGFyZSBhcHBlbmRlZCB0byB0aGUgVVJMIGJlZm9yZSBzaG9ydGVuaW5nIGlzIHJlcXVlc3RlZC48YnIvPgogICAgICAgaS5lOiA8Y29kZT57Y2d0aW55IHNyYz0nOjpIRVJFOjonIHV0bV9jYW1wYWlnbj0nTXlDYW1wYWlnbicgdXRtX3NvdXJjZT0ndHdpdHRlcicgdXRtX21lZGlhPSd0d2VldCd9PC9jb2RlPjxici8+PGJyLz4KICAgIDxsaT48c3Ryb25nPkhpbnQ6PC9zdHJvbmc+IE9uZSB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGN1c3RvbSBmaWVsZHMgb2YgdGhlIE5ld3MsIENHQmxvZyBvciBvdGhlciBtb2R1bGVzIHRvIGFsbG93IGFkbWluaXN0cmF0b3JzIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0IHRoZSBjYW1wYWlnbiAoYW5kIG90aGVyIHBhcmFtZXRlcnMpIHRvIGluY2x1ZGUgb24gdGhlIHRhZywgYW5kIHRoZW4gdG8gaGFyZGNvZGUgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtZWRpdW0gYW5kIHNvdXJjZS4gIGkuZSBpZiBpbiBOZXdzIHlvdSBoYXZlIGEgY3VzdG9tIGZpZWxkIGNhbGxlZCAmcXVvdDtjYW1wYWlnbiZxdW90OyB5b3UgY291bGQgZG8gc29tZXRoaW5nIGxpa2UgdGhlIGNvZGUgYmVsb3cgaW4geW91ciBuZXdzIGRldGFpbCB0ZW1wbGF0ZSAgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGZhY2Vib29rIGxpa2UgYnV0dG9uOjo8YnIvPgogICAgICAgIDxjb2RlPntjZ3Rpbnkgc3JjPSRlbnRyeS0+Y2Fub25pY2FsIHV0bV9jYW1wYWlnbj0kZW50cnktPmZpZWxkc2J5bmFtZS5jYW1wYWlnbi0+dmFsdWUgdXRtX21lZGlhPSdzb2NpYWwnIHV0bV9zb3VyY2U9J2ZhY2Vib29rJyBhc3NpZ249J2ZidXJsJ317Y2dmYl9saWtlIGhyZWY9JGZidXJsfTwvY29kZT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXlcJ3MKbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DR0V4dGVuc2lvbnMgPSZndDsgMS40NTwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2NhY2hlPSIwIiAtIC0tIE1pc3NpbmcgTGFuZ3VhZ2VzdHJpbmcgLSBtb2R1bGU6Q0dUaW55IHN0cmluZzpwYXJhbV9ub2NhY2hlLS08L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGdtYWlsLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjIuNzxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0tIE1hcmNoIDIwMTEgLS0gSW5pdGlhbCBSZWxlYXNlPC9saT4KPGxpPlZlcnNpb24gMS4wLjEgLS0gTWFyY2ggMjAxMQogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4IHRvIHRoZSBhc3NpZ24gcGFyYW1ldGVyLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4wLjEgLS0gTWFyY2ggMjAxMQogIDx1bD4KICAgIDxsaT5VcGdyYWRlIHJvdXRpbmUgbm93IHNlYXJjaGVzIGZvciBuZXcgc2VydmljZXMuPC9saT4KICAgIDxsaT5BZGRzIFlvdXJscyBzZXJ2aWNlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4xCiA8dWw+CiAgIDxsaT5OdW1lcm91cyBtaW5vciBpbXByb3ZlbWVudHMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMgogPHVsPgogICA8bGk+QWRkcyBIYXNDYXBhYmlsaXR5IGFuZCBzaG9ydGVuX3VybCBtZXRob2RzLjwvbGk+CiAgIDxsaT5BZGRzIE5vdGlmaWVyIGNhcGFiaWxpdHkuPC9saT4KICAgPGxpPkZpeGVzIGlzLmdkIChBUEkgY2hhbmdlKSAoMS4yLjUpPC9saT4KICAgPGxpPk1pbm9yIGZpeGVzIHRvIHNwZWNpZnlpbmcgYSBzZXJ2aWNlLiAoMS4yLjcpLjwvbGk+CiA8L3VsPgo8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A Simple, Flexible Extendable URL Shortinging Module]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.45</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_save_services.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3NlcnZpY2VzJyk7Cgokc2VydmljZXMgPSBDR1VSTF9TaG9ydGVuZXI6OmdldF9zZXJ2aWNlcyh0cnVlLHRydWUpOwokc2VydmljZXMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHNlcnZpY2VzLCdjbGFzc25hbWUnKTsKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NndGlueV9zZXJ2aWNlcyBTRVQgc29ydGluZyA9ID8sIEFDVElWRSA9ID8KICAgICAgICAgICBXSEVSRSBjbGFzc25hbWUgPSA/JzsKJHNvcnRpbmcgPSAwOwpmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogIGlmKCAhc3RhcnRzd2l0aCgka2V5LCdDR1VSTF9TZXJ2aWNlXycpICkgewogICAgY29udGludWU7CiAgfQogIGlmKCAhZW5kc3dpdGgoJGtleSwnX2FjdGl2ZScpICkgewogICAgY29udGludWU7CiAgfQoKICAkY2xhc3NuYW1lID0gc3Vic3RyKCRrZXksMCxzdHJsZW4oJ19hY3RpdmUnKSotMSk7CiAgaWYoICFpc3NldCgkc2VydmljZXNbJGNsYXNzbmFtZV0pICkgY29udGludWU7CiAgaWYoIGlzc2V0KCRzZXJ2aWNlc1skY2xhc3NuYW1lXVsnc2F2ZWQnXSkgKSBjb250aW51ZTsgICAgCiAgJGFjdGl2ZSA9ICR2YWx1ZTsKCiAgJG9iaiA9IG5ldyAkY2xhc3NuYW1lOwogICRvYmotPnN0b3JlX3NldHRpbmdzKCRwYXJhbXMpOwogICRzZXJ2aWNlc1skY2xhc3NuYW1lXVsnc29ydGluZyddID0gJHNvcnRpbmc7CiAgJHNlcnZpY2VzWyRjbGFzc25hbWVdWydhY3RpdmUnXSA9ICRhY3RpdmU7CiAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNvcnRpbmcrKywkYWN0aXZlLCRjbGFzc25hbWUpKTsKICBpZiggISRkYnIgKQogICAgewogICAgICBkZWJ1Z19kaXNwbGF5KCRkYi0+c3FsLic8YnIvPicuJGRiLT5FcnJvck1zZygpKTsKICAgIH0KICAkc2VydmljZXNbJGNsYXNzbmFtZV1bJ3NhdmVkJ10gPSAxOwp9CiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfc2VydmljZXNfdXBkYXRlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3NldHRpbmdzJyk7CmlmKCBpc3NldCgkcGFyYW1zWydjbGVhcmNhY2hlJ10pICkKICB7CiAgICAkcXVlcnkgPSAnVFJVTkNBVEUgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3RpbnlfY2FjaGUnOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYWNoZWNsZWFyZWQnKSk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VjYWNoZScsKGludCkkcGFyYW1zWyd1c2VjYWNoZSddKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfc2V0dGluZ3NjaGFuZ2VkJykpOwogIH0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSByZXR1cm47CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2VydmljZXMnLCR0aGlzLT5MYW5nKCdzZXJ2aWNlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3NldHRpbmdzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3Rlc3QnLCR0aGlzLT5MYW5nKCd0ZXN0JykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzZXJ2aWNlcycsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zZXJ2aWNlc190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NldHRpbmdzJywkcGFyYW1zKTsKaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3NldHRpbmdzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigndGVzdCcsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl90ZXN0X3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/CGTiny.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTIgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgc2hvcnRlbmluZyBVUkxTLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVGlueSBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpIHsgQ0dVUkxfU21hcnR5Ojppbml0KCk7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjQ1Jyk7IH0KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMi43JzsgfQogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzEuMTInOyB9CiAgZnVuY3Rpb24gR2V0SGVscCgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7IH0KICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdjYWxndXkxMDAwQGdtYWlsLmNvbSc7IH0KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKSB7IHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL2NoYW5nZWxvZy5odG1sLmluYycpOyB9CiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgeyByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsgfQogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOyB9CiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOyB9CgogIGZ1bmN0aW9uIEdldEhlYWRlckh0bWwoKSB7CiAgICAkZm4gPSAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpLicvbGliL2pxdWVyeS50YWJsZWRuZF8wXzUuanMnOwogICAgJG91dHB1dCA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRmbi4nIj48L3NjcmlwdD4nLiJcbiI7CiAgICByZXR1cm4gJG91dHB1dDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBIYXNDYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCAkcGFyYW1zID0gYXJyYXkoKSkKICB7CiAgICBpZiggJGNhcGFiaWxpdHkgPT0gJ3Nob3J0ZW5fdXJsJyApIHJldHVybiBUUlVFOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW5fdXJsKCR1cmwpCiAgewogICAgcmV0dXJuIENHVVJMX1Nob3J0ZW5lcjo6c2hvcnQoJHVybCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2hvcnRlbl91cmxzX2luX3RleHQoJHRleHQpCiAgewogICAgJGZuID0gZnVuY3Rpb24oJG1hdGNoZXMpIHsKICAgICAgaWYoIGlzc2V0KCRtYXRjaGVzWzBdKSApIHsKCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHVElOWSk7CglyZXR1cm4gJG1vZC0+c2hvcnRlbl91cmwoJG1hdGNoZXNbMF0pOwogICAgICB9CiAgICAgIHJldHVybiAkbWF0Y2hlc1swXTsKICAgIH07CgogICAgJHJlZ2V4ID0nQCgoaHR0cHM/Oi8vKShbLVx3XStcLlstXHdcLl0rKStcdyg6XGQrKT8oLyhbLVx3L19cLlwsXSooXD9cUyspPyk/KSopQCc7CiAgICByZXR1cm4gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCRyZWdleCwkZm4sJHRleHQpOwogIH0KfQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/changelog.html.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+VmVyc2lvbiAxLjAgLS0gTWFyY2ggMjAxMSAtLSBJbml0aWFsIFJlbGVhc2U8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtLSBNYXJjaCAyMDExCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXggdG8gdGhlIGFzc2lnbiBwYXJhbWV0ZXIuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtLSBNYXJjaCAyMDExCiAgPHVsPgogICAgPGxpPlVwZ3JhZGUgcm91dGluZSBub3cgc2VhcmNoZXMgZm9yIG5ldyBzZXJ2aWNlcy48L2xpPgogICAgPGxpPkFkZHMgWW91cmxzIHNlcnZpY2UuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjEKIDx1bD4KICAgPGxpPk51bWVyb3VzIG1pbm9yIGltcHJvdmVtZW50cy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4yCiA8dWw+CiAgIDxsaT5BZGRzIEhhc0NhcGFiaWxpdHkgYW5kIHNob3J0ZW5fdXJsIG1ldGhvZHMuPC9saT4KICAgPGxpPkFkZHMgTm90aWZpZXIgY2FwYWJpbGl0eS48L2xpPgogICA8bGk+Rml4ZXMgaXMuZ2QgKEFQSSBjaGFuZ2UpICgxLjIuNSk8L2xpPgogICA8bGk+TWlub3IgZml4ZXMgdG8gc3BlY2lmeWluZyBhIHNlcnZpY2UuICgxLjIuNykuPC9saT4KIDwvdWw+CjwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/class.slinky.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKQ29weXJpZ2h0IChjKSAyMDA5LCBCZWF1IExlYmVucwpBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgoKIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIAogICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCAKICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAtIE5laXRoZXIgdGhlIG5hbWUgb2YgRGVudGVkIFJlYWxpdHkgbm9yIHRoZSBuYW1lcyBvZiB0aGUgYXV0aG9ycyBtYXkgYmUgdXNlZCAKICAgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgCiAgIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgpBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwpMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQJT04KQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQJCihJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoJCiovCgovLyBSZXR1cm4gb3B0aW9ucyBmb3IgU2xpbmt5X1NlcnZpY2UtPnVybF9nZXQoKSBhbmQgLT51cmxfcG9zdCgpCmRlZmluZSggJ1NMSU5LWV9CT0RZJywgMSApOyAvLyBEZWZhdWx0CmRlZmluZSggJ1NMSU5LWV9IRUFERVJTJywgMiApOyAvLyBOb3QgaW1wbGVtZW50ZWQgeWV0CmRlZmluZSggJ1NMSU5LWV9GSU5BTF9VUkwnLCAzICk7IC8vIERlZmF1bHQgZm9yIGxlbmd0aGVuaW5nIFVSTHMKCi8vIFNvIHRoYXQgc2VydmljZXMgbWF5IGRlY2lkZSB3aGF0IHRvIGRvIHdpdGggdXMKZGVmaW5lKCAnU0xJTktZX1VTRVJfQUdFTlQnLCAnU2xpbmt5IHYxLjAgK2h0dHA6Ly9kZW50ZWRyZWFsaXR5LmNvbS5hdS9wcm9qZWN0cy9zbGlua3kvJyApOwoKLy8gSG93IG1hbnkgc2Vjb25kcyB1bnRpbCByZW1vdGUgcmVxdWVzdHMgc2hvdWxkIGJlIGN1dD8KZGVmaW5lKCAnU0xJTktZX1RJTUVPVVQnLCAxMCApOwoKLyoqCiAqIFNsaW5reSBhbGxvd3MgeW91IHRvIGdvIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gImxvbmciIGFuZCBzaG9ydGVuZWQgVVJMcyAKICogdXNpbmcgcG9wdWxhciBVUkwgc2hvcnRlbmluZyBzZXJ2aWNlcy4KICogCiAqIFNsaW5reSBhc3N1bWVzIHlvdSBoYXZlIGNVUkwgaW5zdGFsbGVkIGFuZCB3b3JraW5nLCBhbmQgcmVxdWlyZXMgdGhlIEpTT04KICogZXh0ZW5zaW9uIGluc3RhbGxlZCBpZiB5b3UncmUgd29ya2luZyB3aXRoIGEgc2VydmljZSB0aGF0IHVzZXMgSlNPTi4KICogCiAqIFNsaW5reSB3aWxsIE9OTFkgd29yayB3aXRoIFBIUDUrCiAqIAogKiBJdCBzdXBwb3J0cyBzb21lIG9mIHRoZSBtb3JlIHBvcHVsYXIgc2VydmljZXMsIHdpdGggZWFzeSBleHRlbnNpYmlsaXR5IGZvcgogKiBhZGRpbmcgeW91ciBvd24gcmVsYXRpdmVseSBlYXNpbHkuIEl0IGRlZmF1bHRzIHRvIHVzaW5nIFRpbnlVUkwKICogZm9yIHNob3J0ZW5pbmcgVVJMcy4gSWYgeW91IHdhbnQgdG8gdXNlIHNvbWUgb2YgdGhlIG90aGVyIHNlcnZpY2VzLCB5b3UgbmVlZAogKiB0byBzZXQgc29tZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYmVmb3JlIGFjdHVhbGx5IHNob3J0ZW5pbmcvbGVuZ3RoZW5pbmcKICogVVJMcy4gSSdkIHN0cm9uZ2x5IHN1Z2dlc3QgdGhhdCB5b3UgY2FjaGUgcmVzdWx0cyB1c2luZyBtZW1jYWNoZWQsIGEgbG9jYWwKICogREIgb3Igd2hhdGV2ZXIgdG8gYXZvaWQgaGF2aW5nIHRvIGhpdCBBUElzIGV0YyBldmVyeSB0aW1lIHlvdSBlbmNvdW50ZXIgYQogKiBVUkwuCiAqIAogKiBTbGlua3kgc3VwcG9ydHMgc2hvcnRlbmluZywgYW5kIGF1dG8tZGV0ZWN0aW9uIChmb3IgbGVuZ3RoZW5pbmcgVVJMcykgCiAqIHVzaW5nIHRoZXNlIHNlcnZpY2VzOgogKiAtIEJpdC5seQogKiAtIFRyLmltCiAqIC0gVGlueVVSTAogKiAtIElzLkdkCiAqIC0gRm9uLmdzCiAqIC0gTWljdXJsLmNvbQogKiAtIHVyMS5jYQogKiAtIFB0aXR1cmwKICogLSBUaWdodHVybAogKiAtIDJ0dS51cwogKiAtIFNuaXByIC8gU25pcHVybCAvIFNudXJsLmNvbSAvIFNuLmltCiAqIAogKiAKICogVG8gdXNlIFNsaW5reToKICogCiAqICRzbGlua3kgPSBuZXcgU2xpbmt5KCAnaHR0cDovL2RlbnRlZHJlYWxpdHkuY29tLmF1LycgKTsKICogLSBDcmVhdGVzIGEgbmV3IFNsaW5reSBpbnN0YW5jZSwgd2lsbCBkZWZhdWx0IHRvIHVzaW5nIFRpbnlVUkwgZm9yIC0+c2hvcnQoKTsKICogCiAqICRzbGlua3kgPSBuZXcgU2xpbmt5KCAnaHR0cDovL2RlbnRlZHJlYWxpdHkuY29tLmF1JywgbmV3IFNsaW5reV9CaXRseSgpICk7CiAqIC0gQ3JlYXRlcyBuZXcgU2xpbmt5LCBmb3JjZXMgdXNlIG9mIEJpdC5seSBmb3IgLT5zaG9ydCgpOwogKiAKICogJHNsaW5reSA9IG5ldyBTbGlua3koICdodHRwOi8vZGVudGVkcmVhbGl0eS5jb20uYXUvJyApOwogKiBlY2hvICRzbGlua3ktPnNob3J0KCk7CiAqIC0gZWNob3MgdGhlIHNob3J0IHZlcnNpb24gb2YgaHR0cDovL2RlbnRlZHJlYWxpdHkuY29tLmF1LyAoZGVmYXVsdCB0byBUaW55VVJMKQogKiAKICogJHNsaW5reSA9IG5ldyBTbGlua3koICdodHRwOi8vdGlueXVybC5jb20vanc1c2gnICk7CiAqIGVjaG8gJHNsaW5reS0+bG9uZygpOwogKiAtIGVjaG9zIG91dCB0aGUgbG9uZyB2ZXJzaW9uIG9mIGh0dHA6Ly90aW55dXJsLmNvbS9qdzVzaCAod2hpY2ggc2hvdWxkIGJlIGh0dHA6Ly9kZW50ZWRyZWFsaXR5LmNvbS5hdS8pCiAqIAogKiAkc2xpbmt5ID0gbmV3IFNsaW5reSggJ2h0dHA6Ly9kZW50ZWRyZWFsaXR5LmNvbS5hdS8nICk7CiAqIGVjaG8gJHNsaW5reS0+bG9uZygpOwogKiAtIEF0dGVtcHRzIHRvIGxlbmd0aGVuIHRoZSBVUkwsIGJ1dCB3aWxsIG5vdCBhdXRvLWRldGVjdCB3aGljaCBzZXJ2aWNlIGl0IGlzCiAqICAgc28gaXQgd2lsbCBqdXN0IG91dHB1dCB0aGUgb3JpZ2luYWwgVVJMLiBVc2VmdWwgZm9yIGFsd2F5cyBhdHRlbXB0aW5nIHRvCiAqICAgbGVuZ3RoZW4gYW55IFVSTCB5b3UgY29tZSBhY3Jvc3MgKGZhaWxzIGdyYWNlZnVsbHkpCiAqIAogKiAkc2xpbmt5ID0gbmV3IFNsaW5reSggJ2h0dHA6Ly9kZW50ZWRyZWFsaXR5LmNvbS5hdS8nICk7CiAqICRzbGlua3ktPnNldF9jYXNjYWRlKCBhcnJheSggbmV3IFNsaW5reV9UcmltKCksIG5ldyBTbGlua3lfSXNHZCgpLCBuZXcgU2xpbmt5X1RpbnlVUkwoKSApICk7CiAqIGVjaG8gJHNsaW5reS0+c2hvcnQoKTsKICogLSBVc2VzIHRoZSBwb3dlcmZ1bCBjYXNjYWRlIG1vZGUgdG8gbWFrZSBzdXJlIHRoYXQgd2UgZ2V0IGEgc2hvcnQgVVJMIGZyb20gCiAqICAgVHIuaW0sIElzLkdkIG9yIFRpbnlVUkwgKGluIHRoYXQgb3JkZXIpLgogKiAKICogU2VlIHNwZWNpZmljIHNlcnZpY2UgY2xhc3MgZGVmaW5pdGlvbnMgYmVsb3cgZm9yIGV4YW1wbGVzIG9mIGhvdyB0byB1c2UgdGhlbSwKICogYXMgc29tZSBzZXJ2aWNlcyBhbGxvdyAob3IgcmVxdWlyZSkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGJlZm9yZSB5b3UgY2FuIHVzZQogKiB0aGVtIChmb3IgYXV0aGVudGljYXRpb24gZXRjKS4KICogCiAqIFRvIHVzZSBhIGRpZmZlcmVudCBzZXJ2aWNlIHdpdGggU2xpbmt5LCBqdXN0IGNyZWF0ZSB5b3VyIG93biBjbGFzcyBhbmQKICogZXh0ZW5kIFNsaW5reV9TZXJ2aWNlKCkuIE1ha2Ugc3VyZSB5b3UgaW1wbGVtZW50IHVybF9pc19zaG9ydCgpLCB1cmxfaXNfbG9uZygpLAogKiBtYWtlX3Nob3J0KCkgYW5kIG1ha2VfbG9uZygpLiBJZiB5b3UgbmVlZCB0byBHRVQgb3IgUE9TVCBhIFVSTCwgeW91IGNhbiB1c2UKICogLT51cmxfZ2V0KCkgYW5kIC0+dXJsX3Bvc3QoKSwgd2hpY2ggeW91ciBjbGFzcyB3aWxsIGhhdmUgaW5oZXJpdGVkLgoqKi8KY2xhc3MgU2xpbmt5IHsKCXByaXZhdGUgdmFyICR1cmwgICAgID0gZmFsc2U7Cglwcml2YXRlIHZhciAkc2VydmljZSA9IGZhbHNlOwoJcHJpdmF0ZSB2YXIgJGNhc2NhZGUgPSBmYWxzZTsKCQoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoICR1cmwgPSBmYWxzZSwgJHNlcnZpY2UgPSBmYWxzZSApIHsKCQkkdGhpcy0+dXJsICAgICA9ICR1cmw7CgkJJHRoaXMtPnNlcnZpY2UgPSAkc2VydmljZTsKCX0KCQoJLyoqCgkgKiBTcGVjaWZ5IHdoaWNoIFVSTCBTZXJ2aWNlIHRvIHVzZQoJICoKCSAqIEBwYXJhbSBTbGlua3lfU2VydmljZSAkc2VydmljZSBQYWNrYWdlZCBvciBjdXN0b20gU2VydmljZSBvYmplY3QKCSAqIEByZXR1cm4gdm9pZAoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0X3NlcnZpY2UoICRzZXJ2aWNlID0gZmFsc2UgKSB7CgkJaWYgKCBpc19vYmplY3QoICRzZXJ2aWNlICkgKSB7CgkJCSR0aGlzLT5zZXJ2aWNlID0gJHNlcnZpY2U7CgkJfQoJfQoJCgkvKioKCSAqIElmIHlvdSBwYXNzIGFuIGFycmF5IG9mIFNsaW5reV9TZXJ2aWNlIG9iamVjdHMgdG8gdGhpcyBtZXRob2QsIHRoZXkgd2lsbAoJICogYmUgdXNlZCBpbiBvcmRlciB0byB0cnkgdG8gZ2V0IGEgc2hvcnQgVVJMLCBzbyBpZiBvbmUgZmFpbHMsIGl0IHdpbGwKCSAqIHRyeSB0aGUgbmV4dCBhbmQgc28gb24sIHVudGlsIGl0IGdldHMgYSB2YWxpZCBzaG9ydCBVUkwsIG9yIGl0IHJ1bnMKCSAqIG91dCBvZiBvcHRpb25zLgoJICogCgkgKiBAcGFyYW0gYXJyYXkgJHNlcnZpY2VzIExpc3Qgb2YgU2xpbmt5X1NlcnZpY2Ugb2JqZWN0cyBhcyBhbiBhcnJheQoJKiovCglwdWJsaWMgZnVuY3Rpb24gc2V0X2Nhc2NhZGUoICRzZXJ2aWNlcyA9IGZhbHNlICkgewoJCWlmICggISRzZXJ2aWNlcyB8fCAhaXNfYXJyYXkoICRzZXJ2aWNlcyApICkKCQkJcmV0dXJuIGZhbHNlOwoJCQoJCSR0aGlzLT5jYXNjYWRlID0gJHNlcnZpY2VzOwoJfQoJCgkvKioKCSAqIEd1ZXNzIHRoZSBVUkwgc2VydmljZSB0byB1c2UgZnJvbSBrbm93biBkb21haW5zIG9mIHNob3J0IFVSTHMKCSAqCgkgKiBAcGFyYW0gc3RyaW5nICR1cmwgCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBzZXRfc2VydmljZV9mcm9tX3VybCggJHVybCA9IGZhbHNlICkgewoJCWlmICggISR1cmwgKQoJCQkkdXJsID0gJHRoaXMtPnVybDsKCQkKCQkkaG9zdCA9IHBhcnNlX3VybCggJHVybCwgUEhQX1VSTF9IT1NUICk7CgkJc3dpdGNoICggc3RyX3JlcGxhY2UoICd3d3cuJywgJycsICRob3N0ICkgKSB7CgkJCWNhc2UgJ2JpdC5seSc6CgkJCQlpZiAoIGNsYXNzX2V4aXN0cyggJ1NsaW5reV9CaXRseScgKSApIHsKCQkJCQkkdGhpcy0+c2VydmljZSA9IG5ldyBTbGlua3lfQml0bHkoKTsKCQkJCQlicmVhazsKCQkJCX0KCQkJY2FzZSAndHIuaW0nOgoJCQkJaWYgKCBjbGFzc19leGlzdHMoICdTbGlua3lfVHJpbScgKSApIHsKCQkJCQkkdGhpcy0+c2VydmljZSA9IG5ldyBTbGlua3lfVHJpbSgpOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQljYXNlICd0aW55dXJsLmNvbSc6CgkJCQlpZiAoIGNsYXNzX2V4aXN0cyggJ1NsaW5reV9UaW55VVJMJyApICkgewoJCQkJCSR0aGlzLT5zZXJ2aWNlID0gbmV3IFNsaW5reV9UaW55VVJMKCk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCWNhc2UgJ2lzLmdkJzoKCQkJCWlmICggY2xhc3NfZXhpc3RzKCAnU2xpbmt5X0lzR2QnICkgKSB7CgkJCQkJJHRoaXMtPnNlcnZpY2UgPSBuZXcgU2xpbmt5X0lzR2QoKTsKCQkJCQlicmVhazsKCQkJCX0KCQkJY2FzZSAnZm9uLmdzJzoKCQkJCWlmICggY2xhc3NfZXhpc3RzKCAnU2xpbmt5X0ZvbmdzJyApICkgewoJCQkJCSR0aGlzLT5zZXJ2aWNlID0gbmV3IFNsaW5reV9Gb25ncygpOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQljYXNlICdtaWN1cmwuY29tJzoKCQkJCWlmICggY2xhc3NfZXhpc3RzKCAnU2xpbmt5X01pY3VybCcgKSApIHsKCQkJCQkkdGhpcy0+c2VydmljZSA9IG5ldyBTbGlua3lfTWljdXJsKCk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCWNhc2UgJ3VyMS5jYSc6CgkJCQlpZiAoIGNsYXNzX2V4aXN0cyggJ1NsaW5reV9VcjFjYScgKSApIHsKCQkJCQkkdGhpcy0+c2VydmljZSA9IG5ldyBTbGlua3lfVXIxY2EoKTsKCQkJCQlicmVhazsKCQkJCX0KCQkJY2FzZSAncHRpdHVybC5jb20nOgoJCQkJaWYgKCBjbGFzc19leGlzdHMoICdTbGlua3lfUHRpdFVSTCcgKSApIHsKCQkJCQkkdGhpcy0+c2VydmljZSA9IG5ldyBTbGlua3lfUHRpdFVSTCgpOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQljYXNlICd0aWdodHVybC5jb20nOgoJCQljYXNlICcydHUudXMnOgoJCQkJaWYgKCBjbGFzc19leGlzdHMoICdTbGlua3lfVGlnaHRVUkwnICkgKSB7CgkJCQkJJHRoaXMtPnNlcnZpY2UgPSBuZXcgU2xpbmt5X1RpZ2h0VVJMKCk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCWNhc2UgJ3NuaXByLmNvbSc6CgkJCWNhc2UgJ3NuaXB1cmwuY29tJzoKCQkJY2FzZSAnc251cmwuY29tJzoKCQkJY2FzZSAnc24uaW0nOgoJCQkJaWYgKCBjbGFzc19leGlzdHMoICdTbGlua3lfU25pcHInICkgKSB7CgkJCQkJJHRoaXMtPnNlcnZpY2UgPSBuZXcgU2xpbmt5X1NuaXByKCk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCWRlZmF1bHQ6CgkJCQkkdGhpcy0+c2VydmljZSA9IG5ldyBTbGlua3lfRGVmYXVsdCgpOwoJCQkJYnJlYWs7CgkJfQoJfQoJCgkvKioKCSAqIFRha2UgYSBsb25nIFVSTCBhbmQgbWFrZSBpdCBzaG9ydC4gV2lsbCBhdm9pZCAicmUtc2hvcnRlbmluZyIgYSBVUkwgaWYgaXQKCSAqIGFscmVhZHkgc2VlbXMgdG8gYmUgc2hvcnQuCgkgKgoJICogQHBhcmFtIHN0cmluZyAkdXJsIE9wdGlvbmFsIFVSTCB0byBzaG9ydGVuLCBvdGhlcndpc2UgdXNlICR0aGlzLT51cmwKCSAqIEByZXR1cm4gVGhlIHNob3J0IHZlcnNpb24gb2YgdGhlIFVSTAoJICovCglwdWJsaWMgZnVuY3Rpb24gc2hvcnQoICR1cmwgPSBmYWxzZSApIHsKCQlpZiAoICR1cmwgKQoJCQkkdGhpcy0+dXJsID0gJHVybDsKCQkJCgkJaWYgKCAhJHRoaXMtPnNlcnZpY2UgKQoJCQkkdGhpcy0+c2V0X3NlcnZpY2UoIG5ldyBTbGlua3lfVGlueVVSTCgpICk7IC8vIERlZmF1bHRzIHRvIHRpbnl1cmwgYmVjYXVzZSBpdCBkb2Vzbid0IHJlcXVpcmUgYW55IGNvbmZpZ3VyYXRpb24KCQkKCQlpZiAoICEkdGhpcy0+Y2FzY2FkZSApCgkJCSR0aGlzLT5jYXNjYWRlID0gYXJyYXkoICR0aGlzLT5zZXJ2aWNlICk7IC8vIFVzZSBhIHNpbmdsZSBzZXJ2aWNlIGluIGNhc2NhZGUgbW9kZQoJCQoJCWZvcmVhY2ggKCAkdGhpcy0+Y2FzY2FkZSBhcyAkc2VydmljZSApIHsKCQkJaWYgKCAkc2VydmljZS0+dXJsX2lzX3Nob3J0KCAkdGhpcy0+dXJsICkgKQoJCQkJcmV0dXJuIHRyaW0oICR0aGlzLT51cmwgKTsgLy8gSWRlbnRpZmllZCBhcyBhbHJlYWR5IHNob3J0LCB1c2luZyB0aGlzIHNlcnZpY2UKCgkJCSRyZXNwb25zZSA9IHRyaW0oICRzZXJ2aWNlLT5tYWtlX3Nob3J0KCAkdGhpcy0+dXJsICkgKTsKCQkJaWYgKCAkcmVzcG9uc2UgJiYgJHRoaXMtPnVybCAhPSAkcmVzcG9uc2UgKQoJCQkJcmV0dXJuIHRyaW0oICRyZXNwb25zZSApOwoJCX0KCQkKCQlyZXR1cm4gJHRoaXMtPnVybDsgLy8gSWYgYWxsIGVsc2UgZmFpbHMsIGp1c3Qgc2VuZCBiYWNrIHRoZSBVUkwgd2UgYWxyZWFkeSBrbm93IGFib3V0Cgl9CgkKCS8qKgoJICogVGFrZSBhIHNob3J0IFVSTCBhbmQgbWFrZSBpdCBsb25nICgicmVzb2x2ZSIgaXQpLgoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJHVybCBUaGUgc2hvcnQgVVJMCgkgKiBAcmV0dXJuIEEgbG9uZyBVUkwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGxvbmcoICR1cmwgPSBmYWxzZSApIHsKCQlpZiAoICR1cmwgKQoJCQkkdGhpcy0+dXJsID0gJHVybDsKCQkJCgkJaWYgKCAhJHRoaXMtPnNlcnZpY2UgKQoJCQkkdGhpcy0+c2V0X3NlcnZpY2VfZnJvbV91cmwoKTsKCQkKCQlpZiAoICR0aGlzLT5zZXJ2aWNlLT51cmxfaXNfbG9uZyggJHRoaXMtPnVybCApICkKCQkJcmV0dXJuIHRyaW0oICR0aGlzLT51cmwgKTsKCQkKCQlyZXR1cm4gdHJpbSggJHRoaXMtPnNlcnZpY2UtPm1ha2VfbG9uZyggJHRoaXMtPnVybCApICk7Cgl9Cn0KCi8qKgogKiBVc2UgdGhpcyBjbGFzcyB0byBjcmVhdGUgYSBTZXJ2aWNlIGltcGxlbWVudGF0aW9uIGZvciB5b3VyIG93biBVUkwgCiAqIHNob3J0ZW5pbmcgc2VydmljZS4gRXh0ZW5kIHRoZSBjbGFzcyBhbmQgY3VzdG9taXplIG1ldGhvZHMgdG8gc3VpdCB5b3VyIAogKiBzZXJ2aWNlLiBOb3RlIHRoYXQgaXQgaXMgYW4gImFic3RyYWN0IiBjbGFzcywgc28gdGhlcmUgYXJlIGNlcnRhaW4gbWV0aG9kcyAKICogd2hpY2ggeW91ICptdXN0KiBkZWZpbmUuCioqLwphYnN0cmFjdCBjbGFzcyBTbGlua3lfU2VydmljZSB7CgkKCS8qKgoJICogRGV0ZXJtaW5lLCBiYXNlZCBvbiB0aGUgaW5wdXQgVVJMLCBpZiBpdCdzIGFscmVhZHkgYSBzaG9ydCBVUkwsIGZyb20KCSAqIHRoaXMgcGFydGljdWxhciBzZXJ2aWNlLiBlLmcuIGEgQml0Lmx5IFVSTCBjb250YWlucyAiYml0Lmx5LyIKCSoqLwoJYWJzdHJhY3QgZnVuY3Rpb24gdXJsX2lzX3Nob3J0KCAkdXJsICk7CgkKCS8qKgoJICogRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSAibG9uZyIgVVJMIChqdXN0IG1lYW5zIGl0IGhhc24ndCBiZWVuIHNob3J0ZW5lZCkKCSAqIGFscmVhZHkuIGUuZy4gYSBuby1CaXQubHkgVVJMIHdvdWxkIE5PVCBjb250YWluICJiaXQubHkvIgoJKiovCglhYnN0cmFjdCBmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApOwoKCS8qKgoJICogQSBjYWxsYmFjayBmb3IgYSBtb2R1bGUgdG8gdXNlIHRvIGF1dGhlbnRpY2F0ZS4KCSAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgbWFrZV9zaG9ydCBhbmQgbWFrZV9sb25nIG1ldGhvZHMsIGFuZCBjYW4gYmUgCgkgKiB1c2VkIHRvIHNldCBhbnkgdmFyaWFibGVzIG5lZWRlZCBieSB0aGUgY2xhc3MgZm9yIGF1dGhlbnRpY2F0aW9uLgoJICoKCSAqIEBhdXRob3IgY2FsZ3V5MTAwMAoJICovCglwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCkge30KCgkvKioKCSAqIEhhbmRsZSB0YWtpbmcgdGhlICR1cmwgYW5kIGNvbnZlcnRpbmcgaXQgdG8gYSBzaG9ydCBVUkwgdmlhIHdoYXRldmVyCgkgKiBtZWFucyBpcyBwcm92aWRlZCBhdCB0aGUgcmVtb3RlIHNlcnZpY2UuCgkqKi8KCWFic3RyYWN0IGZ1bmN0aW9uIG1ha2Vfc2hvcnQoICR1cmwgKTsKCQoJLyoqCgkgKiBSZXR1cm4gdGhlIGxvbmcvZXhwYW5kZWQgdmVyc2lvbiBvZiBhIFVSTCB2aWEgYW55IEFQSSBtZWFucyBhdmFpbGFibGUKCSAqIGZyb20gdGhpcyBzZXJ2aWNlLiBBcyBhIGZhbGxiYWNrLCB5b3UgbWlnaHQKCSAqIGNvbnNpZGVyIGp1c3QgZm9sbG93aW5nIHRoZSBVUkwgYW5kIHVzaW5nIFNMSU5LWV9GSU5BTF9VUkwgYXMgdGhlIAoJICogcmV0dXJuIG1ldGhvZCBmcm9tIGEgJHRoaXMtPnVybF9nZXQoKSBjYWxsIHRvIGZpbmQgb3V0LgoJICogCgkgKiBUaGlzIG9uZSBpcyBvcHRpb25hbCBmb3IgU2VydmljZXMgZXh0ZW5kaW5nIHRoaXMgY2xhc3MsIGlmIHRoZXkgZG9uJ3QKCSAqIHRoZW4gdGhlIGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiB3aWxsIHdvcmsgb24gbW9zdCBzZXJ2aWNlcyBhbnl3YXkuCgkqKi8KCXB1YmxpYyBmdW5jdGlvbiBtYWtlX2xvbmcoICR1cmwgKSB7CgkJcmV0dXJuICR0aGlzLT51cmxfZ2V0KCAkdXJsLCBTTElOS1lfRklOQUxfVVJMICk7Cgl9CgkKCS8qKgoJICogTWV0aG9kIGZvciBnZXR0aW5nIHByb3BlcnRpZXMgdGhhdCB5b3UgbWlnaHQgbmVlZCBkdXJpbmcgdGhlIHByb2Nlc3MKCSAqIG9mIHNob3J0ZW5pbmcvbGVuZ3RoZW5pbmcgYSBVUkwgKGUuZy4gYXV0aCBjcmVkZW50aWFscykKCSoqLwoJcHVibGljIGZ1bmN0aW9uIGdldCggJHByb3AgKSB7CgkJaWYgKCBlbXB0eSggJHRoaXMtPiRwcm9wICkgKQoJCQlyZXR1cm4gbnVsbDsKCQkJCgkJcmV0dXJuICR0aGlzLT4kcHJvcDsKCX0KCQoJLyoqCgkgKiBNZXRob2QgZm9yIHNldHRpbmcgcHJvcGVydGllcyB0aGF0IHlvdSBtaWdodCBuZWVkIGR1cmluZyB0aGUgcHJvY2VzcwoJICogb2Ygc2hvcnRlbmluZy9sZW5ndGhlbmluZyBhIFVSTCAoZS5nLiBhdXRoIGNyZWRlbnRpYWxzKQoJKiovCglwdWJsaWMgZnVuY3Rpb24gc2V0KCAkcHJvcCwgJHZhbCApIHsKCQkkdGhpcy0+JHByb3AgPSAkdmFsOwoJfQoJCgkvKioKCSAqIEludGVybmFsIGhlbHBlciBmb3IgcGVyZm9ybWluZyBhIEdFVCByZXF1ZXN0IG9uIGEgcmVtb3RlIFVSTC4KCSAqIAoJICogQHBhcmFtIHN0cmluZyAkdXJsIFRoZSBVUkwgdG8gR0VUCgkgKiBAcGFyYW0gY29uc3QgJHJldHVybiBUaGUgcmV0dXJuIG1ldGhvZCBbIFNMSU5LWV9CT0RZIHwgU0xJTktZX0ZJTkFMX1VSTCB8IFNMSU5LWV9IRUFERVJTIF0KCSAqIEByZXR1cm4gTWl4ZWQsIGJhc2VkIG9uIHRoZSAkcmV0dXJuIHZhciBwYXNzZWQgaW4uCgkqKi8KCXByb3RlY3RlZCBmdW5jdGlvbiB1cmxfZ2V0KCAkdXJsLCAkcmV0dXJuID0gU0xJTktZX0JPRFkgKSB7CgkJJGNoID0gY3VybF9pbml0KCAkdXJsICk7CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsIFNMSU5LWV9VU0VSX0FHRU5UICk7CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCApOwkJCS8vIERvbid0IHN0cmVzcyBhYm91dCBTU0wgdmFsaWRpdHkKCQljdXJsX3NldG9wdCggJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxICk7CQkJLy8gUmV0dXJuIHRoZSByZXNwb25zZSwgZG9uJ3Qgb3V0cHV0IGl0CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9USU1FT1VULCBTTElOS1lfVElNRU9VVCApOwkvLyBMaW1pdCBob3cgbG9uZyB3ZSdsbCB3YWl0IGZvciBhIHJlc3BvbnNlCgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSApOwkJCS8vIEFsbG93IGZvbGxvd2luZyBvZiByZWRpcmVjdGlvbnMKCQkkciAgPSBjdXJsX2V4ZWMoICRjaCApOwoJCWlmICggY3VybF9lcnJubyggJGNoICkgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJLy8gUmV0dXJuIHdoYXRldmVyIHdlIHdlcmUgYXNrZWQgZm9yCgkJaWYgKCBTTElOS1lfRklOQUxfVVJMID09ICRyZXR1cm4gKQoJCQlyZXR1cm4gY3VybF9nZXRpbmZvKCAkY2gsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwgKTsKCQllbHNlIGlmICggU0xJTktZX0JPRFkgPT0gJHJldHVybiApCgkJCXJldHVybiAkcjsKCQkKCQlyZXR1cm4gZmFsc2U7Cgl9CgkKCS8qKgoJICogSW50ZXJuYWwgaGVscGVyIGZvciBwZXJmb3JtaW5nIGEgUE9TVCByZXF1ZXN0IG9uIGEgcmVtb3RlIFVSTC4KCSAqIAoJICogQHBhcmFtIHN0cmluZyAkdXJsIFRoZSBVUkwgdG8gUE9TVCB0bwoJICogQHBhcmFtIGFycmF5ICRwYXlsb2FkIEFycmF5IGNvbnRhaW5pbmcgbmFtZS92YWx1ZSBwYWlycyBvZiB0aGUgcGFyYW1ldGVycyB0byBQT1NUCgkgKiBAcGFyYW0gY29uc3QgJHJldHVybiBUaGUgcmV0dXJuIG1ldGhvZCBbIFNMSU5LWV9CT0RZIHwgU0xJTktZX0ZJTkFMX1VSTCB8IFNMSU5LWV9IRUFERVJTIF0KCSAqIEByZXR1cm4gTWl4ZWQsIGJhc2VkIG9uIHRoZSAkcmV0dXJuIHZhciBwYXNzZWQgaW4uCgkqKi8KCXByb3RlY3RlZCBmdW5jdGlvbiB1cmxfcG9zdCggJHVybCwgJHBheWxvYWQgPSBhcnJheSgpLCAkcmV0dXJuID0gU0xJTktZX0JPRFkgKSB7CgkJJGNoID0gY3VybF9pbml0KCAkdXJsICk7CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlICk7CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAoYXJyYXkpICRwYXlsb2FkICk7CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsIFNMSU5LWV9VU0VSX0FHRU5UICk7CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCApOwkJCS8vIERvbid0IHN0cmVzcyBhYm91dCBTU0wgdmFsaWRpdHkKCQljdXJsX3NldG9wdCggJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxICk7CQkJLy8gUmV0dXJuIHRoZSByZXNwb25zZSwgZG9uJ3Qgb3V0cHV0IGl0CgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9USU1FT1VULCBTTElOS1lfVElNRU9VVCApOwkvLyBMaW1pdCBob3cgbG9uZyB3ZSdsbCB3YWl0IGZvciBhIHJlc3BvbnNlCgkJY3VybF9zZXRvcHQoICRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSApOwkJCS8vIEFsbG93IGZvbGxvd2luZyBvZiByZWRpcmVjdGlvbnMKCQkkciAgPSBjdXJsX2V4ZWMoICRjaCApOwoJCWlmICggY3VybF9lcnJubyggJGNoICkgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJLy8gUmV0dXJuIHdoYXRldmVyIHdlIHdlcmUgYXNrZWQgZm9yCgkJaWYgKCBTTElOS1lfRklOQUxfVVJMID09ICRyZXR1cm4gKQoJCQlyZXR1cm4gY3VybF9nZXRpbmZvKCAkY2gsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwgKTsKCQllbHNlIGlmICggU0xJTktZX0JPRFkgPT0gJHJldHVybiApCgkJCXJldHVybiAkcjsKCQkKCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KCi8vIFRoaXMgZGVmYXVsdCBzZXJ2aWNlIGlzIHVzZWQgaW4gY2FzZXMgd2hlbiB5b3UgdHJ5IHRvIGRvIHNvbWV0aGluZyBiYXNlZAovLyBvbiBhdXRvLWRldGVjdGlvbiwgYnV0IHdlIGNhbid0IGRldGVjdCBhbnl0aGluZy4gSXQgd2lsbCBhbHNvIHJlc29sdmUgVVJMcwovLyB0byB0aGVpciAibG9uZyIgdmVyc2lvbiBieSBmb2xsb3dpbmcgYWxsIHJlZGlyZWN0cy4KY2xhc3MgU2xpbmt5X0RlZmF1bHQgZXh0ZW5kcyBTbGlua3lfU2VydmljZSB7CglmdW5jdGlvbiB1cmxfaXNfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJCglmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgkKCWZ1bmN0aW9uIG1ha2Vfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuICR1cmw7Cgl9Cn0KCi8vIEltcGxlbWVudGF0aW9uIG9mIFRpbnlVUkwgYXMgYSBTbGlua3kgU2VydmljZQpjbGFzcyBTbGlua3lfVGlueVVSTCBleHRlbmRzIFNsaW5reV9TZXJ2aWNlIHsKCWZ1bmN0aW9uIHVybF9pc19zaG9ydCggJHVybCApIHsKCQlyZXR1cm4gc3RyaXN0ciggJHVybCwgJ3Rpbnl1cmwuY29tLycgKTsKCX0KCQoJZnVuY3Rpb24gdXJsX2lzX2xvbmcoICR1cmwgKSB7CgkJcmV0dXJuICFzdHJpc3RyKCAkdXJsLCAndGlueXVybC5jb20vJyApOwoJfQoJCglmdW5jdGlvbiBtYWtlX3Nob3J0KCAkdXJsICkgewoJCXJldHVybiAkdGhpcy0+dXJsX2dldCggJ2h0dHA6Ly90aW55dXJsLmNvbS9hcGktY3JlYXRlLnBocD91cmw9JyAuIHVybGVuY29kZSggJHVybCApICk7Cgl9CgkKCWZ1bmN0aW9uIG1ha2VfbG9uZyggJHVybCApIHsKCQkkYml0cyA9IHBhcnNlX3VybCggJHVybCApOwoJCSRyZXN1bHQgPSAkdGhpcy0+dXJsX2dldCggJ2h0dHA6Ly90aW55dXJsLmNvbS9wcmV2aWV3LnBocD9udW09JyAuIHN1YnN0ciggJGJpdHNbJ3BhdGgnXSwgMSApICk7CgkJaWYgKCBwcmVnX21hdGNoKCcvPGEgaWQ9InJlZGlyZWN0dXJsIiBocmVmPSIoW14iXSspIj4vaXMnLCAkcmVzdWx0LCAkbWF0Y2hlcyApICkKCQkJcmV0dXJuICRtYXRjaGVzWzFdOwoJCWVsc2UKCQkJcmV0dXJuICR1cmw7Cgl9Cn0KCi8vIEltcGxlbWVudGF0aW9uIG9mIEJpdC5seSBhcyBhIFNsaW5reSBTZXJ2aWNlCi8qClRvIHVzZSBCaXQubHksIHlvdSBNVVNUIHNldCB5b3VyIGxvZ2luIGFuZCBhcGlLZXkgZm9yIHRoZSBzZXJ2aWNlIGZpcnN0LCBlLmcuCgokYml0bHkgPSBuZXcgU2xpbmt5X0JpdGx5KCk7CiRiaXRseS0+c2V0KCAnbG9naW4nLCAnYml0bHlfbG9naW4nICk7CiRiaXRseS0+c2V0KCAnYXBpS2V5JywgJ2JpdGx5X2FwaUtleScgKTsKCiRzbGlua3kgPSBuZXcgU2xpbmt5KCAkdXJsLCAkYml0bHkgKTsKZWNobyAkc2xpbmt5LT5zaG9ydCgpOwoKWW91IGNvdWxkIGFsc28gZG8gdGhpcyBpZiB0aGUgVVJMIHdhcyBhbHJlYWR5IGEgYml0Lmx5IFVSTCBhbmQgeW91IAp3ZXJlIGdvaW5nIHRvIG1ha2UgaXQgbG9uZ2VyLCBzaW5jZSBCaXRseSBpcyBzdXBwb3J0ZWQgZm9yIGF1dG8tZGV0ZWN0aW9uOgoKJHNsaW5reSA9IG5ldyBTbGlua3koICR1cmwgKTsKJHNsaW5reS0+c2V0X3NlcnZpY2VfZnJvbV91cmwoKTsKJHNsaW5reS0+c2VydmljZS0+c2V0KCAnbG9naW4nLCAnYml0bHlfbG9naW4nICk7CiRzbGlua3ktPnNlcnZpY2UtPnNldCggJ2FwaUtleScsICdiaXRseV9hcGlLZXknICk7CmVjaG8gJHNsaW5reS0+bG9uZygpOwoKKi8KY2xhc3MgU2xpbmt5X0JpdGx5IGV4dGVuZHMgU2xpbmt5X1NlcnZpY2UgewoJZnVuY3Rpb24gdXJsX2lzX3Nob3J0KCAkdXJsICkgewoJCXJldHVybiBzdHJpc3RyKCAkdXJsLCAnYml0Lmx5LycgKTsKCX0KCQoJZnVuY3Rpb24gdXJsX2lzX2xvbmcoICR1cmwgKSB7CgkJcmV0dXJuICFzdHJpc3RyKCAkdXJsLCAnYml0Lmx5LycgKTsKCX0KCQoJZnVuY3Rpb24gbWFrZV9zaG9ydCggJHVybCApIHsKCgkgICR0aGlzLT5hdXRoZW50aWNhdGUoKTsKCgkJLy8gQ2FuJ3QgZG8gYW55dGhpbmcgdW5sZXNzIHRoZXNlIDIgcHJvcGVydGllcyBhcmUgc2V0IGZpcnN0CgkJaWYgKCAhJHRoaXMtPmdldCggJ2xvZ2luJyApIHx8ICEkdGhpcy0+Z2V0KCAnYXBpS2V5JyApICkKCQkJcmV0dXJuICR1cmw7CgkJCgkJJHJlc3VsdCA9ICR0aGlzLT51cmxfcG9zdCggJ2h0dHA6Ly9hcGkuYml0Lmx5L3Nob3J0ZW4/dmVyc2lvbj0yLjAuMSZmb3JtYXQ9anNvbiZsb2dpbj0nIC4gJHRoaXMtPmdldCggJ2xvZ2luJyApIC4gJyZhcGlLZXk9JyAuICR0aGlzLT5nZXQoICdhcGlLZXknICkgLiAnJmxvbmdVcmw9JyAuIHVybGVuY29kZSggJHVybCApICk7CgkJJHJlc3VsdCA9IGpzb25fZGVjb2RlKCAkcmVzdWx0ICk7CgkJaWYgKCAhJHJlc3VsdC0+ZXJyb3JDb2RlICkgewoJCQlmb3JlYWNoICggJHJlc3VsdC0+cmVzdWx0cyBhcyAkZGV0YWlsICkgewoJCQkJcmV0dXJuICRkZXRhaWwtPnNob3J0VXJsOwoJCQl9CgkJfSBlbHNlIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCQoJZnVuY3Rpb24gbWFrZV9sb25nKCAkdXJsICkgewoKCSAgJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwoKCQkvLyBDYW4ndCBkbyBhbnl0aGluZyB1bmxlc3MgdGhlc2UgMiBwcm9wZXJ0aWVzIGFyZSBzZXQgZmlyc3QKCQlpZiAoICEkdGhpcy0+Z2V0KCAnbG9naW4nICkgfHwgISR0aGlzLT5nZXQoICdhcGlLZXknICkgKQoJCQlyZXR1cm4gJHVybDsKCQkKCQkkcmVzdWx0ID0gJHRoaXMtPnVybF9wb3N0KCAnaHR0cDovL2FwaS5iaXQubHkvZXhwYW5kP3ZlcnNpb249Mi4wLjEmZm9ybWF0PWpzb24mbG9naW49JyAuICR0aGlzLT5nZXQoICdsb2dpbicgKSAuICcmYXBpS2V5PScgLiAkdGhpcy0+Z2V0KCAnYXBpS2V5JyApIC4gJyZzaG9ydFVybD0nIC4gdXJsZW5jb2RlKCAkdXJsICkgKTsKCQkkcmVzdWx0ID0ganNvbl9kZWNvZGUoICRyZXN1bHQgKTsKCQlpZiAoICEkcmVzdWx0LT5lcnJvckNvZGUgKSB7CgkJCWZvcmVhY2ggKCAkcmVzdWx0LT5yZXN1bHRzIGFzICRkZXRhaWwgKSB7CgkJCQlyZXR1cm4gJGRldGFpbC0+bG9uZ1VybDsKCQkJfQoJCX0gZWxzZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9Cn0KCi8vIEltcGxlbWVudGF0aW9uIG9mIFRyLmltIGFzIGEgU2xpbmt5IFNlcnZpY2UKLyoKV2hlbiB1c2luZyBUci5pbSwgeW91IE1BWSBvcHRpb25hbGx5IHNldCB5b3VyIHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byB0aWUgClVSTHMgdG8geW91ciBhY2NvdW50LCBlLmcuCgokdHJpbSA9IG5ldyBTbGlua3lfVHJpbSgpOwokdHJpbS0+c2V0KCAndXNlcm5hbWUnLCAndHJpbV91c2VybmFtZScgKTsKJHRyaW0tPnNldCggJ3Bhc3N3b3JkJywgJ3RyaW1fcGFzc3dvcmQnICk7Cgokc2xpbmt5ID0gbmV3IFNsaW5reSggJHVybCwgJHRyaW0gKTsKZWNobyAkc2xpbmt5LT5zaG9ydCgpOwoKWW91IGNvdWxkIGFsc28gZG8gdGhpcyBpZiB0aGUgVVJMIHdhcyBhbHJlYWR5IGEgdHIuaW0gVVJMIGFuZCB5b3UgCndlcmUgZ29pbmcgdG8gbWFrZSBpdCBsb25nZXIsIHNpbmNlIFRyLmltIGlzIHN1cHBvcnRlZCBmb3IgYXV0by1kZXRlY3Rpb246Cgokc2xpbmt5ID0gbmV3IFNsaW5reSggJHVybCApOwokc2xpbmt5LT5zZXRfc2VydmljZV9mcm9tX3VybCgpOwplY2hvICRzbGlua3ktPmxvbmcoKTsKCiovCmNsYXNzIFNsaW5reV9UcmltIGV4dGVuZHMgU2xpbmt5X1NlcnZpY2UgewoJZnVuY3Rpb24gdXJsX2lzX3Nob3J0KCAkdXJsICkgewoJCXJldHVybiBzdHJpc3RyKCAkdXJsLCAndHIuaW0vJyApOwoJfQoJCglmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApIHsKCQlyZXR1cm4gIXN0cmlzdHIoICR1cmwsICd0ci5pbS8nICk7Cgl9CgkKCWZ1bmN0aW9uIG1ha2Vfc2hvcnQoICR1cmwgKSB7CgkJJHVybCA9ICdodHRwOi8vYXBpLnRyLmltL2FwaS90cmltX3NpbXBsZT91cmw9JyAuIHVybGVuY29kZSggJHVybCApOwoKCQkkdGhpcy0+YXV0aGVudGljYXRlKCk7CgoJCWlmICggJHRoaXMtPmdldCggJ3VzZXJuYW1lJyApICYmICR0aGlzLT5nZXQoICdwYXNzd29yZCcgKSApCgkJCSR1cmwgLj0gJyZ1c2VybmFtZT0nIC4gdXJsZW5jb2RlKCAkdGhpcy0+Z2V0KCAndXNlcm5hbWUnICkgKSAuICcmcGFzc3dvcmQ9JyAuIHVybGVuY29kZSggJHRoaXMtPmdldCggJ3Bhc3N3b3JkJyApICk7CgkJCgkJcmV0dXJuICR0aGlzLT51cmxfZ2V0KCAkdXJsICk7Cgl9CgkKCWZ1bmN0aW9uIG1ha2VfbG9uZyggJHVybCApIHsKCQkkYml0cyA9IHBhcnNlX3VybCggJHVybCApOwoJCSRyZXN1bHQgPSAkdGhpcy0+dXJsX2dldCggJ2h0dHA6Ly9hcGkudHIuaW0vYXBpL3RyaW1fZGVzdGluYXRpb24uanNvbj90cmltcGF0aD0nIC4gc3Vic3RyKCAkYml0c1sncGF0aCddLCAxICkgKTsKCQkkcmVzdWx0ID0ganNvbl9kZWNvZGUoJHJlc3VsdCk7CgkJaWYgKCAnT0snID09ICRyZXN1bHQtPnN0YXR1cy0+cmVzdWx0ICkKCQkJcmV0dXJuICRyZXN1bHQtPmRlc3RpbmF0aW9uOwoJCWVsc2UKCQkJcmV0dXJuICR1cmw7Cgl9Cn0KCi8vIEltcGxlbWVudGF0aW9uIG9mIElzLkdkIGFzIGEgU2xpbmt5IFNlcnZpY2UKY2xhc3MgU2xpbmt5X0lzR2QgZXh0ZW5kcyBTbGlua3lfU2VydmljZSB7CglmdW5jdGlvbiB1cmxfaXNfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuIHN0cmlzdHIoICR1cmwsICdpcy5nZC8nICk7Cgl9CgkKCWZ1bmN0aW9uIHVybF9pc19sb25nKCAkdXJsICkgewoJCXJldHVybiAhc3RyaXN0ciggJHVybCwgJ2lzLmdkLycgKTsKCX0KCQoJZnVuY3Rpb24gbWFrZV9zaG9ydCggJHVybCApIHsKCQkkcmVzcG9uc2UgPSAkdGhpcy0+dXJsX2dldCggJ2h0dHA6Ly9pcy5nZC9hcGkucGhwP2xvbmd1cmw9JyAuIHVybGVuY29kZSggJHVybCApICk7CgkJaWYgKCAnZXJyb3InID09IHN1YnN0ciggc3RydG9sb3dlciggJHJlc3BvbnNlICksIDAsIDUgKSApCgkJCXJldHVybiBmYWxzZTsKCQllbHNlCgkJCXJldHVybiAkcmVzcG9uc2U7Cgl9Cn0KCi8vIEZvbi5ncwpjbGFzcyBTbGlua3lfRm9uZ3MgZXh0ZW5kcyBTbGlua3lfU2VydmljZSB7CglmdW5jdGlvbiB1cmxfaXNfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuIHN0cmlzdHIoICR1cmwsICdmb24uZ3MvJyApOwoJfQoJCglmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApIHsKCQlyZXR1cm4gIXN0cmlzdHIoICR1cmwsICdmb24uZ3MvJyApOwoJfQoJCglmdW5jdGlvbiBtYWtlX3Nob3J0KCAkdXJsICkgewoJCSRyZXNwb25zZSA9ICR0aGlzLT51cmxfZ2V0KCAnaHR0cDovL2Zvbi5ncy9jcmVhdGUucGhwP3VybD0nIC4gdXJsZW5jb2RlKCAkdXJsICkgKTsKCQlpZiAoICdPSzonID09IHN1YnN0ciggJHJlc3BvbnNlLCAwLCAzICkgKQoJCQlyZXR1cm4gc3RyX3JlcGxhY2UoICdPSzogJywgJycsICRyZXNwb25zZSApOwoJCWVsc2UKCQkJcmV0dXJuICR1cmw7Cgl9Cn0KCi8vIE1pY3UucmwKY2xhc3MgU2xpbmt5X01pY3VybCBleHRlbmRzIFNsaW5reV9TZXJ2aWNlIHsKCWZ1bmN0aW9uIHVybF9pc19zaG9ydCggJHVybCApIHsKCQlyZXR1cm4gc3RyaXN0ciggJHVybCwgJ21pY3VybC5jb20vJyApOwoJfQoJCglmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApIHsKCQlyZXR1cm4gIXN0cmlzdHIoICR1cmwsICdtaWN1cmwuY29tLycgKTsKCX0KCQoJZnVuY3Rpb24gbWFrZV9zaG9ydCggJHVybCApIHsKCQkkcmVzdWx0ID0gJHRoaXMtPnVybF9nZXQoICdodHRwOi8vbWljdXJsLmNvbS9hcGkucGhwP3VybD0nIC4gdXJsZW5jb2RlKCAkdXJsICkgKTsKCQlpZiAoIDEgIT0gJHJlc3VsdCAmJiAyICE9ICRyZXN1bHQgKQoJCQlyZXR1cm4gJ2h0dHA6Ly9taWN1cmwuY29tLycgLiAkcmVzdWx0OwoJCWVsc2UKCQkJcmV0dXJuICR1cmw7Cgl9Cn0KCi8vIHVyMS5jYQpjbGFzcyBTbGlua3lfVXIxY2EgZXh0ZW5kcyBTbGlua3lfU2VydmljZSB7CglmdW5jdGlvbiB1cmxfaXNfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuIHN0cmlzdHIoICR1cmwsICd1cjEuY2EvJyApOwoJfQoJCglmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApIHsKCQlyZXR1cm4gIXN0cmlzdHIoICR1cmwsICd1cjEuY2EvJyApOwoJfQoJCglmdW5jdGlvbiBtYWtlX3Nob3J0KCAkdXJsICkgewoJCSRyZXN1bHQgPSAkdGhpcy0+dXJsX3Bvc3QoICdodHRwOi8vdXIxLmNhLycsIGFycmF5KCAnbG9uZ3VybCcgPT4gJHVybCApICk7CgkJaWYgKCBwcmVnX21hdGNoKCAnLzxwIGNsYXNzPSJzdWNjZXNzIj5Zb3VyIHVyMSBpczogPGEgaHJlZj0iKFteIl0rKSI+LycsICRyZXN1bHQsICRtYXRjaGVzICkgKQoJCQlyZXR1cm4gJG1hdGNoZXNbMV07CgkJZWxzZQoJCQlyZXR1cm4gJHVybDsKCX0KfQoKLy8gUHRpdFVSTC5jb20KY2xhc3MgU2xpbmt5X1B0aXRVUkwgZXh0ZW5kcyBTbGlua3lfU2VydmljZSB7CglmdW5jdGlvbiB1cmxfaXNfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuIHN0cmlzdHIoICR1cmwsICdwdGl0dXJsLmNvbS8nICk7Cgl9CgkKCWZ1bmN0aW9uIHVybF9pc19sb25nKCAkdXJsICkgewoJCXJldHVybiAhc3RyaXN0ciggJHVybCwgJ3B0aXR1cmwuY29tLycgKTsKCX0KCQoJZnVuY3Rpb24gbWFrZV9zaG9ydCggJHVybCApIHsKCQkkcmVzdWx0ID0gJHRoaXMtPnVybF9nZXQoICdodHRwOi8vcHRpdHVybC5jb20vaW5kZXgucGhwP2NyZWVyPW91aSZ1cmw9JyAuIHVybGVuY29kZSggJHVybCApICk7CgkJaWYgKCBwcmVnX21hdGNoKCAnLzxwcmU+PGEgaHJlZj1cJz8oW15cJz5dKylcJz8+LycsICRyZXN1bHQsICRtYXRjaGVzICkgKQoJCQlyZXR1cm4gJG1hdGNoZXNbMV07CgkJZWxzZQoJCQlyZXR1cm4gJHVybDsKCX0KfQoKLy8gVGlnaHR1cmwuY29tCmNsYXNzIFNsaW5reV9UaWdodFVSTCBleHRlbmRzIFNsaW5reV9TZXJ2aWNlIHsKCWZ1bmN0aW9uIHVybF9pc19zaG9ydCggJHVybCApIHsKCQlyZXR1cm4gc3RyaXN0ciggJHVybCwgJ3RpZ2h0dXJsLmNvbS8nICkKCQkJCXx8IHN0cmlzdHIoICR1cmwsICcydHUudXMvJyApOwoJfQoJCglmdW5jdGlvbiB1cmxfaXNfbG9uZyggJHVybCApIHsKCQlyZXR1cm4gIXN0cmlzdHIoICR1cmwsICd0aWdodHVybC5jb20vJyApCgkJCQkmJiAhc3RyaXN0ciggJHVybCwgJzJ0dS51cy8nICk7Cgl9CgkKCWZ1bmN0aW9uIG1ha2Vfc2hvcnQoICR1cmwgKSB7CgkJJHJlc3BvbnNlID0gJHRoaXMtPnVybF9nZXQoICdodHRwOi8vdGlnaHR1cmwuY29tLz9zYXZlPXkmdXJsPScgLiB1cmxlbmNvZGUoICR1cmwgKSApOwoJCWlmICggcHJlZ19tYXRjaCggJy9Zb3VyIHRpZ2h0IFVSTCBpczogPGNvZGU+PGEgaHJlZj1cJyhbXlwnXSspXCcgdGFyZ2V0PVwnX2JsYW5rXCc+LycsICRyZXNwb25zZSwgJG1hdGNoZXMgKSApIHsKCQkJcmV0dXJuICRtYXRjaGVzWzFdOwoJCX0gZWxzZSB7CgkJCXJldHVybiAkdXJsOwoJCX0KCX0KfQoKLy8gU25pcHIgZm9yIFNsaW5reQovKgpUbyB1c2UgU25pcHIsIHlvdSBNVVNUIHNldCB5b3VyIHVzZXJfaWQgYW5kIEFQSSAoa2V5KSBmb3IgdGhlIHNlcnZpY2UgZmlyc3QsIGUuZy4KCiRzbmlwciA9IG5ldyBTbGlua3lfU25pcHIoKTsKJHNuaXByLT5zZXQoICd1c2VyX2lkJywgJ1NuaXByIFVzZXIgSUQnICk7CiRzbmlwci0+c2V0KCAnQVBJJywgJ1NuaXByIEFQSSBLZXknICk7Cgokc2xpbmt5ID0gbmV3IFNsaW5reSggJHVybCwgJHNuaXByICk7CmVjaG8gJHNsaW5reS0+c2hvcnQoKTsKCk5PVEU6IFNuaXByIHJlcXVpcmVzIHRoZSBTaW1wbGVYTUwgZXh0ZW5zaW9uIHRvIGJlIGluc3RhbGxlZCBmb3IgbGVuZ3RoZW5pbmcgVVJMcwoqLwpjbGFzcyBTbGlua3lfU25pcHIgZXh0ZW5kcyBTbGlua3lfU2VydmljZSB7CgkvLyBTbmlwdXJsLCBTbnVybCwgU25pcHIsIFNuLmltCglmdW5jdGlvbiB1cmxfaXNfc2hvcnQoICR1cmwgKSB7CgkJcmV0dXJuIHN0cmlzdHIoICR1cmwsICdzbmlwci5jb20vJyApIHx8IHN0cmlzdHIoICR1cmwsICdzbmlwdXJsLmNvbS8nICkgfHwgc3RyaXN0ciggJHVybCwgJ3NudXJsLmNvbS8nICkgfHwgc3RyaXN0ciggJHVybCwgJ3NuLmltLycgKTsKCX0KCQoJZnVuY3Rpb24gdXJsX2lzX2xvbmcoICR1cmwgKSB7CgkJcmV0dXJuICFzdHJpc3RyKCAkdXJsLCAnc25pcHIuY29tLycgKSB8fCAhc3RyaXN0ciggJHVybCwgJ3NuaXB1cmwuY29tLycgKSB8fCAhc3RyaXN0ciggJHVybCwgJ3NudXJsLmNvbS8nICkgfHwgIXN0cmlzdHIoICR1cmwsICdzbi5pbS8nICk7Cgl9CgkKCWZ1bmN0aW9uIG1ha2Vfc2hvcnQoICR1cmwgKSB7CgkJaWYgKCAhJHRoaXMtPmdldCggJ3VzZXJfaWQnICkgfHwgISR0aGlzLT5nZXQoICdBUEknICkgKQoJCQlyZXR1cm4gJHVybDsKCQkKCQkkcmVzcG9uc2UgPSAkdGhpcy0+dXJsX3Bvc3QoICdodHRwOi8vc25pcHIuY29tL3NpdGUvZ2V0c25pcCcsIGFycmF5KCAnc25pcGxpbmsnID0+IHVybGVuY29kZSggJHVybCApLCAnc25pcHVzZXInID0+ICR0aGlzLT5nZXQoICd1c2VyX2lkJyksICdzbmlwYXBpJyA9PiAkdGhpcy0+Z2V0KCAnQVBJJyApLCAnc25pcGZvcm1hdCcgPT4gJ3NpbXBsZScgKSApOwoJCWlmICggJ0VSUk9SJyAhPSBzdWJzdHIoICRyZXNwb25zZSwgMCwgNSApICkKCQkJcmV0dXJuICRyZXNwb25zZTsKCQllbHNlCgkJCXJldHVybiAkdXJsOwoJfQp9CgovLyBJZiB5b3UncmUgdGVzdGluZyB0aGluZ3Mgb3V0LCBodHRwOi8vZGVudGVkcmVhbGl0eS5jb20uYXUvIHNob3VsZCBjb252ZXJ0IHRvOgovLyAtIGh0dHA6Ly90aW55dXJsLmNvbS9qdzVzaAovLyAtIGh0dHA6Ly9iaXQubHkvaEVrQUQKLy8gLSBodHRwOi8vdHIuaW0vc2sxSAovLyAtIGh0dHA6Ly9pcy5nZC8xeUo4MQovLyAtIGh0dHA6Ly9mb24uZ3MvdGMxcDhjCi8vIC0gaHR0cDovL21pY3VybC5jb20vcWVuM3V1YgovLyAtIGh0dHA6Ly91cjEuY2EvN2RjZAovLyAtIGh0dHA6Ly9wdGl0dXJsLmNvbS8/aWQ9YmFjOGZiCi8vIC0gaHR0cDovL3RpZ2h0dXJsLmNvbS9rZ2QKLy8gLSBodHRwOi8vc25pcHIuY29tL25iYnczCi8vIAovLyAkc2xpbmt5ID0gbmV3IFNsaW5reSggJ2h0dHA6Ly9kZW50ZWRyZWFsaXR5LmNvbS5hdS8nICk7Ci8vIGVjaG8gJHNsaW5reS0+c2hvcnQoKTsK]]></data>
	</file>
	<file>
	  <filename>/function.admin_services_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKLy8gZmluZCBhbGwgYXZhaWxhYmxlIHNlcnZpY2VzLgoKCiRyb3dzID0gYXJyYXkoKTsKJHNlcnZpY2VzID0gQ0dVUkxfU2hvcnRlbmVyOjpnZXRfc2VydmljZXModHJ1ZSx0cnVlKTsKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHNlcnZpY2VzKTsgJGkrKyApIHsKICAgICRyb3cgPSYgJHNlcnZpY2VzWyRpXTsKICAgICRyb3dbJ29iaiddID0gbmV3ICRyb3dbJ2NsYXNzbmFtZSddOwp9ICAKCiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CiRzbWFydHktPmFzc2lnbignaW1nX3llcycsJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywkdGhpcy0+TGFuZygneWVzJyksJycsJycsJ3N5c3RlbWljb24nKSk7CiRzbWFydHktPmFzc2lnbignaW1nX25vJywkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywkdGhpcy0+TGFuZygnbm8nKSwnJywnJywnc3lzdGVtaWNvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWdfd2FybicsJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmJywkdGhpcy0+TGFuZygnbW9kaWZpZWQnKSwnJywnJywnc3lzdGVtaWNvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfc2VydmljZXMnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignZW50cmllcycsJHNlcnZpY2VzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9zZXJ2aWNlc190YWIudHBsJyk7CgojCiMgIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_settings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfc2V0dGluZ3MnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbigndXNlY2FjaGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VjYWNoZScsMSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9zZXR0aW5nc190YWIudHBsJyk7CiMKIyAgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_test_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3Rlc3Rfc3VibWl0J10pICYmICRwYXJhbXNbJ3VybCddICE9ICcnICkgewogICR1cmwgPSB0cmltKCRwYXJhbXNbJ3VybCddKTsKICAkdGVzdF9yZXN1bHQgPSBDR1VSTF9TaG9ydGVuZXI6OnNob3J0KCR1cmwsRkFMU0UpOwogICRzbWFydHktPmFzc2lnbigndGVzdF9yZXN1bHQnLCR0ZXN0X3Jlc3VsdCk7CiAgJHNtYXJ0eS0+YXNzaWduKCd1cmwnLCR1cmwpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJywnJyxhcnJheSgnY2dfYWN0aXZldGFiJz0+J3Rlc3QnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl90ZXN0X3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/iphone_back_lft.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/icons/iphone_edit_rgt.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2ZSc7CiRsYW5nWydhc2tfY2xlYXJfY2FjaGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2xlYXIgYWxsIGVudHJpZXMgZnJvbSB0aGUgY2FjaGU/JzsKCiNCCiRsYW5nWydiYWNrJ10gPSAnQmFjayc7CiRsYW5nWydiaXRseV9sb2dpbiddID0gJ0xvZ2luJzsKJGxhbmdbJ2JpdGx5X2FwaWtleSddID0gJ0FQSSBLZXknOwoKI0MKJGxhbmdbJ2NsZWFyX2NhY2hlJ10gPSAnQ2xlYXIgQ2FjaGUnOwoKI0QKCiNFCiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlbmFibGVfY2FjaGUnXSA9ICdFbmFibGUgQ2FjaGluZyc7CgojRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBVUkwgU2hvcnRpbmcgVG9vbCc7CgojRwokbGFuZ1snZ29vZ2xfYXBpa2V5J10gPSAnR29vZ2xlIEFQSSBLZXknOwoKI0gKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPVAo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjb252ZW5pZW50IHdheSBvZiBkeW5hbWljYWxseSBjcmVhdGluZyBzaG9ydCBVUkxTIHZpYSBhIHZhcmlldHkgb2YgVVJMIHNob3J0ZW5pbmcgc2VydmljZXMsIGFuZCBpbnRlcmFjdGluZyB3aXRoIHRoZW0gb24geW91ciBDTVNNUyBXZWJzaXRlLjwvcD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgogIDxsaT5TdXBwb3J0cyBhIHZhcmlldHkgb2YgVVJMIFNob3J0ZW5pbmcgU2VydmljZXMuPC9saT4KICA8bGk+U3VwcG9ydHMgY2FjaGluZyB0byBtaW5pbWl6ZSBleHRlcm5hbCByZXF1ZXN0cyBhbmQgbWF4aW1pemUgcGVyZm9ybWFuY2UuPC9saT4KICA8bGk+U3VwcG9ydHMgY2FzY2FkaW5nIG9mIHNlcnZpY2VzIChpZiBvbmUgZmFpbHMsIHRoZSBuZXh0IGluIHRoZSBsaXN0IHdpbGwgYmUgdHJpZWQpPC9saT4KICA8bGk+RmxleGlibGUgSW50ZXJmYWNlPC9saT4KPC91bD4KPGgzPkhvdyBkbyBJIHVzZSBpdDwvaDM+CiAgPHA+VGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgdG8ganVzdCB1c2UgdGhlIHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUsIGEgbW9kdWxlIHRlbXBsYXRlLCBhIEdDQiwgb3IgYSBjb250ZW50IGJsb2NrLiAgbGlrZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NndGlueSBzcmM9J2h0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcnfT48L2NvZGU+LiAgVGhpcyB3aWxsIGxvb3AgdGhyb3VnaCB0aGUgYXZhaWxhYmxlIHNlcnZpY2VzIGF0dGVtcHRpbmcgdG8gcmV0cmlldmUgYSBzaG9ydCBVUkwsIHdoZW4gYSByZXN1bHQgaXMgcmV0dXJuZWQgaXQgaXMgY2FjaGVkIGFuZCBkaXNwbGF5ZWQgb24gdGhlIHBhZ2UuICAgVGhpcyBvdXRwdXQgY291bGQgdGhlbiBiZSB1c2VkIHdoZW4gZ2VuZXJhdGluZyBhIGxpbmssIG9yIHN1cHBsaWVkIHRvIG90aGVyIHNlcnZpY2VzLCBsaWtlIGZhY2Vib29rLCBvciB0d2l0dGVyLjwvcD4KICA8cD5Tb21lIHNlcnZpY2VzIChsaWtlIGJpdC5seSkgcmVxdWlyZSB0aGF0IHlvdSByZWdpc3RlciBpbiBvcmRlciB0byB1c2UgdGhlaXIgc2VydmljZSAoYW5kIGFsc28gdGFrZSBhZHZhbnRhZ2Ugb2YgYWR2YW5jZWQgZmVhdHVyZXMpLiAgIFlvdSBtYXkgbmVlZCB0byBwcm92aWRlIHRoZSBDR1RpbnkgbW9kdWxlIHdpdGggaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFsbG93IGl0IHRvIHNob3J0ZW4gdXJscyBvbiB5b3VyIGJlaGFsZi48L3A+CjxoMz5TbWFydHkgRnVuY3Rpb25zPC9oMz4KPHVsPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2d0aW55IHNyYz0mbHQ7c3RyaW5nJmd0OyBbc2VydmljZT0mbHQ7c3RyaW5nJmd0O10gW25vY2FjaGU9Jmx0O2Jvb2wmZ3Q7XSBbLi4uXSBbYXNzaWduPSZsdDtzdHJpbmcmZ3Q7XX08L2NvZGU+CiAgICA8cD5QYXJhbWV0ZXJzOjwvcD4KICAgIDx1bD4KICAgIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5zcmM9Jmx0O3N0cmluZyZndDs8L2NvZGU+IC0gPGVtPlJlcXVpcmVkPC9lbT4gLSBTcGVjaWZ5IHRoZSBVUkwgdG8gc2hvcnRlbi4gICBBcyBhIGNvbnZlbmllbmNlIHRoZSBzdHJpbmcgOjpIRVJFOjogY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY3VycmVudCBwYWdlIHVybC48L2xpPgogICAgPGxpPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPnNlcnZpY2U9Jmx0O3N0cmluZyZndDs8L2NvZGU+IC0gKG9wdGlvbmFsKSAtIFNwZWNpZnkgYSBzcGVjaWZpYyBzZXJ2aWNlIHRvIHVzZS4gQ3VycmVudGx5IGF2YWlsYWJsZSBzZXJ2aWNlcyBpbmNsdWRlIGlzZ2QsIHRpbnl1cmwsIGJpdGx5LCBhbmQgZ29vZ2wuPC9saT4KICAgIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5ub2NhY2hlPSZsdDtib29sJmd0OzwvY29kZT4gLSAob3B0aW9uYWwpIC0gRGlzYWJsZSB1c2FnZSBvZiB0aGUgY2FjaGUgZm9yIHRoaXMgY2FsbC48L2xpPgogICAgPGxpPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPmFzc2lnbj0mbHQ7c3RyaW5nJmd0OzwvY29kZT4gLSAob3B0aW9uYWwpIC0gU3BlY2lmeSB0aGUgbmFtZSBvZiBhIHNtYXJ0eSB2YXJpYWJsZSB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgcmVzdWx0cy48L2xpPgogICAgPGxpPkFueSBvdGhlciBwYXJhbWV0ZXJzIHN1cHBsaWVkIHRvIHRoZSB0YWcgYXJlIGFwcGVuZGVkIHRvIHRoZSBVUkwgYmVmb3JlIHNob3J0ZW5pbmcgaXMgcmVxdWVzdGVkLjxici8+CiAgICAgICBpLmU6IDxjb2RlPntjZ3Rpbnkgc3JjPSc6OkhFUkU6OicgdXRtX2NhbXBhaWduPSdNeUNhbXBhaWduJyB1dG1fc291cmNlPSd0d2l0dGVyJyB1dG1fbWVkaWE9J3R3ZWV0J308L2NvZGU+PGJyLz48YnIvPgogICAgPGxpPjxzdHJvbmc+SGludDo8L3N0cm9uZz4gT25lIHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY3VzdG9tIGZpZWxkcyBvZiB0aGUgTmV3cywgQ0dCbG9nIG9yIG90aGVyIG1vZHVsZXMgdG8gYWxsb3cgYWRtaW5pc3RyYXRvcnMgdG8gYXV0b21hdGljYWxseSBzZWxlY3QgdGhlIGNhbXBhaWduIChhbmQgb3RoZXIgcGFyYW1ldGVycykgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLCBhbmQgdGhlbiB0byBoYXJkY29kZSB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIG1lZGl1bSBhbmQgc291cmNlLiAgaS5lIGlmIGluIE5ld3MgeW91IGhhdmUgYSBjdXN0b20gZmllbGQgY2FsbGVkICZxdW90O2NhbXBhaWduJnF1b3Q7IHlvdSBjb3VsZCBkbyBzb21ldGhpbmcgbGlrZSB0aGUgY29kZSBiZWxvdyBpbiB5b3VyIG5ld3MgZGV0YWlsIHRlbXBsYXRlICB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgZmFjZWJvb2sgbGlrZSBidXR0b246Ojxici8+CiAgICAgICAgPGNvZGU+e2NndGlueSBzcmM9XCRlbnRyeS0+Y2Fub25pY2FsIHV0bV9jYW1wYWlnbj1cJGVudHJ5LT5maWVsZHNieW5hbWUuY2FtcGFpZ24tPnZhbHVlIHV0bV9tZWRpYT0nc29jaWFsJyB1dG1fc291cmNlPSdmYWNlYm9vaycgYXNzaWduPSdmYnVybCd9e2NnZmJfbGlrZSBocmVmPVwkZmJ1cmx9PC9jb2RlPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IGNhbGd1eVwncwptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KRU9UOwoKI0kKJGxhbmdbJ2luZm9fY2FjaGUnXSA9ICdJZiBDYWNoaW5nIGlzIGVuYWJsZWQgdGhlIHN5c3RlbSB3aWxsIGF0dGVtcHQgdG8gdXNlIGluZm9ybWF0aW9uIGNhY2hlZCBpbiB0aGUgZGF0YWJhc2Ugd2hlcmUgcG9zc2libGUsIGFuZCBhbnkgcmVzdWx0cyBzdWNjZXNzZnVsbHlyIGV0dXJuZWQgZnJvbSBhbiBleHRlcm5hbCBzZXJ2aWNlIHdpbGwgYmUgY2FjaGVkIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydpbmZvX3VybCddID0gJ0NvcHkgYW5kIHBhc3RlIGEgdXJsIGludG8gdGhpcyBmaWVsZCB0byB0ZXN0IHRoZSBzaG9ydGVuaW5nIGZ1bmN0b25hbGl0eSc7CgojSgoKI0sKCiNMCgojTQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIFNpbXBsZSwgRmxleGlibGUgRXh0ZW5kYWJsZSBVUkwgU2hvcnRpbmdpbmcgTW9kdWxlJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnTW9kaWZpZWQnOwokbGFuZ1snbXNnX2NhY2hlY2xlYXJlZCddID0gJ0FsbCByZWNvcmRzIGluIHRoZSBjZ3RpbnkgY2FjaGUgaGF2ZSBiZWVuIGNsZWFyZWQnOwokbGFuZ1snbXNnX3NlcnZpY2VzX3VwZGF0ZWQnXSA9ICdTZXJ2aWNlIFNldHRpbmdzIFVwZGF0ZWQnOwokbGFuZ1snbXNnX3NldHRpbmdzY2hhbmdlZCddID0gJ1NldHRpbmdzIGhhdmUgYmVlbiBjaGFuZ2VkJzsKCiNOCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CgojTwoKI1AKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIENHVGlueSBtb2R1bGUgaGFzIGJlZW4gaW5zdGFsbGVkLCBhbmQgaXMgcmVhZHkgZm9yIHVzZS4gWW91IGNhbiBjb25maWd1cmUgYWRkaXRpb25hbCBzaG9ydGVuaW5nIHNlcnZpY2VzIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgQ0dUaW55IG1vZHVsZSwgYW5kIGFsbCBjb25maWd1cmF0aW9uIGRhdGEgaGFzIGJlZW4gcmVtb3ZlZC4gIEFueSBwYWdlcyB0aGF0IHVzZSB0aGlzIG1vZHVsZXMgdGFncyBtYXkgbm93IGJlIGdlbmVyYXRpbmcgZXJyb3JzJzsKCiNRCgojUgokbGFuZ1sncmVzdWx0J10gPSAnUmVzdWx0JzsKCiNTCiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydzZXJ2aWNlcyddID0gJ1NlcnZpY2VzJzsKJGxhbmdbJ3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1snc2V0dGluZ3NfZm9yJ10gPSAnU2V0dGluZ3MgRm9yJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CgojVAokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwoKI1UKJGxhbmdbJ3VybCddID0gJ1VSTCc7CgojVgoKI1cKCiNYCgojWQokbGFuZ1sneW91cmxzX2Rlc2NyaXB0aW9uJ10gPSAnVGhpcyBvcHRpb24gc3VwcG9ydHMgc2hvcnRlbmluZyBVUkxTIHZpYSBhIHByaXZhdGUgeW91cmxzIHNlcnZlci4gICBZb3UgbmVlZCB0byBzcGVjaWZ5IHRoZSB1cmwgdG8gdGhlIHlvdXJscyBzZXJ2ZXIsIGFuZCB5b3VyIHVuaXF1ZSBhZG1pbiBzaWduYXR1cmUnOwokbGFuZ1sneW91cmxzX3NpZ25hdHVyZSddID0gJ3lvdXJscyBBUEkgc2lnbmF0dXJlJzsKJGxhbmdbJ3lvdXJsc191cmwnXSA9ICdVUkwgdG8geW91cmxzIHNlcnZlcic7CgojWgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.CGURL_notused_Service_Trim.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVVJMX1NlcnZpY2VfVHJpbSBleHRlbmRzIENHVVJMX1NlcnZpY2UKewogIHByaXZhdGUgJF91c2VybmFtZTsKICBwcml2YXRlICRfcGFzc3dvcmQ7CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgewogICAgcmV0dXJuICd0ci5pbSc7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGhhc19zZXR0aW5ncygpCiAgewogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHN0b3JlX3NldHRpbmdzKCRwYXJhbXMpCiAgewogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dUaW55Jyk7CiAgICAka2V5cyA9IGFycmF5KCd0cmltX3VzZXJuYW1lJywndHJpbV9wYXNzd29yZCcpOwogICAgJHJlcyA9IEZBTFNFOwogICAgZm9yZWFjaCggJGtleXMgYXMgJGtleSApCiAgICAgIHsKCWlmKCBpc3NldCgkcGFyYW1zWyRrZXldKSApCgkgIHsKCSAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCRrZXksJHBhcmFtc1ska2V5XSk7CgkgICAgJHJlcyA9IFRSVUU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250cm9scygpCiAgewogICAgJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dUaW55Jyk7CiAgICByZXR1cm4gYXJyYXkoCgkJIGFycmF5KCRtb2QtPkxhbmcoJ3RyaW1fdXNlcm5hbWUnKSwKCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCdtMV8nLCd0cmltX3VzZXJuYW1lJywkdGhpcy0+X3VzZXJuYW1lLDQwLDQwKSksCgkJIGFycmF5KCRtb2QtPkxhbmcoJ3RyaW1fcGFzc3dvcmQnKSwKCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCdtMV8nLCd0cmltX3Bhc3N3b3JkJywkdGhpcy0+X3Bhc3N3b3JkLDQwLDQwKSkKCQkgKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCkKICB7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgIGlmKCBpc19vYmplY3QoJG1vZCkgKQogICAgICB7CgkkdGhpcy0+X3VzZXJuYW1lID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndHJpbV91c2VybmFtZScpOwoJJHRoaXMtPl9wYXNzd29yZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3RyaW1fcGFzc3dvcmQnKTsKCXJldHVybiBUUlVFOwogICAgICB9CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGlzX3Nob3J0KCAkdXJsICkgewogICAgcmV0dXJuICFzdHJpc3RyKCAkdXJsLCAndHIuaW0nICk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW4oJHVybCkKICB7ICAKICAgICR0aGlzLT5hdXRoZW50aWNhdGUoKTsKICAgIHJldHVybiBjZ2VfaHR0cDo6Z2V0KCAnaHR0cDovL2FwaS50ci5pbS9hcGkvdHJpbV9zaW1wbGU/dXJsPScudXJsZW5jb2RlKCR1cmwpLicmdXNlcm5hbWU9Jy51cmxlbmNvZGUoJHRoaXMtPl91c2VybmFtZSkuJyZwYXNzd29yZD0nLnVybGVuY29kZSgkdGhpcy0+X3Bhc3N3b3JkKSk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGxlbmd0aGVuKCR1cmwpCiAgewogICAgJGJpdHMgPSBwYXJzZV91cmwoICR1cmwgKTsKICAgICRyZXN1bHQgPSAkdGhpcy0+dXJsX2dldCggJ2h0dHA6Ly9hcGkudHIuaW0vYXBpL3RyaW1fZGVzdGlvbmF0aW9uLmpzb24/dHJpbXBhdGg9JyAuIHN1YnN0ciggJGJpdHNbJ3BhdGgnXSwgMSApICk7CiAgICAkcmVzdWx0ID0ganNvbl9kZWNvZGUoJHJlc3VsdCk7CiAgICBpZiAoICdPSycgPT0gJHJlc3VsdC0+c3RhdHVzLT5yZXN1bHQgKQogICAgICByZXR1cm4gJHJlc3VsdC0+ZGVzdGluYXRpb247CiAgICBlbHNlCiAgICAgIHJldHVybiAkdXJsOwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmFic3RyYWN0IGNsYXNzIENHVVJMX1NlcnZpY2UKewogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfbW9kdWxlKCkKICB7CiAgICByZXR1cm4gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBoYXNfc2V0dGluZ3MoKSB7IHJldHVybiBGQUxTRTsgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ljb24oKSB7fQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2luZm8oKSB7fQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkgeyByZXR1cm4gJyc7IH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250cm9scygpIHsgcmV0dXJuIGFycmF5KCk7IH0KCiAgcHVibGljIGZ1bmN0aW9uIHN0b3JlX3NldHRpbmdzKCRwYXJhbXMpIHsgcmV0dXJuIFRSVUU7IH0KCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBpc19zaG9ydCgkdXJsKTsKCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW4oJHVybCk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBsZW5ndGhlbigkdXJsKTsKCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZSgpIHt9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service_Bitly.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVVJMX1NlcnZpY2VfQml0bHkgZXh0ZW5kcyBDR1VSTF9TZXJ2aWNlCnsKICBwcml2YXRlICRfbG9naW47CiAgcHJpdmF0ZSAkX2FwaWtleTsKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICB7CiAgICByZXR1cm4gJ0JpdC5seSc7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGhhc19zZXR0aW5ncygpCiAgewogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHN0b3JlX3NldHRpbmdzKCRwYXJhbXMpCiAgewogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dUaW55Jyk7CiAgICAka2V5cyA9IGFycmF5KCdiaXRseV9sb2dpbicsJ2JpdGx5X2FwaWtleScpOwogICAgJHJlcyA9IEZBTFNFOwogICAgZm9yZWFjaCggJGtleXMgYXMgJGtleSApCiAgICAgIHsKCWlmKCBpc3NldCgkcGFyYW1zWyRrZXldKSApCgkgIHsKCSAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCRrZXksJHBhcmFtc1ska2V5XSk7CgkgICAgJHJlcyA9IFRSVUU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250cm9scygpCiAgewogICAgJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dUaW55Jyk7CiAgICByZXR1cm4gYXJyYXkoCgkJIGFycmF5KCRtb2QtPkxhbmcoJ2JpdGx5X2xvZ2luJyksCgkJICAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgnbTFfJywnYml0bHlfbG9naW4nLCR0aGlzLT5fbG9naW4sNDAsNDApKSwKCQkgYXJyYXkoJG1vZC0+TGFuZygnYml0bHlfYXBpa2V5JyksCgkJICAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgnbTFfJywnYml0bHlfYXBpa2V5JywkdGhpcy0+X2FwaWtleSw0MCw0MCkpCgkJICk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGlzX3Nob3J0KCAkdXJsICkgewogICAgcmV0dXJuIHN0cmlzdHIoICR1cmwsICdiaXQubHkvJyApOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGUoKQogIHsKICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHVGlueScpOwogICAgaWYoIGlzX29iamVjdCgkbW9kKSApCiAgICAgIHsKCSR0aGlzLT5fbG9naW4gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdiaXRseV9sb2dpbicpOwoJJHRoaXMtPl9hcGlrZXkgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdiaXRseV9hcGlrZXknKTsKCXJldHVybiBUUlVFOwogICAgICB9CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW4oJHVybCkKICB7CiAgICBpZiggISR0aGlzLT5hdXRoZW50aWNhdGUoKSApIHJldHVybiAkdXJsOwoKICAgICRkYXRhID0gYXJyYXkoJ3ZlcnNpb24nPT4nanNvbicsCgkJICAnZm9ybWF0Jz0+J2pzb24nLAoJCSAgJ2xvZ2luJz0+JHRoaXMtPl9sb2dpbiwKCQkgICdhcGlLZXknPT4kdGhpcy0+X2FwaWtleSwKCQkgICdsb25nVXJsJz0+JHVybCk7CiAgICAkcmVzdWx0ID0gY2dlX2h0dHA6OnBvc3QoJ2h0dHA6Ly9hcGkuYml0Lmx5L3Nob3J0ZW4nLCRkYXRhKTsKICAgIGlmKCAhJHJlc3VsdCApIHJldHVybiAkdXJsOwogICAgJHJlc3VsdCA9IGpzb25fZGVjb2RlKCRyZXN1bHQpOwogICAgaWYoICEkcmVzdWx0LT5lcnJvckNvZGUgKQogICAgICB7Cglmb3JlYWNoKCAkcmVzdWx0LT5yZXN1bHRzIGFzICRkZXRhaWwgKQoJICB7CgkgICAgcmV0dXJuICRkZXRhaWwtPnNob3J0VXJsOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gdG9kbzogYXVkaXQgdGhpcy4KCXJldHVybiAkdXJsOwogICAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gbGVuZ3RoZW4oJHVybCkKICB7CiAgICBpZiggISR0aGlzLT5hdXRoZW50aWNhdGUoKSApIHJldHVybiAkdXJsOwoKICAgICRkYXRhID0gYXJyYXkoJ3ZlcnNpb24nPT4nanNvbicsCgkJICAnZm9ybWF0Jz0+J2pzb24nLAoJCSAgJ2xvZ2luJz0+JHRoaXMtPl9sb2dpbiwKCQkgICdhcGlrZXknPT4kdGhpcy0+X2FwaWtleSwKCQkgICdzaG9ydFVybCc9PiR1cmwpOwogICAgJHJlc3VsdCA9IGNnZV9odHRwOjpwb3N0KCdodHRwOi8vYXBpLmJpdC5seS9leHBhbmQnLCRkYXRhKTsKICAgIGlmKCAhJHJlc3VsdCApIHJldHVybiAkdXJsOwogICAgJHJlc3VsdCA9IGpzb25fZGVjb2RlKCRyZXN1bHQpOwogICAgaWYoICEkcmVzdWx0LT5lcnJvckNvZGUgKQogICAgICB7Cglmb3JlYWNoKCAkcmVzdWx0LT5yZXN1bHRzIGFzICRkZXRhaWwgKQoJICB7CgkgICAgcmV0dXJuICRkZXRhaWwtPmxvbmdVcmw7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyB0b2RvOiBhdWRpdCB0aGlzLgoJcmV0dXJuICR1cmw7CiAgICAgIH0KICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service_googl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVVJMX1NlcnZpY2VfZ29vZ2wgZXh0ZW5kcyBDR1VSTF9TZXJ2aWNlCnsKICBwcml2YXRlICRfYXBpa2V5OwogIHByaXZhdGUgJF91cmwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vdXJsc2hvcnRlbmVyL3YxL3VybCc7CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgewogICAgcmV0dXJuICdnb28uZ2wnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGhhc19zZXR0aW5ncygpCiAgewogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc3RvcmVfc2V0dGluZ3MoJHBhcmFtcykKICB7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgICRrZXlzID0gYXJyYXkoJ2dvb2dsX2FwaWtleScpOwogICAgJHJlcyA9IEZBTFNFOwogICAgZm9yZWFjaCggJGtleXMgYXMgJGtleSApCiAgICAgIHsKCWlmKCBpc3NldCgkcGFyYW1zWyRrZXldKSApCgkgIHsKCSAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCRrZXksJHBhcmFtc1ska2V5XSk7CgkgICAgJHJlcyA9IFRSVUU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQogIAogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaW5mbygpCiAgewogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dUaW55Jyk7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnZ29vZ2xfaW5mbycpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udHJvbHMoKQogIHsKICAgICR0aGlzLT5hdXRoZW50aWNhdGUoKTsKICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHVGlueScpOwogICAgcmV0dXJuIGFycmF5KAoJCSBhcnJheSgkbW9kLT5MYW5nKCdnb29nbF9hcGlrZXknKSwKCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCdtMV8nLCdnb29nbF9hcGlrZXknLCR0aGlzLT5fYXBpa2V5LDQwLDQwKSkKCQkgKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCkKICB7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgIGlmKCBpc19vYmplY3QoJG1vZCkgKQogICAgICB7CgkkdGhpcy0+X2FwaWtleSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2dvb2dsX2FwaWtleScpOwoJcmV0dXJuIFRSVUU7CiAgICAgIH0KICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gaXNfc2hvcnQoICR1cmwgKQogIHsKICAgIHJldHVybiBzdHJpc3RyKCAkdXJsLCAnZ29vLmdsLycgKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2hvcnRlbiggJHVybCApCiAgewogICAgLy8gYXV0aGVudGljYXRpb24gaXMgb3B0aW9uYWwgKGJ1dCByZWNvbW1lbmRlZCkKICAgIC8vaWYoICFpbl9hcnJheSgnY3VybCcsZ2V0X2xvYWRlZF9leHRlbnNpb25zKCkpICkgcmV0dXJuICR1cmw7CgogICAgJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwoKICAgICRkYXRhID0gYXJyYXkoJ2xvbmdVcmwnPT4kdXJsKTsKICAgICRkYXRhID0ganNvbl9lbmNvZGUoJGRhdGEpOwoKICAgICR0dXJsID0gJHRoaXMtPl91cmw7CiAgICBpZiggJHRoaXMtPl9hcGlrZXkgKQogICAgICB7CgkkdHVybCAuPSAnP2tleT0nLiR0aGlzLT5fYXBpa2V5OwogICAgICB9CgogICAgY2dlX2h0dHA6OnJlc2V0KCk7CiAgICAkaHR0cCA9IGNnZV9odHRwOjpnZXRfaHR0cCgpOwogICAgJGh0dHAtPmFkZFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicpOwogICAgJGh0dHAtPnNldE1ldGhvZCgnUE9TVCcpOwogICAgJGh0dHAtPnNldFBhcmFtcygkZGF0YSk7CiAgICAkcmVzcG9uc2UgPSAkaHR0cC0+ZXhlY3V0ZSgkdHVybCk7CiAgICBpZiggISRyZXNwb25zZSApIHJldHVybiAkdXJsOwoKICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSk7CiAgICBpZiggIWlzX29iamVjdCgkcmVzcG9uc2UpIHx8ICFpc3NldCgkcmVzcG9uc2UtPmlkKSApIHJldHVybiAkdXJsOwoKICAgIHJldHVybiAkcmVzcG9uc2UtPmlkOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBsZW5ndGhlbiggJHVybCApCiAgewogICAgJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwoKICAgICR0dXJsID0gJHRoaXMtPl91cmw7CiAgICAkdHVybCAuPSAnP3Nob3J0VVJMPScudXJsZW5jb2RlKCR1cmwpOwogICAgaWYoICR0aGlzLT5fYXBpa2V5ICkKICAgICAgewoJJHR1cmwgLj0gJyZrZXk9Jy4kdGhpcy0+X2FwaWtleTsKICAgICAgfQogICAgJHJlc3BvbnNlID0gY2dlX2h0dHA6OmdldCgkdHVybCk7CiAgICBpZiggISRyZXNwb25zZSApIHJldHVybiAkdXJsOwoKICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSk7CiAgICBpZiggIWlzX2FycmF5KCRyZXNwb25zZSkgfHwgIWlzc2V0KCRyZXNwb25zZVsnbG9uZ1VybCddKSB8fCAhaXNzZXQoJHJlc3BvbnNlWydzdGF0dXMnXSkgKSByZXR1cm4gJHVybDsKICAgIGlmKCAkcmVzcG9uc2VbJ3N0YXR1cyddICE9ICdPSycgKSByZXR1cm4gJHVybDsKCiAgICByZXR1cm4gJHJlc3BvbnNlWydsb25nVXJsJ107CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service_IsGD.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgc2hvcnRlbmluZyBVUkxTLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dVUkxfU2VydmljZV9Jc0dEIGV4dGVuZHMgQ0dVUkxfU2VydmljZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAnSXMuR2QnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19zaG9ydCggJHVybCApCiAgICB7CiAgICAgICAgcmV0dXJuIHN0cmlzdHIoICR1cmwsICdpcy5nZC8nICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW4oICR1cmwgKQogICAgewogICAgICAgICRvcmlnX3VybCA9ICR1cmw7CiAgICAgICAgJHJlc3BvbnNlID0gY2dlX2h0dHA6OmdldCgnaHR0cDovL2lzLmdkL2NyZWF0ZS5waHA/Zm9ybWF0PWpzb24mdXJsPScudXJsZW5jb2RlKCR1cmwpKTsKICAgICAgICBpZiggc3Vic3RyKHN0cnRvbG93ZXIoJHJlc3BvbnNlKSwgMCwgNSApID09ICdlcnJvciAnICkgcmV0dXJuICRvcmlnX3VybDsKCiAgICAgICAgJHJlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlKTsKICAgICAgICBpZiggaXNzZXQoJHJlc3BvbnNlLT5zaG9ydHVybCkgKSByZXR1cm4gJHJlc3BvbnNlLT5zaG9ydHVybDsKICAgICAgICByZXR1cm4gJHVybDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbGVuZ3RoZW4oICR1cmwgKQogICAgewogICAgICAgIHJldHVybiAkdXJsOwogICAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service_Manager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgc2hvcnRlbmluZyBVUkxTLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVVJMX1NlcnZpY2VfTWFuYWdlcgp7CiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30gLy8gY2FuJ3QgaW5zdGFudGlhdGUgdGhpcyBwdXBweS4KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsaXN0X2FsbF9zZXJ2aWNlcygpCiAgewogICAgJG1hc2sgPSBkaXJuYW1lKF9fRklMRV9fKS4nL2NsYXNzLkNHVVJMX1NlcnZpY2VfKnBocCc7CiAgICAkdG1wID0gZ2xvYigkbWFzayk7CiAgICAkZmlsZXMgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgJGNsYXNzID0gc3RyX3JlcGxhY2UoJy5waHAnLCcnLHN0cl9yZXBsYWNlKCdjbGFzcy4nLCcnLGJhc2VuYW1lKCR0bXBbJGldKSkpOwogICAgICAgIGlmKCAkY2xhc3MgPT0gZ2V0X2NsYXNzKCkgKSBjb250aW51ZTsgLy8gZG9uJ3QgbG9hZCB0aGlzIGNsYXNzLgogICAgICAgIGlmKCAhY2xhc3NfZXhpc3RzKCRjbGFzcykgKSBjb250aW51ZTsgLy8gZm9yY2UgYW4gYXV0b2xvYWQuCiAgICAgICAgJGZpbGVzW10gPSAkY2xhc3M7CiAgICB9CgogICAgcmV0dXJuICRmaWxlczsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9zZXJ2aWNlcygpCiAgewogICAgJGFsbF9zZXJ2aWNlcyA9IHNlbGY6Omxpc3RfYWxsX3NlcnZpY2VzKCk7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUIGNsYXNzbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2d0aW55X3NlcnZpY2VzICc7CiAgICAkYXZhaWxhYmxlX3NlcnZpY2VzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKCiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3Rpbnlfc2VydmljZXMgKHNlcnZpY2UsY2xhc3NuYW1lLHNvcnRpbmcsYWN0aXZlKSBWQUxVRVMgKD8sPyw/LD8pJzsKICAgICRudW0gPSBjb3VudCgkYXZhaWxhYmxlX3NlcnZpY2VzKTsKICAgIGZvcmVhY2goICRhbGxfc2VydmljZXMgYXMgJHNlcnZpY2UgKXsKICAgICAgICBpZiggaXNfYXJyYXkoJGF2YWlsYWJsZV9zZXJ2aWNlcykgJiYgY291bnQoJGF2YWlsYWJsZV9zZXJ2aWNlcykgJiYgaW5fYXJyYXkoJHNlcnZpY2UsJGF2YWlsYWJsZV9zZXJ2aWNlcykgKSB7CiAgICAgICAgICAgIC8vIG5vIG5lZWQgb3QgdG91Y2ggdGhpcyBvbmUuCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgKyskbnVtOwogICAgICAgICRvYmogPSBuZXcgJHNlcnZpY2U7CiAgICAgICAgJG5hbWUgPSAkb2JqLT5nZXRfbmFtZSgpOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCRzZXJ2aWNlLCRudW0sMSkpOwogICAgICB9CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service_TinyURL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVVJMX1NlcnZpY2VfVGlueVVSTCBleHRlbmRzIENHVVJMX1NlcnZpY2UKewogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgewogICAgcmV0dXJuICdUaW55VVJMJzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBpc19zaG9ydCggJHVybCApIHsKICAgIHJldHVybiAhc3RyaXN0ciggJHVybCwgJ3Rpbnl1cmwuY29tLycgKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzaG9ydGVuKCR1cmwpCiAgeyAgCiAgICByZXR1cm4gY2dlX2h0dHA6OmdldCggJ2h0dHA6Ly90aW55dXJsLmNvbS9hcGktY3JlYXRlLnBocD91cmw9Jy51cmxlbmNvZGUoJHVybCkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGxlbmd0aGVuKCR1cmwpCiAgewogICAgJGJpdHMgPSBwYXJzZV91cmwoICR1cmwgKTsKICAgICRyZXN1bHQgPSAkdGhpcy0+dXJsX2dldCggJ2h0dHA6Ly90aW55dXJsLmNvbS9wcmV2aWV3LnBocD9udW09JyAuIHN1YnN0ciggJGJpdHNbJ3BhdGgnXSwgMSApICk7CiAgICBkZWJ1Z19kaXNwbGF5KCR1cmwpOwogICAgaWYgKCBwcmVnX21hdGNoKCcvPGEgaWQ9InJlZGlyZWN0dXJsIiBocmVmPSIoW14iXSspIj4vaXMnLCAkcmVzdWx0LCAkbWF0Y2hlcyApICkKICAgICAgcmV0dXJuICRtYXRjaGVzWzFdOwogICAgZWxzZQogICAgICByZXR1cm4gJHVybDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Service_Yourls.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHVVJMX1NlcnZpY2VfWW91cmxzIGV4dGVuZHMgQ0dVUkxfU2VydmljZQp7CiAgcHJpdmF0ZSAkX3VybDsKICBwcml2YXRlICRfc2lnbmF0dXJlOwoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogIHsKICAgIHJldHVybiAneW91cmxzJzsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gaGFzX3NldHRpbmdzKCkKICB7CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc3RvcmVfc2V0dGluZ3MoJHBhcmFtcykKICB7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgICRrZXlzID0gYXJyYXkoJ3lvdXJsc191cmwnLCd5b3VybHNfc2lnbmF0dXJlJyk7CiAgICAkcmVzID0gRkFMU0U7CiAgICBmb3JlYWNoKCAka2V5cyBhcyAka2V5ICkKICAgICAgewoJaWYoIGlzc2V0KCRwYXJhbXNbJGtleV0pICkKCSAgewoJICAgICRtb2QtPlNldFByZWZlcmVuY2UoJGtleSwkcGFyYW1zWyRrZXldKTsKCSAgICAkcmVzID0gVFJVRTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHJlczsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9tb2R1bGUoKS0+TGFuZygneW91cmxzX2Rlc2NyaXB0aW9uJyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRyb2xzKCkKICB7CiAgICAkdGhpcy0+YXV0aGVudGljYXRlKCk7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgIHJldHVybiBhcnJheSgKCQkgYXJyYXkoJG1vZC0+TGFuZygneW91cmxzX3VybCcpLAoJCSAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJ20xXycsJ3lvdXJsc191cmwnLCR0aGlzLT5fdXJsLDQwLDQwKSksCgkJIGFycmF5KCRtb2QtPkxhbmcoJ3lvdXJsc19zaWduYXR1cmUnKSwKCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCdtMV8nLCd5b3VybHNfc2lnbmF0dXJlJywkdGhpcy0+X3NpZ25hdHVyZSw0MCw0MCkpCgkJICk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGlzX3Nob3J0KCAkdXJsICkgewogICAgJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwogICAgcmV0dXJuIHN0cmlzdHIoICR1cmwsICR0aGlzLT5fdXJsICk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZSgpCiAgewogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dUaW55Jyk7CiAgICBpZiggaXNfb2JqZWN0KCRtb2QpICkKICAgICAgewoJJHRoaXMtPl91cmwgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCd5b3VybHNfdXJsJyk7CgkkdGhpcy0+X3NpZ25hdHVyZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3lvdXJsc19zaWduYXR1cmUnKTsKCXJldHVybiBUUlVFOwogICAgICB9CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNob3J0ZW4oJHVybCkKICB7CiAgICBpZiggISR0aGlzLT5hdXRoZW50aWNhdGUoKSApIHJldHVybiAkdXJsOwoKICAgICR0aGVfdXJsID0gJHRoaXMtPl91cmw7CiAgICBpZiggIWVuZHN3aXRoKCcveW91cmxzLWFwaS5waHAnLCR0aGVfdXJsKSApCiAgICAgIHsKCSR0aGVfdXJsIC49ICcveW91cmxzLWFwaS5waHAnOwogICAgICB9CgogICAgJGRhdGEgPSBhcnJheSgnYWN0aW9uJz0+J3Nob3J0dXJsJywKCQkgICdmb3JtYXQnPT4nanNvbicsCgkJICAnc2lnbmF0dXJlJz0+JHRoaXMtPl9zaWduYXR1cmUsCgkJICAndXJsJz0+JHVybCk7CiAgICAkcmVzdWx0ID0gY2dlX2h0dHA6OnBvc3QoJHRoZV91cmwsJGRhdGEpOwogICAgaWYoICEkcmVzdWx0ICkgcmV0dXJuICR1cmw7CiAgICAkcmVzdWx0ID0ganNvbl9kZWNvZGUoJHJlc3VsdCk7CiAgICBpZiggIWlzX29iamVjdCgkcmVzdWx0KSApIHJldHVybiAkdXJsOwogICAgaWYoICFpc3NldCgkcmVzdWx0LT5zaG9ydHVybCkgKSByZXR1cm4gJHVybDsKICAgIGlmKCBpc3NldCgkcmVzdWx0LT5zdGF0dXMpICYmICRyZXN1bHQtPnN0YXR1cyA9PSAnZmFpbCcgKQogICAgICB7CgkvLyBkaWQgaXQgcmVhbGx5IGZhaWwuLiBvciBpcyBpdCBqdXN0IGZha2luZyB1cz8KCWlmKCBpc3NldCgkcmVzdWx0LT5tZXNzYWdlKSAmJiBzdHJzdHIoJHJlc3VsdC0+bWVzc2FnZSwnYWxyZWFkeSBleGlzdHMnKSAhPT0gRkFMU0UgKQoJICB7CgkgICAgLy8gbm90IGFuIGVycm9yLgoJICB9CgllbHNlCgkgIHsKCSAgICByZXR1cm4gJHVybDsKCSAgfQogICAgICB9CgogICAgLy8gdG9kbzogYXVkaXQgdGhpcy4KICAgIHJldHVybiAkcmVzdWx0LT5zaG9ydHVybDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBsZW5ndGhlbigkdXJsKQogIHsKICAgIGlmKCAhJHRoaXMtPmF1dGhlbnRpY2F0ZSgpICkgcmV0dXJuICR1cmw7CgogICAgJHRoZV91cmwgPSAkdGhpcy0+X3VybDsKICAgIGlmKCAhZW5kc3dpdGgoJy95b3VybHMtYXBpLnBocCcsJHRoZV91cmwpICkKICAgICAgewoJJHRoZV91cmwgLj0gJy95b3VybHMtYXBpLnBocCc7CiAgICAgIH0KCiAgICAkZGF0YSA9IGFycmF5KCdmb3JtYXQnPT4nanNvbicsCiAgICAgICAgICAgICAgICAgICdhY3Rpb24nPT4nZXhwYW5kJywKCQkgICdzaWduYXR1cmUnPT4kdGhpcy0+X3NpZ25hdHVyZSwKCQkgICdzaG9ydHVybCc9PiR1cmwpOwogICAgJHJlc3VsdCA9IGNnZV9odHRwOjpwb3N0KCR0aGVfdXJsLCRkYXRhKTsKICAgIGlmKCAhJHJlc3VsdCApIHJldHVybiAkdXJsOwogICAgJHJlc3VsdCA9IGpzb25fZGVjb2RlKCRyZXN1bHQpOwogICAgaWYoICEkcmVzdWx0LT5zdGF0dXMgKQogICAgICB7Cglmb3JlYWNoKCAkcmVzdWx0LT5yZXN1bHRzIGFzICRkZXRhaWwgKQoJICB7CgkgICAgcmV0dXJuICRkZXRhaWwtPmxvbmdVcmw7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyB0b2RvOiBhdWRpdCB0aGlzLgoJcmV0dXJuICR1cmw7CiAgICAgIH0KICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Shortener.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgc2hvcnRlbmluZyBVUkxTLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dVUkxfU2hvcnRlbmVyCnsKICBwcml2YXRlIHN0YXRpYyAkX2NhY2hlID0gYXJyYXkoKTsKCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBjYWNoZV9lbmFibGVkKCkKICB7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgIHJldHVybiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9lbmFibGVkJywwKTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9zZXJ2aWNlcygkYWxsID0gZmFsc2UsJGZ1bGwgPSBmYWxzZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBzZXJ2aWNlLGNsYXNzbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2d0aW55X3NlcnZpY2VzJzsKICAgIGlmKCAkZnVsbCApICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2d0aW55X3NlcnZpY2VzJzsKICAgIGlmKCAhJGFsbCApICRxdWVyeSAuPSAnIFdIRVJFIGFjdGl2ZSA9IDEnOwogICAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgc29ydGluZyBBU0MnOwogICAgJGRhdGEgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICByZXR1cm4gJGRhdGE7CiAgfQoKCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBjYWNoZV9zaG9ydCgkdXJsKQogIHsKICAgIC8vIGxvb2sgZm9yIHRoaXMgdGhpbmcgaW4gdGhlIG1lbW9yeSBjYWNoZQogICAgaWYoIGlzc2V0KHNlbGY6OiRfY2FjaGVbJHVybF0pICkgcmV0dXJuIHNlbGY6OiRfY2FjaGVbJHVybF1bJ3Vfc2hvcnQnXTsKCiAgICAvLyBub3QgaW4gbWVtb3J5IGNhY2hlLi4uIHRyeSBkYiBjYWNoZQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2d0aW55X2NhY2hlCiAgICAgICAgICAgICAgIFdIRVJFIHVfbG9uZyA9ID8gT1Igb3JpZ2luYXRvciA9ID8nOwogICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCR1cmwsY2dlX3VybDo6Y3VycmVudF91cmwoKSkpOwogICAgaWYoICFpc19hcnJheSgkdG1wKSApIHsKICAgICAgICAvLyBub3BlLi4uIG5vdCB0aGVyZSBlaXRoZXIuCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIHdlIGdvdCBzb21ldGhpbmcuLi4uIHVwZGF0ZSB0aGUgbWVtb3J5IGNhY2hlCiAgICBzZWxmOjokX2NhY2hlID0gYXJyYXlfbWVyZ2Uoc2VsZjo6JF9jYWNoZSxjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwndV9sb25nJykpOwoKICAgIGlmKCBpc3NldChzZWxmOjokX2NhY2hlWyR1cmxdKSApIHsKICAgICAgICAvLyBmb3VuZCBpdC4KICAgICAgICByZXR1cm4gc2VsZjo6JF9jYWNoZVskdXJsXVsndV9zaG9ydCddOwogICAgfQoKICAgIC8vIHN0aWxsIG5vdGhpbmcgZm91bmQuCiAgICByZXR1cm47CiAgfQoKCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBjYWNoZV9sb25nKCR1cmwpCiAgewogICAgLy8gbG9vayBmb3IgdGhlIGRhbW5lZCB0aGluZyB0aGUgbG9uZyB3YXkgaW4gdGhlIGNhY2hlCiAgICBmb3JlYWNoKCBzZWxmOjokX2NhY2hlIGFzICRrZXkgPT4gJHJlYyApIHsKICAgICAgICBpZiggJHJlY1sndV9zaG9ydCddID09ICR1cmwgKSByZXR1cm4gJGtleTsKICAgIH0KCiAgICAvLyBub3QgaW4gbWVtb3J5IGNhY2hlLi4uIHRyeSBkYiBjYWNoZQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2d0aW55X2NhY2hlCiAgICAgICAgICAgICAgIFdIRVJFIHVfc2hvcnQgPSA/IE9SIG9yaWdpbmF0b3IgPSA/JzsKICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkdXJsLGNnZV91cmw6OmN1cnJlbnRfdXJsKCkpKTsKICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSB7CiAgICAgICAgLy8gbm9wZS4uLiBub3QgdGhlcmUgZWl0aGVyLgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyB3ZSBnb3Qgc29tZXRoaW5nLi4uLiB1cGRhdGUgdGhlIG1lbW9yeSBjYWNoZQogICAgc2VsZjo6JF9jYWNoZSA9IGFycmF5X21lcmdlKHNlbGY6OiRfY2FjaGUsY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ3VfbG9uZycpKTsKCiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgICAgICBpZiggJHRtcFskaV1bJ3Vfc2hvcnQnXSA9PSAkdXJsICkgcmV0dXJuICR0bXBbJGldWyd1X2xvbmcnXTsKICAgIH0KCiAgICAvLyBzdGlsbCBjb3VsZG4ndCBmaW5kIGl0LgogICAgcmV0dXJuOwogIH0KCgogIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gY2FjaGVfc3RvcmUoJGxvbmcsJHNob3J0KQogIHsKICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgaWYoIGlzc2V0KCRDTVNfQURNSU5fUEFHRSkgKSByZXR1cm47CgogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3RpbnlfY2FjaGUKICAgICAgICAgICAgICAgICh1X2xvbmcsdV9zaG9ydCxvcmlnaW5hdG9yKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGxvbmcsJHNob3J0LGNnZV91cmw6OmN1cnJlbnRfdXJsKCkpKTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNob3J0KCR1cmwsJHVzZV9jYWNoZSA9IFRSVUUsJHNlcnZpY2UgPSAnJykKICB7CiAgICBpZiggJHVzZV9jYWNoZSApIHsKICAgICAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1RpbnknKTsKICAgICAgICAkdXNlX2NhY2hlID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlY2FjaGUnLDEpOwogICAgfQoKICAgICRvcmlnX3VybCA9ICR1cmw7CiAgICBpZiggJHVzZV9jYWNoZSApIHsKICAgICAgICAvLyBzZWUgaWYgd2UgY2FuIGdldCBhIHNob3J0IHVybCBmcm9tIGNhY2hlCiAgICAgICAgJHVybCA9IHNlbGY6OmNhY2hlX3Nob3J0KCR1cmwpOwogICAgICAgIGlmKCAkdXJsICkgcmV0dXJuICR1cmw7CiAgICB9CgogICAgLy8gZ2V0IGl0IGZyb20gdGhlIHNlcnZpY2VzLgogICAgJHNlcnZpY2VzID0gc2VsZjo6Z2V0X3NlcnZpY2VzKCk7CiAgICBpZiggIWlzX2FycmF5KCRzZXJ2aWNlcykgfHwgY291bnQoJHNlcnZpY2VzKSA9PSAwICkgcmV0dXJuICR1cmw7CgogICAgaWYoICRzZXJ2aWNlICE9ICcnICkgewogICAgICAgIC8vIHdlIHdhbnQgYSBzcGVjaWZpYyBzZXJ2aWNlLgogICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkc2VydmljZSwnQ0dVUkxfU2VydmljZV8nKSApIHsKICAgICAgICAgICAgJHNlcnZpY2UgPSAnQ0dVUkxfU2VydmljZV8nLiRzZXJ2aWNlOwogICAgICAgIH0KCiAgICAgICAgJHNlcnZpY2VzX3QgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICRzZXJ2aWNlcyBhcyAkcmVjICkgewogICAgICAgICAgICBpZiggJHJlY1snY2xhc3NuYW1lJ10gPT0gJHNlcnZpY2UgKSB7CiAgICAgICAgICAgICAgICAkc2VydmljZXNfdFtdID0gJHJlYzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCBjb3VudCgkc2VydmljZXNfdCkgKSAkc2VydmljZXMgPSAkc2VydmljZXNfdDsKICAgIH0KCiAgICAvLyBmb3JlYWNoIHNlcnZpY2UuCiAgICBmb3JlYWNoKCAkc2VydmljZXMgYXMgJHJlYyApIHsKICAgICAgICBpZiggIWlzc2V0KCRyZWNbJ2NsYXNzbmFtZSddKSApIGNvbnRpbnVlOwogICAgICAgICRjbGFzcyA9ICRyZWNbJ2NsYXNzbmFtZSddOwogICAgICAgICRvYmogPSBuZXcgJGNsYXNzOwogICAgICAgICRzaG9ydF91cmwgPSAkb2JqLT5zaG9ydGVuKCRvcmlnX3VybCk7CiAgICAgICAgaWYoICRzaG9ydF91cmwgIT0gJG9yaWdfdXJsICkgewogICAgICAgICAgICAvLyB3ZSBnb3Qgb25lIGZyb20gdGhlIHNlcnZpY2UuCiAgICAgICAgICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHVGlueScpOwogICAgICAgICAgICAkbW9kLT5BdWRpdCgnJywkY2xhc3MsJ3Nob3J0X3VybDogJy4kc2hvcnRfdXJsKTsKICAgICAgICAgICAgaWYoICR1c2VfY2FjaGUgKSBzZWxmOjpjYWNoZV9zdG9yZSgkb3JpZ191cmwsJHNob3J0X3VybCk7CiAgICAgICAgICAgIHJldHVybiAkc2hvcnRfdXJsOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB1cmwgY291bGQgbm90IGJlIHNob3J0ZW5lZC4KICAgIHJldHVybiAkdXJsOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9uZygkdXJsLCR1c2VfY2FjaGUgPSBUUlVFKQogIHsKICAgICRvcmlnX3VybCA9ICR1cmw7CiAgICBpZiggJHVzZV9jYWNoZSApIHsKICAgICAgICAvLyBzZWUgaWYgd2UgY2FuIGdldCBhIGxvbmcgdXJsIGZyb20gY2FjaGUKICAgICAgICAkdXJsID0gc2VsZjo6Y2FjaGVfbG9uZygkdXJsKTsKICAgICAgICBpZiggJHVybCApIHJldHVybiAkdXJsOwogICAgfQoKICAgIC8vIGdldCBpdCBmcm9tIHNlcnZpY2VzLgogICAgJHNlcnZpY2VzID0gc2VsZjo6Z2V0X3NlcnZpY2VzKCk7CiAgICBpZiggIWlzX2FycmF5KCRzZXJ2aWNlcykgfHwgY291bnQoJHNlcnZpY2VzKSA9PSAwICkgcmV0dXJuICR1cmw7CgogICAgZm9yZWFjaCggJHNlcnZpY2VzIGFzICRjbGFzcyApIHsKICAgICAgICAkb2JqID0gbmV3ICRjbGFzczsKICAgICAgICAkdXJsID0gJG9iai0+bGVuZ3RoZW4oJHVybCk7CiAgICAgICAgaWYoICR1cmwgIT0gJG9yaWdfdXJsICkgcmV0dXJuICR1cmw7CiAgICB9CiAgICByZXR1cm4gJHVybDsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9zZXJ2aWNlKCR1cmwpCiAgewogICAgJHNlcnZpY2VzID0gc2VsZjo6Z2V0X3NlcnZpY2VzKCk7CiAgICBpZiggIWlzX2FycmF5KCRzZXJ2aWNlcykgfHwgY291bnQoJHNlcnZpY2VzKSA9PSAwICkKICAgICAgcmV0dXJuOwoKICAgIGZvcmVhY2goICRzZXJ2aWNlcyBhcyAkY2xhc3MgKSB7CiAgICAgICAgJG9iaiA9IG5ldyAkY2xhc3M7CiAgICAgICAgaWYoICRvYmotPmlzX3Nob3J0KCR1cmwpICkgcmV0dXJuICRjbGFzczsKICAgIH0KICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGURL_Smarty.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgc2hvcnRlbmluZyBVUkxTLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dVUkxfU21hcnR5CnsKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW5pdCgpCiAgICB7CiAgICAgICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ3RpbnknLGFycmF5KCdDR1VSTF9TbWFydHknLCdjZ3RpbnknKSk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2d0aW55KCRwYXJhbXMsJiRzbWFydHkpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydzcmMnXSkgKSByZXR1cm47CiAgICAgICAgJHNyYyA9IHRyaW0oJHBhcmFtc1snc3JjJ10pOwogICAgICAgIHVuc2V0KCRwYXJhbXNbJ3NyYyddKTsKCiAgICAgICAgJHNlcnZpY2UgPSAnJzsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snc2VydmljZSddKSApIHsKICAgICAgICAgICAgJHNlcnZpY2UgPSB0cmltKCRwYXJhbXNbJ3NlcnZpY2UnXSk7CiAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ3NlcnZpY2UnXSk7CiAgICAgICAgfQoKICAgICAgICBpZiggJHNyYyA9PSAnOjpIRVJFOjonICkgJHNyYyA9IGNnZV91cmw6OmN1cnJlbnRfdXJsKCk7CgogICAgICAgICR1c2VjYWNoZSA9IFRSVUU7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ25vY2FjaGUnXSkgJiYgJHBhcmFtc1snbm9jYWNoZSddICkgewogICAgICAgICAgICAkdXNlY2FjaGUgPSBGQUxTRTsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snbm9jYWNoZSddKTsKICAgICAgICB9CgogICAgICAgIC8vIGdldCByZW1haW5pbmcgcGFyYW1zLgogICAgICAgICR1cmwgPSAkc3JjOwogICAgICAgICRhc3NpZ24gPSBudWxsOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAgICRhc3NpZ24gPSAkcGFyYW1zWydhc3NpZ24nXTsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snYXNzaWduJ10pOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJHBhcmFtcykgKSB7CiAgICAgICAgICAgIGlmKCBzdHJwb3MoJHNyYywnPycpID09PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICR1cmwgLj0gJz8nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHVybCAuPSAnJic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHVybCAuPSBjZ2VfYXJyYXk6OmltcGxvZGVfd2l0aF9rZXkoJHBhcmFtcyk7CiAgICAgICAgfQoKICAgICAgICAkc2hvcnRfdXJsID0gQ0dVUkxfU2hvcnRlbmVyOjpzaG9ydCgkdXJsLCR1c2VjYWNoZSwkc2VydmljZSk7CgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24odHJpbSgkcGFyYW1zWydhc3NpZ24nXSksJHNob3J0X3VybCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRzaG9ydF91cmw7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.tablednd_0_5.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeSwgYWxsb3dzIHlvdSB0byBkcmFnIGFuZCBkcm9wIHRhYmxlIHJvd3MKICogWW91IGNhbiBzZXQgdXAgdmFyaW91cyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IHRoZSBzeXN0ZW0gd2lsbCB3b3JrCiAqIENvcHlyaWdodCAoYykgRGVuaXMgSG93bGV0dCA8ZGVuaXNoQGlzb2NyYS5jb20+CiAqIExpY2Vuc2VkIGxpa2UgalF1ZXJ5LCBzZWUgaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9MaWNlbnNlLgogKgogKiBDb25maWd1cmF0aW9uIG9wdGlvbnM6CiAqIAogKiBvbkRyYWdTdHlsZQogKiAgICAgVGhpcyBpcyB0aGUgc3R5bGUgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcm93IGR1cmluZyBkcmFnLiBUaGVyZSBhcmUgbGltaXRhdGlvbnMgdG8gdGhlIHN0eWxlcyB0aGF0IGNhbiBiZQogKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgcm93IChzdWNoIGFzIHlvdSBjYW4ndCBhc3NpZ24gYSBib3JkZXItLXdlbGwgeW91IGNhbiwgYnV0IGl0IHdvbid0IGJlCiAqICAgICBkaXNwbGF5ZWQpLiAoU28gaW5zdGVhZCBjb25zaWRlciB1c2luZyBvbkRyYWdDbGFzcy4pIFRoZSBDU1Mgc3R5bGUgdG8gYXBwbHkgaXMgc3BlY2lmaWVkIGFzCiAqICAgICBhIG1hcCAoYXMgdXNlZCBpbiB0aGUgalF1ZXJ5IGNzcyguLi4pIGZ1bmN0aW9uKS4KICogb25Ecm9wU3R5bGUKICogICAgIFRoaXMgaXMgdGhlIHN0eWxlIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIHJvdyB3aGVuIGl0IGlzIGRyb3BwZWQuIEFzIGZvciBvbkRyYWdTdHlsZSwgdGhlcmUgYXJlIGxpbWl0YXRpb25zCiAqICAgICB0byB3aGF0IHlvdSBjYW4gZG8uIEFsc28gdGhpcyByZXBsYWNlcyB0aGUgb3JpZ2luYWwgc3R5bGUsIHNvIGFnYWluIGNvbnNpZGVyIHVzaW5nIG9uRHJhZ0NsYXNzIHdoaWNoCiAqICAgICBpcyBzaW1wbHkgYWRkZWQgYW5kIHRoZW4gcmVtb3ZlZCBvbiBkcm9wLgogKiBvbkRyYWdDbGFzcwogKiAgICAgVGhpcyBjbGFzcyBpcyBhZGRlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBkcmFnIGFuZCB0aGVuIHJlbW92ZWQgd2hlbiB0aGUgcm93IGlzIGRyb3BwZWQuIEl0IGlzIG1vcmUKICogICAgIGZsZXhpYmxlIHRoYW4gdXNpbmcgb25EcmFnU3R5bGUgc2luY2UgaXQgY2FuIGJlIGluaGVyaXRlZCBieSB0aGUgcm93IGNlbGxzIGFuZCBvdGhlciBjb250ZW50LiBUaGUgZGVmYXVsdAogKiAgICAgaXMgY2xhc3MgaXMgdERuRF93aGlsZURyYWcuIFNvIHRvIHVzZSB0aGUgZGVmYXVsdCwgc2ltcGx5IGN1c3RvbWlzZSB0aGlzIENTUyBjbGFzcyBpbiB5b3VyCiAqICAgICBzdHlsZXNoZWV0LgogKiBvbkRyb3AKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgdGFibGUKICogICAgIGFuZCB0aGUgcm93IHRoYXQgd2FzIGRyb3BwZWQuIFlvdSBjYW4gd29yayBvdXQgdGhlIG5ldyBvcmRlciBvZiB0aGUgcm93cyBieSB1c2luZwogKiAgICAgdGFibGUucm93cy4KICogb25EcmFnU3RhcnQKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUKICogICAgIHRhYmxlIGFuZCB0aGUgcm93IHdoaWNoIHRoZSB1c2VyIGhhcyBzdGFydGVkIHRvIGRyYWcuCiAqIG9uQWxsb3dEcm9wCiAqICAgICBQYXNzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBhcyBhIHJvdyBpcyBvdmVyIGFub3RoZXIgcm93LiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCBhbGxvdyAKICogICAgIGRyb3BwaW5nIG9uIHRoYXQgcm93LCBvdGhlcndpc2Ugbm90LiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgZHJhZ2dlZCByb3cgYW5kIHRoZSByb3cgdW5kZXIKICogICAgIHRoZSBjdXJzb3IuIEl0IHJldHVybnMgYSBib29sZWFuOiB0cnVlIGFsbG93cyB0aGUgZHJvcCwgZmFsc2UgZG9lc24ndCBhbGxvdyBpdC4KICogc2Nyb2xsQW1vdW50CiAqICAgICBUaGlzIGlzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbCBpZiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZQogKiAgICAgd2luZG93LiBUaGUgcGFnZSBzaG91bGQgYXV0b21hdGljYWxseSBzY3JvbGwgdXAgb3IgZG93biBhcyBhcHByb3ByaWF0ZSAodGVzdGVkIGluIElFNiwgSUU3LCBTYWZhcmksIEZGMiwKICogICAgIEZGMyBiZXRhCiAqIGRyYWdIYW5kbGUKICogICAgIFRoaXMgaXMgdGhlIG5hbWUgb2YgYSBjbGFzcyB0aGF0IHlvdSBhc3NpZ24gdG8gb25lIG9yIG1vcmUgY2VsbHMgaW4gZWFjaCByb3cgdGhhdCBpcyBkcmFnZ2FibGUuIElmIHlvdQogKiAgICAgc3BlY2lmeSB0aGlzIGNsYXNzLCB0aGVuIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3Vyc29yOiBtb3ZlIGluIHRoZSBDU1MgYW5kIG9ubHkgdGhlc2UgY2VsbHMKICogICAgIHdpbGwgaGF2ZSB0aGUgZHJhZyBiZWhhdmlvdXIuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIGRyYWdIYW5kbGUsIHRoZW4geW91IGdldCB0aGUgb2xkIGJlaGF2aW91ciB3aGVyZQogKiAgICAgdGhlIHdob2xlIHJvdyBpcyBkcmFnZ2FibGUuCiAqIAogKiBPdGhlciB3YXlzIHRvIGNvbnRyb2wgYmVoYXZpb3VyOgogKgogKiBBZGQgY2xhc3M9Im5vZHJvcCIgdG8gYW55IHJvd3MgZm9yIHdoaWNoIHlvdSBkb24ndCB3YW50IHRvIGFsbG93IGRyb3BwaW5nLCBhbmQgY2xhc3M9Im5vZHJhZyIgdG8gYW55IHJvd3MKICogdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBiZSBkcmFnZ2FibGUuCiAqCiAqIEluc2lkZSB0aGUgb25Ecm9wIG1ldGhvZCB5b3UgY2FuIGFsc28gY2FsbCAkLnRhYmxlRG5ELnNlcmlhbGl6ZSgpIHRoaXMgcmV0dXJucyBhIHN0cmluZyBvZiB0aGUgZm9ybQogKiA8dGFibGVJRD5bXT08cm93SUQxPiY8dGFibGVJRD5bXT08cm93SUQyPiBzbyB0aGF0IHlvdSBjYW4gc2VuZCB0aGlzIGJhY2sgdG8gdGhlIHNlcnZlci4gVGhlIHRhYmxlIG11c3QgaGF2ZQogKiBhbiBJRCBhcyBtdXN0IGFsbCB0aGUgcm93cy4KICoKICogT3RoZXIgbWV0aG9kczoKICoKICogJCgiLi4uIikudGFibGVEbkRVcGRhdGUoKSAKICogV2lsbCB1cGRhdGUgYWxsIHRoZSBtYXRjaGluZyB0YWJsZXMsIHRoYXQgaXMgaXQgd2lsbCByZWFwcGx5IHRoZSBtb3VzZWRvd24gbWV0aG9kIHRvIHRoZSByb3dzIChvciBoYW5kbGUgY2VsbHMpLgogKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZSByb3dzIHVzaW5nIEFqYXggYW5kIHlvdSB3YW50IHRvIG1ha2UgdGhlIHRhYmxlIGRyYWdnYWJsZSBhZ2Fpbi4KICogVGhlIHRhYmxlIG1haW50YWlucyB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbiAoc28geW91IGRvbid0IGhhdmUgdG8gc3BlY2lmeSBpdCBhZ2FpbikuCiAqCiAqICQoIi4uLiIpLnRhYmxlRG5EU2VyaWFsaXplKCkKICogV2lsbCBzZXJpYWxpemUgYW5kIHJldHVybiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgYXMgYWJvdmUsIGJ1dCBmb3IgZWFjaCBvZiB0aGUgbWF0Y2hpbmcgdGFibGVzLS1zbyBpdCBjYW4gYmUKICogY2FsbGVkIGZyb20gYW55d2hlcmUgYW5kIGlzbid0IGRlcGVuZGVudCBvbiB0aGUgY3VycmVudFRhYmxlIGJlaW5nIHNldCB1cCBjb3JyZWN0bHkgYmVmb3JlIGNhbGxpbmcKICoKICogS25vd24gcHJvYmxlbXM6CiAqIC0gQXV0by1zY29sbCBoYXMgc29tZSBwcm9ibGVtcyB3aXRoIElFNyAgKGl0IHNjcm9sbHMgZXZlbiB3aGVuIGl0IHNob3VsZG4ndCksIHdvcmstYXJvdW5kOiBzZXQgc2Nyb2xsQW1vdW50IHRvIDAKICogCiAqIFZlcnNpb24gMC4yOiAyMDA4LTAyLTIwIEZpcnN0IHB1YmxpYyB2ZXJzaW9uCiAqIFZlcnNpb24gMC4zOiAyMDA4LTAyLTA3IEFkZGVkIG9uRHJhZ1N0YXJ0IG9wdGlvbgogKiAgICAgICAgICAgICAgICAgICAgICAgICBNYWRlIHRoZSBzY3JvbGwgYW1vdW50IGNvbmZpZ3VyYWJsZSAoZGVmYXVsdCBpcyA1IGFzIGJlZm9yZSkKICogVmVyc2lvbiAwLjQ6IDIwMDgtMDMtMTUgQ2hhbmdlZCB0aGUgbm9EcmFnL25vRHJvcCBhdHRyaWJ1dGVzIHRvIG5vZHJhZy9ub2Ryb3AgY2xhc3NlcwogKiAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBvbkFsbG93RHJvcCB0byBjb250cm9sIGRyb3BwaW5nCiAqICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIGEgYnVnIHdoaWNoIG1lYW50IHRoYXQgeW91IGNvdWxkbid0IHNldCB0aGUgc2Nyb2xsIGFtb3VudCBpbiBib3RoIGRpcmVjdGlvbnMKICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc2VyaWFsaXplIG1ldGhvZAogKiBWZXJzaW9uIDAuNTogMjAwOC0wNS0xNiBDaGFuZ2VkIHNvIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBkcmFnSGFuZGxlIGNsYXNzIGl0IGRvZXNuJ3QgbWFrZSB0aGUgd2hvbGUgcm93CiAqICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZQogKiAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgc2VyaWFsaXplIG1ldGhvZCB0byB1c2UgYSBkZWZhdWx0IChhbmQgc2V0dGFibGUpIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgdGFibGVEbkR1cGF0ZSgpIGFuZCB0YWJsZURuRFNlcmlhbGl6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHlvdSBhcmUgb3V0c2lkZSB0aGUgdGFibGUKICovCmpRdWVyeS50YWJsZURuRCA9IHsKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgdGFibGUgYmVpbmcgZHJhZ2dlZCAqLwogICAgY3VycmVudFRhYmxlIDogbnVsbCwKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgZHJhZyBvYmplY3QgaWYgYW55ICovCiAgICBkcmFnT2JqZWN0OiBudWxsLAogICAgLyoqIFRoZSBjdXJyZW50IG1vdXNlIG9mZnNldCAqLwogICAgbW91c2VPZmZzZXQ6IG51bGwsCiAgICAvKiogUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZSBvZiBZIHNvIHRoYXQgd2UgZG9uJ3QgZG8gdG9vIG11Y2ggcHJvY2Vzc2luZyAqLwogICAgb2xkWTogMCwKCiAgICAvKiogQWN0dWFsbHkgYnVpbGQgdGhlIHN0cnVjdHVyZSAqLwogICAgYnVpbGQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgICAgICAvLyBTZXQgdXAgdGhlIGRlZmF1bHRzIGlmIGFueQoKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIFRoaXMgaXMgYm91bmQgdG8gZWFjaCBtYXRjaGluZyB0YWJsZSwgc2V0IHVwIHRoZSBkZWZhdWx0cyBhbmQgb3ZlcnJpZGUgd2l0aCB1c2VyIG9wdGlvbnMKICAgICAgICAgICAgdGhpcy50YWJsZURuRENvbmZpZyA9IGpRdWVyeS5leHRlbmQoewogICAgICAgICAgICAgICAgb25EcmFnU3R5bGU6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyb3BTdHlsZTogbnVsbCwKCQkJCS8vIEFkZCBpbiB0aGUgZGVmYXVsdCBjbGFzcyBmb3Igd2hpbGVEcmFnZ2luZwoJCQkJb25EcmFnQ2xhc3M6ICJ0RG5EX3doaWxlRHJhZyIsCiAgICAgICAgICAgICAgICBvbkRyb3A6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydDogbnVsbCwKICAgICAgICAgICAgICAgIHNjcm9sbEFtb3VudDogNSwKCQkJCXNlcmlhbGl6ZVJlZ2V4cDogL1teXC1dKiQvLCAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSB0byB0cmltIHJvdyBJRHMKCQkJCXNlcmlhbGl6ZVBhcmFtTmFtZTogbnVsbCwgLy8gSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhbm90aGVyIHBhcmFtZXRlciBuYW1lIGluc3RlYWQgb2YgdGhlIHRhYmxlIElECiAgICAgICAgICAgICAgICBkcmFnSGFuZGxlOiBudWxsIC8vIElmIHlvdSBnaXZlIHRoZSBuYW1lIG9mIGEgY2xhc3MgaGVyZSwgdGhlbiBvbmx5IENlbGxzIHdpdGggdGhpcyBjbGFzcyB3aWxsIGJlIGRyYWdnYWJsZQogICAgICAgICAgICB9LCBvcHRpb25zIHx8IHt9KTsKICAgICAgICAgICAgLy8gTm93IG1ha2UgdGhlIHJvd3MgZHJhZ2dhYmxlCiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBOb3cgd2UgbmVlZCB0byBjYXB0dXJlIHRoZSBtb3VzZSB1cCBhbmQgbW91c2UgbW92ZSBldmVudAogICAgICAgIC8vIFdlIGNhbiB1c2UgYmluZCBzbyB0aGF0IHdlIGRvbid0IGludGVyZmVyZSB3aXRoIG90aGVyIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KQogICAgICAgICAgICAuYmluZCgnbW91c2Vtb3ZlJywgalF1ZXJ5LnRhYmxlRG5ELm1vdXNlbW92ZSkKICAgICAgICAgICAgLmJpbmQoJ21vdXNldXAnLCBqUXVlcnkudGFibGVEbkQubW91c2V1cCk7CgogICAgICAgIC8vIERvbid0IGJyZWFrIHRoZSBjaGFpbgogICAgICAgIHJldHVybiB0aGlzOwogICAgfSwKCiAgICAvKiogVGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwgdGhlIHJvd3Mgb24gdGhlIHRhYmxlIGRyYWdnYWJsZSBhcGFydCBmcm9tIHRob3NlIG1hcmtlZCBhcyAiTm9EcmFnIiAqLwogICAgbWFrZURyYWdnYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWc7CgkJaWYgKHRhYmxlLnRhYmxlRG5EQ29uZmlnLmRyYWdIYW5kbGUpIHsKCQkJLy8gV2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHNwZWNpZmllZCBjZWxscwoJCQl2YXIgY2VsbHMgPSBqUXVlcnkoInRkLiIrdGFibGUudGFibGVEbkRDb25maWcuZHJhZ0hhbmRsZSwgdGFibGUpOwoJCQljZWxscy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJLy8gVGhlIGNlbGwgaXMgYm91bmQgdG8gInRoaXMiCiAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykubW91c2Vkb3duKGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPSB0aGlzLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IHRhYmxlOwogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5vbkRyYWdTdGFydCkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHRoZSBvbkRyb3AgbWV0aG9kIGlmIHRoZXJlIGlzIG9uZQogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCQkJfSkKCQl9IGVsc2UgewoJCQkvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHdob2xlIHJvdwoJICAgICAgICB2YXIgcm93cyA9IGpRdWVyeSgidHIiLCB0YWJsZSk7IC8vIGdldCBhbGwgdGhlIHJvd3MgYXMgYSB3cmFwcGVkIHNldAoJICAgICAgICByb3dzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCByb3csIHRoZSByb3cgaXMgYm91bmQgdG8gInRoaXMiCgkJCQl2YXIgcm93ID0galF1ZXJ5KHRoaXMpOwoJCQkJaWYgKCEgcm93Lmhhc0NsYXNzKCJub2RyYWciKSkgewoJICAgICAgICAgICAgICAgIHJvdy5tb3VzZWRvd24oZnVuY3Rpb24oZXYpIHsKCSAgICAgICAgICAgICAgICAgICAgaWYgKGV2LnRhcmdldC50YWdOYW1lID09ICJURCIpIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ID0gdGhpczsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgPSB0YWJsZTsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CgkgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJhZ1N0YXJ0KSB7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwoJICAgICAgICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICAgICAgfSkuY3NzKCJjdXJzb3IiLCAibW92ZSIpOyAvLyBTdG9yZSB0aGUgdGFibGVEbkQgb2JqZWN0CgkJCQl9CgkJCX0pOwoJCX0KCX0sCgoJdXBkYXRlVGFibGVzOiBmdW5jdGlvbigpIHsKCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJaWYgKHRoaXMudGFibGVEbkRDb25maWcpIHsKCQkJCWpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwoJCQl9CgkJfSkKCX0sCgogICAgLyoqIEdldCB0aGUgbW91c2UgY29vcmRpbmF0ZXMgZnJvbSB0aGUgZXZlbnQgKGFsbG93aW5nIGZvciBicm93c2VyIGRpZmZlcmVuY2VzKSAqLwogICAgbW91c2VDb29yZHM6IGZ1bmN0aW9uKGV2KXsKICAgICAgICBpZihldi5wYWdlWCB8fCBldi5wYWdlWSl7CiAgICAgICAgICAgIHJldHVybiB7eDpldi5wYWdlWCwgeTpldi5wYWdlWX07CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHg6ZXYuY2xpZW50WCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCAtIGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCwKICAgICAgICAgICAgeTpldi5jbGllbnRZICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgIC0gZG9jdW1lbnQuYm9keS5jbGllbnRUb3AKICAgICAgICB9OwogICAgfSwKCiAgICAvKiogR2l2ZW4gYSB0YXJnZXQgZWxlbWVudCBhbmQgYSBtb3VzZSBldmVudCwgZ2V0IHRoZSBtb3VzZSBvZmZzZXQgZnJvbSB0aGF0IGVsZW1lbnQuCiAgICAgICAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gYW5kIHRoZSBtb3VzZSBwb3NpdGlvbiAqLwogICAgZ2V0TW91c2VPZmZzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgZXYpIHsKICAgICAgICBldiA9IGV2IHx8IHdpbmRvdy5ldmVudDsKCiAgICAgICAgdmFyIGRvY1BvcyAgICA9IHRoaXMuZ2V0UG9zaXRpb24odGFyZ2V0KTsKICAgICAgICB2YXIgbW91c2VQb3MgID0gdGhpcy5tb3VzZUNvb3Jkcyhldik7CiAgICAgICAgcmV0dXJuIHt4Om1vdXNlUG9zLnggLSBkb2NQb3MueCwgeTptb3VzZVBvcy55IC0gZG9jUG9zLnl9OwogICAgfSwKCiAgICAvKiogR2V0IHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IGJ5IGdvaW5nIHVwIHRoZSBET00gdHJlZSBhbmQgYWRkaW5nIHVwIGFsbCB0aGUgb2Zmc2V0cyAqLwogICAgZ2V0UG9zaXRpb246IGZ1bmN0aW9uKGUpewogICAgICAgIHZhciBsZWZ0ID0gMDsKICAgICAgICB2YXIgdG9wICA9IDA7CiAgICAgICAgLyoqIFNhZmFyaSBmaXggLS0gdGhhbmtzIHRvIEx1aXMgQ2hhdG8gZm9yIHRoaXMhICovCiAgICAgICAgaWYgKGUub2Zmc2V0SGVpZ2h0ID09IDApIHsKICAgICAgICAgICAgLyoqIFNhZmFyaSAyIGRvZXNuJ3QgY29ycmVjdGx5IGdyYWIgdGhlIG9mZnNldFRvcCBvZiBhIHRhYmxlIHJvdwogICAgICAgICAgICB0aGlzIGlzIGRldGFpbGVkIGhlcmU6CiAgICAgICAgICAgIGh0dHA6Ly9qYWNvYi5wZWFyZ3JvdmUuY29tL2Jsb2cvMjAwNi90ZWNobmljYWwvdGFibGUtcm93LW9mZnNldHRvcC1idWctaW4tc2FmYXJpLwogICAgICAgICAgICB0aGUgc29sdXRpb24gaXMgbGlrZXdpc2Ugbm90ZWQgdGhlcmUsIGdyYWIgdGhlIG9mZnNldCBvZiBhIHRhYmxlIGNlbGwgaW4gdGhlIHJvdyAtIHRoZSBmaXJzdENoaWxkLgogICAgICAgICAgICBub3RlIHRoYXQgZmlyZWZveCB3aWxsIHJldHVybiBhIHRleHQgbm9kZSBhcyBhIGZpcnN0IGNoaWxkLCBzbyBkZXNpZ25pbmcgYSBtb3JlIHRob3JvdWdoCiAgICAgICAgICAgIHNvbHV0aW9uIG1heSBuZWVkIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQsIGZvciBub3cgdGhpcyBzZWVtcyB0byB3b3JrIGluIGZpcmVmb3gsIHNhZmFyaSwgaWUgKi8KICAgICAgICAgICAgZSA9IGUuZmlyc3RDaGlsZDsgLy8gYSB0YWJsZSBjZWxsCiAgICAgICAgfQoKICAgICAgICB3aGlsZSAoZS5vZmZzZXRQYXJlbnQpewogICAgICAgICAgICBsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAgICAgdG9wICArPSBlLm9mZnNldFRvcDsKICAgICAgICAgICAgZSAgICAgPSBlLm9mZnNldFBhcmVudDsKICAgICAgICB9CgogICAgICAgIGxlZnQgKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIHRvcCAgKz0gZS5vZmZzZXRUb3A7CgogICAgICAgIHJldHVybiB7eDpsZWZ0LCB5OnRvcH07CiAgICB9LAoKICAgIG1vdXNlbW92ZTogZnVuY3Rpb24oZXYpIHsKICAgICAgICBpZiAoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgZHJhZ09iaiA9IGpRdWVyeShqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCk7CiAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgdmFyIG1vdXNlUG9zID0galF1ZXJ5LnRhYmxlRG5ELm1vdXNlQ29vcmRzKGV2KTsKICAgICAgICB2YXIgeSA9IG1vdXNlUG9zLnkgLSBqUXVlcnkudGFibGVEbkQubW91c2VPZmZzZXQueTsKICAgICAgICAvL2F1dG8gc2Nyb2xsIHRoZSB3aW5kb3cKCSAgICB2YXIgeU9mZnNldCA9IHdpbmRvdy5wYWdlWU9mZnNldDsKCSAJaWYgKGRvY3VtZW50LmFsbCkgewoJICAgICAgICAvLyBXaW5kb3dzIHZlcnNpb24KCSAgICAgICAgLy95T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50LmNvbXBhdE1vZGUgIT0gJ3VuZGVmaW5lZCcgJiYKCSAgICAgICAgICAgICBkb2N1bWVudC5jb21wYXRNb2RlICE9ICdCYWNrQ29tcGF0JykgewoJICAgICAgICAgICB5T2Zmc2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKCSAgICAgICAgfQoJICAgICAgICBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQuYm9keSAhPSAndW5kZWZpbmVkJykgewoJICAgICAgICAgICB5T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICB9CgoJICAgIH0KCQkgICAgCgkJaWYgKG1vdXNlUG9zLnkteU9mZnNldCA8IGNvbmZpZy5zY3JvbGxBbW91bnQpIHsKCSAgICAJd2luZG93LnNjcm9sbEJ5KDAsIC1jb25maWcuc2Nyb2xsQW1vdW50KTsKCSAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ID8gd2luZG93LmlubmVySGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICBpZiAod2luZG93SGVpZ2h0LShtb3VzZVBvcy55LXlPZmZzZXQpIDwgY29uZmlnLnNjcm9sbEFtb3VudCkgewogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIGNvbmZpZy5zY3JvbGxBbW91bnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgaWYgKHkgIT0galF1ZXJ5LnRhYmxlRG5ELm9sZFkpIHsKICAgICAgICAgICAgLy8gd29yayBvdXQgaWYgd2UncmUgZ29pbmcgdXAgb3IgZG93bi4uLgogICAgICAgICAgICB2YXIgbW92aW5nRG93biA9IHkgPiBqUXVlcnkudGFibGVEbkQub2xkWTsKICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBvbGQgdmFsdWUKICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELm9sZFkgPSB5OwogICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHN0eWxlIHRvIHNob3cgd2UncmUgZHJhZ2dpbmcKCQkJaWYgKGNvbmZpZy5vbkRyYWdDbGFzcykgewoJCQkJZHJhZ09iai5hZGRDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgZHJhZ09iai5jc3MoY29uZmlnLm9uRHJhZ1N0eWxlKTsKCQkJfQogICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdmVyIGEgcm93IHRoZW4gbW92ZSB0aGUgZHJhZ2dlZCByb3cgdG8gdGhlcmUgc28gdGhhdCB0aGUgdXNlciBzZWVzIHRoZQogICAgICAgICAgICAvLyBlZmZlY3QgZHluYW1pY2FsbHkKICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3cgPSBqUXVlcnkudGFibGVEbkQuZmluZERyb3BUYXJnZXRSb3coZHJhZ09iaiwgeSk7CiAgICAgICAgICAgIGlmIChjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAvLyBUT0RPIHdvcnJ5IGFib3V0IHdoYXQgaGFwcGVucyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBUQk9ESUVTCiAgICAgICAgICAgICAgICBpZiAobW92aW5nRG93biAmJiBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCAhPSBjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QsIGN1cnJlbnRSb3cubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghIG1vdmluZ0Rvd24gJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgIT0gY3VycmVudFJvdykgewogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LCBjdXJyZW50Um93KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKCiAgICAvKiogV2UncmUgb25seSB3b3JyaWVkIGFib3V0IHRoZSB5IHBvc2l0aW9uIHJlYWxseSwgYmVjYXVzZSB3ZSBjYW4gb25seSBtb3ZlIHJvd3MgdXAgYW5kIGRvd24gKi8KICAgIGZpbmREcm9wVGFyZ2V0Um93OiBmdW5jdGlvbihkcmFnZ2VkUm93LCB5KSB7CiAgICAgICAgdmFyIHJvd3MgPSBqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlLnJvd3M7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpPHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbaV07CiAgICAgICAgICAgIHZhciByb3dZICAgID0gdGhpcy5nZXRQb3NpdGlvbihyb3cpLnk7CiAgICAgICAgICAgIHZhciByb3dIZWlnaHQgPSBwYXJzZUludChyb3cub2Zmc2V0SGVpZ2h0KS8yOwogICAgICAgICAgICBpZiAocm93Lm9mZnNldEhlaWdodCA9PSAwKSB7CiAgICAgICAgICAgICAgICByb3dZID0gdGhpcy5nZXRQb3NpdGlvbihyb3cuZmlyc3RDaGlsZCkueTsKICAgICAgICAgICAgICAgIHJvd0hlaWdodCA9IHBhcnNlSW50KHJvdy5maXJzdENoaWxkLm9mZnNldEhlaWdodCkvMjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBCZWNhdXNlIHdlIGFsd2F5cyBoYXZlIHRvIGluc2VydCBiZWZvcmUsIHdlIG5lZWQgdG8gb2Zmc2V0IHRoZSBoZWlnaHQgYSBiaXQKICAgICAgICAgICAgaWYgKCh5ID4gcm93WSAtIHJvd0hlaWdodCkgJiYgKHkgPCAocm93WSArIHJvd0hlaWdodCkpKSB7CiAgICAgICAgICAgICAgICAvLyB0aGF0J3MgdGhlIHJvdyB3ZSdyZSBvdmVyCgkJCQkvLyBJZiBpdCdzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHJvdywgaWdub3JlIGl0CgkJCQlpZiAocm93ID09IGRyYWdnZWRSb3cpIHtyZXR1cm4gbnVsbDt9CiAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0galF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZzsKICAgICAgICAgICAgICAgIGlmIChjb25maWcub25BbGxvd0Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uQWxsb3dEcm9wKGRyYWdnZWRSb3csIHJvdykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewoJCQkJCS8vIElmIGEgcm93IGhhcyBub2Ryb3AgY2xhc3MsIHRoZW4gZG9uJ3QgYWxsb3cgZHJvcHBpbmcgKGluc3BpcmVkIGJ5IEpvaG4gVGFyciBhbmQgRmFtaWMpCiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZHJvcCA9IGpRdWVyeShyb3cpLmhhc0NsYXNzKCJub2Ryb3AiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoISBub2Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfSwKCiAgICBtb3VzZXVwOiBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QpIHsKICAgICAgICAgICAgdmFyIGRyb3BwZWRSb3cgPSBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdDsKICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBkcmFnT2JqZWN0LCB0aGVuIHdlIG5lZWQgdG8gcmVsZWFzZSBpdCwKICAgICAgICAgICAgLy8gVGhlIHJvdyB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBwbGFjZSBzbyB3ZSBqdXN0IHJlc2V0IHN0dWZmCgkJCWlmIChjb25maWcub25EcmFnQ2xhc3MpIHsKCSAgICAgICAgICAgIGpRdWVyeShkcm9wcGVkUm93KS5yZW1vdmVDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgalF1ZXJ5KGRyb3BwZWRSb3cpLmNzcyhjb25maWcub25Ecm9wU3R5bGUpOwoJCQl9CiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ICAgPSBudWxsOwogICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJvcCkgewogICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICAgICAgICAgIGNvbmZpZy5vbkRyb3AoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSwgZHJvcHBlZFJvdyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IG51bGw7IC8vIGxldCBnbyBvZiB0aGUgdGFibGUgdG9vCiAgICAgICAgfQogICAgfSwKCiAgICBzZXJpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiBqUXVlcnkudGFibGVEbkQuc2VyaWFsaXplVGFibGUoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogTm8gVGFibGUgaWQgc2V0LCB5b3UgbmVlZCB0byBzZXQgYW4gaWQgb24geW91ciB0YWJsZSBhbmQgZXZlcnkgcm93IjsKICAgICAgICB9CiAgICB9LAoKCXNlcmlhbGl6ZVRhYmxlOiBmdW5jdGlvbih0YWJsZSkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB2YXIgdGFibGVJZCA9IHRhYmxlLmlkOwogICAgICAgIHZhciByb3dzID0gdGFibGUucm93czsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8cm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHJlc3VsdCArPSAiJiI7CiAgICAgICAgICAgIHZhciByb3dJZCA9IHJvd3NbaV0uaWQ7CiAgICAgICAgICAgIGlmIChyb3dJZCAmJiByb3dJZCAmJiB0YWJsZS50YWJsZURuRENvbmZpZyAmJiB0YWJsZS50YWJsZURuRENvbmZpZy5zZXJpYWxpemVSZWdleHApIHsKICAgICAgICAgICAgICAgIHJvd0lkID0gcm93SWQubWF0Y2godGFibGUudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKVswXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0ICs9IHRhYmxlSWQgKyAnW109JyArIHJvd0lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwoJfSwKCglzZXJpYWxpemVUYWJsZXM6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJcmVzdWx0ICs9IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZSh0aGlzKTsKCQl9KTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKfQoKalF1ZXJ5LmZuLmV4dGVuZCgKCXsKCQl0YWJsZURuRCA6IGpRdWVyeS50YWJsZURuRC5idWlsZCwKCQl0YWJsZURuRFVwZGF0ZSA6IGpRdWVyeS50YWJsZURuRC51cGRhdGVUYWJsZXMsCgkJdGFibGVEbkRTZXJpYWxpemU6IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZXMKCX0KKTs=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGRiID0mICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgokZmxkcyA9ICdzZXJ2aWNlIEMoNTApIEtFWSBOT1QgTlVMTCwKICAgICAgICAgY2xhc3NuYW1lIEMoNTApIEtFWSBOT1QgTlVMTCwKICAgICAgICAgc29ydGluZyBJLCAKICAgICAgICAgYWN0aXZlICBJMSc7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3Rpbnlfc2VydmljZXMnLAoJCQkJICAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAndV9sb25nIEMoMjU1KSBLRVkgTk9UIE5VTEwsCiAgICAgICAgIHVfc2hvcnQgQygyNTUpLAogICAgICAgICBvcmlnaW5hdG9yIEMoMjU1KSc7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3RpbnlfY2FjaGUnLAoJCQkJICAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NndF9vcmlnJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3RpbnlfY2FjaGUnLCdvcmlnaW5hdG9yJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIHBvcHVsYXRlIG91ciBzZXJ2aWNlcy4KQ0dVUkxfU2VydmljZV9NYW5hZ2VyOjp1cGRhdGVfc2VydmljZXMoKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGRiID0gJHRoaXMtPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2d0aW55X3NlcnZpY2VzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ3RpbnlfY2FjaGUiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHVGlueSAoYykgMjAwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHNob3J0ZW5pbmcgVVJMUy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKQ0dVUkxfU2VydmljZV9NYW5hZ2VyOjp1cGRhdGVfc2VydmljZXMoKTsgLy8gYWx3YXlzIHVwZGF0ZSBzZXJ2aWNlcy4KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_services_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5zY3JvbGxhYmxlIHsKICBkaXNwbGF5OiBub25lOwogIHdpZHRoOiA5MCU7Cn0KI2xpc3QgdWwgewogIHdpZHRoOiA5MCU7Cn0KI2xpc3QgdWwgbGkgewogIHBhZGRpbmctdG9wOiAwLjVlbTsKICBwYWRkaW5nLWJvdHRvbTogMC41ZW07CiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCBncmV5Owp9Ci5tb2RpZmllZCB7CiAgZGlzcGxheTogbm9uZTsKfQo8L3N0eWxlPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJy5lZGl0X2xpbmsnKS5jbGljayhmdW5jdGlvbigpewogICAgdmFyIHNlbCA9ICQodGhpcykuYXR0cigncmVsJyk7CiAgICAkKCcuc2Nyb2xsYWJsZScpLmhpZGUoJ3NsaWRlJywgeyBkaXJlY3Rpb246ICdsZWZ0JyB9LCAyNTAgKTsKICAgICQoJzpzdWJtaXQuc2F2ZV9zZXJ2aWNlcycpLmhpZGUoJ3Nsb3cnKTsKICAgICQoc2VsKS5zaG93KCdzbGlkZScsIHsgZGlyZWN0aW9uOiAncmlnaHQnfSwgMjUwICk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CiAgJCgnLmJhY2tfbGluaycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKCcuc2Nyb2xsYWJsZScpLmhpZGUoJ3NsaWRlJywgeyBkaXJlY3Rpb246ICdyaWdodCcgfSwgMjUwICk7CiAgICAkKCc6c3VibWl0LnNhdmVfc2VydmljZXMnKS5zaG93KCdzbG93Jyk7CiAgICAkKCcjbGlzdCcpLnNob3coJ3NsaWRlJywgeyBkaXJlY3Rpb246ICdsZWZ0JyB9LCAyNTAgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKICAkKCcjc2VydmljZV9saXN0JykudGFibGVEbkQoKTsKICAkKCc6aW5wdXQnKS5jaGFuZ2UoZnVuY3Rpb24oKXsKICAgIHZhciBpZCA9ICQodGhpcykuY2xvc2VzdCgnZGl2LnNjcm9sbGFibGUnKS5hdHRyKCdpZCcpLnN1YnN0cig0KTsKICAgICQoJyMnK2lkKycgc3Bhbi5tb2RpZmllZCcpLnNob3coKTsKICB9KTsKICAkKCc6c3VibWl0LnNhdmVfc2VydmljZXMnKS5jbGljayhmdW5jdGlvbigpewogICAgdmFyIGRhdGEgPSBuZXcgQXJyYXk7CiAgICAkKCd0YWJsZSNzZXJ2aWNlX2xpc3QgdHInKS5lYWNoKGZ1bmN0aW9uKGksdHIpewogICAgICBkYXRhLnB1c2goJCh0cikuYXR0cignaWQnKSk7CiAgICB9KTsKICAgIGRhdGEgPSBkYXRhLmpvaW4oJywnKTsKICAgICQoJyNzZXJpYWxkYXRhJykudmFsKGRhdGEpOwogIH0pOwogICQoJy5pbWcnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciBjbiA9ICQodGhpcykuY2xvc2VzdCgndHInKS5hdHRyKCdpZCcpOwogICAgdmFyIHN0ciA9ICc6aGlkZGVuW25hbWUkPSInK2NuKydfYWN0aXZlIl0nOwogICAgdmFyIHYgPSAkKHN0cikudmFsKCk7CiAgICBpZiggdiA9PSAwICkgdiA9IDE7IGVsc2UgdiA9IDA7CiAgICAkKHN0cikudmFsKHYpOwogICAgdmFyIHMgPSAney9saXRlcmFsfXskaW1nX3llc317bGl0ZXJhbH0nOwogICAgaWYoICF2ICkKICAgICB7CiAgICAgICBzID0gJ3svbGl0ZXJhbH17JGltZ19ub317bGl0ZXJhbH0nOwogICAgIH0KICAgICQodGhpcykuaHRtbChzKTsKICB9KTsKfSk7Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9Cgp7JGZvcm1zdGFydH0KPGlucHV0IGlkPSJzZXJpYWxkYXRhIiB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9c2VyaWFsZGF0YSIgdmFsdWU9IiIvPgo8ZGl2IGlkPSJsaXN0IiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+Cjx0YWJsZSBpZD0ic2VydmljZV9saXN0IiBjbGFzcz0icGFnZXRhYmxlIiBjZWxsc3BhY2luZz0iMCI+CiAgPHRoZWFkPgogICA8dHI+CiAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57JG1vZC0+TGFuZygnYWN0aXZlJyl9PC90aD4KICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57JG1vZC0+TGFuZygnbW9kaWZpZWQnKX08L3RoPgogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kZW50cmllcyBpdGVtPSdpdGVtJ30KICAgIDx0ciBpZD0ieyRpdGVtLmNsYXNzbmFtZX0iPgogICAgIDx0ZD57aWYgJGl0ZW0ub2JqLT5oYXNfc2V0dGluZ3MoKX08YSBjbGFzcz0iZWRpdF9saW5rIiByZWw9IiNzZWxfeyRpdGVtLmNsYXNzbmFtZX0iPnskaXRlbS5zZXJ2aWNlfTwvYT57ZWxzZX17JGl0ZW0uc2VydmljZX17L2lmfTwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9eyRpdGVtLmNsYXNzbmFtZX1fYWN0aXZlIiB2YWx1ZT0ieyRpdGVtLmFjdGl2ZX0iLz48Y2VudGVyPjxzcGFuIGNsYXNzPSJpbWciPntpZiAkaXRlbS5hY3RpdmV9eyRpbWdfeWVzfXtlbHNlfXskaW1nX25vfXsvaWZ9PC9zcGFuPjwvY2VudGVyPjwvdGQ+CiAgICAgPHRkPgogICAgICA8c3BhbiBjbGFzcz0ibW9kaWZpZWQiPjxjZW50ZXI+eyRpbWdfd2Fybn08L2NlbnRlcj48L3NwYW4+CiAgICAgPC90ZD4KICAgICA8dGQ+CiAgICAgIHtpZiAkaXRlbS5vYmotPmhhc19zZXR0aW5ncygpfQogICAgICA8YSBjbGFzcz0iZWRpdF9saW5rIiByZWw9IiNzZWxfeyRpdGVtLmNsYXNzbmFtZX0iPjxpbWcgc3JjPSIuLi9tb2R1bGVzL3skbW9kLT5HZXROYW1lKCl9L2ljb25zL2lwaG9uZV9lZGl0X3JndC5wbmciIGFsdD0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iIGhlaWdodD0iMTYiLz48L2E+CiAgICAgIHsvaWZ9CiAgICAgPC90ZD4KICAgIDwvdHI+CiAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+CjwvZGl2PgoKe2ZvcmVhY2ggZnJvbT0kZW50cmllcyBpdGVtPSdpdGVtJ30Ke2lmICRpdGVtLm9iai0+aGFzX3NldHRpbmdzKCl9CiAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgaWQ9InNlbF97JGl0ZW0uY2xhc3NuYW1lfSI+CiAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPjxhIGNsYXNzPSJiYWNrX2xpbmsiPjxpbWcgc3JjPSIuLi9tb2R1bGVzL0NHVGlueS9pY29ucy9pcGhvbmVfYmFja19sZnQucG5nIiBhbHQ9InskbW9kLT5MYW5nKCdiYWNrJyl9Ii8+PC9hPjwvZGl2PgogICAgPGZpZWxkc2V0PgogICAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdzZXR0aW5nc19mb3InKX06IHskaXRlbS5zZXJ2aWNlfTwvbGVnZW5kPgogICAgICB7JGl0ZW0ub2JqLT5nZXRfZGVzY3JpcHRpb24oKX0KICAgICAge2ZvcmVhY2ggZnJvbT0kaXRlbS5vYmotPmdldF9jb250cm9scygpIGl0ZW09J2NvbnRyb2wnfQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY29udHJvbFswXX08L3A+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNvbnRyb2xbMV19CiAgICAgICAgICAge2lmIGNvdW50KCRjb250cm9sKSA9PSAzfTxici8+eyRjb250cm9sWzJdfXsvaWZ9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIHsvZm9yZWFjaH0KICAgIDwvZmllbGRzZXQ+CiAgPC9kaXY+CnsvaWZ9CnsvZm9yZWFjaH0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgY2xhc3M9InNhdmVfc2VydmljZXMiIHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2F2ZScpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_servites_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0ibGlzdCIgY2xhc3M9InNjcm9sbGFibGUiPjx1bD4Ke2ZvcmVhY2ggZnJvbT0kZW50cmllcyBpdGVtPSdpdGVtJ30KICA8bGk+CiAgICA8c3BhbiBjbGFzcz0iY2xhc3NuYW1lIn17JGl0ZW0ubmFtZX08L3NwYW4+CiAgICB7aWYgJGl0ZW0ub2JqLT5oYXNfc2V0dGluZ3MoKX0KICAgIDxhIGNsYXNzPSJlZGl0X2xpbmsiPnskbW9kLT5MYW5nKCdlZGl0Jyl9PC9hPgogIDwvbGk+CnsvZm9yZWFjaH0KPC91bD48L2Rpdj4KCntmb3JlYWNoIGZyb209JGVudHJpZXMgaXRlbT0naXRlbSd9CntpZiAkaXRlbS5vYmotPmhhc19zZXR0aW5ncygpfQogIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIGlkPSJ7JGl0ZW0uY2xhc3NuYW1lfSI+CiAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPjxhIGNsYXNzPSJiYWNrX2xpbmsiPnskbW9kLT5MYW5nKCdiYWNrJyl9PC9hPjwvZGl2PgogICAgPGZpZWxkc2V0PgogICAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdzZXR0aW5nc19mb3InKX06IHskaXRlbS5uYW1lfTwvbGVnZW5kPgogICAgICB7Zm9yZWFjaCBmcm9tPSRpdGVtLm9iai0+Z2V0X2NvbnRyb2xzKCkgaXRlbT0nY29udHJvbCd9CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjb250cm9sWzBdfTwvcD4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY29udHJvbFsxXX08L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIHsvZm9yZWFjaH0KICAgIDwvZmllbGRzZXQ+CiAgPC9kaXY+CnsvaWZ9CnsvZm9yZWFjaH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_settings_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW5hYmxlX2NhY2hlJyl9OjwvcD4gCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd1c2VjYWNoZScgc2VsZWN0ZWQ9JHVzZWNhY2hlfQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NhY2hlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4gCiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2xlYXJjYWNoZSIgdmFsdWU9InskbW9kLT5MYW5nKCdjbGVhcl9jYWNoZScpfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhc2tfY2xlYXJfY2FjaGUnKX0nKTsiLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_test_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXVybCIgdmFsdWU9InskdXJsfGRlZmF1bHQ6Jyd9IiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb191cmwnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH10ZXN0X3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7aWYgaXNzZXQoJHRlc3RfcmVzdWx0KX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdyZXN1bHQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGVzdF9yZXN1bHR9PC9oND4KPC9kaXY+CnsvaWZ9CnskZm9ybWVuZH0=]]></data>
	</file>
</module>
