<?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>CGFEUTwitterAuth</name>
	<version>1.0.1</version>
    <mincmsversion>2.2.10</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgaXMgYSBjb21wYW5pb24gbW9kdWxlIHRvIEZyb250RW5kVXNlcnMgKHYzLjArKSB0aGF0IGFsbG93cyBmb3IgdGhlIGFiaWxpdHkgdG8gdXNlIHR3aXR0ZXIgYXMgYSB0cnVzdGVkIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyLiAgSW5zdGVhZCBvZiBsb2dnaW5nIGluIHdpdGggdGhlaXIgbm9ybWFsIHVzZXJuYW1lIGFuZCBwYXNzd29yZCwgdXNlcnMgY2FuIHNpbXBseSBjbGljayB0aGUgbG9naW4gd2l0aCB0d2l0dGVyIGJ1dHRvbi4gIFRoZXkgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSB0d2l0dGVyIHNpdGUgdG8gYXV0aGVudGljYXRlLCBhbmQgcmVkaXJlY3RlZCBiYWNrdG8geW91ciBhcHBsaWNhdGlvbiBhcyBhbiBhdXRoZW50aWNhdGVkIHVzZXIuPC9wPgoKPGgzPkhvdyBkbyBJIFVzZSBpdD88L2gzPgo8b2w+CiAgICA8bGk+SW5zdGFsbCBhbmQgY29uZmlndXJlIHRoZSBGRVUgbW9kdWxlIHByb3Blcmx5LiAgWW91IHNob3VsZCBoYXZlIGFscmVhZHkgc2V0dXAgYW5kIGNvbmZpZ3VyZWQgdGhlIHN0YW5kYXJkIGxvZ2luIGFuZCBsb2dvdXQgY2FwYWJpbGl0aWVzLiAgWW91IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZ3JvdXAgY29uZmlndXJlZC48L2xpPgogICAgPGxpPk1vZGlmeSB0aGUgQ01TTVMgY29uZmlnLnBocCBmaWxlIHRvIHNldCB0aGUgYXBwcm9wcmlhdGUgY29uZmlnIHZhcmlhYmxlcyBhcyBkZXNjcmliZWQgYmVsb3cuPC9saT4KICAgIDxsaT5DYWxsIDxjb2RlPntDR0ZFVVR3aXR0ZXJBdXRofTwvY29kZT4gb24gYSBwYWdlLiAgT2Z0ZW4gdGhpcyBpcyBjYWxsZWQgb24gdGhlIHNhbWUgcGFnZSB0aGF0IHRoZSBGcm9udEVuZFVzZXJzIGxvZ2luIHBhZ2UgaXMgY2FsbGVkLiAgVGhlIHBhZ2Ugc2hvdWxkIG5vdCBiZSBjYWNoYWJsZS48L2xpPgo8L29sPgoKPGgzPkNvbmZpZyB2YXJpYWJsZXM8L2gzPgo8dWw+CiAgIDxsaT48Y29kZT5mZXVfdHdpdHRlcmF1dGhfY2FsbGJhY2tfcGFnZTwvY29kZT4gLSA8ZW0+KHR5cGU9aW50KTwvZW0+CiAgICAgICA8cD5UaGUgcGFnZSBpZCB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gdHdpdHRlciByZWRpcmVjdHMgYmFjayB0byB5b3VyIGFwcGxpY2F0aW9uLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgY29udGVudCBwYWdlIHdpbGwgYmUgdXNlZC4gICBUaGlzIHBhZ2Ugc2hvdWxkIG5vdCBiZSBicm93c2VyIGNhY2hhYmxlLjwvcD4KICAgPC9saT4KICAgPGxpPjxjb2RlPmZldV90d2l0dGVyYXV0aF9hcHBpZDwvY29kZT4gLSA8ZW0+KHR5cGU9c3RyaW5nKTwvZW0+CiAgICAgICA8cD5Zb3VyIHR3aXR0ZXIgYXBwIGlkLjwvcD4KICAgPC9saT4KICAgPGxpPjxjb2RlPmZldV90d2l0dGVyYXV0aF9hcHBzZWNyZXQ8L2NvZGU+IC0gPGVtPih0eXBlPXN0cmluZyk8L2VtPgogICAgICAgPHA+WW91ciB0d2l0dGVyIGFwcCBzZWNyZXQuPC9wPgogICA8L2xpPgo8L3VsPgoKPGgzPlBhcmFtZXRlcnM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWNjZXB0cyBubyBwYXJhbWV0ZXJzLjwvcD4KCjxoMz5UZW1wbGF0ZXM8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFlvdSBzaG91bGQgbmV2ZXIgbW9kaWZ5IHRoZSBmaWxlcyBpbiB0aGUgbW9kdWxlIHNvdXJjZSBkaXJlY3RvcnkuICBJbnN0ZWFkLCB0ZW1wbGF0ZXMgc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb24gaW4gIC9hc3NldHMvbW9kdWxlX2N1c3RvbSB0byBvdmVycmlkZSBpdC48L3A+Cgo8dWw+CiAgICA8bGk+PGNvZGU+ZGVmYXVsdC50cGw8L2NvZGU+IC0gVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIGJ5IHRoZSBkZWZhdWx0IGFjdGlvbgogICAgICAgIDxwPlZhcmlhYmxlczo8L3A+Cgk8dWw+CgkgICA8bGk+PGNvZGU+JGNvbm5lY3RlZDwvY29kZT4gLSBib29sZWFuCgkgICAgICA8cD5BIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBpcyBjdXJyZW50bHkgYWxyZWFkeSBjb25uZWN0ZWQgdmlhIHR3aXR0ZXIuPC9wPgoJICAgPC9saT4KCSAgIDxsaT48Y29kZT4kbWFnaWM8L2NvZGU+IC0gc3RyaW5nCgkgICAgICA8cD5BIG1hZ2ljIHN0cmluZyB1c2VkIGZvciBDU1JGIHByb3RlY3Rpb24uPC9wPgoJICAgPC9saT4KCTwvdWw+CiAgICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2dibG9nIj5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxOSwgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KPGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DR0V4dGVuc2lvbnMgPSZndDsgMS42MzwvbGk+PGxpPkZyb250RW5kVXNlcnMgPSZndDsgMi45OTwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMC4xPGJyIC8+]]></about>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.63</requiredversion>
	</requires>
	<requires>
	  <requiredname>FrontEndUsers</requiredname>
	  <requiredversion>2.99</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.callback.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRmFjZWJvb2tBdXRoOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRkVVVHdpdHRlckF1dGg7CnVzZSBjZ2VfdXRpbHM7CnVzZSBjZ2VfcGFyYW07CnVzZSBIeWJyaWRhdXRoXEh5YnJpZGF1dGg7CnVzZSBjbXNfdXJsOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLyB0aGlzIGRpc3BsYXlzIHRoZSBsb2dpbiBidXR0b24KdHJ5IHsKICAgICRhdXRoTWFuYWdlciA9ICR0aGlzLT5hdXRoTWFuYWdlcigpOwogICAgJGZldV9jb25uZWN0b3IgPSAkdGhpcy0+ZmV1Q29ubmVjdG9yKCk7CiAgICAkY29ubmVjdGVkID0gJHVzZXIgPSAkbWFnaWMgPSBudWxsOwoKICAgIGlmKCAkZmV1X2Nvbm5lY3Rvci0+TG9nZ2VkSW4oKSApIHJldHVybjsKICAgICRjb25uZWN0ZWQgPSAkdGhpcy0+YXV0aE1hbmFnZXIoKS0+aXNfY29ubmVjdGVkKCk7CgogICAgaWYoICEkY29ubmVjdGVkICYmIGNnZV9wYXJhbTo6ZXhpc3RzKCRfR0VULCdtYWdpYycpICYmCiAgICAgICAgKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX0dFVCwnbWFnaWMnKSA9PSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9TRVNTSU9OLCR0aGlzLT5HZXROYW1lKCkpICkgKSB7CiAgICAgICAgLy8gd2UgZ290IHNvbWUgbWFnaWMgZGF0YQogICAgICAgICRhdXRoTWFuYWdlci0+YXV0aGVudGljYXRlKCk7CiAgICAgICAgJGNvbm5lY3RlZCA9ICR0aGlzLT5hdXRoTWFuYWdlcigpLT5pc19jb25uZWN0ZWQoKTsKICAgIH0KCiAgICBpZiggJGNvbm5lY3RlZCApIHsKICAgICAgICAkdXNlcl9wcm9maWxlID0gJGF1dGhNYW5hZ2VyLT5nZXRfdXNlcl9wcm9maWxlKCk7CiAgICAgICAgaWYoICEkdXNlcl9wcm9maWxlICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IGdldCB0d2l0dGVycHJvZmlsZScpOwogICAgICAgICR0d2l0dGVyX2lkID0gJHVzZXJfcHJvZmlsZS0+aWRlbnRpZmllcjsKICAgICAgICAkdXNlciA9ICRmZXVfY29ubmVjdG9yLT5nZXRfdXNlcl9ieV90d2l0dGVyX2lkKCR0d2l0dGVyX2lkKTsKICAgICAgICBpZiggISR1c2VyICkgJHVzZXIgPSAkZmV1X2Nvbm5lY3Rvci0+Y3JlYXRlX3VzZXIoJHVzZXJfcHJvZmlsZSk7CiAgICB9IGVsc2UgewogICAgICAgICRtYWdpYyA9ICRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpXSA9IGJpbjJoZXgocmFuZG9tX2J5dGVzKDgpKTsKICAgIH0KCiAgICAkcGFnZV91cmxfb2IgPSBuZXcgY21zX3VybCgkdGhpcy0+Y21zLT5nZXRfY29udGVudF9vYmplY3QoKS0+R2V0VVJMKCkpOwogICAgJHBhZ2VfdXJsX29iLT5zZXRfcXVlcnl2YXIoJ21hZ2ljJywkbWFnaWMpOwogICAgCiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdkZWZhdWx0LnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdjb25uZWN0ZWQnLCRjb25uZWN0ZWQpOwogICAgJHRwbC0+YXNzaWduKCd1c2VyJywkdXNlcik7CiAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbnRfdXJsJywoc3RyaW5nKSRwYWdlX3VybF9vYik7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgdGhyb3cgJGU7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/CGFEUTwitterAuth.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKdXNlIENHRkVVVHdpdHRlckF1dGhcQXV0aE1hbmFnZXI7CnVzZSBDR0ZFVVR3aXR0ZXJBdXRoXEF1dGhlbnRpY2F0aW9uRXhjZXB0aW9uOwp1c2UgQ0dGRVVUd2l0dGVyQXV0aFxGRVVBdXRoZW50aWNhdG9yOwp1c2UgQ0dGRVVUd2l0dGVyQXV0aFxGRVVDb25uZWN0b3I7CnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKCmZpbmFsIGNsYXNzIENHRkVVVHdpdHRlckF1dGggZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogICAgY29uc3QgUFJPUE5BTUUgPSAnX19DR0ZFVVR3aXR0ZXJBdXRoJzsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMC4xJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMi4xMCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKSB7IHJldHVybiBbICdDR0V4dGVuc2lvbnMnPT4nMS42MycsICdGcm9udEVuZFVzZXJzJz0+JzIuOTknIF07IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIFRSVUU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIEZBTFNFOyB9CgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CgkvLyBpbiBDTVNNUyA8IDIuMyB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSB0aGUgY29uc3RydWN0b3IKCS8vIGluIHRoZSB0aW1lcyBvZiBuZWVkaW5nIHVwZ3JhZGUgaXQgY291bGQgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLgoJc3RhdGljICR0bXA7CglpZiggJHRtcCA+PSAxICkgcmV0dXJuOwoJJHRtcCsrOwoKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCiAgICAgICAgJHBhZ2VpZCA9IChpbnQpICR0aGlzLT5jb25maWdbJ2ZldV90d2l0dGVyYXV0aF9jYWxsYmFja19wYWdlJ107CiAgICAgICAgaWYoICRwYWdlaWQgPCAxICkgJHBhZ2VpZCA9ICR0aGlzLT5jbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkdldERlZmF1bHRDb250ZW50KCk7CgogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvY2dfdHdpdHRlcl9hdXRoXC9jYWxsYmFjayQvJyxbJ2FjdGlvbic9PidjYWxsYmFjaycsJ3JldHVybmlkJz0+JHBhZ2VpZF0pOwoKICAgICAgICAvLyBzZXQgdGhpcyB0aGluZyBhcyBhbiBmZXUgJ2F1dGhlbnRpY2F0b3InCiAgICAgICAgJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZShNT0RfRlJPTlRFTkRVU0VSUyk7CiAgICAgICAgJGZldS0+cmVnaXN0ZXJfYXV0aGVudGljYXRvcihuZXcgRkVVQXV0aGVudGljYXRvcigkdGhpcy0+YXV0aE1hbmFnZXIoKSwgJHRoaXMtPmZldUNvbm5lY3RvcigpKSk7CgogICAgICAgIEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnQ29yZTo6Q29udGVudFByZVJlbmRlcicsIGZ1bmN0aW9uKCRwYXJhbXMpewogICAgICAgICAgICAgICAgaWYoIGNnZV9wYXJhbTo6ZXhpc3RzKCRfR0VULCdtYWdpYycpICYmIChjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9HRVQsJ21hZ2ljJykgPT0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfU0VTU0lPTiwkdGhpcy0+R2V0TmFtZSgpKSApICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIGdvdCBzb21lIG1hZ2ljIGRhdGEKCQkgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmF1dGhNYW5hZ2VyKCktPmF1dGhlbnRpY2F0ZSgpOwoJCSAgICB9CgkJICAgIGNhdGNoKCBBdXRoZW50aWNhdGlvbkV4Y2VwdGlvbiAkZSApIHsKCQkJYXVkaXQoJycsJ0NHRkVVVHdpdHRlckF1dGgnLCdTaWxlbnRseSBpZ25vcmVkIGFuIGF1dGhlbnRpY2F0aW9uIGV4Y2VwdGlvbicpOwoJCSAgICAgICAgdW5zZXQoJF9HRVRbJ21hZ2ljJ10sICRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpXSk7CgkJICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcmV0dHlfdXJsKCRpZCwkYWN0aW9uLCRyZXR1cm5pZD0nJywkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSkKICAgIHsKICAgICAgICBpZiggJGFjdGlvbiA9PSAnY2FsbGJhY2snICkgewogICAgICAgICAgICByZXR1cm4gImNnX3R3aXR0ZXJfYXV0aC9jYWxsYmFjayI7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdXRoTWFuYWdlcigpIDogQXV0aE1hbmFnZXIKICAgIHsKICAgICAgICBzdGF0aWMgJF9vYmo7CiAgICAgICAgaWYoICEkX29iaiApICRfb2JqID0gbmV3IEF1dGhNYW5hZ2VyKCR0aGlzLCAkdGhpcy0+Y29uZmlnKTsKICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZldUNvbm5lY3RvcigpIDogRkVVQ29ubmVjdG9yCiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgICRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgIGlmKCAhJF9vYmogKSAkX29iaiA9IG5ldyBGRVVDb25uZWN0b3IoJGZldSwgc2VsZjo6UFJPUE5BTUUpOwogICAgICAgIHJldHVybiAkX29iajsKICAgIH0KfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgaXMgYSBjb21wYW5pb24gbW9kdWxlIHRvIEZyb250RW5kVXNlcnMgKHYzLjArKSB0aGF0IGFsbG93cyBmb3IgdGhlIGFiaWxpdHkgdG8gdXNlIHR3aXR0ZXIgYXMgYSB0cnVzdGVkIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyLiAgSW5zdGVhZCBvZiBsb2dnaW5nIGluIHdpdGggdGhlaXIgbm9ybWFsIHVzZXJuYW1lIGFuZCBwYXNzd29yZCwgdXNlcnMgY2FuIHNpbXBseSBjbGljayB0aGUgbG9naW4gd2l0aCB0d2l0dGVyIGJ1dHRvbi4gIFRoZXkgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSB0d2l0dGVyIHNpdGUgdG8gYXV0aGVudGljYXRlLCBhbmQgcmVkaXJlY3RlZCBiYWNrdG8geW91ciBhcHBsaWNhdGlvbiBhcyBhbiBhdXRoZW50aWNhdGVkIHVzZXIuPC9wPgoKPGgzPkhvdyBkbyBJIFVzZSBpdD88L2gzPgo8b2w+CiAgICA8bGk+SW5zdGFsbCBhbmQgY29uZmlndXJlIHRoZSBGRVUgbW9kdWxlIHByb3Blcmx5LiAgWW91IHNob3VsZCBoYXZlIGFscmVhZHkgc2V0dXAgYW5kIGNvbmZpZ3VyZWQgdGhlIHN0YW5kYXJkIGxvZ2luIGFuZCBsb2dvdXQgY2FwYWJpbGl0aWVzLiAgWW91IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZ3JvdXAgY29uZmlndXJlZC48L2xpPgogICAgPGxpPk1vZGlmeSB0aGUgQ01TTVMgY29uZmlnLnBocCBmaWxlIHRvIHNldCB0aGUgYXBwcm9wcmlhdGUgY29uZmlnIHZhcmlhYmxlcyBhcyBkZXNjcmliZWQgYmVsb3cuPC9saT4KICAgIDxsaT5DYWxsIDxjb2RlPntDR0ZFVVR3aXR0ZXJBdXRofTwvY29kZT4gb24gYSBwYWdlLiAgT2Z0ZW4gdGhpcyBpcyBjYWxsZWQgb24gdGhlIHNhbWUgcGFnZSB0aGF0IHRoZSBGcm9udEVuZFVzZXJzIGxvZ2luIHBhZ2UgaXMgY2FsbGVkLiAgVGhlIHBhZ2Ugc2hvdWxkIG5vdCBiZSBjYWNoYWJsZS48L2xpPgo8L29sPgoKPGgzPkNvbmZpZyB2YXJpYWJsZXM8L2gzPgo8dWw+CiAgIDxsaT48Y29kZT5mZXVfdHdpdHRlcmF1dGhfY2FsbGJhY2tfcGFnZTwvY29kZT4gLSA8ZW0+KHR5cGU9aW50KTwvZW0+CiAgICAgICA8cD5UaGUgcGFnZSBpZCB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gdHdpdHRlciByZWRpcmVjdHMgYmFjayB0byB5b3VyIGFwcGxpY2F0aW9uLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgY29udGVudCBwYWdlIHdpbGwgYmUgdXNlZC4gICBUaGlzIHBhZ2Ugc2hvdWxkIG5vdCBiZSBicm93c2VyIGNhY2hhYmxlLjwvcD4KICAgPC9saT4KICAgPGxpPjxjb2RlPmZldV90d2l0dGVyYXV0aF9hcHBpZDwvY29kZT4gLSA8ZW0+KHR5cGU9c3RyaW5nKTwvZW0+CiAgICAgICA8cD5Zb3VyIHR3aXR0ZXIgYXBwIGlkLjwvcD4KICAgPC9saT4KICAgPGxpPjxjb2RlPmZldV90d2l0dGVyYXV0aF9hcHBzZWNyZXQ8L2NvZGU+IC0gPGVtPih0eXBlPXN0cmluZyk8L2VtPgogICAgICAgPHA+WW91ciB0d2l0dGVyIGFwcCBzZWNyZXQuPC9wPgogICA8L2xpPgo8L3VsPgoKPGgzPlBhcmFtZXRlcnM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWNjZXB0cyBubyBwYXJhbWV0ZXJzLjwvcD4KCjxoMz5UZW1wbGF0ZXM8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFlvdSBzaG91bGQgbmV2ZXIgbW9kaWZ5IHRoZSBmaWxlcyBpbiB0aGUgbW9kdWxlIHNvdXJjZSBkaXJlY3RvcnkuICBJbnN0ZWFkLCB0ZW1wbGF0ZXMgc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb24gaW4gIC9hc3NldHMvbW9kdWxlX2N1c3RvbSB0byBvdmVycmlkZSBpdC48L3A+Cgo8dWw+CiAgICA8bGk+PGNvZGU+ZGVmYXVsdC50cGw8L2NvZGU+IC0gVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIGJ5IHRoZSBkZWZhdWx0IGFjdGlvbgogICAgICAgIDxwPlZhcmlhYmxlczo8L3A+Cgk8dWw+CgkgICA8bGk+PGNvZGU+JGNvbm5lY3RlZDwvY29kZT4gLSBib29sZWFuCgkgICAgICA8cD5BIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBpcyBjdXJyZW50bHkgYWxyZWFkeSBjb25uZWN0ZWQgdmlhIHR3aXR0ZXIuPC9wPgoJICAgPC9saT4KCSAgIDxsaT48Y29kZT4kbWFnaWM8L2NvZGU+IC0gc3RyaW5nCgkgICAgICA8cD5BIG1hZ2ljIHN0cmluZyB1c2VkIGZvciBDU1JGIHByb3RlY3Rpb24uPC9wPgoJICAgPC9saT4KCTwvdWw+CiAgICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2dibG9nIj5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxOSwgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.AuthManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRkVVVHdpdHRlckF1dGg7CnVzZSBDR0ZFVVR3aXR0ZXJBdXRoOwp1c2UgSHlicmlkYXV0aFxIeWJyaWRhdXRoOwp1c2UgSHlicmlkYXV0aFxVc2VyXFByb2ZpbGUgYXMgVXNlclByb2ZpbGU7CnVzZSBIeWJyaWRBdXRoXEFkYXB0ZXJcQWRhcHRlckludGVyZmFjZSBhcyBBZGFwdGVyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cQXV0aG9yaXphdGlvbkRlbmllZEV4Y2VwdGlvbjsKdXNlIGNtc19jb25maWc7CnVzZSBjZ2VfdXJsOwoKY2xhc3MgQXV0aGVudGljYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uIHt9CgovLyB0aGlzIGlzIGVzc2VudGlhbGx5IGEgc2luZ2xldG9uLiAgdXNlcyBzdGF0aWNzLCBhcyBpbiBvbmUgcmVxdWVzdCB3ZSBvbmx5IGNhcmUgaWYgdGhlIHN1ZXIgaXMgYXV0aGVudGljYXRlZCB0byB0d2l0dGVyIG9uY2UKY2xhc3MgQXV0aE1hbmFnZXIKewogICAgcHJpdmF0ZSAkaHlicmlkYXV0aDsKICAgIHByaXZhdGUgJGFkYXB0ZXI7CiAgICBwcml2YXRlICR1c2VyX3Byb2ZpbGU7CiAgICBwcml2YXRlICRjb25maWc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KENHRkVVVHdpdHRlckF1dGggJG1vZCwgJGNvbmZpZykKICAgIHsKICAgICAgICByZXF1aXJlX29uY2UoX19ESVJfXy4nL2h5YnJpZGF1dGgvc3JjL2F1dG9sb2FkLnBocCcpOwogICAgICAgICRhcHBfaWQgPSAkY29uZmlnWydmZXVfdHdpdHRlcmF1dGhfYXBwaWQnXTsKICAgICAgICAkYXBwX3NlY3JldCA9ICRjb25maWdbJ2ZldV90d2l0dGVyYXV0aF9hcHBzZWNyZXQnXTsKICAgICAgICBpZiggISRhcHBfaWQgfHwgISRhcHBfc2VjcmV0ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgY29tcGxldGUgZmV1X3R3aXR0ZXJhdXRoIHNldHRpbmdzJyk7CgogICAgICAgIC8vJGNhbGxiYWNrX3VybCA9ICRtb2QtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCdjYWxsYmFjaycsJHJldHVybmlkKTsKICAgICAgICAkY2FsbGJhY2tfdXJsID0gY2dlX3VybDo6Y3VycmVudF91cmwoKTsKICAgICAgICAkY2FsbGJhY2tfdXJsID0gc3RyX3JlcGxhY2UoJ2FtcDsnLCcnLCRjYWxsYmFja191cmwpOwoKICAgICAgICAkdGhpcy0+Y29uZmlnID0gWwogICAgICAgICAgICAnY2FsbGJhY2snID0+ICRjYWxsYmFja191cmwsCiAgICAgICAgICAgICdwcm92aWRlcnMnID0+IFsKICAgICAgICAgICAgICAgICdUd2l0dGVyJyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ2VuYWJsZWQnID0+IHRydWUsCiAgICAgICAgICAgICAgICAgICAgJ2tleXMnID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyA9PiAkYXBwX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAnc2VjcmV0JyA9PiAkYXBwX3NlY3JldAogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICdkZWJ1Z19tb2RlJyA9PiAnaW5mbycsCiAgICAgICAgICAgICdkZWJ1Z19maWxlJyA9PiBUTVBfQ0FDSEVfTE9DQVRJT04uJ2h5YnJpZGF1dGgubG9nJwogICAgICAgICAgICBdOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfaHlicmlkYXV0aCgpIDogSHlicmlkQXV0aAogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmh5YnJpZGF1dGggKSAkdGhpcy0+aHlicmlkYXV0aCA9IG5ldyBIeWJyaWRhdXRoKCR0aGlzLT5jb25maWcpOwogICAgICAgIHJldHVybiAkdGhpcy0+aHlicmlkYXV0aDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfY29ubmVjdGVkKCkgOiBib29sCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfaHlicmlkYXV0aCgpLT5pc0Nvbm5lY3RlZFdpdGgoJ1R3aXR0ZXInKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCkgOiBBZGFwdGVyCiAgICB7Cgl0cnkgewogICAgICAgICAgICBpZiggISR0aGlzLT5hZGFwdGVyICkgJHRoaXMtPmFkYXB0ZXIgPSAkdGhpcy0+Z2V0X2h5YnJpZGF1dGgoKS0+YXV0aGVudGljYXRlKCdUd2l0dGVyJyk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+YWRhcHRlcjsKCX0KCWNhdGNoKCBBdXRob3JpemF0aW9uRGVuaWVkRXhjZXB0aW9uICRlICkgewoJICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkV4Y2VwdGlvbignQXV0aG9yaXphdGlvbiBkZW5pZWQnKTsKCX0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VzZXJfcHJvZmlsZSgpIDogVXNlclByb2ZpbGUKICAgIHsKICAgICAgICBpZiggISR0aGlzLT51c2VyX3Byb2ZpbGUgKSB7CiAgICAgICAgICAgICRhdXRoID0gJHRoaXMtPmF1dGhlbnRpY2F0ZSgpOwogICAgICAgICAgICBpZiggJGF1dGggKSAkdGhpcy0+dXNlcl9wcm9maWxlID0gJGF1dGgtPmdldFVzZXJQcm9maWxlKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcl9wcm9maWxlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2dvdXQoKQogICAgewogICAgICAgICR0aGlzLT5nZXRfaHlicmlkYXV0aCgpLT5kaXNjb25uZWN0QWxsQWRhcHRlcnMoKTsKICAgICAgICAkdGhpcy0+dXNlcl9wcm9maWxlID0gJHRoaXMtPmFkcGF0ZXIgPSBudWxsOwogICAgfQp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FEUAuthenticator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRkVVVHdpdHRlckF1dGg7CnVzZSBGcm9udEVuZFVzZXJzXFVzZXJBdXRoZW50aWNhdG9yOwp1c2UgRnJvbnRFbmRVc2Vyc1xBdXRoVG9rZW47CnVzZSBGcm9udEVuZFVzZXJzXFVzZXJNYW5pcHVsYXRvcjsKCmNsYXNzIEZFVUF1dGhlbnRpY2F0b3IgaW1wbGVtZW50cyBVc2VyQXV0aGVudGljYXRvcgp7CiAgICBwcml2YXRlICRhdXRoX21hbmFnZXI7CiAgICBwcml2YXRlICRmZXVfY29ubmVjdG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChBdXRoTWFuYWdlciAkbWFuYWdlciwgRkVVQ29ubmVjdG9yICRjb25uZWN0b3IpCiAgICB7CiAgICAgICAgJHRoaXMtPmF1dGhfbWFuYWdlciA9ICRtYW5hZ2VyOwogICAgICAgICR0aGlzLT5mZXVfY29ubmVjdG9yID0gJGNvbm5lY3RvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xvZ2luX3Rva2VuKCkgeyAvKiBkbyBub3RoaW5nICovIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2xvZ2luX3Rva2VuKEF1dGhUb2tlbiAkdG9rZW4pIHsgLyogZG8gbm90aGluZyAqLyB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X3VzZXJpZChVc2VyTWFuaXB1bGF0b3IgJG1hbmlwdWxhdG9yKSA6IGludAogICAgewogICAgICAgIC8vIGdldCB0aGUgdHdpdHRlciBpZAogICAgICAgIGlmKCAhJHRoaXMtPmF1dGhfbWFuYWdlci0+aXNfY29ubmVjdGVkKCkgKSByZXR1cm4gLTE7CiAgICAgICAgJHByb2ZpbGUgPSAkdGhpcy0+YXV0aF9tYW5hZ2VyLT5nZXRfdXNlcl9wcm9maWxlKCk7CiAgICAgICAgaWYoICEkcHJvZmlsZSApIHJldHVybiAtMTsKICAgICAgICAkdXNlciA9ICR0aGlzLT5mZXVfY29ubmVjdG9yLT5nZXRfdXNlcl9ieV90d2l0dGVyX2lkKCRwcm9maWxlLT5pZGVudGlmaWVyKTsKICAgICAgICBpZigkdXNlciAmJiAkdXNlci0+aWQgPiAwICYmICRtYW5pcHVsYXRvci0+Q2FuVXNlckxvZ2luKCR1c2VyLT5pZCkgKSByZXR1cm4gJHVzZXItPmlkOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX2F1dGhlbnRpY2F0aW9uKFVzZXJNYW5pcHVsYXRvciAkbWFuaXB1bGF0b3IpCiAgICB7CiAgICAgICAgJHRoaXMtPmF1dGhfbWFuYWdlci0+bG9nb3V0KCk7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FEUConnector.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRkVVVHdpdHRlckF1dGg7CnVzZSBGcm9udEVuZFVzZXJzOwp1c2UgRnJvbnRFbmRVc2Vyc1xVc2VySW50ZXJmYWNlOwp1c2UgZmV1X3VzZXJfcXVlcnlfb3B0IGFzIHF1ZXJ5X29wdDsKdXNlIEh5YnJpZGF1dGhcVXNlclxQcm9maWxlIGFzIFVzZXJQcm9maWxlOwoKY2xhc3MgRkVVQ29ubmVjdG9yCnsKICAgIHByaXZhdGUgJGZldTsKICAgIHByaXZhdGUgJHByb3BuYW1lOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChGcm9udEVuZFVzZXJzICRmZXUsIHN0cmluZyAkcHJvcG5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPmZldSA9ICRmZXU7CiAgICAgICAgJHRoaXMtPnByb3BuYW1lID0gJHByb3BuYW1lOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2dnZWRpbigpIDogYm9vbAogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+ZmV1LT5Mb2dnZWRJbigpOwogICAgfQoKICAgIC8vIHJldHVybnMgdXNlciBvYmplY3QgT1IgbnVsbAogICAgcHVibGljIGZ1bmN0aW9uIGdldF91c2VyX2J5X3R3aXR0ZXJfaWQoc3RyaW5nICR0d2l0dGVyX2lkKQogICAgewogICAgICAgIC8vIHByb2JhYmx5IHNob3VsZCBjYWNoZSBoZXJlCiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPmZldS0+Y3JlYXRlX25ld19xdWVyeSgpOwogICAgICAgICRxdWVyeS0+YWRkX2FuZF9vcHQocXVlcnlfb3B0OjpNQVRDSF9OT1RFWFBJUkVEKTsKICAgICAgICAkcXVlcnktPmFkZF9hbmRfb3B0KHF1ZXJ5X29wdDo6TUFUQ0hfUFJPUEVSVFksJHRoaXMtPnByb3BuYW1lLCR0d2l0dGVyX2lkKTsKICAgICAgICAkcmVzdWx0cyA9ICR0aGlzLT5mZXUtPmdldF9xdWVyeV9yZXN1bHRzKCRxdWVyeSk7CiAgICAgICAgaWYoICFjb3VudCgkcmVzdWx0cykgKSByZXR1cm47ICAgLy8gbm8gbWF0Y2hpbmcgdXNlcgogICAgICAgIGlmKCBjb3VudCgkcmVzdWx0cykgPiAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRm91bmQgbXVsdGlwbGUgdXNlcnMgd2l0aCB0aGUgc2FtZSB0d2l0dGVyIGlkJyk7CgogICAgICAgIHJldHVybiAkcmVzdWx0cy0+Y3VycmVudCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfdXNlcihVc2VyUHJvZmlsZSAkcHJvZmlsZSkgOiBVc2VySW50ZXJmYWNlCiAgICB7CiAgICAgICAgJHVzZXIgPSAkdGhpcy0+ZmV1LT5jcmVhdGVfdXNlcl9lZGl0X2Fzc2lzdGFudCgtMSk7CiAgICAgICAgJHVzZXItPm5ld191c2VybmFtZSA9ICd0d2l0dGVyXycuJHByb2ZpbGUtPmlkZW50aWZpZXI7CiAgICAgICAgJHVzZXItPm5ld19wYXNzd29yZCA9ICR1c2VyLT5jcmVhdGVfcmFuZG9tX3Bhc3N3b3JkKCk7CiAgICAgICAgJHVzZXItPnJlcGVhdF9wYXNzd29yZCA9ICR1c2VyLT5uZXdfcGFzc3dvcmQ7CiAgICAgICAgJHVzZXItPm5vbnN0ZCA9IDE7CiAgICAgICAgLy8gJHVzZXItPnNldF9ncm91cHMoKTsgLy8gbGVhdmUgdG8gZGVmYXVsdHMuCiAgICAgICAgJHVzZXItPnNldF9wcm9wZXJ0eSgkdGhpcy0+cHJvcG5hbWUsJHByb2ZpbGUtPmlkZW50aWZpZXIpOwogICAgICAgICRuZXdfdWlkID0gJHRoaXMtPmZldS0+c2F2ZV91c2VyX2VkaXQoJHVzZXIpOwogICAgICAgICR1c2VyID0gJHRoaXMtPmZldS0+Z2V0X3VzZXIoJG5ld191aWQpOwogICAgICAgIHJldHVybiAkdXNlcjsKICAgIH0KCn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/.editorconfig</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[cm9vdCA9IHRydWUKClsqXQpjaGFyc2V0ICAgICAgICAgICAgICAgICAgPSB1dGYtOAplbmRfb2ZfbGluZSAgICAgICAgICAgICAgPSBsZgppbnNlcnRfZmluYWxfbmV3bGluZSAgICAgPSB0cnVlCnRyaW1fdHJhaWxpbmdfd2hpdGVzcGFjZSA9IHRydWUKaW5kZW50X3N0eWxlICAgICAgICAgICAgID0gc3BhY2UKaW5kZW50X3NpemUgICAgICAgICAgICAgID0gNAo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/.scrutinizer.yml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZmlsdGVyOgogICAgZXhjbHVkZWRfcGF0aHM6CiAgICAgICAgLSBkb2NzLyoKICAgICAgICAtIHZlbmRvci8qCiAgICAgICAgLSB0ZXN0cy8qCiAgICAgICAgLSBleGFtcGxlcy8qCiAgICAgICAgLSBzcmMvRGVwcmVjYXRlZC8qCiAgICAgICAgLSBzcmMvVGhpcmRwYXJ0eS8qCgp0b29sczoKICAgIHBocF9tZXNzX2RldGVjdG9yOiB0cnVlCiAgICBwaHBfYW5hbHl6ZXI6IHRydWUKICAgIHBocF9wZGVwZW5kOiB0cnVlCgpjaGVja3M6CiAgICBwaHA6CiAgICAgICAgY29kZV9yYXRpbmc6IHRydWUKICAgICAgICBkdXBsaWNhdGlvbjogZmFsc2UgICAgCiAgICAgICAgYXZvaWRfbXVsdGlwbGVfc3RhdGVtZW50c19vbl9zYW1lX2xpbmU6IHRydWUKICAgICAgICBhdm9pZF9maXhtZV9jb21tZW50czogdHJ1ZQogICAgICAgIGF2b2lkX3RvZG9fY29tbWVudHM6IHRydWUKICAgICAgICBhdm9pZF91bm5lY2Vzc2FyeV9jb25jYXRlbmF0aW9uOiB0cnVlCiAgICAgICAgY2xhc3Nlc19pbl9jYW1lbF9jYXBzOiB0cnVlCiAgICAgICAgZW5jb3VyYWdlX3NpbmdsZV9xdW90ZXM6IHRydWUKICAgICAgICBmaXhfbGluZV9lbmRpbmc6IHRydWUKICAgICAgICBmdW5jdGlvbl9pbl9jYW1lbF9jYXBzOiB0cnVlCiAgICAgICAgbGluZV9sZW5ndGg6CiAgICAgICAgICAgIG1heF9sZW5ndGg6ICcxNjAnCiAgICAgICAgcGFyYW1ldGVyc19pbl9jYW1lbGNhcHM6IHRydWUKICAgICAgICBwcm9wZXJ0aWVzX2luX2NhbWVsY2FwczogdHJ1ZQogICAgICAgIHVwcGVyY2FzZV9jb25zdGFudHM6IHRydWUKCmNvZGluZ19zdHlsZToKICAgIHBocDoKICAgICAgICBpbmRlbnRhdGlvbjoKICAgICAgICAgICAgZ2VuZXJhbDoKICAgICAgICAgICAgICAgIHVzZV90YWJzOiB0cnVlCiAgICAgICAgc3BhY2VzOgogICAgICAgICAgICBnZW5lcmFsOgogICAgICAgICAgICAgICAgbGluZWZlZWRfY2hhcmFjdGVyOiByZXR1cm4tbmV3bGluZQogICAgICAgICAgICBhcm91bmRfb3BlcmF0b3JzOgogICAgICAgICAgICAgICAgbmVnYXRpb246IHRydWUK]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/.travis.yml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[bGFuZ3VhZ2U6IHBocAoKcGhwOgogIC0gNS40CiAgLSA1LjUKICAtIDUuNgogIC0gNy4wCiAgLSA3LjEKICAtIGhodm0KCmVudjoKICBnbG9iYWw6CiAgICAtIERFRkFVTFQ9MQoKbWF0cml4OgogIGluY2x1ZGU6CiAgICAtIHBocDogNS40CiAgICAgIGVudjogUEhQQ1M9MSBERUZBVUxUPTAKCiAgYWxsb3dfZmFpbHVyZXM6CiAgICAtIGVudjogUEhQQ1M9MSBERUZBVUxUPTAKICAgIC0gcGhwOiA1LjQKICAgIC0gcGhwOiBoaHZtCgpiZWZvcmVfc2NyaXB0OgogIC0gY29tcG9zZXIgc2VsZi11cGRhdGUKICAtIGNvbXBvc2VyIGluc3RhbGwKCiAgLSBzaCAtYyAiaWYgWyAnJFBIUENTJyA9ICcxJyBdOyB0aGVuIGNvbXBvc2VyIHJlcXVpcmUgc3F1aXpsYWJzL3BocF9jb2Rlc25pZmZlcj0qOyBmaSIKCnNjcmlwdDoKICAtIHNoIC1jICJpZiBbICckREVGQVVMVCcgPSAnMScgXTsgdGhlbiBwaHB1bml0OyBmaSIKICAtIHNoIC1jICJpZiBbICckUEhQQ1MnID0gJzEnIF07IHRoZW4gdmVuZG9yL2Jpbi9waHBjcyAtcCAtLWV4dGVuc2lvbnM9cGhwIC0tc3RhbmRhcmQ9UFNSMiAuL3NyYyAuL3Rlc3RzOyBmaSIKCm5vdGlmaWNhdGlvbnM6CiAgZW1haWw6IGZhbHNlCg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/CHANGELOG.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[c2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvcmVsZWFzZXMK]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/CODE_OF_CONDUCT.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyBDb250cmlidXRvciBDb3ZlbmFudCBDb2RlIG9mIENvbmR1Y3QKCiMjIE91ciBQbGVkZ2UKCkluIHRoZSBpbnRlcmVzdCBvZiBmb3N0ZXJpbmcgYW4gb3BlbiBhbmQgd2VsY29taW5nIGVudmlyb25tZW50LCB3ZSBhcyBjb250cmlidXRvcnMgYW5kIG1haW50YWluZXJzIHBsZWRnZSB0byBtYWtpbmcgcGFydGljaXBhdGlvbiBpbiBvdXIgcHJvamVjdCBhbmQgb3VyIGNvbW11bml0eSBhIGhhcmFzc21lbnQtZnJlZSBleHBlcmllbmNlIGZvciBldmVyeW9uZSwgcmVnYXJkbGVzcyBvZiBhZ2UsIGJvZHkgc2l6ZSwgZGlzYWJpbGl0eSwgZXRobmljaXR5LCBnZW5kZXIgaWRlbnRpdHkgYW5kIGV4cHJlc3Npb24sIGxldmVsIG9mIGV4cGVyaWVuY2UsIG5hdGlvbmFsaXR5LCBwZXJzb25hbCBhcHBlYXJhbmNlLCByYWNlLCByZWxpZ2lvbiwgb3Igc2V4dWFsIGlkZW50aXR5IGFuZCBvcmllbnRhdGlvbi4KCiMjIE91ciBTdGFuZGFyZHMKCkV4YW1wbGVzIG9mIGJlaGF2aW9yIHRoYXQgY29udHJpYnV0ZXMgdG8gY3JlYXRpbmcgYSBwb3NpdGl2ZSBlbnZpcm9ubWVudCBpbmNsdWRlOgoKKiBVc2luZyB3ZWxjb21pbmcgYW5kIGluY2x1c2l2ZSBsYW5ndWFnZQoqIEJlaW5nIHJlc3BlY3RmdWwgb2YgZGlmZmVyaW5nIHZpZXdwb2ludHMgYW5kIGV4cGVyaWVuY2VzCiogR3JhY2VmdWxseSBhY2NlcHRpbmcgY29uc3RydWN0aXZlIGNyaXRpY2lzbQoqIEZvY3VzaW5nIG9uIHdoYXQgaXMgYmVzdCBmb3IgdGhlIGNvbW11bml0eQoqIFNob3dpbmcgZW1wYXRoeSB0b3dhcmRzIG90aGVyIGNvbW11bml0eSBtZW1iZXJzCgpFeGFtcGxlcyBvZiB1bmFjY2VwdGFibGUgYmVoYXZpb3IgYnkgcGFydGljaXBhbnRzIGluY2x1ZGU6CgoqIFRoZSB1c2Ugb2Ygc2V4dWFsaXplZCBsYW5ndWFnZSBvciBpbWFnZXJ5IGFuZCB1bndlbGNvbWUgc2V4dWFsIGF0dGVudGlvbiBvciBhZHZhbmNlcwoqIFRyb2xsaW5nLCBpbnN1bHRpbmcvZGVyb2dhdG9yeSBjb21tZW50cywgYW5kIHBlcnNvbmFsIG9yIHBvbGl0aWNhbCBhdHRhY2tzCiogUHVibGljIG9yIHByaXZhdGUgaGFyYXNzbWVudAoqIFB1Ymxpc2hpbmcgb3RoZXJzJyBwcml2YXRlIGluZm9ybWF0aW9uLCBzdWNoIGFzIGEgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBhZGRyZXNzLCB3aXRob3V0IGV4cGxpY2l0IHBlcm1pc3Npb24KKiBPdGhlciBjb25kdWN0IHdoaWNoIGNvdWxkIHJlYXNvbmFibHkgYmUgY29uc2lkZXJlZCBpbmFwcHJvcHJpYXRlIGluIGEgcHJvZmVzc2lvbmFsIHNldHRpbmcKCiMjIE91ciBSZXNwb25zaWJpbGl0aWVzCgpQcm9qZWN0IG1haW50YWluZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgY2xhcmlmeWluZyB0aGUgc3RhbmRhcmRzIG9mIGFjY2VwdGFibGUgYmVoYXZpb3IgYW5kIGFyZSBleHBlY3RlZCB0byB0YWtlIGFwcHJvcHJpYXRlIGFuZCBmYWlyIGNvcnJlY3RpdmUgYWN0aW9uIGluIHJlc3BvbnNlIHRvIGFueSBpbnN0YW5jZXMgb2YgdW5hY2NlcHRhYmxlIGJlaGF2aW9yLgoKUHJvamVjdCBtYWludGFpbmVycyBoYXZlIHRoZSByaWdodCBhbmQgcmVzcG9uc2liaWxpdHkgdG8gcmVtb3ZlLCBlZGl0LCBvciByZWplY3QgY29tbWVudHMsIGNvbW1pdHMsIGNvZGUsIHdpa2kgZWRpdHMsIGlzc3VlcywgYW5kIG90aGVyIGNvbnRyaWJ1dGlvbnMgdGhhdCBhcmUgbm90IGFsaWduZWQgdG8gdGhpcyBDb2RlIG9mIENvbmR1Y3QsIG9yIHRvIGJhbiB0ZW1wb3JhcmlseSBvciBwZXJtYW5lbnRseSBhbnkgY29udHJpYnV0b3IgZm9yIG90aGVyIGJlaGF2aW9ycyB0aGF0IHRoZXkgZGVlbSBpbmFwcHJvcHJpYXRlLCB0aHJlYXRlbmluZywgb2ZmZW5zaXZlLCBvciBoYXJtZnVsLgoKIyMgU2NvcGUKClRoaXMgQ29kZSBvZiBDb25kdWN0IGFwcGxpZXMgYm90aCB3aXRoaW4gcHJvamVjdCBzcGFjZXMgYW5kIGluIHB1YmxpYyBzcGFjZXMgd2hlbiBhbiBpbmRpdmlkdWFsIGlzIHJlcHJlc2VudGluZyB0aGUgcHJvamVjdCBvciBpdHMgY29tbXVuaXR5LiBFeGFtcGxlcyBvZiByZXByZXNlbnRpbmcgYSBwcm9qZWN0IG9yIGNvbW11bml0eSBpbmNsdWRlIHVzaW5nIGFuIG9mZmljaWFsIHByb2plY3QgZS1tYWlsIGFkZHJlc3MsIHBvc3RpbmcgdmlhIGFuIG9mZmljaWFsIHNvY2lhbCBtZWRpYSBhY2NvdW50LCBvciBhY3RpbmcgYXMgYW4gYXBwb2ludGVkIHJlcHJlc2VudGF0aXZlIGF0IGFuIG9ubGluZSBvciBvZmZsaW5lIGV2ZW50LiBSZXByZXNlbnRhdGlvbiBvZiBhIHByb2plY3QgbWF5IGJlIGZ1cnRoZXIgZGVmaW5lZCBhbmQgY2xhcmlmaWVkIGJ5IHByb2plY3QgbWFpbnRhaW5lcnMuCgojIyBFbmZvcmNlbWVudAoKSW5zdGFuY2VzIG9mIGFidXNpdmUsIGhhcmFzc2luZywgb3Igb3RoZXJ3aXNlIHVuYWNjZXB0YWJsZSBiZWhhdmlvciBtYXkgYmUgcmVwb3J0ZWQgYnkgY29udGFjdGluZyB0aGUgcHJvamVjdCB0ZWFtIGF0IGh5YnJpZGF1dGhAZ21haWwuY29tLiBUaGUgcHJvamVjdCB0ZWFtIHdpbGwgcmV2aWV3IGFuZCBpbnZlc3RpZ2F0ZSBhbGwgY29tcGxhaW50cywgYW5kIHdpbGwgcmVzcG9uZCBpbiBhIHdheSB0aGF0IGl0IGRlZW1zIGFwcHJvcHJpYXRlIHRvIHRoZSBjaXJjdW1zdGFuY2VzLiBUaGUgcHJvamVjdCB0ZWFtIGlzIG9ibGlnYXRlZCB0byBtYWludGFpbiBjb25maWRlbnRpYWxpdHkgd2l0aCByZWdhcmQgdG8gdGhlIHJlcG9ydGVyIG9mIGFuIGluY2lkZW50LiBGdXJ0aGVyIGRldGFpbHMgb2Ygc3BlY2lmaWMgZW5mb3JjZW1lbnQgcG9saWNpZXMgbWF5IGJlIHBvc3RlZCBzZXBhcmF0ZWx5LgoKUHJvamVjdCBtYWludGFpbmVycyB3aG8gZG8gbm90IGZvbGxvdyBvciBlbmZvcmNlIHRoZSBDb2RlIG9mIENvbmR1Y3QgaW4gZ29vZCBmYWl0aCBtYXkgZmFjZSB0ZW1wb3Jhcnkgb3IgcGVybWFuZW50IHJlcGVyY3Vzc2lvbnMgYXMgZGV0ZXJtaW5lZCBieSBvdGhlciBtZW1iZXJzIG9mIHRoZSBwcm9qZWN0J3MgbGVhZGVyc2hpcC4KCiMjIEF0dHJpYnV0aW9uCgpUaGlzIENvZGUgb2YgQ29uZHVjdCBpcyBhZGFwdGVkIGZyb20gdGhlIFtDb250cmlidXRvciBDb3ZlbmFudF1baG9tZXBhZ2VdLCB2ZXJzaW9uIDEuNCwgYXZhaWxhYmxlIGF0IFtodHRwOi8vY29udHJpYnV0b3ItY292ZW5hbnQub3JnL3ZlcnNpb24vMS80XVt2ZXJzaW9uXQoKW2hvbWVwYWdlXTogaHR0cDovL2NvbnRyaWJ1dG9yLWNvdmVuYW50Lm9yZwpbdmVyc2lvbl06IGh0dHA6Ly9jb250cmlidXRvci1jb3ZlbmFudC5vcmcvdmVyc2lvbi8xLzQvCg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/composer.json</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICAgIm5hbWUiOiAiaHlicmlkYXV0aC9oeWJyaWRhdXRoIiwKICAgICJkZXNjcmlwdGlvbiI6ICJQSFAgU29jaWFsIEF1dGhlbnRpY2F0aW9uIExpYnJhcnkiLAogICAgImtleXdvcmRzIjogWyJvYXV0aCIsICJvcGVuaWQiLCAiYXV0aGVudGljYXRpb24iLCAiYXV0aG9yaXphdGlvbiIsICJzb2NpYWwiLCAiYXBpIiwgImdvb2dsZSIsICJmYWNlYm9vayIsICJ0d2l0dGVyIl0sCiAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9oeWJyaWRhdXRoLmdpdGh1Yi5pbyIsCiAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICJsaWNlbnNlIjogIk1JVCIsCiAgICAiYXV0aG9ycyI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogIk1pbGVkIiwKICAgICAgICAgICAgImVtYWlsIjogImh5YnJpZGF1dGhAZ21haWwuY29tIgogICAgICAgIH0KICAgIF0sCiAgICAic3VwcG9ydCI6IHsKICAgICAgICAiaXNzdWVzIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvaXNzdWVzIiwKICAgICAgICAiZ2l0dGVyIjogImh0dHBzOi8vZ2l0dGVyLmltL2h5YnJpZGF1dGgvaHlicmlkYXV0aCIKICAgIH0sCiAgICAicmVxdWlyZSI6IHsKICAgICAgICAicGhwIjogIj49NS40LjAiCiAgICB9LAogICAgInJlcXVpcmUtZGV2IjogewogICAgICAgICJleHQtY3VybCI6ICIqIiwKICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjguMzUiCiAgICB9LAogICAgImF1dG9sb2FkIjogewogICAgICAgICJwc3ItNCI6IHsKICAgICAgICAgICAiSHlicmlkYXV0aFxcIjogInNyYy8iCiAgICAgICAgfQogICAgfSwKICAgICJhdXRvbG9hZC1kZXYiOiB7CiAgICAgICAgInBzci00IjogewogICAgICAgICAgICJIeWJyaWRhdXRoVGVzdFxcSHlicmlkYXV0aFxcIjogInRlc3QvIgogICAgICAgIH0KICAgIH0sCiAgICAiZXh0cmEiOiB7CiAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMy4wLWRldiIKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/CONTRIBUTING.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29udHJpYnV0aW5nCj09PT09PT09PT09PQoKSHlicmlkQXV0aCBpcyBhIGNvbW11bml0eSBkcml2ZW4gcHJvamVjdCwgYW5kIGl0IG5lZWRzIHlvdXIgaGVscCB0byBrZWVwIHRoZSBwcm9qZWN0IGdvaW5nLgoKCiMjIyBSZXBvcnQgUHJvYmxlbXMKCkEgZ3JlYXQgd2F5IHRvIGhlbHAgaXMgdG8gZmluZCBhbmQgc3VibWl0IFtidWcgcmVwb3J0c10oaHR0cHM6Ly9naXRodWIuY29tL2h5YnJpZGF1dGgvaHlicmlkYXV0aC9pc3N1ZXMpIG9yIHRvIGZpeCB0aGUKZXhpc3Rpbmcgb25lcy4gCgpXaGVuIHJlcG9ydGluZyBuZXcgaXNzdWVzLCBwbGVhc2UgcHJvdmlkZSBhcyBtdWNoIGRldGFpbCBhbmQgY29udGV4dCBhcyBwb3NzaWJsZSwgb3RoZXJ3aXNlIHdlIHdpbGwgYmUgbGVmdCBpbiB0aGUgZGFyawphYm91dCB0aGUgcHJvYmxlbSB5b3UgaGF2aW5nLgoKCiMjIyBEb2N1bWVudGF0aW9uCgpZb3UgY2FuIGhlbHAgaW1wcm92ZSBIeWJyaWRhdXRoIHVzZXIgZG9jdW1lbnRhdGlvbiAodGhpcyB3ZWJzaXRlKSBieSBtYWtpbmcgaXQgbW9yZSBjb25zaXN0ZW50IGFuZCByZWFkYWJsZSwgYW5kIGJ5IGFkZGluZwptaXNzaW5nIGluZm9ybWF0aW9uLCBjb3JyZWN0aW5nIGVycm9ycyBhbmQgdHlwb3MuCgpIeWJyaWRhdXRoIGRvY3VtZW50YXRpb24gaXMgbWFpbnRhaW5lZCBhcyBwbGFpbiB0ZXh0IG1hcmtkb3duIGZpbGVzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGguZ2l0aHViLmlvCgoKIyMjIERldmVsb3AKCklmIHlvdSBoYXZlIGZpeGVkIGEgYnVnIG9yIGltcGxlbWVudGVkIGEgbmV3IGZlYXR1cmUgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBzaGFyZSB3aXRoIHRoZSBjb21tdW5pdHksIHNlbmQgYSBwdWxsIHJlcXVlc3QKYWdhaW5zdCB0aGUgW2RldiBicmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvKS4KCkJlZm9yZSBjb250cmlidXRpbmcgY29kZSwgcGxlYXNlIGNvbnNpZGVyIHRoZXNlIGd1aWRlIGxpbmVzOgoKKipDb2RpbmcgU3R5bGUqKgoKSHlicmlkQXV0aCBmb2xsb3dzIFtQU1ItMV0oaHR0cDovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTEvKSBhbmQgW1BTUi0yXShodHRwOi8vd3d3LnBocC1maWcub3JnL3Bzci9wc3ItMi8pLgoKUGxlYXNlIHByZXZlbnQgeW91ciBJREUgZm9yIHJlZm9ybWF0dGluZyBodWdlIGNodW5rcyBvZiBjb2RlL2ZpbGVzIGFzIGl0IG1ha2UgaXQgbmVhcmx5IGltcG9zc2libGUgdG8gc2VlIHdoYXQgY2hhbmdlcyB3ZXJlCmFjdHVhbGx5IG1hZGUgdG8gYSBmaWxlIG9uIHlvdXIgUHVsbCBSZXF1ZXN0LgoKKipDb21wYXRpYmlsaXR5KioKCkFkZGl0aW9uYWwgcHJvdmlkZXJzLCBtaW5vciBlbmhhbmNlbWVudHMsIGJ1Z3MgYW5kIHR5cG9zIGZpeGVzIGFyZSBtb3N0IHdlbGNvbWUuIExhcmdlIGFuZCAiYnJlYWtpbmciIGNoYW5nZXMgc2hvdWxkIGJlIApkaXNjdXNzZWQgYWhlYWQgb2YgdGltZS4gKipQbGVhc2UgYXNrIGZpcnN0KiouCgpIeWJyaWRBdXRoIDMgaXMgY29tcGF0aWJsZSB3aXRoICoqUEhQIDUuNCoqIGFuZCB0aGVyZWZvcmUgYWxsIGNvZGUgc3VwcGxpZWQgbXVzdCBzdGljayB0byB0aGlzIHJlcXVpcmVtZW50LgoKKipMaWNlbnNlKioKCkh5YnJpZGF1dGggUEhQIExpYnJhcnkgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIE1JVCBMaWNlbnNlOiBCeSBjb250cmlidXRpbmcgeW91ciBjb2RlIHRvIHRoZSBwcm9qZWN0LCB5b3UgYWdyZWUgdG8KbGljZW5zZSB5b3VyIGNvbnRyaWJ1dGlvbiB1bmRlciB0aGUgTUlUIExpY2Vuc2UuICh3aGljaCBtZWFucywgb25jZSB5b3UgZG9uYXRlIHlvdXIgY29kZSB0byB0aGUgY29tbXVuaXR5LCBpdCBiZWNvbWUgZnJlZWx5CmF2YWlsYWJsZSB0byBldmVyeW9uZSB0byB1c2UsIG9yIG1pcy11c2UpLgo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/COPYING.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[RXhjZXB0IHdoZXJlIG90aGVyd2lzZSBub3RlZCBpbiB0aGUgc291cmNlIGNvZGUgKGkuZS4sIExpZ2h0T3BlbklEIGFuZCBPQXV0aApMaWJyYXJ5LCB3aGljaCBhcmUgY292ZXJlZCBieSBzaW1pbGFyIGxpY2VuY2VzIGJ1dCB3aXRoIGRpZmZlcmVudCBDb3B5cmlnaHQKbm90aWNlcykgYWxsIHRoZSBmaWxlcyBhcmU6CgogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTksIEh5YnJpZEF1dGggYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdBUkUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpIeWJyaWRBdXRoIGluY2x1ZGVzIGEgY29weSBvZiBMaWdodE9wZW5JRCwgbGljZW5zZWQgYXMgZm9sbG93czoKCiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNiBNZXdwIChtZXdwMTUxIGF0IGdtYWlsIGRvdCBjb20pCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCmFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KVEhFIFNPRlRXQVJFLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKSHlicmlkQXV0aCBpbmNsdWRlcyBhIG1vZGlmaWVkIGNvcHkgb2YgT0F1dGggUEhQIExpYnJhcnksIGxpY2Vuc2VkIGFzIGZvbGxvd3M6CgogQ29weXJpZ2h0IChjKSAyMDA3LTIwMTEgQW5keSBTbWl0aAoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgphbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOClRIRSBTT0ZUV0FSRS4K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_01.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBzaW1wbGUgZXhhbXBsZSBpbGx1c3RyYXRlIGhvdyB0byBhdXRoZW50aWNhdGUgdXNlcnMgd2l0aCBHaXRIdWIuCioKKiBNb3N0IG90aGVyIHByb3ZpZGVycyB3b3JrIHByZXR0eSBtdWNoIHRoZSBzYW1lLgoqLwoKLyoqCiAqIFN0ZXAgMDogU3RhcnQgUEhQIHNlc3Npb24KICoKICogTm9ybWFsbHkgdGhpcyBzdGVwIGlzIG5vdCByZXF1aXJlZCBhcyBIeWJyaWRBdXRoIHdpbGwgYXR0ZW1wdCB0byBzdGFydCB0aGUgc2Vzc2lvbiBmb3IgeW91LCBob3dldmVyCiAqIGluIHNvbWUgY2FzZXMgaXQgbWlnaHQgYmUgYmV0dGVyIHRvIGNhbGwgc2Vzc2lvbl9zdGFydCgpIGF0IHRvcCBvZiBzY3JpcHQgdG8gYXZvaWQgY29va2llLWJhc2VkIHNlc3Npb25zCiAqIGlzc3Vlcy4gCiAqCiAqIFNlZTogaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLnNlc3Npb24tc3RhcnQucGhwI3JlZnNlY3QxLWZ1bmN0aW9uLnNlc3Npb24tc3RhcnQtbm90ZXMKICogICAgICBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS84MDI4OTg3CiAqLwoKc2Vzc2lvbl9zdGFydCgpOwoKLyoqCiAqIFN0ZXAgMTogUmVxdWlyZSB0aGUgSHlicmlkYXV0aCBMaWJyYXJ5CiAqCiAqIFNob3VsZCBiZSBhcyBzaW1wbGUgYXMgaW5jbHVkaW5nIENvbXBvc2VyJ3MgYXV0b2xvYWRlci4KICovCgppbmNsdWRlICd2ZW5kb3IvYXV0b2xvYWQucGhwJzsKCi8qKgogKiBTdGVwIDI6IENvbmZpZ3VyaW5nIFlvdXIgQXBwbGljYXRpb24KICoKICogSWYgeW91J3JlIGFscmVhZHkgZmFtaWxpYXIgd2l0aCB0aGUgcHJvY2VzcywgeW91IGNhbiBza2lwIHRoZSBleHBsYW5hdGlvbiBiZWxvdy4KICoKICogVG8gZ2V0IHN0YXJ0ZWQgd2l0aCBHaXRIdWIgYXV0aGVudGljYXRpb24sIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBHaXRIdWIgYXBwbGljYXRpb24uCiAqCiAqIEZpcnN0LCBuYXZpZ2F0ZSB0byBodHRwczovL2dpdGh1Yi5jb20vc2V0dGluZ3MvZGV2ZWxvcGVycyB0aGVuIGNsaWNrIHRoZSBSZWdpc3RlcgogKiBuZXcgYXBwbGljYXRpb24gYnV0dG9uIGF0IHRoZSB0b3AgcmlnaHQgb2YgdGhhdCBwYWdlIGFuZCBmaWxsIGluIGFueSByZXF1aXJlZCBmaWVsZHMKICogc3VjaCBhcyB0aGUgYXBwbGljYXRpb24gbmFtZSwgZGVzY3JpcHRpb24gYW5kIHdlYnNpdGUuCiAqCiAqIFNldCB0aGUgQXV0aG9yaXphdGlvbiBjYWxsYmFjayBVUkwgdG8gaHR0cHM6Ly9wYXRoL3RvL2h5YnJpZGF1dGgvZXhhbXBsZXMvZXhhbXBsZV8wMS5waHAuCiAqIFVuZGVyc3RhbmRhYmx5LCB5b3UgbmVlZCB0byByZXBsYWNlICdwYXRoL3RvL2h5YnJpZGF1dGgnIHdpdGggdGhlIHJlYWwgcGF0aCB0byB0aGlzIHNjcmlwdC4KICoKICogTm90ZSB0aGF0IEh5YnJpZGF1dGggcHJvdmlkZXMgYW4gdXRpbGl0eSBmdW5jdGlvbiB0aGF0IGNhbiBnZW5lcmF0ZSB0aGUgY3VycmVudCBwYWdlIHVybCBmb3IgeW91CiAqIGFuZCBjYW4gYmUgdXNlZCBmb3IgdGhlIGNhbGxiYWNrLiBFeGFtcGxlOiAnY2FsbGJhY2snID0+IEh5YnJpZGF1dGhcSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKCkKICoKICogQWZ0ZXIgY29uZmlndXJpbmcgeW91ciBHaXRIdWIgYXBwbGljYXRpb24sIHNpbXBsZSByZXBsYWNlICd5b3VyLWFwcC1pZCcgYW5kICd5b3VyLWFwcC1zZWNyZXQnCiAqIHdpdGggeW91ciBhcHBsaWNhdGlvbiBjcmVkZW50aWFscyAoQ2xpZW50IElEIGFuZCBDbGllbnQgU2VjcmV0KS4KICoKICogUHJvdmlkZXJzIHdobyB1c2VzIE9BdXRoIDIuMCBwcm90b2NvbCAoaS5nLiwgR2l0SHViLCBGYWNlYm9vaywgR29vZ2xlLCBldGMuKSBtYXkgbmVlZAogKiBhbiBBdXRob3JpemF0aW9uIHNjb3BlIGFzIGFkZGl0aW9uYWwgcGFyYW1ldGVyLiBBdXRob3JpemF0aW9uIHNjb3BlcyBhcmUgc3RyaW5ncyB0aGF0CiAqIGVuYWJsZSBhY2Nlc3MgdG8gcGFydGljdWxhciByZXNvdXJjZXMsIHN1Y2ggYXMgdXNlciBkYXRhLgogKgogKiBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL29hdXRoLwogKiBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL29hdXRoLyNzY29wZXMKICovCgokY29uZmlnID0gWwogICAgJ2NhbGxiYWNrJyA9PiAnaHR0cHM6Ly9wYXRoL3RvL2h5YnJpZGF1dGgvZXhhbXBsZXMvZXhhbXBsZV8wMS5waHAnLCAvLyBvciBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpCgogICAgJ2tleXMnID0+IFsgJ2lkJyA9PiAneW91ci1hcHAtaWQnLCAnc2VjcmV0JyA9PiAneW91ci1hcHAtc2VjcmV0JyBdLCAvLyBZb3VyIEdpdGh1YiBhcHBsaWNhdGlvbiBjcmVkZW50aWFscwoKICAgIC8qIG9wdGlvbmFsIDogc2V0IHNjb3BlCiAgICAgICAgJ3Njb3BlJyA9PiAndXNlcjplbWFpbCcsICovCgogICAgLyogb3B0aW9uYWwgOiBzZXQgZGVidWcgbW9kZQogICAgICAgICdkZWJ1Z19tb2RlJyA9PiB0cnVlLAogICAgICAgIC8vIFBhdGggdG8gZmlsZSB3cml0ZWFibGUgYnkgdGhlIHdlYiBzZXJ2ZXIuIFJlcXVpcmVkIGlmICdkZWJ1Z19tb2RlJyBpcyBub3QgZmFsc2UKICAgICAgICAnZGVidWdfZmlsZScgPT4gX19GSUxFX18gLiAnLmxvZycsICovCgogICAgLyogb3B0aW9uYWwgOiBjdXN0b21pemUgQ3VybCBzZXR0aW5ncwogICAgICAgIC8vIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGN1cmwsIHJlZmVyIHRvOiBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2ZyL2Z1bmN0aW9uLmN1cmwtc2V0b3B0LnBocCAgCiAgICAgICAgJ2N1cmxfb3B0aW9ucycgPT4gWwogICAgICAgICAgICAvLyBzZXR0aW5nIGN1c3RvbSBjZXJ0aWZpY2F0ZXMKICAgICAgICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiA9PiB0cnVlLAogICAgICAgICAgICBDVVJMT1BUX0NBSU5GTyAgICAgICAgID0+ICcvcGF0aC90by95b3VyL2NlcnRpZmljYXRlLmNydCcsCgogICAgICAgICAgICAvLyBzZXQgYSB2YWxpZCBwcm94eSBpcCBhZGRyZXNzCiAgICAgICAgICAgIENVUkxPUFRfUFJPWFkgPT4gJyouKi4qLio6KicsCgogICAgICAgICAgICAvLyBzZXQgYSBjdXN0b20gdXNlciBhZ2VudAogICAgICAgICAgICBDVVJMT1BUX1VTRVJBR0VOVCAgICAgID0+ICcnCiAgICAgICAgXSAqLwpdOwoKLyoqCiAqIFN0ZXAgMzogSW5zdGFudGlhdGUgR2l0aHViIEFkYXB0ZXIKICoKICogVGhpcyBleGFtcGxlIGluc3RhbnRpYXRlcyBhIEdpdEh1YiBhZGFwdGVyIHVzaW5nIHRoZSBhcnJheSAkY29uZmlnIHdlIGp1c3QgYnVpbHQuCiAqLwoKJGdpdGh1YiA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXEdpdEh1YigkY29uZmlnKTsKCi8qKgogKiBTdGVwIDQ6IEF1dGhlbnRpY2F0aW5nIFVzZXJzCiAqCiAqIFdoZW4gaW52b2tlZCwgYGF1dGhlbnRpY2F0ZSgpYCB3aWxsIHJlZGlyZWN0IHVzZXJzIHRvIEdpdEh1YiBsb2dpbiBwYWdlIHdoZXJlIHRoZXkKICogd2lsbCBiZSBhc2tlZCB0byBncmFudCBhY2Nlc3MgdG8geW91ciBhcHBsaWNhdGlvbi4gSWYgdGhleSBkbywgR2l0SHViIHdpbGwgcmVkaXJlY3QKICogdGhlIHVzZXJzIGJhY2sgdG8gQXV0aG9yaXphdGlvbiBjYWxsYmFjayBVUkwgKGkuZS4sIHRoaXMgc2NyaXB0KS4KICoKICogTm90ZSB0aGF0IEdpdEh1YiBhbmQgZmV3IG90aGVyIHByb3ZpZGVycyB3aWxsIGFzayB0aGVpciB1c2VycyBmb3IgYXV0aG9yaXNhdGlvbgogKiBvbmx5IG9uY2UuCiAqLwoKJGdpdGh1Yi0+YXV0aGVudGljYXRlKCk7CgovKioKICogU3RlcCA1OiBSZXRyaWV2ZSBVc2VycyBQcm9maWxlcwogKgogKiBDYWxsaW5nIGdldFVzZXJQcm9maWxlIHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgY2xhc3MgSHlicmlkYXV0aFxVc2VyXFByb2ZpbGUgd2hpY2ggY29udGFpbiB0aGUgCiAqIGNvbm5lY3RlZCB1c2VyJ3MgcHJvZmlsZSBpbiBzaW1wbGUgYW5kIHN0YW5kYXJkaXplZCBzdHJ1Y3R1cmUgYWNyb3NzIGFsbCB0aGUgc29jaWFsIEFQSXMgc3VwcG9ydGVkCiAqIGJ5IEh5YnJpZEF1dGguCiAqLwoKJHVzZXJQcm9maWxlID0gJGdpdGh1Yi0+Z2V0VXNlclByb2ZpbGUoKTsKCmVjaG8gJ0hpICcuJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZTsKCi8qKgogKiBCb251czogQWNjZXNzIEdpdEh1YiBBUEkKICoKICogTm93IHRoYXQgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZCB3aXRoIEdpaHViLCBhbmQgZGVwZW5kaW5nIG9uIHRoZSBhdXRob3JpemF0aW9uIGdpdmVuIHRvIHlvdXIKICogYXBwbGljYXRpb24sIHlvdSBzaG91bGQgYmUgYWJsZSB0byBxdWVyeSB0aGUgc2FpZCBBUEkgb24gYmVoYWxmIG9mIHRoZSB1c2VyLgogKgogKiBBcyBhbiBleGFtcGxlIHdlIGxpc3QgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlcidzIHB1YmxpYyBnaXN0cy4KICovCgokYXBpUmVzcG9uc2UgPSAkZ2l0aHViLT5hcGlSZXF1ZXN0KCdnaXN0cycpOwoKLyoqCiAqIFN0ZXAgNjogRGlzY29ubmVjdCB0aGUgYWRhcHRlcgogKgogKiBUaGlzIHdpbGwgZXJhc2UgdGhlIGN1cnJlbnQgdXNlciBhdXRoZW50aWNhdGlvbiBkYXRhIGZyb20gc2Vzc2lvbiwgYW5kIGFueSBmdXJ0aGVyCiAqIGF0dGVtcHQgdG8gY29tbXVuaWNhdGUgd2l0aCBHaXRodWIgQVBJIHdpbGwgcmVzdWx0IG9uIGFuIGF1dGhvcmlzYXRpb24gZXhjZXB0aW9uLgogKi8KCiRnaXRodWItPmRpc2Nvbm5lY3QoKTsKCi8qKgogKiBGaW5hbCBub3RlOiBDYXRjaGluZyBFeGNlcHRpb25zCiAqCiAqIEh5YnJpZGF1dGggdXNlIGV4Y2VwdGlvbnMgZXh0ZW5zaXZlbHkgYW5kIGl0J3MgaW1wb3J0YW50IHRoYXQgdGhlc2UgZXhjZXB0aW9ucwogKiBiZSBwcm9wZXJseSBjYXVnaHQvaGFuZGxlZCBpbiB5b3VyIGNvZGUuCiAqCiAqIEJlbG93IGlzIGEgYmFzaWMgZXhhbXBsZSBvZiBob3cgdG8gY2F0Y2ggZXhjZXB0aW9ucy4KICoKICogTm90ZSB0aGF0IG9uIHRoZSBwcmV2aW91cyBzdGVwIHdlIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZSBBUEk7IG1lYW5pbmcgSHlicmlkYXV0aAogKiBoYXMgZXJhc2VkIHRoZSBvYXV0aCBhY2Nlc3MgdG9rZW4gdXNlZCB0byBzaWduIGh0dHAgcmVxdWVzdHMgZnJvbSB0aGUgY3VycmVudAogKiBzZXNzaW9uLCB0aHVzLCBhbnkgbmV3IHJlcXVlc3Qgd2Ugbm93IG1ha2Ugd2lsbCBub3cgdGhyb3cgYW4gZXhjZXB0aW9uLgogKgogKiBJdCdzIGltcG9ydGFudCB0aGF0IHlvdSBkb24ndCBzaG93IEh5YnJpZGF1dGggZXhjZXB0aW9uJ3MgbWVzc2FnZXMgdG8gdGhlIGVuZCB1c2VyIGFzCiAqIHRoZXkgbWF5IGluY2x1ZGUgc2Vuc2l0aXZlIGRhdGEsIGFuZCB0aGF0IHlvdSB1c2UgeW91ciBvd24gZXJyb3IgbWVzc2FnZXMgaW5zdGVhZC4KICovCgp0cnkgewogICAgJGdpdGh1Yi0+Z2V0VXNlclByb2ZpbGUoKTsKfQoKLyoqCiAqIENhdGNoIEN1cmwgRXJyb3JzCiAqCiAqIFRoaXMga2luZCBvZiBlcnJvciBtYXkgaGFwcGVuIGluIGNhc2Ugb2Y6CiAqICAgICAtIEludGVybmV0IG9yIE5ldHdvcmsgaXNzdWVzLgogKiAgICAgLSBZb3VyIHNlcnZlciBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXR1cCBjb3JyZWN0bHkuCiAqCiAqIFRoZSBmdWxsIGxpc3Qgb2YgY3VybCBlcnJvcnMgdGhhdCBtYXkgaGFwcGVuIGNhbiBiZSBmb3VuZCBhdCBodHRwOi8vY3VybC5oYXh4LnNlL2xpYmN1cmwvYy9saWJjdXJsLWVycm9ycy5odG1sCiAqLwoKY2F0Y2ggKEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uICRlKSB7CiAgICBlY2hvICdDdXJsIHRleHQgZXJyb3IgbWVzc2FnZSA6ICcuJGdpdGh1Yi0+Z2V0SHR0cENsaWVudCgpLT5nZXRSZXNwb25zZUNsaWVudEVycm9yKCk7Cn0KCi8qKgogKiBDYXRjaCBBUEkgUmVxdWVzdHMgRXJyb3JzCiAqCiAqIFRoaXMgdXN1YWxseSBoYXBwZW5zIHdoZW4gcmVxdWVzdGluZyBhOgogKiAgICAgLSBXcm9uZyBVUkkgb3IgYSBtYWwtZm9ybWF0dGVkIGh0dHAgcmVxdWVzdC4KICogICAgIC0gUHJvdGVjdGVkIHJlc291cmNlIHdpdGhvdXQgcHJvdmlkaW5nIGEgdmFsaWQgYWNjZXNzIHRva2VuLgogKi8KCmNhdGNoIChIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbiAkZSkgewogICAgZWNobyAnUmF3IEFQSSBSZXNwb25zZTogJy4kZ2l0aHViLT5nZXRIdHRwQ2xpZW50KCktPmdldFJlc3BvbnNlQm9keSgpOwp9CgovKioKICogQmFzZSBQSFAncyBleGNlcHRpb24gdGhhdCBjYXRjaGVzIGV2ZXJ5dGhpbmcgW2Vsc2VdCiAqLwoKY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gJ09vcHMhIFdlIHJhbiBpbnRvIGFuIHVua25vd24gaXNzdWU6ICcuJGUtPmdldE1lc3NhZ2UoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_02.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogRGV0YWlscyBob3cgdG8gdXNlIHVzZXJzIGluIGEgc2ltaWxhciBmYXNoaW9uIHRvIEh5YnJpZGF1dGggMi4gTm90ZSB0aGF0IHdoaWxlIEh5YnJpZGF1dGggMyBwcm92aWRlcyAKKiBhIHNpbWlsYXIgaW50ZXJmYWNlIHRvIEh5YnJpZGF1dGggMiwgYm90aCB2ZXJzaW9ucyBhcmUgbm90IGZ1bGx5IGNvbXBhdGlibGUgd2l0aCBlYWNoIG90aGVyLgoqLwoKaW5jbHVkZSAndmVuZG9yL2F1dG9sb2FkLnBocCc7Cgp1c2UgSHlicmlkYXV0aFxIeWJyaWRhdXRoOwp1c2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50OwoKJGNvbmZpZyA9IFsKICAgICdjYWxsYmFjaycgPT4gSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKCksCgogICAgJ3Byb3ZpZGVycycgPT4gWwogICAgICAgICdHaXRIdWInID0+IFsgCiAgICAgICAgICAgICdlbmFibGVkJyA9PiB0cnVlLAogICAgICAgICAgICAna2V5cycgICAgPT4gWyAnaWQnID0+ICcnLCAnc2VjcmV0JyA9PiAnJyBdLCAKICAgICAgICBdLAoKICAgICAgICAnR29vZ2xlJyA9PiBbIAogICAgICAgICAgICAnZW5hYmxlZCcgPT4gdHJ1ZSwKICAgICAgICAgICAgJ2tleXMnICAgID0+IFsgJ2lkJyA9PiAnJywgJ3NlY3JldCcgPT4gJycgXSwKICAgICAgICBdLAoKICAgICAgICAnRmFjZWJvb2snID0+IFsgCiAgICAgICAgICAgICdlbmFibGVkJyA9PiB0cnVlLAogICAgICAgICAgICAna2V5cycgICAgPT4gWyAnaWQnID0+ICcnLCAnc2VjcmV0JyA9PiAnJyBdLAogICAgICAgIF0sCgogICAgICAgICdUd2l0dGVyJyA9PiBbIAogICAgICAgICAgICAnZW5hYmxlZCcgPT4gdHJ1ZSwKICAgICAgICAgICAgJ2tleXMnICAgID0+IFsgJ2tleScgPT4gJycsICdzZWNyZXQnID0+ICcnIF0sCiAgICAgICAgXQogICAgXSwKCiAgICAvKiBvcHRpb25hbCA6IHNldCBkZWJ1ZyBtb2RlCiAgICAgICAgJ2RlYnVnX21vZGUnID0+IHRydWUsCiAgICAgICAgLy8gUGF0aCB0byBmaWxlIHdyaXRlYWJsZSBieSB0aGUgd2ViIHNlcnZlci4gUmVxdWlyZWQgaWYgJ2RlYnVnX21vZGUnIGlzIG5vdCBmYWxzZQogICAgICAgICdkZWJ1Z19maWxlJyA9PiBfX0ZJTEVfXyAuICcubG9nJywgKi8KCiAgICAvKiBvcHRpb25hbCA6IGN1c3RvbWl6ZSBDdXJsIHNldHRpbmdzCiAgICAgICAgLy8gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3VybCwgcmVmZXIgdG86IGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZnIvZnVuY3Rpb24uY3VybC1zZXRvcHQucGhwICAKICAgICAgICAnY3VybF9vcHRpb25zJyA9PiBbCiAgICAgICAgICAgIC8vIHNldHRpbmcgY3VzdG9tIGNlcnRpZmljYXRlcwogICAgICAgICAgICBDVVJMT1BUX1NTTF9WRVJJRllQRUVSID0+IHRydWUsCiAgICAgICAgICAgIENVUkxPUFRfQ0FJTkZPICAgICAgICAgPT4gJy9wYXRoL3RvL3lvdXIvY2VydGlmaWNhdGUuY3J0JywKCiAgICAgICAgICAgIC8vIHNldCBhIHZhbGlkIHByb3h5IGlwIGFkZHJlc3MKICAgICAgICAgICAgQ1VSTE9QVF9QUk9YWSA9PiAnKi4qLiouKjoqJywKCiAgICAgICAgICAgIC8vIHNldCBhIGN1c3RvbSB1c2VyIGFnZW50CiAgICAgICAgICAgIENVUkxPUFRfVVNFUkFHRU5UICAgICAgPT4gJycKICAgICAgICBdICovCl07Cgp0cnkgeyAgICAKICAgICRoeWJyaWRhdXRoID0gbmV3IEh5YnJpZGF1dGgoICRjb25maWcgKTsKCiAgICAkYWRhcHRlciA9ICRoeWJyaWRhdXRoLT5hdXRoZW50aWNhdGUoICdHaXRIdWInICk7CgogICAgLy8gJGFkYXB0ZXIgPSAkaHlicmlkYXV0aC0+YXV0aGVudGljYXRlKCAnR29vZ2xlJyApOwogICAgLy8gJGFkYXB0ZXIgPSAkaHlicmlkYXV0aC0+YXV0aGVudGljYXRlKCAnRmFjZWJvb2snICk7CiAgICAvLyAkYWRhcHRlciA9ICRoeWJyaWRhdXRoLT5hdXRoZW50aWNhdGUoICdUd2l0dGVyJyApOwoKICAgICR0b2tlbnMgPSAkYWRhcHRlci0+Z2V0QWNjZXNzVG9rZW4oKTsKICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwoKICAgIC8vIHByaW50X3IoICR0b2tlbnMgKTsKICAgIC8vIHByaW50X3IoICR1c2VyUHJvZmlsZSApOwoKICAgICRhZGFwdGVyLT5kaXNjb25uZWN0KCk7Cn0KY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_03.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogQW4gZXhhbXBsZSBvbiBob3cgdXNlIEFjY2VzcyBUb2tlbnMgdG8gYWNjZXNzIHByb3ZpZGVycyBBUElzLCBhbmQgaG93IHRvIHNldHVwIGN1c3RvbSBBUEkgZW5kcG9pbnRzLgoqLwoKaW5jbHVkZSAndmVuZG9yL2F1dG9sb2FkLnBocCc7CgokY29uZmlnID0gWwogICAgJ2NhbGxiYWNrJyAgPT4gSHlicmlkYXV0aFxIdHRwQ2xpZW50XFV0aWw6OmdldEN1cnJlbnRVcmwoKSwKCiAgICAna2V5cycgPT4gWyAnaWQnID0+ICd5b3VyLWZhY2Vib29rLWFwcC1pZCcsICdzZWNyZXQnID0+ICd5b3VyLWZhY2Vib29rLWFwcC1zZWNyZXQnIF0sCgogICAgJ2VuZHBvaW50cycgPT4gWwogICAgICAgICdhcGlfYmFzZV91cmwnICAgICA9PiAnaHR0cHM6Ly9ncmFwaC5mYWNlYm9vay5jb20vdjIuOC8nLAogICAgICAgICdhdXRob3JpemVfdXJsJyAgICA9PiAnaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2RpYWxvZy9vYXV0aCcsCiAgICAgICAgJ2FjY2Vzc190b2tlbl91cmwnID0+ICdodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS9vYXV0aC9hY2Nlc3NfdG9rZW4nLAogICAgXQpdOwoKdHJ5IHsKICAgICRhZGFwdGVyID0gbmV3IEh5YnJpZGF1dGhcUHJvdmlkZXJcRmFjZWJvb2soICRjb25maWcgKTsKCiAgICAkYWRhcHRlci0+c2V0QWNjZXNzVG9rZW4oWydhY2Nlc3NfdG9rZW4nID0+ICd1c2VyLWZhY2Vib29rLWFjY2Vzcy10b2tlbiddKTsKCiAgICAkdXNlclByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsKCiAgICAvLyBwcmludF9yKCAkdXNlclByb2ZpbGUgKTsKCiAgICAkYWRhcHRlci0+ZGlzY29ubmVjdCgpOwp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKXsKICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_04.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogQSBzaW1wbGUgZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byBjb25uZWN0IHVzZXJzIHRvIHByb3ZpZGVycyB1c2luZyBPcGVuSUQuCiovCgppbmNsdWRlICd2ZW5kb3IvYXV0b2xvYWQucGhwJzsKCiRjb25maWcgPSBbCiAgICAnY2FsbGJhY2snICA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAoKICAgICdvcGVuaWRfaWRlbnRpZmllcicgPT4gJ2h0dHBzOi8vb3Blbi5sb2dpbi55YWhvb2FwaXMuY29tL29wZW5pZDIwL3d3dy55YWhvby5jb20veHJkcycsCiAgICAvLyAnb3BlbmlkX2lkZW50aWZpZXInID0+ICdodHRwczovL29wZW5pZC5zdGFja2V4Y2hhbmdlLmNvbS8nLAogICAgLy8gJ29wZW5pZF9pZGVudGlmaWVyJyA9PiAnaHR0cDovL3N0ZWFtY29tbXVuaXR5LmNvbS9vcGVuaWQnLAogICAgLy8gZXRjLgpdOwoKdHJ5IHsKICAgICRhZGFwdGVyID0gbmV3IEh5YnJpZGF1dGhcUHJvdmlkZXJcT3BlbklEKCAkY29uZmlnICk7CgogICAgJGFkYXB0ZXItPmF1dGhlbnRpY2F0ZSgpOwoKICAgICR0b2tlbnMgPSAkYWRhcHRlci0+Z2V0QWNjZXNzVG9rZW4oKTsKICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwoKICAgIC8vIHByaW50X3IoICR0b2tlbnMgKTsKICAgIC8vIHByaW50X3IoICR1c2VyUHJvZmlsZSApOwoKICAgICRhZGFwdGVyLT5kaXNjb25uZWN0KCk7Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApewogICAgZWNobyAkZS0+Z2V0TWVzc2FnZSgpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_05.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogQSBzaW1wbGUgZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byB1c2UgR3V6emxlIGFzIGEgSHR0cCBDbGllbnQgZm9yIEh5YnJpZGF1dGggaW5zdGVhZCBvZiBQSFAgQ3VybCBleHRlbnRpb24uCiovCgppbmNsdWRlICd2ZW5kb3IvYXV0b2xvYWQucGhwJzsKCiRjb25maWcgPSBbCiAgICAnY2FsbGJhY2snICA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAoKICAgICdrZXlzJyA9PiBbICdpZCcgPT4gJycsICdzZWNyZXQnID0+ICcnIF0sCl07CgokZ3V6emxlID0gbmV3IEh5YnJpZGF1dGhcSHR0cENsaWVudFxHdXp6bGUobnVsbCwgWwogICAgLy8gJ3ZlcmlmeScgID0+IHRydWUsICMgU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbgpdKTsKCnRyeSB7CiAgICAkYWRhcHRlciA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXEdpdGh1YigkY29uZmlnLCAkZ3V6emxlKTsKCiAgICAkYWRhcHRlci0+YXV0aGVudGljYXRlKCk7CgogICAgJHRva2VucyA9ICRhZGFwdGVyLT5nZXRBY2Nlc3NUb2tlbigpOwogICAgJHVzZXJQcm9maWxlID0gJGFkYXB0ZXItPmdldFVzZXJQcm9maWxlKCk7CgogICAgLy8gcHJpbnRfciggJHRva2VucyApOwogICAgLy8gcHJpbnRfciggJHVzZXJQcm9maWxlICk7CgogICAgJGFkYXB0ZXItPmRpc2Nvbm5lY3QoKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICl7CiAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_06/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_06/callback.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEEgc2ltcGxlIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgdG8gdXNlIG11bHRpcGxlIHByb3ZpZGVycy4KICovCgppbmNsdWRlICd2ZW5kb3IvYXV0b2xvYWQucGhwJzsKaW5jbHVkZSAnY29uZmlnLnBocCc7Cgp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxIeWJyaWRhdXRoOwp1c2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50Owp1c2UgSHlicmlkYXV0aFxTdG9yYWdlXFNlc3Npb247Cgp0cnkgewogICAgLyoqCiAgICAgKiBGZWVkIGNvbmZpZ3VyYXRpb24gYXJyYXkgdG8gSHlicmlkYXV0aC4KICAgICAqLwogICAgJGh5YnJpZGF1dGggPSBuZXcgSHlicmlkYXV0aCgkY29uZmlnKTsKCiAgICAvKioKICAgICAqIEluaXRpYWxpemUgc2Vzc2lvbiBzdG9yYWdlLgogICAgICovCiAgICAkc3RvcmFnZSA9IG5ldyBTZXNzaW9uKCk7CgogICAgLyoqCiAgICAgKiBIb2xkIGluZm9ybWF0aW9uIGFib3V0IHByb3ZpZGVyIHdoZW4gdXNlciBjbGlja3Mgb24gU2lnbiBJbi4KICAgICAqLwogICAgaWYgKGlzc2V0KCRfR0VUWydwcm92aWRlciddKSkgewogICAgICAgICRzdG9yYWdlLT5zZXQoJ3Byb3ZpZGVyJywgJF9HRVRbJ3Byb3ZpZGVyJ10pOwogICAgfQoKICAgIC8qKgogICAgICogV2hlbiBwcm92aWRlciBleGlzdHMgaW4gdGhlIHN0b3JhZ2UsIHRyeSB0byBhdXRoZW50aWNhdGUgdXNlciBhbmQgY2xlYXIgc3RvcmFnZS4KICAgICAqCiAgICAgKiBXaGVuIGludm9rZWQsIGBhdXRoZW50aWNhdGUoKWAgd2lsbCByZWRpcmVjdCB1c2VycyB0byBwcm92aWRlciBsb2dpbiBwYWdlIHdoZXJlIHRoZXkKICAgICAqIHdpbGwgYmUgYXNrZWQgdG8gZ3JhbnQgYWNjZXNzIHRvIHlvdXIgYXBwbGljYXRpb24uIElmIHRoZXkgZG8sIHByb3ZpZGVyIHdpbGwgcmVkaXJlY3QKICAgICAqIHRoZSB1c2VycyBiYWNrIHRvIEF1dGhvcml6YXRpb24gY2FsbGJhY2sgVVJMIChpLmUuLCB0aGlzIHNjcmlwdCkuCiAgICAgKi8KICAgIGlmICgkcHJvdmlkZXIgPSAkc3RvcmFnZS0+Z2V0KCdwcm92aWRlcicpKSB7CiAgICAgICAgJGh5YnJpZGF1dGgtPmF1dGhlbnRpY2F0ZSgkcHJvdmlkZXIpOwogICAgICAgICRzdG9yYWdlLT5zZXQoJ3Byb3ZpZGVyJywgbnVsbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGlzIHdpbGwgZXJhc2UgdGhlIGN1cnJlbnQgdXNlciBhdXRoZW50aWNhdGlvbiBkYXRhIGZyb20gc2Vzc2lvbiwgYW5kIGFueSBmdXJ0aGVyCiAgICAgKiBhdHRlbXB0IHRvIGNvbW11bmljYXRlIHdpdGggcHJvdmlkZXIuCiAgICAgKi8KICAgIGlmIChpc3NldCgkX0dFVFsnbG9nb3V0J10pKSB7CiAgICAgICAgJGFkYXB0ZXIgPSAkaHlicmlkYXV0aC0+Z2V0QWRhcHRlcigkX0dFVFsnbG9nb3V0J10pOwogICAgICAgICRhZGFwdGVyLT5kaXNjb25uZWN0KCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZWRpcmVjdHMgdXNlciB0byBob21lIHBhZ2UgKGkuZS4sIGluZGV4LnBocCBpbiBvdXIgY2FzZSkKICAgICAqLwogICAgSHR0cENsaWVudFxVdGlsOjpyZWRpcmVjdCgnaHR0cHM6Ly9wYXRoL3RvL2h5YnJpZGF1dGgvZXhhbXBsZXMvZXhhbXBsZV8wNicpOwp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_06/config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJ1aWxkIGEgY29uZmlndXJhdGlvbiBhcnJheSB0byBwYXNzIHRvIGBIeWJyaWRhdXRoXEh5YnJpZGF1dGhgCiAqLwoKJGNvbmZpZyA9IFsKICAvKioKICAgKiBTZXQgdGhlIEF1dGhvcml6YXRpb24gY2FsbGJhY2sgVVJMIHRvIGh0dHBzOi8vcGF0aC90by9oeWJyaWRhdXRoL2V4YW1wbGVzL2V4YW1wbGVfMDYvY2FsbGJhY2sucGhwLgogICAqIFVuZGVyc3RhbmRhYmx5LCB5b3UgbmVlZCB0byByZXBsYWNlICdwYXRoL3RvL2h5YnJpZGF1dGgnIHdpdGggdGhlIHJlYWwgcGF0aCB0byB0aGlzIHNjcmlwdC4KICAgKi8KICAnY2FsbGJhY2snID0+ICdodHRwczovL3BhdGgvdG8vaHlicmlkYXV0aC9leGFtcGxlcy9leGFtcGxlXzA2L2NhbGxiYWNrLnBocCcsCiAgJ3Byb3ZpZGVycycgPT4gWwogICAgJ1R3aXR0ZXInID0+IFsKICAgICAgJ2VuYWJsZWQnID0+IHRydWUsCiAgICAgICdrZXlzJyA9PiBbCiAgICAgICAgJ2tleScgPT4gJy4uLicsCiAgICAgICAgJ3NlY3JldCcgPT4gJy4uLicsCiAgICAgIF0sCiAgICBdLAogICAgJ0xpbmtlZEluJyA9PiBbCiAgICAgICdlbmFibGVkJyA9PiB0cnVlLAogICAgICAna2V5cycgPT4gWwogICAgICAgICdpZCcgPT4gJy4uLicsCiAgICAgICAgJ3NlY3JldCcgPT4gJy4uLicsCiAgICAgIF0sCiAgICBdLAogICAgJ0ZhY2Vib29rJyA9PiBbCiAgICAgICdlbmFibGVkJyA9PiB0cnVlLAogICAgICAna2V5cycgPT4gWwogICAgICAgICdpZCcgPT4gJy4uLicsCiAgICAgICAgJ3NlY3JldCcgPT4gJy4uLicsCiAgICAgIF0sCiAgICBdLAogIF0sCl07Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_06/index.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJ1aWxkIGEgc2ltcGxlIEhUTUwgcGFnZSB3aXRoIG11bHRpcGxlIHByb3ZpZGVycy4KICovCgppbmNsdWRlICd2ZW5kb3IvYXV0b2xvYWQucGhwJzsKaW5jbHVkZSAnY29uZmlnLnBocCc7Cgp1c2UgSHlicmlkYXV0aFxIeWJyaWRhdXRoOwoKJGh5YnJpZGF1dGggPSBuZXcgSHlicmlkYXV0aCgkY29uZmlnKTsKJGFkYXB0ZXJzID0gJGh5YnJpZGF1dGgtPmdldENvbm5lY3RlZEFkYXB0ZXJzKCk7Cj8+Cgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iZW4iPgo8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDx0aXRsZT5FeGFtcGxlIDA2PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KPGgxPlNpZ24gaW48L2gxPgoKPHVsPgogICAgPD9waHAgZm9yZWFjaCAoJGh5YnJpZGF1dGgtPmdldFByb3ZpZGVycygpIGFzICRuYW1lKSA6ID8+CiAgICAgICAgPD9waHAgaWYgKCFpc3NldCgkYWRhcHRlcnNbJG5hbWVdKSkgOiA/PgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSI8P3BocCBwcmludCAkY29uZmlnWydjYWxsYmFjayddIC4gIj9wcm92aWRlcj17JG5hbWV9IjsgPz4iPgogICAgICAgICAgICAgICAgICAgIFNpZ24gaW4gd2l0aCA8c3Ryb25nPjw/cGhwIHByaW50ICRuYW1lOyA/Pjwvc3Ryb25nPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDw/cGhwIGVuZGlmOyA/PgogICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KPC91bD4KCjw/cGhwIGlmICgkYWRhcHRlcnMpIDogPz4KICAgIDxoMT5Zb3UgYXJlIGxvZ2dlZCBpbjo8L2gxPgogICAgPHVsPgogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhZGFwdGVycyBhcyAkbmFtZSA9PiAkYWRhcHRlcikgOiA/PgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8c3Ryb25nPjw/cGhwIHByaW50ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpLT5kaXNwbGF5TmFtZTsgPz48L3N0cm9uZz4gZnJvbQogICAgICAgICAgICAgICAgPGk+PD9waHAgcHJpbnQgJG5hbWU7ID8+PC9pPgogICAgICAgICAgICAgICAgPHNwYW4+KDxhIGhyZWY9Ijw/cGhwIHByaW50ICRjb25maWdbJ2NhbGxiYWNrJ10gLiAiP2xvZ291dD17JG5hbWV9IjsgPz4iPkxvZyBPdXQ8L2E+KTwvc3Bhbj4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/PgogICAgPC91bD4KPD9waHAgZW5kaWY7ID8+CjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_07/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_07/callback.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEEgc2ltcGxlIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgdG8gdXNlIG11bHRpcGxlIHByb3ZpZGVycywgb3BlbmluZyBwcm92aWRlciBhdXRoZW50aWNhdGlvbiBpbiBhIHBvcC11cC4KICovCgpyZXF1aXJlICdwYXRoL3RvL3ZlbmRvci9hdXRvbG9hZC5waHAnOwpyZXF1aXJlICdjb25maWcucGhwJzsKCnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXEh5YnJpZGF1dGg7CnVzZSBIeWJyaWRhdXRoXEh0dHBDbGllbnQ7CnVzZSBIeWJyaWRhdXRoXFN0b3JhZ2VcU2Vzc2lvbjsKCnRyeSB7CgogICAgJGh5YnJpZGF1dGggPSBuZXcgSHlicmlkYXV0aCgkY29uZmlnKTsKICAgICRzdG9yYWdlID0gbmV3IFNlc3Npb24oKTsKICAgICRlcnJvciA9IGZhbHNlOwoKICAgIC8vCiAgICAvLyBFdmVudCAxOiBVc2VyIGNsaWNrZWQgU0lHTi1JTiBsaW5rCiAgICAvLwogICAgaWYgKGlzc2V0KCRfR0VUWydwcm92aWRlciddKSkgewogICAgICAgIC8vIFZhbGlkYXRlIHByb3ZpZGVyIGV4aXN0cyBpbiB0aGUgJGNvbmZpZwogICAgICAgIGlmIChpbl9hcnJheSgkX0dFVFsncHJvdmlkZXInXSwgJGh5YnJpZGF1dGgtPmdldFByb3ZpZGVycygpKSkgewogICAgICAgICAgICAvLyBTdG9yZSB0aGUgcHJvdmlkZXIgZm9yIHRoZSBjYWxsYmFjayBldmVudAogICAgICAgICAgICAkc3RvcmFnZS0+c2V0KCdwcm92aWRlcicsICRfR0VUWydwcm92aWRlciddKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZXJyb3IgPSAkX0dFVFsncHJvdmlkZXInXTsKICAgICAgICB9CiAgICB9CgogICAgLy8KICAgIC8vIEV2ZW50IDI6IFVzZXIgY2xpY2tlZCBMT0dPVVQgbGluawogICAgLy8KICAgIGlmIChpc3NldCgkX0dFVFsnbG9nb3V0J10pKSB7CiAgICAgICAgaWYgKGluX2FycmF5KCRfR0VUWydsb2dvdXQnXSwgJGh5YnJpZGF1dGgtPmdldFByb3ZpZGVycygpKSkgewogICAgICAgICAgICAvLyBEaXNjb25uZWN0IHRoZSBhZGFwdGVyCiAgICAgICAgICAgICRhZGFwdGVyID0gJGh5YnJpZGF1dGgtPmdldEFkYXB0ZXIoJF9HRVRbJ2xvZ291dCddKTsKICAgICAgICAgICAgJGFkYXB0ZXItPmRpc2Nvbm5lY3QoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZXJyb3IgPSAkX0dFVFsnbG9nb3V0J107CiAgICAgICAgfQogICAgfQoKICAgIC8vCiAgICAvLyBIYW5kbGUgaW52YWxpZCBwcm92aWRlciBlcnJvcnMKICAgIC8vCiAgICBpZiAoJGVycm9yKSB7CiAgICAgICAgZXJyb3JfbG9nKCdIeWJyaWRBdXRoIEVycm9yOiBQcm92aWRlciAnLiBqc29uX2VuY29kZSgkZXJyb3IpIC4nIG5vdCBmb3VuZCBvciBub3QgZW5hYmxlZCBpbiAkY29uZmlnJyk7CiAgICAgICAgLy8gQ2xvc2UgdGhlIHBvcC11cCB3aW5kb3cKICAgICAgICBlY2hvICIKICAgICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICAgICAgPC9zY3JpcHQ+IjsKICAgICAgICBleGl0OwogICAgfQoKICAgIC8vCiAgICAvLyBFdmVudCAzOiBQcm92aWRlciByZXR1cm5zIHZpYSBDQUxMQkFDSwogICAgLy8KICAgIGlmICgkcHJvdmlkZXIgPSAkc3RvcmFnZS0+Z2V0KCdwcm92aWRlcicpKSB7CgogICAgICAgICRoeWJyaWRhdXRoLT5hdXRoZW50aWNhdGUoJHByb3ZpZGVyKTsKICAgICAgICAkc3RvcmFnZS0+c2V0KCdwcm92aWRlcicsIG51bGwpOwoKICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgcHJvdmlkZXIgcmVjb3JkCiAgICAgICAgJGFkYXB0ZXIgPSAkaHlicmlkYXV0aC0+Z2V0QWRhcHRlcigkcHJvdmlkZXIpOwogICAgICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwogICAgICAgICRhY2Nlc3NUb2tlbiA9ICRhZGFwdGVyLT5nZXRBY2Nlc3NUb2tlbigpOwoKICAgICAgICAvLyBhZGQgeW91ciBjdXN0b20gQVVUSCBmdW5jdGlvbnMgKGlmIGFueSkgaGVyZQogICAgICAgIC8vIC4uLgogICAgICAgICRkYXRhID0gWwogICAgICAgICAgICAndG9rZW4nICAgICAgICAgPT4gJGFjY2Vzc1Rva2VuLAogICAgICAgICAgICAnaWRlbnRpZmllcicgICAgPT4gJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyLAogICAgICAgICAgICAnZW1haWwnICAgICAgICAgPT4gJHVzZXJQcm9maWxlLT5lbWFpbCwKICAgICAgICAgICAgJ2ZpcnN0X25hbWUnICAgID0+ICR1c2VyUHJvZmlsZS0+Zmlyc3ROYW1lLAogICAgICAgICAgICAnbGFzdF9uYW1lJyAgICAgPT4gJHVzZXJQcm9maWxlLT5sYXN0TmFtZSwKICAgICAgICAgICAgJ3Bob3RvVVJMJyAgICAgID0+IHN0cnRvaygkdXNlclByb2ZpbGUtPnBob3RvVVJMLCc/JyksCiAgICAgICAgICAgIF07CiAgICAgICAgLy8gLi4uCgogICAgICAgIC8vIENsb3NlIHBvcC11cCB3aW5kb3cKICAgICAgICBlY2hvICIKICAgICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICAgICAgPC9zY3JpcHQ+IjsKCiAgICB9Cgp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgIGVycm9yX2xvZyggJGUtPmdldE1lc3NhZ2UoKSk7CiAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_07/config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJ1aWxkIGEgY29uZmlndXJhdGlvbiBhcnJheSB0byBwYXNzIHRvIGBIeWJyaWRhdXRoXEh5YnJpZGF1dGhgCiAqCiAqIFNldCB0aGUgQXV0aG9yaXphdGlvbiBjYWxsYmFjayBVUkwgdG8gaHR0cHM6Ly9wYXRoL3RvL2h5YnJpZGF1dGgvZXhhbXBsZXMvZXhhbXBsZV8wNy9jYWxsYmFjay5waHAKICogVW5kZXJzdGFuZGFibHksIHlvdSBuZWVkIHRvIHJlcGxhY2UgJ3BhdGgvdG8vaHlicmlkYXV0aCcgd2l0aCB0aGUgcmVhbCBwYXRoIHRvIHRoaXMgc2NyaXB0LgogKi8KJGNvbmZpZyA9IFsKICAgICdjYWxsYmFjaycgPT4gJ2h0dHBzOi8vcGF0aC90by9oeWJyaWRhdXRoL2V4YW1wbGVzL2V4YW1wbGVfMDcvY2FsbGJhY2sucGhwJywKICAgICdwcm92aWRlcnMnID0+IFsKCiAgICAgICAgJ0dvb2dsZScgPT4gWwogICAgICAgICAgICAnZW5hYmxlZCcgPT4gdHJ1ZSwKICAgICAgICAgICAgJ2tleXMnID0+IFsKICAgICAgICAgICAgICAgICdpZCcgICAgID0+ICcuLi4nLAogICAgICAgICAgICAgICAgJ3NlY3JldCcgPT4gJy4uLicsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICdzY29wZScgPT4gJ2VtYWlsJywKICAgICAgICBdLAoKICAgICAgICAvLyAnWWFob28nICAgICA9PiBbJ2VuYWJsZWQnID0+IHRydWUsICdrZXlzJyA9PiBbICdrZXknICA9PiAnLi4uJywgJ3NlY3JldCcgPT4gJy4uLiddXSwKICAgICAgICAvLyAnRmFjZWJvb2snICA9PiBbJ2VuYWJsZWQnID0+IHRydWUsICdrZXlzJyA9PiBbICdpZCcgICA9PiAnLi4uJywgJ3NlY3JldCcgPT4gJy4uLiddXSwKICAgICAgICAvLyAnVHdpdHRlcicgICA9PiBbJ2VuYWJsZWQnID0+IHRydWUsICdrZXlzJyA9PiBbICdrZXknICA9PiAnLi4uJywgJ3NlY3JldCcgPT4gJy4uLiddXSwKICAgICAgICAvLyAnSW5zdGFncmFtJyA9PiBbJ2VuYWJsZWQnID0+IHRydWUsICdrZXlzJyA9PiBbICdpZCcgICA9PiAnLi4uJywgJ3NlY3JldCcgPT4gJy4uLiddXSwKCiAgICBdLApdOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/example_07/index.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJ1aWxkIGEgc2ltcGxlIEhUTUwgcGFnZSB3aXRoIG11bHRpcGxlIHByb3ZpZGVycywgb3BlbmluZyBwcm92aWRlciBhdXRoZW50aWNhdGlvbiBpbiBhIHBvcC11cC4KICovCgpyZXF1aXJlICdwYXRoL3RvL3ZlbmRvci9hdXRvbG9hZC5waHAnOwpyZXF1aXJlICdjb25maWcucGhwJzsKCnVzZSBIeWJyaWRhdXRoXEh5YnJpZGF1dGg7CgokaHlicmlkYXV0aCA9IG5ldyBIeWJyaWRhdXRoKCRjb25maWcpOwokYWRhcHRlcnMgPSAkaHlicmlkYXV0aC0+Z2V0Q29ubmVjdGVkQWRhcHRlcnMoKTsKPz4KCjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPHRpdGxlPkV4YW1wbGUgMDc8L3RpdGxlPgoKICAgIDxzY3JpcHQ+CiAgICAgICAgZnVuY3Rpb24gYXV0aF9wb3B1cCggcHJvdmlkZXIgKXsKICAgICAgICAgICAgLy8gcmVwbGFjZSAncGF0aC90by9oeWJyaWRhdXRoJyB3aXRoIHRoZSByZWFsIHBhdGggdG8gdGhpcyBzY3JpcHQKICAgICAgICAgICAgdmFyIGF1dGhXaW5kb3cgPSB3aW5kb3cub3BlbignaHR0cHM6Ly9wYXRoL3RvL2h5YnJpZGF1dGgvZXhhbXBsZXMvZXhhbXBsZV8wNy9jYWxsYmFjay5waHA/cHJvdmlkZXI9Jytwcm92aWRlciwgJ2F1dGhXaW5kb3cnLCAnd2lkdGg9NjAwLGhlaWdodD00MDAsc2Nyb2xsYmFycz15ZXMnKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIDwvc2NyaXB0PgogICAgCjwvaGVhZD4KPGJvZHk+CiAgICA8aDE+U2lnbiBpbjwvaDE+CgogICAgPHVsPgoKPD9waHAgZm9yZWFjaCAoJGh5YnJpZGF1dGgtPmdldFByb3ZpZGVycygpIGFzICRuYW1lKSA6ID8+CiAgICA8P3BocCBpZiAoIWlzc2V0KCRhZGFwdGVyc1skbmFtZV0pKSA6ID8+CiAgICAgICAgPGxpPgogICAgICAgICAgICA8YSBocmVmPSIjIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmF1dGhfcG9wdXAoJzw/cGhwIHByaW50ICRuYW1lID8+Jyk7Ij4KICAgICAgICAgICAgICAgIFNpZ24gaW4gd2l0aCA8P3BocCBwcmludCAkbmFtZSA/PgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9saT4KICAgIDw/cGhwIGVuZGlmOyA/Pgo8P3BocCBlbmRmb3JlYWNoOyA/PgoKICAgIDwvdWw+Cgo8P3BocCBpZiAoJGFkYXB0ZXJzKSA6ID8+CiAgICA8aDE+WW91IGFyZSBsb2dnZWQgaW46PC9oMT4KICAgIDx1bD4KICAgICAgICA8P3BocCBmb3JlYWNoICgkYWRhcHRlcnMgYXMgJG5hbWUgPT4gJGFkYXB0ZXIpIDogPz4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPHN0cm9uZz48P3BocCBwcmludCAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKS0+ZGlzcGxheU5hbWU7ID8+PC9zdHJvbmc+IGZyb20KICAgICAgICAgICAgICAgIDxpPjw/cGhwIHByaW50ICRuYW1lOyA/PjwvaT4KICAgICAgICAgICAgICAgIDxzcGFuPig8YSBocmVmPSI8P3BocCBwcmludCAkY29uZmlnWydjYWxsYmFjayddIC4gIj9sb2dvdXQ9eyRuYW1lfSI7ID8+Ij5Mb2cgT3V0PC9hPik8L3NwYW4+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgIDwvdWw+Cjw/cGhwIGVuZGlmOyA/PgoKPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[NDAzLg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/examples/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[SHlicmlkYXV0aCAzIEV4YW1wbGVzCj09PT09PT09PT09PT09PT09PT09PT0KCkZpbGUgICAgICAgICAgIHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZXhhbXBsZV8wMS5waHAgfCBUaGlzIHNpbXBsZSBleGFtcGxlIGlsbHVzdHJhdGUgaG93IHRvIGF1dGhlbnRpY2F0ZSB1c2VycyB3aXRoIEdpdEh1Yi4gSWYgeW91J3JlIG5ldyB0byBIeWJyaWRhdXRoLCB0aGlzIGZpbGUgaXMgdGhlIG9uZSB5b3UnbGwgbGlrZWx5IHdhbnQgdG8gY2hlY2suCmV4YW1wbGVfMDIucGhwIHwgRGV0YWlscyBob3cgdG8gdXNlIHVzZXJzIGluIGEgc2ltaWxhciBmYXNoaW9uIHRvIEh5YnJpZGF1dGggMi4gTm90ZSB0aGF0IHdoaWxlIEh5YnJpZGF1dGggMyBwcm92aWRlcyBhIHNpbWlsYXIgaW50ZXJmYWNlIHRvIEh5YnJpZGF1dGggMiwgYm90aCB2ZXJzaW9ucyBhcmUgbm90IGZ1bGx5IGNvbXBhdGlibGUgd2l0aCBlYWNoIG90aGVyLgpleGFtcGxlXzAzLnBocCB8IEFuIGV4YW1wbGUgb24gaG93IHVzZSBBY2Nlc3MgVG9rZW5zIHRvIGFjY2VzcyBwcm92aWRlcnMgQVBJcywgYW5kIGhvdyB0byBzZXR1cCBjdXN0b20gQVBJIGVuZHBvaW50cy4KZXhhbXBsZV8wNC5waHAgfCBBIHNpbXBsZSBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIGNvbm5lY3QgdXNlcnMgdG8gcHJvdmlkZXJzIHVzaW5nIE9wZW5JRC4KZXhhbXBsZV8wNS5waHAgfCBBIHNpbXBsZSBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIHVzZSBHdXp6bGUgYXMgYSBIdHRwIENsaWVudCBmb3IgSHlicmlkYXV0aCBpbnN0ZWFkIG9mIFBIUCBDdXJsIGV4dGVuc2lvbi4KZXhhbXBsZV8wNi8gICAgfCBBIHNpbXBsZSBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIG9yZ2FuaXplIG11bHRpcGxlIHByb3ZpZGVycy4KZXhhbXBsZV8wNy8gICAgfCBBIHNpbXBsZSBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIG9yZ2FuaXplIG11bHRpcGxlIHByb3ZpZGVycywgdXNpbmcgYSBwb3AtdXAuCg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/ISSUE_TEMPLATE.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyMgQnVnLCBmZWF0dXJlIG9yIHF1ZXN0aW9uPwoKSXMgdGhpcyBhIGJ1ZywgYSBmZWF0dXJlIHJlcXVlc3Qgb3IgYSBxdWVzdGlvbj8KR2l2ZSB1cyBhIHNob3J0IGRlc2NyaXB0aW9uLgoKIyMjIFZlcnNpb24gYW5kIHByb3ZpZGVyCgpXaGF0IHZlcnNpb24gb2YgSHlicmlkIEF1dGggZG9lcyB0aGlzIHJlbGF0ZXMgdG8/CklzIHRoaXMgYW4gaXNzdWUgd2l0aCBhIHByb3ZpZGVyPyBJZiB5ZXMsIHdoaWNoIG9uZT8KCiMjIyBSZXByb2R1Y3Rpb24KCkhvdyBjYW4gd2UgcmVwbGljYXRlIHRoaXMgaXNzdWU/Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/phpunit.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHBocHVuaXQKICAgIGJvb3RzdHJhcD0iLi92ZW5kb3IvYXV0b2xvYWQucGhwIgogICAgYmFja3VwR2xvYmFscz0iZmFsc2UiCiAgICBjb2xvcnM9InRydWUiCiAgICBjb252ZXJ0RXJyb3JzVG9FeGNlcHRpb25zPSJ0cnVlIgogICAgY29udmVydE5vdGljZXNUb0V4Y2VwdGlvbnM9InRydWUiCiAgICBjb252ZXJ0V2FybmluZ3NUb0V4Y2VwdGlvbnM9InRydWUiCiAgICA+CiAgICA8dGVzdHN1aXRlcz4KICAgICAgICA8dGVzdHN1aXRlPgogICAgICAgICAgICA8ZGlyZWN0b3J5Pi4vdGVzdHMvPC9kaXJlY3Rvcnk+CiAgICAgICAgPC90ZXN0c3VpdGU+CiAgICA8L3Rlc3RzdWl0ZXM+CiAgICA8bG9nZ2luZz4KICAgICAgICA8bG9nIHR5cGU9Imp1bml0IiB0YXJnZXQ9InRlc3RzL2p1bml0LnhtbCIgbG9nSW5jb21wbGV0ZVNraXBwZWQ9ImZhbHNlIiAvPgogICAgPC9sb2dnaW5nPgo8L3BocHVuaXQ+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/PULL_REQUEST_TEMPLATE.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[fCBRIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICB8IEEKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0KfCBGaXhlZCBJc3N1ZXM/ICAgICAgICAgICAgfCBgRml4ZXMgIzEsIEZpeGVzICMyYCA8IS0tIHJlbW92ZSB0aGUgKGApIHF1b3RlcyB0byBsaW5rIHRoZSBpc3N1ZXMgLS0+CnwgUGF0Y2g6IEJ1ZyBGaXg/ICAgICAgICAgIHwKfCBNYWpvcjogQnJlYWtpbmcgQ2hhbmdlPyAgfAp8IE1pbm9yOiBOZXcgRmVhdHVyZT8gICAgICB8Cgo8IS0tIERlc2NyaWJlIHlvdXIgY2hhbmdlcyBiZWxvdyBpbiBhcyBtdWNoIGRldGFpbCBhcyBwb3NzaWJsZSAtLT4KPCEtLSBGb3IgZG9jdW1lbnRhdGlvbiBmaXhlcywgcGxzIGNyZWF0ZSBhIFBSIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGguZ2l0aHViLmlvIC0tPgo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyMgW0h5YnJpZGF1dGhdKGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vKSAzLjAKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2h5YnJpZGF1dGgvaHlicmlkYXV0aC5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9oeWJyaWRhdXRoL2h5YnJpZGF1dGgpIFshW1NjcnV0aW5pemVyIENvZGUgUXVhbGl0eV0oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvYmFkZ2VzL3F1YWxpdHktc2NvcmUucG5nP2I9bWFzdGVyKV0oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvP2JyYW5jaD1tYXN0ZXIpIFshW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvdi9zdGFibGUucG5nKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2h5YnJpZGF1dGgvaHlicmlkYXV0aCkgWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGhdKGh0dHBzOi8vYmFkZ2VzLmdpdHRlci5pbS9Kb2luJTIwQ2hhdC5zdmcpXShodHRwczovL2dpdHRlci5pbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGg/dXRtX3NvdXJjZT1iYWRnZSZ1dG1fbWVkaXVtPWJhZGdlJnV0bV9jYW1wYWlnbj1wci1iYWRnZSZ1dG1fY29udGVudD1iYWRnZSkKCkh5YnJpZGF1dGggZW5hYmxlcyBkZXZlbG9wZXJzIHRvIGVhc2lseSBidWlsZCBzb2NpYWwgYXBwbGljYXRpb25zIGFuZCB0b29scyB0byBlbmdhZ2Ugd2Vic2l0ZXMgdmlzaXRvcnMgYW5kIGN1c3RvbWVycyBvbiBhIHNvY2lhbCBsZXZlbCB0aGF0IHN0YXJ0cyBvZmYgd2l0aCBzb2NpYWwgc2lnbi1pbiBhbmQgZXh0ZW5kcyB0byBzb2NpYWwgc2hhcmluZywgdXNlcnMgcHJvZmlsZXMsIGZyaWVuZHMgbGlzdHMsIGFjdGl2aXRpZXMgc3RyZWFtcywgc3RhdHVzIHVwZGF0ZXMgYW5kIG1vcmUuCgpUaGUgbWFpbiBnb2FsIG9mIEh5YnJpZGF1dGggaXMgdG8gYWN0IGFzIGFuIGFic3RyYWN0IEFQSSBiZXR3ZWVuIHlvdXIgYXBwbGljYXRpb24gYW5kIHRoZSB2YXJpb3VzIHNvY2lhbCBuZXR3b3JrcyBBUElzIGFuZCBpZGVudGl0aWVzIHByb3ZpZGVycyBzdWNoIGFzIEZhY2Vib29rLCBUd2l0dGVyIGFuZCBHb29nbGUuCgojIyMjIFVzYWdlCgpIeWJyaWRhdXRoIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGJhc2ljIFtleGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL2h5YnJpZGF1dGgvaHlicmlkYXV0aC90cmVlL21hc3Rlci9leGFtcGxlcykuIFlvdSBjYW4gYWxzbyBmaW5kIGNvbXBsZXRlIEh5YnJpZGF1dGggZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2h5YnJpZGF1dGguZ2l0aHViLmlvCgpgYGBwaHAKJGNvbmZpZyA9IFsKICAgICdjYWxsYmFjaycgPT4gJ2h0dHBzOi8vZXhhbXBsZS5jb20vcGF0aC90by9zY3JpcHQucGhwJywKICAgICdrZXlzJyA9PiBbICdrZXknID0+ICd5b3VyLXR3aXR0ZXItY29uc3VtZXIta2V5JywgJ3NlY3JldCcgPT4gJ3lvdXItdHdpdHRlci1jb25zdW1lci1zZWNyZXQnIF0KXTsKCnRyeSB7CiAgICAkdHdpdHRlciA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXFR3aXR0ZXIoJGNvbmZpZyk7CgogICAgJHR3aXR0ZXItPmF1dGhlbnRpY2F0ZSgpOwoKICAgICRhY2Nlc3NUb2tlbiA9ICR0d2l0dGVyLT5nZXRBY2Nlc3NUb2tlbigpOwogICAgJHVzZXJQcm9maWxlID0gJHR3aXR0ZXItPmdldFVzZXJQcm9maWxlKCk7CiAgICAkYXBpUmVzcG9uc2UgPSAkdHdpdHRlci0+YXBpUmVxdWVzdCgnc3RhdHVzZXMvaG9tZV90aW1lbGluZS5qc29uJyk7Cn0KY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gJ09vcHMsIHdlIHJhbiBpbnRvIGFuIGlzc3VlISAnIC4gJGUtPmdldE1lc3NhZ2UoKTsKfQpgYGAKCiMjIyMgUmVxdWlyZW1lbnRzCgoqIFBIUCA1LjQrCiogUEhQIFNlc3Npb24KKiBQSFAgY1VSTAoKIyMjIyBJbnN0YWxsYXRpb24KClRvIGluc3RhbGwgSHlicmlkYXV0aCB3ZSByZWNvbW1lbmQgW0NvbXBvc2VyXShodHRwczovL2dldGNvbXBvc2VyLm9yZy8pLCB0aGUgbm93IGRlZmFjdG8gZGVwZW5kZW5jeSBtYW5hZ2VyIGZvciBQSFAuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gZG93bmxvYWQgYW5kIHVzZSB0aGUgbGF0ZXN0IHJlbGVhc2UgYXZhaWxhYmxlIGF0IFtHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvcmVsZWFzZXMpLgoKIyMjIyBWZXJzaW9ucyBTdGF0dXMKCnwgVmVyc2lvbiB8IFN0YXR1cyAgICAgIHwgUmVwb3NpdG9yeSAgICAgICAgICAgICAgfCBEb2N1bWVudGF0aW9uICAgICAgICAgICB8IFBIUCBWZXJzaW9uIHwKfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IDIueCAgICAgfCBNYWludGVuYW5jZSB8IFt2Ml1baHlicmlkYXV0aC0yLXJlcG9dIHwgW3YyXVtoeWJyaWRhdXRoLTItZG9jc10gfCA+PSA1LjMgICAgICB8CnwgMy54ICAgICB8IERldmVsb3BtZW50IHwgW3YzXVtoeWJyaWRhdXRoLTMtcmVwb10gfCBbdjNdW2h5YnJpZGF1dGgtMy1kb2NzXSB8ID49IDUuNCAgICAgIHwKCltoeWJyaWRhdXRoLTItcmVwb106IGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgvdHJlZS92MgpbaHlicmlkYXV0aC0zLXJlcG9dOiBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoLwpbaHlicmlkYXV0aC0yLWRvY3NdOiBodHRwczovL2h5YnJpZGF1dGguZ2l0aHViLmlvL2h5YnJpZGF1dGgvCltoeWJyaWRhdXRoLTMtZG9jc106IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vCgojIyMjIFF1ZXN0aW9ucywgSGVscCBhbmQgU3VwcG9ydD8KCkZvciBnZW5lcmFsIHF1ZXN0aW9ucyAoaS5lLCAiaG93LXRvIiBxdWVzdGlvbnMpLCBwbGVhc2UgY29uc2lkZXIgdXNpbmcgW1N0YWNrT3ZlcmZsb3ddKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC9oeWJyaWRhdXRoKSBpbnN0ZWFkIG9mIHRoZSBHaXRodWIgaXNzdWVzIHRyYWNrZXIuIEZvciBjb252ZW5pZW5jZSwgd2UgYWxzbyBoYXZlIGEgW2xvdy1hY3Rpdml0eV0gW0dpdHRlciBjaGFubmVsXShodHRwczovL2dpdHRlci5pbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgpIGlmIHlvdSB3YW50IHRvIGdldCBoZWxwIGRpcmVjdGx5IGZyb20gdGhlIGNvbW11bml0eS4KCiMjIyMgTGljZW5zZQoKSHlicmlkYXV0aCBQSFAgTGlicmFyeSBpcyByZWxlYXNlZCB1bmRlciB0aGUgdGVybXMgb2YgTUlUIExpY2Vuc2UuCgpGb3IgdGhlIGZ1bGwgQ29weXJpZ2h0IE5vdGljZSBhbmQgRGlzY2xhaW1lciwgc2VlIFtDT1BZSU5HLm1kXShodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoL2Jsb2IvbWFzdGVyL0NPUFlJTkcubWQpLgo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/AbstractAdapter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxBZGFwdGVyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXE5vdEltcGxlbWVudGVkRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cSHR0cENsaWVudEZhaWx1cmVFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcU3RvcmFnZVxTdG9yYWdlSW50ZXJmYWNlOwp1c2UgSHlicmlkYXV0aFxTdG9yYWdlXFNlc3Npb247CnVzZSBIeWJyaWRhdXRoXExvZ2dlclxMb2dnZXJJbnRlcmZhY2U7CnVzZSBIeWJyaWRhdXRoXExvZ2dlclxMb2dnZXI7CnVzZSBIeWJyaWRhdXRoXEh0dHBDbGllbnRcSHR0cENsaWVudEludGVyZmFjZTsKdXNlIEh5YnJpZGF1dGhcSHR0cENsaWVudFxDdXJsIGFzIEh0dHBDbGllbnQ7CnVzZSBIeWJyaWRhdXRoXERhdGE7CgovKioKICogQ2xhc3MgQWJzdHJhY3RBZGFwdGVyCiAqLwphYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEFkYXB0ZXIgaW1wbGVtZW50cyBBZGFwdGVySW50ZXJmYWNlCnsKICAgIHVzZSBEYXRhU3RvcmVUcmFpdDsKCiAgICAvKioKICAgICAqIFByb3ZpZGVyIElEICh1bmlxdWUgbmFtZSkuCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkICRwcm92aWRlcklkID0gJyc7CgogICAgLyoqCiAgICAgKiBTcGVjaWZpYyBQcm92aWRlciBjb25maWcuCiAgICAgKgogICAgICogQHZhciBtaXhlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJGNvbmZpZyA9IFtdOwoKICAgIC8qKgogICAgICogRXh0cmEgUHJvdmlkZXIgcGFyYW1ldGVycy4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHByb3RlY3RlZCAkcGFyYW1zOwoKICAgIC8qKgogICAgICogQ2FsbGJhY2sgdXJsCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkICRjYWxsYmFjayA9ICcnOwoKICAgIC8qKgogICAgICogU3RvcmFnZS4KICAgICAqCiAgICAgKiBAdmFyIFN0b3JhZ2VJbnRlcmZhY2UKICAgICAqLwogICAgcHVibGljICRzdG9yYWdlOwoKICAgIC8qKgogICAgICogSHR0cENsaWVudC4KICAgICAqCiAgICAgKiBAdmFyIEh0dHBDbGllbnRJbnRlcmZhY2UKICAgICAqLwogICAgcHVibGljICRodHRwQ2xpZW50OwoKICAgIC8qKgogICAgICogTG9nZ2VyLgogICAgICoKICAgICAqIEB2YXIgTG9nZ2VySW50ZXJmYWNlCiAgICAgKi8KICAgIHB1YmxpYyAkbG9nZ2VyOwoKICAgIC8qKgogICAgICogV2hldGhlciB0byB2YWxpZGF0ZSBBUEkgc3RhdHVzIGNvZGVzIG9mIGh0dHAgcmVzcG9uc2VzCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHByb3RlY3RlZCAkdmFsaWRhdGVBcGlSZXNwb25zZUh0dHBDb2RlID0gdHJ1ZTsKCiAgICAvKioKICAgICAqIENvbW1vbiBhZGFwdGVycyBjb25zdHJ1Y3Rvci4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgICAgICAgICAgICAgICAkY29uZmlnCiAgICAgKiBAcGFyYW0gSHR0cENsaWVudEludGVyZmFjZSAkaHR0cENsaWVudAogICAgICogQHBhcmFtIFN0b3JhZ2VJbnRlcmZhY2UgICAgJHN0b3JhZ2UKICAgICAqIEBwYXJhbSBMb2dnZXJJbnRlcmZhY2UgICAgICRsb2dnZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KAogICAgICAgICRjb25maWcgPSBbXSwKICAgICAgICBIdHRwQ2xpZW50SW50ZXJmYWNlICRodHRwQ2xpZW50ID0gbnVsbCwKICAgICAgICBTdG9yYWdlSW50ZXJmYWNlICAgICRzdG9yYWdlID0gbnVsbCwKICAgICAgICBMb2dnZXJJbnRlcmZhY2UgICAgICRsb2dnZXIgPSBudWxsCiAgICApIHsKICAgICAgICAkdGhpcy0+cHJvdmlkZXJJZCA9IChuZXcgXFJlZmxlY3Rpb25DbGFzcygkdGhpcykpLT5nZXRTaG9ydE5hbWUoKTsKCiAgICAgICAgJHRoaXMtPmNvbmZpZyA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJGNvbmZpZyk7CgogICAgICAgICR0aGlzLT5jb25maWd1cmUoKTsKCiAgICAgICAgJHRoaXMtPnNldEh0dHBDbGllbnQoJGh0dHBDbGllbnQpOwoKICAgICAgICAkdGhpcy0+c2V0U3RvcmFnZSgkc3RvcmFnZSk7CgogICAgICAgICR0aGlzLT5zZXRMb2dnZXIoJGxvZ2dlcik7CgogICAgICAgICR0aGlzLT5sb2dnZXItPmRlYnVnKHNwcmludGYoJ0luaXRpYWxpemUgJXMsIGNvbmZpZzogJywgZ2V0X2NsYXNzKCR0aGlzKSksICRjb25maWcpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgfQoKICAgIC8qKgogICAgKiBMb2FkIGFkYXB0ZXIncyBjb25maWd1cmF0aW9uCiAgICAqLwogICAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGNvbmZpZ3VyZSgpOwoKICAgIC8qKgogICAgKiBBZGFwdGVyIGluaXRpYWxpemVyCiAgICAqLwogICAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKTsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFwaVJlcXVlc3QoJHVybCwgJG1ldGhvZCA9ICdHRVQnLCAkcGFyYW1ldGVycyA9IFtdLCAkaGVhZGVycyA9IFtdKQogICAgewogICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbignUHJvdmlkZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCdQcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4nKTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJDb250YWN0cygpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCdQcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4nKTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQYWdlcygpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCdQcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4nKTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJBY3Rpdml0eSgkc3RyZWFtKQogICAgewogICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbignUHJvdmlkZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VyU3RhdHVzKCRzdGF0dXMpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCdQcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4nKTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldFBhZ2VTdGF0dXMoJHN0YXR1cywgJHBhZ2VJZCkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oJ1Byb3ZpZGVyIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLicpOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICoKICAgICAqIENoZWNraW5nIGFjY2Vzc190b2tlbiBvbmx5IHdvcmtzIGZvciBvYXV0aDEgYW5kIG9hdXRoMiwgb3BlbmlkIHdpbGwgb3ZlcndyaXRlIHRoaXMgbWV0aG9kLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNDb25uZWN0ZWQoKQogICAgewogICAgICAgIHJldHVybiAoYm9vbCkgJHRoaXMtPmdldFN0b3JlZERhdGEoJ2FjY2Vzc190b2tlbicpOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzY29ubmVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPmNsZWFyU3RvcmVkRGF0YSgpOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWNjZXNzVG9rZW4oKQogICAgewogICAgICAgICR0b2tlbk5hbWVzID0gWwogICAgICAgICAgICAnYWNjZXNzX3Rva2VuJywKICAgICAgICAgICAgJ2FjY2Vzc190b2tlbl9zZWNyZXQnLAogICAgICAgICAgICAndG9rZW5fdHlwZScsCiAgICAgICAgICAgICdyZWZyZXNoX3Rva2VuJywKICAgICAgICAgICAgJ2V4cGlyZXNfaW4nLAogICAgICAgICAgICAnZXhwaXJlc19hdCcsCiAgICAgICAgXTsKCiAgICAgICAgJHRva2VucyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkdG9rZW5OYW1lcyBhcyAkbmFtZSkgewogICAgICAgICAgICBpZiAoJHRoaXMtPmdldFN0b3JlZERhdGEoJG5hbWUpKSB7CiAgICAgICAgICAgICAgICAkdG9rZW5zWyAkbmFtZSBdID0gJHRoaXMtPmdldFN0b3JlZERhdGEoJG5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRva2VuczsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldEFjY2Vzc1Rva2VuKCR0b2tlbnMgPSBbXSkKICAgIHsKICAgICAgICAkdGhpcy0+Y2xlYXJTdG9yZWREYXRhKCk7CgogICAgICAgIGZvcmVhY2ggKCR0b2tlbnMgYXMgJHRva2VuID0+ICR2YWx1ZSkgewogICAgICAgICAgICAkdGhpcy0+c3RvcmVEYXRhKCR0b2tlbiwgJHZhbHVlKTsKICAgICAgICB9CgogICAgICAgIC8vIFJlLWluaXRpYWxpemUgdG9rZW4gcGFyYW1ldGVycy4KICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0SHR0cENsaWVudChIdHRwQ2xpZW50SW50ZXJmYWNlICRodHRwQ2xpZW50ID0gbnVsbCkKICAgIHsKICAgICAgICAkdGhpcy0+aHR0cENsaWVudCA9ICRodHRwQ2xpZW50ID86IG5ldyBIdHRwQ2xpZW50KCk7CgogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5leGlzdHMoJ2N1cmxfb3B0aW9ucycpICYmIG1ldGhvZF9leGlzdHMoJHRoaXMtPmh0dHBDbGllbnQsICdzZXRDdXJsT3B0aW9ucycpKSB7CiAgICAgICAgICAgICR0aGlzLT5odHRwQ2xpZW50LT5zZXRDdXJsT3B0aW9ucygkdGhpcy0+Y29uZmlnLT5nZXQoJ2N1cmxfb3B0aW9ucycpKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIdHRwQ2xpZW50KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmh0dHBDbGllbnQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRTdG9yYWdlKFN0b3JhZ2VJbnRlcmZhY2UgJHN0b3JhZ2UgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5zdG9yYWdlID0gJHN0b3JhZ2UgPzogbmV3IFNlc3Npb24oKTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFN0b3JhZ2UoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+c3RvcmFnZTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldExvZ2dlcihMb2dnZXJJbnRlcmZhY2UgJGxvZ2dlciA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPmxvZ2dlciA9ICRsb2dnZXIgPzogbmV3IExvZ2dlcigKICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+Z2V0KCdkZWJ1Z19tb2RlJyksCiAgICAgICAgICAgICR0aGlzLT5jb25maWctPmdldCgnZGVidWdfZmlsZScpCiAgICAgICAgKTsKCiAgICAgICAgaWYgKG1ldGhvZF9leGlzdHMoJHRoaXMtPmh0dHBDbGllbnQsICdzZXRMb2dnZXInKSkgewogICAgICAgICAgICAkdGhpcy0+aHR0cENsaWVudC0+c2V0TG9nZ2VyKCR0aGlzLT5sb2dnZXIpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldExvZ2dlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5sb2dnZXI7CiAgICB9CgogICAgLyoqCiAgICAqIFNldCBBZGFwdGVyJ3MgQVBJIGNhbGxiYWNrIHVybAogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICRjYWxsYmFjawogICAgKgogICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRDYWxsYmFjaygkY2FsbGJhY2spCiAgICB7CiAgICAgICAgaWYgKCEgZmlsdGVyX3ZhcigkY2FsbGJhY2ssIEZJTFRFUl9WQUxJREFURV9VUkwpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0EgdmFsaWQgY2FsbGJhY2sgdXJsIGlzIHJlcXVpcmVkLicpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmNhbGxiYWNrID0gJGNhbGxiYWNrOwogICAgfQoKICAgIC8qKgogICAgICogT3ZlcndyaXRlIEFkYXB0ZXIncyBBUEkgZW5kcG9pbnRzCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5fERhdGFcQ29sbGVjdGlvbiAkZW5kcG9pbnRzCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRBcGlFbmRwb2ludHMoJGVuZHBvaW50cyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGVtcHR5KCRlbmRwb2ludHMpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRjb2xsZWN0aW9uID0gaXNfYXJyYXkoJGVuZHBvaW50cykgPyBuZXcgRGF0YVxDb2xsZWN0aW9uKCRlbmRwb2ludHMpIDogJGVuZHBvaW50czsKCiAgICAgICAgJHRoaXMtPmFwaUJhc2VVcmwgPSAkY29sbGVjdGlvbi0+Z2V0KCdhcGlfYmFzZV91cmwnKSA/OiAkdGhpcy0+YXBpQmFzZVVybDsKICAgICAgICAkdGhpcy0+YXV0aG9yaXplVXJsID0gJGNvbGxlY3Rpb24tPmdldCgnYXV0aG9yaXplX3VybCcpID86ICR0aGlzLT5hdXRob3JpemVVcmw7CiAgICAgICAgJHRoaXMtPmFjY2Vzc1Rva2VuVXJsID0gJGNvbGxlY3Rpb24tPmdldCgnYWNjZXNzX3Rva2VuX3VybCcpID86ICR0aGlzLT5hY2Nlc3NUb2tlblVybDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBWYWxpZGF0ZSBzaWduZWQgQVBJIHJlc3BvbnNlcyBIdHRwIHN0YXR1cyBjb2RlLgogICAgICoKICAgICAqIFNpbmNlIHRoZSBzcGVjaWZpY3Mgb2YgZXJyb3IgcmVzcG9uc2VzIGlzIGJleW9uZCB0aGUgc2NvcGUgb2YgUkZDNjc0OSBhbmQgT0F1dGggQ29yZSBzcGVjaWZpY2F0aW9ucywKICAgICAqIEh5YnJpZGF1dGggd2lsbCBjb25zaWRlciBhbnkgSFRUUCBzdGF0dXMgY29kZSB0aGF0IGlzIGRpZmZlcmVudCB0aGFuICcyMDAgT0snIGFzIGFuIEVSUk9SLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycm9yIFN0cmluZyB0byBwcmUgYXBwZW5kIHRvIG1lc3NhZ2UgdGhyb3duIGluIGV4Y2VwdGlvbgogICAgICoKICAgICAqIEB0aHJvd3MgSHR0cENsaWVudEZhaWx1cmVFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgSHR0cFJlcXVlc3RGYWlsZWRFeGNlcHRpb24KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlQXBpUmVzcG9uc2UoJGVycm9yID0gJycpCiAgICB7CiAgICAgICAgJGVycm9yIC49ICFlbXB0eSgkZXJyb3IpID8gJy4gJyA6ICcnOwoKICAgICAgICBpZiAoJHRoaXMtPmh0dHBDbGllbnQtPmdldFJlc3BvbnNlQ2xpZW50RXJyb3IoKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSHR0cENsaWVudEZhaWx1cmVFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAkZXJyb3IuJ0hUVFAgY2xpZW50IGVycm9yOiAnLiR0aGlzLT5odHRwQ2xpZW50LT5nZXRSZXNwb25zZUNsaWVudEVycm9yKCkuJy4nCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAvLyBpZiB2YWxpZGF0ZUFwaVJlc3BvbnNlSHR0cENvZGUgaXMgc2V0IHRvIGZhbHNlLCB3ZSBieSBwYXNzIHZlcmlmaWNhdGlvbiBvZiBodHRwIHN0YXR1cyBjb2RlCiAgICAgICAgaWYgKCEgJHRoaXMtPnZhbGlkYXRlQXBpUmVzcG9uc2VIdHRwQ29kZSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkc3RhdHVzID0gJHRoaXMtPmh0dHBDbGllbnQtPmdldFJlc3BvbnNlSHR0cENvZGUoKTsKCiAgICAgICAgaWYgKCRzdGF0dXMgPCAyMDAgfHwgJHN0YXR1cyA+IDI5OSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSHR0cFJlcXVlc3RGYWlsZWRFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAkZXJyb3IgLiAnSFRUUCBlcnJvciAnLiR0aGlzLT5odHRwQ2xpZW50LT5nZXRSZXNwb25zZUh0dHBDb2RlKCkuCiAgICAgICAgICAgICAgICAnLiBSYXcgUHJvdmlkZXIgQVBJIHJlc3BvbnNlOiAnLiR0aGlzLT5odHRwQ2xpZW50LT5nZXRSZXNwb25zZUJvZHkoKS4nLicKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/AdapterInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxBZGFwdGVyOwoKdXNlIEh5YnJpZGF1dGhcSHR0cENsaWVudFxIdHRwQ2xpZW50SW50ZXJmYWNlOwp1c2UgSHlicmlkYXV0aFxTdG9yYWdlXFN0b3JhZ2VJbnRlcmZhY2U7CnVzZSBIeWJyaWRhdXRoXExvZ2dlclxMb2dnZXJJbnRlcmZhY2U7CgovKioKICogSW50ZXJmYWNlIEFkYXB0ZXJJbnRlcmZhY2UKICovCmludGVyZmFjZSBBZGFwdGVySW50ZXJmYWNlCnsKICAgIC8qKgogICAgICogSW5pdGlhdGUgdGhlIGFwcHJvcHJpYXRlIHByb3RvY29sIGFuZCBwcm9jZXNzL2F1dG9tYXRlIHRoZSBhdXRoZW50aWNhdGlvbiBvciBhdXRob3JpemF0aW9uIGZsb3cuCiAgICAgKgogICAgICogQHJldHVybiBib29sZWFufG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZSgpOwoKICAgIC8qKgogICAgICogUmV0dXJucyBUUlVFIGlmIHRoZSB1c2VyIGlzIGNvbm5lY3RlZAogICAgICoKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNDb25uZWN0ZWQoKTsKCiAgICAvKioKICAgICAqIENsZWFyIGFsbCBhY2Nlc3MgdG9rZW4gaW4gc3RvcmFnZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzY29ubmVjdCgpOwoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIGNvbm5lY3RlZCB1c2VyIHByb2ZpbGUKICAgICAqCiAgICAgKiBAcmV0dXJuIFxIeWJyaWRhdXRoXFVzZXJcUHJvZmlsZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBjb25uZWN0ZWQgdXNlciBjb250YWN0cyBsaXN0CiAgICAgKgogICAgICogQHJldHVybiBcSHlicmlkYXV0aFxVc2VyXENvbnRhY3RbXQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckNvbnRhY3RzKCk7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgY29ubmVjdGVkIHVzZXIgcGFnZXN8Y29tcGFuaWVzfGdyb3VwcyBsaXN0CiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclBhZ2VzKCk7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgdXNlciBhY3Rpdml0eSBzdHJlYW0KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJlYW0KICAgICAqCiAgICAgKiBAcmV0dXJuIFxIeWJyaWRhdXRoXFVzZXJcQWN0aXZpdHlbXQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckFjdGl2aXR5KCRzdHJlYW0pOwoKICAgIC8qKgogICAgICogUG9zdCBhIHN0YXR1cyBvbiB1c2VyIHdhbGx8dGltZWxpbmV8YmxvZ3x3ZWJzaXRlfGV0Yy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfGFycmF5ICRzdGF0dXMKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkIEFQSSByZXNwb25zZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXNlclN0YXR1cygkc3RhdHVzKTsKCiAgICAvKioKICAgICAqIFBvc3QgYSBzdGF0dXMgb24gcGFnZXxjb21wYW55fGdyb3VwIHdhbGwuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZ3xhcnJheSAkc3RhdHVzCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYWdlSWQKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkIEFQSSByZXNwb25zZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0UGFnZVN0YXR1cygkc3RhdHVzLCAkcGFnZUlkKTsKCiAgICAvKioKICAgICAqIFNlbmQgYSBzaWduZWQgcmVxdWVzdCB0byBwcm92aWRlciBBUEkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1cmwKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1ldGhvZAogICAgICogQHBhcmFtIGFycmF5ICRwYXJhbWV0ZXJzCiAgICAgKiBAcGFyYW0gYXJyYXkgJGhlYWRlcnMKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhcGlSZXF1ZXN0KCR1cmwsICRtZXRob2QgPSAnR0VUJywgJHBhcmFtZXRlcnMgPSBbXSwgJGhlYWRlcnMgPSBbXSk7CgogICAgLyoqCiAgICAgKiBSZXR1cm4gb2F1dGggYWNjZXNzIHRva2Vucy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbigpOwoKICAgIC8qKgogICAgICogU2V0IG9hdXRoIGFjY2VzcyB0b2tlbnMuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICR0b2tlbnMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldEFjY2Vzc1Rva2VuKCR0b2tlbnMgPSBbXSk7CgogICAgLyoqCiAgICAgKiBTZXQgaHR0cCBjbGllbnQgaW5zdGFuY2UuCiAgICAgKgogICAgICogQHBhcmFtIEh0dHBDbGllbnRJbnRlcmZhY2UgJGh0dHBDbGllbnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldEh0dHBDbGllbnQoSHR0cENsaWVudEludGVyZmFjZSAkaHR0cENsaWVudCA9IG51bGwpOwoKICAgIC8qKgogICAgICogUmV0dXJuIGh0dHAgY2xpZW50IGluc3RhbmNlLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SHR0cENsaWVudCgpOwoKICAgIC8qKgogICAgICogU2V0IHN0b3JhZ2UgaW5zdGFuY2UuCiAgICAgKgogICAgICogQHBhcmFtIFN0b3JhZ2VJbnRlcmZhY2UgJHN0b3JhZ2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldFN0b3JhZ2UoU3RvcmFnZUludGVyZmFjZSAkc3RvcmFnZSA9IG51bGwpOwoKICAgIC8qKgogICAgICogUmV0dXJuIHN0b3JhZ2UgaW5zdGFuY2UuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTdG9yYWdlKCk7CgogICAgLyoqCiAgICAgKiBTZXQgTG9nZ2VyIGluc3RhbmNlLgogICAgICoKICAgICAqIEBwYXJhbSBMb2dnZXJJbnRlcmZhY2UgJGxvZ2dlcgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0TG9nZ2VyKExvZ2dlckludGVyZmFjZSAkbG9nZ2VyID0gbnVsbCk7CgogICAgLyoqCiAgICAgKiBSZXR1cm4gbG9nZ2VyIGluc3RhbmNlLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TG9nZ2VyKCk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/DataStoreTrait.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxBZGFwdGVyOwoKLyoqCiAqIFRyYWl0IERhdGFTdG9yZVRyYWl0CiAqLwp0cmFpdCBEYXRhU3RvcmVUcmFpdAp7CiAgICAvKioKICAgICAqIFJldHVybnMgc3RvcmFnZSBpbnN0YW5jZQogICAgICoKICAgICAqIEByZXR1cm4gXEh5YnJpZGF1dGhcU3RvcmFnZVxTdG9yYWdlSW50ZXJmYWNlCiAgICAgKi8KICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRTdG9yYWdlKCk7CgogICAgLyoqCiAgICAgKiBTdG9yZSBhIHBpZWNlIG9mIGRhdGEgaW4gc3RvcmFnZS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBtYWlubHkgdXNlZCBmb3IgT0F1dGggdG9rZW5zIChhY2Nlc3MsIHNlY3JldCwgcmVmcmVzaCwgYW5kIHdoYXRub3QpLCBidXQgaXQKICAgICAqIGNhbiBiZSBhbHNvIHVzZWQgYnkgcHJvdmlkZXJzIHRvIHN0b3JlIGFueSBvdGhlciB1c2VmdWwgZGF0YSAoaS5nLiwgdXNlcl9pZCwgYXV0aF9ub25jZSwgZXRjLikKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc3RvcmVEYXRhKCRuYW1lLCAkdmFsdWUgPSBudWxsKQogICAgewogICAgICAgIC8vIGlmIGVtcHR5LCB3ZSBzaW1wbHkgZGVsZXRlIHRoZSB0aGluZyBhcyB3ZSdkIHdhbnQgdG8gb25seSBzdG9yZSBuZWNlc3NhcnkgZGF0YQogICAgICAgIGlmIChlbXB0eSgkdmFsdWUpKSB7CiAgICAgICAgICAgICR0aGlzLT5kZWxldGVTdG9yZWREYXRhKCRuYW1lKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5nZXRTdG9yYWdlKCktPnNldCgkdGhpcy0+cHJvdmlkZXJJZC4nLicuJG5hbWUsICR2YWx1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSBhIHBpZWNlIG9mIGRhdGEgZnJvbSBzdG9yYWdlLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG1haW5seSB1c2VkIGZvciBPQXV0aCB0b2tlbnMgKGFjY2Vzcywgc2VjcmV0LCByZWZyZXNoLCBhbmQgd2hhdG5vdCksIGJ1dCBpdAogICAgICogY2FuIGJlIGFsc28gdXNlZCBieSBwcm92aWRlcnMgdG8gcmV0cmlldmUgZnJvbSBzdG9yZSBhbnkgb3RoZXIgdXNlZnVsIGRhdGEgKGkuZy4sIHVzZXJfaWQsCiAgICAgKiBhdXRoX25vbmNlLCBldGMuKQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRTdG9yZWREYXRhKCRuYW1lKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0U3RvcmFnZSgpLT5nZXQoJHRoaXMtPnByb3ZpZGVySWQuJy4nLiRuYW1lKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhIHN0b3JlZCBwaWVjZSBvZiBkYXRhLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGRlbGV0ZVN0b3JlZERhdGEoJG5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPmdldFN0b3JhZ2UoKS0+ZGVsZXRlKCR0aGlzLT5wcm92aWRlcklkLicuJy4kbmFtZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEZWxldGUgYWxsIHN0b3JlZCBkYXRhIG9mIHRoZSBpbnN0YW50aWF0ZWQgYWRhcHRlcgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2xlYXJTdG9yZWREYXRhKCkKICAgIHsKICAgICAgICAkdGhpcy0+Z2V0U3RvcmFnZSgpLT5kZWxldGVNYXRjaCgkdGhpcy0+cHJvdmlkZXJJZC4nLicpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/OAuth1.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxBZGFwdGVyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRBcHBsaWNhdGlvbkNyZWRlbnRpYWxzRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cQXV0aG9yaXphdGlvbkRlbmllZEV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRPYXV0aFRva2VuRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cSW52YWxpZEFjY2Vzc1Rva2VuRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50Owp1c2UgSHlicmlkYXV0aFxUaGlyZHBhcnR5XE9BdXRoXE9BdXRoQ29uc3VtZXI7CnVzZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGhcT0F1dGhSZXF1ZXN0Owp1c2UgSHlicmlkYXV0aFxUaGlyZHBhcnR5XE9BdXRoXE9BdXRoU2lnbmF0dXJlTWV0aG9kSE1BQ1NIQTE7CnVzZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGhcT0F1dGhVdGlsOwoKLyoqCiAqIFRoaXMgY2xhc3MgIGNhbiBiZSB1c2VkIHRvIHNpbXBsaWZ5IHRoZSBhdXRob3JpemF0aW9uIGZsb3cgb2YgT0F1dGggMSBiYXNlZCBzZXJ2aWNlIHByb3ZpZGVycy4KICoKICogU3ViY2xhc3NlcyAoaS5lLiwgcHJvdmlkZXJzIGFkYXB0ZXJzKSBjYW4gZWl0aGVyIHVzZSB0aGUgYWxyZWFkeSBwcm92aWRlZCBtZXRob2RzIG9yIG92ZXJyaWRlCiAqIHRoZW0gd2hlbiBuZWNlc3NhcnkuCiAqLwphYnN0cmFjdCBjbGFzcyBPQXV0aDEgZXh0ZW5kcyBBYnN0cmFjdEFkYXB0ZXIgaW1wbGVtZW50cyBBZGFwdGVySW50ZXJmYWNlCnsKICAgIC8qKgogICAgKiBCYXNlIFVSTCB0byBwcm92aWRlciBBUEkKICAgICoKICAgICogVGhpcyB2YXIgd2lsbCBiZSB1c2VkIHRvIGJ1aWxkIHVybHMgd2hlbiBzZW5kaW5nIHNpZ25lZCByZXF1ZXN0cwogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICcnOwoKICAgIC8qKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJyc7CgogICAgLyoqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRyZXF1ZXN0VG9rZW5VcmwgPSAnJzsKCiAgICAvKioKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJyc7CgogICAgLyoqCiAgICAqIElQRCBBUEkgRG9jdW1lbnRhdGlvbgogICAgKgogICAgKiBPUFRJT05BTC4KICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnJzsKCiAgICAvKioKICAgICogT0F1dGggVmVyc2lvbgogICAgKgogICAgKiAgJzEuMCcgT0F1dGggQ29yZSAxLjAKICAgICogJzEuMGEnIE9BdXRoIENvcmUgMS4wIFJldmlzaW9uIEEKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwcm90ZWN0ZWQgJG9hdXRoMVZlcnNpb24gPSAnMS4wYSc7CgogICAgLyoqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRjb25zdW1lcktleSA9IG51bGw7CgogICAgLyoqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRjb25zdW1lclNlY3JldCA9IG51bGw7CgogICAgLyoqCiAgICAqIEB2YXIgb2JqZWN0CiAgICAqLwogICAgcHJvdGVjdGVkICRPQXV0aENvbnN1bWVyID0gbnVsbDsKCiAgICAvKioKICAgICogQHZhciBvYmplY3QKICAgICovCiAgICBwcm90ZWN0ZWQgJHNoYTFNZXRob2QgPSBudWxsOwoKICAgIC8qKgogICAgKiBAdmFyIG9iamVjdAogICAgKi8KICAgIHByb3RlY3RlZCAkY29uc3VtZXJUb2tlbiA9IG51bGw7CgogICAgLyoqCiAgICAqIEF1dGhvcml6YXRpb24gVXJsIFBhcmFtZXRlcnMKICAgICoKICAgICogQHZhciBib29sZWFuCiAgICAqLwogICAgcHJvdGVjdGVkICRBdXRob3JpemVVcmxQYXJhbWV0ZXJzID0gW107CgogICAgLyoqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRyZXF1ZXN0VG9rZW5NZXRob2QgPSAnUE9TVCc7CgogICAgLyoqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlcXVlc3RUb2tlblBhcmFtZXRlcnMgPSBbXTsKCiAgICAvKioKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkcmVxdWVzdFRva2VuSGVhZGVycyA9IFtdOwoKICAgIC8qKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkdG9rZW5FeGNoYW5nZU1ldGhvZCA9ICdQT1NUJzsKCiAgICAvKioKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkdG9rZW5FeGNoYW5nZVBhcmFtZXRlcnMgPSBbXTsKCiAgICAvKioKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkdG9rZW5FeGNoYW5nZUhlYWRlcnMgPSBbXTsKCiAgICAvKioKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpUmVxdWVzdFBhcmFtZXRlcnMgPSBbXTsKCiAgICAvKioKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpUmVxdWVzdEhlYWRlcnMgPSBbXTsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjb25maWd1cmUoKQogICAgewogICAgICAgICR0aGlzLT5jb25zdW1lcktleSAgICA9ICR0aGlzLT5jb25maWctPmZpbHRlcigna2V5cycpLT5nZXQoJ2lkJykgPzogJHRoaXMtPmNvbmZpZy0+ZmlsdGVyKCdrZXlzJyktPmdldCgna2V5Jyk7CiAgICAgICAgJHRoaXMtPmNvbnN1bWVyU2VjcmV0ID0gJHRoaXMtPmNvbmZpZy0+ZmlsdGVyKCdrZXlzJyktPmdldCgnc2VjcmV0Jyk7CgogICAgICAgIGlmICghICR0aGlzLT5jb25zdW1lcktleSB8fCAhJHRoaXMtPmNvbnN1bWVyU2VjcmV0KSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXBwbGljYXRpb25DcmVkZW50aWFsc0V4Y2VwdGlvbigKICAgICAgICAgICAgICAgICdZb3VyIGFwcGxpY2F0aW9uIGlkIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGNvbm5lY3QgdG8gJyAuICR0aGlzLT5wcm92aWRlcklkCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+ZXhpc3RzKCd0b2tlbnMnKSkgewogICAgICAgICAgICAkdGhpcy0+c2V0QWNjZXNzVG9rZW4oJHRoaXMtPmNvbmZpZy0+Z2V0KCd0b2tlbnMnKSk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+c2V0Q2FsbGJhY2soJHRoaXMtPmNvbmZpZy0+Z2V0KCdjYWxsYmFjaycpKTsKICAgICAgICAkdGhpcy0+c2V0QXBpRW5kcG9pbnRzKCR0aGlzLT5jb25maWctPmdldCgnZW5kcG9pbnRzJykpOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgIC8qKgogICAgICAgICogU2V0IHVwIE9BdXRoIFNpZ25hdHVyZSBhbmQgQ29uc3VtZXIKICAgICAgICAqCiAgICAgICAgKiBPQXV0aCBDb3JlOiBBbGwgVG9rZW4gcmVxdWVzdHMgYW5kIFByb3RlY3RlZCBSZXNvdXJjZXMgcmVxdWVzdHMgTVVTVCBiZSBzaWduZWQKICAgICAgICAqIGJ5IHRoZSBDb25zdW1lciBhbmQgdmVyaWZpZWQgYnkgdGhlIFNlcnZpY2UgUHJvdmlkZXIuCiAgICAgICAgKgogICAgICAgICogVGhlIHByb3RvY29sIGRlZmluZXMgdGhyZWUgc2lnbmF0dXJlIG1ldGhvZHM6IEhNQUMtU0hBMSwgUlNBLVNIQTEsIGFuZCBQTEFJTlRFWFQuLgogICAgICAgICoKICAgICAgICAqIFRoZSBDb25zdW1lciBkZWNsYXJlcyBhIHNpZ25hdHVyZSBtZXRob2QgaW4gdGhlIG9hdXRoX3NpZ25hdHVyZV9tZXRob2QgcGFyYW1ldGVyLi4KICAgICAgICAqCiAgICAgICAgKiBodHRwOi8vb2F1dGgubmV0L2NvcmUvMS4wYS8jc2lnbmluZ19wcm9jZXNzCiAgICAgICAgKi8KICAgICAgICAkdGhpcy0+c2hhMU1ldGhvZCAgPSBuZXcgT0F1dGhTaWduYXR1cmVNZXRob2RITUFDU0hBMSgpOwoKICAgICAgICAkdGhpcy0+T0F1dGhDb25zdW1lciA9IG5ldyBPQXV0aENvbnN1bWVyKAogICAgICAgICAgICAkdGhpcy0+Y29uc3VtZXJLZXksCiAgICAgICAgICAgICR0aGlzLT5jb25zdW1lclNlY3JldAogICAgICAgICk7CgogICAgICAgIGlmICgkdGhpcy0+Z2V0U3RvcmVkRGF0YSgncmVxdWVzdF90b2tlbicpKSB7CiAgICAgICAgICAgICR0aGlzLT5jb25zdW1lclRva2VuID0gbmV3IE9BdXRoQ29uc3VtZXIoCiAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgncmVxdWVzdF90b2tlbicpLAogICAgICAgICAgICAgICAgJHRoaXMtPmdldFN0b3JlZERhdGEoJ3JlcXVlc3RfdG9rZW5fc2VjcmV0JykKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+Z2V0U3RvcmVkRGF0YSgnYWNjZXNzX3Rva2VuJykpIHsKICAgICAgICAgICAgJHRoaXMtPmNvbnN1bWVyVG9rZW4gPSBuZXcgT0F1dGhDb25zdW1lcigKICAgICAgICAgICAgICAgICR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW4nKSwKICAgICAgICAgICAgICAgICR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW5fc2VjcmV0JykKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCkKICAgIHsKICAgICAgICAkdGhpcy0+bG9nZ2VyLT5pbmZvKHNwcmludGYoJyVzOjphdXRoZW50aWNhdGUoKScsIGdldF9jbGFzcygkdGhpcykpKTsKCiAgICAgICAgaWYgKCR0aGlzLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCEgJHRoaXMtPmdldFN0b3JlZERhdGEoJ3JlcXVlc3RfdG9rZW4nKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmF1dGhlbnRpY2F0ZUJlZ2luKCk7CiAgICAgICAgICAgIH0gZWxzZWlmICghICR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW4nKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmF1dGhlbnRpY2F0ZUZpbmlzaCgpOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleGNlcHRpb24pIHsKICAgICAgICAgICAgJHRoaXMtPmNsZWFyU3RvcmVkRGF0YSgpOwoKICAgICAgICAgICAgdGhyb3cgJGV4Y2VwdGlvbjsKICAgICAgICB9CgogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIC8qKgogICAgKiBJbml0aWF0ZSB0aGUgYXV0aG9yaXphdGlvbiBwcm90b2NvbAogICAgKgogICAgKiAxLiBPYnRhaW5pbmcgYW4gVW5hdXRob3JpemVkIFJlcXVlc3QgVG9rZW4KICAgICogMi4gQnVpbGQgQXV0aG9yaXphdGlvbiBVUkwgZm9yIEF1dGhvcml6YXRpb24gUmVxdWVzdCBhbmQgcmVkaXJlY3QgdGhlIHVzZXItYWdlbnQgdG8gdGhlCiAgICAqICAgIEF1dGhvcml6YXRpb24gU2VydmVyLgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdXRoZW50aWNhdGVCZWdpbigpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPnJlcXVlc3RBdXRoVG9rZW4oKTsKCiAgICAgICAgJHRoaXMtPnZhbGlkYXRlQXV0aFRva2VuUmVxdWVzdCgkcmVzcG9uc2UpOwoKICAgICAgICAkYXV0aFVybCA9ICR0aGlzLT5nZXRBdXRob3JpemVVcmwoKTsKCiAgICAgICAgJHRoaXMtPmxvZ2dlci0+ZGVidWcoc3ByaW50ZignJXM6OmF1dGhlbnRpY2F0ZUJlZ2luKCksIHJlZGlyZWN0aW5nIHVzZXIgdG86JywgZ2V0X2NsYXNzKCR0aGlzKSksIFskYXV0aFVybF0pOwoKICAgICAgICBIdHRwQ2xpZW50XFV0aWw6OnJlZGlyZWN0KCRhdXRoVXJsKTsKICAgIH0KCiAgICAvKioKICAgICAqIEZpbmFsaXplIHRoZSBhdXRob3JpemF0aW9uIHByb2Nlc3MKICAgICAqCiAgICAgKiBAdGhyb3dzIEF1dGhvcml6YXRpb25EZW5pZWRFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbgogICAgICogQHRocm93cyBJbnZhbGlkQWNjZXNzVG9rZW5FeGNlcHRpb24KICAgICAqIEB0aHJvd3MgSW52YWxpZE9hdXRoVG9rZW5FeGNlcHRpb24KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZUZpbmlzaCgpCiAgICB7CiAgICAgICAgJHRoaXMtPmxvZ2dlci0+ZGVidWcoCiAgICAgICAgICAgIHNwcmludGYoJyVzOjphdXRoZW50aWNhdGVGaW5pc2goKSwgY2FsbGJhY2sgdXJsOicsIGdldF9jbGFzcygkdGhpcykpLAogICAgICAgICAgICBbSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKHRydWUpXQogICAgICAgICk7CgogICAgICAgICRkZW5pZWQgICAgICAgICA9IGZpbHRlcl9pbnB1dChJTlBVVF9HRVQsICdkZW5pZWQnKTsKICAgICAgICAkb2F1dGhfcHJvYmxlbSAgPSBmaWx0ZXJfaW5wdXQoSU5QVVRfR0VULCAnb2F1dGhfcHJvYmxlbScpOwogICAgICAgICRvYXV0aF90b2tlbiAgICA9IGZpbHRlcl9pbnB1dChJTlBVVF9HRVQsICdvYXV0aF90b2tlbicpOwogICAgICAgICRvYXV0aF92ZXJpZmllciA9IGZpbHRlcl9pbnB1dChJTlBVVF9HRVQsICdvYXV0aF92ZXJpZmllcicpOwoKICAgICAgICBpZiAoJGRlbmllZCkgewogICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkRlbmllZEV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICdVc2VyIGRlbmllZCBhY2Nlc3MgcmVxdWVzdC4gUHJvdmlkZXIgcmV0dXJuZWQgYSBkZW5pZWQgdG9rZW46ICcgLiBodG1sZW50aXRpZXMoJGRlbmllZCkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICgkb2F1dGhfcHJvYmxlbSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9hdXRoVG9rZW5FeGNlcHRpb24oCiAgICAgICAgICAgICAgICAnUHJvdmlkZXIgcmV0dXJuZWQgYW4gaW52YWxpZCBvYXV0aF90b2tlbi4gb2F1dGhfcHJvYmxlbTogJyAuIGh0bWxlbnRpdGllcygkb2F1dGhfcHJvYmxlbSkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICghICRvYXV0aF90b2tlbikgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9hdXRoVG9rZW5FeGNlcHRpb24oCiAgICAgICAgICAgICAgICAnRXhwZWN0aW5nIGEgbm9uLW51bGwgb2F1dGhfdG9rZW4gdG8gY29udGludWUgdGhlIGF1dGhvcml6YXRpb24gZmxvdy4nCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+ZXhjaGFuZ2VBdXRoVG9rZW5Gb3JBY2Nlc3NUb2tlbigkb2F1dGhfdG9rZW4sICRvYXV0aF92ZXJpZmllcik7CgogICAgICAgICR0aGlzLT52YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpemUoKTsKICAgIH0KCiAgICAvKioKICAgICogQnVpbGQgQXV0aG9yaXphdGlvbiBVUkwgZm9yIEF1dGhvcml6YXRpb24gUmVxdWVzdAogICAgKgogICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtZXRlcnMKICAgICoKICAgICogQHJldHVybiBzdHJpbmcKICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXV0aG9yaXplVXJsKCRwYXJhbWV0ZXJzID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPkF1dGhvcml6ZVVybFBhcmFtZXRlcnMgPSAhZW1wdHkoJHBhcmFtZXRlcnMpCiAgICAgICAgICAgICAgICAgICAgPyAkcGFyYW1ldGVycwogICAgICAgICAgICAgICAgICAgIDogYXJyYXlfcmVwbGFjZSgKICAgICAgICAgICAgICAgICAgICAgICAgKGFycmF5KSAkdGhpcy0+QXV0aG9yaXplVXJsUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAgICAgKGFycmF5KSAkdGhpcy0+Y29uZmlnLT5nZXQoJ2F1dGhvcml6ZV91cmxfcGFyYW1ldGVycycpCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPkF1dGhvcml6ZVVybFBhcmFtZXRlcnNbJ29hdXRoX3Rva2VuJ10gPSAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgncmVxdWVzdF90b2tlbicpOwoKICAgICAgICByZXR1cm4gJHRoaXMtPmF1dGhvcml6ZVVybCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHRoaXMtPkF1dGhvcml6ZVVybFBhcmFtZXRlcnMsICcnLCAnJicpOwogICAgfQoKICAgIC8qKgogICAgKiBVbmF1dGhvcml6ZWQgUmVxdWVzdCBUb2tlbgogICAgKgogICAgKiBPQXV0aCBDb3JlOiBUaGUgQ29uc3VtZXIgb2J0YWlucyBhbiB1bmF1dGhvcml6ZWQgUmVxdWVzdCBUb2tlbiBieSBhc2tpbmcgdGhlIFNlcnZpY2UgUHJvdmlkZXIKICAgICogdG8gaXNzdWUgYSBUb2tlbi4gVGhlIFJlcXVlc3QgVG9rZW4ncyBzb2xlIHB1cnBvc2UgaXMgdG8gcmVjZWl2ZSBVc2VyIGFwcHJvdmFsIGFuZCBjYW4gb25seQogICAgKiBiZSB1c2VkIHRvIG9idGFpbiBhbiBBY2Nlc3MgVG9rZW4uCiAgICAqCiAgICAqIGh0dHA6Ly9vYXV0aC5uZXQvY29yZS8xLjAvI2F1dGhfc3RlcDEKICAgICogNi4xLjEuIENvbnN1bWVyIE9idGFpbnMgYSBSZXF1ZXN0IFRva2VuCiAgICAqCiAgICAqIEByZXR1cm4gc3RyaW5nIFJhdyBQcm92aWRlciBBUEkgcmVzcG9uc2UKICAgICogQHRocm93cyBcSHlicmlkYXV0aFxFeGNlcHRpb25cSHR0cENsaWVudEZhaWx1cmVFeGNlcHRpb24KICAgICogQHRocm93cyBcSHlicmlkYXV0aFxFeGNlcHRpb25cSHR0cFJlcXVlc3RGYWlsZWRFeGNlcHRpb24KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcmVxdWVzdEF1dGhUb2tlbigpCiAgICB7CiAgICAgICAgLyoqCiAgICAgICAgKiBPQXV0aCBDb3JlIDEuMCBSZXZpc2lvbiBBOiBvYXV0aF9jYWxsYmFjazogQW4gYWJzb2x1dGUgVVJMIHRvIHdoaWNoIHRoZSBTZXJ2aWNlIFByb3ZpZGVyIHdpbGwgcmVkaXJlY3QKICAgICAgICAqIHRoZSBVc2VyIGJhY2sgd2hlbiB0aGUgT2J0YWluaW5nIFVzZXIgQXV0aG9yaXphdGlvbiBzdGVwIGlzIGNvbXBsZXRlZC4KICAgICAgICAqCiAgICAgICAgKiBodHRwOi8vb2F1dGgubmV0L2NvcmUvMS4wYS8jYXV0aF9zdGVwMQogICAgICAgICovCiAgICAgICAgaWYgKCcxLjBhJyA9PSAkdGhpcy0+b2F1dGgxVmVyc2lvbikgewogICAgICAgICAgICAkdGhpcy0+cmVxdWVzdFRva2VuUGFyYW1ldGVyc1snb2F1dGhfY2FsbGJhY2snXSA9ICR0aGlzLT5jYWxsYmFjazsKICAgICAgICB9CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5vYXV0aFJlcXVlc3QoCiAgICAgICAgICAgICR0aGlzLT5yZXF1ZXN0VG9rZW5VcmwsCiAgICAgICAgICAgICR0aGlzLT5yZXF1ZXN0VG9rZW5NZXRob2QsCiAgICAgICAgICAgICR0aGlzLT5yZXF1ZXN0VG9rZW5QYXJhbWV0ZXJzLAogICAgICAgICAgICAkdGhpcy0+cmVxdWVzdFRva2VuSGVhZGVycwogICAgICAgICk7CgogICAgICAgIHJldHVybiAkcmVzcG9uc2U7CiAgICB9CgogICAgLyoqCiAgICAqIFZhbGlkYXRlIFVuYXV0aG9yaXplZCBSZXF1ZXN0IFRva2VuIFJlc3BvbnNlCiAgICAqCiAgICAqIE9BdXRoIENvcmU6IFRoZSBTZXJ2aWNlIFByb3ZpZGVyIHZlcmlmaWVzIHRoZSBzaWduYXR1cmUgYW5kIENvbnN1bWVyIEtleS4gSWYgc3VjY2Vzc2Z1bCwKICAgICogaXQgZ2VuZXJhdGVzIGEgUmVxdWVzdCBUb2tlbiBhbmQgVG9rZW4gU2VjcmV0IGFuZCByZXR1cm5zIHRoZW0gdG8gdGhlIENvbnN1bWVyIGluIHRoZSBIVFRQCiAgICAqIHJlc3BvbnNlIGJvZHkuCiAgICAqCiAgICAqIGh0dHA6Ly9vYXV0aC5uZXQvY29yZS8xLjAvI2F1dGhfc3RlcDEKICAgICogNi4xLjIuIFNlcnZpY2UgUHJvdmlkZXIgSXNzdWVzIGFuIFVuYXV0aG9yaXplZCBSZXF1ZXN0IFRva2VuCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJHJlc3BvbnNlCiAgICAqCiAgICAqIEByZXR1cm4gXEh5YnJpZGF1dGhcRGF0YVxDb2xsZWN0aW9uCiAgICAqIEB0aHJvd3MgSW52YWxpZE9hdXRoVG9rZW5FeGNlcHRpb24KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVBdXRoVG9rZW5SZXF1ZXN0KCRyZXNwb25zZSkKICAgIHsKICAgICAgICAvKioKICAgICAgICAqIFRoZSByZXNwb25zZSBjb250YWlucyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6CiAgICAgICAgKgogICAgICAgICogICAgLSBvYXV0aF90b2tlbiAgICAgICAgICAgICAgIFRoZSBSZXF1ZXN0IFRva2VuLgogICAgICAgICogICAgLSBvYXV0aF90b2tlbl9zZWNyZXQgICAgICAgIFRoZSBUb2tlbiBTZWNyZXQuCiAgICAgICAgKiAgICAtIG9hdXRoX2NhbGxiYWNrX2NvbmZpcm1lZCAgTVVTVCBiZSBwcmVzZW50IGFuZCBzZXQgdG8gdHJ1ZS4KICAgICAgICAqCiAgICAgICAgKiBodHRwOi8vb2F1dGgubmV0L2NvcmUvMS4wLyNhdXRoX3N0ZXAxCiAgICAgICAgKiA2LjEuMi4gU2VydmljZSBQcm92aWRlciBJc3N1ZXMgYW4gVW5hdXRob3JpemVkIFJlcXVlc3QgVG9rZW4KICAgICAgICAqCiAgICAgICAgKiBFeGFtcGxlIG9mIGEgc3VjY2Vzc2Z1bCByZXNwb25zZToKICAgICAgICAqCiAgICAgICAgKiAgSFRUUC8xLjEgMjAwIE9LCiAgICAgICAgKiAgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgKICAgICAgICAqICBDYWNoZS1Db250cm9sOiBuby1zdG9yZQogICAgICAgICogIFByYWdtYTogbm8tY2FjaGUKICAgICAgICAqCiAgICAgICAgKiAgb2F1dGhfdG9rZW49ODAzNTkwODQtY2xnMURFdHhRRjN3c3RUY3lVZEhGM3dzZEhNJm9hdXRoX3Rva2VuX3NlY3JldD1PSUYwN2hQbUpCOlAKICAgICAgICAqICA2cWlIVGkxem56NnFpSDN0VGN5VWRIbno2cWlIM3RUY3lVZEgzeFczd3NEdlYwOGUmZXhhbXBsZV9wYXJhbWV0ZXI9ZXhhbXBsZV92YWx1ZQogICAgICAgICoKICAgICAgICAqIE9BdXRoVXRpbDo6cGFyc2VfcGFyYW1ldGVycyB3aWxsIGF0dGVtcHQgdG8gZGVjb2RlIHRoZSByYXcgcmVzcG9uc2UgaW50byBhbiBhcnJheS4KICAgICAgICAqLwogICAgICAgICR0b2tlbnMgPSBPQXV0aFV0aWw6OnBhcnNlX3BhcmFtZXRlcnMoJHJlc3BvbnNlKTsKCiAgICAgICAgJGNvbGxlY3Rpb24gPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCR0b2tlbnMpOwoKICAgICAgICBpZiAoISAkY29sbGVjdGlvbi0+ZXhpc3RzKCdvYXV0aF90b2tlbicpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2F1dGhUb2tlbkV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICdQcm92aWRlciByZXR1cm5lZCBhbiBpbnZhbGlkIGFjY2Vzc190b2tlbjogJyAuIGh0bWxlbnRpdGllcygkcmVzcG9uc2UpCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+Y29uc3VtZXJUb2tlbiA9IG5ldyBPQXV0aENvbnN1bWVyKAogICAgICAgICAgICAkdG9rZW5zWydvYXV0aF90b2tlbiddLAogICAgICAgICAgICAkdG9rZW5zWydvYXV0aF90b2tlbl9zZWNyZXQnXQogICAgICAgICk7CgogICAgICAgICR0aGlzLT5zdG9yZURhdGEoJ3JlcXVlc3RfdG9rZW4nLCAkdG9rZW5zWydvYXV0aF90b2tlbiddKTsKICAgICAgICAkdGhpcy0+c3RvcmVEYXRhKCdyZXF1ZXN0X3Rva2VuX3NlY3JldCcsICR0b2tlbnNbJ29hdXRoX3Rva2VuX3NlY3JldCddKTsKCiAgICAgICAgcmV0dXJuICRjb2xsZWN0aW9uOwogICAgfQoKICAgIC8qKgogICAgKiBSZXF1ZXN0cyBhbiBBY2Nlc3MgVG9rZW4KICAgICoKICAgICogT0F1dGggQ29yZTogVGhlIFJlcXVlc3QgVG9rZW4gYW5kIFRva2VuIFNlY3JldCBNVVNUIGJlIGV4Y2hhbmdlZCBmb3IgYW4gQWNjZXNzIFRva2VuIGFuZCBUb2tlbiBTZWNyZXQuCiAgICAqCiAgICAqIGh0dHA6Ly9vYXV0aC5uZXQvY29yZS8xLjBhLyNhdXRoX3N0ZXAzCiAgICAqIDYuMy4xLiBDb25zdW1lciBSZXF1ZXN0cyBhbiBBY2Nlc3MgVG9rZW4KICAgICoKICAgICogQHBhcmFtIHN0cmluZyAkb2F1dGhfdG9rZW4KICAgICogQHBhcmFtIHN0cmluZyAkb2F1dGhfdmVyaWZpZXIKICAgICoKICAgICogQHJldHVybiBzdHJpbmcgUmF3IFByb3ZpZGVyIEFQSSByZXNwb25zZQogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwQ2xpZW50RmFpbHVyZUV4Y2VwdGlvbgogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleGNoYW5nZUF1dGhUb2tlbkZvckFjY2Vzc1Rva2VuKCRvYXV0aF90b2tlbiwgJG9hdXRoX3ZlcmlmaWVyID0gJycpCiAgICB7CiAgICAgICAgJHRoaXMtPnRva2VuRXhjaGFuZ2VQYXJhbWV0ZXJzWydvYXV0aF90b2tlbiddID0gJG9hdXRoX3Rva2VuOwoKICAgICAgICAvKioKICAgICAgICAqIE9BdXRoIENvcmUgMS4wIFJldmlzaW9uIEE6IG9hdXRoX3ZlcmlmaWVyOiBUaGUgdmVyaWZpY2F0aW9uIGNvZGUgcmVjZWl2ZWQgZnJvbSB0aGUgU2VydmljZSBQcm92aWRlcgogICAgICAgICogaW4gdGhlICJTZXJ2aWNlIFByb3ZpZGVyIERpcmVjdHMgdGhlIFVzZXIgQmFjayB0byB0aGUgQ29uc3VtZXIiIHN0ZXAuCiAgICAgICAgKgogICAgICAgICogaHR0cDovL29hdXRoLm5ldC9jb3JlLzEuMGEvI2F1dGhfc3RlcDMKICAgICAgICAqLwogICAgICAgIGlmICgnMS4wYScgPT0gJHRoaXMtPm9hdXRoMVZlcnNpb24pIHsKICAgICAgICAgICAgJHRoaXMtPnRva2VuRXhjaGFuZ2VQYXJhbWV0ZXJzWydvYXV0aF92ZXJpZmllciddID0gJG9hdXRoX3ZlcmlmaWVyOwogICAgICAgIH0KCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPm9hdXRoUmVxdWVzdCgKICAgICAgICAgICAgJHRoaXMtPmFjY2Vzc1Rva2VuVXJsLAogICAgICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZU1ldGhvZCwKICAgICAgICAgICAgJHRoaXMtPnRva2VuRXhjaGFuZ2VQYXJhbWV0ZXJzLAogICAgICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZUhlYWRlcnMKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIC8qKgogICAgKiBWYWxpZGF0ZSBBY2Nlc3MgVG9rZW4gUmVzcG9uc2UKICAgICoKICAgICogT0F1dGggQ29yZTogSWYgc3VjY2Vzc2Z1bCwgdGhlIFNlcnZpY2UgUHJvdmlkZXIgZ2VuZXJhdGVzIGFuIEFjY2VzcyBUb2tlbiBhbmQgVG9rZW4gU2VjcmV0IGFuZCByZXR1cm5zCiAgICAqIHRoZW0gaW4gdGhlIEhUVFAgcmVzcG9uc2UgYm9keS4KICAgICoKICAgICogVGhlIEFjY2VzcyBUb2tlbiBhbmQgVG9rZW4gU2VjcmV0IGFyZSBzdG9yZWQgYnkgdGhlIENvbnN1bWVyIGFuZCB1c2VkIHdoZW4gc2lnbmluZyBQcm90ZWN0ZWQgUmVzb3VyY2VzIHJlcXVlc3RzLgogICAgKgogICAgKiBodHRwOi8vb2F1dGgubmV0L2NvcmUvMS4wYS8jYXV0aF9zdGVwMwogICAgKiA2LjMuMi4gU2VydmljZSBQcm92aWRlciBHcmFudHMgYW4gQWNjZXNzIFRva2VuCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJHJlc3BvbnNlCiAgICAqCiAgICAqIEByZXR1cm4gXEh5YnJpZGF1dGhcRGF0YVxDb2xsZWN0aW9uCiAgICAqIEB0aHJvd3MgSW52YWxpZEFjY2Vzc1Rva2VuRXhjZXB0aW9uCiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlQWNjZXNzVG9rZW5FeGNoYW5nZSgkcmVzcG9uc2UpCiAgICB7CiAgICAgICAgLyoqCiAgICAgICAgKiBUaGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgogICAgICAgICoKICAgICAgICAqICAgIC0gb2F1dGhfdG9rZW4gICAgICAgICBUaGUgQWNjZXNzIFRva2VuLgogICAgICAgICogICAgLSBvYXV0aF90b2tlbl9zZWNyZXQgIFRoZSBUb2tlbiBTZWNyZXQuCiAgICAgICAgKgogICAgICAgICogaHR0cDovL29hdXRoLm5ldC9jb3JlLzEuMC8jYXV0aF9zdGVwMwogICAgICAgICogNi4zLjIuIFNlcnZpY2UgUHJvdmlkZXIgR3JhbnRzIGFuIEFjY2VzcyBUb2tlbgogICAgICAgICoKICAgICAgICAqIEV4YW1wbGUgb2YgYSBzdWNjZXNzZnVsIHJlc3BvbnNlOgogICAgICAgICoKICAgICAgICAqICBIVFRQLzEuMSAyMDAgT0sKICAgICAgICAqICBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOAogICAgICAgICogIENhY2hlLUNvbnRyb2w6IG5vLXN0b3JlCiAgICAgICAgKiAgUHJhZ21hOiBuby1jYWNoZQogICAgICAgICoKICAgICAgICAqICBvYXV0aF90b2tlbj1zSGVMVTdGYXI0Mjh6ajhQemxXUjc1Jm9hdXRoX3Rva2VuX3NlY3JldD1mWGIzMHJ6b0cmb2F1dGhfY2FsbGJhY2tfY29uZmlybWVkPXRydWUKICAgICAgICAqCiAgICAgICAgKiBPQXV0aFV0aWw6OnBhcnNlX3BhcmFtZXRlcnMgd2lsbCBhdHRlbXB0IHRvIGRlY29kZSB0aGUgcmF3IHJlc3BvbnNlIGludG8gYW4gYXJyYXkuCiAgICAgICAgKi8KICAgICAgICAkdG9rZW5zID0gT0F1dGhVdGlsOjpwYXJzZV9wYXJhbWV0ZXJzKCRyZXNwb25zZSk7CgogICAgICAgICRjb2xsZWN0aW9uID0gbmV3IERhdGFcQ29sbGVjdGlvbigkdG9rZW5zKTsKCiAgICAgICAgaWYgKCEgJGNvbGxlY3Rpb24tPmV4aXN0cygnb2F1dGhfdG9rZW4nKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFjY2Vzc1Rva2VuRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgJ1Byb3ZpZGVyIHJldHVybmVkIGFuIGludmFsaWQgYWNjZXNzX3Rva2VuOiAnIC4gaHRtbGVudGl0aWVzKCRyZXNwb25zZSkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5jb25zdW1lclRva2VuID0gbmV3IE9BdXRoQ29uc3VtZXIoCiAgICAgICAgICAgICRjb2xsZWN0aW9uLT5nZXQoJ29hdXRoX3Rva2VuJyksCiAgICAgICAgICAgICRjb2xsZWN0aW9uLT5nZXQoJ29hdXRoX3Rva2VuX3NlY3JldCcpCiAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgnYWNjZXNzX3Rva2VuJywgJGNvbGxlY3Rpb24tPmdldCgnb2F1dGhfdG9rZW4nKSk7CiAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgnYWNjZXNzX3Rva2VuX3NlY3JldCcsICRjb2xsZWN0aW9uLT5nZXQoJ29hdXRoX3Rva2VuX3NlY3JldCcpKTsKCiAgICAgICAgJHRoaXMtPmRlbGV0ZVN0b3JlZERhdGEoJ3JlcXVlc3RfdG9rZW4nKTsKICAgICAgICAkdGhpcy0+ZGVsZXRlU3RvcmVkRGF0YSgncmVxdWVzdF90b2tlbl9zZWNyZXQnKTsKCiAgICAgICAgcmV0dXJuICRjb2xsZWN0aW9uOwogICAgfQoKICAgIC8qKgogICAgKiBTZW5kIGEgc2lnbmVkIHJlcXVlc3QgdG8gcHJvdmlkZXIgQVBJCiAgICAqCiAgICAqIE5vdGU6IFNpbmNlIHRoZSBzcGVjaWZpY3Mgb2YgZXJyb3IgcmVzcG9uc2VzIGlzIGJleW9uZCB0aGUgc2NvcGUgb2YgUkZDNjc0OSBhbmQgT0F1dGggc3BlY2lmaWNhdGlvbnMsCiAgICAqIEh5YnJpZGF1dGggd2lsbCBjb25zaWRlciBhbnkgSFRUUCBzdGF0dXMgY29kZSB0aGF0IGlzIGRpZmZlcmVudCB0aGFuICcyMDAgT0snIGFzIGFuIEVSUk9SLgogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICR1cmwKICAgICogQHBhcmFtIHN0cmluZyAkbWV0aG9kCiAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1ldGVycwogICAgKiBAcGFyYW0gYXJyYXkgJGhlYWRlcnMKICAgICoKICAgICogQHJldHVybiBtaXhlZAogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwQ2xpZW50RmFpbHVyZUV4Y2VwdGlvbgogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhcGlSZXF1ZXN0KCR1cmwsICRtZXRob2QgPSAnR0VUJywgJHBhcmFtZXRlcnMgPSBbXSwgJGhlYWRlcnMgPSBbXSkKICAgIHsKICAgICAgICBpZiAoc3RycnBvcygkdXJsLCAnaHR0cDovLycpICE9PSAwICYmIHN0cnJwb3MoJHVybCwgJ2h0dHBzOi8vJykgIT09IDApIHsKICAgICAgICAgICAgJHVybCA9IHJ0cmltKCR0aGlzLT5hcGlCYXNlVXJsLCAnLycpIC4gJy8nIC4gbHRyaW0oJHVybCwgJy8nKTsKICAgICAgICB9CgogICAgICAgICRwYXJhbWV0ZXJzID0gYXJyYXlfcmVwbGFjZSgkdGhpcy0+YXBpUmVxdWVzdFBhcmFtZXRlcnMsIChhcnJheSkkcGFyYW1ldGVycyk7CgogICAgICAgICRoZWFkZXJzID0gYXJyYXlfcmVwbGFjZSgkdGhpcy0+YXBpUmVxdWVzdEhlYWRlcnMsIChhcnJheSkkaGVhZGVycyk7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5vYXV0aFJlcXVlc3QoJHVybCwgJG1ldGhvZCwgJHBhcmFtZXRlcnMsICRoZWFkZXJzKTsKCiAgICAgICAgJHJlc3BvbnNlID0gKG5ldyBEYXRhXFBhcnNlcigpKS0+cGFyc2UoJHJlc3BvbnNlKTsKCiAgICAgICAgcmV0dXJuICRyZXNwb25zZTsKICAgIH0KCiAgICAvKioKICAgICogU2V0dXAgYW5kIFNlbmQgYSBTaWduZWQgT2F1dGggUmVxdWVzdAogICAgKgogICAgKiBUaGlzIG1ldGhvZCB1c2VzIE9BdXRoIExpYnJhcnkuCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJHVyaQogICAgKiBAcGFyYW0gc3RyaW5nICRtZXRob2QKICAgICogQHBhcmFtIGFycmF5ICRwYXJhbWV0ZXJzCiAgICAqIEBwYXJhbSBhcnJheSAkaGVhZGVycwogICAgKgogICAgKiBAcmV0dXJuIHN0cmluZyBSYXcgUHJvdmlkZXIgQVBJIHJlc3BvbnNlCiAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBSZXF1ZXN0RmFpbGVkRXhjZXB0aW9uCiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG9hdXRoUmVxdWVzdCgkdXJpLCAkbWV0aG9kID0gJ0dFVCcsICRwYXJhbWV0ZXJzID0gW10sICRoZWFkZXJzID0gW10pCiAgICB7CiAgICAgICAgJHJlcXVlc3QgPSBPQXV0aFJlcXVlc3Q6OmZyb21fY29uc3VtZXJfYW5kX3Rva2VuKAogICAgICAgICAgICAkdGhpcy0+T0F1dGhDb25zdW1lciwKICAgICAgICAgICAgJHRoaXMtPmNvbnN1bWVyVG9rZW4sCiAgICAgICAgICAgICRtZXRob2QsCiAgICAgICAgICAgICR1cmksCiAgICAgICAgICAgICRwYXJhbWV0ZXJzCiAgICAgICAgKTsKCiAgICAgICAgJHJlcXVlc3QtPnNpZ25fcmVxdWVzdCgKICAgICAgICAgICAgJHRoaXMtPnNoYTFNZXRob2QsCiAgICAgICAgICAgICR0aGlzLT5PQXV0aENvbnN1bWVyLAogICAgICAgICAgICAkdGhpcy0+Y29uc3VtZXJUb2tlbgogICAgICAgICk7CgogICAgICAgICR1cmkgICAgICAgID0gJHJlcXVlc3QtPmdldF9ub3JtYWxpemVkX2h0dHBfdXJsKCk7CiAgICAgICAgJHBhcmFtZXRlcnMgPSAkcmVxdWVzdC0+cGFyYW1ldGVyczsKICAgICAgICAkaGVhZGVycyAgICA9IGFycmF5X3JlcGxhY2UoJHJlcXVlc3QtPnRvX2hlYWRlcigpLCAoYXJyYXkpICRoZWFkZXJzKTsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmh0dHBDbGllbnQtPnJlcXVlc3QoCiAgICAgICAgICAgICR1cmksCiAgICAgICAgICAgICRtZXRob2QsCiAgICAgICAgICAgICRwYXJhbWV0ZXJzLAogICAgICAgICAgICAkaGVhZGVycwogICAgICAgICk7CgogICAgICAgICR0aGlzLT52YWxpZGF0ZUFwaVJlc3BvbnNlKCdTaWduZWQgQVBJIHJlcXVlc3QgaGFzIHJldHVybmVkIGFuIGVycm9yJyk7CgogICAgICAgIHJldHVybiAkcmVzcG9uc2U7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/OAuth2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxBZGFwdGVyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRBcHBsaWNhdGlvbkNyZWRlbnRpYWxzRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cSW52YWxpZEF1dGhvcml6YXRpb25TdGF0ZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRBdXRob3JpemF0aW9uQ29kZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRBY2Nlc3NUb2tlbkV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRGF0YTsKdXNlIEh5YnJpZGF1dGhcSHR0cENsaWVudDsKCi8qKgogKiBUaGlzIGNsYXNzICBjYW4gYmUgdXNlZCB0byBzaW1wbGlmeSB0aGUgYXV0aG9yaXphdGlvbiBmbG93IG9mIE9BdXRoIDIgYmFzZWQgc2VydmljZSBwcm92aWRlcnMuCiAqCiAqIFN1YmNsYXNzZXMgKGkuZS4sIHByb3ZpZGVycyBhZGFwdGVycykgY2FuIGVpdGhlciB1c2UgdGhlIGFscmVhZHkgcHJvdmlkZWQgbWV0aG9kcyBvciBvdmVycmlkZQogKiB0aGVtIHdoZW4gbmVjZXNzYXJ5LgogKi8KYWJzdHJhY3QgY2xhc3MgT0F1dGgyIGV4dGVuZHMgQWJzdHJhY3RBZGFwdGVyIGltcGxlbWVudHMgQWRhcHRlckludGVyZmFjZQp7CiAgICAvKioKICAgICogQ2xpZW50IElkZW50aWZpZXIKICAgICoKICAgICogUkZDNjc0OTogY2xpZW50X2lkIFJFUVVJUkVELiBUaGUgY2xpZW50IGlkZW50aWZpZXIgaXNzdWVkIHRvIHRoZSBjbGllbnQgZHVyaW5nCiAgICAqIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcyBkZXNjcmliZWQgYnkgU2VjdGlvbiAyLjIuCiAgICAqCiAgICAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi0yLjIKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwcm90ZWN0ZWQgJGNsaWVudElkID0gJycgOwoKICAgIC8qKgogICAgKiBDbGllbnQgU2VjcmV0CiAgICAqCiAgICAqIFJGQzY3NDk6IGNsaWVudF9zZWNyZXQgUkVRVUlSRUQuIFRoZSBjbGllbnQgc2VjcmV0LiBUaGUgY2xpZW50IE1BWSBvbWl0IHRoZQogICAgKiBwYXJhbWV0ZXIgaWYgdGhlIGNsaWVudCBzZWNyZXQgaXMgYW4gZW1wdHkgc3RyaW5nLgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMi4yCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRjbGllbnRTZWNyZXQgPSAnJyA7CgogICAgLyoqCiAgICAqIEFjY2VzcyBUb2tlbiBTY29wZQogICAgKgogICAgKiBSRkM2NzQ5OiBUaGUgYXV0aG9yaXphdGlvbiBhbmQgdG9rZW4gZW5kcG9pbnRzIGFsbG93IHRoZSBjbGllbnQgdG8gc3BlY2lmeSB0aGUKICAgICogc2NvcGUgb2YgdGhlIGFjY2VzcyByZXF1ZXN0IHVzaW5nIHRoZSAic2NvcGUiIHJlcXVlc3QgcGFyYW1ldGVyLgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMy4zCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRzY29wZSA9ICcnOwoKICAgIC8qKgogICAgKiBCYXNlIFVSTCB0byBwcm92aWRlciBBUEkKICAgICoKICAgICogVGhpcyB2YXIgd2lsbCBiZSB1c2VkIHRvIGJ1aWxkIHVybHMgd2hlbiBzZW5kaW5nIHNpZ25lZCByZXF1ZXN0cwogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICcnOwoKICAgIC8qKgogICAgKiBBdXRob3JpemF0aW9uIEVuZHBvaW50CiAgICAqCiAgICAqIFJGQzY3NDk6IFRoZSBhdXRob3JpemF0aW9uIGVuZHBvaW50IGlzIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgcmVzb3VyY2UKICAgICogb3duZXIgYW5kIG9idGFpbiBhbiBhdXRob3JpemF0aW9uIGdyYW50LgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMy4xCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnJzsKCiAgICAvKioKICAgICogQWNjZXNzIFRva2VuIEVuZHBvaW50CiAgICAqCiAgICAqIFJGQzY3NDk6IFRoZSB0b2tlbiBlbmRwb2ludCBpcyB1c2VkIGJ5IHRoZSBjbGllbnQgdG8gb2J0YWluIGFuIGFjY2VzcyB0b2tlbiBieQogICAgKiBwcmVzZW50aW5nIGl0cyBhdXRob3JpemF0aW9uIGdyYW50IG9yIHJlZnJlc2ggdG9rZW4uCiAgICAqCiAgICAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi0zLjIKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJyc7CgogICAgLyoqCiAgICAqIFRva2VuSW5mbyBlbmRwb2ludAogICAgKgogICAgKiBBY2Nlc3MgdG9rZW4gdmFsaWRhdGlvbi4gT1BUSU9OQUwuCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlbkluZm9VcmwgPSAnJzsKCiAgICAvKioKICAgICogSVBEIEFQSSBEb2N1bWVudGF0aW9uCiAgICAqCiAgICAqIE9QVElPTkFMLgogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpRG9jdW1lbnRhdGlvbiA9ICcnOwoKICAgIC8qKgogICAgKiBSZWRpcmVjdGlvbiBFbmRwb2ludCBvciBDYWxsYmFjawogICAgKgogICAgKiBSRkM2NzQ5OiBBZnRlciBjb21wbGV0aW5nIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSByZXNvdXJjZSBvd25lciwgdGhlCiAgICAqIGF1dGhvcml6YXRpb24gc2VydmVyIGRpcmVjdHMgdGhlIHJlc291cmNlIG93bmVyJ3MgdXNlci1hZ2VudCBiYWNrIHRvCiAgICAqIHRoZSBjbGllbnQuCiAgICAqCiAgICAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi0zLjEuMgogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkY2FsbGJhY2sgPSAnJzsKCiAgICAvKioKICAgICogQXV0aG9yaXphdGlvbiBVcmwgUGFyYW1ldGVycwogICAgKgogICAgKiBAdmFyIGJvb2xlYW4KICAgICovCiAgICBwcm90ZWN0ZWQgJEF1dGhvcml6ZVVybFBhcmFtZXRlcnMgPSBbXTsKCiAgICAvKioKICAgICogQXV0aG9yaXphdGlvbiBSZXF1ZXN0IFN0YXRlCiAgICAqCiAgICAqIEB2YXIgYm9vbGVhbgogICAgKi8KICAgIHByb3RlY3RlZCAkc3VwcG9ydFJlcXVlc3RTdGF0ZSA9IHRydWU7CgogICAgLyoqCiAgICAqIEFjY2VzcyBUb2tlbiBuYW1lCiAgICAqCiAgICAqIFdoaWxlIG1vc3QgcHJvdmlkZXJzIHdpbGwgdXNlICdhY2Nlc3NfdG9rZW4nIGFzIG5hbWUgZm9yIHRoZSBBY2Nlc3MgVG9rZW4gYXR0cmlidXRlLCBvdGhlciBkbyBub3QuCiAgICAqIE9uIHRoZSBsYXR0ZXIgY2FzZSwgdGhpcyBzaG91bGQgYmUgc2V0IGJ5IHN1YiBjbGFzc2VzLgogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5OYW1lID0gJ2FjY2Vzc190b2tlbic7CgogICAgLyoqCiAgICAqIEF1dGhvcml6YXRpb24gUmVxdWVzdCBIVFRQIG1ldGhvZC4KICAgICoKICAgICogQHNlZSBleGNoYW5nZUNvZGVGb3JBY2Nlc3NUb2tlbigpCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICR0b2tlbkV4Y2hhbmdlTWV0aG9kID0gJ1BPU1QnOwoKICAgIC8qKgogICAgKiBBdXRob3JpemF0aW9uIFJlcXVlc3QgVVJMIHBhcmFtZXRlcnMuCiAgICAqCiAgICAqIFN1YiBjbGFzc2VzIG1heSBjaGFuZ2UgYWRkIGFueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aGVuIG5lY2Vzc2FyeS4KICAgICoKICAgICogQHNlZSBleGNoYW5nZUNvZGVGb3JBY2Nlc3NUb2tlbigpCiAgICAqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJHRva2VuRXhjaGFuZ2VQYXJhbWV0ZXJzID0gW107CgogICAgLyoqCiAgICAqIEF1dGhvcml6YXRpb24gUmVxdWVzdCBIVFRQIGhlYWRlcnMuCiAgICAqCiAgICAqIFN1YiBjbGFzc2VzIG1heSBhZGQgYW55IGFkZGl0aW9uYWwgaGVhZGVyIHdoZW4gbmVjZXNzYXJ5LgogICAgKgogICAgKiBAc2VlIGV4Y2hhbmdlQ29kZUZvckFjY2Vzc1Rva2VuKCkKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkdG9rZW5FeGNoYW5nZUhlYWRlcnMgPSBbXTsKCiAgICAvKioKICAgICogUmVmcmVzaCBUb2tlbiBSZXF1ZXN0IEhUVFAgbWV0aG9kLgogICAgKgogICAgKiBAc2VlIHJlZnJlc2hBY2Nlc3NUb2tlbigpCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICR0b2tlblJlZnJlc2hNZXRob2QgPSAnUE9TVCc7CgogICAgLyoqCiAgICAqIFJlZnJlc2ggVG9rZW4gUmVxdWVzdCBVUkwgcGFyYW1ldGVycy4KICAgICoKICAgICogU3ViIGNsYXNzZXMgbWF5IGNoYW5nZSBhZGQgYW55IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHdoZW4gbmVjZXNzYXJ5LgogICAgKgogICAgKiBAc2VlIHJlZnJlc2hBY2Nlc3NUb2tlbigpCiAgICAqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJHRva2VuUmVmcmVzaFBhcmFtZXRlcnMgPSBbXTsKCiAgICAvKioKICAgICogUmVmcmVzaCBUb2tlbiBSZXF1ZXN0IEhUVFAgaGVhZGVycy4KICAgICoKICAgICogU3ViIGNsYXNzZXMgbWF5IGFkZCBhbnkgYWRkaXRpb25hbCBoZWFkZXIgd2hlbiBuZWNlc3NhcnkuCiAgICAqCiAgICAqIEBzZWUgcmVmcmVzaEFjY2Vzc1Rva2VuKCkKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkdG9rZW5SZWZyZXNoSGVhZGVycyA9IFtdOwoKICAgIC8qKgogICAgKiBBdXRob3JpemF0aW9uIFJlcXVlc3QgVVJMIHBhcmFtZXRlcnMuCiAgICAqCiAgICAqIFN1YiBjbGFzc2VzIG1heSBjaGFuZ2UgYWRkIGFueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aGVuIG5lY2Vzc2FyeS4KICAgICoKICAgICogQHNlZSBhcGlSZXF1ZXN0KCkKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpUmVxdWVzdFBhcmFtZXRlcnMgPSBbXTsKCiAgICAvKioKICAgICogQXV0aG9yaXphdGlvbiBSZXF1ZXN0IEhUVFAgaGVhZGVycy4KICAgICoKICAgICogU3ViIGNsYXNzZXMgbWF5IGFkZCBhbnkgYWRkaXRpb25hbCBoZWFkZXIgd2hlbiBuZWNlc3NhcnkuCiAgICAqCiAgICAqIEBzZWUgYXBpUmVxdWVzdCgpCiAgICAqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaVJlcXVlc3RIZWFkZXJzID0gW107CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29uZmlndXJlKCkKICAgIHsKICAgICAgICAkdGhpcy0+Y2xpZW50SWQgICAgID0gJHRoaXMtPmNvbmZpZy0+ZmlsdGVyKCdrZXlzJyktPmdldCgnaWQnKSA/OiAkdGhpcy0+Y29uZmlnLT5maWx0ZXIoJ2tleXMnKS0+Z2V0KCdrZXknKTsKICAgICAgICAkdGhpcy0+Y2xpZW50U2VjcmV0ID0gJHRoaXMtPmNvbmZpZy0+ZmlsdGVyKCdrZXlzJyktPmdldCgnc2VjcmV0Jyk7CgogICAgICAgIGlmICghICR0aGlzLT5jbGllbnRJZCB8fCAhJHRoaXMtPmNsaWVudFNlY3JldCkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFwcGxpY2F0aW9uQ3JlZGVudGlhbHNFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAnWW91ciBhcHBsaWNhdGlvbiBpZCBpcyByZXF1aXJlZCBpbiBvcmRlciB0byBjb25uZWN0IHRvICcgLiAkdGhpcy0+cHJvdmlkZXJJZAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnNjb3BlID0gJHRoaXMtPmNvbmZpZy0+ZXhpc3RzKCdzY29wZScpID8gJHRoaXMtPmNvbmZpZy0+Z2V0KCdzY29wZScpIDogJHRoaXMtPnNjb3BlOwoKICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+ZXhpc3RzKCd0b2tlbnMnKSkgewogICAgICAgICAgICAkdGhpcy0+c2V0QWNjZXNzVG9rZW4oJHRoaXMtPmNvbmZpZy0+Z2V0KCd0b2tlbnMnKSk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+c2V0Q2FsbGJhY2soJHRoaXMtPmNvbmZpZy0+Z2V0KCdjYWxsYmFjaycpKTsKICAgICAgICAkdGhpcy0+c2V0QXBpRW5kcG9pbnRzKCR0aGlzLT5jb25maWctPmdldCgnZW5kcG9pbnRzJykpOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgICR0aGlzLT5BdXRob3JpemVVcmxQYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAogICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJHRoaXMtPmNsaWVudElkLAogICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJHRoaXMtPmNhbGxiYWNrLAogICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJHRoaXMtPnNjb3BlLAogICAgICAgIF07CgogICAgICAgICR0aGlzLT50b2tlbkV4Y2hhbmdlUGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICR0aGlzLT5jbGllbnRJZCwKICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICR0aGlzLT5jbGllbnRTZWNyZXQsCiAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywKICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICR0aGlzLT5jYWxsYmFjawogICAgICAgIF07CgogICAgICAgICR0aGlzLT50b2tlblJlZnJlc2hQYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnZ3JhbnRfdHlwZScgICAgPT4gJ3JlZnJlc2hfdG9rZW4nLAogICAgICAgICAgICAncmVmcmVzaF90b2tlbicgPT4gJHRoaXMtPmdldFN0b3JlZERhdGEoJ3JlZnJlc2hfdG9rZW4nKSwKICAgICAgICBdOwoKICAgICAgICAkdGhpcy0+YXBpUmVxdWVzdEhlYWRlcnMgPSBbCiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJyA9PiAnQmVhcmVyICcgLiAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgnYWNjZXNzX3Rva2VuJykKICAgICAgICBdOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPmxvZ2dlci0+aW5mbyhzcHJpbnRmKCclczo6YXV0aGVudGljYXRlKCknLCBnZXRfY2xhc3MoJHRoaXMpKSk7CgogICAgICAgIGlmICgkdGhpcy0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0aGlzLT5hdXRoZW50aWNhdGVDaGVja0Vycm9yKCk7CgogICAgICAgICAgICAkY29kZSA9IGZpbHRlcl9pbnB1dChJTlBVVF9HRVQsICdjb2RlJyk7CgogICAgICAgICAgICBpZiAoZW1wdHkoJGNvZGUpKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+YXV0aGVudGljYXRlQmVnaW4oKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5hdXRoZW50aWNhdGVGaW5pc2goKTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkdGhpcy0+Y2xlYXJTdG9yZWREYXRhKCk7CgogICAgICAgICAgICB0aHJvdyAkZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIC8qKgogICAgKiBBdXRob3JpemF0aW9uIFJlcXVlc3QgRXJyb3IgUmVzcG9uc2UKICAgICoKICAgICogUkZDNjc0OTogSWYgdGhlIHJlcXVlc3QgZmFpbHMgZHVlIHRvIGEgbWlzc2luZywgaW52YWxpZCwgb3IgbWlzbWF0Y2hpbmcKICAgICogcmVkaXJlY3Rpb24gVVJJLCBvciBpZiB0aGUgY2xpZW50IGlkZW50aWZpZXIgaXMgbWlzc2luZyBvciBpbnZhbGlkLAogICAgKiB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgU0hPVUxEIGluZm9ybSB0aGUgcmVzb3VyY2Ugb3duZXIgb2YgdGhlIGVycm9yLgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4xLjIuMQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdXRoZW50aWNhdGVDaGVja0Vycm9yKCkKICAgIHsKICAgICAgICAkZXJyb3IgPSBmaWx0ZXJfaW5wdXQoSU5QVVRfR0VULCAnZXJyb3InLCBGSUxURVJfU0FOSVRJWkVfU1BFQ0lBTF9DSEFSUyk7CgogICAgICAgIGlmICghIGVtcHR5KCRlcnJvcikpIHsKICAgICAgICAgICAgJGVycm9yX2Rlc2NyaXB0aW9uID0gZmlsdGVyX2lucHV0KElOUFVUX0dFVCwgJ2Vycm9yX2Rlc2NyaXB0aW9uJywgRklMVEVSX1NBTklUSVpFX1NQRUNJQUxfQ0hBUlMpOwogICAgICAgICAgICAkZXJyb3JfdXJpID0gZmlsdGVyX2lucHV0KElOUFVUX0dFVCwgJ2Vycm9yX3VyaScsIEZJTFRFUl9TQU5JVElaRV9TUEVDSUFMX0NIQVJTKTsKCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXV0aG9yaXphdGlvbkNvZGVFeGNlcHRpb24oCiAgICAgICAgICAgICAgICBzcHJpbnRmKCdQcm92aWRlciByZXR1cm5lZCBhbiBlcnJvcjogJXMgJXMgJXMnLCAkZXJyb3IsICRlcnJvcl9kZXNjcmlwdGlvbiwgJGVycm9yX3VyaSkKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAqIEluaXRpYXRlIHRoZSBhdXRob3JpemF0aW9uIHByb3RvY29sCiAgICAqCiAgICAqIEJ1aWxkIEF1dGhvcml6YXRpb24gVVJMIGZvciBBdXRob3JpemF0aW9uIFJlcXVlc3QgYW5kIHJlZGlyZWN0IHRoZSB1c2VyLWFnZW50IHRvIHRoZQogICAgKiBBdXRob3JpemF0aW9uIFNlcnZlci4KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXV0aGVudGljYXRlQmVnaW4oKQogICAgewogICAgICAgICRhdXRoVXJsID0gJHRoaXMtPmdldEF1dGhvcml6ZVVybCgpOwoKICAgICAgICAkdGhpcy0+bG9nZ2VyLT5kZWJ1ZyhzcHJpbnRmKCclczo6YXV0aGVudGljYXRlQmVnaW4oKSwgcmVkaXJlY3RpbmcgdXNlciB0bzonLCBnZXRfY2xhc3MoJHRoaXMpKSwgWyRhdXRoVXJsXSk7CgogICAgICAgIEh0dHBDbGllbnRcVXRpbDo6cmVkaXJlY3QoJGF1dGhVcmwpOwogICAgfQoKICAgIC8qKgogICAgKiBGaW5hbGl6ZSB0aGUgYXV0aG9yaXphdGlvbiBwcm9jZXNzCiAgICAqCiAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBSZXF1ZXN0RmFpbGVkRXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgSW52YWxpZEFjY2Vzc1Rva2VuRXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgSW52YWxpZEF1dGhvcml6YXRpb25TdGF0ZUV4Y2VwdGlvbgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdXRoZW50aWNhdGVGaW5pc2goKQogICAgewogICAgICAgICR0aGlzLT5sb2dnZXItPmRlYnVnKAogICAgICAgICAgICBzcHJpbnRmKCclczo6YXV0aGVudGljYXRlRmluaXNoKCksIGNhbGxiYWNrIHVybDonLCBnZXRfY2xhc3MoJHRoaXMpKSwKICAgICAgICAgICAgW0h0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCh0cnVlKV0KICAgICAgICApOwoKICAgICAgICAkc3RhdGUgPSBmaWx0ZXJfaW5wdXQoSU5QVVRfR0VULCAnc3RhdGUnKTsKICAgICAgICAkY29kZSA9IGZpbHRlcl9pbnB1dChJTlBVVF9HRVQsICdjb2RlJyk7CgogICAgICAgIC8qKgogICAgICAgICogQXV0aG9yaXphdGlvbiBSZXF1ZXN0IFN0YXRlCiAgICAgICAgKgogICAgICAgICogUkZDNjc0OTogc3RhdGUgOiBSRUNPTU1FTkRFRC4gQW4gb3BhcXVlIHZhbHVlIHVzZWQgYnkgdGhlIGNsaWVudCB0byBtYWludGFpbgogICAgICAgICogc3RhdGUgYmV0d2VlbiB0aGUgcmVxdWVzdCBhbmQgY2FsbGJhY2suIFRoZSBhdXRob3JpemF0aW9uIHNlcnZlciBpbmNsdWRlcwogICAgICAgICogdGhpcyB2YWx1ZSB3aGVuIHJlZGlyZWN0aW5nIHRoZSB1c2VyLWFnZW50IGJhY2sgdG8gdGhlIGNsaWVudC4KICAgICAgICAqCiAgICAgICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4xLjEKICAgICAgICAqLwogICAgICAgIGlmICgkdGhpcy0+c3VwcG9ydFJlcXVlc3RTdGF0ZQogICAgICAgICAgICAmJiAgJHRoaXMtPmdldFN0b3JlZERhdGEoJ2F1dGhvcml6YXRpb25fc3RhdGUnKSAhPSAkc3RhdGUKICAgICAgICApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBdXRob3JpemF0aW9uU3RhdGVFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAnVGhlIGF1dGhvcml6YXRpb24gc3RhdGUgW3N0YXRlPScgLiBzdWJzdHIoaHRtbGVudGl0aWVzKCRzdGF0ZSksIDAsIDEwMCkuICddICcKICAgICAgICAgICAgICAgICAgICAuICdvZiB0aGlzIHBhZ2UgaXMgZWl0aGVyIGludmFsaWQgb3IgaGFzIGFscmVhZHkgYmVlbiBjb25zdW1lZC4nCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAqIEF1dGhvcml6YXRpb24gUmVxdWVzdCBDb2RlCiAgICAgICAgKgogICAgICAgICogUkZDNjc0OTogSWYgdGhlIHJlc291cmNlIG93bmVyIGdyYW50cyB0aGUgYWNjZXNzIHJlcXVlc3QsIHRoZSBhdXRob3JpemF0aW9uCiAgICAgICAgKiBzZXJ2ZXIgaXNzdWVzIGFuIGF1dGhvcml6YXRpb24gY29kZSBhbmQgZGVsaXZlcnMgaXQgdG8gdGhlIGNsaWVudDoKICAgICAgICAqCiAgICAgICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4xLjIKICAgICAgICAqLwogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5leGNoYW5nZUNvZGVGb3JBY2Nlc3NUb2tlbigkY29kZSk7CgogICAgICAgICR0aGlzLT52YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpemUoKTsKICAgIH0KCiAgICAvKioKICAgICogQnVpbGQgQXV0aG9yaXphdGlvbiBVUkwgZm9yIEF1dGhvcml6YXRpb24gUmVxdWVzdAogICAgKgogICAgKiBSRkM2NzQ5OiBUaGUgY2xpZW50IGNvbnN0cnVjdHMgdGhlIHJlcXVlc3QgVVJJIGJ5IGFkZGluZyB0aGUgZm9sbG93aW5nCiAgICAqICRwYXJhbWV0ZXJzIHRvIHRoZSBxdWVyeSBjb21wb25lbnQgb2YgdGhlIGF1dGhvcml6YXRpb24gZW5kcG9pbnQgVVJJOgogICAgKgogICAgKiAgICAtIHJlc3BvbnNlX3R5cGUgIFJFUVVJUkVELiBWYWx1ZSBNVVNUIGJlIHNldCB0byAiY29kZSIuCiAgICAqICAgIC0gY2xpZW50X2lkICAgICAgUkVRVUlSRUQuCiAgICAqICAgIC0gcmVkaXJlY3RfdXJpICAgT1BUSU9OQUwuCiAgICAqICAgIC0gc2NvcGUgICAgICAgICAgT1BUSU9OQUwuCiAgICAqICAgIC0gc3RhdGUgICAgICAgICAgUkVDT01NRU5ERUQuCiAgICAqCiAgICAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00LjEuMQogICAgKgogICAgKiBTdWIgY2xhc3NlcyBtYXkgcmVkZWZpbmUgdGhpcyBtZXRob2Qgd2hlbiBuZWNlc3NhcnkuCiAgICAqCiAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1ldGVycwogICAgKgogICAgKiBAcmV0dXJuIHN0cmluZyBBdXRob3JpemF0aW9uIFVSTAogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRBdXRob3JpemVVcmwoJHBhcmFtZXRlcnMgPSBbXSkKICAgIHsKICAgICAgICAkdGhpcy0+QXV0aG9yaXplVXJsUGFyYW1ldGVycyA9ICFlbXB0eSgkcGFyYW1ldGVycykKICAgICAgICAgICAgPyAkcGFyYW1ldGVycwogICAgICAgICAgICA6IGFycmF5X3JlcGxhY2UoCiAgICAgICAgICAgICAgICAoYXJyYXkpICR0aGlzLT5BdXRob3JpemVVcmxQYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgKGFycmF5KSAkdGhpcy0+Y29uZmlnLT5nZXQoJ2F1dGhvcml6ZV91cmxfcGFyYW1ldGVycycpCiAgICAgICAgICAgICk7CgogICAgICAgIGlmICgkdGhpcy0+c3VwcG9ydFJlcXVlc3RTdGF0ZSkgewogICAgICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5BdXRob3JpemVVcmxQYXJhbWV0ZXJzWydzdGF0ZSddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPkF1dGhvcml6ZVVybFBhcmFtZXRlcnNbJ3N0YXRlJ10gPSAnSEEtJyAuIHN0cl9zaHVmZmxlKCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OTAnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgnYXV0aG9yaXphdGlvbl9zdGF0ZScsICR0aGlzLT5BdXRob3JpemVVcmxQYXJhbWV0ZXJzWydzdGF0ZSddKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+YXV0aG9yaXplVXJsIC4gJz8nIC4gaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+QXV0aG9yaXplVXJsUGFyYW1ldGVycywgJycsICcmJyk7CiAgICB9CgogICAgLyoqCiAgICAqIEFjY2VzcyBUb2tlbiBSZXF1ZXN0CiAgICAqCiAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZXhjaGFuZ2UgdGhlIHJlY2VpdmVkICRjb2RlIGluIGxvZ2luRmluaXNoKCkgd2l0aCBhbiBBY2Nlc3MgVG9rZW4uCiAgICAqCiAgICAqIFJGQzY3NDk6IFRoZSBjbGllbnQgbWFrZXMgYSByZXF1ZXN0IHRvIHRoZSB0b2tlbiBlbmRwb2ludCBieSBzZW5kaW5nIHRoZQogICAgKiBmb2xsb3dpbmcgcGFyYW1ldGVycyB1c2luZyB0aGUgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKICAgICogd2l0aCBhIGNoYXJhY3RlciBlbmNvZGluZyBvZiBVVEYtOCBpbiB0aGUgSFRUUCByZXF1ZXN0IGVudGl0eS1ib2R5OgogICAgKgogICAgKiAgICAtIGdyYW50X3R5cGUgICAgUkVRVUlSRUQuIFZhbHVlIE1VU1QgYmUgc2V0IHRvICJhdXRob3JpemF0aW9uX2NvZGUiLgogICAgKiAgICAtIGNvZGUgICAgICAgICAgUkVRVUlSRUQuIFRoZSBhdXRob3JpemF0aW9uIGNvZGUgcmVjZWl2ZWQgZnJvbSB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIuCiAgICAqICAgIC0gcmVkaXJlY3RfdXJpICBSRVFVSVJFRC4KICAgICogICAgLSBjbGllbnRfaWQgICAgIFJFUVVJUkVELgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4xLjMKICAgICoKICAgICogQHBhcmFtIHN0cmluZyAkY29kZQogICAgKgogICAgKiBAcmV0dXJuIHN0cmluZyBSYXcgUHJvdmlkZXIgQVBJIHJlc3BvbnNlCiAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBSZXF1ZXN0RmFpbGVkRXhjZXB0aW9uCiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4Y2hhbmdlQ29kZUZvckFjY2Vzc1Rva2VuKCRjb2RlKQogICAgewogICAgICAgICR0aGlzLT50b2tlbkV4Y2hhbmdlUGFyYW1ldGVyc1snY29kZSddID0gJGNvZGU7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5odHRwQ2xpZW50LT5yZXF1ZXN0KAogICAgICAgICAgICAkdGhpcy0+YWNjZXNzVG9rZW5VcmwsCiAgICAgICAgICAgICR0aGlzLT50b2tlbkV4Y2hhbmdlTWV0aG9kLAogICAgICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICR0aGlzLT50b2tlbkV4Y2hhbmdlSGVhZGVycwogICAgICAgICk7CgogICAgICAgICR0aGlzLT52YWxpZGF0ZUFwaVJlc3BvbnNlKCdVbmFibGUgdG8gZXhjaGFuZ2UgY29kZSBmb3IgQVBJIGFjY2VzcyB0b2tlbicpOwoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIC8qKgogICAgKiBWYWxpZGF0ZSBBY2Nlc3MgVG9rZW4gUmVzcG9uc2UKICAgICoKICAgICogUkZDNjc0OTogSWYgdGhlIGFjY2VzcyB0b2tlbiByZXF1ZXN0IGlzIHZhbGlkIGFuZCBhdXRob3JpemVkLCB0aGUKICAgICogYXV0aG9yaXphdGlvbiBzZXJ2ZXIgaXNzdWVzIGFuIGFjY2VzcyB0b2tlbiBhbmQgb3B0aW9uYWwgcmVmcmVzaCB0b2tlbi4KICAgICogSWYgdGhlIHJlcXVlc3QgY2xpZW50IGF1dGhlbnRpY2F0aW9uIGZhaWxlZCBvciBpcyBpbnZhbGlkLCB0aGUgYXV0aG9yaXphdGlvbgogICAgKiBzZXJ2ZXIgcmV0dXJucyBhbiBlcnJvciByZXNwb25zZSBhcyBkZXNjcmliZWQgaW4gU2VjdGlvbiA1LjIuCiAgICAqCiAgICAqIEV4YW1wbGUgb2YgYSBzdWNjZXNzZnVsIHJlc3BvbnNlOgogICAgKgogICAgKiAgSFRUUC8xLjEgMjAwIE9LCiAgICAqICBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOAogICAgKiAgQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUKICAgICogIFByYWdtYTogbm8tY2FjaGUKICAgICoKICAgICogIHsKICAgICogICAgICAiYWNjZXNzX3Rva2VuIjoiMllvdG5GWkZFanIxekNzaWNNV3BBQSIsCiAgICAqICAgICAgInRva2VuX3R5cGUiOiJleGFtcGxlIiwKICAgICogICAgICAiZXhwaXJlc19pbiI6MzYwMCwKICAgICogICAgICAicmVmcmVzaF90b2tlbiI6InRHenYzSk9rRjBYRzVReDJUbEtXSUEiLAogICAgKiAgICAgICJleGFtcGxlX3BhcmFtZXRlciI6ImV4YW1wbGVfdmFsdWUiCiAgICAqICB9CiAgICAqCiAgICAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00LjEuNAogICAgKgogICAgKiBUaGlzIG1ldGhvZCB1c2VzIERhdGFfUGFyc2VyIHRvIGF0dGVtcHQgdG8gZGVjb2RlcyB0aGUgcmF3ICRyZXNwb25zZSAodXN1YWxseSBKU09OKQogICAgKiBpbnRvIGEgZGF0YSBjb2xsZWN0aW9uLgogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICRyZXNwb25zZQogICAgKgogICAgKiBAcmV0dXJuIFxIeWJyaWRhdXRoXERhdGFcQ29sbGVjdGlvbgogICAgKiBAdGhyb3dzIEludmFsaWRBY2Nlc3NUb2tlbkV4Y2VwdGlvbgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKQogICAgewogICAgICAgICRkYXRhID0gKG5ldyBEYXRhXFBhcnNlcigpKS0+cGFyc2UoJHJlc3BvbnNlKTsKCiAgICAgICAgJGNvbGxlY3Rpb24gPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRkYXRhKTsKCiAgICAgICAgaWYgKCEgJGNvbGxlY3Rpb24tPmV4aXN0cygnYWNjZXNzX3Rva2VuJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBY2Nlc3NUb2tlbkV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICdQcm92aWRlciByZXR1cm5lZCBhbiBpbnZhbGlkIGFjY2Vzc190b2tlbjogJyAuIGh0bWxlbnRpdGllcygkcmVzcG9uc2UpCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+c3RvcmVEYXRhKCdhY2Nlc3NfdG9rZW4nLCAkY29sbGVjdGlvbi0+Z2V0KCdhY2Nlc3NfdG9rZW4nKSk7CiAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgndG9rZW5fdHlwZScsICRjb2xsZWN0aW9uLT5nZXQoJ3Rva2VuX3R5cGUnKSk7CgogICAgICAgIGlmICgkY29sbGVjdGlvbi0+Z2V0KCdyZWZyZXNoX3Rva2VuJykpIHsKICAgICAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgncmVmcmVzaF90b2tlbicsICRjb2xsZWN0aW9uLT5nZXQoJ3JlZnJlc2hfdG9rZW4nKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBjYWxjdWxhdGUgd2hlbiB0aGUgYWNjZXNzIHRva2VuIGV4cGlyZQogICAgICAgIGlmICgkY29sbGVjdGlvbi0+ZXhpc3RzKCdleHBpcmVzX2luJykpIHsKICAgICAgICAgICAgJGV4cGlyZXNfYXQgPSB0aW1lKCkgKyAoaW50KSAkY29sbGVjdGlvbi0+Z2V0KCdleHBpcmVzX2luJyk7CgogICAgICAgICAgICAkdGhpcy0+c3RvcmVEYXRhKCdleHBpcmVzX2luJywgJGNvbGxlY3Rpb24tPmdldCgnZXhwaXJlc19pbicpKTsKICAgICAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgnZXhwaXJlc19hdCcsICRleHBpcmVzX2F0KTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kZWxldGVTdG9yZWREYXRhKCdhdXRob3JpemF0aW9uX3N0YXRlJyk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXplKCk7CgogICAgICAgIHJldHVybiAkY29sbGVjdGlvbjsKICAgIH0KCiAgICAvKioKICAgICogUmVmcmVzaGluZyBhbiBBY2Nlc3MgVG9rZW4KICAgICoKICAgICogUkZDNjc0OTogSWYgdGhlIGF1dGhvcml6YXRpb24gc2VydmVyIGlzc3VlZCBhIHJlZnJlc2ggdG9rZW4gdG8gdGhlCiAgICAqIGNsaWVudCwgdGhlIGNsaWVudCBtYWtlcyBhIHJlZnJlc2ggcmVxdWVzdCB0byB0aGUgdG9rZW4gZW5kcG9pbnQgYnkKICAgICogYWRkaW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyAuLi4gaW4gdGhlIEhUVFAgcmVxdWVzdCBlbnRpdHktYm9keToKICAgICoKICAgICogICAgLSBncmFudF90eXBlICAgICBSRVFVSVJFRC4gVmFsdWUgTVVTVCBiZSBzZXQgdG8gInJlZnJlc2hfdG9rZW4iLgogICAgKiAgICAtIHJlZnJlc2hfdG9rZW4gIFJFUVVJUkVELiBUaGUgcmVmcmVzaCB0b2tlbiBpc3N1ZWQgdG8gdGhlIGNsaWVudC4KICAgICogICAgLSBzY29wZSAgICAgICAgICBPUFRJT05BTC4KICAgICoKICAgICogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTYKICAgICoKICAgICogVGhpcyBtZXRob2QgaXMgc2ltaWxhciB0byBleGNoYW5nZUNvZGVGb3JBY2Nlc3NUb2tlbigpLiBUaGUgb25seQogICAgKiBkaWZmZXJlbmNlIGlzIGhlcmUgd2UgZXhjaGFuZ2UgcmVmcmVzaF90b2tlbiBmb3IgYSBuZXcgYWNjZXNzX3Rva2VuLgogICAgKgogICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtZXRlcnMKICAgICoKICAgICogQHJldHVybiBzdHJpbmcgUmF3IFByb3ZpZGVyIEFQSSByZXNwb25zZQogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwQ2xpZW50RmFpbHVyZUV4Y2VwdGlvbgogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbgogICAgKiBAdGhyb3dzIEludmFsaWRBY2Nlc3NUb2tlbkV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZWZyZXNoQWNjZXNzVG9rZW4oJHBhcmFtZXRlcnMgPSBbXSkKICAgIHsKICAgICAgICAkdGhpcy0+dG9rZW5SZWZyZXNoUGFyYW1ldGVycyA9ICFlbXB0eSgkcGFyYW1ldGVycykKICAgICAgICAgICAgPyAkcGFyYW1ldGVycwogICAgICAgICAgICA6ICR0aGlzLT50b2tlblJlZnJlc2hQYXJhbWV0ZXJzOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+aHR0cENsaWVudC0+cmVxdWVzdCgKICAgICAgICAgICAgJHRoaXMtPmFjY2Vzc1Rva2VuVXJsLAogICAgICAgICAgICAkdGhpcy0+dG9rZW5SZWZyZXNoTWV0aG9kLAogICAgICAgICAgICAkdGhpcy0+dG9rZW5SZWZyZXNoUGFyYW1ldGVycywKICAgICAgICAgICAgJHRoaXMtPnRva2VuUmVmcmVzaEhlYWRlcnMKICAgICAgICApOwoKICAgICAgICAkdGhpcy0+dmFsaWRhdGVBcGlSZXNwb25zZSgnVW5hYmxlIHRvIHJlZnJlc2ggdGhlIGFjY2VzcyB0b2tlbicpOwoKICAgICAgICAkdGhpcy0+dmFsaWRhdGVSZWZyZXNoQWNjZXNzVG9rZW4oJHJlc3BvbnNlKTsKCiAgICAgICAgcmV0dXJuICRyZXNwb25zZTsKICAgIH0KCiAgICAvKioKICAgICogQ2hlY2sgd2hldGhlciBhY2Nlc3MgdG9rZW4gaGFzIGV4cGlyZWQKICAgICoKICAgICogQHJldHVybiBzdHJpbmcgUmF3IFByb3ZpZGVyIEFQSSByZXNwb25zZQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNBY2Nlc3NUb2tlbkV4cGlyZWQoKQogICAgewogICAgICAgIGlmICghICR0aGlzLT5nZXRTdG9yZWREYXRhKCdleHBpcmVzX2F0JykpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPmdldFN0b3JlZERhdGEoJ2V4cGlyZXNfYXQnKSA8PSB0aW1lKCkpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAqIFZhbGlkYXRlIFJlZnJlc2ggQWNjZXNzIFRva2VuIFJlcXVlc3QKICAgICoKICAgICogUkZDNjc0OTogSWYgdmFsaWQgYW5kIGF1dGhvcml6ZWQsIHRoZSBhdXRob3JpemF0aW9uIHNlcnZlciBpc3N1ZXMgYW4KICAgICogYWNjZXNzIHRva2VuIGFzIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDUuMS4gIElmIHRoZSByZXF1ZXN0IGZhaWxlZAogICAgKiB2ZXJpZmljYXRpb24gb3IgaXMgaW52YWxpZCwgdGhlIGF1dGhvcml6YXRpb24gc2VydmVyIHJldHVybnMgYW4gZXJyb3IKICAgICogcmVzcG9uc2UgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gNS4yLgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNS4xCiAgICAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi01LjIKICAgICoKICAgICogVGhpcyBtZXRob2Qgc2ltcGx5IHVzZSB2YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoKSwgaG93ZXZlciBzdWIKICAgICogY2xhc3NlcyBtYXkgcmVkZWZpbmUgaXQgd2hlbiBuZWNlc3NhcnkuCiAgICAqCiAgICAqIEBwYXJhbSAkcmVzcG9uc2UKICAgICoKICAgICogQHJldHVybiBcSHlicmlkYXV0aFxEYXRhXENvbGxlY3Rpb24KICAgICogQHRocm93cyBJbnZhbGlkQWNjZXNzVG9rZW5FeGNlcHRpb24KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVSZWZyZXNoQWNjZXNzVG9rZW4oJHJlc3BvbnNlKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dmFsaWRhdGVBY2Nlc3NUb2tlbkV4Y2hhbmdlKCRyZXNwb25zZSk7CiAgICB9CgogICAgLyoqCiAgICAqIFNlbmQgYSBzaWduZWQgcmVxdWVzdCB0byBwcm92aWRlciBBUEkKICAgICoKICAgICogUkZDNjc0OTogQWNjZXNzaW5nIFByb3RlY3RlZCBSZXNvdXJjZXM6IFRoZSBjbGllbnQgYWNjZXNzZXMgcHJvdGVjdGVkCiAgICAqIHJlc291cmNlcyBieSBwcmVzZW50aW5nIHRoZSBhY2Nlc3MgdG9rZW4gdG8gdGhlIHJlc291cmNlIHNlcnZlci4gVGhlCiAgICAqIHJlc291cmNlIHNlcnZlciBNVVNUIHZhbGlkYXRlIHRoZSBhY2Nlc3MgdG9rZW4gYW5kIGVuc3VyZSB0aGF0IGl0IGhhcwogICAgKiBub3QgZXhwaXJlZCBhbmQgdGhhdCBpdHMgc2NvcGUgY292ZXJzIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuCiAgICAqCiAgICAqIE5vdGU6IFNpbmNlIHRoZSBzcGVjaWZpY3Mgb2YgZXJyb3IgcmVzcG9uc2VzIGlzIGJleW9uZCB0aGUgc2NvcGUgb2YKICAgICogUkZDNjc0OSBhbmQgT0F1dGggc3BlY2lmaWNhdGlvbnMsIEh5YnJpZGF1dGggd2lsbCBjb25zaWRlciBhbnkgSFRUUAogICAgKiBzdGF0dXMgY29kZSB0aGF0IGlzIGRpZmZlcmVudCB0aGFuICcyMDAgT0snIGFzIGFuIEVSUk9SLgogICAgKgogICAgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNwogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICR1cmwKICAgICogQHBhcmFtIHN0cmluZyAkbWV0aG9kCiAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1ldGVycwogICAgKiBAcGFyYW0gYXJyYXkgJGhlYWRlcnMKICAgICoKICAgICogQHJldHVybiBtaXhlZAogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwQ2xpZW50RmFpbHVyZUV4Y2VwdGlvbgogICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbgogICAgKiBAdGhyb3dzIEludmFsaWRBY2Nlc3NUb2tlbkV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhcGlSZXF1ZXN0KCR1cmwsICRtZXRob2QgPSAnR0VUJywgJHBhcmFtZXRlcnMgPSBbXSwgJGhlYWRlcnMgPSBbXSkKICAgIHsKICAgICAgICAvLyByZWZyZXNoIHRva2VucyBpZiBuZWVkZWQKICAgICAgICBpZiAoJHRoaXMtPmhhc0FjY2Vzc1Rva2VuRXhwaXJlZCgpID09PSB0cnVlKSB7CiAgICAgICAgICAgICR0aGlzLT5yZWZyZXNoQWNjZXNzVG9rZW4oKTsKICAgICAgICB9CgogICAgICAgIGlmIChzdHJycG9zKCR1cmwsICdodHRwOi8vJykgIT09IDAgJiYgc3RycnBvcygkdXJsLCAnaHR0cHM6Ly8nKSAhPT0gMCkgewogICAgICAgICAgICAkdXJsID0gcnRyaW0oJHRoaXMtPmFwaUJhc2VVcmwsICcvJykgLiAnLycgLiBsdHJpbSgkdXJsLCAnLycpOwogICAgICAgIH0KCiAgICAgICAgJHBhcmFtZXRlcnMgPSBhcnJheV9yZXBsYWNlKCR0aGlzLT5hcGlSZXF1ZXN0UGFyYW1ldGVycywgKGFycmF5KSAkcGFyYW1ldGVycyk7CiAgICAgICAgJGhlYWRlcnMgPSBhcnJheV9yZXBsYWNlKCR0aGlzLT5hcGlSZXF1ZXN0SGVhZGVycywgKGFycmF5KSAkaGVhZGVycyk7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5odHRwQ2xpZW50LT5yZXF1ZXN0KAogICAgICAgICAgICAkdXJsLAogICAgICAgICAgICAkbWV0aG9kLCAgICAgLy8gSFRUUCBSZXF1ZXN0IE1ldGhvZC4gRGVmYXVsdHMgdG8gR0VULgogICAgICAgICAgICAkcGFyYW1ldGVycywgLy8gUmVxdWVzdCBQYXJhbWV0ZXJzCiAgICAgICAgICAgICRoZWFkZXJzICAgICAvLyBSZXF1ZXN0IEhlYWRlcnMKICAgICAgICApOwoKICAgICAgICAkdGhpcy0+dmFsaWRhdGVBcGlSZXNwb25zZSgnU2lnbmVkIEFQSSByZXF1ZXN0IGhhcyByZXR1cm5lZCBhbiBlcnJvcicpOwoKICAgICAgICAkcmVzcG9uc2UgPSAobmV3IERhdGFcUGFyc2VyKCkpLT5wYXJzZSgkcmVzcG9uc2UpOwoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Adapter/OpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxBZGFwdGVyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRPcGVuaWRJZGVudGlmaWVyRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cQXV0aG9yaXphdGlvbkRlbmllZEV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRPcGVuaWRSZXNwb25zZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRGF0YTsKdXNlIEh5YnJpZGF1dGhcSHR0cENsaWVudDsKdXNlIEh5YnJpZGF1dGhcVXNlcjsKdXNlIEh5YnJpZGF1dGhcVGhpcmRwYXJ0eVxPcGVuSURcTGlnaHRPcGVuSUQ7CgovKioKICogVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCB0byBzaW1wbGlmeSB0aGUgYXV0aGVudGljYXRpb24gZmxvdyBvZiBPcGVuSUQgYmFzZWQgc2VydmljZSBwcm92aWRlcnMuCiAqCiAqIFN1YmNsYXNzZXMgKGkuZS4sIHByb3ZpZGVycyBhZGFwdGVycykgY2FuIGVpdGhlciB1c2UgdGhlIGFscmVhZHkgcHJvdmlkZWQgbWV0aG9kcyBvciBvdmVycmlkZQogKiB0aGVtIHdoZW4gbmVjZXNzYXJ5LgogKi8KYWJzdHJhY3QgY2xhc3MgT3BlbklEIGV4dGVuZHMgQWJzdHJhY3RBZGFwdGVyIGltcGxlbWVudHMgQWRhcHRlckludGVyZmFjZQp7CiAgICAvKioKICAgICogTGlnaHRPcGVuSUQgaW5zdGFuY2UKICAgICoKICAgICogQHZhciBvYmplY3QKICAgICovCiAgICBwcm90ZWN0ZWQgJG9wZW5JZENsaWVudCA9IG51bGw7CgogICAgLyoqCiAgICAqIE9wZW5pZCBwcm92aWRlciBpZGVudGlmaWVyCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRvcGVuaWRJZGVudGlmaWVyID0gJyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29uZmlndXJlKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+ZXhpc3RzKCdvcGVuaWRfaWRlbnRpZmllcicpKSB7CiAgICAgICAgICAgICR0aGlzLT5vcGVuaWRJZGVudGlmaWVyID0gJHRoaXMtPmNvbmZpZy0+Z2V0KCdvcGVuaWRfaWRlbnRpZmllcicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5vcGVuaWRJZGVudGlmaWVyKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZW5pZElkZW50aWZpZXJFeGNlcHRpb24oJ09wZW5JRCBhZGFwdGVyIHJlcXVpcmVzIGFuIG9wZW5pZF9pZGVudGlmaWVyLicsIDQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnNldENhbGxiYWNrKCR0aGlzLT5jb25maWctPmdldCgnY2FsbGJhY2snKSk7CiAgICAgICAgJHRoaXMtPnNldEFwaUVuZHBvaW50cygkdGhpcy0+Y29uZmlnLT5nZXQoJ2VuZHBvaW50cycpKTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpbml0aWFsaXplKCkKICAgIHsKICAgICAgICAkaG9zdFBvcnQgPSBwYXJzZV91cmwoJHRoaXMtPmNhbGxiYWNrLCBQSFBfVVJMX1BPUlQpOwogICAgICAgICRob3N0VXJsICA9IHBhcnNlX3VybCgkdGhpcy0+Y2FsbGJhY2ssIFBIUF9VUkxfSE9TVCk7CgogICAgICAgIGlmICgkaG9zdFBvcnQpIHsKICAgICAgICAgICAgJGhvc3RVcmwgLj0gJzonIC4gJGhvc3RQb3J0OwogICAgICAgIH0KCiAgICAgICAgLy8gQGZpeG1lOiBhZGQgcHJveHkKICAgICAgICAkdGhpcy0+b3BlbklkQ2xpZW50ID0gbmV3IExpZ2h0T3BlbklEKCRob3N0VXJsLCBudWxsKTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGUoKQogICAgewogICAgICAgICR0aGlzLT5sb2dnZXItPmluZm8oc3ByaW50ZignJXM6OmF1dGhlbnRpY2F0ZSgpJywgZ2V0X2NsYXNzKCR0aGlzKSkpOwoKICAgICAgICBpZiAoJHRoaXMtPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICBpZiAoZW1wdHkoJF9SRVFVRVNUWydvcGVuaWRfbW9kZSddKSkgewogICAgICAgICAgICAkdGhpcy0+YXV0aGVudGljYXRlQmVnaW4oKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmF1dGhlbnRpY2F0ZUZpbmlzaCgpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNDb25uZWN0ZWQoKQogICAgewogICAgICAgIHJldHVybiAoYm9vbCkgJHRoaXMtPnN0b3JhZ2UtPmdldCgkdGhpcy0+cHJvdmlkZXJJZCAuICcudXNlcicpOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKQogICAgewogICAgICAgICR0aGlzLT5zdG9yYWdlLT5kZWxldGUoJHRoaXMtPnByb3ZpZGVySWQgLiAnLnVzZXInKTsKCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLyoqCiAgICAqIEluaXRpYXRlIHRoZSBhdXRob3JpemF0aW9uIHByb3RvY29sCiAgICAqCiAgICAqIEluY2x1ZGUgYW5kIGluc3RhbnRpYXRlIExpZ2h0T3BlbklECiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZUJlZ2luKCkKICAgIHsKICAgICAgICAkdGhpcy0+b3BlbklkQ2xpZW50LT5pZGVudGl0eSAgPSAkdGhpcy0+b3BlbmlkSWRlbnRpZmllcjsKICAgICAgICAkdGhpcy0+b3BlbklkQ2xpZW50LT5yZXR1cm5VcmwgPSAkdGhpcy0+Y2FsbGJhY2s7CiAgICAgICAgJHRoaXMtPm9wZW5JZENsaWVudC0+cmVxdWlyZWQgID0gWwogICAgICAgICAgICAnbmFtZVBlcnNvbi9maXJzdCcgICAgICAgLAogICAgICAgICAgICAnbmFtZVBlcnNvbi9sYXN0JyAgICAgICAgLAogICAgICAgICAgICAnbmFtZVBlcnNvbi9mcmllbmRseScgICAgLAogICAgICAgICAgICAnbmFtZVBlcnNvbicgICAgICAgICAgICAgLAogICAgICAgICAgICAnY29udGFjdC9lbWFpbCcgICAgICAgICAgLAogICAgICAgICAgICAnYmlydGhEYXRlJyAgICAgICAgICAgICAgLAogICAgICAgICAgICAnYmlydGhEYXRlL2JpcnRoRGF5JyAgICAgLAogICAgICAgICAgICAnYmlydGhEYXRlL2JpcnRoTW9udGgnICAgLAogICAgICAgICAgICAnYmlydGhEYXRlL2JpcnRoWWVhcicgICAgLAogICAgICAgICAgICAncGVyc29uL2dlbmRlcicgICAgICAgICAgLAogICAgICAgICAgICAncHJlZi9sYW5ndWFnZScgICAgICAgICAgLAogICAgICAgICAgICAnY29udGFjdC9wb3N0YWxDb2RlL2hvbWUnLAogICAgICAgICAgICAnY29udGFjdC9jaXR5L2hvbWUnICAgICAgLAogICAgICAgICAgICAnY29udGFjdC9jb3VudHJ5L2hvbWUnICAgLAoKICAgICAgICAgICAgJ21lZGlhL2ltYWdlL2RlZmF1bHQnICAgICwKICAgICAgICBdOwoKICAgICAgICAkYXV0aFVybCA9ICR0aGlzLT5vcGVuSWRDbGllbnQtPmF1dGhVcmwoKTsKCiAgICAgICAgJHRoaXMtPmxvZ2dlci0+ZGVidWcoc3ByaW50ZignJXM6OmF1dGhlbnRpY2F0ZUJlZ2luKCksIHJlZGlyZWN0aW5nIHVzZXIgdG86JywgZ2V0X2NsYXNzKCR0aGlzKSksIFskYXV0aFVybF0pOwoKICAgICAgICBIdHRwQ2xpZW50XFV0aWw6OnJlZGlyZWN0KCRhdXRoVXJsKTsKICAgIH0KCiAgICAvKioKICAgICogRmluYWxpemUgdGhlIGF1dGhvcml6YXRpb24gcHJvY2Vzcy4KICAgICoKICAgICogQHRocm93cyBBdXRob3JpemF0aW9uRGVuaWVkRXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uCiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZUZpbmlzaCgpCiAgICB7CiAgICAgICAgJHRoaXMtPmxvZ2dlci0+ZGVidWcoCiAgICAgICAgICAgIHNwcmludGYoJyVzOjphdXRoZW50aWNhdGVGaW5pc2goKSwgY2FsbGJhY2sgdXJsOicsIGdldF9jbGFzcygkdGhpcykpLAogICAgICAgICAgICBbSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKHRydWUpXQogICAgICAgICk7CgogICAgICAgIGlmICgkdGhpcy0+b3BlbklkQ2xpZW50LT5tb2RlID09ICdjYW5jZWwnKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRGVuaWVkRXhjZXB0aW9uKCdVc2VyIGhhcyBjYW5jZWxsZWQgdGhlIGF1dGhlbnRpY2F0aW9uLicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEgJHRoaXMtPm9wZW5JZENsaWVudC0+dmFsaWRhdGUoKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdJbnZhbGlkIHJlc3BvbnNlIHJlY2VpdmVkLicpOwogICAgICAgIH0KCiAgICAgICAgJG9wZW5pZEF0dHJpYnV0ZXMgPSAkdGhpcy0+b3BlbklkQ2xpZW50LT5nZXRBdHRyaWJ1dGVzKCk7CgogICAgICAgIGlmICghICR0aGlzLT5vcGVuSWRDbGllbnQtPmlkZW50aXR5KSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSAkdGhpcy0+ZmV0Y2hVc2VyUHJvZmlsZSgkb3BlbmlkQXR0cmlidXRlcyk7CgogICAgICAgIC8qIHdpdGggb3BlbmlkIHByb3ZpZGVycyB3ZSBvbmx5IGdldCB1c2VyIHByb2ZpbGVzIG9uY2UsIHNvIHdlIHN0b3JlIGl0ICovCiAgICAgICAgJHRoaXMtPnN0b3JhZ2UtPnNldCgkdGhpcy0+cHJvdmlkZXJJZCAuICcudXNlcicsICR1c2VyUHJvZmlsZSk7CiAgICB9CgogICAgLyoqCiAgICAqIEZldGNoIHVzZXIgcHJvZmlsZSBmcm9tIHJlY2VpdmVkIG9wZW5pZCBhdHRyaWJ1dGVzCiAgICAqCiAgICAqIEBwYXJhbSBhcnJheSAkb3BlbmlkQXR0cmlidXRlcwogICAgKgogICAgKiBAcmV0dXJuIFVzZXJcUHJvZmlsZQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXJQcm9maWxlKCRvcGVuaWRBdHRyaWJ1dGVzKQogICAgewogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkb3BlbmlkQXR0cmlidXRlcyk7CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICR0aGlzLT5vcGVuSWRDbGllbnQtPmlkZW50aXR5OwoKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAgID0gJGRhdGEtPmdldCgnbmFtZVBlcnNvbi9maXJzdCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgICAgPSAkZGF0YS0+Z2V0KCduYW1lUGVyc29uL2xhc3QnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsICAgICAgID0gJGRhdGEtPmdldCgnY29udGFjdC9lbWFpbCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFuZ3VhZ2UgICAgPSAkZGF0YS0+Z2V0KCdwcmVmL2xhbmd1YWdlJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5jb3VudHJ5ICAgICA9ICRkYXRhLT5nZXQoJ2NvbnRhY3QvY291bnRyeS9ob21lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT56aXAgICAgICAgICA9ICRkYXRhLT5nZXQoJ2NvbnRhY3QvcG9zdGFsQ29kZS9ob21lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5nZW5kZXIgICAgICA9ICRkYXRhLT5nZXQoJ3BlcnNvbi9nZW5kZXInKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMICAgID0gJGRhdGEtPmdldCgnbWVkaWEvaW1hZ2UvZGVmYXVsdCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+YmlydGhEYXkgICAgPSAkZGF0YS0+Z2V0KCdiaXJ0aERhdGUvYmlydGhEYXknKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmJpcnRoTW9udGggID0gJGRhdGEtPmdldCgnYmlydGhEYXRlL2JpcnRoTW9udGgnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmJpcnRoWWVhciAgID0gJGRhdGEtPmdldCgnYmlydGhEYXRlL2JpcnRoRGF0ZScpOwoKICAgICAgICAkdXNlclByb2ZpbGUgPSAkdGhpcy0+ZmV0Y2hVc2VyR2VuZGVyKCR1c2VyUHJvZmlsZSwgJGRhdGEtPmdldCgncGVyc29uL2dlbmRlcicpKTsKCiAgICAgICAgJHVzZXJQcm9maWxlID0gJHRoaXMtPmZldGNoVXNlckRpc3BsYXlOYW1lKCR1c2VyUHJvZmlsZSwgJGRhdGEpOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQoKICAgIC8qKgogICAgKiBFeHRyYWN0IHVzZXJzIGRpc3BsYXkgbmFtZXMKICAgICoKICAgICogQHBhcmFtIFVzZXJcUHJvZmlsZSAkdXNlclByb2ZpbGUKICAgICogQHBhcmFtIERhdGFcQ29sbGVjdGlvbiAkZGF0YQogICAgKgogICAgKiBAcmV0dXJuIFVzZXJcUHJvZmlsZQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXJEaXNwbGF5TmFtZShVc2VyXFByb2ZpbGUgJHVzZXJQcm9maWxlLCBEYXRhXENvbGxlY3Rpb24gJGRhdGEpCiAgICB7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkYXRhLT5nZXQoJ25hbWVQZXJzb24nKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZGF0YS0+Z2V0KCduYW1lUGVyc29uL2ZyaWVuZGx5Jyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJpbSgkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAuICcgJyAuICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUpOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQoKICAgIC8qKgogICAgKiBFeHRyYWN0IHVzZXJzIGdlbmRlcgogICAgKgogICAgKiBAcGFyYW0gVXNlclxQcm9maWxlICR1c2VyUHJvZmlsZQogICAgKiBAcGFyYW0gc3RyaW5nICRnZW5kZXIKICAgICoKICAgICogQHJldHVybiBVc2VyXFByb2ZpbGUKICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmV0Y2hVc2VyR2VuZGVyKFVzZXJcUHJvZmlsZSAkdXNlclByb2ZpbGUsICRnZW5kZXIpCiAgICB7CiAgICAgICAgJGdlbmRlciA9IHN0cnRvbG93ZXIoJGdlbmRlcik7CgogICAgICAgIGlmICgnZicgPT0gJGdlbmRlcikgewogICAgICAgICAgICAkZ2VuZGVyID0gJ2ZlbWFsZSc7CiAgICAgICAgfQoKICAgICAgICBpZiAoJ20nID09ICRnZW5kZXIpIHsKICAgICAgICAgICAgJGdlbmRlciA9ICdtYWxlJzsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZS0+Z2VuZGVyID0gJGdlbmRlcjsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICogT3BlbklEIG9ubHkgcHJvdmlkZSB0aGUgdXNlciBwcm9maWxlIG9uZS4gVGhpcyBtZXRob2Qgd2lsbCBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBwcm9maWxlIGZyb20gc3RvcmFnZS4KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICR1c2VyUHJvZmlsZSA9ICR0aGlzLT5zdG9yYWdlLT5nZXQoJHRoaXMtPnByb3ZpZGVySWQgLiAnLnVzZXInKTsKCiAgICAgICAgaWYgKCEgaXNfb2JqZWN0KCR1c2VyUHJvZmlsZSkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/autoload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJhc2ljIGF1dG9sb2FkZXIgZm9yIEh5YnJpZGF1dGggbGlicmFyeSB3aGljaCB5b3UgbWF5IHVzZSBhcyBpdCBpcyBvciBhcyBhIHRlbXBsYXRlCiAqIHRvIHN1aXQgeW91ciBhcHBsaWNhdGlvbidzIGVudmlyb25tZW50LgogKgogKiBOb3RlIHRoYXQgeW91J2QgT05MWSBuZWVkIHRoaXMgZmlsZSBpZiB5b3UgYXJlIG5vdCB1c2luZyBjb21wb3Nlci4KICovCgppZiAodmVyc2lvbl9jb21wYXJlKFBIUF9WRVJTSU9OLCAnNS40LjAnLCAnPCcpKSB7CiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdIeWJyaWRhdXRoIDMgcmVxdWlyZXMgUEhQIHZlcnNpb24gNS40IG9yIGhpZ2hlci4nKTsKfQoKLyoqCiAqIFJlZ2lzdGVyIHRoZSBhdXRvbG9hZGVyIGZvciBIeWJyaWRhdXRoIGNsYXNzZXMuCiAqCiAqIEJhc2VkIG9mZiB0aGUgb2ZmaWNpYWwgUFNSLTQgYXV0b2xvYWRlciBleGFtcGxlIGZvdW5kIGF0CiAqIGh0dHA6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci00L2V4YW1wbGVzLwogKgogKiBAcGFyYW0gc3RyaW5nICRjbGFzcyBUaGUgZnVsbHktcXVhbGlmaWVkIGNsYXNzIG5hbWUuCiAqCiAqIEByZXR1cm4gdm9pZAogKi8Kc3BsX2F1dG9sb2FkX3JlZ2lzdGVyKAogICAgZnVuY3Rpb24gKCRjbGFzcykgewogICAgICAgIC8vIHByb2plY3Qtc3BlY2lmaWMgbmFtZXNwYWNlIHByZWZpeC4gV2lsbCBvbmx5IGtpY2tzIGluIGZvciBIeWJyaWRhdXRoJ3MgbmFtZXNwYWNlLgogICAgICAgICRwcmVmaXggPSAnSHlicmlkYXV0aFxcJzsKCiAgICAgICAgLy8gYmFzZSBkaXJlY3RvcnkgZm9yIHRoZSBuYW1lc3BhY2UgcHJlZml4LgogICAgICAgICRiYXNlX2RpciA9IF9fRElSX187ICAgLy8gQnkgZGVmYXVsdCwgaXQgcG9pbnRzIHRvIHRoaXMgc2FtZSBmb2xkZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBZb3UgbWF5IGNoYW5nZSB0aGlzIHBhdGggaWYgaGF2aW5nIHRyb3VibGUgZGV0ZWN0aW5nIHRoZSBwYXRoIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc291cmNlIGZpbGVzLgoKICAgICAgICAvLyBkb2VzIHRoZSBjbGFzcyB1c2UgdGhlIG5hbWVzcGFjZSBwcmVmaXg/CiAgICAgICAgJGxlbiA9IHN0cmxlbigkcHJlZml4KTsKICAgICAgICBpZiAoc3RybmNtcCgkcHJlZml4LCAkY2xhc3MsICRsZW4pICE9PSAwKSB7CiAgICAgICAgICAgIC8vIG5vLCBtb3ZlIHRvIHRoZSBuZXh0IHJlZ2lzdGVyZWQgYXV0b2xvYWRlci4KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IHRoZSByZWxhdGl2ZSBjbGFzcyBuYW1lLgogICAgICAgICRyZWxhdGl2ZV9jbGFzcyA9IHN1YnN0cigkY2xhc3MsICRsZW4pOwoKICAgICAgICAvLyByZXBsYWNlIHRoZSBuYW1lc3BhY2UgcHJlZml4IHdpdGggdGhlIGJhc2UgZGlyZWN0b3J5LCByZXBsYWNlIG5hbWVzcGFjZQogICAgICAgIC8vIHNlcGFyYXRvcnMgd2l0aCBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBpbiB0aGUgcmVsYXRpdmUgY2xhc3MgbmFtZSwgYXBwZW5kCiAgICAgICAgLy8gd2l0aCAucGhwCiAgICAgICAgJGZpbGUgPSAkYmFzZV9kaXIuRElSRUNUT1JZX1NFUEFSQVRPUi5zdHJfcmVwbGFjZSgnXFwnLCBESVJFQ1RPUllfU0VQQVJBVE9SLCAkcmVsYXRpdmVfY2xhc3MpLicucGhwJzsKCiAgICAgICAgLy8gaWYgdGhlIGZpbGUgZXhpc3RzLCByZXF1aXJlIGl0CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmaWxlKSkgewogICAgICAgICAgICByZXF1aXJlICRmaWxlOwogICAgICAgIH0KICAgIH0KKTsK]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Data/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Data/Collection.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxEYXRhOwoKLyoqCiAqIEEgdmVyeSBiYXNpYyBEYXRhIGNvbGxlY3Rpb24uCiAqLwpmaW5hbCBjbGFzcyBDb2xsZWN0aW9uCnsKICAgIC8qKgogICAgKiBEYXRhIGNvbGxlY3Rpb24KICAgICoKICAgICogQHZhciBtaXhlZAogICAgKi8KICAgIHByb3RlY3RlZCAkY29sbGVjdGlvbiA9IG51bGw7CgogICAgLyoqCiAgICAqIEBwYXJhbSBtaXhlZCAkZGF0YQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGF0YSA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24gPSBuZXcgXHN0ZENsYXNzKCk7CgogICAgICAgIGlmIChpc19vYmplY3QoJGRhdGEpKSB7CiAgICAgICAgICAgICR0aGlzLT5jb2xsZWN0aW9uID0gJGRhdGE7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+Y29sbGVjdGlvbiA9IChvYmplY3QpICRkYXRhOwogICAgfQoKICAgIC8qKgogICAgKiBSZXRyaWV2ZXMgdGhlIHdob2xlIGNvbGxlY3Rpb24gYXMgYXJyYXkKICAgICoKICAgICogQHJldHVybiBtaXhlZAogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0b0FycmF5KCkKICAgIHsKICAgICAgICByZXR1cm4gKGFycmF5KSAkdGhpcy0+Y29sbGVjdGlvbjsKICAgIH0KCiAgICAvKioKICAgICogUmV0cmlldmVzIGFuIGl0ZW0KICAgICoKICAgICogQHBhcmFtICRwcm9wZXJ0eQogICAgKgogICAgKiBAcmV0dXJuIG1peGVkCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldCgkcHJvcGVydHkpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5leGlzdHMoJHByb3BlcnR5KSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNvbGxlY3Rpb24tPiRwcm9wZXJ0eTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIC8qKgogICAgKiBBZGQgb3IgdXBkYXRlIGFuIGl0ZW0KICAgICoKICAgICogQHBhcmFtICRwcm9wZXJ0eQogICAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldCgkcHJvcGVydHksICR2YWx1ZSkKICAgIHsKICAgICAgICBpZiAoJHByb3BlcnR5KSB7CiAgICAgICAgICAgICR0aGlzLT5jb2xsZWN0aW9uLT4kcHJvcGVydHkgPSAkdmFsdWU7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgKiAuLiB1bnRpbCBJIGNvbWUgd2l0aCBhIGJldHRlciBuYW1lLi4KICAgICoKICAgICogQHBhcmFtICRwcm9wZXJ0eQogICAgKgogICAgKiBAcmV0dXJuIENvbGxlY3Rpb24KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZmlsdGVyKCRwcm9wZXJ0eSkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPmV4aXN0cygkcHJvcGVydHkpKSB7CiAgICAgICAgICAgICRkYXRhID0gJHRoaXMtPmdldCgkcHJvcGVydHkpOwoKICAgICAgICAgICAgaWYgKCEgaXNfYSgkZGF0YSwgJ0NvbGxlY3Rpb24nKSkgewogICAgICAgICAgICAgICAgJGRhdGEgPSBuZXcgQ29sbGVjdGlvbigkZGF0YSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbihbXSk7CiAgICB9CgogICAgLyoqCiAgICAqIENoZWNrcyB3aGV0aGVyIGFuIGl0ZW0gd2l0aGluIHRoZSBjb2xsZWN0aW9uCiAgICAqCiAgICAqIEBwYXJhbSAkcHJvcGVydHkKICAgICoKICAgICogQHJldHVybiBib29sCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGV4aXN0cygkcHJvcGVydHkpCiAgICB7CiAgICAgICAgcmV0dXJuIHByb3BlcnR5X2V4aXN0cygkdGhpcy0+Y29sbGVjdGlvbiwgJHByb3BlcnR5KTsKICAgIH0KCiAgICAvKioKICAgICogRmluZHMgd2hldGhlciB0aGUgY29sbGVjdGlvbiBpcyBlbXB0eQogICAgKgogICAgKiBAcmV0dXJuIGJvb2wKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNFbXB0eSgpCiAgICB7CiAgICAgICAgcmV0dXJuICEgKGJvb2wpICR0aGlzLT5jb3VudCgpOwogICAgfQoKICAgIC8qKgogICAgKiBDb3VudCBhbGwgaXRlbXMgaW4gY29sbGVjdGlvbgogICAgKgogICAgKiBAcmV0dXJuIGludAogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5wcm9wZXJ0aWVzKCkpOwogICAgfQoKICAgIC8qKgogICAgKiBSZXR1cm5zIGFsbCBpdGVtcyBwcm9wZXJ0aWVzIG5hbWVzCiAgICAqCiAgICAqIEByZXR1cm4gYXJyYXkKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJvcGVydGllcygpCiAgICB7CiAgICAgICAgJHByb3BlcnRpZXMgPSBbXTsKCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmNvbGxlY3Rpb24gYXMgJHByb3BlcnR5KSB7CiAgICAgICAgICAgICRwcm9wZXJ0aWVzW10gPSAkcHJvcGVydHk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHByb3BlcnRpZXM7CiAgICB9CgogICAgLyoqCiAgICAqIFJldHVybnMgYWxsIGl0ZW1zIHZhbHVlcwogICAgKgogICAgKiBAcmV0dXJuIGFycmF5CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHZhbHVlcygpCiAgICB7CiAgICAgICAgJHZhbHVlcyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+Y29sbGVjdGlvbiBhcyAkcHJvcGVydHkpIHsKICAgICAgICAgICAgJHZhbHVlc1tdID0gJHRoaXMtPmdldCgkcHJvcGVydHkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR2YWx1ZXM7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Data/Parser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxEYXRhOwoKLyoqCiAqIFBhcnNlcgogKgogKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gcGFyc2UgcGxhaW4gdGV4dCBpbnRvIG9iamVjdHMuIEl0J3MgdXNlZCBieSBoeWJyaWF1dGggYWRhcHRlcnMgdG8gY29udmVydHMKICogcHJvdmlkZXJzIGFwaSByZXNwb25zZXMgdG8gYSBtb3JlICdtYW5hZ2VhYmxlJyBmb3JtYXQuCiAqLwpmaW5hbCBjbGFzcyBQYXJzZXIKewogICAgLyoqCiAgICAqIERlY29kZXMgYSBzdHJpbmcgaW50byBhbiBvYmplY3QuCiAgICAqCiAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZmlyc3QgYXR0ZW1wdCB0byBwYXJzZSBkYXRhIGFzIGEgSlNPTiBzdHJpbmcgKHNpbmNlIG1vc3QgcHJvdmlkZXJzIHVzZSB0aGlzIGZvcm1hdCkKICAgICogdGhlbiBwYXJzZV9zdHIuCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJHJhdwogICAgKgogICAgKiBAcmV0dXJuIG1peGVkCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBhcnNlKCRyYXcgPSBudWxsKQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPnBhcnNlSnNvbigkcmF3KTsKCiAgICAgICAgaWYgKCEgJGRhdGEpIHsKICAgICAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyc2VRdWVyeVN0cmluZygkcmF3KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICAvKioKICAgICogRGVjb2RlcyBhIEpTT04gc3RyaW5nCiAgICAqCiAgICAqIEBwYXJhbSAkcmVzdWx0CiAgICAqCiAgICAqIEByZXR1cm4gbWl4ZWQKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFyc2VKc29uKCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIGpzb25fZGVjb2RlKCRyZXN1bHQpOwogICAgfQoKICAgIC8qKgogICAgKiBQYXJzZXMgYSBzdHJpbmcgaW50byB2YXJpYWJsZXMKICAgICoKICAgICogQHBhcmFtICRyZXN1bHQKICAgICoKICAgICogQHJldHVybiBcU3RkQ2xhc3MKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFyc2VRdWVyeVN0cmluZygkcmVzdWx0KQogICAgewogICAgICAgIHBhcnNlX3N0cigkcmVzdWx0LCAkb3V0cHV0KTsKCiAgICAgICAgaWYgKCEgaXNfYXJyYXkoJG91dHB1dCkpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0ID0gbmV3IFxTdGRDbGFzcygpOwoKICAgICAgICBmb3JlYWNoICgkb3V0cHV0IGFzICRrID0+ICR2KSB7CiAgICAgICAgICAgICRyZXN1bHQtPiRrID0gJHY7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvKioKICAgICogbmVlZHMgdG8gYmUgaW1wcm92ZWQKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFyc2VCaXJ0aGRheSgkYmlydGhkYXksICRzZXBlcmF0b3IpCiAgICB7CiAgICAgICAgJGJpcnRoZGF5ID0gZGF0ZV9wYXJzZSgkYmlydGhkYXkpOwoKICAgICAgICByZXR1cm4gWyAkYmlydGhkYXlbJ3llYXInXSwgJGJpcnRoZGF5Wydtb250aCddLCAkYmlydGhkYXlbJ2RheSddIF07CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/AuthorizationDeniedException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEF1dGhvcml6YXRpb25EZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24gaW1wbGVtZW50cyBFeGNlcHRpb25JbnRlcmZhY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/BadMethodCallException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICogQmFkTWV0aG9kQ2FsbEV4Y2VwdGlvbgogKgogKiBFeGNlcHRpb24gdGhyb3duIGlmIGEgY2FsbGJhY2sgcmVmZXJzIHRvIGFuIHVuZGVmaW5lZCBtZXRob2Qgb3IgaWYgc29tZSBhcmd1bWVudHMgYXJlIG1pc3NpbmcuCiAqLwpjbGFzcyBCYWRNZXRob2RDYWxsRXhjZXB0aW9uIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/Exception.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICogSHlicmlkYXV0aCBCYXNlIEV4Y2VwdGlvbgogKi8KY2xhc3MgRXhjZXB0aW9uIGV4dGVuZHMgXEV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7CiAgICAvKioKICAgICogU2hhbWVsZXNzbHkgQm9ycm93ZWQgZnJvbSBTbGltZnJhbWV3b3JrCiAgICAqCiAgICAqIEBwYXJhbSAkb2JqZWN0CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlYnVnKCRvYmplY3QpCiAgICB7CiAgICAgICAgJHRpdGxlICAgPSAnSHlicmlkYXV0aCBFeGNlcHRpb24nOwogICAgICAgICRjb2RlICAgID0gJHRoaXMtPmdldENvZGUoKTsKICAgICAgICAkbWVzc2FnZSA9ICR0aGlzLT5nZXRNZXNzYWdlKCk7CiAgICAgICAgJGZpbGUgICAgPSAkdGhpcy0+Z2V0RmlsZSgpOwogICAgICAgICRsaW5lICAgID0gJHRoaXMtPmdldExpbmUoKTsKICAgICAgICAkdHJhY2UgICA9ICR0aGlzLT5nZXRUcmFjZUFzU3RyaW5nKCk7CgogICAgICAgICRodG1sICA9IHNwcmludGYoJzxoMT4lczwvaDE+JywgJHRpdGxlKTsKICAgICAgICAkaHRtbCAuPSAnPHA+SHlicmlkQXV0aCBoYXMgZW5jb3VudGVyZWQgdGhlIGZvbGxvd2luZyBlcnJvcjo8L3A+JzsKICAgICAgICAkaHRtbCAuPSAnPGgyPkRldGFpbHM8L2gyPic7CgogICAgICAgICRodG1sIC49IHNwcmludGYoJzxkaXY+PHN0cm9uZz5FeGNlcHRpb246PC9zdHJvbmc+ICVzPC9kaXY+JywgZ2V0X2NsYXNzKCR0aGlzKSk7CgogICAgICAgICRodG1sIC49IHNwcmludGYoJzxkaXY+PHN0cm9uZz5NZXNzYWdlOjwvc3Ryb25nPiA8Zm9udCBjb2xvcj0iI2NjMDAwMCI+JXM8L2ZvbnQ+PC9kaXY+JywgJG1lc3NhZ2UpOwoKICAgICAgICAkaHRtbCAuPSBzcHJpbnRmKCc8ZGl2PjxzdHJvbmc+RmlsZTo8L3N0cm9uZz4gJXM8L2Rpdj4nLCAkZmlsZSk7CgogICAgICAgICRodG1sIC49IHNwcmludGYoJzxkaXY+PHN0cm9uZz5MaW5lOjwvc3Ryb25nPiAlczwvZGl2PicsICRsaW5lKTsKCiAgICAgICAgJGh0bWwgLj0gc3ByaW50ZignPGRpdj48c3Ryb25nPkNvZGU6PC9zdHJvbmc+ICVzPC9kaXY+JywgJGNvZGUpOwoKICAgICAgICAkaHRtbCAuPSAnPGgyPlRyYWNlPC9oMj4nOwogICAgICAgICRodG1sIC49IHNwcmludGYoJzxwcmU+JXM8L3ByZT4nLCAkdHJhY2UpOwoKICAgICAgICBpZiAoJG9iamVjdCkgewogICAgICAgICAgICAkaHRtbCAuPSAnPGgyPkRlYnVnPC9oMj4nOwoKICAgICAgICAgICAgJG9ial9kdW1wID0gcHJpbnRfcigkb2JqZWN0LCB0cnVlKTsKCiAgICAgICAgICAgICRodG1sIC49IHNwcmludGYoJzxiPicgLiBnZXRfY2xhc3MoJG9iamVjdCkgLiAnPC9iPiBleHRlbmRzIDxiPicgLiBnZXRfcGFyZW50X2NsYXNzKCRvYmplY3QpIC4gJzwvYj48cHJlPiVzPC9wcmU+JywgJG9ial9kdW1wKTsKICAgICAgICB9CgogICAgICAgICRodG1sIC49ICc8aDI+U2Vzc2lvbjwvaDI+JzsKCiAgICAgICAgJHNlc3Npb25fZHVtcCA9IHByaW50X3IoJF9TRVNTSU9OLCB0cnVlKTsKCiAgICAgICAgJGh0bWwgLj0gc3ByaW50ZignPHByZT4lczwvcHJlPicsICRzZXNzaW9uX2R1bXApOwoKICAgICAgICBlY2hvIHNwcmludGYoIjxodG1sPjxoZWFkPjx0aXRsZT4lczwvdGl0bGU+PHN0eWxlPmJvZHl7bWFyZ2luOjA7cGFkZGluZzozMHB4O2ZvbnQ6MTJweC8xLjUgSGVsdmV0aWNhLEFyaWFsLFZlcmRhbmEsc2Fucy1zZXJpZjt9aDF7bWFyZ2luOjA7Zm9udC1zaXplOjQ4cHg7Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0OjQ4cHg7fXN0cm9uZ3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo3NXB4O308L3N0eWxlPjwvaGVhZD48Ym9keT4lczwvYm9keT48L2h0bWw+IiwgJHRpdGxlLCAkaHRtbCk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/ExceptionInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICogSHlicmlkYXV0aCBFeGNlcHRpb25zIEludGVyZmFjZQogKi8KaW50ZXJmYWNlIEV4Y2VwdGlvbkludGVyZmFjZQp7CiAgICAvKgogICAgRXhjZXB0aW9uSW50ZXJmYWNlCiAgICBFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbmRzIFxFeGNlcHRpb24gaW1wbGVtZW50cyBFeGNlcHRpb25JbnRlcmZhY2UKICAgIHwgICBSdW50aW1lRXhjZXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZHMgRXhjZXB0aW9uCiAgICB8ICAgfCAgICBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICBleHRlbmRzIFJ1bnRpbWVFeGNlcHRpb24KICAgIHwgICB8ICAgIHwgICAgQXV0aG9yaXphdGlvbkRlbmllZEV4Y2VwdGlvbiAgICAgICAgICAgIGV4dGVuZHMgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICB8ICAgfCAgICB8ICAgIEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uICAgICAgICAgICAgICBleHRlbmRzIFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbgogICAgfCAgIHwgICAgfCAgICBIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbiAgICAgICAgICAgICAgZXh0ZW5kcyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24KICAgIHwgICB8ICAgIHwgICAgSW52YWxpZEF1dGhvcml6YXRpb25Db2RlRXhjZXB0aW9uICAgICAgIGV4dGVuZHMgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICB8ICAgfCAgICB8ICAgIEludmFsaWRBdXRob3JpemF0aW9uU3RhdGVFeGNlcHRpb24gICAgICBleHRlbmRzIFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbgogICAgfCAgIHwgICAgfCAgICBJbnZhbGlkT2F1dGhUb2tlbkV4Y2VwdGlvbiAgICAgICAgICAgICAgZXh0ZW5kcyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24KICAgIHwgICB8ICAgIHwgICAgSW52YWxpZEFjY2Vzc1Rva2VuRXhjZXB0aW9uICAgICAgICAgICAgIGV4dGVuZHMgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICB8ICAgfCAgICB8ICAgIFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbiAgICAgICAgICBleHRlbmRzIFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbgogICAgfCAgIHwKICAgIHwgICB8ICAgIEJhZE1ldGhvZENhbGxFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbgogICAgfCAgIHwgICAgfCAgIE5vdEltcGxlbWVudGVkRXhjZXB0aW9uICAgICAgICAgICAgICAgICAgZXh0ZW5kcyBCYWRNZXRob2RDYWxsRXhjZXB0aW9uCiAgICB8ICAgfAogICAgfCAgIHwgICAgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uCiAgICB8ICAgfCAgICB8ICAgSW52YWxpZEFwcGxpY2F0aW9uQ3JlZGVudGlhbHNFeGNlcHRpb24gICBleHRlbmRzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgfCAgIHwgICAgfCAgIEludmFsaWRPcGVuaWRJZGVudGlmaWVyRXhjZXB0aW9uICAgICAgICAgZXh0ZW5kcyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKi8KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/HttpClientFailureException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uIGV4dGVuZHMgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/HttpRequestFailedException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEh0dHBSZXF1ZXN0RmFpbGVkRXhjZXB0aW9uIGV4dGVuZHMgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidAccessTokenException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEludmFsaWRBY2Nlc3NUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidApplicationCredentialsException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEludmFsaWRBcHBsaWNhdGlvbkNyZWRlbnRpYWxzRXhjZXB0aW9uIGV4dGVuZHMgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidArgumentException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICogSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqCiAqIEV4Y2VwdGlvbiB0aHJvd24gaWYgYW4gYXJndW1lbnQgaXMgbm90IG9mIHRoZSBleHBlY3RlZCB0eXBlLgogKi8KY2xhc3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidAuthorizationCodeException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEludmFsaWRBdXRob3JpemF0aW9uQ29kZUV4Y2VwdGlvbiBleHRlbmRzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidAuthorizationStateException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEludmFsaWRBdXRob3JpemF0aW9uU3RhdGVFeGNlcHRpb24gZXh0ZW5kcyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gaW1wbGVtZW50cyBFeGNlcHRpb25JbnRlcmZhY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidOauthTokenException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEludmFsaWRPYXV0aFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/InvalidOpenidIdentifierException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIEludmFsaWRPcGVuaWRJZGVudGlmaWVyRXhjZXB0aW9uIGV4dGVuZHMgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/NotImplementedException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIE5vdEltcGxlbWVudGVkRXhjZXB0aW9uIGV4dGVuZHMgQmFkTWV0aG9kQ2FsbEV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/RuntimeException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICogUnVudGltZUV4Y2VwdGlvbgogKgogKiBFeGNlcHRpb24gdGhyb3duIGlmIGFuIGVycm9yIHdoaWNoIGNhbiBvbmx5IGJlIGZvdW5kIG9uIHJ1bnRpbWUgb2NjdXJzLgogKi8KY2xhc3MgUnVudGltZUV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/UnexpectedApiResponseException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICoKICovCmNsYXNzIFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbiBleHRlbmRzIFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbkludGVyZmFjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Exception/UnexpectedValueException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxFeGNlcHRpb247CgovKioKICogVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAqCiAqIEV4Y2VwdGlvbiB0aHJvd24gaWYgYSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB3aXRoIGEgc2V0IG9mIHZhbHVlcy4gVHlwaWNhbGx5IHRoaXMgaGFwcGVucyB3aGVuIGEgZnVuY3Rpb24gY2FsbHMKICogYW5vdGhlciBmdW5jdGlvbiBhbmQgZXhwZWN0cyB0aGUgcmV0dXJuIHZhbHVlIHRvIGJlIG9mIGEgY2VydGFpbiB0eXBlIG9yIHZhbHVlIG5vdCBpbmNsdWRpbmcgYXJpdGhtZXRpYyBvcgogKiBidWZmZXIgcmVsYXRlZCBlcnJvcnMuCiAqLwpjbGFzcyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24gZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/HttpClient/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/HttpClient/Curl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50OwoKLyoqCiAqIEh5YnJpZEF1dGggZGVmYXVsdCBIdHRwIGNsaWVudAogKi8KY2xhc3MgQ3VybCBpbXBsZW1lbnRzIEh0dHBDbGllbnRJbnRlcmZhY2UKewogICAgLyoqCiAgICAqIERlZmF1bHQgY3VybCBvcHRpb25zCiAgICAqCiAgICAqIFRoZXNlIGRlZmF1bHRzIG9wdGlvbnMgY2FuIGJlIG92ZXJ3cml0dGVuIHdoZW4gc2VuZGluZyByZXF1ZXN0cy4KICAgICoKICAgICogU2VlIHNldEN1cmxPcHRpb25zKCkKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkY3VybE9wdGlvbnMgPSBbCiAgICAgICAgQ1VSTE9QVF9USU1FT1VUICAgICAgICA9PiAzMCwKICAgICAgICBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VUID0+IDMwLAogICAgICAgIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIgPT4gZmFsc2UsCiAgICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCA9PiBmYWxzZSwKICAgICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IHRydWUsCiAgICAgICAgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiA9PiB0cnVlLAogICAgICAgIENVUkxPUFRfTUFYUkVESVJTICAgICAgPT4gNSwKICAgICAgICBDVVJMSU5GT19IRUFERVJfT1VUICAgID0+IHRydWUsCiAgICAgICAgQ1VSTE9QVF9FTkNPRElORyAgICAgICA9PiAnaWRlbnRpdHknLAogICAgICAgIENVUkxPUFRfVVNFUkFHRU5UICAgICAgPT4gJ0h5YnJpZEF1dGgsIFBIUCBTb2NpYWwgQXV0aGVudGljYXRpb24gTGlicmFyeSAoaHR0cHM6Ly9naXRodWIuY29tL2h5YnJpZGF1dGgvaHlicmlkYXV0aCknLAogICAgXTsKCiAgICAvKioKICAgICogTWV0aG9kIHJlcXVlc3QoKSBhcmd1bWVudHMKICAgICoKICAgICogVGhpcyBpcyB1c2VkIGZvciBkZWJ1Z2dpbmcuCiAgICAqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlcXVlc3RBcmd1bWVudHMgPSBbXTsKCiAgICAvKioKICAgICogRGVmYXVsdCByZXF1ZXN0IGhlYWRlcnMKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkcmVxdWVzdEhlYWRlciA9IFsKICAgICAgICAnQWNjZXB0JyAgICAgICAgICA9PiAnKi8qJywKICAgICAgICAnQ2FjaGUtQ29udHJvbCcgICA9PiAnbWF4LWFnZT0wJywKICAgICAgICAnQ29ubmVjdGlvbicgICAgICA9PiAna2VlcC1hbGl2ZScsCiAgICAgICAgJ0V4cGVjdCcgICAgICAgICAgPT4gJycsCiAgICAgICAgJ1ByYWdtYScgICAgICAgICAgPT4gJycsCiAgICBdOwoKICAgIC8qKgogICAgKiBSYXcgcmVzcG9uc2UgcmV0dXJuZWQgYnkgc2VydmVyCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRyZXNwb25zZUJvZHkgPSAnJzsKCiAgICAvKioKICAgICogSGVhZGVycyByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkcmVzcG9uc2VIZWFkZXIgPSBbXTsKCiAgICAvKioKICAgICogUmVzcG9uc2UgSFRUUCBzdGF0dXMgY29kZQogICAgKgogICAgKiBAdmFyIGludGVnZXIKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlc3BvbnNlSHR0cENvZGUgPSAwOwoKICAgIC8qKgogICAgKiBMYXN0IGN1cmwgZXJyb3IgbnVtYmVyCiAgICAqCiAgICAqIEB2YXIgbWl4ZWQKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlc3BvbnNlQ2xpZW50RXJyb3IgPSBudWxsOwoKICAgIC8qKgogICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgbGFzdCB0cmFuc2ZlcgogICAgKgogICAgKiBAdmFyIG1peGVkCiAgICAqLwogICAgcHJvdGVjdGVkICRyZXNwb25zZUNsaWVudEluZm8gPSBbXTsKCiAgICAvKioKICAgICogSHlicmlkYXV0aCBsb2dnZXIgaW5zdGFuY2UKICAgICoKICAgICogQHZhciBvYmplY3QKICAgICovCiAgICBwcm90ZWN0ZWQgJGxvZ2dlciA9IG51bGw7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVxdWVzdCgkdXJpLCAkbWV0aG9kID0gJ0dFVCcsICRwYXJhbWV0ZXJzID0gW10sICRoZWFkZXJzID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPnJlcXVlc3RIZWFkZXIgPSBhcnJheV9yZXBsYWNlKCR0aGlzLT5yZXF1ZXN0SGVhZGVyLCAoYXJyYXkpICRoZWFkZXJzKTsKCiAgICAgICAgJHRoaXMtPnJlcXVlc3RBcmd1bWVudHMgPSBbCiAgICAgICAgICAgICd1cmknID0+ICR1cmksCiAgICAgICAgICAgICdtZXRob2QnID0+ICRtZXRob2QsCiAgICAgICAgICAgICdwYXJhbWV0ZXJzJyA9PiAkcGFyYW1ldGVycywKICAgICAgICAgICAgJ2hlYWRlcnMnID0+ICR0aGlzLT5yZXF1ZXN0SGVhZGVyLAogICAgICAgIF07CgogICAgICAgICRjdXJsID0gY3VybF9pbml0KCk7CgogICAgICAgIHN3aXRjaCAoJG1ldGhvZCkgewogICAgICAgICAgICBjYXNlICdHRVQnOgogICAgICAgICAgICBjYXNlICdERUxFVEUnOgogICAgICAgICAgICAgICAgdW5zZXQoJHRoaXMtPmN1cmxPcHRpb25zW0NVUkxPUFRfUE9TVF0pOwogICAgICAgICAgICAgICAgdW5zZXQoJHRoaXMtPmN1cmxPcHRpb25zW0NVUkxPUFRfUE9TVEZJRUxEU10pOwoKICAgICAgICAgICAgICAgICR1cmkgPSAkdXJpIC4gKHN0cnBvcygkdXJpLCAnPycpID8gJyYnIDogJz8nKSAuIGh0dHBfYnVpbGRfcXVlcnkoJHBhcmFtZXRlcnMpOwogICAgICAgICAgICAgICAgaWYgKCRtZXRob2QgPT09ICdERUxFVEUnKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmN1cmxPcHRpb25zW0NVUkxPUFRfQ1VTVE9NUkVRVUVTVF0gPSAnREVMRVRFJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdQVVQnOgogICAgICAgICAgICBjYXNlICdQT1NUJzoKICAgICAgICAgICAgICAgICRib2R5X2NvbnRlbnQgPSBodHRwX2J1aWxkX3F1ZXJ5KCRwYXJhbWV0ZXJzKTsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cmVxdWVzdEhlYWRlclsnQ29udGVudC1UeXBlJ10pCiAgICAgICAgICAgICAgICAgICAgJiYgJHRoaXMtPnJlcXVlc3RIZWFkZXJbJ0NvbnRlbnQtVHlwZSddID09ICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgJGJvZHlfY29udGVudCA9IGpzb25fZW5jb2RlKCRwYXJhbWV0ZXJzKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJG1ldGhvZCA9PT0gJ1BVVCcpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y3VybE9wdGlvbnNbQ1VSTE9QVF9DVVNUT01SRVFVRVNUXSA9ICdQVVQnOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y3VybE9wdGlvbnNbQ1VSTE9QVF9QT1NUXSA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+Y3VybE9wdGlvbnNbQ1VSTE9QVF9QT1NURklFTERTXSA9ICRib2R5X2NvbnRlbnQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5jdXJsT3B0aW9uc1tDVVJMT1BUX1VSTF0gICAgICAgICAgICA9ICR1cmk7CiAgICAgICAgJHRoaXMtPmN1cmxPcHRpb25zW0NVUkxPUFRfSFRUUEhFQURFUl0gICAgID0gJHRoaXMtPnByZXBhcmVSZXF1ZXN0SGVhZGVycygpOwogICAgICAgICR0aGlzLT5jdXJsT3B0aW9uc1tDVVJMT1BUX0hFQURFUkZVTkNUSU9OXSA9IFsgJHRoaXMsICdmZXRjaFJlc3BvbnNlSGVhZGVyJyBdOwoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+Y3VybE9wdGlvbnMgYXMgJG9wdCA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsICRvcHQsICR2YWx1ZSk7CiAgICAgICAgfQoKICAgICAgICAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGN1cmwpOwoKICAgICAgICAkdGhpcy0+cmVzcG9uc2VCb2R5ICAgICAgICA9ICRyZXNwb25zZTsKICAgICAgICAkdGhpcy0+cmVzcG9uc2VIdHRwQ29kZSAgICA9IGN1cmxfZ2V0aW5mbygkY3VybCwgQ1VSTElORk9fSFRUUF9DT0RFKTsKICAgICAgICAkdGhpcy0+cmVzcG9uc2VDbGllbnRFcnJvciA9IGN1cmxfZXJyb3IoJGN1cmwpOwogICAgICAgICR0aGlzLT5yZXNwb25zZUNsaWVudEluZm8gID0gY3VybF9nZXRpbmZvKCRjdXJsKTsKCiAgICAgICAgaWYgKCR0aGlzLT5sb2dnZXIpIHsKICAgICAgICAgICAgJHRoaXMtPmxvZ2dlci0+ZGVidWcoc3ByaW50ZignJXM6OnJlcXVlc3QoICVzLCAlcyApLCByZXNwb25zZTonLCBnZXRfY2xhc3MoJHRoaXMpLCAkdXJpLCAkbWV0aG9kKSwgJHRoaXMtPmdldFJlc3BvbnNlKCkpOwoKICAgICAgICAgICAgaWYgKGZhbHNlID09PSAkcmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5sb2dnZXItPmVycm9yKHNwcmludGYoJyVzOjpyZXF1ZXN0KCAlcywgJXMgKSwgZXJyb3I6JywgZ2V0X2NsYXNzKCR0aGlzKSwgJHVyaSwgJG1ldGhvZCksIFskdGhpcy0+cmVzcG9uc2VDbGllbnRFcnJvcl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNwb25zZUJvZHk7CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzcG9uc2UoKQogICAgewogICAgICAgICRjdXJsT3B0aW9ucyA9ICR0aGlzLT5jdXJsT3B0aW9uczsKCiAgICAgICAgJGN1cmxPcHRpb25zW0NVUkxPUFRfSEVBREVSRlVOQ1RJT05dID0gJypvbWl0dGVkJzsKCiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ3JlcXVlc3QnID0+ICR0aGlzLT5nZXRSZXF1ZXN0QXJndW1lbnRzKCksCiAgICAgICAgICAgICdyZXNwb25zZScgPT4gWwogICAgICAgICAgICAgICAgJ2NvZGUnICAgID0+ICR0aGlzLT5nZXRSZXNwb25zZUh0dHBDb2RlKCksCiAgICAgICAgICAgICAgICAnaGVhZGVycycgPT4gJHRoaXMtPmdldFJlc3BvbnNlSGVhZGVyKCksCiAgICAgICAgICAgICAgICAnYm9keScgICAgPT4gJHRoaXMtPmdldFJlc3BvbnNlQm9keSgpLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnY2xpZW50JyA9PiBbCiAgICAgICAgICAgICAgICAnZXJyb3InID0+ICR0aGlzLT5nZXRSZXNwb25zZUNsaWVudEVycm9yKCksCiAgICAgICAgICAgICAgICAnaW5mbycgID0+ICR0aGlzLT5nZXRSZXNwb25zZUNsaWVudEluZm8oKSwKICAgICAgICAgICAgICAgICdvcHRzJyAgPT4gJGN1cmxPcHRpb25zLAogICAgICAgICAgICBdLAogICAgICAgIF07CiAgICB9CgogICAgLyoqCiAgICAqIFJlc2V0IGN1cmwgb3B0aW9ucwogICAgKgogICAgKiBAcGFyYW0gYXJyYXkgJGN1cmxPcHRpb25zCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldEN1cmxPcHRpb25zKCRjdXJsT3B0aW9ucykKICAgIHsKICAgICAgICBmb3JlYWNoICgkY3VybE9wdGlvbnMgYXMgJG9wdCA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgJHRoaXMtPmN1cmxPcHRpb25zWyAkb3B0IF0gPSAkdmFsdWU7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgKiBTZXQgbG9nZ2VyIGluc3RhbmNlCiAgICAqCiAgICAqIEBwYXJhbSBvYmplY3QgJGxvZ2dlcgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRMb2dnZXIoJGxvZ2dlcikKICAgIHsKICAgICAgICAkdGhpcy0+bG9nZ2VyID0gJGxvZ2dlcjsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZUJvZHkoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2VCb2R5OwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc3BvbnNlSGVhZGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlSGVhZGVyOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc3BvbnNlSHR0cENvZGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2VIdHRwQ29kZTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZUNsaWVudEVycm9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlQ2xpZW50RXJyb3I7CiAgICB9CgogICAgLyoqCiAgICAqIEByZXR1cm4gYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UmVzcG9uc2VDbGllbnRJbmZvKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlQ2xpZW50SW5mbzsKICAgIH0KCiAgICAvKioKICAgICogUmV0dXJucyBtZXRob2QgcmVxdWVzdCgpIGFyZ3VtZW50cwogICAgKgogICAgKiBUaGlzIGlzIHVzZWQgZm9yIGRlYnVnZ2luZy4KICAgICoKICAgICogQHJldHVybiBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRSZXF1ZXN0QXJndW1lbnRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlcXVlc3RBcmd1bWVudHM7CiAgICB9CgogICAgLyoqCiAgICAqIEZldGNoIHNlcnZlciByZXNwb25zZSBoZWFkZXJzCiAgICAqCiAgICAqIEBwYXJhbSBtaXhlZCAgJGN1cmwKICAgICogQHBhcmFtIHN0cmluZyAkaGVhZGVyCiAgICAqCiAgICAqIEByZXR1cm4gaW50ZWdlcgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFJlc3BvbnNlSGVhZGVyKCRjdXJsLCAkaGVhZGVyKQogICAgewogICAgICAgICRwb3MgPSBzdHJwb3MoJGhlYWRlciwgJzonKTsKCiAgICAgICAgaWYgKCEgZW1wdHkoJHBvcykpIHsKICAgICAgICAgICAgJGtleSAgID0gc3RyX3JlcGxhY2UoJy0nLCAnXycsIHN0cnRvbG93ZXIoc3Vic3RyKCRoZWFkZXIsIDAsICRwb3MpKSk7CgogICAgICAgICAgICAkdmFsdWUgPSB0cmltKHN1YnN0cigkaGVhZGVyLCAkcG9zICsgMikpOwoKICAgICAgICAgICAgJHRoaXMtPnJlc3BvbnNlSGVhZGVyWyAka2V5IF0gPSAkdmFsdWU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc3RybGVuKCRoZWFkZXIpOwogICAgfQoKICAgIC8qKgogICAgKiBDb252ZXJ0IHJlcXVlc3QgaGVhZGVycyB0byB0aGUgZXhwZWN0IGN1cmwgZm9ybWF0CiAgICAqCiAgICAqIEByZXR1cm4gYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcHJlcGFyZVJlcXVlc3RIZWFkZXJzKCkKICAgIHsKICAgICAgICAkaGVhZGVycyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+cmVxdWVzdEhlYWRlciBhcyAkaGVhZGVyID0+ICR2YWx1ZSkgewogICAgICAgICAgICAkaGVhZGVyc1tdID0gdHJpbSgkaGVhZGVyKSAuJzogJy4gdHJpbSgkdmFsdWUpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRoZWFkZXJzOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/HttpClient/Guzzle.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50OwoKdXNlIEd1enpsZUh0dHBcQ2xpZW50Owp1c2UgR3V6emxlSHR0cFxFeGNlcHRpb25cUmVxdWVzdEV4Y2VwdGlvbjsKdXNlIEd1enpsZUh0dHBcRXhjZXB0aW9uXFNlcnZlckV4Y2VwdGlvbjsKdXNlIEd1enpsZUh0dHBcRXhjZXB0aW9uXFRyYW5zZmVyRXhjZXB0aW9uOwoKLyoqCiAqIEh5YnJpZEF1dGggR3V6emxlIEh0dHAgY2xpZW50CiAqCiAqIE5vdGU6IFRoaXMgaXMganVzdCBhIHByb29mIG9mIGNvbmNlcHQuIEZlZWwgZnJlZSB0byBpbXByb3ZlIGl0LgogKgogKiBFeGFtcGxlOgogKgogKiA8Y29kZT4KICogICRndXp6bGUgPSBuZXcgSHlicmlkYXV0aFxIdHRwQ2xpZW50XEd1enpsZSggbmV3IEd1enpsZUh0dHBcQ2xpZW50KCksIFsKICogICAgICAndmVyaWZ5JyAgPT4gJy9wYXRoL3RvL3lvdXIvY2VydGlmaWNhdGUuY3J0JywKICogICAgICAnaGVhZGVycycgPT4gWyAnVXNlci1BZ2VudCcgPT4gJy4uJyBdCiAqICAgICAgLy8gJ3Byb3h5JyA9PiAuLi4KICogIF0pOwogKgogKiAgJGFkYXB0ZXIgPSBuZXcgSHlicmlkYXV0aFxQcm92aWRlclxHaXRodWIoICRjb25maWcsICRndXp6bGUgKTsKICoKICogICRhZGFwdGVyLT5hdXRoZW50aWNhdGUoKTsKICogPC9jb2RlPgogKi8KY2xhc3MgR3V6emxlIGltcGxlbWVudHMgSHR0cENsaWVudEludGVyZmFjZQp7CiAgICAvKioKICAgICogTWV0aG9kIHJlcXVlc3QoKSBhcmd1bWVudHMKICAgICoKICAgICogVGhpcyBpcyB1c2VkIGZvciBkZWJ1Z2dpbmcuCiAgICAqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlcXVlc3RBcmd1bWVudHMgPSBbXTsKCiAgICAvKioKICAgICogRGVmYXVsdCByZXF1ZXN0IGhlYWRlcnMKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkcmVxdWVzdEhlYWRlciA9IFtdOwoKICAgIC8qKgogICAgKiBSYXcgcmVzcG9uc2UgcmV0dXJuZWQgYnkgc2VydmVyCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHJvdGVjdGVkICRyZXNwb25zZUJvZHkgPSAnJzsKCiAgICAvKioKICAgICogSGVhZGVycyByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCAkcmVzcG9uc2VIZWFkZXIgPSBbXTsKCiAgICAvKioKICAgICogUmVzcG9uc2UgSFRUUCBzdGF0dXMgY29kZQogICAgKgogICAgKiBAdmFyIGludGVnZXIKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlc3BvbnNlSHR0cENvZGUgPSAwOwoKICAgIC8qKgogICAgKiBMYXN0IGN1cmwgZXJyb3IgbnVtYmVyCiAgICAqCiAgICAqIEB2YXIgbWl4ZWQKICAgICovCiAgICBwcm90ZWN0ZWQgJHJlc3BvbnNlQ2xpZW50RXJyb3IgPSBudWxsOwoKICAgIC8qKgogICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgbGFzdCB0cmFuc2ZlcgogICAgKgogICAgKiBAdmFyIG1peGVkCiAgICAqLwogICAgcHJvdGVjdGVkICRyZXNwb25zZUNsaWVudEluZm8gPSBbXTsKCiAgICAvKioKICAgICogSHlicmlkYXV0aCBsb2dnZXIgaW5zdGFuY2UKICAgICoKICAgICogQHZhciBvYmplY3QKICAgICovCiAgICBwcm90ZWN0ZWQgJGxvZ2dlciA9IG51bGw7CgogICAgLyoqCiAgICAqIEd1enpsZUh0dHAgY2xpZW50CiAgICAqCiAgICAqIEB2YXIgXEd1enpsZUh0dHBcQ2xpZW50CiAgICAqLwogICAgcHJvdGVjdGVkICRjbGllbnQgPSBudWxsOwoKICAgIC8qKgogICAgKiAuLgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY2xpZW50ID0gbnVsbCwgJGNvbmZpZyA9IFtdKQogICAgewogICAgICAgICR0aGlzLT5jbGllbnQgPSAkY2xpZW50ID8gJGNsaWVudCA6IG5ldyBDbGllbnQoJGNvbmZpZyk7CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVxdWVzdCgkdXJpLCAkbWV0aG9kID0gJ0dFVCcsICRwYXJhbWV0ZXJzID0gW10sICRoZWFkZXJzID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPnJlcXVlc3RIZWFkZXIgPSBhcnJheV9yZXBsYWNlKCR0aGlzLT5yZXF1ZXN0SGVhZGVyLCAoYXJyYXkpICRoZWFkZXJzKTsKCiAgICAgICAgJHRoaXMtPnJlcXVlc3RBcmd1bWVudHMgPSBbCiAgICAgICAgICAgICd1cmknID0+ICR1cmksCiAgICAgICAgICAgICdtZXRob2QnID0+ICRtZXRob2QsCiAgICAgICAgICAgICdwYXJhbWV0ZXJzJyA9PiAkcGFyYW1ldGVycywKICAgICAgICAgICAgJ2hlYWRlcnMnID0+ICR0aGlzLT5yZXF1ZXN0SGVhZGVyLAogICAgICAgIF07CgogICAgICAgICRyZXNwb25zZSA9IG51bGw7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHN3aXRjaCAoJG1ldGhvZCkgewogICAgICAgICAgICAgICAgY2FzZSAnR0VUJzoKICAgICAgICAgICAgICAgIGNhc2UgJ0RFTEVURSc6CiAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmNsaWVudC0+cmVxdWVzdCgkbWV0aG9kLCAkdXJpLCBbCiAgICAgICAgICAgICAgICAgICAgICAncXVlcnknID0+ICRwYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcnMnID0+ICR0aGlzLT5yZXF1ZXN0SGVhZGVyLAogICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnUFVUJzoKICAgICAgICAgICAgICAgIGNhc2UgJ1BPU1QnOgogICAgICAgICAgICAgICAgICAgICRib2R5X2NvbnRlbnQgPSAnZm9ybV9wYXJhbXMnOwoKICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnJlcXVlc3RIZWFkZXJbJ0NvbnRlbnQtVHlwZSddKQogICAgICAgICAgICAgICAgICAgICAgICAmJiAkdGhpcy0+cmVxdWVzdEhlYWRlclsnQ29udGVudC1UeXBlJ10gPT09ICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAkYm9keV9jb250ZW50ID0gJ2pzb24nOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmNsaWVudC0+cmVxdWVzdCgkbWV0aG9kLCAkdXJpLCBbCiAgICAgICAgICAgICAgICAgICAgICAkYm9keV9jb250ZW50ID0+ICRwYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcnMnID0+ICR0aGlzLT5yZXF1ZXN0SGVhZGVyLAogICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkcmVzcG9uc2UgPSAkZS0+Z2V0UmVzcG9uc2UoKTsKCiAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZUNsaWVudEVycm9yID0gJGUtPmdldE1lc3NhZ2UoKTsKICAgICAgICB9CgogICAgICAgIGlmICghICR0aGlzLT5yZXNwb25zZUNsaWVudEVycm9yKSB7CiAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZUJvZHkgICAgID0gJHJlc3BvbnNlLT5nZXRCb2R5KCk7CiAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZUh0dHBDb2RlID0gJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCk7CiAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZUhlYWRlciAgID0gJHJlc3BvbnNlLT5nZXRIZWFkZXJzKCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPmxvZ2dlcikgewogICAgICAgICAgICAkdGhpcy0+bG9nZ2VyLT5kZWJ1ZyhzcHJpbnRmKCclczo6cmVxdWVzdCggJXMsICVzICksIHJlc3BvbnNlOicsIGdldF9jbGFzcygkdGhpcyksICR1cmksICRtZXRob2QpLCAkdGhpcy0+Z2V0UmVzcG9uc2UoKSk7CgogICAgICAgICAgICBpZiAoJHRoaXMtPnJlc3BvbnNlQ2xpZW50RXJyb3IpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5sb2dnZXItPmVycm9yKHNwcmludGYoJyVzOjpyZXF1ZXN0KCAlcywgJXMgKSwgZXJyb3I6JywgZ2V0X2NsYXNzKCR0aGlzKSwgJHVyaSwgJG1ldGhvZCksIFskdGhpcy0+cmVzcG9uc2VDbGllbnRFcnJvcl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlQm9keTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ3JlcXVlc3QnID0+ICR0aGlzLT5nZXRSZXF1ZXN0QXJndW1lbnRzKCksCiAgICAgICAgICAgICdyZXNwb25zZScgPT4gWwogICAgICAgICAgICAgICAgJ2NvZGUnICAgID0+ICR0aGlzLT5nZXRSZXNwb25zZUh0dHBDb2RlKCksCiAgICAgICAgICAgICAgICAnaGVhZGVycycgPT4gJHRoaXMtPmdldFJlc3BvbnNlSGVhZGVyKCksCiAgICAgICAgICAgICAgICAnYm9keScgICAgPT4gJHRoaXMtPmdldFJlc3BvbnNlQm9keSgpLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnY2xpZW50JyA9PiBbCiAgICAgICAgICAgICAgICAnZXJyb3InID0+ICR0aGlzLT5nZXRSZXNwb25zZUNsaWVudEVycm9yKCksCiAgICAgICAgICAgICAgICAnaW5mbycgID0+ICR0aGlzLT5nZXRSZXNwb25zZUNsaWVudEluZm8oKSwKICAgICAgICAgICAgICAgICdvcHRzJyAgPT4gbnVsbCwKICAgICAgICAgICAgXSwKICAgICAgICBdOwogICAgfQoKICAgIC8qKgogICAgKiBTZXQgbG9nZ2VyIGluc3RhbmNlCiAgICAqCiAgICAqIEBwYXJhbSBvYmplY3QgJGxvZ2dlcgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRMb2dnZXIoJGxvZ2dlcikKICAgIHsKICAgICAgICAkdGhpcy0+bG9nZ2VyID0gJGxvZ2dlcjsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZUJvZHkoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2VCb2R5OwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc3BvbnNlSGVhZGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlSGVhZGVyOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc3BvbnNlSHR0cENvZGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2VIdHRwQ29kZTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZUNsaWVudEVycm9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlQ2xpZW50RXJyb3I7CiAgICB9CgogICAgLyoqCiAgICAqIEByZXR1cm4gYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UmVzcG9uc2VDbGllbnRJbmZvKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlQ2xpZW50SW5mbzsKICAgIH0KCiAgICAvKioKICAgICogUmV0dXJucyBtZXRob2QgcmVxdWVzdCgpIGFyZ3VtZW50cwogICAgKgogICAgKiBUaGlzIGlzIHVzZWQgZm9yIGRlYnVnZ2luZy4KICAgICoKICAgICogQHJldHVybiBhcnJheQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRSZXF1ZXN0QXJndW1lbnRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJlcXVlc3RBcmd1bWVudHM7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/HttpClient/HttpClientInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50OwoKLyoqCiAqIEh5YnJpZEF1dGggSHR0cCBjbGllbnRzIGludGVyZmFjZQogKi8KaW50ZXJmYWNlIEh0dHBDbGllbnRJbnRlcmZhY2UKewogICAgLyoqCiAgICAqIFNlbmQgcmVxdWVzdCB0byB0aGUgcmVtb3RlIHNlcnZlcgogICAgKgogICAgKiBSZXR1cm5zIHRoZSByZXN1bHQgKFJhdyByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIpIG9uIHN1Y2Nlc3MsIEZBTFNFIG9uIGZhaWx1cmUKICAgICoKICAgICogQHBhcmFtIHN0cmluZyAkdXJpCiAgICAqIEBwYXJhbSBzdHJpbmcgJG1ldGhvZAogICAgKiBAcGFyYW0gYXJyYXkgICRwYXJhbWV0ZXJzCiAgICAqIEBwYXJhbSBhcnJheSAgJGhlYWRlcnMKICAgICoKICAgICogQHJldHVybiBtaXhlZAogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZXF1ZXN0KCR1cmksICRtZXRob2QgPSAnR0VUJywgJHBhcmFtZXRlcnMgPSBbXSwgJGhlYWRlcnMgPSBbXSk7CgogICAgLyoqCiAgICAqIFJldHVybnMgcmF3IHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlciBvbiBzdWNjZXNzLCBGQUxTRSBvbiBmYWlsdXJlCiAgICAqCiAgICAqIEByZXR1cm4gbWl4ZWQKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzcG9uc2VCb2R5KCk7CgogICAgLyoqCiAgICAqIFJldHJpZXZlciB0aGUgaGVhZGVycyByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UKICAgICoKICAgICogQHJldHVybiBhcnJheQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZUhlYWRlcigpOwoKICAgIC8qKgogICAgKiBSZXR1cm5zIGxhdGVzdCByZXF1ZXN0IEhUVFAgc3RhdHVzIGNvZGUKICAgICoKICAgICogQHJldHVybiBpbnRlZ2VyCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc3BvbnNlSHR0cENvZGUoKTsKCiAgICAvKioKICAgICogUmV0dXJucyBsYXRlc3QgZXJyb3IgZW5jb3VudGVyZWQgYnkgdGhlIGNsaWVudAogICAgKiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBjb2RlIG9yIGVycm9yIG1lc3NhZ2UKICAgICoKICAgICogQHJldHVybiBtaXhlZAogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZUNsaWVudEVycm9yKCk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/HttpClient/Util.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50OwoKdXNlIEh5YnJpZGF1dGhcRGF0YTsKCi8qKgogKiBIdHRwQ2xpZW50XFV0aWwgaG9tZSB0byBhIG51bWJlciBvZiB1dGlsaXR5IGZ1bmN0aW9ucy4KICovCmNsYXNzIFV0aWwKewogICAgLyoqCiAgICAqIFJlZGlyZWN0IGhhbmRsZXIuCiAgICAqCiAgICAqIEB2YXIgY2FsbGFibGV8bnVsbAogICAgKi8KICAgIHByb3RlY3RlZCBzdGF0aWMgJHJlZGlyZWN0SGFuZGxlcjsKCiAgICAvKioKICAgICogRXhpdCBoYW5kbGVyLgogICAgKgogICAgKiBAdmFyIGNhbGxhYmxlfG51bGwKICAgICovCiAgICBwcm90ZWN0ZWQgc3RhdGljICRleGl0SGFuZGxlcjsKCiAgIC8qKgogICAgKiBSZWRpcmVjdCB0byBhIGdpdmVuIFVSTC4KICAgICoKICAgICogSW4gY2FzZSB5b3VyIGFwcGxpY2F0aW9uIG5lZWQgdG8gcGVyZm9ybSBjZXJ0YWluIHJlcXVpcmVkIGFjdGlvbnMgYmVmb3JlIEh5YnJpZGF1dGggcmVkaXJlY3QgdXNlcnMKICAgICogdG8gSURQcyB3ZWJzaXRlcywgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGNhbiBiZSBhbHRlcmVkIGluIG9uZSBvZiB0d28gd2F5czoKICAgICogICBJZiBjYWxsYWJsZSAkcmVkaXJlY3RIYW5kbGVyIGlzIGRlZmluZWQsIGl0IHdpbGwgYmUgY2FsbGVkIGluc3RlYWQuCiAgICAqICAgSWYgY2FsbGFibGUgJGV4aXRIYW5kbGVyIGlzIGRlZmluZWQsIGl0IHdpbGwgYmUgY2FsbGVkIGluc3RlYWQgb2YgZXhpdCgpLgogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICR1cmwKICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlZGlyZWN0KCR1cmwpCiAgICB7CiAgICAgICAgaWYgKHN0YXRpYzo6JHJlZGlyZWN0SGFuZGxlcikgewogICAgICAgICAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmMoc3RhdGljOjokcmVkaXJlY3RIYW5kbGVyLCAkdXJsKTsKICAgICAgICB9CgogICAgICAgIGhlYWRlcihzcHJpbnRmKCdMb2NhdGlvbjogJXMnLCAkdXJsKSk7CgogICAgICAgIGlmIChzdGF0aWM6OiRleGl0SGFuZGxlcikgewogICAgICAgICAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmMoc3RhdGljOjokZXhpdEhhbmRsZXIpOwogICAgICAgIH0KCiAgICAgICAgZXhpdCgxKTsKICAgIH0KCiAgICAvKioKICAgICogUmVkaXJlY3QgaGFuZGxlciB0byB3aGljaCB0aGUgcmVndWxhciByZWRpcmVjdCgpIHdpbGwgeWllbGQgdGhlIGFjdGlvbiBvZiByZWRpcmVjdGluZyB1c2Vycy4KICAgICoKICAgICogQHBhcmFtIGNhbGxhYmxlICRjYWxsYmFjawogICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0UmVkaXJlY3RIYW5kbGVyKCRjYWxsYmFjaykKICAgIHsKICAgICAgICBzZWxmOjokcmVkaXJlY3RIYW5kbGVyID0gJGNhbGxiYWNrOwogICAgfQoKICAgIC8qKgogICAgKiBFeGl0IGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgaW5zdGVhZCBvZiByZWd1bGFyIGV4aXQoKSB3aGVuIGNhbGxpbmcgVXRpbDo6cmVkaXJlY3QoKSBtZXRob2QuCiAgICAqCiAgICAqIEBwYXJhbSBjYWxsYWJsZSAkY2FsbGJhY2sKICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldEV4aXRIYW5kbGVyKCRjYWxsYmFjaykKICAgIHsKICAgICAgICBzZWxmOjokZXhpdEhhbmRsZXIgPSAkY2FsbGJhY2s7CiAgICB9CgogICAgLyoqCiAgICAqIFJldHVybnMgdGhlIEN1cnJlbnQgVVJMLgogICAgKgogICAgKiBAcGFyYW0gYm9vbCAkcmVxdWVzdFVyaSBUUlVFIHRvIHVzZSAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSwgRkFMU0UgZm9yICRfU0VSVkVSWydQSFBfU0VMRiddCiAgICAqCiAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRDdXJyZW50VXJsKCRyZXF1ZXN0VXJpID0gZmFsc2UpCiAgICB7CiAgICAgICAgJGNvbGxlY3Rpb24gPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRfU0VSVkVSKTsKCiAgICAgICAgJHByb3RvY29sID0gJ2h0dHA6Ly8nOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICRjb2xsZWN0aW9uLT5nZXQoJ0hUVFBTJykgJiYgJGNvbGxlY3Rpb24tPmdldCgnSFRUUFMnKSAhPT0gJ29mZicKICAgICAgICAgICAgKSB8fAogICAgICAgICAgICAgICAgJGNvbGxlY3Rpb24tPmdldCgnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTycpID09PSAnaHR0cHMnCiAgICAgICAgKSB7CiAgICAgICAgICAgICRwcm90b2NvbCA9ICdodHRwczovLyc7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHByb3RvY29sLgogICAgICAgICAgICAgICAkY29sbGVjdGlvbi0+Z2V0KCdIVFRQX0hPU1QnKS4KICAgICAgICAgICAgICAgJGNvbGxlY3Rpb24tPmdldCgkcmVxdWVzdFVyaSA/ICdSRVFVRVNUX1VSSScgOiAnUEhQX1NFTEYnKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Hybridauth.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aDsKCnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXFN0b3JhZ2VcU3RvcmFnZUludGVyZmFjZTsKdXNlIEh5YnJpZGF1dGhcTG9nZ2VyXExvZ2dlckludGVyZmFjZTsKdXNlIEh5YnJpZGF1dGhcTG9nZ2VyXExvZ2dlcjsKdXNlIEh5YnJpZGF1dGhcSHR0cENsaWVudFxIdHRwQ2xpZW50SW50ZXJmYWNlOwoKLyoqCiAqIEh5YnJpZGF1dGhcSHlicmlkYXV0aAogKgogKiBGb3IgZWFzZSBvZiB1c2Ugb2YgbXVsdGlwbGUgcHJvdmlkZXJzLCBIeWJyaWRhdXRoIGltcGxlbWVudHMgdGhlIGNsYXNzIEh5YnJpZGF1dGhcSHlicmlkYXV0aCwKICogYSBzb3J0IG9mIGZhY3RvcnkvZmHDp2FkZSB3aGljaCBhY3RzIGFzIGFuIHVuaWZpZWQgaW50ZXJmYWNlIG9yIGVudHJ5IHBvaW50LCBhbmQgaXQgZXhwZWN0cyBhCiAqIGNvbmZpZ3VyYXRpb24gYXJyYXkgY29udGFpbmluZyB0aGUgbGlzdCBvZiBwcm92aWRlcnMgeW91IHdhbnQgdG8gdXNlLCB0aGVpciByZXNwZWN0aXZlIGNyZWRlbnRpYWxzCiAqIGFuZCBhdXRob3JpemVkIGNhbGxiYWNrLgogKi8KY2xhc3MgSHlicmlkYXV0aAp7CiAgICAvKioKICAgICogSHlicmlkYXV0aCBjb25maWcuCiAgICAqCiAgICAqIEB2YXIgYXJyYXkKICAgICovCiAgICBwcm90ZWN0ZWQgJGNvbmZpZzsKCiAgICAvKioKICAgICogU3RvcmFnZS4KICAgICoKICAgICogQHZhciBTdG9yYWdlSW50ZXJmYWNlCiAgICAqLwogICAgcHJvdGVjdGVkICRzdG9yYWdlOwoKICAgIC8qKgogICAgKiBIdHRwQ2xpZW50LgogICAgKgogICAgKiBAdmFyIEh0dHBDbGllbnRJbnRlcmZhY2UKICAgICovCiAgICBwcm90ZWN0ZWQgJGh0dHBDbGllbnQ7CgogICAgLyoqCiAgICAqIExvZ2dlci4KICAgICoKICAgICogQHZhciBMb2dnZXJJbnRlcmZhY2UKICAgICovCiAgICBwcm90ZWN0ZWQgJGxvZ2dlcjsKCiAgICAvKioKICAgICogQHBhcmFtIGFycmF5fHN0cmluZyAgICAgICAgJGNvbmZpZyAgICAgQXJyYXkgd2l0aCBjb25maWd1cmF0aW9uIG9yIFBhdGggdG8gUEhQIGZpbGUgdGhhdCB3aWxsIHJldHVybiBhcnJheQogICAgKiBAcGFyYW0gSHR0cENsaWVudEludGVyZmFjZSAkaHR0cENsaWVudAogICAgKiBAcGFyYW0gU3RvcmFnZUludGVyZmFjZSAgICAkc3RvcmFnZQogICAgKiBAcGFyYW0gTG9nZ2VySW50ZXJmYWNlICAgICAkbG9nZ2VyCiAgICAqCiAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KAogICAgICAgICRjb25maWcsCiAgICAgICAgSHR0cENsaWVudEludGVyZmFjZSAkaHR0cENsaWVudCA9IG51bGwsCiAgICAgICAgU3RvcmFnZUludGVyZmFjZSAkc3RvcmFnZSA9IG51bGwsCiAgICAgICAgTG9nZ2VySW50ZXJmYWNlICRsb2dnZXIgPSBudWxsCiAgICApIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRjb25maWcpICYmIGZpbGVfZXhpc3RzKCRjb25maWcpKSB7CiAgICAgICAgICAgICRjb25maWcgPSBpbmNsdWRlICRjb25maWc7CiAgICAgICAgfSBlbHNlaWYgKCEgaXNfYXJyYXkoJGNvbmZpZykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSHlicmlkYXV0aCBjb25maWcgZG9lcyBub3QgZXhpc3Qgb24gdGhlIGdpdmVuIHBhdGguJyk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+Y29uZmlnID0gJGNvbmZpZyArIFsKICAgICAgICAgICAgJ2RlYnVnX21vZGUnICAgPT4gTG9nZ2VyOjpOT05FLAogICAgICAgICAgICAnZGVidWdfZmlsZScgICA9PiAnJywKICAgICAgICAgICAgJ2N1cmxfb3B0aW9ucycgPT4gbnVsbCwKICAgICAgICAgICAgJ3Byb3ZpZGVycycgICAgPT4gW10KICAgICAgICBdOwogICAgICAgICR0aGlzLT5zdG9yYWdlID0gJHN0b3JhZ2U7CiAgICAgICAgJHRoaXMtPmxvZ2dlciA9ICRsb2dnZXI7CiAgICAgICAgJHRoaXMtPmh0dHBDbGllbnQgPSAkaHR0cENsaWVudDsKICAgIH0KCiAgICAvKioKICAgICogSW5zdGFudGlhdGUgdGhlIGdpdmVuIHByb3ZpZGVyIGFuZCBhdXRoZW50aWNhdGlvbiBvciBhdXRob3JpemF0aW9uIHByb3RvY29sLgogICAgKgogICAgKiBJZiBub3QgYXV0aGVudGljYXRlZCB5ZXQsIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgcHJvdmlkZXIncyBzaXRlIGZvcgogICAgKiBhdXRoZW50aWNhdGlvbi9hdXRob3Jpc2F0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCBzaW1wbHkgcmV0dXJuIGFuIGluc3RhbmNlIG9mCiAgICAqIHByb3ZpZGVyJ3MgYWRhcHRlci4KICAgICoKICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBhZGFwdGVyJ3MgbmFtZSAoY2FzZSBpbnNlbnNpdGl2ZSkKICAgICoKICAgICogQHJldHVybiBcSHlicmlkYXV0aFxBZGFwdGVyXEFkYXB0ZXJJbnRlcmZhY2UKICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICogQHRocm93cyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCRuYW1lKQogICAgewogICAgICAgICRhZGFwdGVyID0gJHRoaXMtPmdldEFkYXB0ZXIoJG5hbWUpOwoKICAgICAgICAkYWRhcHRlci0+YXV0aGVudGljYXRlKCk7CgogICAgICAgIHJldHVybiAkYWRhcHRlcjsKICAgIH0KCiAgICAvKioKICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBhIHByb3ZpZGVyJ3MgYWRhcHRlciBieSBuYW1lCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgYWRhcHRlcidzIG5hbWUgKGNhc2UgaW5zZW5zaXRpdmUpCiAgICAqCiAgICAqIEByZXR1cm4gXEh5YnJpZGF1dGhcQWRhcHRlclxBZGFwdGVySW50ZXJmYWNlCiAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldEFkYXB0ZXIoJG5hbWUpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9ICR0aGlzLT5nZXRQcm92aWRlckNvbmZpZygkbmFtZSk7CgogICAgICAgICRhZGFwdGVyID0gaXNzZXQoJGNvbmZpZ1snYWRhcHRlciddKSA/ICRjb25maWdbJ2FkYXB0ZXInXSA6IHNwcmludGYoJ0h5YnJpZGF1dGhcXFByb3ZpZGVyXFwlcycsICRuYW1lKTsKCiAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoJGFkYXB0ZXIpKSB7CiAgICAgICAgICAgICRhZGFwdGVyID0gbnVsbDsKICAgICAgICAgICAgJGZzID0gbmV3IFxGaWxlc3lzdGVtSXRlcmF0b3IoX19ESVJfXyAuICcvUHJvdmlkZXIvJyk7CiAgICAgICAgICAgIC8qKiBAdmFyIFxTcGxGaWxlSW5mbyAkZmlsZSAqLwogICAgICAgICAgICBmb3JlYWNoICgkZnMgYXMgJGZpbGUpIHsKICAgICAgICAgICAgICAgIGlmICghJGZpbGUtPmlzRGlyKCkpIHsKICAgICAgICAgICAgICAgICAgICAkcHJvdmlkZXIgPSBzdHJ0b2soJGZpbGUtPmdldEZpbGVuYW1lKCksICcuJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRuYW1lID09PSBtYl9zdHJ0b2xvd2VyKCRwcm92aWRlcikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFkYXB0ZXIgPSBzcHJpbnRmKCdIeWJyaWRhdXRoXFxQcm92aWRlclxcJXMnLCAkcHJvdmlkZXIpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRhZGFwdGVyID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdVbmtub3duIFByb3ZpZGVyLicpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbmV3ICRhZGFwdGVyKCRjb25maWcsICR0aGlzLT5odHRwQ2xpZW50LCAkdGhpcy0+c3RvcmFnZSwgJHRoaXMtPmxvZ2dlcik7CiAgICB9CgogICAgLyoqCiAgICAqIEdldCBwcm92aWRlciBjb25maWcgYnkgbmFtZS4KICAgICoKICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBhZGFwdGVyJ3MgbmFtZSAoY2FzZSBpbnNlbnNpdGl2ZSkKICAgICoKICAgICogQHRocm93cyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24KICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICoKICAgICogQHJldHVybiBhcnJheQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcm92aWRlckNvbmZpZygkbmFtZSkKICAgIHsKICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5hbWUpOwoKICAgICAgICAkcHJvdmlkZXJzQ29uZmlnID0gYXJyYXlfY2hhbmdlX2tleV9jYXNlKCR0aGlzLT5jb25maWdbJ3Byb3ZpZGVycyddLCBDQVNFX0xPV0VSKTsKCiAgICAgICAgaWYgKCEgaXNzZXQoJHByb3ZpZGVyc0NvbmZpZ1skbmFtZV0pKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ1Vua25vd24gUHJvdmlkZXIuJyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoISAkcHJvdmlkZXJzQ29uZmlnWyRuYW1lXVsnZW5hYmxlZCddKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24oJ0Rpc2FibGVkIFByb3ZpZGVyLicpOwogICAgICAgIH0KCiAgICAgICAgJGNvbmZpZyA9ICRwcm92aWRlcnNDb25maWdbJG5hbWVdOwoKICAgICAgICBpZiAoISBpc3NldCgkY29uZmlnWydjYWxsYmFjayddKSAmJiBpc3NldCgkdGhpcy0+Y29uZmlnWydjYWxsYmFjayddKSkgewogICAgICAgICAgICAkY29uZmlnWydjYWxsYmFjayddID0gJHRoaXMtPmNvbmZpZ1snY2FsbGJhY2snXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkY29uZmlnOwogICAgfQoKICAgIC8qKgogICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBvZiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCB3aXRoIGEgcHJvdmlkZXIKICAgICoKICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBhZGFwdGVyJ3MgbmFtZSAoY2FzZSBpbnNlbnNpdGl2ZSkKICAgICoKICAgICogQHJldHVybiBib29sZWFuCiAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlzQ29ubmVjdGVkV2l0aCgkbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldEFkYXB0ZXIoJG5hbWUpLT5pc0Nvbm5lY3RlZCgpOwogICAgfQoKICAgIC8qKgogICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBlbmFibGVkIGFkYXB0ZXJzIG5hbWVzCiAgICAqCiAgICAqIEByZXR1cm4gYXJyYXkKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJvdmlkZXJzKCkKICAgIHsKICAgICAgICAkcHJvdmlkZXJzID0gW107CgogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5jb25maWdbJ3Byb3ZpZGVycyddIGFzICRuYW1lID0+ICRjb25maWcpIHsKICAgICAgICAgICAgaWYgKCRjb25maWdbJ2VuYWJsZWQnXSkgewogICAgICAgICAgICAgICAgJHByb3ZpZGVyc1tdID0gJG5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcHJvdmlkZXJzOwogICAgfQoKICAgIC8qKgogICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBjdXJyZW50bHkgY29ubmVjdGVkIGFkYXB0ZXJzIG5hbWVzCiAgICAqCiAgICAqIEByZXR1cm4gYXJyYXkKICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICogQHRocm93cyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29ubmVjdGVkUHJvdmlkZXJzKCkKICAgIHsKICAgICAgICAkcHJvdmlkZXJzID0gW107CgogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5nZXRQcm92aWRlcnMoKSBhcyAkbmFtZSkgewogICAgICAgICAgICBpZiAoJHRoaXMtPmlzQ29ubmVjdGVkV2l0aCgkbmFtZSkpIHsKICAgICAgICAgICAgICAgICAkcHJvdmlkZXJzW10gPSAkbmFtZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRwcm92aWRlcnM7CiAgICB9CgogICAgLyoqCiAgICAqIFJldHVybnMgYSBsaXN0IG9mIG5ldyBpbnN0YW5jZXMgb2YgY3VycmVudGx5IGNvbm5lY3RlZCBhZGFwdGVycwogICAgKgogICAgKiBAcmV0dXJuIFxIeWJyaWRhdXRoXEFkYXB0ZXJcQWRhcHRlckludGVyZmFjZVtdCiAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAqIEB0aHJvd3MgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldENvbm5lY3RlZEFkYXB0ZXJzKCkKICAgIHsKICAgICAgICAkYWRhcHRlcnMgPSBbXTsKCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmdldFByb3ZpZGVycygpIGFzICRuYW1lKSB7CiAgICAgICAgICAgICRhZGFwdGVyID0gJHRoaXMtPmdldEFkYXB0ZXIoJG5hbWUpOwoKICAgICAgICAgICAgaWYgKCRhZGFwdGVyLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgICAgICAgICAkYWRhcHRlcnNbJG5hbWVdID0gJGFkYXB0ZXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkYWRhcHRlcnM7CiAgICB9CgogICAgLyoqCiAgICAqIERpc2Nvbm5lY3QgYWxsIGN1cnJlbnRseSBjb25uZWN0ZWQgYWRhcHRlcnMgYXQgb25jZQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNjb25uZWN0QWxsQWRhcHRlcnMoKQogICAgewogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5nZXRQcm92aWRlcnMoKSBhcyAkbmFtZSkgewogICAgICAgICAgICAkYWRhcHRlciA9ICR0aGlzLT5nZXRBZGFwdGVyKCRuYW1lKTsKCiAgICAgICAgICAgIGlmICgkYWRhcHRlci0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICAgICAgICAgJGFkYXB0ZXItPmRpc2Nvbm5lY3QoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[NDAzLg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Logger/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Logger/Logger.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxMb2dnZXI7Cgp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cUnVudGltZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbjsKCi8qKgogKiBEZWJ1Z2dpbmcgYW5kIExvZ2dpbmcgdXRpbGl0eS4KICovCmNsYXNzIExvZ2dlciBpbXBsZW1lbnRzIExvZ2dlckludGVyZmFjZQp7CiAgICBjb25zdCBOT05FICA9ICdub25lJzsgIC8vIHR1cm4gbG9nZ2luZyBvZmYKICAgIGNvbnN0IERFQlVHID0gJ2RlYnVnJzsgLy8gZGVidWcsIGluZm8gYW5kIGVycm9yIG1lc3NhZ2VzCiAgICBjb25zdCBJTkZPICA9ICdpbmZvJzsgIC8vIGluZm8gYW5kIGVycm9yIG1lc3NhZ2VzCiAgICBjb25zdCBFUlJPUiA9ICdlcnJvcic7IC8vIG9ubHkgZXJyb3IgbWVzc2FnZXMKCiAgICAvKioKICAgICAqIERlYnVnIGxldmVsLgogICAgICoKICAgICAqIE9uZSBvZiBMb2dnZXI6Ok5PTkUsIExvZ2dlcjo6REVCVUcsIExvZ2dlcjo6SU5GTywgTG9nZ2VyOjpFUlJPUgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByb3RlY3RlZCAkbGV2ZWw7CgogICAgLyoqCiAgICAgKiBQYXRoIHRvIGZpbGUgd3JpdGVhYmxlIGJ5IHRoZSB3ZWIgc2VydmVyLiBSZXF1aXJlZCBpZiAkdGhpcy0+bGV2ZWwgIT09IExvZ2dlcjo6Tk9ORS4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgJGZpbGU7CgogICAgLyoqCiAgICAgKiBAcGFyYW0gYm9vbHxzdHJpbmcgJGxldmVsIE9uZSBvZiBMb2dnZXI6Ok5PTkUsIExvZ2dlcjo6REVCVUcsIExvZ2dlcjo6SU5GTywgTG9nZ2VyOjpFUlJPUgogICAgICogQHBhcmFtIHN0cmluZyAgICAgICRmaWxlICBGaWxlIHdoZXJlIHRvIHdyaXRlIG1lc3NhZ2VzCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgUnVudGltZUV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGxldmVsLCAkZmlsZSkKICAgIHsKICAgICAgICAkdGhpcy0+bGV2ZWwgPSBzZWxmOjpOT05FOwoKICAgICAgICBpZiAoJGxldmVsICYmICRsZXZlbCAhPT0gc2VsZjo6Tk9ORSkgewogICAgICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgkZmlsZSk7CgogICAgICAgICAgICAkdGhpcy0+bGV2ZWwgPSAkbGV2ZWwgPT09IHRydWUgPyBMb2dnZXI6OkRFQlVHIDogICRsZXZlbDsKICAgICAgICAgICAgJHRoaXMtPmZpbGUgPSAkZmlsZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgUnVudGltZUV4Y2VwdGlvbgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGl6ZSgkZmlsZSkKICAgIHsKICAgICAgICBpZiAoISRmaWxlKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0xvZyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQuJyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCRmaWxlKSAmJiAhdG91Y2goJGZpbGUpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKHNwcmludGYoJ0xvZyBmaWxlICVzIGNhbiBub3QgYmUgY3JlYXRlZC4nLCAkZmlsZSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFpc193cml0YWJsZSgkZmlsZSkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oc3ByaW50ZignTG9nIGZpbGUgJXMgaXMgbm90IHdyaXRlYWJsZS4nLCAkZmlsZSkpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpbmhlcml0ZG9jCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpbmZvKCRtZXNzYWdlLCBhcnJheSAkY29udGV4dCA9IFtdKQogICAgewogICAgICAgIGlmICghaW5fYXJyYXkoJHRoaXMtPmxldmVsLCBbc2VsZjo6REVCVUcsIHNlbGY6OklORk9dKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+bG9nKHNlbGY6OklORk8sICRtZXNzYWdlLCAkY29udGV4dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW5oZXJpdGRvYwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVidWcoJG1lc3NhZ2UsIGFycmF5ICRjb250ZXh0ID0gW10pCiAgICB7CiAgICAgICAgaWYgKCFpbl9hcnJheSgkdGhpcy0+bGV2ZWwsIFtzZWxmOjpERUJVR10pKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5sb2coc2VsZjo6REVCVUcsICRtZXNzYWdlLCAkY29udGV4dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW5oZXJpdGRvYwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZXJyb3IoJG1lc3NhZ2UsIGFycmF5ICRjb250ZXh0ID0gW10pCiAgICB7CiAgICAgICAgaWYgKCFpbl9hcnJheSgkdGhpcy0+bGV2ZWwsIFtzZWxmOjpERUJVRywgc2VsZjo6SU5GTywgc2VsZjo6RVJST1JdKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+bG9nKHNlbGY6OkVSUk9SLCAkbWVzc2FnZSwgJGNvbnRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogQGluaGVyaXRkb2MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvZygkbGV2ZWwsICRtZXNzYWdlLCBhcnJheSAkY29udGV4dCA9IFtdKQogICAgewogICAgICAgICRkYXRldGltZSA9IG5ldyBcRGF0ZVRpbWUoKTsKICAgICAgICAkZGF0ZXRpbWUgPSAkZGF0ZXRpbWUtPmZvcm1hdChEQVRFX0FUT00pOwoKICAgICAgICAkY29udGVudCA9IHNwcmludGYoJyVzIC0tICVzIC0tICVzIC0tICVzJywgJGxldmVsLCAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwgJGRhdGV0aW1lLCAkbWVzc2FnZSk7CiAgICAgICAgJGNvbnRlbnQgLj0gKCRjb250ZXh0ID8gIlxuIi5wcmludF9yKCRjb250ZXh0LCB0cnVlKSA6ICcnKTsKICAgICAgICAkY29udGVudCAuPSAiXG4iOwoKICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkdGhpcy0+ZmlsZSwgJGNvbnRlbnQsIEZJTEVfQVBQRU5EKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Logger/LoggerInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxMb2dnZXI7CgovKioKICogTG9nZ2VyIGludGVyZmFjZSwgZm9yd2FyZC1jb21wYXRpYmxlIHdpdGggUFNSLTMuCiAqLwppbnRlcmZhY2UgTG9nZ2VySW50ZXJmYWNlCnsKICAgIC8qKgogICAgICogSW50ZXJlc3RpbmcgZXZlbnRzLgogICAgICoKICAgICAqIEV4YW1wbGU6IFVzZXIgbG9ncyBpbiwgU1FMIGxvZ3MuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbWVzc2FnZQogICAgICogQHBhcmFtIGFycmF5ICAkY29udGV4dAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5mbygkbWVzc2FnZSwgYXJyYXkgJGNvbnRleHQgPSBhcnJheSgpKTsKCiAgICAvKioKICAgICAqIERldGFpbGVkIGRlYnVnIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UKICAgICAqIEBwYXJhbSBhcnJheSAgJGNvbnRleHQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlYnVnKCRtZXNzYWdlLCBhcnJheSAkY29udGV4dCA9IGFycmF5KCkpOwoKICAgIC8qKgogICAgICogUnVudGltZSBlcnJvcnMgdGhhdCBkbyBub3QgcmVxdWlyZSBpbW1lZGlhdGUgYWN0aW9uIGJ1dCBzaG91bGQgdHlwaWNhbGx5CiAgICAgKiBiZSBsb2dnZWQgYW5kIG1vbml0b3JlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlCiAgICAgKiBAcGFyYW0gYXJyYXkgICRjb250ZXh0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBlcnJvcigkbWVzc2FnZSwgYXJyYXkgJGNvbnRleHQgPSBhcnJheSgpKTsKCiAgICAvKioKICAgICAqIExvZ3Mgd2l0aCBhbiBhcmJpdHJhcnkgbGV2ZWwuCiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICAkbGV2ZWwKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UKICAgICAqIEBwYXJhbSBhcnJheSAgJGNvbnRleHQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvZygkbGV2ZWwsICRtZXNzYWdlLCBhcnJheSAkY29udGV4dCA9IGFycmF5KCkpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Logger/Psr3LoggerWrapper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxMb2dnZXI7Cgp1c2UgUHNyXExvZ1xMb2dnZXJBd2FyZVRyYWl0OwoKLyoqCiAqIFdyYXBwZXIgZm9yIFBTUjMgbG9nZ2VyLgogKi8KY2xhc3MgUHNyM0xvZ2dlcldyYXBwZXIgaW1wbGVtZW50cyBMb2dnZXJJbnRlcmZhY2UKewogICAgdXNlIExvZ2dlckF3YXJlVHJhaXQ7CgogICAgLyoqCiAgICAgKiBAaW5oZXJpdGRvYwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5mbygkbWVzc2FnZSwgYXJyYXkgJGNvbnRleHQgPSBbXSkKICAgIHsKICAgICAgICAkdGhpcy0+bG9nZ2VyLT5pbmZvKCRtZXNzYWdlLCAkY29udGV4dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW5oZXJpdGRvYwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVidWcoJG1lc3NhZ2UsIGFycmF5ICRjb250ZXh0ID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPmxvZ2dlci0+ZGVidWcoJG1lc3NhZ2UsICRjb250ZXh0KTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbmhlcml0ZG9jCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBlcnJvcigkbWVzc2FnZSwgYXJyYXkgJGNvbnRleHQgPSBbXSkKICAgIHsKICAgICAgICAkdGhpcy0+bG9nZ2VyLT5lcnJvcigkbWVzc2FnZSwgJGNvbnRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogQGluaGVyaXRkb2MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvZygkbGV2ZWwsICRtZXNzYWdlLCBhcnJheSAkY29udGV4dCA9IFtdKQogICAgewogICAgICAgICR0aGlzLT5sb2dnZXItPmxvZygkbGV2ZWwsICRtZXNzYWdlLCAkY29udGV4dCk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Amazon.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE5IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEFtYXpvbiBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEFtYXpvbiBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljICRzY29wZSA9ICdwcm9maWxlJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLmFtYXpvbi5jb20vJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly93d3cuYW1hem9uLmNvbS9hcC9vYSc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9hcGkuYW1hem9uLmNvbS9hdXRoL28yL3Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGV2ZWxvcGVyLmFtYXpvbi5jb20vZG9jcy9sb2dpbi13aXRoLWFtYXpvbi9kb2N1bWVudGF0aW9uLW92ZXJ2aWV3Lmh0bWwnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCd1c2VyL3Byb2ZpbGUnKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygndXNlcl9pZCcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgID0gJGRhdGEtPmdldCgndXNlcl9pZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCAgICAgICA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/AOLOpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT3BlbklEOwoKLyoqCiAqIEFPTCBPcGVuSUQgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEFPTE9wZW5JRCBleHRlbmRzIE9wZW5JRAp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkb3BlbmlkSWRlbnRpZmllciA9ICdodHRwOi8vb3BlbmlkLmFvbC5jb20vJzsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Authentiq.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEF1dGhlbnRpcSBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEF1dGhlbnRpcSBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyAkc2NvcGUgPSAnYXE6bmFtZSBlbWFpbH5ycyBhcTpwdXNoIG9wZW5pZCc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9jb25uZWN0LmF1dGhlbnRpcS5pby8nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9jb25uZWN0LmF1dGhlbnRpcS5pby9hdXRob3JpemUnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2Nvbm5lY3QuYXV0aGVudGlxLmlvL3Rva2VuJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpRG9jdW1lbnRhdGlvbiA9ICdodHRwOi8vZGV2ZWxvcGVycy5hdXRoZW50aXEuaW8vJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpbml0aWFsaXplKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OmluaXRpYWxpemUoKTsKCiAgICAgICAgJHRoaXMtPkF1dGhvcml6ZVVybFBhcmFtZXRlcnMgKz0gWwogICAgICAgICAgICAncHJvbXB0JyA9PiAnY29uc2VudCcKICAgICAgICBdOwoKICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZUhlYWRlcnMgPSBbCiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJyA9PiAnQmFzaWMgJyAuIGJhc2U2NF9lbmNvZGUoJHRoaXMtPmNsaWVudElkIC4gICc6JyAuICR0aGlzLT5jbGllbnRTZWNyZXQpCiAgICAgICAgXTsKCiAgICAgICAgJHRoaXMtPnRva2VuUmVmcmVzaEhlYWRlcnMgPSBbCiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJyA9PiAnQmFzaWMgJyAuIGJhc2U2NF9lbmNvZGUoJHRoaXMtPmNsaWVudElkIC4gICc6JyAuICR0aGlzLT5jbGllbnRTZWNyZXQpCiAgICAgICAgXTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKgogICAgKiBEaXNhYmxlIGZ1bmN0aW9uYWxpdHkgYXMgQXV0aGVudGlxIFByb3ZpZGVyIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIHlldAogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZWZyZXNoQWNjZXNzVG9rZW4oJHBhcmFtZXRlcnMgPSBbXSkKICAgIHsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ3VzZXJpbmZvJyk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISRkYXRhLT5leGlzdHMoJ3N1YicpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgID0gJGRhdGEtPmdldCgnc3ViJyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5maXJzdE5hbWUgICA9ICRkYXRhLT5nZXQoJ2dpdmVuX25hbWUnKTsKICAgICAgICAvLyAkdXNlclByb2ZpbGUtPm1pZGRsZU5hbWUgID0gJGRhdGEtPmdldCgnbWlkZGxlX25hbWUnKTsgLy8gbm90IHN1cHBvcnRlZAogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgICAgPSAkZGF0YS0+Z2V0KCdmYW1pbHlfbmFtZScpOwoKICAgICAgICBpZiAoIWVtcHR5KCR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUpKSB7CiAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSBqb2luKCcgJywgYXJyYXkoJHVzZXJQcm9maWxlLT5maXJzdE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJHVzZXJQcm9maWxlLT5taWRkbGVOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUpKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgICAgICAgPSAkZGF0YS0+Z2V0KCdlbWFpbCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWxWZXJpZmllZCA9ICRkYXRhLT5nZXQoJ2VtYWlsX3ZlcmlmaWVkJykgPyAkdXNlclByb2ZpbGUtPmVtYWlsIDogJyc7CgogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvbmUgICAgICAgPSAkZGF0YS0+Z2V0KCdwaG9uZScpOwogICAgICAgIC8vICR1c2VyUHJvZmlsZS0+cGhvbmVWZXJpZmllZCA9ICRkYXRhLT5nZXQoJ3Bob25lX3ZlcmlmaWVkJykgPyAkdXNlclByb2ZpbGUtPnBob25lIDogJyc7IC8vIG5vdCBzdXBwb3J0ZWQKCiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICA9ICRkYXRhLT5nZXQoJ3Byb2ZpbGUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPndlYlNpdGVVUkwgID0gJGRhdGEtPmdldCgnd2Vic2l0ZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdwaWN0dXJlJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5nZW5kZXIgICAgICA9ICRkYXRhLT5nZXQoJ2dlbmRlcicpOwogICAgICAgICR1c2VyUHJvZmlsZS0+YWRkcmVzcyAgICAgPSAkZGF0YS0+ZmlsdGVyKCdhZGRyZXNzJyktPmdldCgnc3RyZWV0X2FkZHJlc3MnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmNpdHkgICAgICAgID0gJGRhdGEtPmZpbHRlcignYWRkcmVzcycpLT5nZXQoJ2xvY2FsaXR5Jyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5jb3VudHJ5ICAgICA9ICRkYXRhLT5maWx0ZXIoJ2FkZHJlc3MnKS0+Z2V0KCdjb3VudHJ5Jyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5yZWdpb24gICAgICA9ICRkYXRhLT5maWx0ZXIoJ2FkZHJlc3MnKS0+Z2V0KCdyZWdpb24nKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnppcCAgICAgICAgID0gJGRhdGEtPmZpbHRlcignYWRkcmVzcycpLT5nZXQoJ3Bvc3RhbF9jb2RlJyk7CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/BitBucket.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEJpdEJ1Y2tldCBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEJpdEJ1Y2tldCBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyAkc2NvcGUgPSAnZW1haWwnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLmJpdGJ1Y2tldC5vcmcvMi4wLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2JpdGJ1Y2tldC5vcmcvc2l0ZS9vYXV0aDIvYXV0aG9yaXplJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9iaXRidWNrZXQub3JnL3NpdGUvb2F1dGgyL2FjY2Vzc190b2tlbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS9iaXRidWNrZXQvY29uY2VwdHMvb2F1dGgyLmh0bWwnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcicpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygndXVpZCcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgID0gJGRhdGEtPmdldCgndXVpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCdkaXNwbGF5X25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsICAgICAgID0gJGRhdGEtPmdldCgnZW1haWwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPndlYlNpdGVVUkwgID0gJGRhdGEtPmdldCgnd2Vic2l0ZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cmVnaW9uICAgICAgPSAkZGF0YS0+Z2V0KCdsb2NhdGlvbicpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA/OiAkZGF0YS0+Z2V0KCd1c2VybmFtZScpOwoKICAgICAgICBpZiAoZW1wdHkoJHVzZXJQcm9maWxlLT5lbWFpbCkgJiYgc3RycG9zKCR0aGlzLT5zY29wZSwgJ2VtYWlsJykgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUgPSAkdGhpcy0+cmVxdWVzdFVzZXJFbWFpbCgkdXNlclByb2ZpbGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHVzZXIgZW1haWwgaXMgbm90IG1hbmRhdG9yeSBzbyBrZWVwIGl0IHF1aXRlCiAgICAgICAgICAgIGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9CgogICAgLyoqCiAgICAqIFJlcXVlc3QgdXNlciBlbWFpbAogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZXF1ZXN0VXNlckVtYWlsKCR1c2VyUHJvZmlsZSkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlci9lbWFpbHMnKTsKCiAgICAgICAgZm9yZWFjaCAoJHJlc3BvbnNlLT52YWx1ZXMgYXMgJGlkeCA9PiAkaXRlbSkgewogICAgICAgICAgICBpZiAoISBlbXB0eSgkaXRlbS0+aXNfcHJpbWFyeSkgJiYgJGl0ZW0tPmlzX3ByaW1hcnkgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCA9ICRpdGVtLT5lbWFpbDsKCiAgICAgICAgICAgICAgICBpZiAoISBlbXB0eSgkaXRlbS0+aXNfY29uZmlybWVkKSAmJiAkaXRlbS0+aXNfY29uZmlybWVkID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSAkdXNlclByb2ZpbGUtPmVtYWlsOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Blizzard.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEJsaXp6YXJkIEJhdHRsZS5uZXQgT0F1dGgyIHByb3ZpZGVyIGFkYXB0ZXIuCiAqLwpjbGFzcyBCbGl6emFyZCBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljICRzY29wZSA9ICcnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly91cy5iYXR0bGUubmV0Lyc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vdXMuYmF0dGxlLm5ldC9vYXV0aC9hdXRob3JpemUnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vdXMuYmF0dGxlLm5ldC9vYXV0aC90b2tlbic7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpRG9jdW1lbnRhdGlvbiA9ICdodHRwczovL2RldmVsb3AuYmF0dGxlLm5ldC9kb2N1bWVudGF0aW9uJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnb2F1dGgvdXNlcmluZm8nKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygnaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkYXRhLT5nZXQoJ2JhdHRsZXRhZycpID86ICRkYXRhLT5nZXQoJ2xvZ2luJyk7CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/BlizzardAPAC.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEJsaXp6YXJkIFVTL1NFQSBCYXR0bGUubmV0IE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgQmxpenphcmRBUEFDIGV4dGVuZHMgQmxpenphcmQKewogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2FwYWMuYmF0dGxlLm5ldC8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2FwYWMuYmF0dGxlLm5ldC9vYXV0aC9hdXRob3JpemUnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vYXBhYy5iYXR0bGUubmV0L29hdXRoL3Rva2VuJzsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/BlizzardEU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEJsaXp6YXJkIEVVIEJhdHRsZS5uZXQgT0F1dGgyIHByb3ZpZGVyIGFkYXB0ZXIuCiAqLwpjbGFzcyBCbGl6emFyZEVVIGV4dGVuZHMgQmxpenphcmQKewogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2V1LmJhdHRsZS5uZXQvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9ldS5iYXR0bGUubmV0L29hdXRoL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9ldS5iYXR0bGUubmV0L29hdXRoL3Rva2VuJzsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Discord.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIERpc2NvcmQgT0F1dGgyIHByb3ZpZGVyIGFkYXB0ZXIuCiAqLwpjbGFzcyBEaXNjb3JkIGV4dGVuZHMgT0F1dGgyCnsKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljICRzY29wZSA9ICdpZGVudGlmeSBlbWFpbCc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9kaXNjb3JkYXBwLmNvbS9hcGkvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vZGlzY29yZGFwcC5jb20vYXBpL29hdXRoMi9hdXRob3JpemUnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9vYXV0aDIvdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGlzY29yZGFwcC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDInOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcnMvQG1lJyk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISAkZGF0YS0+ZXhpc3RzKCdpZCcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBNYWtlcyBkaXNwbGF5IG5hbWUgbW9yZSB1bmlxdWUuCiAgICAgICAgJGRpc3BsYXlOYW1lID0gJGRhdGEtPmdldCgndXNlcm5hbWUnKSA/OiAkZGF0YS0+Z2V0KCdsb2dpbicpOwogICAgICAgIGlmICgkZGlzY3JpbWluYXRvciA9ICRkYXRhLT5nZXQoJ2Rpc2NyaW1pbmF0b3InKSkgewogICAgICAgICAgICAkZGlzcGxheU5hbWUgLj0gIiN7JGRpc2NyaW1pbmF0b3J9IjsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkaXNwbGF5TmFtZTsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsICAgICAgID0gJGRhdGEtPmdldCgnZW1haWwnKTsKCiAgICAgICAgaWYgKCRkYXRhLT5nZXQoJ3ZlcmlmaWVkJykpIHsKICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbFZlcmlmaWVkID0gJGRhdGEtPmdldCgnZW1haWwnKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZGF0YS0+Z2V0KCdhdmF0YXInKSkgewogICAgICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMID0gJ2h0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2F2YXRhcnMvJyAuICRkYXRhLT5nZXQoJ2lkJykgLiAnLycgLiAkZGF0YS0+Z2V0KCdhdmF0YXInKSAuICcucG5nJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Disqus.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIERpc3F1cyBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIERpc3F1cyBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkc2NvcGUgPSAncmVhZCxlbWFpbCc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9kaXNxdXMuY29tL2FwaS8zLjAvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vZGlzcXVzLmNvbS9hcGkvb2F1dGgvMi4wL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vZGlzcXVzLmNvbS9hcGkvb2F1dGgvMi4wL2FjY2Vzc190b2tlbi8nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGlzcXVzLmNvbS9hcGkvZG9jcy9hdXRoLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCiAgICB7CiAgICAgICAgcGFyZW50Ojppbml0aWFsaXplKCk7CgogICAgICAgICR0aGlzLT5hcGlSZXF1ZXN0UGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2FwaV9rZXknID0+ICR0aGlzLT5jbGllbnRJZCwgJ2FwaV9zZWNyZXQnID0+ICR0aGlzLT5jbGllbnRTZWNyZXQKICAgICAgICBdOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcnMvZGV0YWlscycpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmZpbHRlcigncmVzcG9uc2UnKS0+ZXhpc3RzKCdpZCcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkZGF0YSA9ICRkYXRhLT5maWx0ZXIoJ3Jlc3BvbnNlJyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9ICRkYXRhLT5nZXQoJ2JpbycpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlVXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCAgICAgICA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5yZWdpb24gICAgICA9ICRkYXRhLT5nZXQoJ2xvY2F0aW9uJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9ICRkYXRhLT5nZXQoJ2Fib3V0Jyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+ZmlsdGVyKCdhdmF0YXInKS0+Z2V0KCdwZXJtYWxpbmsnKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPzogJGRhdGEtPmdldCgndXNlcm5hbWUnKTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Dribbble.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIERyaWJiYmxlIE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgRHJpYmJibGUgZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuZHJpYmJibGUuY29tL3YyLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2RyaWJiYmxlLmNvbS9vYXV0aC9hdXRob3JpemUnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2RyaWJiYmxlLmNvbS9vYXV0aC90b2tlbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cDovL2RldmVsb3Blci5kcmliYmJsZS5jb20vdjIvb2F1dGgvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ3VzZXInKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghICRkYXRhLT5leGlzdHMoJ2lkJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCAgPSAkZGF0YS0+Z2V0KCdodG1sX3VybCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdhdmF0YXJfdXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9ICRkYXRhLT5nZXQoJ2JpbycpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cmVnaW9uICAgICAgPSAkZGF0YS0+Z2V0KCdsb2NhdGlvbicpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID86ICRkYXRhLT5nZXQoJ3VzZXJuYW1lJyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+d2ViU2l0ZVVSTCAgPSAkZGF0YS0+ZmlsdGVyKCdsaW5rcycpLT5nZXQoJ3dlYicpOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Facebook.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEZhY2Vib29rIE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKgogKiBFeGFtcGxlOgogKgogKiAgICRjb25maWcgPSBbCiAqICAgICAgICdjYWxsYmFjaycgPT4gSHlicmlkYXV0aFxIdHRwQ2xpZW50XFV0aWw6OmdldEN1cnJlbnRVcmwoKSwKICogICAgICAgJ2tleXMnICAgICA9PiBbICdpZCcgPT4gJycsICdzZWNyZXQnID0+ICcnIF0sCiAqICAgICAgICdzY29wZScgICAgPT4gJ2VtYWlsLCB1c2VyX3N0YXR1cywgdXNlcl9wb3N0cycKICogICBdOwogKgogKiAgICRhZGFwdGVyID0gbmV3IEh5YnJpZGF1dGhcUHJvdmlkZXJcRmFjZWJvb2soICRjb25maWcgKTsKICoKICogICB0cnkgewogKiAgICAgICAkYWRhcHRlci0+YXV0aGVudGljYXRlKCk7CiAqCiAqICAgICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwogKiAgICAgICAkdG9rZW5zID0gJGFkYXB0ZXItPmdldEFjY2Vzc1Rva2VuKCk7CiAqICAgICAgICRyZXNwb25zZSA9ICRhZGFwdGVyLT5zZXRVc2VyU3RhdHVzKCJIeWJyaWRhdXRoIHRlc3QgbWVzc2FnZS4uIik7CiAqICAgfQogKiAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKXsKICogICAgICAgZWNobyAkZS0+Z2V0TWVzc2FnZSgpIDsKICogICB9CiAqLwpjbGFzcyBGYWNlYm9vayBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRzY29wZSA9ICdlbWFpbCwgcHVibGljX3Byb2ZpbGUnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9ncmFwaC5mYWNlYm9vay5jb20vdjIuMTIvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2RpYWxvZy9vYXV0aCc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9ncmFwaC5mYWNlYm9vay5jb20vb2F1dGgvYWNjZXNzX3Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGV2ZWxvcGVycy5mYWNlYm9vay5jb20vZG9jcy9mYWNlYm9vay1sb2dpbi9vdmVydmlldyc7CgogICAgLyoqCiAgICAgKiBAdmFyIHN0cmluZyBQcm9maWxlIFVSTCB0ZW1wbGF0ZSBhcyB0aGUgZmFsbGJhY2sgd2hlbiBubyBgbGlua2AgcmV0dXJuZWQgZnJvbSB0aGUgQVBJLgogICAgICovCiAgICBwcm90ZWN0ZWQgJHByb2ZpbGVVcmxUZW1wbGF0ZSA9ICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vJXMnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCiAgICB7CiAgICAgICAgcGFyZW50Ojppbml0aWFsaXplKCk7CgogICAgICAgIC8vIFJlcXVpcmUgcHJvb2Ygb24gYWxsIEZhY2Vib29rIGFwaSBjYWxscwogICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVycy5mYWNlYm9vay5jb20vZG9jcy9ncmFwaC1hcGkvc2VjdXJpbmctcmVxdWVzdHMjYXBwc2VjcmV0X3Byb29mCiAgICAgICAgaWYgKCRhY2Nlc3NUb2tlbiA9ICR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW4nKSkgewogICAgICAgICAgICAkdGhpcy0+YXBpUmVxdWVzdFBhcmFtZXRlcnNbJ2FwcHNlY3JldF9wcm9vZiddID0gaGFzaF9obWFjKCdzaGEyNTYnLCAkYWNjZXNzVG9rZW4sICR0aGlzLT5jbGllbnRTZWNyZXQpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnbWU/ZmllbGRzPWlkLG5hbWUsZmlyc3RfbmFtZSxsYXN0X25hbWUsbGluayx3ZWJzaXRlLGdlbmRlcixsb2NhbGUsYWJvdXQsZW1haWwsaG9tZXRvd24sdmVyaWZpZWQsYmlydGhkYXknKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygnaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyID0gJGRhdGEtPmdldCgnaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJGRhdGEtPmdldCgnbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Zmlyc3ROYW1lID0gJGRhdGEtPmdldCgnZmlyc3RfbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgPSAkZGF0YS0+Z2V0KCdsYXN0X25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwgPSAkZGF0YS0+Z2V0KCdsaW5rJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT53ZWJTaXRlVVJMID0gJGRhdGEtPmdldCgnd2Vic2l0ZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Z2VuZGVyID0gJGRhdGEtPmdldCgnZ2VuZGVyJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5sYW5ndWFnZSA9ICRkYXRhLT5nZXQoJ2xvY2FsZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGVzY3JpcHRpb24gPSAkZGF0YS0+Z2V0KCdhYm91dCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgPSAkZGF0YS0+Z2V0KCdlbWFpbCcpOwoKICAgICAgICAvLyBGYWxsYmFjayBmb3IgcHJvZmlsZSBVUkwgaW4gY2FzZSBGYWNlYm9vayBkb2VzIG5vdCBwcm92aWRlICJwcmV0dHkiIGxpbmsgd2l0aCB1c2VybmFtZSAoaWYgdXNlciBzZXQgaXQpLgogICAgICAgIGlmIChlbXB0eSgkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwpKSB7CiAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCA9ICR0aGlzLT5nZXRQcm9maWxlVXJsKCR1c2VyUHJvZmlsZS0+aWRlbnRpZmllcik7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUtPnJlZ2lvbiA9ICRkYXRhLT5maWx0ZXIoJ2hvbWV0b3duJyktPmdldCgnbmFtZScpOwoKICAgICAgICAkcGhvdG9TaXplID0gJHRoaXMtPmNvbmZpZy0+Z2V0KCdwaG90b19zaXplJykgPzogJzE1MCc7CgogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgPSAkdGhpcy0+YXBpQmFzZVVybCAuICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAuICcvcGljdHVyZT93aWR0aD0nIC4gJHBob3RvU2l6ZSAuICcmaGVpZ2h0PScgLiAkcGhvdG9TaXplOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSAkZGF0YS0+Z2V0KCd2ZXJpZmllZCcpID09IDEgPyAkdXNlclByb2ZpbGUtPmVtYWlsIDogJyc7CgogICAgICAgICR1c2VyUHJvZmlsZSA9ICR0aGlzLT5mZXRjaFVzZXJSZWdpb24oJHVzZXJQcm9maWxlKTsKCiAgICAgICAgJHVzZXJQcm9maWxlID0gJHRoaXMtPmZldGNoQmlydGhkYXkoJHVzZXJQcm9maWxlLCAkZGF0YS0+Z2V0KCdiaXJ0aGRheScpKTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSB1c2VyIHJlZ2lvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gVXNlclxQcm9maWxlICR1c2VyUHJvZmlsZQogICAgICoKICAgICAqIEByZXR1cm4gXEh5YnJpZGF1dGhcVXNlclxQcm9maWxlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXJSZWdpb24oVXNlclxQcm9maWxlICR1c2VyUHJvZmlsZSkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR1c2VyUHJvZmlsZS0+cmVnaW9uKSkgewogICAgICAgICAgICAkcmVnaW9uQXJyID0gZXhwbG9kZSgnLCcsICR1c2VyUHJvZmlsZS0+cmVnaW9uKTsKCiAgICAgICAgICAgIGlmIChjb3VudCgkcmVnaW9uQXJyKSA+IDEpIHsKICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+Y2l0eSA9IHRyaW0oJHJlZ2lvbkFyclswXSk7CiAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUtPmNvdW50cnkgPSB0cmltKCRyZWdpb25BcnJbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIHVzZXIgYmlydGhkYXkuCiAgICAgKgogICAgICogQHBhcmFtIFVzZXJcUHJvZmlsZSAkdXNlclByb2ZpbGUKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJpcnRoZGF5CiAgICAgKgogICAgICogQHJldHVybiBcSHlicmlkYXV0aFxVc2VyXFByb2ZpbGUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZldGNoQmlydGhkYXkoVXNlclxQcm9maWxlICR1c2VyUHJvZmlsZSwgJGJpcnRoZGF5KQogICAgewogICAgICAgICRyZXN1bHQgPSAobmV3IERhdGFcUGFyc2VyKCkpLT5wYXJzZUJpcnRoZGF5KCRiaXJ0aGRheSwgJy8nKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5iaXJ0aFllYXIgPSAoaW50KSRyZXN1bHRbMF07CiAgICAgICAgJHVzZXJQcm9maWxlLT5iaXJ0aE1vbnRoID0gKGludCkkcmVzdWx0WzFdOwogICAgICAgICR1c2VyUHJvZmlsZS0+YmlydGhEYXkgPSAoaW50KSRyZXN1bHRbMl07CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9CgogICAgLyoqCiAgICAgKiAvdjIuMC9tZS9mcmllbmRzIG9ubHkgcmV0dXJucyB0aGUgdXNlcidzIGZyaWVuZHMgd2hvIGFsc28gdXNlIHRoZSBhcHAuCiAgICAgKiBJbiB0aGUgY2FzZXMgd2hlcmUgeW91IHdhbnQgdG8gbGV0IHBlb3BsZSB0YWcgdGhlaXIgZnJpZW5kcyBpbiBzdG9yaWVzIHB1Ymxpc2hlZCBieSB5b3VyIGFwcCwKICAgICAqIHlvdSBjYW4gdXNlIHRoZSBUYWdnYWJsZSBGcmllbmRzIEFQSS4KICAgICAqCiAgICAgKiBodHRwczovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3MvYXBwcy9mYXEjdW5hYmxlX2Z1bGxfZnJpZW5kX2xpc3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJDb250YWN0cygpCiAgICB7CiAgICAgICAgJGNvbnRhY3RzID0gW107CgogICAgICAgICRhcGlVcmwgPSAnbWUvZnJpZW5kcz9maWVsZHM9bGluayxuYW1lJzsKCiAgICAgICAgZG8gewogICAgICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgkYXBpVXJsKTsKCiAgICAgICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICAgICAgaWYgKCEkZGF0YS0+ZXhpc3RzKCdkYXRhJykpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoISRkYXRhLT5maWx0ZXIoJ2RhdGEnKS0+aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkZGF0YS0+ZmlsdGVyKCdkYXRhJyktPnRvQXJyYXkoKSBhcyAkaXRlbSkgewogICAgICAgICAgICAgICAgICAgICRjb250YWN0c1tdID0gJHRoaXMtPmZldGNoVXNlckNvbnRhY3QoJGl0ZW0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJGRhdGEtPmZpbHRlcigncGFnaW5nJyktPmV4aXN0cygnbmV4dCcpKSB7CiAgICAgICAgICAgICAgICAkYXBpVXJsID0gJGRhdGEtPmZpbHRlcigncGFnaW5nJyktPmdldCgnbmV4dCcpOwoKICAgICAgICAgICAgICAgICRwYWdlZExpc3QgPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHBhZ2VkTGlzdCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoJHBhZ2VkTGlzdCk7CgogICAgICAgIHJldHVybiAkY29udGFjdHM7CiAgICB9CgogICAgLyoqCiAgICAgKiBQYXJzZSB0aGUgdXNlciBjb250YWN0LgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkaXRlbQogICAgICoKICAgICAqIEByZXR1cm4gXEh5YnJpZGF1dGhcVXNlclxDb250YWN0CiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXJDb250YWN0KCRpdGVtKQogICAgewogICAgICAgICR1c2VyQ29udGFjdCA9IG5ldyBVc2VyXENvbnRhY3QoKTsKCiAgICAgICAgJGl0ZW0gPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRpdGVtKTsKCiAgICAgICAgJHVzZXJDb250YWN0LT5pZGVudGlmaWVyID0gJGl0ZW0tPmdldCgnaWQnKTsKICAgICAgICAkdXNlckNvbnRhY3QtPmRpc3BsYXlOYW1lID0gJGl0ZW0tPmdldCgnbmFtZScpOwoKICAgICAgICAkdXNlckNvbnRhY3QtPnByb2ZpbGVVUkwgPSAkaXRlbS0+ZXhpc3RzKCdsaW5rJykKICAgICAgICAgICAgPzogJHRoaXMtPmdldFByb2ZpbGVVcmwoJHVzZXJDb250YWN0LT5pZGVudGlmaWVyKTsKCiAgICAgICAgJHVzZXJDb250YWN0LT5waG90b1VSTCA9ICR0aGlzLT5hcGlCYXNlVXJsIC4gJHVzZXJDb250YWN0LT5pZGVudGlmaWVyIC4gJy9waWN0dXJlP3dpZHRoPTE1MCZoZWlnaHQ9MTUwJzsKCiAgICAgICAgcmV0dXJuICR1c2VyQ29udGFjdDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBBdWd1c3QgMSwgMjAxOC4gU2NoZWR1bGVkIGZvciByZW1vdmFsIGJlZm9yZSBIeWJyaWRhdXRoIDMuMC4wLgogICAgICogICBTZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmZhY2Vib29rLmNvbS9kb2NzL2dyYXBoLWFwaS9jaGFuZ2Vsb2cvYnJlYWtpbmctY2hhbmdlcyNsb2dpbi00LTI0IGZvciBtb3JlIGluZm8uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VyU3RhdHVzKCRzdGF0dXMsICRwYWdlSWQgPSAnbWUnKQogICAgewogICAgICAgIEB0cmlnZ2VyX2Vycm9yKCdUaGUgJyAuIF9fTUVUSE9EX18gLiAnIG1ldGhvZCBpcyBkZXByZWNhdGVkIHNpbmNlIEF1Z3VzdCAxLCAyMDE4IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gSHlicmlkYXV0aCAzLjAuMC4nLCBFX1VTRVJfREVQUkVDQVRFRCk7CiAgICAgICAgJHN0YXR1cyA9IGlzX3N0cmluZygkc3RhdHVzKSA/IFsnbWVzc2FnZScgPT4gJHN0YXR1c10gOiAkc3RhdHVzOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgieyRwYWdlSWR9L2ZlZWQiLCAnUE9TVCcsICRzdGF0dXMpOwoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0UGFnZVN0YXR1cygkc3RhdHVzLCAkcGFnZUlkKQogICAgewogICAgICAgICRzdGF0dXMgPSBpc19zdHJpbmcoJHN0YXR1cykgPyBbJ21lc3NhZ2UnID0+ICRzdGF0dXNdIDogJHN0YXR1czsKCiAgICAgICAgLy8gUG9zdCBvbiB1c2VyIHdhbGwuCiAgICAgICAgaWYgKCRwYWdlSWQgPT09ICdtZScpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zZXRVc2VyU3RhdHVzKCRzdGF0dXMsICRwYWdlSWQpOwogICAgICAgIH0KCiAgICAgICAgLy8gUmV0cmlldmUgd3JpdGFibGUgdXNlciBwYWdlcyBhbmQgZmlsdGVyIGJ5IGdpdmVuIG9uZS4KICAgICAgICAkcGFnZXMgPSAkdGhpcy0+Z2V0VXNlclBhZ2VzKHRydWUpOwogICAgICAgICRwYWdlcyA9IGFycmF5X2ZpbHRlcigkcGFnZXMsIGZ1bmN0aW9uICgkcGFnZSkgdXNlICgkcGFnZUlkKSB7CiAgICAgICAgICAgIHJldHVybiAkcGFnZS0+aWQgPT0gJHBhZ2VJZDsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKCEkcGFnZXMpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBwYWdlIHdpdGggZ2l2ZW4gaWQuJyk7CiAgICAgICAgfQoKICAgICAgICAkcGFnZSA9IHJlc2V0KCRwYWdlcyk7CgogICAgICAgIC8vIFVzZSBwYWdlIGFjY2VzcyB0b2tlbiBpbnN0ZWFkIG9mIHVzZXIgYWNjZXNzIHRva2VuLgogICAgICAgICRoZWFkZXJzID0gWwogICAgICAgICAgICAnQXV0aG9yaXphdGlvbicgPT4gJ0JlYXJlciAnIC4gJHBhZ2UtPmFjY2Vzc190b2tlbiwKICAgICAgICBdOwoKICAgICAgICAvLyBSZWZyZXNoIHByb29mIGZvciBBUEkgY2FsbC4KICAgICAgICAkcGFyYW1ldGVycyA9ICRzdGF0dXMgKyBbCiAgICAgICAgICAgICAgICAnYXBwc2VjcmV0X3Byb29mJyA9PiBoYXNoX2htYWMoJ3NoYTI1NicsICRwYWdlLT5hY2Nlc3NfdG9rZW4sICR0aGlzLT5jbGllbnRTZWNyZXQpLAogICAgICAgICAgICBdOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgieyRwYWdlSWR9L2ZlZWQiLCAnUE9TVCcsICRwYXJhbWV0ZXJzLCAkaGVhZGVycyk7CgogICAgICAgIHJldHVybiAkcmVzcG9uc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUGFnZXMoJHdyaXRhYmxlID0gZmFsc2UpCiAgICB7CiAgICAgICAgJHBhZ2VzID0gJHRoaXMtPmFwaVJlcXVlc3QoJ21lL2FjY291bnRzJyk7CgogICAgICAgIGlmICghJHdyaXRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiAkcGFnZXMtPmRhdGE7CiAgICAgICAgfQoKICAgICAgICAvLyBGaWx0ZXIgdXNlciBwYWdlcyBieSBDUkVBVEVfQ09OVEVOVCBwZXJtaXNzaW9uLgogICAgICAgIHJldHVybiBhcnJheV9maWx0ZXIoJHBhZ2VzLT5kYXRhLCBmdW5jdGlvbiAoJHBhZ2UpIHsKICAgICAgICAgICAgcmV0dXJuIGluX2FycmF5KCdDUkVBVEVfQ09OVEVOVCcsICRwYWdlLT5wZXJtcyk7CiAgICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQWN0aXZpdHkoJHN0cmVhbSA9ICdtZScpCiAgICB7CiAgICAgICAgJGFwaVVybCA9ICRzdHJlYW0gPT0gJ21lJyA/ICdtZS9mZWVkJyA6ICdtZS9ob21lJzsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJGFwaVVybCk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISRkYXRhLT5leGlzdHMoJ2RhdGEnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICRhY3Rpdml0aWVzID0gW107CgogICAgICAgIGZvcmVhY2ggKCRkYXRhLT5maWx0ZXIoJ2RhdGEnKS0+dG9BcnJheSgpIGFzICRpdGVtKSB7CiAgICAgICAgICAgICRhY3Rpdml0aWVzW10gPSAkdGhpcy0+ZmV0Y2hVc2VyQWN0aXZpdHkoJGl0ZW0pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRhY3Rpdml0aWVzOwogICAgfQoKICAgIC8qKgogICAgICoKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZldGNoVXNlckFjdGl2aXR5KCRpdGVtKQogICAgewogICAgICAgICR1c2VyQWN0aXZpdHkgPSBuZXcgVXNlclxBY3Rpdml0eSgpOwoKICAgICAgICAkaXRlbSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJGl0ZW0pOwoKICAgICAgICAkdXNlckFjdGl2aXR5LT5pZCA9ICRpdGVtLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJBY3Rpdml0eS0+ZGF0ZSA9ICRpdGVtLT5nZXQoJ2NyZWF0ZWRfdGltZScpOwoKICAgICAgICBpZiAoJ3ZpZGVvJyA9PSAkaXRlbS0+Z2V0KCd0eXBlJykgfHwgJ2xpbmsnID09ICRpdGVtLT5nZXQoJ3R5cGUnKSkgewogICAgICAgICAgICAkdXNlckFjdGl2aXR5LT50ZXh0ID0gJGl0ZW0tPmdldCgnbGluaycpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGVtcHR5KCR1c2VyQWN0aXZpdHktPnRleHQpICYmICRpdGVtLT5leGlzdHMoJ3N0b3J5JykpIHsKICAgICAgICAgICAgJHVzZXJBY3Rpdml0eS0+dGV4dCA9ICRpdGVtLT5nZXQoJ2xpbmsnKTsKICAgICAgICB9CgogICAgICAgIGlmIChlbXB0eSgkdXNlckFjdGl2aXR5LT50ZXh0KSAmJiAkaXRlbS0+ZXhpc3RzKCdtZXNzYWdlJykpIHsKICAgICAgICAgICAgJHVzZXJBY3Rpdml0eS0+dGV4dCA9ICRpdGVtLT5nZXQoJ21lc3NhZ2UnKTsKICAgICAgICB9CgogICAgICAgIGlmICghZW1wdHkoJHVzZXJBY3Rpdml0eS0+dGV4dCkgJiYgJGl0ZW0tPmV4aXN0cygnZnJvbScpKSB7CiAgICAgICAgICAgICR1c2VyQWN0aXZpdHktPnVzZXItPmlkZW50aWZpZXIgPSAkaXRlbS0+ZmlsdGVyKCdmcm9tJyktPmdldCgnaWQnKTsKICAgICAgICAgICAgJHVzZXJBY3Rpdml0eS0+dXNlci0+ZGlzcGxheU5hbWUgPSAkaXRlbS0+ZmlsdGVyKCdmcm9tJyktPmdldCgnbmFtZScpOwoKICAgICAgICAgICAgJHVzZXJBY3Rpdml0eS0+dXNlci0+cHJvZmlsZVVSTCA9ICR0aGlzLT5nZXRQcm9maWxlVXJsKCR1c2VyQWN0aXZpdHktPnVzZXItPmlkZW50aWZpZXIpOwoKICAgICAgICAgICAgJHVzZXJBY3Rpdml0eS0+dXNlci0+cGhvdG9VUkwgPSAkdGhpcy0+YXBpQmFzZVVybCAuICR1c2VyQWN0aXZpdHktPnVzZXItPmlkZW50aWZpZXIgLiAnL3BpY3R1cmU/d2lkdGg9MTUwJmhlaWdodD0xNTAnOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR1c2VyQWN0aXZpdHk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgcHJvZmlsZSBVUkwuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkaWRlbnRpdHkgVXNlciBJRC4KICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwgTlVMTCB3aGVuIGlkZW50aXR5IGlzIG5vdCBwcm92aWRlZC4KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFByb2ZpbGVVcmwoJGlkZW50aXR5KQogICAgewogICAgICAgIGlmICghaXNfbnVtZXJpYygkaWRlbnRpdHkpKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNwcmludGYoJHRoaXMtPnByb2ZpbGVVcmxUZW1wbGF0ZSwgJGlkZW50aXR5KTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Foursquare.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEZvdXJzcXVhcmUgT0F1dGgyIHByb3ZpZGVyIGFkYXB0ZXIuCiAqLwpjbGFzcyBGb3Vyc3F1YXJlIGV4dGVuZHMgT0F1dGgyCnsKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLmZvdXJzcXVhcmUuY29tL3YyLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2ZvdXJzcXVhcmUuY29tL29hdXRoMi9hdXRoZW50aWNhdGUnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2ZvdXJzcXVhcmUuY29tL29hdXRoMi9hY2Nlc3NfdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlbk5hbWUgPSAnb2F1dGhfdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGV2ZWxvcGVyLmZvdXJzcXVhcmUuY29tL292ZXJ2aWV3L2F1dGgnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgIHBhcmVudDo6aW5pdGlhbGl6ZSgpOwoKICAgICAgICAkYXBpVmVyc2lvbiA9ICR0aGlzLT5jb25maWctPmdldCgnYXBpX3ZlcnNpb24nKSA/OiAnMjAxNDAyMDEnOwoKICAgICAgICAkdGhpcy0+YXBpUmVxdWVzdFBhcmFtZXRlcnMgPSBbICd2JyA9PiAkYXBpVmVyc2lvbiBdOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcnMvc2VsZicpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygncmVzcG9uc2UnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJGRhdGEgPSAkZGF0YS0+ZmlsdGVyKCdyZXNwb25zZScpLT5maWx0ZXIoJ3VzZXInKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICAgID0gJGRhdGEtPmdldCgnaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAgICAgPSAkZGF0YS0+Z2V0KCdmaXJzdE5hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmxhc3ROYW1lICAgICAgPSAkZGF0YS0+Z2V0KCdsYXN0TmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Z2VuZGVyICAgICAgICA9ICRkYXRhLT5nZXQoJ2dlbmRlcicpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Y2l0eSAgICAgICAgICA9ICRkYXRhLT5nZXQoJ2hvbWVDaXR5Jyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCAgICAgICAgID0gJGRhdGEtPmZpbHRlcignY29udGFjdCcpLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbFZlcmlmaWVkID0gJHVzZXJQcm9maWxlLT5lbWFpbDsKICAgICAgICAkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwgICAgPSAnaHR0cHM6Ly93d3cuZm91cnNxdWFyZS5jb20vdXNlci8nIC4gJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgICA9IHRyaW0oJHVzZXJQcm9maWxlLT5maXJzdE5hbWUgLiAnICcgLiAkdXNlclByb2ZpbGUtPmxhc3ROYW1lKTsKCiAgICAgICAgaWYgKCRkYXRhLT5leGlzdHMoJ3Bob3RvJykpIHsKICAgICAgICAgICAgJHBob3RvU2l6ZSA9ICR0aGlzLT5jb25maWctPmdldCgncGhvdG9fc2l6ZScpID86ICcxNTB4MTUwJzsKCiAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgPSAkZGF0YS0+ZmlsdGVyKCdwaG90bycpLT5nZXQoJ3ByZWZpeCcpIC4gJHBob3RvU2l6ZSAuICRkYXRhLT5maWx0ZXIoJ3Bob3RvJyktPmdldCgnc3VmZml4Jyk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJDb250YWN0cygpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ3VzZXJzL3NlbGYvZnJpZW5kcycpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygncmVzcG9uc2UnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICRjb250YWN0cyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkZGF0YS0+ZmlsdGVyKCdyZXNwb25zZScpLT5maWx0ZXIoJ2ZyaWVuZHMnKS0+ZmlsdGVyKCdpdGVtcycpLT50b0FycmF5KCkgYXMgJGl0ZW0pIHsKICAgICAgICAgICAgJGNvbnRhY3RzW10gPSAkdGhpcy0+ZmV0Y2hVc2VyQ29udGFjdCgkaXRlbSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGNvbnRhY3RzOwogICAgfQoKICAgIC8qKgogICAgKgogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXJDb250YWN0KCRpdGVtKQogICAgewogICAgICAgICRwaG90b1NpemUgPSAkdGhpcy0+Y29uZmlnLT5nZXQoJ3Bob3RvX3NpemUnKSA/OiAnMTUweDE1MCc7CgogICAgICAgICRpdGVtID0gbmV3IERhdGFcQ29sbGVjdGlvbigkaXRlbSk7CgogICAgICAgICR1c2VyQ29udGFjdCA9IG5ldyBVc2VyXENvbnRhY3QoKTsKCiAgICAgICAgJHVzZXJDb250YWN0LT5pZGVudGlmaWVyICA9ICRpdGVtLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJDb250YWN0LT5waG90b1VSTCAgICA9ICRpdGVtLT5maWx0ZXIoJ3Bob3RvJyktPmdldCgncHJlZml4JykgLiAkcGhvdG9TaXplIC4gJGl0ZW0tPmZpbHRlcigncGhvdG8nKS0+Z2V0KCdzdWZmaXgnKTsKICAgICAgICAkdXNlckNvbnRhY3QtPmRpc3BsYXlOYW1lID0gdHJpbSgkaXRlbS0+Z2V0KCdmaXJzdE5hbWUnKSAuICcgJyAuICRpdGVtLT5nZXQoJ2xhc3ROYW1lJykpOwogICAgICAgICR1c2VyQ29udGFjdC0+ZW1haWwgICAgICAgPSAkaXRlbS0+ZmlsdGVyKCdjb250YWN0JyktPmdldCgnZW1haWwnKTsKCiAgICAgICAgcmV0dXJuICR1c2VyQ29udGFjdDsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/GitHub.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEdpdGh1YiBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEdpdEh1YiBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyAkc2NvcGUgPSAndXNlcjplbWFpbCc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS8nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9naXRodWIuY29tL2xvZ2luL29hdXRoL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aC9hY2Nlc3NfdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvb2F1dGgvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ3VzZXInKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghICRkYXRhLT5leGlzdHMoJ2lkJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9ICRkYXRhLT5nZXQoJ2JpbycpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdhdmF0YXJfdXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICA9ICRkYXRhLT5nZXQoJ2h0bWxfdXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCAgICAgICA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT53ZWJTaXRlVVJMICA9ICRkYXRhLT5nZXQoJ2Jsb2cnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnJlZ2lvbiAgICAgID0gJGRhdGEtPmdldCgnbG9jYXRpb24nKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPzogJGRhdGEtPmdldCgnbG9naW4nKTsKCiAgICAgICAgaWYgKGVtcHR5KCR1c2VyUHJvZmlsZS0+ZW1haWwpICYmIHN0cnBvcygkdGhpcy0+c2NvcGUsICd1c2VyOmVtYWlsJykgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUgPSAkdGhpcy0+cmVxdWVzdFVzZXJFbWFpbCgkdXNlclByb2ZpbGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHVzZXIgZW1haWwgaXMgbm90IG1hbmRhdG9yeSBzbyBrZWVwIGl0IHF1aXRlCiAgICAgICAgICAgIGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9CgogICAgLyoqCiAgICAqIFJlcXVlc3QgY29ubmVjdGVkIHVzZXIgZW1haWwKICAgICoKICAgICogaHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92My91c2Vycy9lbWFpbHMvCiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlcXVlc3RVc2VyRW1haWwoVXNlclxQcm9maWxlICR1c2VyUHJvZmlsZSkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlci9lbWFpbHMnKTsKCiAgICAgICAgZm9yZWFjaCAoJHJlc3BvbnNlIGFzICRpZHggPT4gJGl0ZW0pIHsKICAgICAgICAgICAgaWYgKCEgZW1wdHkoJGl0ZW0tPnByaW1hcnkpICYmICRpdGVtLT5wcmltYXJ5ID09IDEpIHsKICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgPSAkaXRlbS0+ZW1haWw7CgogICAgICAgICAgICAgICAgaWYgKCEgZW1wdHkoJGl0ZW0tPnZlcmlmaWVkKSAmJiAkaXRlbS0+dmVyaWZpZWQgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWxWZXJpZmllZCA9ICR1c2VyUHJvZmlsZS0+ZW1haWw7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/GitLab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEdpdExhYiBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEdpdExhYiBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyAkc2NvcGUgPSAnYXBpJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2dpdGxhYi5jb20vYXBpL3YzLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2dpdGxhYi5jb20vb2F1dGgvYXV0aG9yaXplJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9naXRsYWIuY29tL29hdXRoL3Rva2VuJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpRG9jdW1lbnRhdGlvbiA9ICdodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9hcGkvb2F1dGgyLmh0bWwnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcicpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygnaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkYXRhLT5nZXQoJ25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRlc2NyaXB0aW9uID0gJGRhdGEtPmdldCgnYmlvJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5waG90b1VSTCAgICA9ICRkYXRhLT5nZXQoJ2F2YXRhcl91cmwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwgID0gJGRhdGEtPmdldCgnd2ViX3VybCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgICAgICAgPSAkZGF0YS0+Z2V0KCdlbWFpbCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+d2ViU2l0ZVVSTCAgPSAkZGF0YS0+Z2V0KCd3ZWJzaXRlX3VybCcpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA/OiAkZGF0YS0+Z2V0KCd1c2VybmFtZScpOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Google.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEdvb2dsZSBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICoKICogRXhhbXBsZToKICoKICogICAkY29uZmlnID0gWwogKiAgICAgICAnY2FsbGJhY2snID0+IEh5YnJpZGF1dGhcSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKCksCiAqICAgICAgICdrZXlzJyAgICAgPT4gWyAnaWQnID0+ICcnLCAnc2VjcmV0JyA9PiAnJyBdLAogKiAgICAgICAnc2NvcGUnICAgID0+ICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL3VzZXJpbmZvLnByb2ZpbGUnLAogKgogKiAgICAgICAgLy8gZ29vZ2xlJ3MgY3VzdG9tIGF1dGggdXJsIHBhcmFtcwogKiAgICAgICAnYXV0aG9yaXplX3VybF9wYXJhbWV0ZXJzJyA9PiBbCiAqICAgICAgICAgICAgICAnYXBwcm92YWxfcHJvbXB0JyA9PiAnZm9yY2UnLCAvLyB0byBwYXNzIG9ubHkgd2hlbiB5b3UgbmVlZCB0byBhY3F1aXJlIGEgbmV3IHJlZnJlc2ggdG9rZW4uCiAqICAgICAgICAgICAgICAnYWNjZXNzX3R5cGUnICAgICA9PiAuLiwgICAgICAvLyBpcyBzZXQgdG8gJ29mZmxpbmUnIGJ5IGRlZmF1bHQKICogICAgICAgICAgICAgICdoZCcgICAgICAgICAgICAgID0+IC4uLAogKiAgICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgICAgPT4gLi4sCiAqICAgICAgICAgICAgICAvLyBldGMuCiAqICAgICAgIF0KICogICBdOwogKgogKiAgICRhZGFwdGVyID0gbmV3IEh5YnJpZGF1dGhcUHJvdmlkZXJcR29vZ2xlKCAkY29uZmlnICk7CiAqCiAqICAgdHJ5IHsKICogICAgICAgJGFkYXB0ZXItPmF1dGhlbnRpY2F0ZSgpOwogKgogKiAgICAgICAkdXNlclByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsKICogICAgICAgJHRva2VucyA9ICRhZGFwdGVyLT5nZXRBY2Nlc3NUb2tlbigpOwogKiAgICAgICAkY29udGFjdHMgPSAkYWRhcHRlci0+Z2V0VXNlckNvbnRhY3RzKFsnbWF4LXJlc3VsdHMnID0+IDc1XSk7CiAqICAgfQogKiAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKXsKICogICAgICAgZWNobyAkZS0+Z2V0TWVzc2FnZSgpIDsKICogICB9CiAqLwpjbGFzcyBHb29nbGUgZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgJHNjb3BlID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvdXNlcmluZm8ucHJvZmlsZSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL3VzZXJpbmZvLmVtYWlsJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS8nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2lkZW50aXR5L3Byb3RvY29scy9PQXV0aDInOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgIHBhcmVudDo6aW5pdGlhbGl6ZSgpOwoKICAgICAgICAkdGhpcy0+QXV0aG9yaXplVXJsUGFyYW1ldGVycyArPSBbCiAgICAgICAgICAgICdhY2Nlc3NfdHlwZScgPT4gJ29mZmxpbmUnCiAgICAgICAgXTsKCiAgICAgICAgJHRoaXMtPnRva2VuUmVmcmVzaFBhcmFtZXRlcnMgKz0gWwogICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkdGhpcy0+Y2xpZW50SWQsCiAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAkdGhpcy0+Y2xpZW50U2VjcmV0CiAgICAgICAgXTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKgogICAgKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2lkZW50aXR5L3Byb3RvY29scy9PcGVuSURDb25uZWN0I29idGFpbnVzZXJpbmZvCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnb2F1dGgyL3YzL3VzZXJpbmZvJyk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISAkZGF0YS0+ZXhpc3RzKCdzdWInKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ3N1YicpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Zmlyc3ROYW1lICAgPSAkZGF0YS0+Z2V0KCdnaXZlbl9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5sYXN0TmFtZSAgICA9ICRkYXRhLT5nZXQoJ2ZhbWlseV9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkYXRhLT5nZXQoJ25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMICAgID0gJGRhdGEtPmdldCgncGljdHVyZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5nZW5kZXIgICAgICA9ICRkYXRhLT5nZXQoJ2dlbmRlcicpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFuZ3VhZ2UgICAgPSAkZGF0YS0+Z2V0KCdsb2NhbGUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsICAgICAgID0gJGRhdGEtPmdldCgnZW1haWwnKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbFZlcmlmaWVkID0gKCRkYXRhLT5nZXQoJ2VtYWlsX3ZlcmlmaWVkJykgPT09IHRydWUgfHwgJGRhdGEtPmdldCgnZW1haWxfdmVyaWZpZWQnKSA9PT0gMSkgPyAkdXNlclByb2ZpbGUtPmVtYWlsIDogJyc7CgogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5nZXQoJ3Bob3RvX3NpemUnKSkgewogICAgICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMIC49ICc/c3o9JyAuICR0aGlzLT5jb25maWctPmdldCgncGhvdG9fc2l6ZScpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQ29udGFjdHMoJHBhcmFtZXRlcnMgPSBbXSkKICAgIHsKICAgICAgICAkcGFyYW1ldGVycyA9IFsnbWF4LXJlc3VsdHMnID0+IDUwMF0gKyAkcGFyYW1ldGVyczsKCiAgICAgICAgLy8gR29vZ2xlIEdtYWlsIGFuZCBBbmRyb2lkIGNvbnRhY3RzCiAgICAgICAgaWYgKGZhbHNlICE9PSBzdHJwb3MoJHRoaXMtPnNjb3BlLCAnL204L2ZlZWRzLycpIHx8IGZhbHNlICE9PSBzdHJwb3MoJHRoaXMtPnNjb3BlLCAnL2F1dGgvY29udGFjdHMucmVhZG9ubHknKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmdldEdtYWlsQ29udGFjdHMoJHBhcmFtZXRlcnMpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICogUmV0cmlldmUgR21haWwgY29udGFjdHMKICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0R21haWxDb250YWN0cygkcGFyYW1ldGVycyA9IFtdKQogICAgewogICAgICAgICR1cmwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tOC9mZWVkcy9jb250YWN0cy9kZWZhdWx0L2Z1bGw/JwogICAgICAgICAgICAgICAgICAgIC4gaHR0cF9idWlsZF9xdWVyeShhcnJheV9yZXBsYWNlKFsgJ2FsdCcgPT4gJ2pzb24nLCAndicgPT4gJzMuMCcgXSwgKGFycmF5KSRwYXJhbWV0ZXJzKSk7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCR1cmwpOwoKICAgICAgICBpZiAoISAkcmVzcG9uc2UpIHsKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KCiAgICAgICAgJGNvbnRhY3RzID0gW107CgogICAgICAgIGlmIChpc3NldCgkcmVzcG9uc2UtPmZlZWQtPmVudHJ5KSkgewogICAgICAgICAgICBmb3JlYWNoICgkcmVzcG9uc2UtPmZlZWQtPmVudHJ5IGFzICRpZHggPT4gJGVudHJ5KSB7CiAgICAgICAgICAgICAgICAkdWMgPSBuZXcgVXNlclxDb250YWN0KCk7CgogICAgICAgICAgICAgICAgJHVjLT5lbWFpbCA9IGlzc2V0KCRlbnRyeS0+eydnZCRlbWFpbCd9WzBdLT5hZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoc3RyaW5nKSAkZW50cnktPnsnZ2QkZW1haWwnfVswXS0+YWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJzsKCiAgICAgICAgICAgICAgICAkdWMtPmRpc3BsYXlOYW1lID0gaXNzZXQoJGVudHJ5LT50aXRsZS0+eyckdCd9KSA/IChzdHJpbmcpICRlbnRyeS0+dGl0bGUtPnsnJHQnfSA6ICcnOwogICAgICAgICAgICAgICAgJHVjLT5pZGVudGlmaWVyICA9ICgkdWMtPmVtYWlsICE9ICcnKSA/ICR1Yy0+ZW1haWwgOiAnJzsKICAgICAgICAgICAgICAgICR1Yy0+ZGVzY3JpcHRpb24gPSAnJzsKCiAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCRyZXNwb25zZSwgJ3dlYnNpdGUnKSkgewogICAgICAgICAgICAgICAgICAgIGlmIChpc19hcnJheSgkcmVzcG9uc2UtPndlYnNpdGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyZXNwb25zZS0+d2Vic2l0ZSBhcyAkdykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR3LT5wcmltYXJ5ID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdWMtPndlYlNpdGVVUkwgPSAkdy0+dmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkdWMtPndlYlNpdGVVUkwgPSAkcmVzcG9uc2UtPndlYnNpdGUtPnZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHVjLT53ZWJTaXRlVVJMID0gJyc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGNvbnRhY3RzW10gPSAkdWM7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkY29udGFjdHM7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Instagram.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEluc3RhZ3JhbSBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIEluc3RhZ3JhbSBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRzY29wZSA9ICdiYXNpYyc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2FwaS5pbnN0YWdyYW0uY29tL3YxLyc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vYXBpLmluc3RhZ3JhbS5jb20vb2F1dGgvYXV0aG9yaXplLyc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9hcGkuaW5zdGFncmFtLmNvbS9vYXV0aC9hY2Nlc3NfdG9rZW4nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9kZXZlbG9wZXIvYXV0aGVudGljYXRpb24vJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgIHBhcmVudDo6aW5pdGlhbGl6ZSgpOwoKICAgICAgICAvLyBUaGUgSW5zdGFncmFtIEFQSSByZXF1aXJlcyBhbiBhY2Nlc3NfdG9rZW4gZnJvbSBhdXRoZW50aWNhdGVkIHVzZXJzCiAgICAgICAgLy8gZm9yIGVhY2ggZW5kcG9pbnQsIHNlZSBodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2RldmVsb3Blci9lbmRwb2ludHMuCiAgICAgICAgJGFjY2Vzc1Rva2VuID0gJHRoaXMtPmdldFN0b3JlZERhdGEoJHRoaXMtPmFjY2Vzc1Rva2VuTmFtZSk7CiAgICAgICAgJHRoaXMtPmFwaVJlcXVlc3RQYXJhbWV0ZXJzWyR0aGlzLT5hY2Nlc3NUb2tlbk5hbWVdID0gJGFjY2Vzc1Rva2VuOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCd1c2Vycy9zZWxmLycpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygnZGF0YScpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkZGF0YSA9ICRkYXRhLT5maWx0ZXIoJ2RhdGEnKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9ICRkYXRhLT5nZXQoJ2JpbycpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlX3BpY3R1cmUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPndlYlNpdGVVUkwgID0gJGRhdGEtPmdldCgnd2Vic2l0ZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCdmdWxsX25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA/OiAkZGF0YS0+Z2V0KCd1c2VybmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCA9ICJodHRwczovL2luc3RhZ3JhbS5jb20veyRkYXRhLT5nZXQoJ3VzZXJuYW1lJyl9IjsKICAgICAgICAKICAgICAgICAkdXNlclByb2ZpbGUtPmRhdGEgPSAoYXJyYXkpICRkYXRhLT5nZXQoJ2NvdW50cycpOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/LinkedIn.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiAqIEh5YnJpZGF1dGgKICogaHR0cHM6Ly9oeWJyaWRhdXRoLmdpdGh1Yi5pbyB8IGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgKICogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiAqLwoKbmFtZXNwYWNlIEh5YnJpZGF1dGhcUHJvdmlkZXI7Cgp1c2UgSHlicmlkYXV0aFxBZGFwdGVyXE9BdXRoMjsKdXNlIEh5YnJpZGF1dGhcRGF0YTsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcVXNlcjsKCi8qKgogKiBMaW5rZWRJbiBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIExpbmtlZEluIGV4dGVuZHMgT0F1dGgyCnsKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgJHNjb3BlID0gJ3JfbGl0ZXByb2ZpbGUgcl9lbWFpbGFkZHJlc3Mgd19tZW1iZXJfc29jaWFsJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLmxpbmtlZGluLmNvbS92Mi8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL3d3dy5saW5rZWRpbi5jb20vb2F1dGgvdjIvYXV0aG9yaXphdGlvbic7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL29hdXRoL3YyL2FjY2Vzc1Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2xpbmtlZGluL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9hdXRob3JpemF0aW9uLWNvZGUtZmxvdyc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJGZpZWxkcyA9IFsKICAgICAgICAgICAgJ2lkJywKICAgICAgICAgICAgJ2ZpcnN0TmFtZScsCiAgICAgICAgICAgICdsYXN0TmFtZScsCiAgICAgICAgICAgICdwcm9maWxlUGljdHVyZShkaXNwbGF5SW1hZ2V+OnBsYXlhYmxlU3RyZWFtcyknLAogICAgICAgIF07CgoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnbWU/cHJvamVjdGlvbj0oJyAuIGltcGxvZGUoJywnLCAkZmllbGRzKSAuICcpJyk7CiAgICAgICAgJGRhdGEgICAgID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISRkYXRhLT5leGlzdHMoJ2lkJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgIC8vIEhhbmRsZSBsb2NhbGl6ZWQgbmFtZXMuCiAgICAgICAgJHVzZXJQcm9maWxlLT5maXJzdE5hbWUgPSAkZGF0YQogICAgICAgICAgLT5maWx0ZXIoJ2ZpcnN0TmFtZScpCiAgICAgICAgICAtPmZpbHRlcignbG9jYWxpemVkJykKICAgICAgICAgIC0+Z2V0KCR0aGlzLT5nZXRQcmVmZXJyZWRMb2NhbGUoJGRhdGEsICdmaXJzdE5hbWUnKSk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgPSAkZGF0YQogICAgICAgICAgLT5maWx0ZXIoJ2xhc3ROYW1lJykKICAgICAgICAgIC0+ZmlsdGVyKCdsb2NhbGl6ZWQnKQogICAgICAgICAgLT5nZXQoJHRoaXMtPmdldFByZWZlcnJlZExvY2FsZSgkZGF0YSwgJ2xhc3ROYW1lJykpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgPSAkdGhpcy0+Z2V0VXNlclBob3RvVXJsKCRkYXRhLT5maWx0ZXIoJ3Byb2ZpbGVQaWN0dXJlJyktPmZpbHRlcignZGlzcGxheUltYWdlficpLT5nZXQoJ2VsZW1lbnRzJykpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgPSAkdGhpcy0+Z2V0VXNlckVtYWlsKCk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbFZlcmlmaWVkID0gJHVzZXJQcm9maWxlLT5lbWFpbDsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9IHRyaW0oJHVzZXJQcm9maWxlLT5maXJzdE5hbWUgLiAnICcgLiAkdXNlclByb2ZpbGUtPmxhc3ROYW1lKTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSB1c2VyIHBob3RvLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZWxlbWVudHMKICAgICAqICAgTGlzdCBvZiBmaWxlIGlkZW50aWZpZXJzIHJlbGF0ZWQgdG8gdGhpcyBhcnRpZmFjdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICogICBUaGUgdXNlciBwaG90byBVUkwuCiAgICAgKgogICAgICogQHNlZSBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9saW5rZWRpbi9zaGFyZWQvcmVmZXJlbmNlcy92Mi9wcm9maWxlL3Byb2ZpbGUtcGljdHVyZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclBob3RvVXJsKCRlbGVtZW50cykKICAgIHsKICAgICAgICBpZiAoaXNfYXJyYXkoJGVsZW1lbnRzKSkgewogICAgICAgICAgICAvLyBHZXQgdGhlIGxhcmdlc3QgcGljdHVyZSBmcm9tIHRoZSBsaXN0IHdoaWNoIGlzIHRoZSBsYXN0IG9uZS4KICAgICAgICAgICAgJGVsZW1lbnQgPSBlbmQoJGVsZW1lbnRzKTsKICAgICAgICAgICAgaWYgKCFlbXB0eSgkZWxlbWVudC0+aWRlbnRpZmllcnMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzZXQoJGVsZW1lbnQtPmlkZW50aWZpZXJzKS0+aWRlbnRpZmllcjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIE5VTEw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGVtYWlsIGFkZHJlc3Mgb2YgdXNlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICogICBUaGUgdXNlciBlbWFpbCBhZGRyZXNzLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckVtYWlsKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnZW1haWxBZGRyZXNzP3E9bWVtYmVycyZwcm9qZWN0aW9uPShlbGVtZW50cyooaGFuZGxlfikpJyk7CiAgICAgICAgJGRhdGEgICAgID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBmb3JlYWNoICgkZGF0YS0+ZmlsdGVyKCdlbGVtZW50cycpLT50b0FycmF5KCkgYXMgJGVsZW1lbnQpIHsKICAgICAgICAgICAgJGl0ZW0gPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRlbGVtZW50KTsKCiAgICAgICAgICAgIGlmICgkZW1haWwgPSAkaXRlbS0+ZmlsdGVyKCdoYW5kbGV+JyktPmdldCgnZW1haWxBZGRyZXNzJykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkZW1haWw7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBOVUxMOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICoKICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlua2VkaW4vY29uc3VtZXIvaW50ZWdyYXRpb25zL3NlbGYtc2VydmUvc2hhcmUtb24tbGlua2VkaW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldFVzZXJTdGF0dXMoJHN0YXR1cywgJHVzZXJJRCA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzX3N0cmluZygkc3RhdHVzKSkgewogICAgICAgICAgICAkc3RhdHVzID0gWwogICAgICAgICAgICAgICAgJ2F1dGhvcicgPT4gJ3VybjpsaTpwZXJzb246JyAuICR1c2VySUQsCiAgICAgICAgICAgICAgICAnbGlmZWN5Y2xlU3RhdGUnID0+ICdQVUJMSVNIRUQnLAogICAgICAgICAgICAgICAgJ3NwZWNpZmljQ29udGVudCcgPT4gWwogICAgICAgICAgICAgICAgICAgICdjb20ubGlua2VkaW4udWdjLlNoYXJlQ29udGVudCcgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAnc2hhcmVDb21tZW50YXJ5JyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dCcgPT4gJHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYXJlTWVkaWFDYXRlZ29yeScgPT4gJ05PTkUnLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ3Zpc2liaWxpdHknID0+IFsKICAgICAgICAgICAgICAgICAgICAnY29tLmxpbmtlZGluLnVnYy5NZW1iZXJOZXR3b3JrVmlzaWJpbGl0eScgPT4gJ1BVQkxJQycsCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICBdOwogICAgICAgIH0KCgogICAgICAgICRoZWFkZXJzID0gWwogICAgICAgICAgICAnQ29udGVudC1UeXBlJyA9PiAnYXBwbGljYXRpb24vanNvbicsCiAgICAgICAgICAgICd4LWxpLWZvcm1hdCcgID0+ICdqc29uJywKICAgICAgICAgICAgJ1gtUmVzdGxpLVByb3RvY29sLVZlcnNpb24nICA9PiAnMi4wLjAnLAogICAgICAgIF07CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCJ1Z2NQb3N0cyIsICdQT1NUJywgJHN0YXR1cywgJGhlYWRlcnMpOwoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHByZWZlcnJlZCBsb2NhbGUgZm9yIGdpdmVuIGZpZWxkLgogICAgICoKICAgICAqIEBwYXJhbSBcSHlicmlkYXV0aFxEYXRhXENvbGxlY3Rpb24gJGRhdGEKICAgICAqICAgQSBkYXRhIHRvIGNoZWNrLgogICAgICogQHBhcmFtIHN0cmluZyAkZmllbGRfbmFtZQogICAgICogICBBIGZpZWxkIG5hbWUgdG8gcGVyZm9ybS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICogICBBIGZpZWxkIGxvY2FsZS4KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFByZWZlcnJlZExvY2FsZSgkZGF0YSwgJGZpZWxkX25hbWUpIHsKICAgICAgICAkbG9jYWxlID0gJGRhdGEtPmZpbHRlcigkZmllbGRfbmFtZSktPmZpbHRlcigncHJlZmVycmVkTG9jYWxlJyk7CiAgICAgICAgaWYgKCRsb2NhbGUpIHsKICAgICAgICAgICAgcmV0dXJuICRsb2NhbGUtPmdldCgnbGFuZ3VhZ2UnKSAuICdfJyAuICRsb2NhbGUtPmdldCgnY291bnRyeScpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICdlbl9VUyc7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Mailru.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qIQ0KKiBIeWJyaWRhdXRoDQoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoDQoqICAoYykgMjAxNyBIeWJyaWRhdXRoIGF1dGhvcnMgfCBodHRwczovL2h5YnJpZGF1dGguZ2l0aHViLmlvL2xpY2Vuc2UuaHRtbA0KKi8NCg0KbmFtZXNwYWNlIEh5YnJpZGF1dGhcUHJvdmlkZXI7DQoNCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOw0KdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbjsNCnVzZSBIeWJyaWRhdXRoXERhdGFcQ29sbGVjdGlvbjsNCnVzZSBIeWJyaWRhdXRoXFVzZXJcUHJvZmlsZTsNCg0KLyoqDQogKiBNYWlscnUgcHJvdmlkZXIgYWRhcHRlci4NCiAqDQogKiBFeGFtcGxlOg0KICoNCiAqICAgJGNvbmZpZyA9IFsNCiAqICAgICAgICdjYWxsYmFjaycgID0+IEh5YnJpZGF1dGhcSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKCksDQogKiAgICAgICAna2V5cycgICAgICA9PiBbJ2lkJyA9PiAnJywgJ3NlY3JldCcgPT4gJyddLA0KICogICBdOw0KICoNCiAqICAgJGFkYXB0ZXIgPSBuZXcgSHlicmlkYXV0aFxQcm92aWRlclxNYWlscnUoJGNvbmZpZyk7DQogKg0KICogICB0cnkgew0KICogICAgICAgaWYgKCEkYWRhcHRlci0+aXNDb25uZWN0ZWQoKSkgew0KICogICAgICAgICAgICRhZGFwdGVyLT5hdXRoZW50aWNhdGUoKTsNCiAqICAgICAgIH0NCiAqDQogKiAgICAgICAkdXNlclByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsNCiAqICAgfQ0KICogICBjYXRjaChcRXhjZXB0aW9uICRlKSB7DQogKiAgICAgICBwcmludCAkZS0+Z2V0TWVzc2FnZSgpIDsNCiAqICAgfQ0KICovDQpjbGFzcyBNYWlscnUgZXh0ZW5kcyBPQXV0aDINCnsNCiAgICAvKioNCiAgICAgKiB7QGluaGVyaXRkb2N9DQogICAgICovDQogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHA6Ly93d3cuYXBwc21haWwucnUvcGxhdGZvcm0vYXBpJzsNCg0KICAgIC8qKg0KICAgICAqIHtAaW5oZXJpdGRvY30NCiAgICAgKi8NCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2Nvbm5lY3QubWFpbC5ydS9vYXV0aC9hdXRob3JpemUnOw0KDQogICAgLyoqDQogICAgICoge0Bpbmhlcml0ZG9jfQ0KICAgICAqLw0KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9jb25uZWN0Lm1haWwucnUvb2F1dGgvdG9rZW4nOw0KDQoNCiAgICAvKioNCiAgICAgKiB7QGluaGVyaXRkb2N9DQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkNCiAgICB7DQogICAgICAgICRzaWduID0gbWQ1KCdhcHBfaWQ9JyAuICR0aGlzLT5jbGllbnRJZCAuICdtZXRob2Q9dXNlcnMuZ2V0SW5mb3NlY3VyZT0xc2Vzc2lvbl9rZXk9JyAuICR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW4nKSAuICR0aGlzLT5jbGllbnRTZWNyZXQpOw0KDQogICAgICAgICRwYXJhbSA9IFsNCiAgICAgICAgICAgICdhcHBfaWQnID0+ICR0aGlzLT5jbGllbnRJZCwNCiAgICAgICAgICAgICdtZXRob2QnID0+ICd1c2Vycy5nZXRJbmZvJywNCiAgICAgICAgICAgICdzZWN1cmUnID0+IDEsDQogICAgICAgICAgICAnc2Vzc2lvbl9rZXknID0+ICR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW4nKSwNCiAgICAgICAgICAgICdzaWcnID0+ICRzaWduLA0KICAgICAgICBdOw0KDQogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCcnLCAnR0VUJywgJHBhcmFtKTsNCg0KICAgICAgICAkZGF0YSA9IG5ldyBDb2xsZWN0aW9uKCRyZXNwb25zZVswXSk7DQoNCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygndWlkJykpIHsNCiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOw0KICAgICAgICB9DQoNCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFByb2ZpbGUoKTsNCg0KICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgPSAkZGF0YS0+Z2V0KCd1aWQnKTsNCiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7DQogICAgICAgICR1c2VyUHJvZmlsZS0+Zmlyc3ROYW1lID0gJGRhdGEtPmdldCgnZmlyc3RfbmFtZScpOw0KICAgICAgICAkdXNlclByb2ZpbGUtPmxhc3ROYW1lID0gJGRhdGEtPmdldCgnbGFzdF9uYW1lJyk7DQogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduaWNrJyk7DQogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgPSAkZGF0YS0+Z2V0KCdwaWMnKTsNCiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMID0gJGRhdGEtPmdldCgnbGluaycpOw0KICAgICAgICAkdXNlclByb2ZpbGUtPmdlbmRlciA9ICRkYXRhLT5nZXQoJ3NleCcpOw0KICAgICAgICAkdXNlclByb2ZpbGUtPmFnZSA9ICRkYXRhLT5nZXQoJ2FnZScpOw0KDQogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7DQogICAgfQ0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/MicrosoftGraph.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiAqIEh5YnJpZGF1dGgKICogaHR0cHM6Ly9oeWJyaWRhdXRoLmdpdGh1Yi5pbyB8IGh0dHBzOi8vZ2l0aHViLmNvbS9oeWJyaWRhdXRoL2h5YnJpZGF1dGgKICogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiAqLwoKbmFtZXNwYWNlIEh5YnJpZGF1dGhcUHJvdmlkZXI7Cgp1c2UgSHlicmlkYXV0aFxBZGFwdGVyXE9BdXRoMjsKdXNlIEh5YnJpZGF1dGhcRGF0YTsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcVXNlcjsKCi8qKgogKiBNaWNyb3NvZnQgR3JhcGggcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIE1pY3Jvc29mdEdyYXBoIGV4dGVuZHMgT0F1dGgyCnsKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgJHNjb3BlID0gJ29wZW5pZCB1c2VyLnJlYWQgY29udGFjdHMucmVhZCc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMC8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi92Mi4wL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9vYXV0aDIvdjIuMC90b2tlbic7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpRG9jdW1lbnRhdGlvbiA9ICdodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL2dyYXBoL2RvY3MvY29uY2VwdHMvcGhwJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnbWUnKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygnaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICAgID0gJGRhdGEtPmdldCgnaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lICAgPSAkZGF0YS0+Z2V0KCdkaXNwbGF5TmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Zmlyc3ROYW1lICAgICA9ICRkYXRhLT5nZXQoJ2dpdmVuTmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgICAgICA9ICRkYXRhLT5nZXQoJ3N1cm5hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsICAgICAgICAgPSAkZGF0YS0+Z2V0KCdtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5sYW5ndWFnZSAgICAgID0gJGRhdGEtPmdldCgncHJlZmVycmVkTGFuZ3VhZ2UnKTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJDb250YWN0cygpCiAgICB7CiAgICAgICAgJGFwaVVybCAgID0gJ21lL2NvbnRhY3RzPyR0b3A9NTAnOwogICAgICAgICRjb250YWN0cyA9IFtdOwoKICAgICAgICBkbyB7CiAgICAgICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCRhcGlVcmwpOwogICAgICAgICAgICAkZGF0YSAgICAgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CiAgICAgICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygndmFsdWUnKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yZWFjaCAoJGRhdGEtPmZpbHRlcigndmFsdWUnKS0+dG9BcnJheSgpIGFzICRlbnRyeSkgewogICAgICAgICAgICAgICAgJGVudHJ5ID0gbmV3IERhdGFcQ29sbGVjdGlvbigkZW50cnkpOwogICAgICAgICAgICAgICAgJHVzZXJDb250YWN0ICAgICAgICAgICAgICA9IG5ldyBVc2VyXENvbnRhY3QoKTsKICAgICAgICAgICAgICAgICR1c2VyQ29udGFjdC0+aWRlbnRpZmllciAgPSAkZW50cnktPmdldCgnaWQnKTsKICAgICAgICAgICAgICAgICR1c2VyQ29udGFjdC0+ZGlzcGxheU5hbWUgPSAkZW50cnktPmdldCgnZGlzcGxheU5hbWUnKTsKICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGVudHJ5LT5nZXQoJ2VtYWlsQWRkcmVzc2VzJykpKSB7CiAgICAgICAgICAgICAgICAgICAgJHVzZXJDb250YWN0LT5lbWFpbCA9ICRlbnRyeS0+Z2V0KCdlbWFpbEFkZHJlc3NlcycpWzBdLT5hZGRyZXNzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gb25seSBhZGQgdG8gY29sbGVjdGlvbiBpZiB3ZSBoYXZlIHVzZWZ1bGwgZGF0YQogICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkdXNlckNvbnRhY3QtPmRpc3BsYXlOYW1lKSB8fCAhZW1wdHkoJHVzZXJDb250YWN0LT5lbWFpbCkpIHsKICAgICAgICAgICAgICAgICAgICAkY29udGFjdHNbXSA9ICR1c2VyQ29udGFjdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRkYXRhLT5leGlzdHMoJ0BvZGF0YS5uZXh0TGluaycpKSB7CiAgICAgICAgICAgICAgICAkYXBpVXJsID0gJGRhdGEtPmdldCgnQG9kYXRhLm5leHRMaW5rJyk7CgogICAgICAgICAgICAgICAgJHBhZ2VkTGlzdCA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcGFnZWRMaXN0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcGFnZWRMaXN0KTsKCiAgICAgICAgcmV0dXJuICRjb250YWN0czsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Odnoklassniki.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxVc2VyOwovKioKICogT2Rub2tsYXNzbmlraSBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICoKICogRXhhbXBsZToKICoKICogICAkY29uZmlnID0gWwogKiAgICAgICAnY2FsbGJhY2snICA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAogKiAgICAgICAna2V5cycgICAgICA9PiBbJ2lkJyA9PiAnJywgJ2tleScgPT4gJycsICdzZWNyZXQnID0+ICcnXSwKICogICBdOwoKICogICAkYWRhcHRlciA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXE9kbm9rbGFzc25pa2koJGNvbmZpZyk7CiAqCiAqICAgdHJ5IHsKICogICAgICAgaWYgKCEkYWRhcHRlci0+aXNDb25uZWN0ZWQoKSkgewogKiAgICAgICAgICAgJGFkYXB0ZXItPmF1dGhlbnRpY2F0ZSgpOwogKiAgICAgICB9CiAqCiAqICAgICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwogKiAgIH0KICogICBjYXRjaChcRXhjZXB0aW9uICRlKSB7CiAqICAgICAgIHByaW50ICRlLT5nZXRNZXNzYWdlKCkgOwogKiAgIH0KICovCmNsYXNzIE9kbm9rbGFzc25pa2kgZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkub2sucnUvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vY29ubmVjdC5vay5ydS9vYXV0aC9hdXRob3JpemUnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2FwaS5vay5ydS9vYXV0aC90b2tlbi5kbyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICRmaWVsZHMgPSBhcnJheSgKICAgICAgICAgICAgJ3VpZCcsICdsb2NhbGUnLCAnZmlyc3RfbmFtZScsICdsYXN0X25hbWUnLCAnbmFtZScsICdnZW5kZXInLCAnYWdlJywgJ2JpcnRoZGF5JywKICAgICAgICAgICAgJ2hhc19lbWFpbCcsICdjdXJyZW50X3N0YXR1cycsICdjdXJyZW50X3N0YXR1c19pZCcsICdjdXJyZW50X3N0YXR1c19kYXRlJywnb25saW5lJywKICAgICAgICAgICAgJ3Bob3RvX2lkJywgJ3BpY18xJywgJ3BpY18yJywgJ3BpYzEwMjR4NzY4JywgJ2xvY2F0aW9uJywgJ2VtYWlsJwogICAgICAgICk7CgogICAgICAgICRzaWcgPSBtZDUoCiAgICAgICAgICAgICdhcHBsaWNhdGlvbl9rZXk9JyAuICR0aGlzLT5jb25maWctPmdldCgna2V5cycpWydrZXknXSAuCiAgICAgICAgICAgICdmaWVsZHM9JyAuIGltcGxvZGUoJywnLCAkZmllbGRzKSAuCiAgICAgICAgICAgICdtZXRob2Q9dXNlcnMuZ2V0Q3VycmVudFVzZXInIC4KICAgICAgICAgICAgbWQ1KCR0aGlzLT5nZXRTdG9yZWREYXRhKCdhY2Nlc3NfdG9rZW4nKSAuICR0aGlzLT5jb25maWctPmdldCgna2V5cycpWydzZWNyZXQnXSkKICAgICAgICApOwoKICAgICAgICAkcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgICAgPT4gJHRoaXMtPmdldFN0b3JlZERhdGEoJ2FjY2Vzc190b2tlbicpLAogICAgICAgICAgICAnYXBwbGljYXRpb25fa2V5JyA9PiAkdGhpcy0+Y29uZmlnLT5nZXQoJ2tleXMnKVsna2V5J10sCiAgICAgICAgICAgICdtZXRob2QnICAgICAgICAgID0+ICd1c2Vycy5nZXRDdXJyZW50VXNlcicsCiAgICAgICAgICAgICdmaWVsZHMnICAgICAgICAgID0+IGltcGxvZGUoJywnLCAkZmllbGRzKSwKICAgICAgICAgICAgJ3NpZycgICAgICAgICAgICAgPT4gJHNpZywKICAgICAgICBdOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnZmIuZG8nLCAnR0VUJywgJHBhcmFtZXRlcnMpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygndWlkJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgID0gJGRhdGEtPmdldCgndWlkJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCAgICAgICA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5maXJzdE5hbWUgICA9ICRkYXRhLT5nZXQoJ2ZpcnN0X25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmxhc3ROYW1lICAgID0gJGRhdGEtPmdldCgnbGFzdF9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkYXRhLT5nZXQoJ25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMICAgID0gJGRhdGEtPmdldCgncGljMTAyNHg3NjgnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwgID0gJ2h0dHA6Ly9vay5ydS9wcm9maWxlLycgLiAkZGF0YS0+Z2V0KCd1aWQnKTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/OpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXI7CgovKioKICogR2VuZXJpYyBPcGVuSUQgcHJvdmlkZXJzIGFkYXB0ZXIuCiAqCiAqIEV4YW1wbGU6CiAqCiAqICAgJGNvbmZpZyA9IFsKICogICAgICAgJ2NhbGxiYWNrJyA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAogKgogKiAgICAgICAvLyAgYXV0aGVudGljYXRlIHdpdGggWWFob28gb3BlbmlkCiAqICAgICAgICdvcGVuaWRfaWRlbnRpZmllcicgPT4gJ2h0dHBzOi8vb3Blbi5sb2dpbi55YWhvb2FwaXMuY29tL29wZW5pZDIwL3d3dy55YWhvby5jb20veHJkcycgCiAqCiAqICAgICAgIC8vICBhdXRoZW50aWNhdGUgd2l0aCBzdGFja2V4Y2hhbmdlIG5ldHdvcmsgb3BlbmlkCiAqICAgICAgIC8vICdvcGVuaWRfaWRlbnRpZmllcicgPT4gJ2h0dHBzOi8vb3BlbmlkLnN0YWNrZXhjaGFuZ2UuY29tLycsCiAqCiAqICAgICAgIC8vICBhdXRoZW50aWNhdGUgd2l0aCBTdGVhbSBvcGVuaWQgCiAqICAgICAgIC8vICdvcGVuaWRfaWRlbnRpZmllcicgPT4gJ2h0dHA6Ly9zdGVhbWNvbW11bml0eS5jb20vb3BlbmlkJywKICoKICogICAgICAgLy8gZXRjLgogKiAgIF07CiAqCiAqICAgJGFkYXB0ZXIgPSBuZXcgSHlicmlkYXV0aFxQcm92aWRlclxPcGVuSUQoICRjb25maWcgKTsKICoKICogICB0cnkgewogKiAgICAgICAkYWRhcHRlci0+YXV0aGVudGljYXRlKCk7CiAqCiAqICAgICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwogKiAgIH0KICogICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApewogKiAgICAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCkgOwogKiAgIH0KICovCmNsYXNzIE9wZW5JRCBleHRlbmRzIEFkYXB0ZXJcT3BlbklECnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Paypal.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFBheXBhbCBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICoKICogRXhhbXBsZToKICoKICogICAkY29uZmlnID0gWwogKiAgICAgICAnY2FsbGJhY2snID0+IEh5YnJpZGF1dGhcSHR0cENsaWVudFxVdGlsOjpnZXRDdXJyZW50VXJsKCksCiAqICAgICAgICdrZXlzJyAgICAgPT4gWyAnaWQnID0+ICcnLCAnc2VjcmV0JyA9PiAnJyBdLAogKiAgICAgICAnc2NvcGUnICAgID0+ICdvcGVuaWQgcHJvZmlsZSBlbWFpbCcsCiAqICAgXTsKICoKICogICAkYWRhcHRlciA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXFBheXBhbCggJGNvbmZpZyApOwogKgogKiAgIHRyeSB7CiAqICAgICAgICRhZGFwdGVyLT5hdXRoZW50aWNhdGUoKTsKICoKICogICAgICAgJHVzZXJQcm9maWxlID0gJGFkYXB0ZXItPmdldFVzZXJQcm9maWxlKCk7CiAqICAgICAgICR0b2tlbnMgPSAkYWRhcHRlci0+Z2V0QWNjZXNzVG9rZW4oKTsKICogICAgICAgJHByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsKICogICB9CiAqICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApewogKiAgICAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCkgOwogKiAgIH0KICovCmNsYXNzIFBheXBhbCBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyAkc2NvcGUgPSAnb3BlbmlkIHByb2ZpbGUgZW1haWwgYWRkcmVzcyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkucGF5cGFsLmNvbS8nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9zaWduaW4vYXV0aG9yaXplJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9hcGkucGF5cGFsLmNvbS92MS9vYXV0aDIvdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlEb2N1bWVudGF0aW9uID0gJ2h0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvb3ZlcnZpZXcvIyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCiAgICB7CiAgICAgICAgcGFyZW50Ojppbml0aWFsaXplKCk7CgogICAgICAgICR0aGlzLT5BdXRob3JpemVVcmxQYXJhbWV0ZXJzICs9IFsKICAgICAgICAgICAgJ2Zsb3dFbnRyeScgPT4gJ3N0YXRpYycKICAgICAgICBdOwoKICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZUhlYWRlcnMgPSBbCiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJyA9PiAnQmFzaWMgJyAuIGJhc2U2NF9lbmNvZGUoJHRoaXMtPmNsaWVudElkIC4gICc6JyAuICR0aGlzLT5jbGllbnRTZWNyZXQpCiAgICAgICAgXTsKCiAgICAgICAgJHRoaXMtPnRva2VuUmVmcmVzaEhlYWRlcnMgPSBbCiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJyA9PiAnQmFzaWMgJyAuIGJhc2U2NF9lbmNvZGUoJHRoaXMtPmNsaWVudElkIC4gICc6JyAuICR0aGlzLT5jbGllbnRTZWNyZXQpCiAgICAgICAgXTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKgogICAgKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvaWRlbnRpdHkvdjEvCiAgICAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2Nvbm5lY3Qtd2l0aC1wYXlwYWwvaW50ZWdyYXRlLwogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJGhlYWRlcnMgPSBbCiAgICAgICAgICAgICdDb250ZW50LVR5cGUnID0+ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICBdOwoKICAgICAgICAkcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ3NjaGVtYScgPT4gJ3BheXBhbHYxLjEnCiAgICAgICAgXTsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ3YxL2lkZW50aXR5L29hdXRoMi91c2VyaW5mbycsICdHRVQnLCAkcGFyYW1ldGVycywgJGhlYWRlcnMpOwogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISAkZGF0YS0+ZXhpc3RzKCd1c2VyX2lkJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ3VzZXJfaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAgID0gJGRhdGEtPmdldCgnZ2l2ZW5fbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgICAgPSAkZGF0YS0+Z2V0KCdmYW1pbHlfbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5hZGRyZXNzICAgICA9ICRkYXRhLT5maWx0ZXIoJ2FkZHJlc3MnKS0+Z2V0KCdzdHJlZXRfYWRkcmVzcycpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Y2l0eSAgICAgICAgPSAkZGF0YS0+ZmlsdGVyKCdhZGRyZXNzJyktPmdldCgnbG9jYWxpdHknKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmNvdW50cnkgICAgID0gJGRhdGEtPmZpbHRlcignYWRkcmVzcycpLT5nZXQoJ2NvdW50cnknKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnJlZ2lvbiAgICAgID0gJGRhdGEtPmZpbHRlcignYWRkcmVzcycpLT5nZXQoJ3JlZ2lvbicpOwogICAgICAgICR1c2VyUHJvZmlsZS0+emlwICAgICAgICAgPSAkZGF0YS0+ZmlsdGVyKCdhZGRyZXNzJyktPmdldCgncG9zdGFsX2NvZGUnKTsKCiAgICAgICAgJGVtYWlscyA9ICRkYXRhLT5maWx0ZXIoJ2VtYWlscycpLT50b0FycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJGVtYWlscyBhcyAkZW1haWwpIHsKICAgICAgICAgICAgJGVtYWlsID0gbmV3IERhdGFcQ29sbGVjdGlvbigkZW1haWwpOwogICAgICAgICAgICBpZiAoJGVtYWlsLT5nZXQoJ2NvbmZpcm1lZCcpKSB7CiAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSAkZW1haWwtPmdldCgndmFsdWUnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRlbWFpbC0+Z2V0KCdwcmltYXJ5JykpIHsKICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgPSAkZW1haWwtPmdldCgndmFsdWUnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/PaypalOpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT3BlbklEOwp1c2UgSHlicmlkYXV0aFxIdHRwQ2xpZW50OwoKLyoqCiAqIFBheVBhbCBPcGVuSUQgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIFBheXBhbE9wZW5JRCBleHRlbmRzIE9wZW5JRAp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkb3BlbmlkSWRlbnRpZmllciA9ICdodHRwczovL3d3dy5zYW5kYm94LnBheXBhbC5jb20vd2ViYXBwcy9hdXRoL3NlcnZlcic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlQmVnaW4oKQogICAgewogICAgICAgICR0aGlzLT5vcGVuSWRDbGllbnQtPmlkZW50aXR5ICA9ICR0aGlzLT5vcGVuaWRJZGVudGlmaWVyOwogICAgICAgICR0aGlzLT5vcGVuSWRDbGllbnQtPnJldHVyblVybCA9ICR0aGlzLT5jYWxsYmFjazsKICAgICAgICAkdGhpcy0+b3BlbklkQ2xpZW50LT5yZXF1aXJlZCAgPSBbCiAgICAgICAgICAgICduYW1lUGVyc29uL3ByZWZpeCcsCiAgICAgICAgICAgICduYW1lUGVyc29uL2ZpcnN0JywKICAgICAgICAgICAgJ25hbWVQZXJzb24vbGFzdCcsCiAgICAgICAgICAgICduYW1lUGVyc29uL21pZGRsZScsCiAgICAgICAgICAgICduYW1lUGVyc29uL3N1ZmZpeCcsCiAgICAgICAgICAgICduYW1lUGVyc29uL2ZyaWVuZGx5JywKICAgICAgICAgICAgJ3BlcnNvbi9ndWlkJywKICAgICAgICAgICAgJ2JpcnRoRGF0ZS9iaXJ0aFllYXInLAogICAgICAgICAgICAnYmlydGhEYXRlL2JpcnRoTW9udGgnLAogICAgICAgICAgICAnYmlydGhEYXRlL2JpcnRoZGF5JywKICAgICAgICAgICAgJ2dlbmRlcicsCiAgICAgICAgICAgICdsYW5ndWFnZS9wcmVmJywKICAgICAgICAgICAgJ2NvbnRhY3QvcGhvbmUvZGVmYXVsdCcsCiAgICAgICAgICAgICdjb250YWN0L3Bob25lL2hvbWUnLAogICAgICAgICAgICAnY29udGFjdC9waG9uZS9idXNpbmVzcycsCiAgICAgICAgICAgICdjb250YWN0L3Bob25lL2NlbGwnLAogICAgICAgICAgICAnY29udGFjdC9waG9uZS9mYXgnLAogICAgICAgICAgICAnY29udGFjdC9wb3N0YWxhZGRyZXNzL2hvbWUnLAogICAgICAgICAgICAnY29udGFjdC9wb3N0YWxhZGRyZXNzYWRkaXRpb25hbC9ob21lJywKICAgICAgICAgICAgJ2NvbnRhY3QvY2l0eS9ob21lJywKICAgICAgICAgICAgJ2NvbnRhY3Qvc3RhdGUvaG9tZScsCiAgICAgICAgICAgICdjb250YWN0L2NvdW50cnkvaG9tZScsCiAgICAgICAgICAgICdjb250YWN0L3Bvc3RhbGNvZGUvaG9tZScsCiAgICAgICAgICAgICdjb250YWN0L3Bvc3RhbGFkZHJlc3MvYnVzaW5lc3MnLAogICAgICAgICAgICAnY29udGFjdC9wb3N0YWxhZGRyZXNzYWRkaXRpb25hbC9idXNpbmVzcycsCiAgICAgICAgICAgICdjb250YWN0L2NpdHkvYnVzaW5lc3MnLAogICAgICAgICAgICAnY29udGFjdC9zdGF0ZS9idXNpbmVzcycsCiAgICAgICAgICAgICdjb250YWN0L2NvdW50cnkvYnVzaW5lc3MnLAogICAgICAgICAgICAnY29udGFjdC9wb3N0YWxjb2RlL2J1c2luZXNzJywKICAgICAgICAgICAgJ2NvbXBhbnkvbmFtZScsCiAgICAgICAgICAgICdjb21wYW55L3RpdGxlJywKICAgICAgICBdOwoKICAgICAgICBIdHRwQ2xpZW50XFV0aWw6OnJlZGlyZWN0KCR0aGlzLT5vcGVuSWRDbGllbnQtPmF1dGhVcmwoKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Reddit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFJlZGRpdCBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIFJlZGRpdCBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkc2NvcGUgPSAnaWRlbnRpdHknOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vb2F1dGgucmVkZGl0LmNvbS9hcGkvdjEvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vc3NsLnJlZGRpdC5jb20vYXBpL3YxL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vc3NsLnJlZGRpdC5jb20vYXBpL3YxL2FjY2Vzc190b2tlbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9naXRodWIuY29tL3JlZGRpdC9yZWRkaXQvd2lraS9PQXV0aDInOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgIHBhcmVudDo6aW5pdGlhbGl6ZSgpOwoKICAgICAgICAkdGhpcy0+QXV0aG9yaXplVXJsUGFyYW1ldGVycyArPSBbCiAgICAgICAgICAgICdkdXJhdGlvbicgPT4gJ3Blcm1hbmVudCcKICAgICAgICBdOwoKICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZVBhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICdjbGllbnRfaWQnICAgID0+ICR0aGlzLT5jbGllbnRJZCwKICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsCiAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICR0aGlzLT5jYWxsYmFjawogICAgICAgIF07CgogICAgICAgICR0aGlzLT50b2tlbkV4Y2hhbmdlSGVhZGVycyA9IFsKICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nID0+ICdCYXNpYyAnIC4gYmFzZTY0X2VuY29kZSgkdGhpcy0+Y2xpZW50SWQgLiAgJzonIC4gJHRoaXMtPmNsaWVudFNlY3JldCkKICAgICAgICBdOwoKICAgICAgICAkdGhpcy0+dG9rZW5SZWZyZXNoSGVhZGVycyA9ICR0aGlzLT50b2tlbkV4Y2hhbmdlSGVhZGVyczsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ21lLmpzb24nKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghICRkYXRhLT5leGlzdHMoJ2lkJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICA9ICdodHRwczovL3d3dy5yZWRkaXQuY29tL3VzZXIvJyAuICRkYXRhLT5nZXQoJ25hbWUnKSAuICcvJzsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Spotify.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFNwb3RpZnkgT0F1dGgyIHByb3ZpZGVyIGFkYXB0ZXIuCiAqLwpjbGFzcyBTcG90aWZ5IGV4dGVuZHMgT0F1dGgyCnsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljICRzY29wZSA9ICd1c2VyLXJlYWQtZW1haWwnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuc3BvdGlmeS5jb20vdjEvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9hY2NvdW50cy5zcG90aWZ5LmNvbS9hdXRob3JpemUnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vYWNjb3VudHMuc3BvdGlmeS5jb20vYXBpL3Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnbWUnKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygnaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyID0gJGRhdGEtPmdldCgnaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJGRhdGEtPmdldCgnZGlzcGxheV9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbFZlcmlmaWVkID0gJGRhdGEtPmdldCgnZW1haWwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwgPSAkZGF0YS0+ZmlsdGVyKCdleHRlcm5hbF91cmxzJyktPmdldCgnc3BvdGlmeScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgPSAkZGF0YS0+ZmlsdGVyKCdpbWFnZXMnKS0+Z2V0KCd1cmwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmNvdW50cnkgPSAkZGF0YS0+Z2V0KCdjb3VudHJ5Jyk7CgogICAgICAgIGlmICgkZGF0YS0+ZXhpc3RzKCdiaXJ0aGRhdGUnKSkgewogICAgICAgICAgICAkdGhpcy0+ZmV0Y2hCaXJ0aGRheSgkdXNlclByb2ZpbGUsICRkYXRhLT5nZXQoJ2JpcnRoZGF0ZScpKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBGZXRjaCB1c2UgYmlydGhkYXkKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZldGNoQmlydGhkYXkoVXNlclxQcm9maWxlICR1c2VyUHJvZmlsZSwgJGJpcnRoZGF5KQogICAgewogICAgICAgICRyZXN1bHQgPSAobmV3IERhdGFcUGFyc2VyKCkpLT5wYXJzZUJpcnRoZGF5KCRiaXJ0aGRheSwgJy0nKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5iaXJ0aERheSA9IChpbnQpJHJlc3VsdFswXTsKICAgICAgICAkdXNlclByb2ZpbGUtPmJpcnRoTW9udGggPSAoaW50KSRyZXN1bHRbMV07CiAgICAgICAgJHVzZXJQcm9maWxlLT5iaXJ0aFllYXIgPSAoaW50KSRyZXN1bHRbMl07CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/StackExchange.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFN0YWNrRXhjaGFuZ2UgT0F1dGgyIHByb3ZpZGVyIGFkYXB0ZXIuCiAqCiAqIEV4YW1wbGU6CiAqCiAqICAgJGNvbmZpZyA9IFsKICogICAgICAgJ2NhbGxiYWNrJyA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAogKiAgICAgICAna2V5cycgICAgID0+IFsgJ2lkJyA9PiAnJywgJ3NlY3JldCcgPT4gJycgXSwKICogICAgICAgJ3NpdGUnICAgICA9PiAnc3RhY2tvdmVyZmxvdycKICogICAgICAgJ2FwaV9rZXknICA9PiAnLi4uJyAvLyB0aGF0IHRoaW5nIHRvIHJlY2VpdmUgYSBoaWdoZXIgcmVxdWVzdCBxdW90YS4KICogICBdOwogKgogKiAgICRhZGFwdGVyID0gbmV3IEh5YnJpZGF1dGhcUHJvdmlkZXJcU3RhY2tFeGNoYW5nZSggJGNvbmZpZyApOwogKgogKiAgICRhZGFwdGVyLT5hdXRoZW50aWNhdGUoKTsKICoKICogICAkdXNlclByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsKICovCmNsYXNzIFN0YWNrRXhjaGFuZ2UgZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJHNjb3BlID0gbnVsbDsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2FwaS5zdGFja2V4Y2hhbmdlLmNvbS8yLjIvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vc3RhY2tleGNoYW5nZS5jb20vb2F1dGgnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL3N0YWNrZXhjaGFuZ2UuY29tL29hdXRoL2FjY2Vzc190b2tlbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9hcGkuc3RhY2tleGNoYW5nZS5jb20vZG9jcy9hdXRoZW50aWNhdGlvbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCiAgICB7CiAgICAgICAgcGFyZW50Ojppbml0aWFsaXplKCk7CgogICAgICAgICRhcGlLZXkgPSAkdGhpcy0+Y29uZmlnLT5nZXQoJ2FwaV9rZXknKTsKCiAgICAgICAgJHRoaXMtPmFwaVJlcXVlc3RQYXJhbWV0ZXJzID0gWyAna2V5JyA9PiAkYXBpS2V5XTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHNpdGUgPSAkdGhpcy0+Y29uZmlnLT5nZXQoJ3NpdGUnKTsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ21lP3NpdGU9JyAuICRzaXRlKTsKCiAgICAgICAgaWYgKCEgJHJlc3BvbnNlIHx8ICFpc3NldCgkcmVzcG9uc2UtPml0ZW1zKSB8fCAhaXNzZXQoJHJlc3BvbnNlLT5pdGVtc1swXSkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlLT5pdGVtc1swXSk7CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ2lkJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA9ICRkYXRhLT5nZXQoJ2Rpc3BsYXlfbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlX2ltYWdlJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICA9ICRkYXRhLT5nZXQoJ2xpbmsnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnJlZ2lvbiAgICAgID0gJGRhdGEtPmdldCgnbG9jYXRpb24nKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmFnZSAgICAgICAgID0gJGRhdGEtPmdldCgnYWdlJyk7CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/StackExchangeOpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT3BlbklEOwoKLyoqCiAqIFN0YWNrRXhjaGFuZ2UgT3BlbklEIHByb3ZpZGVyIGFkYXB0ZXIuCiAqLwpjbGFzcyBTdGFja0V4Y2hhbmdlT3BlbklEIGV4dGVuZHMgT3BlbklECnsKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRvcGVuaWRJZGVudGlmaWVyID0gJ2h0dHBzOi8vb3BlbmlkLnN0YWNrZXhjaGFuZ2UuY29tLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlRmluaXNoKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OmF1dGhlbnRpY2F0ZUZpbmlzaCgpOwoKICAgICAgICAkdXNlclByb2ZpbGUgPSAkdGhpcy0+c3RvcmFnZS0+Z2V0KCR0aGlzLT5wcm92aWRlcklkIC4gJy51c2VyJyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgICA9ICFlbXB0eSgkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIpID8gJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyIDogJHVzZXJQcm9maWxlLT5lbWFpbDsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSAkdXNlclByb2ZpbGUtPmVtYWlsOwoKICAgICAgICAvLyByZSBzdG9yZSB0aGUgdXNlciBwcm9maWxlCiAgICAgICAgJHRoaXMtPnN0b3JhZ2UtPnNldCgkdGhpcy0+cHJvdmlkZXJJZCAuICcudXNlcicsICR1c2VyUHJvZmlsZSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Steam.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT3BlbklEOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFN0ZWFtIE9wZW5JRCBwcm92aWRlciBhZGFwdGVyLgogKgogKiBFeGFtcGxlOgogKgogKiAgICRjb25maWcgPSBbCiAqICAgICAgICdjYWxsYmFjaycgPT4gSHlicmlkYXV0aFxIdHRwQ2xpZW50XFV0aWw6OmdldEN1cnJlbnRVcmwoKSwKICogICAgICAgJ2tleXMnICAgICA9PiBbICdzZWNyZXQnID0+ICdzdGVhbS1hcGkta2V5JyBdCiAqICAgXTsKICoKICogICAkYWRhcHRlciA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXFN0ZWFtKCAkY29uZmlnICk7CiAqCiAqICAgJGFkYXB0ZXItPmF1dGhlbnRpY2F0ZSgpOwoKICogICAkdXNlclByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsKICovCmNsYXNzIFN0ZWFtIGV4dGVuZHMgT3BlbklECnsKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRvcGVuaWRJZGVudGlmaWVyID0gJ2h0dHA6Ly9zdGVhbWNvbW11bml0eS5jb20vb3BlbmlkJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGVGaW5pc2goKQogICAgewogICAgICAgIHBhcmVudDo6YXV0aGVudGljYXRlRmluaXNoKCk7CgogICAgICAgICR1c2VyUHJvZmlsZSA9ICR0aGlzLT5zdG9yYWdlLT5nZXQoJHRoaXMtPnByb3ZpZGVySWQgLiAnLnVzZXInKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyID0gc3RyX2lyZXBsYWNlKGFycmF5KCdodHRwOi8vc3RlYW1jb21tdW5pdHkuY29tL29wZW5pZC9pZC8nLCAnaHR0cHM6Ly9zdGVhbWNvbW11bml0eS5jb20vb3BlbmlkL2lkLycpLCAnJywgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyKTsKCiAgICAgICAgaWYgKCEgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGFwaUtleSA9ICR0aGlzLT5jb25maWctPmZpbHRlcigna2V5cycpLT5nZXQoJ3NlY3JldCcpOwoKICAgICAgICAgICAgLy8gaWYgYXBpIGtleSBpcyBwcm92aWRlZCwgd2UgYXR0ZW1wdCB0byB1c2Ugc3RlYW0gd2ViIGFwaQogICAgICAgICAgICBpZiAoJGFwaUtleSkgewogICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5nZXRVc2VyUHJvZmlsZVdlYkFQSSgkYXBpS2V5LCAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBmYWxsYmFjayB0byBjb21tdW5pdHkgZGF0YQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0VXNlclByb2ZpbGVMZWdhY3lBUEkoJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZmV0Y2ggdXNlciBwcm9maWxlCiAgICAgICAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJGsgPT4gJHYpIHsKICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+JGsgPSAkdiA/OiAkdXNlclByb2ZpbGUtPiRrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIHRoZXNlIGRhdGEgYXJlIG5vdCBtYW5kYXRvcnksIHNvIGtlZXAgaXQgcXVpdGUKICAgICAgICBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgICAgIH0KCiAgICAgICAgLy8gc3RvcmUgdXNlciBwcm9maWxlCiAgICAgICAgJHRoaXMtPnN0b3JhZ2UtPnNldCgkdGhpcy0+cHJvdmlkZXJJZCAuICcudXNlcicsICR1c2VyUHJvZmlsZSk7CiAgICB9CgogICAgLyoqCiAgICAqIEZldGNoIHVzZXIgcHJvZmlsZSBvbiBTdGVhbSB3ZWIgQVBJCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlV2ViQVBJKCRhcGlLZXksICRzdGVhbTY0KQogICAgewogICAgICAgICRhcGlVcmwgPSAnaHR0cDovL2FwaS5zdGVhbXBvd2VyZWQuY29tL0lTdGVhbVVzZXIvR2V0UGxheWVyU3VtbWFyaWVzL3YwMDAyLz9rZXk9JyAuICRhcGlLZXkgLiAnJnN0ZWFtaWRzPScgLiAkc3RlYW02NDsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmh0dHBDbGllbnQtPnJlcXVlc3QoJGFwaVVybCk7CgogICAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlKTsKCiAgICAgICAgJGRhdGEgPSBpc3NldCgkZGF0YS0+cmVzcG9uc2UtPnBsYXllcnNbMF0pID8gJGRhdGEtPnJlc3BvbnNlLT5wbGF5ZXJzWzBdIDogbnVsbDsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRkYXRhKTsKCiAgICAgICAgJHVzZXJQcm9maWxlID0gW107CgogICAgICAgICR1c2VyUHJvZmlsZVsnZGlzcGxheU5hbWUnXSA9IChzdHJpbmcpJGRhdGEtPmdldCgncGVyc29uYW5hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGVbJ2ZpcnN0TmFtZSddID0gKHN0cmluZykkZGF0YS0+Z2V0KCdyZWFsbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZVsncGhvdG9VUkwnXSA9IChzdHJpbmcpJGRhdGEtPmdldCgnYXZhdGFyZnVsbCcpOwogICAgICAgICR1c2VyUHJvZmlsZVsncHJvZmlsZVVSTCddID0gKHN0cmluZykkZGF0YS0+Z2V0KCdwcm9maWxldXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlWydjb3VudHJ5J10gPSAoc3RyaW5nKSRkYXRhLT5nZXQoJ2xvY2NvdW50cnljb2RlJyk7CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9CgogICAgLyoqCiAgICAqIEZldGNoIHVzZXIgcHJvZmlsZSBvbiBjb21tdW5pdHkgQVBJCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlTGVnYWN5QVBJKCRzdGVhbTY0KQogICAgewogICAgICAgIGxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKGZhbHNlKTsKCiAgICAgICAgJGFwaVVybCA9ICdodHRwOi8vc3RlYW1jb21tdW5pdHkuY29tL3Byb2ZpbGVzLycgLiAkc3RlYW02NCAuICcvP3htbD0xJzsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmh0dHBDbGllbnQtPnJlcXVlc3QoJGFwaVVybCk7CgogICAgICAgICRkYXRhID0gbmV3IFxTaW1wbGVYTUxFbGVtZW50KCRyZXNwb25zZSk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkZGF0YSk7CgogICAgICAgICR1c2VyUHJvZmlsZSA9IFtdOwoKICAgICAgICAkdXNlclByb2ZpbGVbJ2Rpc3BsYXlOYW1lJ10gPSAoc3RyaW5nKSRkYXRhLT5nZXQoJ3N0ZWFtSUQnKTsKICAgICAgICAkdXNlclByb2ZpbGVbJ2ZpcnN0TmFtZSddID0gKHN0cmluZykkZGF0YS0+Z2V0KCdyZWFsbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZVsncGhvdG9VUkwnXSA9IChzdHJpbmcpJGRhdGEtPmdldCgnYXZhdGFyRnVsbCcpOwogICAgICAgICR1c2VyUHJvZmlsZVsnZGVzY3JpcHRpb24nXSA9IChzdHJpbmcpJGRhdGEtPmdldCgnc3VtbWFyeScpOwogICAgICAgICR1c2VyUHJvZmlsZVsncmVnaW9uJ10gPSAoc3RyaW5nKSRkYXRhLT5nZXQoJ2xvY2F0aW9uJyk7CiAgICAgICAgJHVzZXJQcm9maWxlWydwcm9maWxlVVJMJ10gPSAoc3RyaW5nKSRkYXRhLT5nZXQoJ2N1c3RvbVVSTCcpCiAgICAgICAgICA/ICdodHRwOi8vc3RlYW1jb21tdW5pdHkuY29tL2lkLycgLiAoc3RyaW5nKSRkYXRhLT5nZXQoJ2N1c3RvbVVSTCcpCiAgICAgICAgICA6ICdodHRwOi8vc3RlYW1jb21tdW5pdHkuY29tL3Byb2ZpbGVzLycgLiAkc3RlYW02NDsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/SteemConnect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIEluc3RhZ3JhbSBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIFN0ZWVtQ29ubmVjdCBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRzY29wZSA9ICdsb2dpbix2b3RlJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vdjIuc3RlZW1jb25uZWN0LmNvbS8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL3YyLnN0ZWVtY29ubmVjdC5jb20vb2F1dGgyL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly92Mi5zdGVlbWNvbm5lY3QuY29tL2FwaS9vYXV0aDIvdG9rZW4nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9zdGVlbWNvbm5lY3QuY29tLyc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ2FwaS9tZScpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygncmVzdWx0JykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgICRkYXRhID0gJGRhdGEtPmZpbHRlcigncmVzdWx0Jyk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGVzY3JpcHRpb24gPSAkZGF0YS0+Z2V0KCdhYm91dCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlX2ltYWdlJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT53ZWJTaXRlVVJMICA9ICRkYXRhLT5nZXQoJ3dlYnNpdGUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJGRhdGEtPmdldCgnbmFtZScpOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Tumblr.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgxOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFR1bWJsciBPQXV0aDEgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIFR1bWJsciBleHRlbmRzIE9BdXRoMQp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2FwaS50dW1ibHIuY29tL3YyLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL3d3dy50dW1ibHIuY29tL29hdXRoL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJHJlcXVlc3RUb2tlblVybCA9ICdodHRwczovL3d3dy50dW1ibHIuY29tL29hdXRoL3JlcXVlc3RfdG9rZW4nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL3d3dy50dW1ibHIuY29tL29hdXRoL2FjY2Vzc190b2tlbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly93d3cudHVtYmxyLmNvbS9kb2NzL2VuL2FwaS92Mic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCd1c2VyL2luZm8nKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghICRkYXRhLT5leGlzdHMoJ3Jlc3BvbnNlJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+ZmlsdGVyKCdyZXNwb25zZScpLT5maWx0ZXIoJ3VzZXInKS0+Z2V0KCduYW1lJyk7CgogICAgICAgIGZvcmVhY2ggKCRkYXRhLT5maWx0ZXIoJ3Jlc3BvbnNlJyktPmZpbHRlcigndXNlcicpLT5maWx0ZXIoJ2Jsb2dzJyktPnRvQXJyYXkoKSBhcyAkYmxvZykgewogICAgICAgICAgICAkYmxvZyA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJGJsb2cpOwoKICAgICAgICAgICAgaWYgKCRibG9nLT5nZXQoJ3ByaW1hcnknKSAmJiAkYmxvZy0+ZXhpc3RzKCd1cmwnKSkgewogICAgICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRibG9nLT5nZXQoJ3VybCcpOwogICAgICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICA9ICRibG9nLT5nZXQoJ3VybCcpOwogICAgICAgICAgICAgICAgJHVzZXJQcm9maWxlLT53ZWJTaXRlVVJMICA9ICRibG9nLT5nZXQoJ3VybCcpOwogICAgICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9IHN0cmlwX3RhZ3MoJGJsb2ctPmdldCgnZGVzY3JpcHRpb24nKSk7CgogICAgICAgICAgICAgICAgJGJsb2dob3N0bmFtZSA9IGV4cGxvZGUoJzovLycsICRibG9nLT5nZXQoJ3VybCcpKTsKICAgICAgICAgICAgICAgICRibG9naG9zdG5hbWUgPSBzdWJzdHIoJGJsb2dob3N0bmFtZVsxXSwgMCwgLTEpOwoKICAgICAgICAgICAgICAgIC8vIHN0b3JlIHVzZXIncyBwcmltYXJ5IGJsb2cgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRhcmdldCBieSBzZXRVc2VyU3RhdHVzCiAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmVEYXRhKCdwcmltYXJ5X2Jsb2cnLCAkYmxvZ2hvc3RuYW1lKTsKCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VyU3RhdHVzKCRzdGF0dXMpCiAgICB7CiAgICAgICAgJHN0YXR1cyA9IGlzX3N0cmluZygkc3RhdHVzKQogICAgICAgICAgICAgICAgICAgID8gWyAndHlwZScgPT4gJ3RleHQnLCAnYm9keScgPT4gJHN0YXR1cyBdCiAgICAgICAgICAgICAgICAgICAgOiAkc3RhdHVzOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnYmxvZy8nIC4gJHRoaXMtPmdldFN0b3JlZERhdGEoJ3ByaW1hcnlfYmxvZycpIC4gJy9wb3N0JywgJ1BPU1QnLCAkc3RhdHVzKTsKCiAgICAgICAgcmV0dXJuICRyZXNwb25zZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/TwitchTV.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFR3aXRjaFRWIE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgVHdpdGNoVFYgZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkc2NvcGUgPSAndXNlcjpyZWFkOmVtYWlsJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLnR3aXRjaC50di9oZWxpeC8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2lkLnR3aXRjaC50di9vYXV0aDIvYXV0aG9yaXplJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2lkLnR3aXRjaC50di9vYXV0aDIvdG9rZW4nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9kZXYudHdpdGNoLnR2L2RvY3MvYXV0aGVudGljYXRpb24vJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJQcm9maWxlKCkKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcnMnKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygnZGF0YScpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJzID0gJGRhdGEtPmZpbHRlcignZGF0YScpLT5wcm9wZXJ0aWVzKCk7CiAgICAgICAgJHVzZXIgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCR1c2Vyc1swXSk7CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyID0gJHVzZXItPmdldCgnaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJHVzZXItPmdldCgnZGlzcGxheV9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5waG90b1VSTCA9ICR1c2VyLT5nZXQoJ3Byb2ZpbGVfaW1hZ2VfdXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbCA9ICR1c2VyLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5kZXNjcmlwdGlvbiA9IHN0cmlwX3RhZ3MoJHVzZXItPmdldCgnZGVzY3JpcHRpb24nKSk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMID0gImh0dHBzOi8vd3d3LnR3aXRjaC50di97JHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZX0iOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Twitter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgxOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFR3aXR0ZXIgcHJvdmlkZXIgYWRhcHRlci4KICoKICogRXhhbXBsZToKICoKICogICAkY29uZmlnID0gWwogKiAgICAgICAnY2FsbGJhY2snICA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAogKiAgICAgICAna2V5cycgICAgICA9PiBbICdrZXknID0+ICcnLCAnc2VjcmV0JyA9PiAnJyBdLCAvLyBPQXV0aDEgdXNlcyAna2V5JyBub3QgJ2lkJwogKiAgICAgICAnYXV0aG9yaXplJyA9PiB0cnVlCiAqICAgXTsKICoKICogICAkYWRhcHRlciA9IG5ldyBIeWJyaWRhdXRoXFByb3ZpZGVyXFR3aXR0ZXIoICRjb25maWcgKTsKICoKICogICB0cnkgewogKiAgICAgICAkYWRhcHRlci0+YXV0aGVudGljYXRlKCk7CiAqCiAqICAgICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwogKiAgICAgICAkdG9rZW5zID0gJGFkYXB0ZXItPmdldEFjY2Vzc1Rva2VuKCk7CiAqICAgICAgICRjb250YWN0cyA9ICRhZGFwdGVyLT5nZXRVc2VyQ29udGFjdHMoWydzY3JlZW5fbmFtZScgPT4nYW5keXBpcGVyJ10pOyAvLyBnZXQgdGhvc2Ugb2YgQGFuZHlwaXBlcgogKiAgICAgICAkYWN0aXZpdHkgPSAkYWRhcHRlci0+Z2V0VXNlckFjdGl2aXR5KCdtZScpOwogKiAgIH0KICogICBjYXRjaCggRXhjZXB0aW9uICRlICl7CiAqICAgICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKSA7CiAqICAgfQogKi8KY2xhc3MgVHdpdHRlciBleHRlbmRzIE9BdXRoMQp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLnR3aXR0ZXIuY29tLzEuMS8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL2FwaS50d2l0dGVyLmNvbS9vYXV0aC9hdXRoZW50aWNhdGUnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJHJlcXVlc3RUb2tlblVybCA9ICdodHRwczovL2FwaS50d2l0dGVyLmNvbS9vYXV0aC9yZXF1ZXN0X3Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2FwaS50d2l0dGVyLmNvbS9vYXV0aC9hY2Nlc3NfdG9rZW4nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9kZXYudHdpdHRlci5jb20vd2ViL3NpZ24taW4vaW1wbGVtZW50aW5nJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEF1dGhvcml6ZVVybCgkcGFyYW1ldGVycyA9IFtdKQogICAgewogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5nZXQoJ2F1dGhvcml6ZScpID09PSB0cnVlKSB7CiAgICAgICAgICAgICR0aGlzLT5hdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9hcGkudHdpdHRlci5jb20vb2F1dGgvYXV0aG9yaXplJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiBwYXJlbnQ6OmdldEF1dGhvcml6ZVVybCgkcGFyYW1ldGVycyk7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ2FjY291bnQvdmVyaWZ5X2NyZWRlbnRpYWxzLmpzb24/aW5jbHVkZV9lbWFpbD10cnVlJyk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISRkYXRhLT5leGlzdHMoJ2lkX3N0cicpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgICAgPSAkZGF0YS0+Z2V0KCdpZF9zdHInKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lICAgPSAkZGF0YS0+Z2V0KCdzY3JlZW5fbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGVzY3JpcHRpb24gICA9ICRkYXRhLT5nZXQoJ2Rlc2NyaXB0aW9uJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5maXJzdE5hbWUgICAgID0gJGRhdGEtPmdldCgnbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgICAgICAgICA9ICRkYXRhLT5nZXQoJ2VtYWlsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5lbWFpbFZlcmlmaWVkID0gJGRhdGEtPmdldCgnZW1haWwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPndlYlNpdGVVUkwgICAgPSAkZGF0YS0+Z2V0KCd1cmwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnJlZ2lvbiAgICAgICAgPSAkZGF0YS0+Z2V0KCdsb2NhdGlvbicpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPnByb2ZpbGVVUkwgICAgPSAkZGF0YS0+ZXhpc3RzKCdzY3JlZW5fbmFtZScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgnaHR0cDovL3R3aXR0ZXIuY29tLycgLiAkZGF0YS0+Z2V0KCdzY3JlZW5fbmFtZScpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJzsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5waG90b1VSTCAgICAgID0gJGRhdGEtPmV4aXN0cygncHJvZmlsZV9pbWFnZV91cmwnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzdHJfcmVwbGFjZSgnX25vcm1hbCcsICcnLCAkZGF0YS0+Z2V0KCdwcm9maWxlX2ltYWdlX3VybCcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJzsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5kYXRhID0gWwogICAgICAgICAgJ2ZvbGxvd2VkX2J5JyA9PiAkZGF0YS0+Z2V0KCdmcmllbmRzX2NvdW50JyksCiAgICAgICAgICAnZm9sbG93cycgPT4gJGRhdGEtPmdldCgnZm9sbG93ZXJzX2NvdW50JyksCiAgICAgICAgXTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJDb250YWN0cygkcGFyYW1ldGVycyA9IFtdKQogICAgewogICAgICAgICRwYXJhbWV0ZXJzID0gWyAnY3Vyc29yJyA9PiAnLTEnXSArICRwYXJhbWV0ZXJzOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnZnJpZW5kcy9pZHMuanNvbicsICdHRVQnLCAkcGFyYW1ldGVycyk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISAkZGF0YS0+ZXhpc3RzKCdpZHMnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZGF0YS0+ZmlsdGVyKCdpZHMnKS0+aXNFbXB0eSgpKSB7CiAgICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CgogICAgICAgICRjb250YWN0cyA9IFtdOwoKICAgICAgICAvLyA3NSBpZCBwZXIgdGltZSBzaG91bGQgYmUgb2tleQogICAgICAgICRjb250YWN0c0lkcyA9IGFycmF5X2NodW5rKChhcnJheSkgJGRhdGEtPmdldCgnaWRzJyksIDc1KTsKCiAgICAgICAgZm9yZWFjaCAoJGNvbnRhY3RzSWRzIGFzICRjaHVuaykgewogICAgICAgICAgICAkcGFyYW1ldGVycyA9IFsgJ3VzZXJfaWQnID0+IGltcGxvZGUoJywnLCAkY2h1bmspIF07CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ3VzZXJzL2xvb2t1cC5qc29uJywgJ0dFVCcsICRwYXJhbWV0ZXJzKTsKCiAgICAgICAgICAgICAgICBpZiAoJHJlc3BvbnNlICYmIGNvdW50KCRyZXNwb25zZSkpIHsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcmVzcG9uc2UgYXMgJGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRhY3RzW10gPSAkdGhpcy0+ZmV0Y2hVc2VyQ29udGFjdCgkaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRjb250YWN0czsKICAgIH0KCiAgICAvKioKICAgICAqCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXJDb250YWN0KCRpdGVtKQogICAgewogICAgICAgICRpdGVtID0gbmV3IERhdGFcQ29sbGVjdGlvbigkaXRlbSk7CgogICAgICAgICR1c2VyQ29udGFjdCA9IG5ldyBVc2VyXENvbnRhY3QoKTsKCiAgICAgICAgJHVzZXJDb250YWN0LT5pZGVudGlmaWVyICA9ICRpdGVtLT5nZXQoJ2lkX3N0cicpOwogICAgICAgICR1c2VyQ29udGFjdC0+ZGlzcGxheU5hbWUgPSAkaXRlbS0+Z2V0KCduYW1lJyk7CiAgICAgICAgJHVzZXJDb250YWN0LT5waG90b1VSTCAgICA9ICRpdGVtLT5nZXQoJ3Byb2ZpbGVfaW1hZ2VfdXJsJyk7CiAgICAgICAgJHVzZXJDb250YWN0LT5kZXNjcmlwdGlvbiA9ICRpdGVtLT5nZXQoJ2Rlc2NyaXB0aW9uJyk7CgogICAgICAgICR1c2VyQ29udGFjdC0+cHJvZmlsZVVSTCAgPSAkaXRlbS0+ZXhpc3RzKCdzY3JlZW5fbmFtZScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgnaHR0cDovL3R3aXR0ZXIuY29tLycgLiAkaXRlbS0+Z2V0KCdzY3JlZW5fbmFtZScpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJzsKCiAgICAgICAgcmV0dXJuICR1c2VyQ29udGFjdDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldFVzZXJTdGF0dXMoJHN0YXR1cykKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRzdGF0dXMpKSB7CiAgICAgICAgICAgICRzdGF0dXMgPSBbJ3N0YXR1cycgPT4gJHN0YXR1c107CiAgICAgICAgfQoKICAgICAgICAvLyBQcmVwYXJlIHJlcXVlc3QgcGFyYW1ldGVycy4KICAgICAgICAkcGFyYW1zID0gW107CiAgICAgICAgaWYgKGlzc2V0KCRzdGF0dXNbJ3N0YXR1cyddKSkgewogICAgICAgICAgICAkcGFyYW1zWydzdGF0dXMnXSA9ICRzdGF0dXNbJ3N0YXR1cyddOwogICAgICAgIH0KICAgICAgICBpZiAoaXNzZXQoJHN0YXR1c1sncGljdHVyZSddKSkgewogICAgICAgICAgICAkbWVkaWEgPSAkdGhpcy0+YXBpUmVxdWVzdCgnaHR0cHM6Ly91cGxvYWQudHdpdHRlci5jb20vMS4xL21lZGlhL3VwbG9hZC5qc29uJywgJ1BPU1QnLCBbCiAgICAgICAgICAgICAgICAnbWVkaWEnID0+IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJHN0YXR1c1sncGljdHVyZSddKSksCiAgICAgICAgICAgIF0pOwogICAgICAgICAgICAkcGFyYW1zWydtZWRpYV9pZHMnXSA9ICRtZWRpYS0+bWVkaWFfaWQ7CiAgICAgICAgfQoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgnc3RhdHVzZXMvdXBkYXRlLmpzb24nLCAnUE9TVCcsICRwYXJhbXMpOwoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckFjdGl2aXR5KCRzdHJlYW0gPSAnbWUnKQogICAgewogICAgICAgICRhcGlVcmwgPSAoJHN0cmVhbSA9PSAnbWUnKQogICAgICAgICAgICAgICAgICAgID8gJ3N0YXR1c2VzL3VzZXJfdGltZWxpbmUuanNvbicKICAgICAgICAgICAgICAgICAgICA6ICdzdGF0dXNlcy9ob21lX3RpbWVsaW5lLmpzb24nOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgkYXBpVXJsKTsKCiAgICAgICAgaWYgKCEkcmVzcG9uc2UpIHsKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KCiAgICAgICAgJGFjdGl2aXRpZXMgPSBbXTsKCiAgICAgICAgZm9yZWFjaCAoJHJlc3BvbnNlIGFzICRpdGVtKSB7CiAgICAgICAgICAgICRhY3Rpdml0aWVzW10gPSAkdGhpcy0+ZmV0Y2hVc2VyQWN0aXZpdHkoJGl0ZW0pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRhY3Rpdml0aWVzOwogICAgfQoKICAgIC8qKgogICAgICoKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZldGNoVXNlckFjdGl2aXR5KCRpdGVtKQogICAgewogICAgICAgICRpdGVtID0gbmV3IERhdGFcQ29sbGVjdGlvbigkaXRlbSk7CgogICAgICAgICR1c2VyQWN0aXZpdHkgPSBuZXcgVXNlclxBY3Rpdml0eSgpOwoKICAgICAgICAkdXNlckFjdGl2aXR5LT5pZCAgID0gJGl0ZW0tPmdldCgnaWRfc3RyJyk7CiAgICAgICAgJHVzZXJBY3Rpdml0eS0+ZGF0ZSA9ICRpdGVtLT5nZXQoJ2NyZWF0ZWRfYXQnKTsKICAgICAgICAkdXNlckFjdGl2aXR5LT50ZXh0ID0gJGl0ZW0tPmdldCgndGV4dCcpOwoKICAgICAgICAkdXNlckFjdGl2aXR5LT51c2VyLT5pZGVudGlmaWVyICAgPSAkaXRlbS0+ZmlsdGVyKCd1c2VyJyktPmdldCgnaWRfc3RyJyk7CiAgICAgICAgJHVzZXJBY3Rpdml0eS0+dXNlci0+ZGlzcGxheU5hbWUgID0gJGl0ZW0tPmZpbHRlcigndXNlcicpLT5nZXQoJ25hbWUnKTsKICAgICAgICAkdXNlckFjdGl2aXR5LT51c2VyLT5waG90b1VSTCAgICAgPSAkaXRlbS0+ZmlsdGVyKCd1c2VyJyktPmdldCgncHJvZmlsZV9pbWFnZV91cmwnKTsKCiAgICAgICAgJHVzZXJBY3Rpdml0eS0+dXNlci0+cHJvZmlsZVVSTCAgID0gJGl0ZW0tPmZpbHRlcigndXNlcicpLT5nZXQoJ3NjcmVlbl9uYW1lJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoJ2h0dHA6Ly90d2l0dGVyLmNvbS8nIC4gJGl0ZW0tPmZpbHRlcigndXNlcicpLT5nZXQoJ3NjcmVlbl9uYW1lJykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyc7CgogICAgICAgIHJldHVybiAkdXNlckFjdGl2aXR5OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Vkontakte.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhXENvbGxlY3Rpb247CnVzZSBIeWJyaWRhdXRoXFVzZXJcUHJvZmlsZTsKCi8qKgogKiBWa29udGFrdGUgcHJvdmlkZXIgYWRhcHRlci4KICoKICogRXhhbXBsZToKICoKICogICAkY29uZmlnID0gWwogKiAgICAgICAnY2FsbGJhY2snICA9PiBIeWJyaWRhdXRoXEh0dHBDbGllbnRcVXRpbDo6Z2V0Q3VycmVudFVybCgpLAogKiAgICAgICAna2V5cycgICAgICA9PiBbJ2lkJyA9PiAnJywgJ3NlY3JldCcgPT4gJyddLAogKiAgIF07CiAqCiAqICAgJGFkYXB0ZXIgPSBuZXcgSHlicmlkYXV0aFxQcm92aWRlclxWa29udGFrdGUoJGNvbmZpZyk7CiAqCiAqICAgdHJ5IHsKICogICAgICAgaWYgKCEkYWRhcHRlci0+aXNDb25uZWN0ZWQoKSkgewogKiAgICAgICAgICAgJGFkYXB0ZXItPmF1dGhlbnRpY2F0ZSgpOwogKiAgICAgICB9CiAqCiAqICAgICAgICR1c2VyUHJvZmlsZSA9ICRhZGFwdGVyLT5nZXRVc2VyUHJvZmlsZSgpOwogKiAgIH0KICogICBjYXRjaChcRXhjZXB0aW9uICRlKSB7CiAqICAgICAgIHByaW50ICRlLT5nZXRNZXNzYWdlKCkgOwogKiAgIH0KICovCmNsYXNzIFZrb250YWt0ZSBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhcGlCYXNlVXJsID0gJ2h0dHBzOi8vYXBpLnZrLmNvbS9tZXRob2QvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9hcGkudmsuY29tL29hdXRoL2F1dGhvcml6ZSc7CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9hcGkudmsuY29tL29hdXRoL3Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRzY29wZSA9ICdlbWFpbCxvZmZsaW5lJzsKCgkvKioKCSAqIHtAaW5oZXJpdGRvY30KCSAqLwoJcHVibGljIGZ1bmN0aW9uIGhhc0FjY2Vzc1Rva2VuRXhwaXJlZCgpCgl7CgkJLy8gQXMgd2UgdXNpbmcgb2ZmbGluZSBzY29wZSwgJGV4cGlyZWQgd2lsbCBiZSBmYWxzZS4KCQkkZXhwaXJlZCA9ICR0aGlzLT5nZXRTdG9yZWREYXRhKCdleHBpcmVzX2luJykKCQkJPyAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgnZXhwaXJlc19hdCcpIDw9IHRpbWUoKQoJCQk6IGZhbHNlOwoKCQlyZXR1cm4gJGV4cGlyZWQ7Cgl9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKQogICAgewogICAgICAgICRkYXRhID0gcGFyZW50Ojp2YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKTsKCiAgICAgICAgLy8gTmVlZCB0byBzdG9yZSB1c2VyX2lkIGFzIHRva2VuIGZvciBsYXRlciB1c2UuCiAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgndXNlcl9pZCcsICRkYXRhLT5nZXQoJ3VzZXJfaWQnKSk7CiAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgnZW1haWwnLCAkZGF0YS0+Z2V0KCdlbWFpbCcpKTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHBhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICd1c2VyX2lkcycgPT4gJHRoaXMtPmdldFN0b3JlZERhdGEoJ3VzZXJfaWQnKSwKICAgICAgICAgICAgJ2ZpZWxkcycgPT4gJ2ZpcnN0X25hbWUsbGFzdF9uYW1lLG5pY2tuYW1lLHNjcmVlbl9uYW1lLHNleCxiZGF0ZSx0aW1lem9uZSxwaG90b19yZWMscGhvdG9fYmlnLHBob3RvX21heF9vcmlnJywKICAgICAgICAgICAgJ3YnID0+ICc1Ljc0JywKICAgICAgICAgICAgJHRoaXMtPmFjY2Vzc1Rva2VuTmFtZSA9PiAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgkdGhpcy0+YWNjZXNzVG9rZW5OYW1lKSwKICAgICAgICBdOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgndXNlcnMuZ2V0JywgJ0dFVCcsICRwYXJhbWV0ZXJzKTsKCiAgICAgICAgaWYgKHByb3BlcnR5X2V4aXN0cygkcmVzcG9uc2UsICdlcnJvcicpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJHJlc3BvbnNlLT5lcnJvci0+ZXJyb3JfbXNnKTsKICAgICAgICB9CgogICAgICAgICRkYXRhID0gbmV3IENvbGxlY3Rpb24oJHJlc3BvbnNlLT5yZXNwb25zZVswXSk7CgogICAgICAgIGlmICghJGRhdGEtPmV4aXN0cygnaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBQcm9maWxlKCk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgICAgICAgPSAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgnZW1haWwnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAgID0gJGRhdGEtPmdldCgnZmlyc3RfbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgICAgPSAkZGF0YS0+Z2V0KCdsYXN0X25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJGRhdGEtPmdldCgnc2NyZWVuX25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMICAgID0gJGRhdGEtPmdldCgncGhvdG9fbWF4X29yaWcnKTsKCiAgICAgICAgJHNjcmVlbl9uYW1lID0gJ2h0dHBzOi8vdmsuY29tLycgLiAoJGRhdGEtPmdldCgnc2NyZWVuX25hbWUnKSA/OiAnaWQnIC4gJGRhdGEtPmdldCgnaWQnKSk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICA9ICRzY3JlZW5fbmFtZTsKCiAgICAgICAgc3dpdGNoICgkZGF0YS0+Z2V0KCdzZXgnKSkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUtPmdlbmRlciA9ICdmZW1hbGUnOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAkdXNlclByb2ZpbGUtPmdlbmRlciA9ICdtYWxlJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/WeChat.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFdlQ2hhdCBJbnRlcm5hdGlvbmFsIE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgV2VDaGF0IGV4dGVuZHMgT0F1dGgyCnsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRzY29wZSA9ICdzbnNhcGlfdXNlcmluZm8nOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkud2VjaGF0LmNvbS9zbnMvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9vcGVuLndlaXhpbi5xcS5jb20vY29ubmVjdC9xcmNvbm5lY3QnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFjY2Vzc1Rva2VuVXJsID0gJ2h0dHBzOi8vYXBpLndlY2hhdC5jb20vc25zL29hdXRoMi9hY2Nlc3NfdG9rZW4nOwoKICAgIC8qKgogICAgICogUmVmcmVzaCBUb2tlbiBFbmRwb2ludAogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkICR0b2tlblJlZnJlc2hVcmwgPSAnaHR0cHM6Ly9hcGkud2VjaGF0LmNvbS9zbnMvb2F1dGgyL3JlZnJlc2hfdG9rZW4nOwoKICAgIC8qKgogICAgICoge0Dhu4tuaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5JbmZvVXJsID0gJ2h0dHBzOi8vYXBpLndlY2hhdC5jb20vc25zL2F1dGgnOwoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJHRva2VuRXhjaGFuZ2VNZXRob2QgPSAnR0VUJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICR0b2tlblJlZnJlc2hNZXRob2QgPSAnR0VUJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpbml0aWFsaXplKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OmluaXRpYWxpemUoKTsKCiAgICAgICAgJHRoaXMtPmFwaVJlcXVlc3RQYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnYXBwaWQnID0+ICR0aGlzLT5jbGllbnRJZCwKICAgICAgICAgICAgJ3NlY3JldCcgPT4gJHRoaXMtPmNsaWVudFNlY3JldAogICAgICAgIF07CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKQogICAgewogICAgICAgICRjb2xsZWN0aW9uID0gcGFyZW50Ojp2YWxpZGF0ZUFjY2Vzc1Rva2VuRXhjaGFuZ2UoJHJlc3BvbnNlKTsKCiAgICAgICAgJHRoaXMtPnN0b3JlRGF0YSgnb3BlbmlkJywgJGNvbGxlY3Rpb24tPmdldCgnb3BlbmlkJykpOwogICAgfQoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICRvcGVuaWQgPSAkdGhpcy0+Z2V0U3RvcmVkRGF0YSgnb3BlbmlkJyk7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCd1c2VyaW5mbycsICdHRVQnLCBbJ29wZW5pZCcgPT4gJG9wZW5pZF0pOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEkZGF0YS0+ZXhpc3RzKCdvcGVuaWQnKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCdQcm92aWRlciBBUEkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCByZXNwb25zZS4nKTsKICAgICAgICB9CgogICAgICAgICR1c2VyUHJvZmlsZSA9IG5ldyBVc2VyXFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ29wZW5pZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCduaWNrbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cGhvdG9VUkwgICAgPSAkZGF0YS0+Z2V0KCdoZWFkaW1ndXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5jaXR5ICAgICAgICA9ICRkYXRhLT5nZXQoJ2NpdHknKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnJlZ2lvbiAgICAgID0gJGRhdGEtPmdldCgncHJvdmluY2UnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmNvdW50cnkgICAgID0gJGRhdGEtPmdldCgnY291bnRyeScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+Z2VuZGVyICAgICAgPSBbJycsICdtYWxlJywgJ2ZlbWFsZSddWyhpbnQpJGRhdGEtPmdldCgnc2V4JyldOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/WeChatChina.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxQcm92aWRlclxXZUNoYXQ7CnVzZSBIeWJyaWRhdXRoXEV4Y2VwdGlvblxVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb247CnVzZSBIeWJyaWRhdXRoXERhdGE7CnVzZSBIeWJyaWRhdXRoXFVzZXI7CgovKioKICogV2VDaGF0IENoaW5hIE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgV2VDaGF0Q2hpbmEgZXh0ZW5kcyBXZUNoYXQKewoKICAgIC8qKgogICAgICoge0Bpbmhlcml0ZG9jfQogICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkud2VpeGluLnFxLmNvbS9zbnMvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2FwaS53ZWl4aW4ucXEuY29tL3Nucy9vYXV0aDIvYWNjZXNzX3Rva2VuJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICR0b2tlblJlZnJlc2hVcmwgPSAnaHR0cHM6Ly9hcGkud2VpeGluLnFxLmNvbS9zbnMvb2F1dGgyL3JlZnJlc2hfdG9rZW4nOwoKICAgIC8qKgogICAgICoge0Dhu4tuaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5JbmZvVXJsID0gJ2h0dHBzOi8vYXBpLndlaXhpbi5xcS5jb20vc25zL2F1dGgnOwoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/WindowsLive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFdpbmRvd3MgTGl2ZSBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIFdpbmRvd3NMaXZlIGV4dGVuZHMgT0F1dGgyCnsKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHVibGljICRzY29wZSA9ICd3bC5iYXNpYyB3bC5jb250YWN0c19lbWFpbHMgd2wuZW1haWxzIHdsLnNpZ25pbiB3bC5zaGFyZSB3bC5iaXJ0aGRheSc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGlzLmxpdmUubmV0L3Y1LjAvJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXV0aG9yaXplVXJsID0gJ2h0dHBzOi8vbG9naW4ubGl2ZS5jb20vb2F1dGgyMF9hdXRob3JpemUuc3JmJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9sb2dpbi5saXZlLmNvbS9vYXV0aDIwX3Rva2VuLnNyZic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9oaDI0MzY0Ny5hc3B4JzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJvZmlsZSgpCiAgICB7CiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ21lJyk7CgogICAgICAgICRkYXRhID0gbmV3IERhdGFcQ29sbGVjdGlvbigkcmVzcG9uc2UpOwoKICAgICAgICBpZiAoISAkZGF0YS0+ZXhpc3RzKCdpZCcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgICAgPSAkZGF0YS0+Z2V0KCdpZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgICA9ICRkYXRhLT5nZXQoJ25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAgICAgPSAkZGF0YS0+Z2V0KCdmaXJzdF9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5sYXN0TmFtZSAgICAgID0gJGRhdGEtPmdldCgnbGFzdF9uYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5nZW5kZXIgICAgICAgID0gJGRhdGEtPmdldCgnZ2VuZGVyJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMICAgID0gJGRhdGEtPmdldCgnbGluaycpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgICAgICAgICA9ICRkYXRhLT5maWx0ZXIoJ2VtYWlscycpLT5nZXQoJ3ByZWZlcnJlZCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWxWZXJpZmllZCA9ICRkYXRhLT5maWx0ZXIoJ2VtYWlscycpLT5nZXQoJ2FjY291bnQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmJpcnRoRGF5ICAgICAgPSAkZGF0YS0+Z2V0KCdiaXJ0aF9kYXknKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmJpcnRoTW9udGggICAgPSAkZGF0YS0+Z2V0KCdiaXJ0aF9tb250aCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+YmlydGhZZWFyICAgICA9ICRkYXRhLT5nZXQoJ2JpcnRoX3llYXInKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmxhbmd1YWdlICAgICAgPSAkZGF0YS0+Z2V0KCdsb2NhbGUnKTsKCiAgICAgICAgcmV0dXJuICR1c2VyUHJvZmlsZTsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQ29udGFjdHMoKQogICAgewogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCdtZS9jb250YWN0cycpOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygnZGF0YScpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJGNvbnRhY3RzID0gW107CgogICAgICAgIGZvcmVhY2ggKCRkYXRhLT5maWx0ZXIoJ2RhdGEnKS0+dG9BcnJheSgpIGFzICRpZHggPT4gJGVudHJ5KSB7CiAgICAgICAgICAgICR1c2VyQ29udGFjdCA9IG5ldyBVc2VyXENvbnRhY3QoKTsKCiAgICAgICAgICAgICR1c2VyQ29udGFjdC0+aWRlbnRpZmllciAgPSAkZW50cnktPmdldCgnaWQnKTsKICAgICAgICAgICAgJHVzZXJDb250YWN0LT5kaXNwbGF5TmFtZSA9ICRlbnRyeS0+Z2V0KCduYW1lJyk7CiAgICAgICAgICAgICR1c2VyQ29udGFjdC0+ZW1haWwgICAgICAgPSAkZW50cnktPmZpbHRlcignZW1haWxzJyktPmdldCgncHJlZmVycmVkJyk7CgogICAgICAgICAgICAkY29udGFjdHNbXSA9ICR1c2VyQ29udGFjdDsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkY29udGFjdHM7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/WordPress.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFdvcmRQcmVzcyBPQXV0aDIgcHJvdmlkZXIgYWRhcHRlci4KICovCmNsYXNzIFdvcmRQcmVzcyBleHRlbmRzIE9BdXRoMgp7CiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL3B1YmxpYy1hcGkud29yZHByZXNzLmNvbS9yZXN0L3YxLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGF1dGhvcml6ZVVybCA9ICdodHRwczovL3B1YmxpYy1hcGkud29yZHByZXNzLmNvbS9vYXV0aDIvYXV0aGVudGljYXRlJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYWNjZXNzVG9rZW5VcmwgPSAnaHR0cHM6Ly9wdWJsaWMtYXBpLndvcmRwcmVzcy5jb20vb2F1dGgyL3Rva2VuJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHByb3RlY3RlZCAkYXBpRG9jdW1lbnRhdGlvbiA9ICdodHRwczovL2RldmVsb3Blci53b3JkcHJlc3MuY29tL2RvY3MvYXBpLyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCdtZS8nKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghICRkYXRhLT5leGlzdHMoJ0lEJykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBcGlSZXNwb25zZUV4Y2VwdGlvbignUHJvdmlkZXIgQVBJIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgcmVzcG9uc2UuJyk7CiAgICAgICAgfQoKICAgICAgICAkdXNlclByb2ZpbGUgPSBuZXcgVXNlclxQcm9maWxlKCk7CgogICAgICAgICR1c2VyUHJvZmlsZS0+aWRlbnRpZmllciAgPSAkZGF0YS0+Z2V0KCdJRCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCdkaXNwbGF5X25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMICAgID0gJGRhdGEtPmdldCgnYXZhdGFyX1VSTCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlX1VSTCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgICAgICAgPSAkZGF0YS0+Z2V0KCdlbWFpbCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFuZ3VhZ2UgICAgPSAkZGF0YS0+Z2V0KCdsYW5ndWFnZScpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJHVzZXJQcm9maWxlLT5kaXNwbGF5TmFtZSA/OiAkZGF0YS0+Z2V0KCd1c2VybmFtZScpOwoKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSAkZGF0YS0+Z2V0KCdlbWFpbF92ZXJpZmllZCcpID8gJGRhdGEtPmdldCgnZW1haWwnKSA6ICcnOwoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Yahoo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhOwp1c2UgSHlicmlkYXV0aFxVc2VyOwoKLyoqCiAqIFlhaG9vIE9BdXRoMiBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgWWFob28gZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJHNjb3BlID0gJ3NkcHAtdyc7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9zb2NpYWwueWFob29hcGlzLmNvbS92MS8nOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9hcGkubG9naW4ueWFob28uY29tL29hdXRoMi9yZXF1ZXN0X2F1dGgnOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL2FwaS5sb2dpbi55YWhvby5jb20vb2F1dGgyL2dldF90b2tlbic7CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJGFwaURvY3VtZW50YXRpb24gPSAnaHR0cHM6Ly9kZXZlbG9wZXIueWFob28uY29tL29hdXRoMi9ndWlkZS8nOwoKICAgIC8qKgogICAgKiBDdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyCiAgICAqLwogICAgcHJvdGVjdGVkICR1c2VySWQgPSBudWxsOwoKICAgIC8qKgogICAgKiB7QGluaGVyaXRkb2N9CiAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogICAgewogICAgICAgIHBhcmVudDo6aW5pdGlhbGl6ZSgpOwoKICAgICAgICAkdGhpcy0+dG9rZW5FeGNoYW5nZUhlYWRlcnMgPSBbCiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJyA9PiAnQmFzaWMgJyAuIGJhc2U2NF9lbmNvZGUoJHRoaXMtPmNsaWVudElkIC4gICc6JyAuICR0aGlzLT5jbGllbnRTZWNyZXQpCiAgICAgICAgXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgY3VycmVudCB1c2VyIGlkCiAgICAgKgogICAgICogQHJldHVybiBpbnQKICAgICAqIEB0aHJvd3MgXEh5YnJpZGF1dGhcRXhjZXB0aW9uXEh0dHBDbGllbnRGYWlsdXJlRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxIdHRwUmVxdWVzdEZhaWxlZEV4Y2VwdGlvbgogICAgICogQHRocm93cyBcSHlicmlkYXV0aFxFeGNlcHRpb25cSW52YWxpZEFjY2Vzc1Rva2VuRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIFxIeWJyaWRhdXRoXEV4Y2VwdGlvblxVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEN1cnJlbnRVc2VySWQoKQogICAgewogICAgICAgIGlmICgkdGhpcy0+dXNlcklkKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+dXNlcklkOwogICAgICAgIH0KCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmFwaVJlcXVlc3QoJ21lL2d1aWQnLCAnR0VUJywgWyAnZm9ybWF0JyA9PiAnanNvbiddKTsKCiAgICAgICAgJGRhdGEgPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRyZXNwb25zZSk7CgogICAgICAgIGlmICghICRkYXRhLT5maWx0ZXIoJ2d1aWQnKS0+ZXhpc3RzKCd2YWx1ZScpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VySWQgPSAgJGRhdGEtPmZpbHRlcignZ3VpZCcpLT5nZXQoJ3ZhbHVlJyk7CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewogICAgICAgIC8vIFJldHJpZXZlIGN1cnJlbnQgdXNlciBndWlkIGlmIG5lZWRlZAogICAgICAgICR0aGlzLT5nZXRDdXJyZW50VXNlcklkKCk7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5hcGlSZXF1ZXN0KCd1c2VyLycgIC4gJHRoaXMtPnVzZXJJZCAuICcvcHJvZmlsZScsICdHRVQnLCBbICdmb3JtYXQnID0+ICdqc29uJ10pOwoKICAgICAgICAkZGF0YSA9IG5ldyBEYXRhXENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEgJGRhdGEtPmV4aXN0cygncHJvZmlsZScpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFVzZXJcUHJvZmlsZSgpOwoKICAgICAgICAkZGF0YSA9ICRkYXRhLT5maWx0ZXIoJ3Byb2ZpbGUnKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICA9ICRkYXRhLT5nZXQoJ2d1aWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSAgID0gJGRhdGEtPmdldCgnZ2l2ZW5OYW1lJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5sYXN0TmFtZSAgICA9ICRkYXRhLT5nZXQoJ2ZhbWlseU5hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmRpc3BsYXlOYW1lID0gJGRhdGEtPmdldCgnbmlja25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMICAgID0gJGRhdGEtPmZpbHRlcignaW1hZ2UnKS0+Z2V0KCdpbWFnZVVybCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+cHJvZmlsZVVSTCAgPSAkZGF0YS0+Z2V0KCdwcm9maWxlVXJsJyk7CiAgICAgICAgJHVzZXJQcm9maWxlLT5sYW5ndWFnZSAgICA9ICRkYXRhLT5nZXQoJ2xhbmcnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmFkZHJlc3MgICAgID0gJGRhdGEtPmdldCgnbG9jYXRpb24nKTsKCiAgICAgICAgaWYgKCdGJyA9PSAkZGF0YS0+Z2V0KCdnZW5kZXInKSkgewogICAgICAgICAgICAkdXNlclByb2ZpbGUtPmdlbmRlciA9ICdmZW1hbGUnOwogICAgICAgIH0gZWxzZWlmICgnTScgPT0gJGRhdGEtPmdldCgnZ2VuZGVyJykpIHsKICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5nZW5kZXIgPSAnbWFsZSc7CiAgICAgICAgfQoKICAgICAgICAvLyBFLW1haWwgaXMgcmV0dXJuZWQgb25seSB3aXRoIHNkcHAtdyBzY29wZSAoIFJlYWQvV3JpdGUgKFB1YmxpYyBhbmQgUHJpdmF0ZSkgKQogICAgICAgIGZvcmVhY2ggKCRkYXRhLT5maWx0ZXIoJ2VtYWlscycpLT50b0FycmF5KCkgYXMgJGl0ZW0pIHsKICAgICAgICAgICAgJGl0ZW0gPSBuZXcgRGF0YVxDb2xsZWN0aW9uKCRpdGVtKTsKCiAgICAgICAgICAgIGlmICgkaXRlbS0+Z2V0KCdwcmltYXJ5JykpIHsKICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWwgPSAkaXRlbS0+Z2V0KCdoYW5kbGUnKTsKICAgICAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWxWZXJpZmllZCA9ICRpdGVtLT5nZXQoJ2hhbmRsZScpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHVzZXJQcm9maWxlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/YahooOpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT3BlbklEOwoKLyoqCiAqIFlhaG9vIE9wZW5JRCBwcm92aWRlciBhZGFwdGVyLgogKi8KY2xhc3MgWWFob29PcGVuSUQgZXh0ZW5kcyBPcGVuSUQKewogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwcm90ZWN0ZWQgJG9wZW5pZElkZW50aWZpZXIgPSAnaHR0cHM6Ly9vcGVuLmxvZ2luLnlhaG9vYXBpcy5jb20vb3BlbmlkMjAvd3d3LnlhaG9vLmNvbS94cmRzJzsKCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGVGaW5pc2goKQogICAgewogICAgICAgIHBhcmVudDo6YXV0aGVudGljYXRlRmluaXNoKCk7CgogICAgICAgICR1c2VyUHJvZmlsZSA9ICR0aGlzLT5zdG9yYWdlLT5nZXQoJHRoaXMtPnByb3ZpZGVySWQgLiAnLnVzZXInKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyICAgID0gJHVzZXJQcm9maWxlLT5lbWFpbDsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSAkdXNlclByb2ZpbGUtPmVtYWlsOwoKICAgICAgICAvLyByZSBzdG9yZSB0aGUgdXNlciBwcm9maWxlCiAgICAgICAgJHRoaXMtPnN0b3JhZ2UtPnNldCgkdGhpcy0+cHJvdmlkZXJJZCAuICcudXNlcicsICR1c2VyUHJvZmlsZSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Provider/Yandex.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxQcm92aWRlcjsKCnVzZSBIeWJyaWRhdXRoXEFkYXB0ZXJcT0F1dGgyOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uOwp1c2UgSHlicmlkYXV0aFxEYXRhXENvbGxlY3Rpb247CnVzZSBIeWJyaWRhdXRoXFVzZXJcUHJvZmlsZTsKCgovKioKICogWWFuZGV4IHByb3ZpZGVyIGFkYXB0ZXIuCiAqCiAqIEV4YW1wbGU6CiAqCiAqICAgJGNvbmZpZyA9IFsKICogICAgICAgJ2NhbGxiYWNrJyAgPT4gSHlicmlkYXV0aFxIdHRwQ2xpZW50XFV0aWw6OmdldEN1cnJlbnRVcmwoKSwKICogICAgICAgJ2tleXMnICAgICAgPT4gWydpZCcgPT4gJycsICdzZWNyZXQnID0+ICcnXSwKICogICBdOwogKgogKiAgICRhZGFwdGVyID0gbmV3IEh5YnJpZGF1dGhcUHJvdmlkZXJcWWFuZGV4KCRjb25maWcpOwogKgogKiAgIHRyeSB7CiAqICAgICAgIGlmICghJGFkYXB0ZXItPmlzQ29ubmVjdGVkKCkpIHsKICogICAgICAgICAgICRhZGFwdGVyLT5hdXRoZW50aWNhdGUoKTsKICogICAgICAgfQogKgogKiAgICAgICAkdXNlclByb2ZpbGUgPSAkYWRhcHRlci0+Z2V0VXNlclByb2ZpbGUoKTsKICogICB9CiAqICAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkgewogKiAgICAgICBwcmludCAkZS0+Z2V0TWVzc2FnZSgpIDsKICogICB9CiAqLwpjbGFzcyBZYW5kZXggZXh0ZW5kcyBPQXV0aDIKewogICAgLyoqCiAgICAgKiB7QGluaGVyaXRkb2N9CiAgICAgKi8KICAgIHByb3RlY3RlZCAkYXBpQmFzZVVybCA9ICdodHRwczovL2xvZ2luLnlhbmRleC5ydS9pbmZvJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhdXRob3JpemVVcmwgPSAnaHR0cHM6Ly9vYXV0aC55YW5kZXgucnUvYXV0aG9yaXplJzsKCiAgICAvKioKICAgICAqIHtAaW5oZXJpdGRvY30KICAgICAqLwogICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlblVybCA9ICdodHRwczovL29hdXRoLnlhbmRleC5ydS90b2tlbic7CgogICAgLyoqCiAgICAgKiBsb2FkIHRoZSB1c2VyIHByb2ZpbGUgZnJvbSB0aGUgSURwIGFwaSBjbGllbnQKICAgICAqCiAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlclByb2ZpbGUoKQogICAgewoKICAgICAgICAkdGhpcy0+c2NvcGUgPSBpbXBsb2RlKCcsJywgW10pOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+YXBpUmVxdWVzdCgkdGhpcy0+YXBpQmFzZVVybCAuICI/Zm9ybWF0PWpzb24iKTsKCiAgICAgICAgaWYgKCFpc3NldCgkcmVzcG9uc2UtPmlkKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaVJlc3BvbnNlRXhjZXB0aW9uKCJVc2VyIHByb2ZpbGUgcmVxdWVzdCBmYWlsZWQhIHskdGhpcy0+cHJvdmlkZXJJZH0gcmV0dXJuZWQgYW4gaW52YWxpZCByZXNwb25zZS4iLCA2KTsKICAgICAgICB9CgogICAgICAgICRkYXRhID0gbmV3IENvbGxlY3Rpb24oJHJlc3BvbnNlKTsKCiAgICAgICAgaWYgKCEkZGF0YS0+ZXhpc3RzKCdpZCcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQXBpUmVzcG9uc2VFeGNlcHRpb24oJ1Byb3ZpZGVyIEFQSSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHJlc3BvbnNlLicpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJQcm9maWxlID0gbmV3IFByb2ZpbGUoKTsKCiAgICAgICAgJHVzZXJQcm9maWxlLT5pZGVudGlmaWVyID0gJGRhdGEtPmdldCgnaWQnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmZpcnN0TmFtZSA9ICRkYXRhLT5nZXQoJ3JlYWxfbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+bGFzdE5hbWUgPSAkZGF0YS0+Z2V0KCdmYW1pbHlfbmFtZScpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZGlzcGxheU5hbWUgPSAkZGF0YS0+Z2V0KCdkaXNwbGF5X25hbWUnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPnBob3RvVVJMID0gJ2h0dHA6Ly91cGljcy55YW5kZXgubmV0LycgLiAkdXNlclByb2ZpbGUtPmlkZW50aWZpZXIgLiAnL25vcm1hbCc7CiAgICAgICAgJHVzZXJQcm9maWxlLT5wcm9maWxlVVJMID0gIiI7CiAgICAgICAgJHVzZXJQcm9maWxlLT5nZW5kZXIgPSAkZGF0YS0+Z2V0KCdzZXgnKTsKICAgICAgICAkdXNlclByb2ZpbGUtPmVtYWlsID0gJGRhdGEtPmdldCgnZGVmYXVsdF9lbWFpbCcpOwogICAgICAgICR1c2VyUHJvZmlsZS0+ZW1haWxWZXJpZmllZCA9ICRkYXRhLT5nZXQoJ2RlZmF1bHRfZW1haWwnKTsKCiAgICAgICAgaWYgKCRkYXRhLT5nZXQoJ2JpcnRoZGF5JykpIHsKICAgICAgICAgICAgbGlzdCgkYmlydGhkYXlfeWVhciwgJGJpcnRoZGF5X21vbnRoLCAkYmlydGhkYXlfZGF5KSA9IGV4cGxvZGUoJy0nLCAkcmVzcG9uc2UtPmJpcnRoZGF5KTsKICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5iaXJ0aERheSA9IChpbnQpJGJpcnRoZGF5X2RheTsKICAgICAgICAgICAgJHVzZXJQcm9maWxlLT5iaXJ0aE1vbnRoID0gKGludCkkYmlydGhkYXlfbW9udGg7CiAgICAgICAgICAgICR1c2VyUHJvZmlsZS0+YmlydGhZZWFyID0gKGludCkkYmlydGhkYXlfeWVhcjsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdXNlclByb2ZpbGU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Storage/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Storage/Session.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxTdG9yYWdlOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFJ1bnRpbWVFeGNlcHRpb247CgovKioKICogSHlicmlkQXV0aCBzdG9yYWdlIG1hbmFnZXIKICovCmNsYXNzIFNlc3Npb24gaW1wbGVtZW50cyBTdG9yYWdlSW50ZXJmYWNlCnsKICAgIC8qKgogICAgICogTmFtZXNwYWNlCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkICRzdG9yZU5hbWVzcGFjZSA9ICdIWUJSSURBVVRIOjpTVE9SQUdFJzsKCiAgICAvKioKICAgICAqIEtleSBwcmVmaXgKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgJGtleVByZWZpeCA9ICcnOwoKICAgIC8qKgogICAgKiBJbml0aWF0ZSBhIG5ldyBzZXNzaW9uCiAgICAqCiAgICAqIEB0aHJvd3MgUnVudGltZUV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgaWYgKHNlc3Npb25faWQoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoaGVhZGVyc19zZW50KCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJ0hUVFAgaGVhZGVycyBhbHJlYWR5IHNlbnQgdG8gYnJvd3NlciBhbmQgSHlicmlkYXV0aCB3b25cJ3QgYmUgYWJsZSB0byBzdGFydC9yZXN1bWUgUEhQIHNlc3Npb24uIFRvIHJlc29sdmUgdGhpcywgc2Vzc2lvbl9zdGFydCgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBvdXRwdXRpbmcgYW55IGRhdGEuJyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoISBzZXNzaW9uX3N0YXJ0KCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJ1BIUCBzZXNzaW9uIGZhaWxlZCB0byBzdGFydC4nKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgJGtleSA9ICR0aGlzLT5rZXlQcmVmaXggLiBzdHJ0b2xvd2VyKCRrZXkpOwoKICAgICAgICBpZiAoaXNzZXQoJF9TRVNTSU9OWyR0aGlzLT5zdG9yZU5hbWVzcGFjZV0sICRfU0VTU0lPTlskdGhpcy0+c3RvcmVOYW1lc3BhY2VdWyRrZXldKSkgewogICAgICAgICAgICByZXR1cm4gJF9TRVNTSU9OWyR0aGlzLT5zdG9yZU5hbWVzcGFjZV1bJGtleV07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKioKICAgICoge0Bpbmhlcml0ZG9jfQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXQoJGtleSwgJHZhbHVlKQogICAgewogICAgICAgICRrZXkgPSAkdGhpcy0+a2V5UHJlZml4IC4gc3RydG9sb3dlcigka2V5KTsKCiAgICAgICAgJF9TRVNTSU9OWyR0aGlzLT5zdG9yZU5hbWVzcGFjZV1bJGtleV0gPSAkdmFsdWU7CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXIoKQogICAgewogICAgICAgICRfU0VTU0lPTlskdGhpcy0+c3RvcmVOYW1lc3BhY2VdID0gW107CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCRrZXkpCiAgICB7CiAgICAgICAgJGtleSA9ICR0aGlzLT5rZXlQcmVmaXggLiBzdHJ0b2xvd2VyKCRrZXkpOwoKICAgICAgICBpZiAoaXNzZXQoJF9TRVNTSU9OWyR0aGlzLT5zdG9yZU5hbWVzcGFjZV0sICRfU0VTU0lPTlskdGhpcy0+c3RvcmVOYW1lc3BhY2VdWyRrZXldKSkgewogICAgICAgICAgICAkdG1wID0gJF9TRVNTSU9OWyR0aGlzLT5zdG9yZU5hbWVzcGFjZV07CgogICAgICAgICAgICB1bnNldCgkdG1wWyRrZXldKTsKCiAgICAgICAgICAgICRfU0VTU0lPTlskdGhpcy0+c3RvcmVOYW1lc3BhY2VdID0gJHRtcDsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAqIHtAaW5oZXJpdGRvY30KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlTWF0Y2goJGtleSkKICAgIHsKICAgICAgICAka2V5ID0gJHRoaXMtPmtleVByZWZpeCAuIHN0cnRvbG93ZXIoJGtleSk7CgogICAgICAgIGlmIChpc3NldCgkX1NFU1NJT05bJHRoaXMtPnN0b3JlTmFtZXNwYWNlXSkgJiYgY291bnQoJF9TRVNTSU9OWyR0aGlzLT5zdG9yZU5hbWVzcGFjZV0pKSB7CiAgICAgICAgICAgICR0bXAgPSAkX1NFU1NJT05bJHRoaXMtPnN0b3JlTmFtZXNwYWNlXTsKCiAgICAgICAgICAgIGZvcmVhY2ggKCR0bXAgYXMgJGsgPT4gJHYpIHsKICAgICAgICAgICAgICAgIGlmIChzdHJzdHIoJGssICRrZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHRtcFsgJGsgXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRfU0VTU0lPTlskdGhpcy0+c3RvcmVOYW1lc3BhY2VdID0gJHRtcDsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Storage/StorageInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxTdG9yYWdlOwoKLyoqCiAqIEh5YnJpZEF1dGggc3RvcmFnZSBtYW5hZ2VyIGludGVyZmFjZQogKi8KaW50ZXJmYWNlIFN0b3JhZ2VJbnRlcmZhY2UKewogICAgLyoqCiAgICAqIFJldHJpZXZlIGEgaXRlbSBmcm9tIHN0b3JhZ2UKICAgICoKICAgICogQHBhcmFtIHN0cmluZyAka2V5CiAgICAqCiAgICAqIEByZXR1cm4gbWl4ZWQKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0KCRrZXkpOwoKICAgIC8qKgogICAgKiBBZGQgb3IgVXBkYXRlIGFuIGl0ZW0gdG8gc3RvcmFnZQogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICogQHBhcmFtIHN0cmluZyAkdmFsdWUKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0KCRrZXksICR2YWx1ZSk7CgogICAgLyoqCiAgICAqIERlbGV0ZSBhbiBpdGVtIGZyb20gc3RvcmFnZQogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCRrZXkpOwoKICAgIC8qKgogICAgKiBEZWxldGUgYSBpdGVtIGZyb20gc3RvcmFnZQogICAgKgogICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlTWF0Y2goJGtleSk7CgogICAgLyoqCiAgICAqIENsZWFyIGFsbCBpdGVtcyBpbiBzdG9yYWdlCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyKCk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/OAuthConsumer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIE9BdXRoIFBIUCBMaWJyYXJ5IChodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL29hdXRoLykKKgoqIE9BdXRoIGBQSFAnIExpYnJhcnkgaXMgYW4gb3BlbiBzb3VyY2Ugc29mdHdhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KKi8KCm5hbWVzcGFjZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGg7CgpjbGFzcyBPQXV0aENvbnN1bWVyCnsKICAgIHB1YmxpYyAka2V5OwogICAgcHVibGljICRzZWNyZXQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRrZXksICRzZWNyZXQsICRjYWxsYmFja191cmwgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5rZXkgPSAka2V5OwogICAgICAgICR0aGlzLT5zZWNyZXQgPSAkc2VjcmV0OwogICAgICAgICR0aGlzLT5jYWxsYmFja191cmwgPSAkY2FsbGJhY2tfdXJsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gIk9BdXRoQ29uc3VtZXJba2V5PSR0aGlzLT5rZXksc2VjcmV0PSR0aGlzLT5zZWNyZXRdIjsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/OAuthRequest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIE9BdXRoIFBIUCBMaWJyYXJ5IChodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL29hdXRoLykKKgoqIE9BdXRoIGBQSFAnIExpYnJhcnkgaXMgYW4gb3BlbiBzb3VyY2Ugc29mdHdhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KKi8KCm5hbWVzcGFjZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGg7CgpjbGFzcyBPQXV0aFJlcXVlc3QKewogICAgcHVibGljICRwYXJhbWV0ZXJzOwogICAgcHVibGljICRodHRwX21ldGhvZDsKICAgIHB1YmxpYyAkaHR0cF91cmw7CiAgICAvLyBmb3IgZGVidWcgcHVycG9zZXMKICAgIHB1YmxpYyAkYmFzZV9zdHJpbmc7CiAgICBwdWJsaWMgc3RhdGljICR2ZXJzaW9uID0gJzEuMCc7CiAgICBwdWJsaWMgc3RhdGljICRQT1NUX0lOUFVUID0gJ3BocDovL2lucHV0JzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGh0dHBfbWV0aG9kLCAkaHR0cF91cmwsICRwYXJhbWV0ZXJzID0gbnVsbCkKICAgIHsKICAgICAgICAkcGFyYW1ldGVycyA9ICgkcGFyYW1ldGVycykgPyAkcGFyYW1ldGVycyA6IGFycmF5KCk7CiAgICAgICAgJHBhcmFtZXRlcnMgPSBhcnJheV9tZXJnZShPQXV0aFV0aWw6OnBhcnNlX3BhcmFtZXRlcnMocGFyc2VfdXJsKCRodHRwX3VybCwgUEhQX1VSTF9RVUVSWSkpLCAkcGFyYW1ldGVycyk7CiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcnMgID0gJHBhcmFtZXRlcnM7CiAgICAgICAgJHRoaXMtPmh0dHBfbWV0aG9kID0gJGh0dHBfbWV0aG9kOwogICAgICAgICR0aGlzLT5odHRwX3VybCAgICA9ICRodHRwX3VybDsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBhdHRlbXB0IHRvIGJ1aWxkIHVwIGEgcmVxdWVzdCBmcm9tIHdoYXQgd2FzIHBhc3NlZCB0byB0aGUgc2VydmVyCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZnJvbV9yZXF1ZXN0KCRodHRwX21ldGhvZCA9IG51bGwsICRodHRwX3VybCA9IG51bGwsICRwYXJhbWV0ZXJzID0gbnVsbCkKICAgIHsKICAgICAgICAkc2NoZW1lID0gKCFpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkgfHwgJF9TRVJWRVJbJ0hUVFBTJ10gIT0gIm9uIikgPyAnaHR0cCcgOiAnaHR0cHMnOwogICAgICAgICRodHRwX3VybCA9ICgkaHR0cF91cmwpID8gJGh0dHBfdXJsIDogJHNjaGVtZSAuICc6Ly8nIC4gJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10gLiAnOicgLiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSAuICRfU0VSVkVSWydSRVFVRVNUX1VSSSddOwogICAgICAgICRodHRwX21ldGhvZCA9ICgkaHR0cF9tZXRob2QpID8gJGh0dHBfbWV0aG9kIDogJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ107CiAgICAgICAgCiAgICAgICAgLy8gV2Ugd2VyZW4ndCBoYW5kZWQgYW55IHBhcmFtZXRlcnMsIHNvIGxldCdzIGZpbmQgdGhlIG9uZXMgcmVsZXZhbnQgdG8KICAgICAgICAvLyB0aGlzIHJlcXVlc3QuCiAgICAgICAgLy8gSWYgeW91IHJ1biBYTUwtUlBDIG9yIHNpbWlsYXIgeW91IHNob3VsZCB1c2UgdGhpcyB0byBwcm92aWRlIHlvdXIgb3duCiAgICAgICAgLy8gcGFyc2VkIHBhcmFtZXRlci1saXN0CiAgICAgICAgaWYgKCEkcGFyYW1ldGVycykgewogICAgICAgICAgICAvLyBGaW5kIHJlcXVlc3QgaGVhZGVycwogICAgICAgICAgICAkcmVxdWVzdF9oZWFkZXJzID0gT0F1dGhVdGlsOjpnZXRfaGVhZGVycygpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHF1ZXJ5LXN0cmluZyB0byBmaW5kIEdFVCBwYXJhbWV0ZXJzCiAgICAgICAgICAgICRwYXJhbWV0ZXJzID0gT0F1dGhVdGlsOjpwYXJzZV9wYXJhbWV0ZXJzKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBJdCdzIGEgUE9TVCByZXF1ZXN0IG9mIHRoZSBwcm9wZXIgY29udGVudC10eXBlLCBzbyBwYXJzZSBQT1NUCiAgICAgICAgICAgIC8vIHBhcmFtZXRlcnMgYW5kIGFkZCB0aG9zZSBvdmVycmlkaW5nIGFueSBkdXBsaWNhdGVzIGZyb20gR0VUCiAgICAgICAgICAgIGlmICgkaHR0cF9tZXRob2QgPT0gIlBPU1QiICYmIGlzc2V0KCRyZXF1ZXN0X2hlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSAmJiBzdHJzdHIoJHJlcXVlc3RfaGVhZGVyc1snQ29udGVudC1UeXBlJ10sICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKSkgewogICAgICAgICAgICAgICAgJHBvc3RfZGF0YSAgPSBPQXV0aFV0aWw6OnBhcnNlX3BhcmFtZXRlcnMoZmlsZV9nZXRfY29udGVudHMoc2VsZjo6JFBPU1RfSU5QVVQpKTsKICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJzID0gYXJyYXlfbWVyZ2UoJHBhcmFtZXRlcnMsICRwb3N0X2RhdGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBXZSBoYXZlIGEgQXV0aG9yaXphdGlvbi1oZWFkZXIgd2l0aCBPQXV0aCBkYXRhLiBQYXJzZSB0aGUgaGVhZGVyCiAgICAgICAgICAgIC8vIGFuZCBhZGQgdGhvc2Ugb3ZlcnJpZGluZyBhbnkgZHVwbGljYXRlcyBmcm9tIEdFVCBvciBQT1NUCiAgICAgICAgICAgIGlmIChpc3NldCgkcmVxdWVzdF9oZWFkZXJzWydBdXRob3JpemF0aW9uJ10pICYmIHN1YnN0cigkcmVxdWVzdF9oZWFkZXJzWydBdXRob3JpemF0aW9uJ10sIDAsIDYpID09ICdPQXV0aCAnKSB7CiAgICAgICAgICAgICAgICAkaGVhZGVyX3BhcmFtZXRlcnMgPSBPQXV0aFV0aWw6OnNwbGl0X2hlYWRlcigkcmVxdWVzdF9oZWFkZXJzWydBdXRob3JpemF0aW9uJ10pOwogICAgICAgICAgICAgICAgJHBhcmFtZXRlcnMgPSBhcnJheV9tZXJnZSgkcGFyYW1ldGVycywgJGhlYWRlcl9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gbmV3IE9BdXRoUmVxdWVzdCgkaHR0cF9tZXRob2QsICRodHRwX3VybCwgJHBhcmFtZXRlcnMpOwogICAgfQogICAgCiAgICAvKioKICAgICAqIHByZXR0eSBtdWNoIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHNldCB1cCB0aGUgcmVxdWVzdAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZyb21fY29uc3VtZXJfYW5kX3Rva2VuKCRjb25zdW1lciwgJHRva2VuLCAkaHR0cF9tZXRob2QsICRodHRwX3VybCwgJHBhcmFtZXRlcnMgPSBudWxsKQogICAgewogICAgICAgICRwYXJhbWV0ZXJzID0gKCRwYXJhbWV0ZXJzKSA/ICRwYXJhbWV0ZXJzIDogYXJyYXkoKTsKICAgICAgICAkZGVmYXVsdHMgICA9IGFycmF5KAogICAgICAgICAgICAib2F1dGhfdmVyc2lvbiIgPT4gT0F1dGhSZXF1ZXN0OjokdmVyc2lvbiwKICAgICAgICAgICAgIm9hdXRoX25vbmNlIiA9PiBPQXV0aFJlcXVlc3Q6OmdlbmVyYXRlX25vbmNlKCksCiAgICAgICAgICAgICJvYXV0aF90aW1lc3RhbXAiID0+IE9BdXRoUmVxdWVzdDo6Z2VuZXJhdGVfdGltZXN0YW1wKCksCiAgICAgICAgICAgICJvYXV0aF9jb25zdW1lcl9rZXkiID0+ICRjb25zdW1lci0+a2V5CiAgICAgICAgKTsKICAgICAgICBpZiAoJHRva2VuKSB7CiAgICAgICAgICAgICRkZWZhdWx0c1snb2F1dGhfdG9rZW4nXSA9ICR0b2tlbi0+a2V5OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkcGFyYW1ldGVycyA9IGFycmF5X21lcmdlKCRkZWZhdWx0cywgJHBhcmFtZXRlcnMpOwogICAgICAgIAogICAgICAgIHJldHVybiBuZXcgT0F1dGhSZXF1ZXN0KCRodHRwX21ldGhvZCwgJGh0dHBfdXJsLCAkcGFyYW1ldGVycyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wYXJhbWV0ZXIoJG5hbWUsICR2YWx1ZSwgJGFsbG93X2R1cGxpY2F0ZXMgPSB0cnVlKQogICAgewogICAgICAgIGlmICgkYWxsb3dfZHVwbGljYXRlcyAmJiBpc3NldCgkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0pKSB7CiAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBhZGRlZCBwYXJhbWV0ZXIocykgd2l0aCB0aGlzIG5hbWUsIHNvIGFkZCB0byB0aGUgbGlzdAogICAgICAgICAgICBpZiAoaXNfc2NhbGFyKCR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXSkpIHsKICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGR1cGxpY2F0ZSwgc28gdHJhbnNmb3JtIHNjYWxhciAoc3RyaW5nKQogICAgICAgICAgICAgICAgLy8gaW50byBhbiBhcnJheSBzbyB3ZSBjYW4gYWRkIHRoZSBkdXBsaWNhdGVzCiAgICAgICAgICAgICAgICAkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXVtdID0gJHZhbHVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXSA9ICR2YWx1ZTsKICAgICAgICB9CiAgICB9CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhcmFtZXRlcigkbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPnBhcmFtZXRlcnNbJG5hbWVdKSA/ICR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXSA6IG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wYXJhbWV0ZXJzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmFtZXRlcnM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0X3BhcmFtZXRlcigkbmFtZSkKICAgIHsKICAgICAgICB1bnNldCgkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0pOwogICAgfQogICAgCiAgICAvKioKICAgICAqIFRoZSByZXF1ZXN0IHBhcmFtZXRlcnMsIHNvcnRlZCBhbmQgY29uY2F0ZW5hdGVkIGludG8gYSBub3JtYWxpemVkIHN0cmluZy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NpZ25hYmxlX3BhcmFtZXRlcnMoKQogICAgewogICAgICAgIC8vIEdyYWIgYWxsIHBhcmFtZXRlcnMKICAgICAgICAkcGFyYW1zID0gJHRoaXMtPnBhcmFtZXRlcnM7CiAgICAgICAgCiAgICAgICAgLy8gUmVtb3ZlIG9hdXRoX3NpZ25hdHVyZSBpZiBwcmVzZW50CiAgICAgICAgLy8gUmVmOiBTcGVjOiA5LjEuMSAoIlRoZSBvYXV0aF9zaWduYXR1cmUgcGFyYW1ldGVyIE1VU1QgYmUgZXhjbHVkZWQuIikKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snb2F1dGhfc2lnbmF0dXJlJ10pKSB7CiAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ29hdXRoX3NpZ25hdHVyZSddKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIE9BdXRoVXRpbDo6YnVpbGRfaHR0cF9xdWVyeSgkcGFyYW1zKTsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBiYXNlIHN0cmluZyBvZiB0aGlzIHJlcXVlc3QKICAgICAqCiAgICAgKiBUaGUgYmFzZSBzdHJpbmcgZGVmaW5lZCBhcyB0aGUgbWV0aG9kLCB0aGUgdXJsCiAgICAgKiBhbmQgdGhlIHBhcmFtZXRlcnMgKG5vcm1hbGl6ZWQpLCBlYWNoIHVybGVuY29kZWQKICAgICAqIGFuZCB0aGUgY29uY2F0ZWQgd2l0aCAmLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NpZ25hdHVyZV9iYXNlX3N0cmluZygpCiAgICB7CiAgICAgICAgJHBhcnRzID0gYXJyYXkoCiAgICAgICAgICAgICR0aGlzLT5nZXRfbm9ybWFsaXplZF9odHRwX21ldGhvZCgpLAogICAgICAgICAgICAkdGhpcy0+Z2V0X25vcm1hbGl6ZWRfaHR0cF91cmwoKSwKICAgICAgICAgICAgJHRoaXMtPmdldF9zaWduYWJsZV9wYXJhbWV0ZXJzKCkKICAgICAgICApOwogICAgICAgIAogICAgICAgICRwYXJ0cyA9IE9BdXRoVXRpbDo6dXJsZW5jb2RlX3JmYzM5ODYoJHBhcnRzKTsKICAgICAgICAKICAgICAgICByZXR1cm4gaW1wbG9kZSgnJicsICRwYXJ0cyk7CiAgICB9CiAgICAKICAgIC8qKgogICAgICoganVzdCB1cHBlcmNhc2VzIHRoZSBodHRwIG1ldGhvZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25vcm1hbGl6ZWRfaHR0cF9tZXRob2QoKQogICAgewogICAgICAgIHJldHVybiBzdHJ0b3VwcGVyKCR0aGlzLT5odHRwX21ldGhvZCk7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogcGFyc2VzIHRoZSB1cmwgYW5kIHJlYnVpbGRzIGl0IHRvIGJlCiAgICAgKiBzY2hlbWU6Ly9ob3N0L3BhdGgKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9ub3JtYWxpemVkX2h0dHBfdXJsKCkKICAgIHsKICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJHRoaXMtPmh0dHBfdXJsKTsKICAgICAgICAKICAgICAgICAkc2NoZW1lID0gKGlzc2V0KCRwYXJ0c1snc2NoZW1lJ10pKSA/ICRwYXJ0c1snc2NoZW1lJ10gOiAnaHR0cCc7CiAgICAgICAgJHBvcnQgICA9IChpc3NldCgkcGFydHNbJ3BvcnQnXSkpID8gJHBhcnRzWydwb3J0J10gOiAoKCRzY2hlbWUgPT0gJ2h0dHBzJykgPyAnNDQzJyA6ICc4MCcpOwogICAgICAgICRob3N0ICAgPSAoaXNzZXQoJHBhcnRzWydob3N0J10pKSA/IHN0cnRvbG93ZXIoJHBhcnRzWydob3N0J10pIDogJyc7CiAgICAgICAgJHBhdGggICA9IChpc3NldCgkcGFydHNbJ3BhdGgnXSkpID8gJHBhcnRzWydwYXRoJ10gOiAnJzsKICAgICAgICAKICAgICAgICBpZiAoKCRzY2hlbWUgPT0gJ2h0dHBzJyAmJiAkcG9ydCAhPSAnNDQzJykgfHwgKCRzY2hlbWUgPT0gJ2h0dHAnICYmICRwb3J0ICE9ICc4MCcpKSB7CiAgICAgICAgICAgICRob3N0ID0gIiRob3N0OiRwb3J0IjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICIkc2NoZW1lOi8vJGhvc3QkcGF0aCI7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogYnVpbGRzIGEgdXJsIHVzYWJsZSBmb3IgYSBHRVQgcmVxdWVzdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdG9fdXJsKCkKICAgIHsKICAgICAgICAkcG9zdF9kYXRhID0gJHRoaXMtPnRvX3Bvc3RkYXRhKCk7CiAgICAgICAgJG91dCAgICAgICA9ICR0aGlzLT5nZXRfbm9ybWFsaXplZF9odHRwX3VybCgpOwogICAgICAgIGlmICgkcG9zdF9kYXRhKSB7CiAgICAgICAgICAgICRvdXQgLj0gJz8nIC4gJHBvc3RfZGF0YTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogYnVpbGRzIHRoZSBkYXRhIG9uZSB3b3VsZCBzZW5kIGluIGEgUE9TVCByZXF1ZXN0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0b19wb3N0ZGF0YSgpCiAgICB7CiAgICAgICAgcmV0dXJuIE9BdXRoVXRpbDo6YnVpbGRfaHR0cF9xdWVyeSgkdGhpcy0+cGFyYW1ldGVycyk7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogYnVpbGRzIHRoZSBBdXRob3JpemF0aW9uOiBoZWFkZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRvX2hlYWRlcigkcmVhbG0gPSBudWxsKQogICAgewogICAgICAgICRmaXJzdCA9IHRydWU7CiAgICAgICAgaWYgKCRyZWFsbSkgewogICAgICAgICAgICAkb3V0ICAgPSAnT0F1dGggcmVhbG09IicgLiBPQXV0aFV0aWw6OnVybGVuY29kZV9yZmMzOTg2KCRyZWFsbSkgLiAnIic7CiAgICAgICAgICAgICRmaXJzdCA9IGZhbHNlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRvdXQgPSAnT0F1dGgnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmb3JlYWNoICgkdGhpcy0+cGFyYW1ldGVycyBhcyAkayA9PiAkdikgewogICAgICAgICAgICBpZiAoc3Vic3RyKCRrLCAwLCA1KSAhPSAib2F1dGgiKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHYpKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkb3V0IC49ICgkZmlyc3QpID8gJyAnIDogJywnOwogICAgICAgICAgICAkb3V0IC49IE9BdXRoVXRpbDo6dXJsZW5jb2RlX3JmYzM5ODYoJGspIC4gJz0iJyAuIE9BdXRoVXRpbDo6dXJsZW5jb2RlX3JmYzM5ODYoJHYpIC4gJyInOwogICAgICAgICAgICAkZmlyc3QgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nID0+ICRvdXQKICAgICAgICApOyAvLy0gaGFja2VkIGludG8gdGhpcyB0byBtYWtlIGl0IHJldHVybiBhbiBhcnJheS4gMTUvMTEvMjAxNC4KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT50b191cmwoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2lnbl9yZXF1ZXN0KCRzaWduYXR1cmVfbWV0aG9kLCAkY29uc3VtZXIsICR0b2tlbikKICAgIHsKICAgICAgICAkdGhpcy0+c2V0X3BhcmFtZXRlcigib2F1dGhfc2lnbmF0dXJlX21ldGhvZCIsICRzaWduYXR1cmVfbWV0aG9kLT5nZXRfbmFtZSgpLCBmYWxzZSk7CiAgICAgICAgJHNpZ25hdHVyZSA9ICR0aGlzLT5idWlsZF9zaWduYXR1cmUoJHNpZ25hdHVyZV9tZXRob2QsICRjb25zdW1lciwgJHRva2VuKTsKICAgICAgICAkdGhpcy0+c2V0X3BhcmFtZXRlcigib2F1dGhfc2lnbmF0dXJlIiwgJHNpZ25hdHVyZSwgZmFsc2UpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBidWlsZF9zaWduYXR1cmUoJHNpZ25hdHVyZV9tZXRob2QsICRjb25zdW1lciwgJHRva2VuKQogICAgewogICAgICAgICRzaWduYXR1cmUgPSAkc2lnbmF0dXJlX21ldGhvZC0+YnVpbGRfc2lnbmF0dXJlKCR0aGlzLCAkY29uc3VtZXIsICR0b2tlbik7CiAgICAgICAgcmV0dXJuICRzaWduYXR1cmU7CiAgICB9CgogICAgLyoqCiAgICAgKiB1dGlsIGZ1bmN0aW9uOiBjdXJyZW50IHRpbWVzdGFtcAogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBnZW5lcmF0ZV90aW1lc3RhbXAoKQogICAgewogICAgICAgIHJldHVybiB0aW1lKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiB1dGlsIGZ1bmN0aW9uOiBjdXJyZW50IG5vbmNlCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdlbmVyYXRlX25vbmNlKCkKICAgIHsKICAgICAgICAkbXQgICA9IG1pY3JvdGltZSgpOwogICAgICAgICRyYW5kID0gbXRfcmFuZCgpOwogICAgICAgIAogICAgICAgIHJldHVybiBtZDUoJG10IC4gJHJhbmQpOyAvLyBtZDVzIGxvb2sgbmljZXIgdGhhbiBudW1iZXJzCiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/OAuthSignatureMethod.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIE9BdXRoIFBIUCBMaWJyYXJ5IChodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL29hdXRoLykKKgoqIE9BdXRoIGBQSFAnIExpYnJhcnkgaXMgYW4gb3BlbiBzb3VyY2Ugc29mdHdhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KKi8KCm5hbWVzcGFjZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGg7CgphYnN0cmFjdCBjbGFzcyBPQXV0aFNpZ25hdHVyZU1ldGhvZAp7CiAgICAvKioKICAgICogTmVlZHMgdG8gcmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBTaWduYXR1cmUgTWV0aG9kIChpZSBITUFDLVNIQTEpCiAgICAqCiAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAqLwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCk7CgogICAgLyoqCiAgICAqIEJ1aWxkIHVwIHRoZSBzaWduYXR1cmUKICAgICogTk9URTogVGhlIG91dHB1dCBvZiB0aGlzIGZ1bmN0aW9uIE1VU1QgTk9UIGJlIHVybGVuY29kZWQuCiAgICAqIHRoZSBlbmNvZGluZyBpcyBoYW5kbGVkIGluIE9BdXRoUmVxdWVzdCB3aGVuIHRoZSBmaW5hbAogICAgKiByZXF1ZXN0IGlzIHNlcmlhbGl6ZWQKICAgICoKICAgICogQHBhcmFtIE9BdXRoUmVxdWVzdCAkcmVxdWVzdAogICAgKiBAcGFyYW0gT0F1dGhDb25zdW1lciAkY29uc3VtZXIKICAgICogQHBhcmFtIE9BdXRoVG9rZW4gJHRva2VuCiAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAqLwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGJ1aWxkX3NpZ25hdHVyZSgkcmVxdWVzdCwgJGNvbnN1bWVyLCAkdG9rZW4pOwoKICAgIC8qKgogICAgKiBWZXJpZmllcyB0aGF0IGEgZ2l2ZW4gc2lnbmF0dXJlIGlzIGNvcnJlY3QKICAgICoKICAgICogQHBhcmFtIE9BdXRoUmVxdWVzdCAkcmVxdWVzdAogICAgKiBAcGFyYW0gT0F1dGhDb25zdW1lciAkY29uc3VtZXIKICAgICogQHBhcmFtIE9BdXRoVG9rZW4gJHRva2VuCiAgICAqIEBwYXJhbSBzdHJpbmcgJHNpZ25hdHVyZQogICAgKiBAcmV0dXJuIGJvb2wKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfc2lnbmF0dXJlKCRyZXF1ZXN0LCAkY29uc3VtZXIsICR0b2tlbiwgJHNpZ25hdHVyZSkKICAgIHsKICAgICAgICAkYnVpbHQgPSAkdGhpcy0+YnVpbGRfc2lnbmF0dXJlKCRyZXF1ZXN0LCAkY29uc3VtZXIsICR0b2tlbik7CgogICAgICAgIC8vIENoZWNrIGZvciB6ZXJvIGxlbmd0aCwgYWx0aG91Z2ggdW5saWtlbHkgaGVyZQogICAgICAgIGlmIChzdHJsZW4oJGJ1aWx0KSA9PSAwIHx8IHN0cmxlbigkc2lnbmF0dXJlKSA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmIChzdHJsZW4oJGJ1aWx0KSAhPSBzdHJsZW4oJHNpZ25hdHVyZSkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLy8gQXZvaWQgYSB0aW1pbmcgbGVhayB3aXRoIGEgKGhvcGVmdWxseSkgdGltZSBpbnNlbnNpdGl2ZSBjb21wYXJlCiAgICAgICAgJHJlc3VsdCA9IDA7CiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgc3RybGVuKCRzaWduYXR1cmUpOyAkaSArKykgewogICAgICAgICAgICAkcmVzdWx0IHw9IG9yZCgkYnVpbHQgeyRpfSkgXiBvcmQoJHNpZ25hdHVyZSB7JGl9KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0ID09IDA7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/OAuthSignatureMethodHMACSHA1.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIE9BdXRoIFBIUCBMaWJyYXJ5IChodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL29hdXRoLykKKgoqIE9BdXRoIGBQSFAnIExpYnJhcnkgaXMgYW4gb3BlbiBzb3VyY2Ugc29mdHdhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KKi8KCm5hbWVzcGFjZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGg7CgpjbGFzcyBPQXV0aFNpZ25hdHVyZU1ldGhvZEhNQUNTSEExIGV4dGVuZHMgT0F1dGhTaWduYXR1cmVNZXRob2QKewogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gIkhNQUMtU0hBMSI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGJ1aWxkX3NpZ25hdHVyZSgkcmVxdWVzdCwgJGNvbnN1bWVyLCAkdG9rZW4pCiAgICB7CiAgICAgICAgJGJhc2Vfc3RyaW5nID0gJHJlcXVlc3QtPmdldF9zaWduYXR1cmVfYmFzZV9zdHJpbmcoKTsKICAgICAgICAkcmVxdWVzdC0+YmFzZV9zdHJpbmcgPSAkYmFzZV9zdHJpbmc7CgogICAgICAgICRrZXlfcGFydHMgPSBhcnJheSggJGNvbnN1bWVyLT5zZWNyZXQsICR0b2tlbiA/ICR0b2tlbi0+c2VjcmV0IDogJycgKTsKCiAgICAgICAgJGtleV9wYXJ0cyA9IE9BdXRoVXRpbDo6dXJsZW5jb2RlX3JmYzM5ODYoJGtleV9wYXJ0cyk7CiAgICAgICAgJGtleSA9IGltcGxvZGUoJyYnLCAka2V5X3BhcnRzKTsKICAgICAgICAKICAgICAgICByZXR1cm4gYmFzZTY0X2VuY29kZShoYXNoX2htYWMoJ3NoYTEnLCAkYmFzZV9zdHJpbmcsICRrZXksIHRydWUpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/OAuthUtil.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIE9BdXRoIFBIUCBMaWJyYXJ5IChodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL29hdXRoLykKKgoqIE9BdXRoIGBQSFAnIExpYnJhcnkgaXMgYW4gb3BlbiBzb3VyY2Ugc29mdHdhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KKi8KCm5hbWVzcGFjZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT0F1dGg7CgpjbGFzcyBPQXV0aFV0aWwKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1cmxlbmNvZGVfcmZjMzk4NigkaW5wdXQpCiAgICB7CiAgICAgICAgaWYgKGlzX2FycmF5KCRpbnB1dCkpIHsKICAgICAgICAgICAgcmV0dXJuIGFycmF5X21hcChhcnJheSgKICAgICAgICAgICAgICAgICdcSHlicmlkYXV0aFxUaGlyZHBhcnR5XE9BdXRoXE9BdXRoVXRpbCcsCiAgICAgICAgICAgICAgICAndXJsZW5jb2RlX3JmYzM5ODYnCiAgICAgICAgICAgICksICRpbnB1dCk7CiAgICAgICAgfSBlbHNlaWYgKGlzX3NjYWxhcigkaW5wdXQpKSB7CiAgICAgICAgICAgIHJldHVybiBzdHJfcmVwbGFjZSgnKycsICcgJywgc3RyX3JlcGxhY2UoJyU3RScsICd+JywgcmF3dXJsZW5jb2RlKCRpbnB1dCkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBUaGlzIGRlY29kZSBmdW5jdGlvbiBpc24ndCB0YWtpbmcgaW50byBjb25zaWRlcmF0aW9uIHRoZSBhYm92ZQogICAgLy8gbW9kaWZpY2F0aW9ucyB0byB0aGUgZW5jb2RpbmcgcHJvY2Vzcy4gSG93ZXZlciwgdGhpcyBtZXRob2QgZG9lc24ndAogICAgLy8gc2VlbSB0byBiZSB1c2VkIGFueXdoZXJlIHNvIGxlYXZpbmcgaXQgYXMgaXMuCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVybGRlY29kZV9yZmMzOTg2KCRzdHJpbmcpCiAgICB7CiAgICAgICAgcmV0dXJuIHVybGRlY29kZSgkc3RyaW5nKTsKICAgIH0KICAgIAogICAgLy8gVXRpbGl0eSBmdW5jdGlvbiBmb3IgdHVybmluZyB0aGUgQXV0aG9yaXphdGlvbjogaGVhZGVyIGludG8KICAgIC8vIHBhcmFtZXRlcnMsIGhhcyB0byBkbyBzb21lIHVuZXNjYXBpbmcKICAgIC8vIENhbiBmaWx0ZXIgb3V0IGFueSBub24tb2F1dGggcGFyYW1ldGVycyBpZiBuZWVkZWQgKGRlZmF1bHQgYmVoYXZpb3VyKQogICAgLy8gTWF5IDI4dGgsIDIwMTAgLSBtZXRob2QgdXBkYXRlZCB0byB0amVyay5tZWVzdGVycyBmb3IgYSBzcGVlZCBpbXByb3ZlbWVudC4KICAgIC8vIHNlZSBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avb2F1dGgvaXNzdWVzL2RldGFpbD9pZD0xNjMKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc3BsaXRfaGVhZGVyKCRoZWFkZXIsICRvbmx5X2FsbG93X29hdXRoX3BhcmFtZXRlcnMgPSB0cnVlKQogICAgewogICAgICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgICAgIGlmIChwcmVnX21hdGNoX2FsbCgnLygnIC4gKCRvbmx5X2FsbG93X29hdXRoX3BhcmFtZXRlcnMgPyAnb2F1dGhfJyA6ICcnKSAuICdbYS16Xy1dKik9KDo/IihbXiJdKikifChbXixdKikpLycsICRoZWFkZXIsICRtYXRjaGVzKSkgewogICAgICAgICAgICBmb3JlYWNoICgkbWF0Y2hlc1sxXSBhcyAkaSA9PiAkaCkgewogICAgICAgICAgICAgICAgJHBhcmFtc1skaF0gPSBPQXV0aFV0aWw6OnVybGRlY29kZV9yZmMzOTg2KGVtcHR5KCRtYXRjaGVzWzNdWyRpXSkgPyAkbWF0Y2hlc1s0XVskaV0gOiAkbWF0Y2hlc1szXVskaV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydyZWFsbSddKSkgewogICAgICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1sncmVhbG0nXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwYXJhbXM7CiAgICB9CiAgICAKICAgIC8vIGhlbHBlciB0byB0cnkgdG8gc29ydCBvdXQgaGVhZGVycyBmb3IgcGVvcGxlIHdobyBhcmVuJ3QgcnVubmluZyBhcGFjaGUKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hlYWRlcnMoKQogICAgewogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2FwYWNoZV9yZXF1ZXN0X2hlYWRlcnMnKSkgewogICAgICAgICAgICAvLyB3ZSBuZWVkIHRoaXMgdG8gZ2V0IHRoZSBhY3R1YWwgQXV0aG9yaXphdGlvbjogaGVhZGVyCiAgICAgICAgICAgIC8vIGJlY2F1c2UgYXBhY2hlIHRlbmRzIHRvIHRlbGwgdXMgaXQgZG9lc24ndCBleGlzdAogICAgICAgICAgICAkaGVhZGVycyA9IGFwYWNoZV9yZXF1ZXN0X2hlYWRlcnMoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIHNhbml0aXplIHRoZSBvdXRwdXQgb2YgYXBhY2hlX3JlcXVlc3RfaGVhZGVycyBiZWNhdXNlCiAgICAgICAgICAgIC8vIHdlIGFsd2F5cyB3YW50IHRoZSBrZXlzIHRvIGJlIENhc2VkLUxpa2UtVGhpcyBhbmQgYXJoKCkKICAgICAgICAgICAgLy8gcmV0dXJucyB0aGUgaGVhZGVycyBpbiB0aGUgc2FtZSBjYXNlIGFzIHRoZXkgYXJlIGluIHRoZQogICAgICAgICAgICAvLyByZXF1ZXN0CiAgICAgICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoICgkaGVhZGVycyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJGtleSAgICAgICA9IHN0cl9yZXBsYWNlKCIgIiwgIi0iLCB1Y3dvcmRzKHN0cnRvbG93ZXIoc3RyX3JlcGxhY2UoIi0iLCAiICIsICRrZXkpKSkpOwogICAgICAgICAgICAgICAgJG91dFska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBkb24ndCBoYXZlIGFwYWNoZSBhbmQgYXJlIGp1c3QgZ29pbmcgdG8gaGF2ZSB0byBob3BlCiAgICAgICAgICAgIC8vIHRoYXQgJF9TRVJWRVIgYWN0dWFsbHkgY29udGFpbnMgd2hhdCB3ZSBuZWVkCiAgICAgICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgICAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0NPTlRFTlRfVFlQRSddKSkgewogICAgICAgICAgICAgICAgJG91dFsnQ29udGVudC1UeXBlJ10gPSAkX1NFUlZFUlsnQ09OVEVOVF9UWVBFJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzc2V0KCRfRU5WWydDT05URU5UX1RZUEUnXSkpIHsKICAgICAgICAgICAgICAgICRvdXRbJ0NvbnRlbnQtVHlwZSddID0gJF9FTlZbJ0NPTlRFTlRfVFlQRSddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3JlYWNoICgkX1NFUlZFUiBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgaWYgKHN1YnN0cigka2V5LCAwLCA1KSA9PSAiSFRUUF8iKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBjaGFvcywgYmFzaWNhbGx5IGl0IGlzIGp1c3QgdGhlcmUgdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QKICAgICAgICAgICAgICAgICAgICAvLyBsZXR0ZXIgb2YgZXZlcnkgd29yZCB0aGF0IGlzIG5vdCBhbiBpbml0aWFsIEhUVFAgYW5kIHN0cmlwIEhUVFAKICAgICAgICAgICAgICAgICAgICAvLyBjb2RlIGZyb20gcHJ6ZW1lawogICAgICAgICAgICAgICAgICAgICRrZXkgICAgICAgPSBzdHJfcmVwbGFjZSgiICIsICItIiwgdWN3b3JkcyhzdHJ0b2xvd2VyKHN0cl9yZXBsYWNlKCJfIiwgIiAiLCBzdWJzdHIoJGtleSwgNSkpKSkpOwogICAgICAgICAgICAgICAgICAgICRvdXRbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLy8gVGhpcyBmdW5jdGlvbiB0YWtlcyBhIGlucHV0IGxpa2UgYT1iJmE9YyZkPWUgYW5kIHJldHVybnMgdGhlIHBhcnNlZAogICAgLy8gcGFyYW1ldGVycyBsaWtlIHRoaXMKICAgIC8vIGFycmF5KCdhJyA9PiBhcnJheSgnYicsJ2MnKSwgJ2QnID0+ICdlJykKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcGFyc2VfcGFyYW1ldGVycygkaW5wdXQpCiAgICB7CiAgICAgICAgaWYgKCFpc3NldCgkaW5wdXQpIHx8ICEkaW5wdXQpIHsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRwYWlycyA9IGV4cGxvZGUoJyYnLCAkaW5wdXQpOwogICAgICAgIAogICAgICAgICRwYXJzZWRfcGFyYW1ldGVycyA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJHBhaXJzIGFzICRwYWlyKSB7CiAgICAgICAgICAgICRzcGxpdCAgICAgPSBleHBsb2RlKCc9JywgJHBhaXIsIDIpOwogICAgICAgICAgICAkcGFyYW1ldGVyID0gT0F1dGhVdGlsOjp1cmxkZWNvZGVfcmZjMzk4Nigkc3BsaXRbMF0pOwogICAgICAgICAgICAkdmFsdWUgICAgID0gaXNzZXQoJHNwbGl0WzFdKSA/IE9BdXRoVXRpbDo6dXJsZGVjb2RlX3JmYzM5ODYoJHNwbGl0WzFdKSA6ICcnOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKGlzc2V0KCRwYXJzZWRfcGFyYW1ldGVyc1skcGFyYW1ldGVyXSkpIHsKICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxyZWFkeSByZWNpZXZlZCBwYXJhbWV0ZXIocykgd2l0aCB0aGlzIG5hbWUsIHNvIGFkZCB0byB0aGUgbGlzdAogICAgICAgICAgICAgICAgLy8gb2YgcGFyYW1ldGVycyB3aXRoIHRoaXMgbmFtZQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoaXNfc2NhbGFyKCRwYXJzZWRfcGFyYW1ldGVyc1skcGFyYW1ldGVyXSkpIHsKICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBkdXBsaWNhdGUsIHNvIHRyYW5zZm9ybSBzY2FsYXIgKHN0cmluZykgaW50byBhbiBhcnJheQogICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIGNhbiBhZGQgdGhlIGR1cGxpY2F0ZXMKICAgICAgICAgICAgICAgICAgICAkcGFyc2VkX3BhcmFtZXRlcnNbJHBhcmFtZXRlcl0gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJHBhcnNlZF9wYXJhbWV0ZXJzWyRwYXJhbWV0ZXJdCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJHBhcnNlZF9wYXJhbWV0ZXJzWyRwYXJhbWV0ZXJdW10gPSAkdmFsdWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcGFyc2VkX3BhcmFtZXRlcnNbJHBhcmFtZXRlcl0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwYXJzZWRfcGFyYW1ldGVyczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGJ1aWxkX2h0dHBfcXVlcnkoJHBhcmFtcykKICAgIHsKICAgICAgICBpZiAoISRwYXJhbXMpIHsKICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBVcmxlbmNvZGUgYm90aCBrZXlzIGFuZCB2YWx1ZXMKICAgICAgICAka2V5cyAgID0gT0F1dGhVdGlsOjp1cmxlbmNvZGVfcmZjMzk4NihhcnJheV9rZXlzKCRwYXJhbXMpKTsKICAgICAgICAkdmFsdWVzID0gT0F1dGhVdGlsOjp1cmxlbmNvZGVfcmZjMzk4NihhcnJheV92YWx1ZXMoJHBhcmFtcykpOwogICAgICAgICRwYXJhbXMgPSBhcnJheV9jb21iaW5lKCRrZXlzLCAkdmFsdWVzKTsKICAgICAgICAKICAgICAgICAvLyBQYXJhbWV0ZXJzIGFyZSBzb3J0ZWQgYnkgbmFtZSwgdXNpbmcgbGV4aWNvZ3JhcGhpY2FsIGJ5dGUgdmFsdWUgb3JkZXJpbmcuCiAgICAgICAgLy8gUmVmOiBTcGVjOiA5LjEuMSAoMSkKICAgICAgICB1a3NvcnQoJHBhcmFtcywgJ3N0cmNtcCcpOwogICAgICAgIAogICAgICAgICRwYWlycyA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkcGFyYW1ldGVyID0+ICR2YWx1ZSkgewogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHZhbHVlKSkgewogICAgICAgICAgICAgICAgLy8gSWYgdHdvIG9yIG1vcmUgcGFyYW1ldGVycyBzaGFyZSB0aGUgc2FtZSBuYW1lLCB0aGV5IGFyZSBzb3J0ZWQgYnkgdGhlaXIgdmFsdWUKICAgICAgICAgICAgICAgIC8vIFJlZjogU3BlYzogOS4xLjEgKDEpCiAgICAgICAgICAgICAgICAvLyBKdW5lIDEydGgsIDIwMTAgLSBjaGFuZ2VkIHRvIHNvcnQgYmVjYXVzZSBvZiBpc3N1ZSAxNjQgYnkgaGlkZXRha2EKICAgICAgICAgICAgICAgIHNvcnQoJHZhbHVlLCBTT1JUX1NUUklORyk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkdmFsdWUgYXMgJGR1cGxpY2F0ZV92YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICRwYWlyc1tdID0gJHBhcmFtZXRlciAuICc9JyAuICRkdXBsaWNhdGVfdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcGFpcnNbXSA9ICRwYXJhbWV0ZXIgLiAnPScgLiAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gRm9yIGVhY2ggcGFyYW1ldGVyLCB0aGUgbmFtZSBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBieSBhbiAnPScgY2hhcmFjdGVyIChBU0NJSSBjb2RlIDYxKQogICAgICAgIC8vIEVhY2ggbmFtZS12YWx1ZSBwYWlyIGlzIHNlcGFyYXRlZCBieSBhbiAnJicgY2hhcmFjdGVyIChBU0NJSSBjb2RlIDM4KQogICAgICAgIHJldHVybiBpbXBsb2RlKCcmJywgJHBhaXJzKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OAuth/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhpcyBwYWNrYWdlIGNvbnRhaW5zIE9BdXRoIFBIUCBMaWJyYXJ5LgoKT0F1dGggUEhQIExpYnJhcnkgaXMgYW4gb3BlbiBzb3VyY2Ugc29mdHdhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KCmh0dHBzOi8vY29kZS5nb29nbGUuY29tL3Avb2F1dGgvCgpodHRwOi8vb2F1dGguZ29vZ2xlY29kZS5jb20vc3ZuL2NvZGUvcGhwL0xJQ0VOU0UudHh0Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OpenID/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OpenID/LightOpenID.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpZ2h0T3BlbklEIFBIUCBMaWJyYXJ5IChodHRwczovL2dpdGh1Yi5jb20vaWlnbmF0b3YvTGlnaHRPcGVuSUQpCioKKiBMaWdodE9wZW5JRCBpcyBhbiBvcGVuIHNvdXJjZSBzb2Z0d2FyZSBhdmFpbGFibGUgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLgoqCiogVXBkYXRlZDogNTJmOTkxMCAgb24gNCBNYXIgMjAxNi4KKi8KCm5hbWVzcGFjZSBIeWJyaWRhdXRoXFRoaXJkcGFydHlcT3BlbklEOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEV4Y2VwdGlvbjsKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXEV4Y2VwdGlvbkludGVyZmFjZTsKCmNsYXNzIEVycm9yRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIGltcGxlbWVudHMgRXhjZXB0aW9uSW50ZXJmYWNlCnsKfQoKLyoqCiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW1wbGUgaW50ZXJmYWNlIGZvciBPcGVuSUQgMS4xLzIuMCBhdXRoZW50aWNhdGlvbi4KICogCiAqIEl0IHJlcXVpcmVzIFBIUCA+PSA1LjEuMiB3aXRoIGNVUkwgb3IgSFRUUC9IVFRQUyBzdHJlYW0gd3JhcHBlcnMgZW5hYmxlZC4KICoKICogQHZlcnNpb24gICAgIHYxLjMuMSAoMjAxNi0wMy0wNCkKICogQGxpbmsgICAgICAgIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvbGlnaHRvcGVuaWQvICAgICAgICAgIFByb2plY3QgVVJMCiAqIEBsaW5rICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vaWlnbmF0b3YvTGlnaHRPcGVuSUQgICAgICAgICBHaXRIdWIgUmVwbwogKiBAYXV0aG9yICAgICAgTWV3cCA8bWV3cDE1MSBhdCBnbWFpbCBkb3QgY29tPgogKiBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDEzIE1ld3AKICogQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAgIE1JVCBMaWNlbnNlCiAqLwpjbGFzcyBMaWdodE9wZW5JRAp7CiAgICBwdWJsaWMgJHJldHVyblVybAogICAgICAgICA7CiAgICBwdWJsaWMgJHJlcXVpcmVkID0gYXJyYXkoKQogICAgICAgICA7CiAgICBwdWJsaWMgJG9wdGlvbmFsID0gYXJyYXkoKQogICAgICAgICA7CiAgICBwdWJsaWMgJHZlcmlmeV9wZWVyID0gbnVsbAogICAgICAgICA7CiAgICBwdWJsaWMgJGNhcGF0aCA9IG51bGwKICAgICAgICAgOwogICAgcHVibGljICRjYWluZm8gPSBudWxsCiAgICAgICAgIDsKICAgIHB1YmxpYyAkY25tYXRjaCA9IG51bGwKICAgICAgICAgOwogICAgcHVibGljICRkYXRhCiAgICAgICAgIDsKICAgIHB1YmxpYyAkb2F1dGggPSBhcnJheSgpCiAgICAgICAgIDsKICAgIHB1YmxpYyAkY3VybF90aW1lX291dCA9IDMwICAgICAgICAgIC8vIGluIHNlY29uZHMKICAgICAgICAgOwogICAgcHVibGljICRjdXJsX2Nvbm5lY3RfdGltZV9vdXQgPSAzMDsgLy8gaW4gc2Vjb25kcwogICAgcHJpdmF0ZSAkaWRlbnRpdHk7CiAgICBwcml2YXRlICRjbGFpbWVkX2lkOwogICAgcHJvdGVjdGVkICRzZXJ2ZXI7CiAgICBwcm90ZWN0ZWQgJHZlcnNpb247CiAgICBwcm90ZWN0ZWQgJHRydXN0Um9vdDsKICAgIHByb3RlY3RlZCAkYWxpYXNlczsKICAgIHByb3RlY3RlZCAkaWRlbnRpZmllcl9zZWxlY3QgPSBmYWxzZQogICAgICAgICAgICA7CiAgICBwcm90ZWN0ZWQgJGF4ID0gZmFsc2U7CiAgICBwcm90ZWN0ZWQgJHNyZWcgPSBmYWxzZTsKICAgIHByb3RlY3RlZCAkc2V0dXBfdXJsID0gbnVsbDsKICAgIHByb3RlY3RlZCAkaGVhZGVycyA9IGFycmF5KCkKICAgICAgICAgICAgOwogICAgcHJvdGVjdGVkICRwcm94eSA9IG51bGw7CiAgICBwcm90ZWN0ZWQgJHVzZXJfYWdlbnQgPSAnTGlnaHRPcGVuSUQnCiAgICAgICAgICAgIDsKICAgIHByb3RlY3RlZCAkeHJkc19vdmVycmlkZV9wYXR0ZXJuID0gbnVsbDsKICAgIHByb3RlY3RlZCAkeHJkc19vdmVycmlkZV9yZXBsYWNlbWVudCA9IG51bGw7CiAgICBwcm90ZWN0ZWQgc3RhdGljICRheF90b19zcmVnID0gYXJyYXkoCiAgICAgICAgJ25hbWVQZXJzb24vZnJpZW5kbHknICAgICA9PiAnbmlja25hbWUnLAogICAgICAgICdjb250YWN0L2VtYWlsJyAgICAgICAgICAgPT4gJ2VtYWlsJywKICAgICAgICAnbmFtZVBlcnNvbicgICAgICAgICAgICAgID0+ICdmdWxsbmFtZScsCiAgICAgICAgJ2JpcnRoRGF0ZScgICAgICAgICAgICAgICA9PiAnZG9iJywKICAgICAgICAncGVyc29uL2dlbmRlcicgICAgICAgICAgID0+ICdnZW5kZXInLAogICAgICAgICdjb250YWN0L3Bvc3RhbENvZGUvaG9tZScgPT4gJ3Bvc3Rjb2RlJywKICAgICAgICAnY29udGFjdC9jb3VudHJ5L2hvbWUnICAgID0+ICdjb3VudHJ5JywKICAgICAgICAncHJlZi9sYW5ndWFnZScgICAgICAgICAgID0+ICdsYW5ndWFnZScsCiAgICAgICAgJ3ByZWYvdGltZXpvbmUnICAgICAgICAgICA9PiAndGltZXpvbmUnLAogICAgICAgICk7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRob3N0LCAkcHJveHkgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5zZXRfcmVhbG0oJGhvc3QpOwogICAgICAgICR0aGlzLT5zZXRfcHJveHkoJHByb3h5KTsKCiAgICAgICAgJHVyaSA9IHJ0cmltKHByZWdfcmVwbGFjZSgnIygoPzw9XD8pfCYpb3BlbmlkXC5bXiZdKyMnLCAnJywgJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pLCAnPycpOwogICAgICAgICR0aGlzLT5yZXR1cm5VcmwgPSAkdGhpcy0+dHJ1c3RSb290IC4gJHVyaTsKCiAgICAgICAgJHRoaXMtPmRhdGEgPSAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgPyAkX1BPU1QgOiAkX0dFVDsKCiAgICAgICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2N1cmxfaW5pdCcpICYmICFpbl9hcnJheSgnaHR0cHMnLCBzdHJlYW1fZ2V0X3dyYXBwZXJzKCkpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckV4Y2VwdGlvbignWW91IG11c3QgaGF2ZSBlaXRoZXIgaHR0cHMgd3JhcHBlcnMgb3IgY3VybCBlbmFibGVkLicpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcHVibGljIGZ1bmN0aW9uIF9faXNzZXQoJG5hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuIGluX2FycmF5KCRuYW1lLCBhcnJheSgnaWRlbnRpdHknLCAndHJ1c3RSb290JywgJ3JlYWxtJywgJ3hyZHNPdmVycmlkZScsICdtb2RlJykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgkbmFtZSwgJHZhbHVlKQogICAgewogICAgICAgIHN3aXRjaCAoJG5hbWUpIHsKICAgICAgICBjYXNlICdpZGVudGl0eSc6CiAgICAgICAgICAgIGlmIChzdHJsZW4oJHZhbHVlID0gdHJpbSgoU3RyaW5nKSAkdmFsdWUpKSkgewogICAgICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJyNeeHJpOi8qI2knLCAkdmFsdWUsICRtKSkgewogICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IHN1YnN0cigkdmFsdWUsIHN0cmxlbigkbVswXSkpOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKCFwcmVnX21hdGNoKCcvXig/Ols9QCtcJCFcKF18aHR0cHM/OikvaScsICR2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSAiaHR0cDovLyR2YWx1ZSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnI15odHRwcz86Ly9bXi9dKyQjaScsICR2YWx1ZSwgJG0pKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbHVlIC49ICcvJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+JG5hbWUgPSAkdGhpcy0+Y2xhaW1lZF9pZCA9ICR2YWx1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAndHJ1c3RSb290JzoKICAgICAgICBjYXNlICdyZWFsbSc6CiAgICAgICAgICAgICR0aGlzLT50cnVzdFJvb3QgPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3hyZHNPdmVycmlkZSc6CiAgICAgICAgICAgIGlmIChpc19hcnJheSgkdmFsdWUpKSB7CiAgICAgICAgICAgICAgICBsaXN0KCRwYXR0ZXJuLCAkcmVwbGFjZW1lbnQpID0gJHZhbHVlOwogICAgICAgICAgICAgICAgJHRoaXMtPnhyZHNfb3ZlcnJpZGVfcGF0dGVybiA9ICRwYXR0ZXJuOwogICAgICAgICAgICAgICAgJHRoaXMtPnhyZHNfb3ZlcnJpZGVfcmVwbGFjZW1lbnQgPSAkcmVwbGFjZW1lbnQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCdJbnZhbGlkIHZhbHVlIHNwZWNpZmllZCBmb3IgInhyZHNPdmVycmlkZSIuJywgRV9VU0VSX0VSUk9SKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRuYW1lKQogICAgewogICAgICAgIHN3aXRjaCAoJG5hbWUpIHsKICAgICAgICBjYXNlICdpZGVudGl0eSc6CiAgICAgICAgICAgICMgV2UgcmV0dXJuIGNsYWltZWRfaWQgaW5zdGVhZCBvZiBpZGVudGl0eSwKICAgICAgICAgICAgIyBiZWNhdXNlIHRoZSBkZXZlbG9wZXIgc2hvdWxkIHNlZSB0aGUgY2xhaW1lZCBpZGVudGlmaWVyLAogICAgICAgICAgICAjIGkuZS4gd2hhdCBoZSBzZXQgYXMgaWRlbnRpdHksIG5vdCB0aGUgb3AtbG9jYWwgaWRlbnRpZmllciAod2hpY2ggaXMgd2hhdCB3ZSB2ZXJpZnkpCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2xhaW1lZF9pZDsKICAgICAgICBjYXNlICd0cnVzdFJvb3QnOgogICAgICAgIGNhc2UgJ3JlYWxtJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT50cnVzdFJvb3Q7CiAgICAgICAgY2FzZSAnbW9kZSc6CiAgICAgICAgICAgIHJldHVybiBlbXB0eSgkdGhpcy0+ZGF0YVsnb3BlbmlkX21vZGUnXSkgPyBudWxsIDogJHRoaXMtPmRhdGFbJ29wZW5pZF9tb2RlJ107CiAgICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Byb3h5KCRwcm94eSkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCRwcm94eSkpIHsKICAgICAgICAgICAgLy8gV2hlbiB0aGUgcHJveHkgaXMgYSBzdHJpbmcgLSB0cnkgdG8gcGFyc2UgaXQuCiAgICAgICAgICAgIGlmICghaXNfYXJyYXkoJHByb3h5KSkgewogICAgICAgICAgICAgICAgJHByb3h5ID0gcGFyc2VfdXJsKCRwcm94eSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENoZWNrIGlmICRwcm94eSBpcyB2YWxpZCBhZnRlciB0aGUgcGFyc2luZy4KICAgICAgICAgICAgaWYgKCRwcm94eSAmJiAhZW1wdHkoJHByb3h5Wydob3N0J10pKSB7CiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhIHZhbGlkIHBvcnQgbnVtYmVyIGlzIHNwZWNpZmllZC4KICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdwb3J0JywgJHByb3h5KSkgewogICAgICAgICAgICAgICAgICAgIGlmICghaXNfaW50KCRwcm94eVsncG9ydCddKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJveHlbJ3BvcnQnXSA9IGlzX251bWVyaWMoJHByb3h5Wydwb3J0J10pID8gaW50dmFsKCRwcm94eVsncG9ydCddKSA6IDA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGlmICgkcHJveHlbJ3BvcnQnXSA8PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckV4Y2VwdGlvbignVGhlIHNwZWNpZmllZCBwcm94eSBwb3J0IG51bWJlciBpcyBpbnZhbGlkLicpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJHRoaXMtPnByb3h5ID0gJHByb3h5OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2tzIGlmIHRoZSBzZXJ2ZXIgc3BlY2lmaWVkIGluIHRoZSB1cmwgZXhpc3RzLgogICAgICoKICAgICAqIEBwYXJhbSAkdXJsIHVybCB0byBjaGVjawogICAgICogQHJldHVybiB0cnVlLCBpZiB0aGUgc2VydmVyIGV4aXN0czsgZmFsc2Ugb3RoZXJ3aXNlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBob3N0RXhpc3RzKCR1cmwpCiAgICB7CiAgICAgICAgaWYgKHN0cnBvcygkdXJsLCAnLycpID09PSBmYWxzZSkgewogICAgICAgICAgICAkc2VydmVyID0gJHVybDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc2VydmVyID0gQHBhcnNlX3VybCgkdXJsLCBQSFBfVVJMX0hPU1QpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkc2VydmVyKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAhIWdldGhvc3RieW5hbWVsKCRzZXJ2ZXIpOwogICAgfQogICAgCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X3JlYWxtKCR1cmkpCiAgICB7CiAgICAgICAgJHJlYWxtID0gJyc7CiAgICAgICAgCiAgICAgICAgIyBTZXQgYSBwcm90b2NvbCwgaWYgbm90IHNwZWNpZmllZC4KICAgICAgICAkcmVhbG0gLj0gKCgkb2Zmc2V0ID0gc3RycG9zKCR1cmksICc6Ly8nKSkgPT09IGZhbHNlKSA/ICR0aGlzLT5nZXRfcmVhbG1fcHJvdG9jb2woKSA6ICcnOwogICAgICAgIAogICAgICAgICMgU2V0IHRoZSBvZmZzZXQgcHJvcGVybHkuCiAgICAgICAgJG9mZnNldCA9ICgoJG9mZnNldCAhPT0gZmFsc2UpID8gJG9mZnNldCArIDMgOiAwKTsKICAgICAgICAKICAgICAgICAjIEdldCBvbmx5IHRoZSByb290LCB3aXRob3V0IHRoZSBwYXRoLgogICAgICAgICRyZWFsbSAuPSAoKCRlbmQgPSBzdHJwb3MoJHVyaSwgJy8nLCAkb2Zmc2V0KSkgPT09IGZhbHNlKSA/ICR1cmkgOiBzdWJzdHIoJHVyaSwgMCwgJGVuZCk7CiAgICAgICAgCiAgICAgICAgJHRoaXMtPnRydXN0Um9vdCA9ICRyZWFsbTsKICAgIH0KICAgIAogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9yZWFsbV9wcm90b2NvbCgpCiAgICB7CiAgICAgICAgaWYgKCFlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkpIHsKICAgICAgICAgICAgJHVzZV9zZWN1cmVfcHJvdG9jb2wgPSAoJF9TRVJWRVJbJ0hUVFBTJ10gIT0gJ29mZicpOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddKSkgewogICAgICAgICAgICAkdXNlX3NlY3VyZV9wcm90b2NvbCA9ICgkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddID09ICdodHRwcycpOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9fV1NTQyddKSkgewogICAgICAgICAgICAkdXNlX3NlY3VyZV9wcm90b2NvbCA9ICgkX1NFUlZFUlsnSFRUUF9fV1NTQyddID09ICdodHRwcycpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR1c2Vfc2VjdXJlX3Byb3RvY29sID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAkdXNlX3NlY3VyZV9wcm90b2NvbCA/ICdodHRwczovLycgOiAnaHR0cDovLyc7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlcXVlc3RfY3VybCgkdXJsLCAkbWV0aG9kPSdHRVQnLCAkcGFyYW1zPWFycmF5KCksICR1cGRhdGVfY2xhaW1lZF9pZCkKICAgIHsKICAgICAgICAkcGFyYW1zID0gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zLCAnJywgJyYnKTsKICAgICAgICAkY3VybCA9IGN1cmxfaW5pdCgkdXJsIC4gKCRtZXRob2QgPT0gJ0dFVCcgJiYgJHBhcmFtcyA/ICc/JyAuICRwYXJhbXMgOiAnJykpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCB0cnVlKTsKICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR0aGlzLT51c2VyX2FnZW50KTsKICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgZmFsc2UpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAgICAgICAKICAgICAgICBpZiAoJG1ldGhvZCA9PSAnUE9TVCcpIHsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0hUVFBIRUFERVIsIGFycmF5KCdBY2NlcHQ6IGFwcGxpY2F0aW9uL3hyZHMreG1sLCAqLyonKSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1RJTUVPVVQsICR0aGlzLT5jdXJsX3RpbWVfb3V0KTsgLy8gZGVmYXVsdHMgdG8gaW5maW5pdGUKICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgJHRoaXMtPmN1cmxfY29ubmVjdF90aW1lX291dCk7IC8vIGRlZmF1bHRzIHRvIDMwMHMKICAgICAgICAKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5wcm94eSkpIHsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUFJPWFksICR0aGlzLT5wcm94eVsnaG9zdCddKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPnByb3h5Wydwb3J0J10pKSB7CiAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QUk9YWVBPUlQsICR0aGlzLT5wcm94eVsncG9ydCddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+cHJveHlbJ3VzZXInXSkpIHsKICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BST1hZVVNFUlBXRCwgJHRoaXMtPnByb3h5Wyd1c2VyJ10gLiAnOicgLiAkdGhpcy0+cHJveHlbJ3Bhc3MnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+dmVyaWZ5X3BlZXIgIT09IG51bGwpIHsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsICR0aGlzLT52ZXJpZnlfcGVlcik7CiAgICAgICAgICAgIGlmICgkdGhpcy0+Y2FwYXRoKSB7CiAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9DQVBBVEgsICR0aGlzLT5jYXBhdGgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHRoaXMtPmNhaW5mbykgewogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfQ0FJTkZPLCAkdGhpcy0+Y2FpbmZvKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRtZXRob2QgPT0gJ1BPU1QnKSB7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIHRydWUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcGFyYW1zKTsKICAgICAgICB9IGVsc2VpZiAoJG1ldGhvZCA9PSAnSEVBRCcpIHsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSEVBREVSLCB0cnVlKTsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfTk9CT0RZLCB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IRUFERVIsIHRydWUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IVFRQR0VULCB0cnVlKTsKICAgICAgICB9CiAgICAgICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjdXJsKTsKCiAgICAgICAgaWYgKCRtZXRob2QgPT0gJ0hFQUQnICYmIGN1cmxfZ2V0aW5mbygkY3VybCwgQ1VSTElORk9fSFRUUF9DT0RFKSA9PSA0MDUpIHsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEdFVCwgdHJ1ZSk7CiAgICAgICAgICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7CiAgICAgICAgICAgICRyZXNwb25zZSA9IHN1YnN0cigkcmVzcG9uc2UsIDAsIHN0cnBvcygkcmVzcG9uc2UsICJcclxuXHJcbiIpKTsKICAgICAgICB9CgogICAgICAgIGlmICgkbWV0aG9kID09ICdIRUFEJyB8fCAkbWV0aG9kID09ICdHRVQnKSB7CiAgICAgICAgICAgICRoZWFkZXJfcmVzcG9uc2UgPSAkcmVzcG9uc2U7CgogICAgICAgICAgICAjIElmIGl0J3MgYSBHRVQgcmVxdWVzdCwgd2Ugd2FudCB0byBvbmx5IHBhcnNlIHRoZSBoZWFkZXIgcGFydC4KICAgICAgICAgICAgaWYgKCRtZXRob2QgPT0gJ0dFVCcpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJfcmVzcG9uc2UgPSBzdWJzdHIoJHJlc3BvbnNlLCAwLCBzdHJwb3MoJHJlc3BvbnNlLCAiXHJcblxyXG4iKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRoZWFkZXJzID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCAoZXhwbG9kZSgiXG4iLCAkaGVhZGVyX3Jlc3BvbnNlKSBhcyAkaGVhZGVyKSB7CiAgICAgICAgICAgICAgICAkcG9zID0gc3RycG9zKCRoZWFkZXIsICc6Jyk7CiAgICAgICAgICAgICAgICBpZiAoJHBvcyAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIodHJpbShzdWJzdHIoJGhlYWRlciwgMCwgJHBvcykpKTsKICAgICAgICAgICAgICAgICAgICAkaGVhZGVyc1skbmFtZV0gPSB0cmltKHN1YnN0cigkaGVhZGVyLCAkcG9zKzEpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCR1cGRhdGVfY2xhaW1lZF9pZCkgewogICAgICAgICAgICAgICAgIyBVcGRhdGUgdGhlIGNsYWltZWRfaWQgdmFsdWUgaW4gY2FzZSBvZiByZWRpcmVjdGlvbnMuCiAgICAgICAgICAgICAgICAkZWZmZWN0aXZlX3VybCA9IGN1cmxfZ2V0aW5mbygkY3VybCwgQ1VSTElORk9fRUZGRUNUSVZFX1VSTCk7CiAgICAgICAgICAgICAgICAjIElnbm9yZSB0aGUgZnJhZ21lbnQgKHNvbWUgY1VSTCB2ZXJzaW9ucyBkb24ndCBoYW5kbGUgaXQgd2VsbCkuCiAgICAgICAgICAgICAgICBpZiAoc3RydG9rKCRlZmZlY3RpdmVfdXJsLCAnIycpICE9IHN0cnRvaygkdXJsLCAnIycpKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmlkZW50aXR5ID0gJHRoaXMtPmNsYWltZWRfaWQgPSAkZWZmZWN0aXZlX3VybDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRtZXRob2QgPT0gJ0hFQUQnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGhlYWRlcnM7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+aGVhZGVycyA9ICRoZWFkZXJzOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoY3VybF9lcnJubygkY3VybCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yRXhjZXB0aW9uKGN1cmxfZXJyb3IoJGN1cmwpLCBjdXJsX2Vycm5vKCRjdXJsKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZV9oZWFkZXJfYXJyYXkoJGFycmF5LCAkdXBkYXRlX2NsYWltZWRfaWQpCiAgICB7CiAgICAgICAgJGhlYWRlcnMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAkaGVhZGVyKSB7CiAgICAgICAgICAgICRwb3MgPSBzdHJwb3MoJGhlYWRlciwgJzonKTsKICAgICAgICAgICAgaWYgKCRwb3MgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIodHJpbShzdWJzdHIoJGhlYWRlciwgMCwgJHBvcykpKTsKICAgICAgICAgICAgICAgICRoZWFkZXJzWyRuYW1lXSA9IHRyaW0oc3Vic3RyKCRoZWFkZXIsICRwb3MrMSkpOwoKICAgICAgICAgICAgICAgICMgRm9sbG93aW5nIHBvc3NpYmxlIHJlZGlyZWN0aW9ucy4gVGhlIHBvaW50IGlzIGp1c3QgdG8gaGF2ZQogICAgICAgICAgICAgICAgIyBjbGFpbWVkX2lkIGNoYW5nZSB3aXRoIHRoZW0sIGJlY2F1c2UgdGhlIHJlZGlyZWN0aW9ucwogICAgICAgICAgICAgICAgIyBhcmUgZm9sbG93ZWQgYXV0b21hdGljYWxseS4KICAgICAgICAgICAgICAgICMgV2UgaWdub3JlIHJlZGlyZWN0aW9ucyB3aXRoIHJlbGF0aXZlIHBhdGhzLgogICAgICAgICAgICAgICAgIyBJZiBhbnkga25vd24gcHJvdmlkZXIgdXNlcyB0aGVtLCBmaWxlIGEgYnVnIHJlcG9ydC4KICAgICAgICAgICAgICAgIGlmICgkbmFtZSA9PSAnbG9jYXRpb24nICYmICR1cGRhdGVfY2xhaW1lZF9pZCkgewogICAgICAgICAgICAgICAgICAgIGlmIChzdHJwb3MoJGhlYWRlcnNbJG5hbWVdLCAnaHR0cCcpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5pZGVudGl0eSA9ICR0aGlzLT5jbGFpbWVkX2lkID0gJGhlYWRlcnNbJG5hbWVdOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkaGVhZGVyc1skbmFtZV1bMF0gPT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRwYXJzZWRfdXJsID0gcGFyc2VfdXJsKCR0aGlzLT5jbGFpbWVkX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmlkZW50aXR5ID0KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNsYWltZWRfaWQgPSAkcGFyc2VkX3VybFsnc2NoZW1lJ10gLiAnOi8vJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRwYXJzZWRfdXJsWydob3N0J10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkaGVhZGVyc1skbmFtZV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkaGVhZGVyczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcmVxdWVzdF9zdHJlYW1zKCR1cmwsICRtZXRob2Q9J0dFVCcsICRwYXJhbXM9YXJyYXkoKSwgJHVwZGF0ZV9jbGFpbWVkX2lkKQogICAgewogICAgICAgIGlmICghJHRoaXMtPmhvc3RFeGlzdHMoJHVybCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byAkdXJsLiIsIDQwNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChlbXB0eSgkdGhpcy0+Y25tYXRjaCkpIHsKICAgICAgICAgICAgJHRoaXMtPmNubWF0Y2ggPSBwYXJzZV91cmwoJHVybCwgUEhQX1VSTF9IT1NUKTsKICAgICAgICB9CgogICAgICAgICRwYXJhbXMgPSBodHRwX2J1aWxkX3F1ZXJ5KCRwYXJhbXMsICcnLCAnJicpOwogICAgICAgIHN3aXRjaCAoJG1ldGhvZCkgewogICAgICAgIGNhc2UgJ0dFVCc6CiAgICAgICAgICAgICRvcHRzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAnaHR0cCcgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ21ldGhvZCcgPT4gJ0dFVCcsCiAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcicgPT4gJ0FjY2VwdDogYXBwbGljYXRpb24veHJkcyt4bWwsICovKicsCiAgICAgICAgICAgICAgICAgICAgJ3VzZXJfYWdlbnQnID0+ICR0aGlzLT51c2VyX2FnZW50LAogICAgICAgICAgICAgICAgICAgICdpZ25vcmVfZXJyb3JzJyA9PiB0cnVlLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdzc2wnID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICdDTl9tYXRjaCcgPT4gJHRoaXMtPmNubWF0Y2gKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJHVybCA9ICR1cmwgLiAoJHBhcmFtcyA/ICc/JyAuICRwYXJhbXMgOiAnJyk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPnByb3h5KSkgewogICAgICAgICAgICAgICAgJG9wdHNbJ2h0dHAnXVsncHJveHknXSA9ICR0aGlzLT5wcm94eV91cmwoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdQT1NUJzoKICAgICAgICAgICAgJG9wdHMgPSBhcnJheSgKICAgICAgICAgICAgICAgICdodHRwJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJyA9PiAnUE9TVCcsCiAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcicgID0+ICdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsCiAgICAgICAgICAgICAgICAgICAgJ3VzZXJfYWdlbnQnID0+ICR0aGlzLT51c2VyX2FnZW50LAogICAgICAgICAgICAgICAgICAgICdjb250ZW50JyA9PiAkcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICdpZ25vcmVfZXJyb3JzJyA9PiB0cnVlLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdzc2wnID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICdDTl9tYXRjaCcgPT4gJHRoaXMtPmNubWF0Y2gKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+cHJveHkpKSB7CiAgICAgICAgICAgICAgICAkb3B0c1snaHR0cCddWydwcm94eSddID0gJHRoaXMtPnByb3h5X3VybCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0hFQUQnOgogICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNlbmQgYSBIRUFEIHJlcXVlc3QsIGJ1dCBzaW5jZSBnZXRfaGVhZGVycygpIGRvZXNuJ3QKICAgICAgICAgICAgLy8gYWNjZXB0ICRjb250ZXh0IHBhcmFtZXRlciwgd2UgaGF2ZSB0byBjaGFuZ2UgdGhlIGRlZmF1bHRzLgogICAgICAgICAgICAkZGVmYXVsdCA9IHN0cmVhbV9jb250ZXh0X2dldF9vcHRpb25zKHN0cmVhbV9jb250ZXh0X2dldF9kZWZhdWx0KCkpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gUEhQIGRvZXMgbm90IHJlc2V0IGFsbCBvcHRpb25zLiBJbnN0ZWFkLCBpdCBqdXN0IHNldHMgdGhlIG9wdGlvbnMKICAgICAgICAgICAgLy8gYXZhaWxhYmxlIGluIHRoZSBwYXNzZWQgYXJyYXksIHRoZXJlZm9yZSBzZXQgdGhlIGRlZmF1bHRzIG1hbnVhbGx5LgogICAgICAgICAgICAkZGVmYXVsdCArPSBhcnJheSgKICAgICAgICAgICAgICAgICdodHRwJyA9PiBhcnJheSgpLAogICAgICAgICAgICAgICAgJ3NzbCcgPT4gYXJyYXkoKQogICAgICAgICAgICApOwogICAgICAgICAgICAkZGVmYXVsdFsnaHR0cCddICs9IGFycmF5KAogICAgICAgICAgICAgICAgJ21ldGhvZCcgPT4gJ0dFVCcsCiAgICAgICAgICAgICAgICAnaGVhZGVyJyA9PiAnJywKICAgICAgICAgICAgICAgICd1c2VyX2FnZW50JyA9PiAnJywKICAgICAgICAgICAgICAgICdpZ25vcmVfZXJyb3JzJyA9PiBmYWxzZQogICAgICAgICAgICApOwogICAgICAgICAgICAkZGVmYXVsdFsnc3NsJ10gKz0gYXJyYXkoCiAgICAgICAgICAgICAgICAnQ05fbWF0Y2gnID0+ICcnCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkb3B0cyA9IGFycmF5KAogICAgICAgICAgICAgICAgJ2h0dHAnID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICdtZXRob2QnID0+ICdIRUFEJywKICAgICAgICAgICAgICAgICAgICAnaGVhZGVyJyA9PiAnQWNjZXB0OiBhcHBsaWNhdGlvbi94cmRzK3htbCwgKi8qJywKICAgICAgICAgICAgICAgICAgICAndXNlcl9hZ2VudCcgPT4gJHRoaXMtPnVzZXJfYWdlbnQsCiAgICAgICAgICAgICAgICAgICAgJ2lnbm9yZV9lcnJvcnMnID0+IHRydWUsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgJ3NzbCcgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ0NOX21hdGNoJyA9PiAkdGhpcy0+Y25tYXRjaAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRW5hYmxlIHZhbGlkYXRpb24gb2YgdGhlIFNTTCBjZXJ0aWZpY2F0ZXMuCiAgICAgICAgICAgIGlmICgkdGhpcy0+dmVyaWZ5X3BlZXIpIHsKICAgICAgICAgICAgICAgICRkZWZhdWx0Wydzc2wnXSArPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAndmVyaWZ5X3BlZXInID0+IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICdjYXBhdGgnID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdjYWZpbGUnID0+ICcnCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJG9wdHNbJ3NzbCddICs9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICd2ZXJpZnlfcGVlcicgPT4gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAnY2FwYXRoJyA9PiAkdGhpcy0+Y2FwYXRoLAogICAgICAgICAgICAgICAgICAgICdjYWZpbGUnID0+ICR0aGlzLT5jYWluZm8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENoYW5nZSB0aGUgc3RyZWFtIGNvbnRleHQgb3B0aW9ucy4KICAgICAgICAgICAgc3RyZWFtX2NvbnRleHRfZ2V0X2RlZmF1bHQoJG9wdHMpOwogICAgICAgICAgICAKICAgICAgICAgICAgJGhlYWRlcnMgPSBnZXRfaGVhZGVycygkdXJsIC4gKCRwYXJhbXMgPyAnPycgLiAkcGFyYW1zIDogJycpKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFJlc3RvcmUgdGhlIHN0cmVhbSBjb250ZXh0IG9wdGlvbnMuCiAgICAgICAgICAgIHN0cmVhbV9jb250ZXh0X2dldF9kZWZhdWx0KCRkZWZhdWx0KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICghZW1wdHkoJGhlYWRlcnMpKSB7CiAgICAgICAgICAgICAgICBpZiAoaW50dmFsKHN1YnN0cigkaGVhZGVyc1swXSwgc3RybGVuKCdIVFRQLzEuMSAnKSkpID09IDQwNSkgewogICAgICAgICAgICAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgZG9lc24ndCBzdXBwb3J0IEhFQUQgLSBlbXVsYXRlIGl0IHdpdGggYSBHRVQuCiAgICAgICAgICAgICAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3NbMV0gPSAnR0VUJzsKICAgICAgICAgICAgICAgICAgICBjYWxsX3VzZXJfZnVuY19hcnJheShhcnJheSgkdGhpcywgJ3JlcXVlc3Rfc3RyZWFtcycpLCAkYXJncyk7CiAgICAgICAgICAgICAgICAgICAgJGhlYWRlcnMgPSAkdGhpcy0+aGVhZGVyczsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGhlYWRlcnMgPSAkdGhpcy0+cGFyc2VfaGVhZGVyX2FycmF5KCRoZWFkZXJzLCAkdXBkYXRlX2NsYWltZWRfaWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGhlYWRlcnMgPSBhcnJheSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICByZXR1cm4gJGhlYWRlcnM7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPnZlcmlmeV9wZWVyKSB7CiAgICAgICAgICAgICRvcHRzWydzc2wnXSArPSBhcnJheSgKICAgICAgICAgICAgICAgICd2ZXJpZnlfcGVlcicgPT4gdHJ1ZSwKICAgICAgICAgICAgICAgICdjYXBhdGgnICAgICAgPT4gJHRoaXMtPmNhcGF0aCwKICAgICAgICAgICAgICAgICdjYWZpbGUnICAgICAgPT4gJHRoaXMtPmNhaW5mbwogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJGNvbnRleHQgPSBzdHJlYW1fY29udGV4dF9jcmVhdGUoJG9wdHMpOwogICAgICAgICRkYXRhID0gZmlsZV9nZXRfY29udGVudHMoJHVybCwgZmFsc2UsICRjb250ZXh0KTsKICAgICAgICAjIFRoaXMgaXMgYSBoYWNrIGZvciBwcm92aWRlcnMgd2hvIGRvbid0IHN1cHBvcnQgSEVBRCByZXF1ZXN0cy4KICAgICAgICAjIEl0IGp1c3QgY3JlYXRlcyB0aGUgaGVhZGVycyBhcnJheSBmb3IgdGhlIGxhc3QgcmVxdWVzdCBpbiAkdGhpcy0+aGVhZGVycy4KICAgICAgICBpZiAoaXNzZXQoJGh0dHBfcmVzcG9uc2VfaGVhZGVyKSkgewogICAgICAgICAgICAkdGhpcy0+aGVhZGVycyA9ICR0aGlzLT5wYXJzZV9oZWFkZXJfYXJyYXkoJGh0dHBfcmVzcG9uc2VfaGVhZGVyLCAkdXBkYXRlX2NsYWltZWRfaWQpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZXF1ZXN0KCR1cmwsICRtZXRob2Q9J0dFVCcsICRwYXJhbXM9YXJyYXkoKSwgJHVwZGF0ZV9jbGFpbWVkX2lkPWZhbHNlKQogICAgewogICAgICAgICR1c2VfY3VybCA9IGZhbHNlOwogICAgICAgIAogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfaW5pdCcpKSB7CiAgICAgICAgICAgIGlmICghJHVzZV9jdXJsKSB7CiAgICAgICAgICAgICAgICAjIFdoZW4gYWxsb3dfdXJsX2ZvcGVuIGlzIGRpc2FibGVkLCBQSFAgc3RyZWFtcyB3aWxsIG5vdCB3b3JrLgogICAgICAgICAgICAgICAgJHVzZV9jdXJsID0gIWluaV9nZXQoJ2FsbG93X3VybF9mb3BlbicpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoISR1c2VfY3VybCkgewogICAgICAgICAgICAgICAgIyBXaGVuIHRoZXJlIGlzIG5vIEhUVFBTIHdyYXBwZXIsIFBIUCBzdHJlYW1zIGNhbm5vdHQgYmUgdXNlZC4KICAgICAgICAgICAgICAgICR1c2VfY3VybCA9ICFpbl9hcnJheSgnaHR0cHMnLCBzdHJlYW1fZ2V0X3dyYXBwZXJzKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoISR1c2VfY3VybCkgewogICAgICAgICAgICAgICAgIyBXaXRoIG9wZW5fYmFzZWRpciBvciBzYWZlX21vZGUgc2V0LCBjVVJMIGNhbid0IGZvbGxvdyByZWRpcmVjdHMuCiAgICAgICAgICAgICAgICAkdXNlX2N1cmwgPSAhKGluaV9nZXQoJ3NhZmVfbW9kZScpIHx8IGluaV9nZXQoJ29wZW5fYmFzZWRpcicpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4KICAgICAgICAgICAgJHVzZV9jdXJsCiAgICAgICAgICAgICAgICA/ICR0aGlzLT5yZXF1ZXN0X2N1cmwoJHVybCwgJG1ldGhvZCwgJHBhcmFtcywgJHVwZGF0ZV9jbGFpbWVkX2lkKQogICAgICAgICAgICAgICAgOiAkdGhpcy0+cmVxdWVzdF9zdHJlYW1zKCR1cmwsICRtZXRob2QsICRwYXJhbXMsICR1cGRhdGVfY2xhaW1lZF9pZCk7CiAgICB9CiAgICAKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBwcm94eV91cmwoKQogICAgewogICAgICAgICRyZXN1bHQgPSAnJzsKICAgICAgICAKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5wcm94eSkpIHsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5wcm94eVsnaG9zdCddOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+cHJveHlbJ3BvcnQnXSkpIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkcmVzdWx0IC4gJzonIC4gJHRoaXMtPnByb3h5Wydwb3J0J107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPnByb3h5Wyd1c2VyJ10pKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPnByb3h5Wyd1c2VyJ10gLiAnOicgLiAkdGhpcy0+cHJveHlbJ3Bhc3MnXSAuICdAJyAuICRyZXN1bHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICRyZXN1bHQgPSAnaHR0cDovLycgLiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYnVpbGRfdXJsKCR1cmwsICRwYXJ0cykKICAgIHsKICAgICAgICBpZiAoaXNzZXQoJHVybFsncXVlcnknXSwgJHBhcnRzWydxdWVyeSddKSkgewogICAgICAgICAgICAkcGFydHNbJ3F1ZXJ5J10gPSAkdXJsWydxdWVyeSddIC4gJyYnIC4gJHBhcnRzWydxdWVyeSddOwogICAgICAgIH0KCiAgICAgICAgJHVybCA9ICRwYXJ0cyArICR1cmw7CiAgICAgICAgJHVybCA9ICR1cmxbJ3NjaGVtZSddIC4gJzovLycKICAgICAgICAgICAgIC4gKGVtcHR5KCR1cmxbJ3VzZXJuYW1lJ10pPycnCiAgICAgICAgICAgICAgICAgOihlbXB0eSgkdXJsWydwYXNzd29yZCddKT8gInskdXJsWyd1c2VybmFtZSddfUAiCiAgICAgICAgICAgICAgICAgOiJ7JHVybFsndXNlcm5hbWUnXX06eyR1cmxbJ3Bhc3N3b3JkJ119QCIpKQogICAgICAgICAgICAgLiAkdXJsWydob3N0J10KICAgICAgICAgICAgIC4gKGVtcHR5KCR1cmxbJ3BvcnQnXSk/Jyc6Ijp7JHVybFsncG9ydCddfSIpCiAgICAgICAgICAgICAuIChlbXB0eSgkdXJsWydwYXRoJ10pPycnOiR1cmxbJ3BhdGgnXSkKICAgICAgICAgICAgIC4gKGVtcHR5KCR1cmxbJ3F1ZXJ5J10pPycnOiI/eyR1cmxbJ3F1ZXJ5J119IikKICAgICAgICAgICAgIC4gKGVtcHR5KCR1cmxbJ2ZyYWdtZW50J10pPycnOiIjeyR1cmxbJ2ZyYWdtZW50J119Iik7CiAgICAgICAgcmV0dXJuICR1cmw7CiAgICB9CgogICAgLyoqCiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdXNlZCB0byBzY2FuIGZvciA8bWV0YT4vPGxpbms+IHRhZ3MgYW5kIGV4dHJhY3QgaW5mb3JtYXRpb24KICAgICAqIGZyb20gdGhlbQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaHRtbFRhZygkY29udGVudCwgJHRhZywgJGF0dHJOYW1lLCAkYXR0clZhbHVlLCAkdmFsdWVOYW1lKQogICAgewogICAgICAgIHByZWdfbWF0Y2hfYWxsKCIjPHskdGFnfVtePl0qJGF0dHJOYW1lPVsnXCJdLio/JGF0dHJWYWx1ZS4qP1snXCJdW14+XSokdmFsdWVOYW1lPVsnXCJdKC4rPylbJ1wiXVtePl0qLz8+I2kiLCAkY29udGVudCwgJG1hdGNoZXMxKTsKICAgICAgICBwcmVnX21hdGNoX2FsbCgiIzx7JHRhZ31bXj5dKiR2YWx1ZU5hbWU9WydcIl0oLis/KVsnXCJdW14+XSokYXR0ck5hbWU9WydcIl0uKj8kYXR0clZhbHVlLio/WydcIl1bXj5dKi8/PiNpIiwgJGNvbnRlbnQsICRtYXRjaGVzMik7CgogICAgICAgICRyZXN1bHQgPSBhcnJheV9tZXJnZSgkbWF0Y2hlczFbMV0sICRtYXRjaGVzMlsxXSk7CiAgICAgICAgcmV0dXJuIGVtcHR5KCRyZXN1bHQpP2ZhbHNlOiRyZXN1bHRbMF07CiAgICB9CgogICAgLyoqCiAgICAgKiBQZXJmb3JtcyBZYWRpcyBhbmQgSFRNTCBkaXNjb3ZlcnkuIE5vcm1hbGx5IG5vdCB1c2VkLgogICAgICogQHBhcmFtICR1cmwgSWRlbnRpdHkgVVJMLgogICAgICogQHJldHVybiBTdHJpbmcgT1AgRW5kcG9pbnQgKGkuZS4gT3BlbklEIHByb3ZpZGVyIGFkZHJlc3MpLgogICAgICogQHRocm93cyBFcnJvckV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzY292ZXIoJHVybCkKICAgIHsKICAgICAgICBpZiAoISR1cmwpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yRXhjZXB0aW9uKCdObyBpZGVudGl0eSBzdXBwbGllZC4nKTsKICAgICAgICB9CiAgICAgICAgIyBVc2UgeHJpLm5ldCBwcm94eSB0byByZXNvbHZlIGktbmFtZSBpZGVudGl0aWVzCiAgICAgICAgaWYgKCFwcmVnX21hdGNoKCcjXmh0dHBzPzojJywgJHVybCkpIHsKICAgICAgICAgICAgJHVybCA9ICJodHRwczovL3hyaS5uZXQvJHVybCI7CiAgICAgICAgfQoKICAgICAgICAjIFdlIHNhdmUgdGhlIG9yaWdpbmFsIHVybCBpbiBjYXNlIG9mIFlhZGlzIGRpc2NvdmVyeSBmYWlsdXJlLgogICAgICAgICMgSXQgY2FuIGhhcHBlbiB3aGVuIHdlJ2xsIGJlIGxlYWQgdG8gYW4gWFJEUyBkb2N1bWVudAogICAgICAgICMgd2hpY2ggZG9lcyBub3QgaGF2ZSBhbnkgT3BlbklEMiBzZXJ2aWNlcy4KICAgICAgICAkb3JpZ2luYWxVcmwgPSAkdXJsOwoKICAgICAgICAjIEEgZmxhZyB0byBkaXNhYmxlIHlhZGlzIGRpc2NvdmVyeSBpbiBjYXNlIG9mIGZhaWx1cmUgaW4gaGVhZGVycy4KICAgICAgICAkeWFkaXMgPSB0cnVlOwogICAgICAgIAogICAgICAgICMgQWxsb3dzIG9wdGlvbmFsIHJlZ2V4IHJlcGxhY2VtZW50IG9mIHRoZSBVUkwsIGUuZy4gdG8gdXNlIEdvb2dsZSBBcHBzCiAgICAgICAgIyBhcyBhbiBPcGVuSUQgcHJvdmlkZXIgd2l0aG91dCBzZXR0aW5nIHVwIFhSRFMgb24gdGhlIGRvbWFpbiBob3N0aW5nLgogICAgICAgIGlmICghaXNfbnVsbCgkdGhpcy0+eHJkc19vdmVycmlkZV9wYXR0ZXJuKSAmJiAhaXNfbnVsbCgkdGhpcy0+eHJkc19vdmVycmlkZV9yZXBsYWNlbWVudCkpIHsKICAgICAgICAgICAgJHVybCA9IHByZWdfcmVwbGFjZSgkdGhpcy0+eHJkc19vdmVycmlkZV9wYXR0ZXJuLCAkdGhpcy0+eHJkc19vdmVycmlkZV9yZXBsYWNlbWVudCwgJHVybCk7CiAgICAgICAgfQoKICAgICAgICAjIFdlJ2xsIGp1bXAgYSBtYXhpbXVtIG9mIDUgdGltZXMsIHRvIGF2b2lkIGVuZGxlc3MgcmVkaXJlY3Rpb25zLgogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IDU7ICRpICsrKSB7CiAgICAgICAgICAgIGlmICgkeWFkaXMpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJzID0gJHRoaXMtPnJlcXVlc3QoJHVybCwgJ0hFQUQnLCBhcnJheSgpLCB0cnVlKTsKCiAgICAgICAgICAgICAgICAkbmV4dCA9IGZhbHNlOwogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRoZWFkZXJzWyd4LXhyZHMtbG9jYXRpb24nXSkpIHsKICAgICAgICAgICAgICAgICAgICAkdXJsID0gJHRoaXMtPmJ1aWxkX3VybChwYXJzZV91cmwoJHVybCksIHBhcnNlX3VybCh0cmltKCRoZWFkZXJzWyd4LXhyZHMtbG9jYXRpb24nXSkpKTsKICAgICAgICAgICAgICAgICAgICAkbmV4dCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRoZWFkZXJzWydjb250ZW50LXR5cGUnXSkgJiYgJHRoaXMtPmlzX2FsbG93ZWRfdHlwZSgkaGVhZGVyc1snY29udGVudC10eXBlJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgIyBGb3VuZCBhbiBYUkRTIGRvY3VtZW50LCBub3cgbGV0J3MgZmluZCB0aGUgc2VydmVyLCBhbmQgb3B0aW9uYWxseSBkZWxlZ2F0ZS4KICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9ICR0aGlzLT5yZXF1ZXN0KCR1cmwsICdHRVQnKTsKCiAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaF9hbGwoJyM8U2VydmljZS4qPz4oLio/KTwvU2VydmljZT4jcycsICRjb250ZW50LCAkbSk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJG1bMV0gYXMgJGNvbnRlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAnICcgLiAkY29udGVudDsgIyBUaGUgc3BhY2UgaXMgYWRkZWQsIHNvIHRoYXQgc3RycG9zIGRvZXNuJ3QgcmV0dXJuIDAuCgogICAgICAgICAgICAgICAgICAgICAgICAjIE9wZW5JRCAyCiAgICAgICAgICAgICAgICAgICAgICAgICRucyA9IHByZWdfcXVvdGUoJ2h0dHA6Ly9zcGVjcy5vcGVuaWQubmV0L2F1dGgvMi4wLycsICcjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcjPFR5cGU+XHMqJy4kbnMuJyhzZXJ2ZXJ8c2lnbm9uKVxzKjwvVHlwZT4jcycsICRjb250ZW50LCAkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdHlwZVsxXSA9PSAnc2VydmVyJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5pZGVudGlmaWVyX3NlbGVjdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgnIzxVUkkuKj8+KC4qKTwvVVJJPiMnLCAkY29udGVudCwgJHNlcnZlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCcjPChMb2NhbHxDYW5vbmljYWwpSUQ+KC4qKTwvXDFJRD4jJywgJGNvbnRlbnQsICRkZWxlZ2F0ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHNlcnZlcikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIERvZXMgdGhlIHNlcnZlciBhZHZlcnRpc2Ugc3VwcG9ydCBmb3IgZWl0aGVyIEFYIG9yIFNSRUc/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YXggICA9IChib29sKSBzdHJwb3MoJGNvbnRlbnQsICc8VHlwZT5odHRwOi8vb3BlbmlkLm5ldC9zcnYvYXgvMS4wPC9UeXBlPicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNyZWcgPSBzdHJwb3MoJGNvbnRlbnQsICc8VHlwZT5odHRwOi8vb3BlbmlkLm5ldC9zcmVnLzEuMDwvVHlwZT4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBzdHJwb3MoJGNvbnRlbnQsICc8VHlwZT5odHRwOi8vb3BlbmlkLm5ldC9leHRlbnNpb25zL3NyZWcvMS4xPC9UeXBlPicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZXJ2ZXIgPSAkc2VydmVyWzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRkZWxlZ2F0ZVsyXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+aWRlbnRpdHkgPSB0cmltKCRkZWxlZ2F0ZVsyXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmVyc2lvbiA9IDI7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNlcnZlciA9ICRzZXJ2ZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHNlcnZlcjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgIyBPcGVuSUQgMS4xCiAgICAgICAgICAgICAgICAgICAgICAgICRucyA9IHByZWdfcXVvdGUoJ2h0dHA6Ly9vcGVuaWQubmV0L3NpZ25vbi8xLjEnLCAnIycpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnIzxUeXBlPlxzKicuJG5zLidccyo8L1R5cGU+I3MnLCAkY29udGVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJyM8VVJJLio/PiguKik8L1VSST4jJywgJGNvbnRlbnQsICRzZXJ2ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgnIzwuKj9EZWxlZ2F0ZT4oLiopPC8uKj9EZWxlZ2F0ZT4jJywgJGNvbnRlbnQsICRkZWxlZ2F0ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHNlcnZlcikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFYIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCBPcGVuSUQgMi4wLCBzbyBjaGVja2luZyBvbmx5IFNSRUcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zcmVnID0gc3RycG9zKCRjb250ZW50LCAnPFR5cGU+aHR0cDovL29wZW5pZC5uZXQvc3JlZy8xLjA8L1R5cGU+JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgc3RycG9zKCRjb250ZW50LCAnPFR5cGU+aHR0cDovL29wZW5pZC5uZXQvZXh0ZW5zaW9ucy9zcmVnLzEuMTwvVHlwZT4nKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VydmVyID0gJHNlcnZlclsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkZGVsZWdhdGVbMV0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmlkZW50aXR5ID0gJGRlbGVnYXRlWzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZlcnNpb24gPSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zZXJ2ZXIgPSAkc2VydmVyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRuZXh0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAkeWFkaXMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdXJsID0gJG9yaWdpbmFsVXJsOwogICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgkbmV4dCkgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgVGhlcmUgYXJlIG5vIHJlbGV2YW50IGluZm9ybWF0aW9uIGluIGhlYWRlcnMsIHNvIHdlIHNlYXJjaCB0aGUgYm9keS4KICAgICAgICAgICAgICAgICRjb250ZW50ID0gJHRoaXMtPnJlcXVlc3QoJHVybCwgJ0dFVCcsIGFycmF5KCksIHRydWUpOwoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+aGVhZGVyc1sneC14cmRzLWxvY2F0aW9uJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgJHVybCA9ICR0aGlzLT5idWlsZF91cmwocGFyc2VfdXJsKCR1cmwpLCBwYXJzZV91cmwodHJpbSgkdGhpcy0+aGVhZGVyc1sneC14cmRzLWxvY2F0aW9uJ10pKSk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGxvY2F0aW9uID0gJHRoaXMtPmh0bWxUYWcoJGNvbnRlbnQsICdtZXRhJywgJ2h0dHAtZXF1aXYnLCAnWC1YUkRTLUxvY2F0aW9uJywgJ2NvbnRlbnQnKTsKICAgICAgICAgICAgICAgIGlmICgkbG9jYXRpb24pIHsKICAgICAgICAgICAgICAgICAgICAkdXJsID0gJHRoaXMtPmJ1aWxkX3VybChwYXJzZV91cmwoJHVybCksIHBhcnNlX3VybCgkbG9jYXRpb24pKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCEkY29udGVudCkgewogICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAkdGhpcy0+cmVxdWVzdCgkdXJsLCAnR0VUJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgdGhlIFlBRElTIERpc2NvdmVyeSBoYXMgZmFpbGVkLCBzbyB3ZSdsbCBzd2l0Y2gKICAgICAgICAgICAgIyB0byBvcGVuaWQyIEhUTUwgZGlzY292ZXJ5LCB0aGVuIGZhbGxiYWNrIHRvIG9wZW5pZCAxLjEgZGlzY292ZXJ5LgogICAgICAgICAgICAkc2VydmVyICAgPSAkdGhpcy0+aHRtbFRhZygkY29udGVudCwgJ2xpbmsnLCAncmVsJywgJ29wZW5pZDIucHJvdmlkZXInLCAnaHJlZicpOwogICAgICAgICAgICAkZGVsZWdhdGUgPSAkdGhpcy0+aHRtbFRhZygkY29udGVudCwgJ2xpbmsnLCAncmVsJywgJ29wZW5pZDIubG9jYWxfaWQnLCAnaHJlZicpOwogICAgICAgICAgICAkdGhpcy0+dmVyc2lvbiA9IDI7CgogICAgICAgICAgICBpZiAoISRzZXJ2ZXIpIHsKICAgICAgICAgICAgICAgICMgVGhlIHNhbWUgd2l0aCBvcGVuaWQgMS4xCiAgICAgICAgICAgICAgICAkc2VydmVyICAgPSAkdGhpcy0+aHRtbFRhZygkY29udGVudCwgJ2xpbmsnLCAncmVsJywgJ29wZW5pZC5zZXJ2ZXInLCAnaHJlZicpOwogICAgICAgICAgICAgICAgJGRlbGVnYXRlID0gJHRoaXMtPmh0bWxUYWcoJGNvbnRlbnQsICdsaW5rJywgJ3JlbCcsICdvcGVuaWQuZGVsZWdhdGUnLCAnaHJlZicpOwogICAgICAgICAgICAgICAgJHRoaXMtPnZlcnNpb24gPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHNlcnZlcikgewogICAgICAgICAgICAgICAgIyBXZSBmb3VuZCBhbiBPcGVuSUQyIE9QIEVuZHBvaW50CiAgICAgICAgICAgICAgICBpZiAoJGRlbGVnYXRlKSB7CiAgICAgICAgICAgICAgICAgICAgIyBXZSBoYXZlIGFsc28gZm91bmQgYW4gT1AtTG9jYWwgSUQuCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmlkZW50aXR5ID0gJGRlbGVnYXRlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRoaXMtPnNlcnZlciA9ICRzZXJ2ZXI7CiAgICAgICAgICAgICAgICByZXR1cm4gJHNlcnZlcjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yRXhjZXB0aW9uKCJObyBPcGVuSUQgU2VydmVyIGZvdW5kIGF0ICR1cmwiLCA0MDQpOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3JFeGNlcHRpb24oJ0VuZGxlc3MgcmVkaXJlY3Rpb24hJywgNTAwKTsKICAgIH0KICAgIAogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzX2FsbG93ZWRfdHlwZSgkY29udGVudF90eXBlKQogICAgewogICAgICAgICMgQXBwYXJlbnRseSwgc29tZSBwcm92aWRlcnMgcmV0dXJuIFhSRFMgZG9jdW1lbnRzIGFzIHRleHQvaHRtbC4KICAgICAgICAjIFdoaWxlIGl0IGlzIGFnYWluc3QgdGhlIHNwZWMsIGFsbG93aW5nIHRoaXMgaGVyZSBzaG91bGRuJ3QgYnJlYWsKICAgICAgICAjIGNvbXBhdGliaWxpdHkgd2l0aCBhbnl0aGluZy4KICAgICAgICAkYWxsb3dlZF90eXBlcyA9IGFycmF5KCdhcHBsaWNhdGlvbi94cmRzK3htbCcsICd0ZXh0L3htbCcpOwogICAgICAgIAogICAgICAgICMgT25seSBhbGxvdyB0ZXh0L2h0bWwgY29udGVudCB0eXBlIGZvciB0aGUgWWFob28gbG9naW5zLCBzaW5jZQogICAgICAgICMgaXQgbWlnaHQgY2F1c2UgYW4gZW5kbGVzcyByZWRpcmVjdGlvbiBmb3IgdGhlIG90aGVyIHByb3ZpZGVycy4KICAgICAgICBpZiAoJHRoaXMtPmdldF9wcm92aWRlcl9uYW1lKCR0aGlzLT5jbGFpbWVkX2lkKSA9PSAneWFob28nKSB7CiAgICAgICAgICAgICRhbGxvd2VkX3R5cGVzW10gPSAndGV4dC9odG1sJzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCAoJGFsbG93ZWRfdHlwZXMgYXMgJHR5cGUpIHsKICAgICAgICAgICAgaWYgKHN0cnBvcygkY29udGVudF90eXBlLCAkdHlwZSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICAKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfcHJvdmlkZXJfbmFtZSgkcHJvdmlkZXJfdXJsKQogICAgewogICAgICAgICRyZXN1bHQgPSAnJzsKICAgICAgICAKICAgICAgICBpZiAoIWVtcHR5KCRwcm92aWRlcl91cmwpKSB7CiAgICAgICAgICAgICR0b2tlbnMgPSBhcnJheV9yZXZlcnNlKAogICAgICAgICAgICAgICAgZXhwbG9kZSgnLicsIHBhcnNlX3VybCgkcHJvdmlkZXJfdXJsLCBQSFBfVVJMX0hPU1QpKQogICAgICAgICAgICApOwogICAgICAgICAgICAkcmVzdWx0ID0gc3RydG9sb3dlcigKICAgICAgICAgICAgICAgIChjb3VudCgkdG9rZW5zKSA+IDEgJiYgc3RybGVuKCR0b2tlbnNbMV0pID4gMykKICAgICAgICAgICAgICAgICAgICA/ICR0b2tlbnNbMV0KICAgICAgICAgICAgICAgICAgICA6IChjb3VudCgkdG9rZW5zKSA+IDIgPyAkdG9rZW5zWzJdIDogJycpCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzcmVnUGFyYW1zKCkKICAgIHsKICAgICAgICAkcGFyYW1zID0gYXJyYXkoKTsKICAgICAgICAjIFdlIGFsd2F5cyB1c2UgU1JFRyAxLjEsIGV2ZW4gaWYgdGhlIHNlcnZlciBpcyBhZHZlcnRpc2luZyBvbmx5IHN1cHBvcnQgZm9yIDEuMC4KICAgICAgICAjIFRoYXQncyBiZWNhdXNlIGl0J3MgZnVsbHkgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCAxLjAsIGFuZCBzb21lIHByb3ZpZGVycwogICAgICAgICMgYWR2ZXJ0aXNlIDEuMCBldmVuIGlmIHRoZXkgYWNjZXB0IG9ubHkgMS4xLiBPbmUgc3VjaCBwcm92aWRlciBpcyBteW9wZW5pZC5jb20KICAgICAgICAkcGFyYW1zWydvcGVuaWQubnMuc3JlZyddID0gJ2h0dHA6Ly9vcGVuaWQubmV0L2V4dGVuc2lvbnMvc3JlZy8xLjEnOwogICAgICAgIGlmICgkdGhpcy0+cmVxdWlyZWQpIHsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLnNyZWcucmVxdWlyZWQnXSA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5yZXF1aXJlZCBhcyAkcmVxdWlyZWQpIHsKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoc2VsZjo6JGF4X3RvX3NyZWdbJHJlcXVpcmVkXSkpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRwYXJhbXNbJ29wZW5pZC5zcmVnLnJlcXVpcmVkJ11bXSA9IHNlbGY6OiRheF90b19zcmVnWyRyZXF1aXJlZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLnNyZWcucmVxdWlyZWQnXSA9IGltcGxvZGUoJywnLCAkcGFyYW1zWydvcGVuaWQuc3JlZy5yZXF1aXJlZCddKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uYWwpIHsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLnNyZWcub3B0aW9uYWwnXSA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5vcHRpb25hbCBhcyAkb3B0aW9uYWwpIHsKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoc2VsZjo6JGF4X3RvX3NyZWdbJG9wdGlvbmFsXSkpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRwYXJhbXNbJ29wZW5pZC5zcmVnLm9wdGlvbmFsJ11bXSA9IHNlbGY6OiRheF90b19zcmVnWyRvcHRpb25hbF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLnNyZWcub3B0aW9uYWwnXSA9IGltcGxvZGUoJywnLCAkcGFyYW1zWydvcGVuaWQuc3JlZy5vcHRpb25hbCddKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwYXJhbXM7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGF4UGFyYW1zKCkKICAgIHsKICAgICAgICAkcGFyYW1zID0gYXJyYXkoKTsKICAgICAgICBpZiAoJHRoaXMtPnJlcXVpcmVkIHx8ICR0aGlzLT5vcHRpb25hbCkgewogICAgICAgICAgICAkcGFyYW1zWydvcGVuaWQubnMuYXgnXSA9ICdodHRwOi8vb3BlbmlkLm5ldC9zcnYvYXgvMS4wJzsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLmF4Lm1vZGUnXSA9ICdmZXRjaF9yZXF1ZXN0JzsKICAgICAgICAgICAgJHRoaXMtPmFsaWFzZXMgID0gYXJyYXkoKTsKICAgICAgICAgICAgJGNvdW50cyAgID0gYXJyYXkoKTsKICAgICAgICAgICAgJHJlcXVpcmVkID0gYXJyYXkoKTsKICAgICAgICAgICAgJG9wdGlvbmFsID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCAoYXJyYXkoJ3JlcXVpcmVkJywnb3B0aW9uYWwnKSBhcyAkdHlwZSkgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPiR0eXBlIGFzICRhbGlhcyA9PiAkZmllbGQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfaW50KCRhbGlhcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFsaWFzID0gc3RydHIoJGZpZWxkLCAnLycsICdfJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICR0aGlzLT5hbGlhc2VzWyRhbGlhc10gPSAnaHR0cDovL2F4c2NoZW1hLm9yZy8nIC4gJGZpZWxkOwogICAgICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkY291bnRzWyRhbGlhc10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudHNbJGFsaWFzXSA9IDA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRjb3VudHNbJGFsaWFzXSArPSAxOwogICAgICAgICAgICAgICAgICAgICR7JHR5cGV9W10gPSAkYWxpYXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmFsaWFzZXMgYXMgJGFsaWFzID0+ICRucykgewogICAgICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLmF4LnR5cGUuJyAuICRhbGlhc10gPSAkbnM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yZWFjaCAoJGNvdW50cyBhcyAkYWxpYXMgPT4gJGNvdW50KSB7CiAgICAgICAgICAgICAgICBpZiAoJGNvdW50ID09IDEpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRwYXJhbXNbJ29wZW5pZC5heC5jb3VudC4nIC4gJGFsaWFzXSA9ICRjb3VudDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBEb24ndCBzZW5kIGVtcHR5IGF4LnJlcXVpcmVkIGFuZCBheC5pZl9hdmFpbGFibGUuCiAgICAgICAgICAgICMgR29vZ2xlIGFuZCBwb3NzaWJseSBvdGhlciBwcm92aWRlcnMgcmVmdXNlIHRvIHN1cHBvcnQgYXggd2hlbiBvbmUgb2YgdGhlc2UgaXMgZW1wdHkuCiAgICAgICAgICAgIGlmICgkcmVxdWlyZWQpIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ29wZW5pZC5heC5yZXF1aXJlZCddID0gaW1wbG9kZSgnLCcsICRyZXF1aXJlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRvcHRpb25hbCkgewogICAgICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLmF4LmlmX2F2YWlsYWJsZSddID0gaW1wbG9kZSgnLCcsICRvcHRpb25hbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwYXJhbXM7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGF1dGhVcmxfdjEoJGltbWVkaWF0ZSkKICAgIHsKICAgICAgICAkcmV0dXJuVXJsID0gJHRoaXMtPnJldHVyblVybDsKICAgICAgICAjIElmIHdlIGhhdmUgYW4gb3BlbmlkLmRlbGVnYXRlIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gb3VyIGNsYWltZWQgaWQsCiAgICAgICAgIyB3ZSBuZWVkIHRvIHNvbWVob3cgcHJlc2VydmUgdGhlIGNsYWltZWQgaWQgYmV0d2VlbiByZXF1ZXN0cy4KICAgICAgICAjIFRoZSBzaW1wbGVzdCB3YXkgaXMgdG8ganVzdCBzZW5kIGl0IGFsb25nIHdpdGggdGhlIHJldHVybl90byB1cmwuCiAgICAgICAgaWYgKCR0aGlzLT5pZGVudGl0eSAhPSAkdGhpcy0+Y2xhaW1lZF9pZCkgewogICAgICAgICAgICAkcmV0dXJuVXJsIC49IChzdHJwb3MoJHJldHVyblVybCwgJz8nKSA/ICcmJyA6ICc/JykgLiAnb3BlbmlkLmNsYWltZWRfaWQ9JyAuICR0aGlzLT5jbGFpbWVkX2lkOwogICAgICAgIH0KCiAgICAgICAgJHBhcmFtcyA9IGFycmF5KAogICAgICAgICAgICAnb3BlbmlkLnJldHVybl90bycgID0+ICRyZXR1cm5VcmwsCiAgICAgICAgICAgICdvcGVuaWQubW9kZScgICAgICAgPT4gJGltbWVkaWF0ZSA/ICdjaGVja2lkX2ltbWVkaWF0ZScgOiAnY2hlY2tpZF9zZXR1cCcsCiAgICAgICAgICAgICdvcGVuaWQuaWRlbnRpdHknICAgPT4gJHRoaXMtPmlkZW50aXR5LAogICAgICAgICAgICAnb3BlbmlkLnRydXN0X3Jvb3QnID0+ICR0aGlzLT50cnVzdFJvb3QsCiAgICAgICAgICAgICkgKyAkdGhpcy0+c3JlZ1BhcmFtcygpOwoKICAgICAgICByZXR1cm4gJHRoaXMtPmJ1aWxkX3VybChwYXJzZV91cmwoJHRoaXMtPnNlcnZlciksIGFycmF5KCdxdWVyeScgPT4gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zLCAnJywgJyYnKSkpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdXRoVXJsX3YyKCRpbW1lZGlhdGUpCiAgICB7CiAgICAgICAgJHBhcmFtcyA9IGFycmF5KAogICAgICAgICAgICAnb3BlbmlkLm5zJyAgICAgICAgICA9PiAnaHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjAnLAogICAgICAgICAgICAnb3BlbmlkLm1vZGUnICAgICAgICA9PiAkaW1tZWRpYXRlID8gJ2NoZWNraWRfaW1tZWRpYXRlJyA6ICdjaGVja2lkX3NldHVwJywKICAgICAgICAgICAgJ29wZW5pZC5yZXR1cm5fdG8nICAgPT4gJHRoaXMtPnJldHVyblVybCwKICAgICAgICAgICAgJ29wZW5pZC5yZWFsbScgICAgICAgPT4gJHRoaXMtPnRydXN0Um9vdCwKICAgICAgICApOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+YXgpIHsKICAgICAgICAgICAgJHBhcmFtcyArPSAkdGhpcy0+YXhQYXJhbXMoKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYgKCR0aGlzLT5zcmVnKSB7CiAgICAgICAgICAgICRwYXJhbXMgKz0gJHRoaXMtPnNyZWdQYXJhbXMoKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYgKCEkdGhpcy0+YXggJiYgISR0aGlzLT5zcmVnKSB7CiAgICAgICAgICAgICMgSWYgT1AgZG9lc24ndCBhZHZlcnRpc2UgZWl0aGVyIFNSRUcsIG5vciBBWCwgbGV0J3Mgc2VuZCB0aGVtIGJvdGgKICAgICAgICAgICAgIyBpbiB3b3JzdCBjYXNlIHdlIGRvbid0IGdldCBhbnl0aGluZyBpbiByZXR1cm4uCiAgICAgICAgICAgICRwYXJhbXMgKz0gJHRoaXMtPmF4UGFyYW1zKCkgKyAkdGhpcy0+c3JlZ1BhcmFtcygpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+b2F1dGgpICYmIGlzX2FycmF5KCR0aGlzLT5vYXV0aCkpIHsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLm5zLm9hdXRoJ10gPSAnaHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvZXh0ZW5zaW9ucy9vYXV0aC8xLjAnOwogICAgICAgICAgICAkcGFyYW1zWydvcGVuaWQub2F1dGguY29uc3VtZXInXSA9IHN0cl9yZXBsYWNlKGFycmF5KCdodHRwOi8vJywgJ2h0dHBzOi8vJyksICcnLCAkdGhpcy0+dHJ1c3RSb290KTsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLm9hdXRoLnNjb3BlJ10gPSBpbXBsb2RlKCcgJywgJHRoaXMtPm9hdXRoKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+aWRlbnRpZmllcl9zZWxlY3QpIHsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLmlkZW50aXR5J10gPSAkcGFyYW1zWydvcGVuaWQuY2xhaW1lZF9pZCddCiAgICAgICAgICAgICAgICAgPSAnaHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjAvaWRlbnRpZmllcl9zZWxlY3QnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwYXJhbXNbJ29wZW5pZC5pZGVudGl0eSddID0gJHRoaXMtPmlkZW50aXR5OwogICAgICAgICAgICAkcGFyYW1zWydvcGVuaWQuY2xhaW1lZF9pZCddID0gJHRoaXMtPmNsYWltZWRfaWQ7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPmJ1aWxkX3VybChwYXJzZV91cmwoJHRoaXMtPnNlcnZlciksIGFycmF5KCdxdWVyeScgPT4gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zLCAnJywgJyYnKSkpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhdXRoZW50aWNhdGlvbiB1cmwuIFVzdWFsbHksIHlvdSB3YW50IHRvIHJlZGlyZWN0IHlvdXIgdXNlciB0byBpdC4KICAgICAqIEByZXR1cm4gU3RyaW5nIFRoZSBhdXRoZW50aWNhdGlvbiB1cmwuCiAgICAgKiBAcGFyYW0gU3RyaW5nICRzZWxlY3RfaWRlbnRpZmllciBXaGV0aGVyIHRvIHJlcXVlc3QgT1AgdG8gc2VsZWN0IGlkZW50aXR5IGZvciBhbiB1c2VyIGluIE9wZW5JRCAyLiBEb2VzIG5vdCBhZmZlY3QgT3BlbklEIDEuCiAgICAgKiBAdGhyb3dzIEVycm9yRXhjZXB0aW9uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhdXRoVXJsKCRpbW1lZGlhdGUgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnNldHVwX3VybCAmJiAhJGltbWVkaWF0ZSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNldHVwX3VybDsKICAgICAgICB9CiAgICAgICAgaWYgKCEkdGhpcy0+c2VydmVyKSB7CiAgICAgICAgICAgICR0aGlzLT5kaXNjb3ZlcigkdGhpcy0+aWRlbnRpdHkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT52ZXJzaW9uID09IDIpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5hdXRoVXJsX3YyKCRpbW1lZGlhdGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPmF1dGhVcmxfdjEoJGltbWVkaWF0ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBQZXJmb3JtcyBPcGVuSUQgdmVyaWZpY2F0aW9uIHdpdGggdGhlIE9QLgogICAgICogQHJldHVybiBCb29sIFdoZXRoZXIgdGhlIHZlcmlmaWNhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KICAgICAqIEB0aHJvd3MgRXJyb3JFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICAjIElmIHRoZSByZXF1ZXN0IHdhcyB1c2luZyBpbW1lZGlhdGUgbW9kZSwgYSBmYWlsdXJlIG1heSBiZSByZXBvcnRlZAogICAgICAgICMgYnkgcHJlc2VudGluZyB1c2VyX3NldHVwX3VybCAoZm9yIDEuMSkgb3IgcmVwb3J0aW5nCiAgICAgICAgIyBtb2RlICdzZXR1cF9uZWVkZWQnIChmb3IgMi4wKS4gQWxzbyBjYXRjaGluZyBhbGwgbW9kZXMgb3RoZXIgdGhhbgogICAgICAgICMgaWRfcmVzLCBpbiBvcmRlciB0byBhdm9pZCB0aHJvd2luZyBlcnJvcnMuCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5kYXRhWydvcGVuaWRfdXNlcl9zZXR1cF91cmwnXSkpIHsKICAgICAgICAgICAgJHRoaXMtPnNldHVwX3VybCA9ICR0aGlzLT5kYXRhWydvcGVuaWRfdXNlcl9zZXR1cF91cmwnXTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm1vZGUgIT0gJ2lkX3JlcycpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmNsYWltZWRfaWQgPSBpc3NldCgkdGhpcy0+ZGF0YVsnb3BlbmlkX2NsYWltZWRfaWQnXSk/JHRoaXMtPmRhdGFbJ29wZW5pZF9jbGFpbWVkX2lkJ106JHRoaXMtPmRhdGFbJ29wZW5pZF9pZGVudGl0eSddOwogICAgICAgICRwYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgJ29wZW5pZC5hc3NvY19oYW5kbGUnID0+ICR0aGlzLT5kYXRhWydvcGVuaWRfYXNzb2NfaGFuZGxlJ10sCiAgICAgICAgICAgICdvcGVuaWQuc2lnbmVkJyAgICAgICA9PiAkdGhpcy0+ZGF0YVsnb3BlbmlkX3NpZ25lZCddLAogICAgICAgICAgICAnb3BlbmlkLnNpZycgICAgICAgICAgPT4gJHRoaXMtPmRhdGFbJ29wZW5pZF9zaWcnXSwKICAgICAgICAgICAgKTsKCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5kYXRhWydvcGVuaWRfbnMnXSkpIHsKICAgICAgICAgICAgIyBXZSdyZSBkZWFsaW5nIHdpdGggYW4gT3BlbklEIDIuMCBzZXJ2ZXIsIHNvIGxldCdzIHNldCBhbiBucwogICAgICAgICAgICAjIEV2ZW4gdGhvdWdoIHdlIHNob3VsZCBrbm93IGxvY2F0aW9uIG9mIHRoZSBlbmRwb2ludCwKICAgICAgICAgICAgIyB3ZSBzdGlsbCBuZWVkIHRvIHZlcmlmeSBpdCBieSBkaXNjb3ZlcnksIHNvICRzZXJ2ZXIgaXMgbm90IHNldCBoZXJlCiAgICAgICAgICAgICRwYXJhbXNbJ29wZW5pZC5ucyddID0gJ2h0dHA6Ly9zcGVjcy5vcGVuaWQubmV0L2F1dGgvMi4wJzsKICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJHRoaXMtPmRhdGFbJ29wZW5pZF9jbGFpbWVkX2lkJ10pCiAgICAgICAgICAgICYmICR0aGlzLT5kYXRhWydvcGVuaWRfY2xhaW1lZF9pZCddICE9ICR0aGlzLT5kYXRhWydvcGVuaWRfaWRlbnRpdHknXQogICAgICAgICkgewogICAgICAgICAgICAjIElmIGl0J3MgYW4gT3BlbklEIDEgcHJvdmlkZXIsIGFuZCB3ZSd2ZSBnb3QgY2xhaW1lZF9pZCwKICAgICAgICAgICAgIyB3ZSBoYXZlIHRvIGFwcGVuZCBpdCB0byB0aGUgcmV0dXJuVXJsLCBsaWtlIGF1dGhVcmxfdjEgZG9lcy4KICAgICAgICAgICAgJHRoaXMtPnJldHVyblVybCAuPSAoc3RycG9zKCR0aGlzLT5yZXR1cm5VcmwsICc/JykgPyAnJicgOiAnPycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAgJ29wZW5pZC5jbGFpbWVkX2lkPScgLiAkdGhpcy0+Y2xhaW1lZF9pZDsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+ZGF0YVsnb3BlbmlkX3JldHVybl90byddICE9ICR0aGlzLT5yZXR1cm5VcmwpIHsKICAgICAgICAgICAgIyBUaGUgcmV0dXJuX3RvIHVybCBtdXN0IG1hdGNoIHRoZSB1cmwgb2YgY3VycmVudCByZXF1ZXN0LgogICAgICAgICAgICAjIEknbSBhc3N1bWluZyB0aGF0IG5vIG9uZSB3aWxsIHNldCB0aGUgcmV0dXJuVXJsIHRvIHNvbWV0aGluZyB0aGF0IGRvZXNuJ3QgbWFrZSBzZW5zZS4KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5kaXNjb3ZlcigkdGhpcy0+Y2xhaW1lZF9pZCk7CgogICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkdGhpcy0+ZGF0YVsnb3BlbmlkX3NpZ25lZCddKSBhcyAkaXRlbSkgewogICAgICAgICAgICAjIENoZWNraW5nIHdoZXRoZXIgbWFnaWNfcXVvdGVzX2dwYyBpcyB0dXJuZWQgb24sIGJlY2F1c2UKICAgICAgICAgICAgIyB0aGUgZnVuY3Rpb24gbWF5IGZhaWwgaWYgaXQgaXMuIEZvciBleGFtcGxlLCB3aGVuIGZldGNoaW5nCiAgICAgICAgICAgICMgQVggbmFtZVBlcnNvbiwgaXQgbWlnaHQgY29udGFpbiBhbiBhcG9zdHJvcGhlLCB3aGljaCB3aWxsIGJlIGVzY2FwZWQuCiAgICAgICAgICAgICMgSW4gc3VjaCBjYXNlLCB2YWxpZGF0aW9uIHdvdWxkIGZhaWwsIHNpbmNlIHdlJ2Qgc2VuZCBkaWZmZXJlbnQgZGF0YSB0aGFuIE9QCiAgICAgICAgICAgICMgd2FudHMgdG8gdmVyaWZ5LiBzdHJpcHNsYXNoZXMoKSBzaG91bGQgc29sdmUgdGhhdCBwcm9ibGVtLCBidXQgd2UgY2FuJ3QKICAgICAgICAgICAgIyB1c2UgaXQgd2hlbiBtYWdpY19xdW90ZXMgaXMgb2ZmLgogICAgICAgICAgICAkdmFsdWUgPSAkdGhpcy0+ZGF0YVsnb3BlbmlkXycgLiBzdHJfcmVwbGFjZSgnLicsICdfJywgJGl0ZW0pXTsKICAgICAgICAgICAgJHBhcmFtc1snb3BlbmlkLicgLiAkaXRlbV0gPSBmdW5jdGlvbl9leGlzdHMoJ2dldF9tYWdpY19xdW90ZXNfZ3BjJykgJiYgZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSA/IHN0cmlwc2xhc2hlcygkdmFsdWUpIDogJHZhbHVlOwogICAgICAgIH0KCiAgICAgICAgJHBhcmFtc1snb3BlbmlkLm1vZGUnXSA9ICdjaGVja19hdXRoZW50aWNhdGlvbic7CgogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5yZXF1ZXN0KCRzZXJ2ZXIsICdQT1NUJywgJHBhcmFtcyk7CgogICAgICAgIHJldHVybiBwcmVnX21hdGNoKCcvaXNfdmFsaWRccyo6XHMqdHJ1ZS9pJywgJHJlc3BvbnNlKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXhBdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAKICAgICAgICBpZiAoJGFsaWFzID0gJHRoaXMtPmdldE5hbWVzcGFjZUFsaWFzKCdodHRwOi8vb3BlbmlkLm5ldC9zcnYvYXgvMS4wJywgJ2F4JykpIHsKICAgICAgICAgICAgJHByZWZpeCA9ICdvcGVuaWRfJyAuICRhbGlhczsKICAgICAgICAgICAgJGxlbmd0aCA9IHN0cmxlbignaHR0cDovL2F4c2NoZW1hLm9yZy8nKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkdGhpcy0+ZGF0YVsnb3BlbmlkX3NpZ25lZCddKSBhcyAka2V5KSB7CiAgICAgICAgICAgICAgICAka2V5TWF0Y2ggPSAkYWxpYXMgLiAnLnR5cGUuJzsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKHN0cm5jbXAoJGtleSwgJGtleU1hdGNoLCBzdHJsZW4oJGtleU1hdGNoKSkgIT09IDApIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJGtleSA9IHN1YnN0cigka2V5LCBzdHJsZW4oJGtleU1hdGNoKSk7CiAgICAgICAgICAgICAgICAkaWR2ID0gJHByZWZpeCAuICdfdmFsdWVfJyAuICRrZXk7CiAgICAgICAgICAgICAgICAkaWRjID0gJHByZWZpeCAuICdfY291bnRfJyAuICRrZXk7CiAgICAgICAgICAgICAgICAka2V5ID0gc3Vic3RyKCR0aGlzLT5nZXRJdGVtKCRwcmVmaXggLiAnX3R5cGVfJyAuICRrZXkpLCAkbGVuZ3RoKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgka2V5KSkgewogICAgICAgICAgICAgICAgICAgIGlmICgoJGNvdW50ID0gaW50dmFsKCR0aGlzLT5nZXRJdGVtKCRpZGMpKSkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gMTsgJGkgPD0gJGNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWVbXSA9ICR0aGlzLT5nZXRJdGVtKCRpZHYgLiAnXycgLiAkaSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICgkY291bnQgPT0gMSkgPyByZXNldCgkdmFsdWUpIDogJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICR0aGlzLT5nZXRJdGVtKCRpZHYpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX251bGwoJHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0WyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIE5vIGFsaWFzIGZvciB0aGUgQVggc2NoZW1hIGhhcyBiZWVuIGZvdW5kLAogICAgICAgICAgICAvLyBzbyB0aGVyZSBpcyBubyBBWCBkYXRhIGluIHRoZSBPUCdzIHJlc3BvbnNlLgogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0U3JlZ0F0dHJpYnV0ZXMoKQogICAgewogICAgICAgICRhdHRyaWJ1dGVzID0gYXJyYXkoKTsKICAgICAgICAkc3JlZ190b19heCA9IGFycmF5X2ZsaXAoc2VsZjo6JGF4X3RvX3NyZWcpOwogICAgICAgIGlmICgkYWxpYXMgPSAkdGhpcy0+Z2V0TmFtZXNwYWNlQWxpYXMoJ2h0dHA6Ly9vcGVuaWQubmV0L2V4dGVuc2lvbnMvc3JlZy8xLjEnLCAnc3JlZycpKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkdGhpcy0+ZGF0YVsnb3BlbmlkX3NpZ25lZCddKSBhcyAka2V5KSB7CiAgICAgICAgICAgICAgICAka2V5TWF0Y2ggPSAkYWxpYXMgLiAnLic7CiAgICAgICAgICAgICAgICBpZiAoc3RybmNtcCgka2V5LCAka2V5TWF0Y2gsIHN0cmxlbigka2V5TWF0Y2gpKSAhPT0gMCkgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGtleSA9IHN1YnN0cigka2V5LCBzdHJsZW4oJGtleU1hdGNoKSk7CiAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRzcmVnX3RvX2F4WyRrZXldKSkgewogICAgICAgICAgICAgICAgICAgICMgVGhlIGZpZWxkIG5hbWUgaXNuJ3QgcGFydCBvZiB0aGUgU1JFRyBzcGVjLCBzbyB3ZSBpZ25vcmUgaXQuCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkYXR0cmlidXRlc1skc3JlZ190b19heFska2V5XV0gPSAkdGhpcy0+ZGF0YVsnb3BlbmlkXycgLiAkYWxpYXMgLiAnXycgLiAka2V5XTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGF0dHJpYnV0ZXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXRzIEFYL1NSRUcgYXR0cmlidXRlcyBwcm92aWRlZCBieSBPUC4gc2hvdWxkIGJlIHVzZWQgb25seSBhZnRlciBzdWNjZXNzZnVsIHZhbGlkYXRpb24uCiAgICAgKiBOb3RlIHRoYXQgaXQgZG9lcyBub3QgZ3VhcmFudGVlIHRoYXQgYW55IG9mIHRoZSByZXF1aXJlZC9vcHRpb25hbCBwYXJhbWV0ZXJzIHdpbGwgYmUgcHJlc2VudCwKICAgICAqIG9yIHRoYXQgdGhlcmUgd2lsbCBiZSBubyBvdGhlciBhdHRyaWJ1dGVzIGJlc2lkZXMgdGhvc2Ugc3BlY2lmaWVkLgogICAgICogSW4gb3RoZXIgd29yZHMuIE9QIG1heSBwcm92aWRlIHdoYXRldmVyIGluZm9ybWF0aW9uIGl0IHdhbnRzIHRvLgogICAgICogICAgICogU1JFRyBuYW1lcyB3aWxsIGJlIG1hcHBlZCB0byBBWCBuYW1lcy4KICAgICAqICAgICAqIEByZXR1cm4gQXJyYXkgQXJyYXkgb2YgYXR0cmlidXRlcyB3aXRoIGtleXMgYmVpbmcgdGhlIEFYIHNjaGVtYSBuYW1lcywgZS5nLiAnY29udGFjdC9lbWFpbCcKICAgICAqIEBzZWUgaHR0cDovL3d3dy5heHNjaGVtYS5vcmcvdHlwZXMvCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmRhdGFbJ29wZW5pZF9ucyddKQogICAgICAgICAgICAmJiAkdGhpcy0+ZGF0YVsnb3BlbmlkX25zJ10gPT0gJ2h0dHA6Ly9zcGVjcy5vcGVuaWQubmV0L2F1dGgvMi4wJwogICAgICAgICkgeyAjIE9wZW5JRCAyLjAKICAgICAgICAgICAgIyBXZSBzZWFyY2ggZm9yIGJvdGggQVggYW5kIFNSRUcgYXR0cmlidXRlcywgd2l0aCBBWCB0YWtpbmcgcHJlY2VkZW5jZS4KICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRBeEF0dHJpYnV0ZXMoKSArICR0aGlzLT5nZXRTcmVnQXR0cmlidXRlcygpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPmdldFNyZWdBdHRyaWJ1dGVzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXRzIGFuIE9BdXRoIHJlcXVlc3QgdG9rZW4gaWYgdGhlIE9wZW5JRCtPQXV0aCBoeWJyaWQgcHJvdG9jb2wgaGFzIGJlZW4gdXNlZC4KICAgICAqCiAgICAgKiBJbiBvcmRlciB0byB1c2UgdGhlIE9wZW5JRCtPQXV0aCBoeWJyaWQgcHJvdG9jb2wsIHlvdSBuZWVkIHRvIGFkZCBhdCBsZWFzdCBvbmUKICAgICAqIHNjb3BlIHRvIHRoZSAkb3BlbmlkLT5vYXV0aCBhcnJheSBiZWZvcmUgeW91IGdldCB0aGUgY2FsbCB0byBnZXRBdXRoVXJsKCksIGUuZy46CiAgICAgKiAkb3BlbmlkLT5vYXV0aFtdID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcGx1cy5tZSc7CiAgICAgKiAKICAgICAqIEZ1cnRoZXJtb3JlIHRoZSByZWdpc3RlcmVkIGNvbnN1bWVyIG5hbWUgbXVzdCBmaXQgdGhlIE9wZW5JRCByZWFsbS4gCiAgICAgKiBUbyByZWdpc3RlciBhbiBPcGVuSUQgY29uc3VtZXIgYXQgR29vZ2xlIHVzZTogaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hY2NvdW50cy9NYW5hZ2VEb21haW5zCiAgICAgKiAKICAgICAqIEByZXR1cm4gc3RyaW5nfGJvb2wgT0F1dGggcmVxdWVzdCB0b2tlbiBvbiBzdWNjZXNzLCBGQUxTRSBpZiBubyB0b2tlbiB3YXMgcHJvdmlkZWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRPQXV0aFJlcXVlc3RUb2tlbigpCiAgICB7CiAgICAgICAgJGFsaWFzID0gJHRoaXMtPmdldE5hbWVzcGFjZUFsaWFzKCdodHRwOi8vc3BlY3Mub3BlbmlkLm5ldC9leHRlbnNpb25zL29hdXRoLzEuMCcpOwogICAgICAgIAogICAgICAgIHJldHVybiAhZW1wdHkoJGFsaWFzKSA/ICR0aGlzLT5kYXRhWydvcGVuaWRfJyAuICRhbGlhcyAuICdfcmVxdWVzdF90b2tlbiddIDogZmFsc2U7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogR2V0cyB0aGUgYWxpYXMgZm9yIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlLCBpZiBpdCdzIHByZXNlbnQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZXNwYWNlIFRoZSBuYW1lc3BhY2UgZm9yIHdoaWNoIGFuIGFsaWFzIGlzIG5lZWRlZC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGhpbnQgQ29tbW9uIGFsaWFzIG9mIHRoaXMgbmFtZXNwYWNlLCB1c2VkIGZvciBvcHRpbWl6YXRpb24uCiAgICAgKiBAcmV0dXJuIHN0cmluZ3xudWxsIFRoZSBuYW1lc3BhY2UgYWxpYXMgaWYgZm91bmQsIG90aGVyd2lzZSAtIE5VTEwuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlQWxpYXMoJG5hbWVzcGFjZSwgJGhpbnQgPSBudWxsKQogICAgewogICAgICAgICRyZXN1bHQgPSBudWxsOwogICAgICAgIAogICAgICAgIGlmIChlbXB0eSgkaGludCkgfHwgJHRoaXMtPmdldEl0ZW0oJ29wZW5pZF9uc18nIC4gJGhpbnQpICE9ICRuYW1lc3BhY2UpIHsKICAgICAgICAgICAgLy8gVGhlIGNvbW1vbiBhbGlhcyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIHBvaW50cyB0bwogICAgICAgICAgICAvLyBzb21lIG90aGVyIGV4dGVuc2lvbiAtIHNlYXJjaCBmb3IgYW5vdGhlciBhbGlhcy4uCiAgICAgICAgICAgICRwcmVmaXggPSAnb3BlbmlkX25zXyc7CiAgICAgICAgICAgICRsZW5ndGggPSBzdHJsZW4oJHByZWZpeCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAka2V5ID0+ICR2YWwpIHsKICAgICAgICAgICAgICAgIGlmIChzdHJuY21wKCRrZXksICRwcmVmaXgsICRsZW5ndGgpID09PSAwICYmICR2YWwgPT09ICRuYW1lc3BhY2UpIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gdHJpbShzdWJzdHIoJGtleSwgJGxlbmd0aCkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJlc3VsdCA9ICRoaW50OwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBHZXRzIGFuIGl0ZW0gZnJvbSB0aGUgJGRhdGEgYXJyYXkgYnkgdGhlIHNwZWNpZmllZCBpZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpZCBUaGUgaWQgb2YgdGhlIGRlc2lyZWQgaXRlbS4KICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwgVGhlIGl0ZW0gaWYgZm91bmQsIG90aGVyd2lzZSAtIE5VTEwuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0SXRlbSgkaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5kYXRhWyRpZF0pID8gJHRoaXMtPmRhdGFbJGlkXSA6IG51bGw7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/OpenID/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpZ2h0T3BlbklEIFBIUCBMaWJyYXJ5CgpMaWdodE9wZW5JRCBpcyBhbiBvcGVuIHNvdXJjZSBzb2Z0d2FyZSBhdmFpbGFibGUgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLgoKaHR0cHM6Ly9naXRodWIuY29tL2lpZ25hdG92L0xpZ2h0T3BlbklECgpodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/Thirdparty/readme.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyMjIyMgVGhpcmQgcGFydHkgbGlicmFyaWVzCgpIZXJlIHdlIGluY2x1ZGUgYSBudW1iZXIgb2YgdGhpcmQgcGFydHkgbGlicmFyaWVzLiBUaG9zZSBsaWJyYXJpZXMgYXJlIHVzZWQgYnkgdGhlIHZhcmlvdXMgcHJvdmlkZXJzIHN1cHBvcnRlZCBieSBIeWJyaWRhdXRoLgoKTGlicmFyeSB8IERlc2NyaXB0aW9uCi0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbTGlnaHRPcGVuSURdKGh0dHBzOi8vZ2l0b3Jpb3VzLm9yZy9saWdodG9wZW5pZCkgfCBDb250YWluIExpZ2h0T3BlbklELiBTb2xpZCBPcGVuSUQgbGlicmFyeSBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCltPQXV0aCBMaWJyYXJ5XShodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL29hdXRoLykgfCBDb250YWluIE9BdXRoIExpYnJhcnkgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLgoKTm90ZXM6IAoKICAgIFdlIG5vIGxvbmdlciB1c2UgdGhlIG9sZCBPQXV0aCBjbGllbnRzLiBQbGVhc2UgZG9uJ3QgYWRkIG5ldyBsaWJzIHRvIHRoaXMgZm9sZGVyLCB1bmxlc3Mgc3RyaWN0bHkgbmVjZXNzYXJ5LgogICAgQm90aCBMaWdodE9wZW5JRCBhbmQgT0F1dGggYXJlICh0byBiZSkgcGFydGlhbGx5L2luZGlyZWN0bHkgdGVzdGVkIHdpdGhpbiB0aGUgSHlicmlkYXV0aCBsaWJyYXJ5LiAKICAgIEJvdGggTGlnaHRPcGVuSUQgYW5kIE9BdXRoIGxpYnJhcmllcyBhcmUgZXhjbHVkZWQgZnJvbSBDb2RlY2xpbWF0ZS5jb20gQW5hbHlzaXMvR1BBLgo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/User/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/User/Activity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxVc2VyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbjsKCi8qKgogKiBIeWJyaWRhdXRoXFVzZXJcQWN0aXZpdHkKICovCmZpbmFsIGNsYXNzIEFjdGl2aXR5CnsKICAgIC8qKgogICAgKiBhY3Rpdml0eSBpZCBvbiB0aGUgcHJvdmlkZXIgc2lkZSwgdXN1YWxseSBnaXZlbiBhcyBpbnRlZ2VyCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICRpZCA9IG51bGw7CgogICAgLyoqCiAgICAqIGFjdGl2aXR5IGRhdGUgb2YgY3JlYXRpb24KICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGRhdGUgPSBudWxsOwoKICAgIC8qKgogICAgKiBhY3Rpdml0eSBjb250ZW50IGFzIGEgc3RyaW5nCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICR0ZXh0ID0gbnVsbDsKCiAgICAvKioKICAgICogdXNlciB3aG8gY3JlYXRlZCB0aGUgYWN0aXZpdHkKICAgICoKICAgICogQHZhciBvYmplY3QKICAgICovCiAgICBwdWJsaWMgJHVzZXIgPSBudWxsOwoKICAgIC8qKgogICAgKgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPnVzZXIgPSBuZXcgXHN0ZENsYXNzKCk7CgogICAgICAgIC8vIHR5cGljYWxseSwgd2Ugc2hvdWxkIGhhdmUgYSBmZXcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZXIgd2hvIGNyZWF0ZWQgdGhlIGV2ZW50IGZyb20gc29jaWFsIGFwaXMKICAgICAgICAkdGhpcy0+dXNlci0+aWRlbnRpZmllciAgPSBudWxsOwogICAgICAgICR0aGlzLT51c2VyLT5kaXNwbGF5TmFtZSA9IG51bGw7CiAgICAgICAgJHRoaXMtPnVzZXItPnByb2ZpbGVVUkwgID0gbnVsbDsKICAgICAgICAkdGhpcy0+dXNlci0+cGhvdG9VUkwgICAgPSBudWxsOwogICAgfQoKICAgIC8qKgogICAgKiBQcmV2ZW50IHRoZSBwcm92aWRlcnMgYWRhcHRlcnMgZnJvbSBhZGRpbmcgbmV3IGZpZWxkcy4KICAgICoKICAgICogQHZhciBzdHJpbmcgJG5hbWUKICAgICogQHZhciBtaXhlZCAgJHZhbHVlCiAgICAqCiAgICAqIEB0aHJvd3MgRXhjZXB0aW9uXFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgkbmFtZSwgJHZhbHVlKQogICAgewogICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24oc3ByaW50ZignQWRkaW5nIG5ldyBwcm9wZXJ0eSAiJXNcJyB0byAlcyBpcyBub3QgYWxsb3dlZC4nLCAkbmFtZSwgX19DTEFTU19fKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/User/Contact.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxVc2VyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbjsKCi8qKgogKiBIeWJyaWRhdXRoXFVzZXJcQ29udGFjdAogKi8KZmluYWwgY2xhc3MgQ29udGFjdAp7CiAgICAvKioKICAgICogVGhlIFVuaXF1ZSBjb250YWN0IHVzZXIgSUQKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGlkZW50aWZpZXIgPSBudWxsOwoKICAgIC8qKgogICAgKiBVc2VyIHdlYnNpdGUsIGJsb2csIHdlYiBwYWdlCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICR3ZWJTaXRlVVJMID0gbnVsbDsKCiAgICAvKioKICAgICogVVJMIGxpbmsgdG8gcHJvZmlsZSBwYWdlIG9uIHRoZSBJRHAgd2ViIHNpdGUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJHByb2ZpbGVVUkwgPSBudWxsOwoKICAgIC8qKgogICAgKiBVUkwgbGluayB0byB1c2VyIHBob3RvIG9yIGF2YXRhcgogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkcGhvdG9VUkwgPSBudWxsOwoKICAgIC8qKgogICAgKiBVc2VyIGRpc3BsYXlOYW1lIHByb3ZpZGVkIGJ5IHRoZSBJRHAgb3IgYSBjb25jYXRlbmF0aW9uIG9mIGZpcnN0IGFuZCBsYXN0IG5hbWUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGRpc3BsYXlOYW1lID0gbnVsbDsKCiAgICAvKioKICAgICogQSBzaG9ydCBhYm91dF9tZQogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkZGVzY3JpcHRpb24gPSBudWxsOwoKICAgIC8qKgogICAgKiBVc2VyIGVtYWlsLiBOb3QgYWxsIG9mIElEcCBncmFudCBhY2Nlc3MgdG8gdGhlIHVzZXIgZW1haWwKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGVtYWlsID0gbnVsbDsKCiAgICAvKioKICAgICogUHJldmVudCB0aGUgcHJvdmlkZXJzIGFkYXB0ZXJzIGZyb20gYWRkaW5nIG5ldyBmaWVsZHMuCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICogQHBhcmFtIG1peGVkICR2YWx1ZQogICAgKgogICAgKiBAdGhyb3dzIFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgkbmFtZSwgJHZhbHVlKQogICAgewogICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24oc3ByaW50ZignQWRkaW5nIG5ldyBwcm9wZXJ0eSAiJXMiIHRvICVzIGlzIG5vdCBhbGxvd2VkLicsICRuYW1lLCBfX0NMQVNTX18pKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/src/User/Profile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyohCiogSHlicmlkYXV0aAoqIGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8gfCBodHRwczovL2dpdGh1Yi5jb20vaHlicmlkYXV0aC9oeWJyaWRhdXRoCiogIChjKSAyMDE3IEh5YnJpZGF1dGggYXV0aG9ycyB8IGh0dHBzOi8vaHlicmlkYXV0aC5naXRodWIuaW8vbGljZW5zZS5odG1sCiovCgpuYW1lc3BhY2UgSHlicmlkYXV0aFxVc2VyOwoKdXNlIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbjsKCi8qKgogKiBIeWJyaWRhdXRoXFVzZXJvYmplY3QgcmVwcmVzZW50cyB0aGUgY3VycmVudCBsb2dnZWQgaW4gdXNlciBwcm9maWxlLgogKi8KZmluYWwgY2xhc3MgUHJvZmlsZQp7CiAgICAvKioKICAgICogVGhlIFVuaXF1ZSB1c2VyJ3MgSUQgb24gdGhlIGNvbm5lY3RlZCBwcm92aWRlcgogICAgKgogICAgKiBAdmFyIGludGVnZXIKICAgICovCiAgICBwdWJsaWMgJGlkZW50aWZpZXIgPSBudWxsOwoKICAgIC8qKgogICAgKiBVc2VyIHdlYnNpdGUsIGJsb2csIHdlYiBwYWdlCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICR3ZWJTaXRlVVJMID0gbnVsbDsKCiAgICAvKioKICAgICogVVJMIGxpbmsgdG8gcHJvZmlsZSBwYWdlIG9uIHRoZSBJRHAgd2ViIHNpdGUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJHByb2ZpbGVVUkwgPSBudWxsOwoKICAgIC8qKgogICAgKiBVUkwgbGluayB0byB1c2VyIHBob3RvIG9yIGF2YXRhcgogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkcGhvdG9VUkwgPSBudWxsOwoKICAgIC8qKgogICAgKiBVc2VyIGRpc3BsYXlOYW1lIHByb3ZpZGVkIGJ5IHRoZSBJRHAgb3IgYSBjb25jYXRlbmF0aW9uIG9mIGZpcnN0IGFuZCBsYXN0IG5hbWUuCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICRkaXNwbGF5TmFtZSA9IG51bGw7CgogICAgLyoqCiAgICAqIEEgc2hvcnQgYWJvdXRfbWUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGRlc2NyaXB0aW9uID0gbnVsbDsKCiAgICAvKioKICAgICogVXNlcidzIGZpcnN0IG5hbWUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGZpcnN0TmFtZSA9IG51bGw7CgogICAgLyoqCiAgICAqIFVzZXIncyBsYXN0IG5hbWUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGxhc3ROYW1lID0gbnVsbDsKCiAgICAvKioKICAgICogbWFsZSBvciBmZW1hbGUKICAgICoKICAgICogQHZhciBzdHJpbmcKICAgICovCiAgICBwdWJsaWMgJGdlbmRlciA9IG51bGw7CgogICAgLyoqCiAgICAqIExhbmd1YWdlCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICRsYW5ndWFnZSA9IG51bGw7CgogICAgLyoqCiAgICAqIFVzZXIgYWdlLCB3ZSBkb24ndCBjYWxjdWxhdGUgaXQuIHdlIHJldHVybiBpdCBhcyBpcyBpZiB0aGUgSURwIHByb3ZpZGUgaXQuCiAgICAqCiAgICAqIEB2YXIgaW50ZWdlcgogICAgKi8KICAgIHB1YmxpYyAkYWdlID0gbnVsbDsKCiAgICAvKioKICAgICogVXNlciBiaXJ0aCBEYXkKICAgICoKICAgICogQHZhciBpbnRlZ2VyCiAgICAqLwogICAgcHVibGljICRiaXJ0aERheSA9IG51bGw7CgogICAgLyoqCiAgICAqIFVzZXIgYmlydGggTW9udGgKICAgICoKICAgICogQHZhciBpbnRlZ2VyCiAgICAqLwogICAgcHVibGljICRiaXJ0aE1vbnRoID0gbnVsbDsKCiAgICAvKioKICAgICogVXNlciBiaXJ0aCBZZWFyCiAgICAqCiAgICAqIEB2YXIgaW50ZWdlcgogICAgKi8KICAgIHB1YmxpYyAkYmlydGhZZWFyID0gbnVsbDsKCiAgICAvKioKICAgICogVXNlciBlbWFpbC4gTm90ZTogbm90IGFsbCBvZiBJRHAgZ3JhbnQgYWNjZXNzIHRvIHRoZSB1c2VyIGVtYWlsCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICRlbWFpbCA9IG51bGw7CgogICAgLyoqCiAgICAqIFZlcmlmaWVkIHVzZXIgZW1haWwuIE5vdGU6IG5vdCBhbGwgb2YgSURwIGdyYW50IGFjY2VzcyB0byB2ZXJpZmllZCB1c2VyIGVtYWlsCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICRlbWFpbFZlcmlmaWVkID0gbnVsbDsKCiAgICAvKioKICAgICogUGhvbmUgbnVtYmVyCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICRwaG9uZSA9IG51bGw7CgogICAgLyoqCiAgICAqIENvbXBsZXRlIHVzZXIgYWRkcmVzcwogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkYWRkcmVzcyA9IG51bGw7CgogICAgLyoqCiAgICAqIFVzZXIgY291bnRyeQogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkY291bnRyeSA9IG51bGw7CgogICAgLyoqCiAgICAqIFJlZ2lvbgogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkcmVnaW9uID0gbnVsbDsKCiAgICAvKioKICAgICogQ2l0eQogICAgKgogICAgKiBAdmFyIHN0cmluZwogICAgKi8KICAgIHB1YmxpYyAkY2l0eSA9IG51bGw7CgogICAgLyoqCiAgICAqIFBvc3RhbCBjb2RlCiAgICAqCiAgICAqIEB2YXIgc3RyaW5nCiAgICAqLwogICAgcHVibGljICR6aXAgPSBudWxsOwoKICAgIC8qKgogICAgKiBBbiBleHRyYSBkYXRhIHdoaWNoIGlzIHJlbGF0ZWQgdG8gdGhlIHVzZXIKICAgICoKICAgICogQHZhciBhcnJheQogICAgKi8KICAgIHB1YmxpYyAkZGF0YSA9IFtdOwoKICAgIC8qKgogICAgKiBQcmV2ZW50IHRoZSBwcm92aWRlcnMgYWRhcHRlcnMgZnJvbSBhZGRpbmcgbmV3IGZpZWxkcy4KICAgICoKICAgICogQHZhciBzdHJpbmcgJG5hbWUKICAgICogQHZhciBtaXhlZCAgJHZhbHVlCiAgICAqCiAgICAqIEB0aHJvd3MgVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbihzcHJpbnRmKCdBZGRpbmcgbmV3IHByb3BlcnR5ICIlcyIgdG8gJXMgaXMgbm90IGFsbG93ZWQuJywgJG5hbWUsIF9fQ0xBU1NfXykpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Adapter/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Adapter/empty</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Data/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Data/CollectionTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGhcRGF0YTsKCnVzZSBIeWJyaWRhdXRoXERhdGFcQ29sbGVjdGlvbjsKCmNsYXNzIENvbGxlY3Rpb25UZXN0IGV4dGVuZHMgXFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBzb21lX3JhbmRvbV9pZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIDY5OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzb21lX3JhbmRvbV95ZWFyKCkKICAgIHsKICAgICAgICByZXR1cm4gMjAyMDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc29tZV9yYW5kb21fYXJyYXkoKQogICAgewogICAgICAgIHJldHVybiBbJ2lkJyA9PiA2OSwgJ3NsdWdzJyA9PiBbJ86TzrXOuc6xIM+DzrHPgicsICdCb25qb3VyJywgJ+yViOuFle2VmOyEuOyalCcsICd5ZWFyJyA9PiAyMDIwXV07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNvbWVfcmFuZG9tX29iamVjdCgpCiAgICB7CiAgICAgICAgJG9iamVjdCA9IG5ldyBcU3RkQ2xhc3MoKTsKICAgICAgICAkb2JqZWN0LT5pZCA9IDY5OwogICAgICAgICRvYmplY3QtPnNsdWdzID0gWyfOk861zrnOsSDPg86xz4InLCAnQm9uam91cicsICfslYjrhZXtlZjshLjsmpQnLCAneWVhcicgPT4gMjAyMF07CgogICAgICAgIHJldHVybiAkb2JqZWN0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2luc3RhbmNlX29mKCkKICAgIHsKICAgICAgICAkY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignXFxIeWJyaWRhdXRoXFxEYXRhXFxDb2xsZWN0aW9uJywgJGNvbGxlY3Rpb24pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2lkZW50aXR5KCkKICAgIHsKICAgICAgICAkYXJyYXkgPSAkdGhpcy0+c29tZV9yYW5kb21fYXJyYXkoKTsKCiAgICAgICAgJGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbigkYXJyYXkpOwoKICAgICAgICAkcmVzdWx0ID0gJGNvbGxlY3Rpb24tPnRvQXJyYXkoKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzdWx0LCAkYXJyYXkpOwogICAgfQoKICAgIC8qKgogICAgKiBAY292ZXJzIENvbGxlY3Rpb246OmV4aXN0cwogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2V4aXN0cygpCiAgICB7CiAgICAgICAgJGFycmF5ID0gJHRoaXMtPnNvbWVfcmFuZG9tX2FycmF5KCk7CgogICAgICAgICRjb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb24oJGFycmF5KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJGNvbGxlY3Rpb24tPmV4aXN0cygnaWQnKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkY29sbGVjdGlvbi0+ZXhpc3RzKCdfbm9uX2V4aXN0YW50XycpKTsKCiAgICAgICAgLy8KCiAgICAgICAgJG9iamVjdCA9ICR0aGlzLT5zb21lX3JhbmRvbV9vYmplY3QoKTsKCiAgICAgICAgJGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbigkb2JqZWN0KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJGNvbGxlY3Rpb24tPmV4aXN0cygnaWQnKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkY29sbGVjdGlvbi0+ZXhpc3RzKCdfbm9uX2V4aXN0YW50XycpKTsKICAgIH0KCiAgICAvKioKICAgICogQGNvdmVycyBDb2xsZWN0aW9uOjpnZXQKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9nZXQoKQogICAgewogICAgICAgICRhcnJheSA9ICR0aGlzLT5zb21lX3JhbmRvbV9hcnJheSgpOwoKICAgICAgICAkY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKCRhcnJheSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvbGxlY3Rpb24tPmdldCgnaWQnKSwgJHRoaXMtPnNvbWVfcmFuZG9tX2lkKCkpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkY29sbGVjdGlvbi0+Z2V0KCdfbm9uX2V4aXN0YW50XycpKTsKCiAgICAgICAgLy8KCiAgICAgICAgJG9iamVjdCA9ICR0aGlzLT5zb21lX3JhbmRvbV9vYmplY3QoKTsKCiAgICAgICAgJGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbigkb2JqZWN0KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29sbGVjdGlvbi0+Z2V0KCdpZCcpLCAkdGhpcy0+c29tZV9yYW5kb21faWQoKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRjb2xsZWN0aW9uLT5nZXQoJ19ub25fZXhpc3RhbnRfJykpOwogICAgfQoKICAgIC8qKgogICAgKiBAY292ZXJzIENvbGxlY3Rpb246OmZpbHRlcgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2ZpbHRlcigpCiAgICB7CiAgICAgICAgJGFycmF5ID0gJHRoaXMtPnNvbWVfcmFuZG9tX2FycmF5KCk7CgogICAgICAgICRjb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb24oJGFycmF5KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ1xcSHlicmlkYXV0aFxcRGF0YVxcQ29sbGVjdGlvbicsICRjb2xsZWN0aW9uLT5maWx0ZXIoJ2lkJykpOwogICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdcXEh5YnJpZGF1dGhcXERhdGFcXENvbGxlY3Rpb24nLCAkY29sbGVjdGlvbi0+ZmlsdGVyKCdzbHVncycpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignXFxIeWJyaWRhdXRoXFxEYXRhXFxDb2xsZWN0aW9uJywgJGNvbGxlY3Rpb24tPmZpbHRlcignX25vbl9leGlzdGFudF8nKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRjb2xsZWN0aW9uLT5maWx0ZXIoJ3NsdWdzJyktPmdldCgnX25vbl9leGlzdGFudF8nKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvbGxlY3Rpb24tPmZpbHRlcignc2x1Z3MnKS0+Z2V0KCd5ZWFyJyksICR0aGlzLT5zb21lX3JhbmRvbV95ZWFyKCkpOwoKICAgICAgICAvLwoKICAgICAgICAkb2JqZWN0ID0gJHRoaXMtPnNvbWVfcmFuZG9tX29iamVjdCgpOwoKICAgICAgICAkY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKCRvYmplY3QpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignXFxIeWJyaWRhdXRoXFxEYXRhXFxDb2xsZWN0aW9uJywgJGNvbGxlY3Rpb24tPmZpbHRlcignaWQnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ1xcSHlicmlkYXV0aFxcRGF0YVxcQ29sbGVjdGlvbicsICRjb2xsZWN0aW9uLT5maWx0ZXIoJ3NsdWdzJykpOwogICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdcXEh5YnJpZGF1dGhcXERhdGFcXENvbGxlY3Rpb24nLCAkY29sbGVjdGlvbi0+ZmlsdGVyKCdfbm9uX2V4aXN0YW50XycpKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJGNvbGxlY3Rpb24tPmZpbHRlcignc2x1Z3MnKS0+Z2V0KCdfbm9uX2V4aXN0YW50XycpKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29sbGVjdGlvbi0+ZmlsdGVyKCdzbHVncycpLT5nZXQoJ3llYXInKSwgJHRoaXMtPnNvbWVfcmFuZG9tX3llYXIoKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Data/empty</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Data/ParserTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGhcRGF0YTsKCnVzZSBIeWJyaWRhdXRoXERhdGFcUGFyc2VyOwoKY2xhc3MgUGFyc2VyVGVzdCBleHRlbmRzIFxQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9pbnN0YW5jZV9vZigpCiAgICB7CiAgICAgICAgJHBhcnNlciA9IG5ldyBQYXJzZXI7CgogICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdcXEh5YnJpZGF1dGhcXERhdGFcXFBhcnNlcicsICRwYXJzZXIpOwogICAgfQoKICAgIC8qKgogICAgKiBAY292ZXJzIFBhcnNlcjo6cGFyc2UKICAgICogQGNvdmVycyBQYXJzZXI6OnBhcnNlSnNvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X3BhcnNlcl9qc29uKCkKICAgIHsKICAgICAgICAkcGFyc2VyID0gbmV3IFBhcnNlcjsKCiAgICAgICAgJG9iamVjdCA9IG5ldyBcU3RkQ2xhc3MoKTsKICAgICAgICAkb2JqZWN0LT5pZCA9IDY5OwogICAgICAgICRvYmplY3QtPnNsdWdzID0gWyfOk861zrnOsSDPg86xz4InLCAnQm9uam91cicsICfslYjrhZXtlZjshLjsmpQnXTsKCiAgICAgICAgJGpzb24gPSBqc29uX2VuY29kZSgkb2JqZWN0KTsKCiAgICAgICAgLy8KCiAgICAgICAgJHJlc3VsdCA9ICRwYXJzZXItPnBhcnNlKCRqc29uKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ1xcU3RkQ2xhc3MnLCAkcmVzdWx0KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzdWx0LCAkb2JqZWN0KTsKCiAgICAgICAgLy8KCiAgICAgICAgJHJlc3VsdCA9ICRwYXJzZXItPnBhcnNlSnNvbigkanNvbik7CgogICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdcXFN0ZENsYXNzJywgJHJlc3VsdCk7CgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3VsdCwgJG9iamVjdCk7CiAgICB9CgogICAgLyoqCiAgICAqIEBjb3ZlcnMgUGFyc2VyOjpwYXJzZQogICAgKiBAY292ZXJzIFBhcnNlcjo6cGFyc2VRdWVyeVN0cmluZwogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X3BhcnNlcl9xdWVyeXN0cmluZygpCiAgICB7CiAgICAgICAgJHBhcnNlciA9IG5ldyBQYXJzZXI7CgogICAgICAgICRvYmplY3QgPSBuZXcgXFN0ZENsYXNzKCk7CiAgICAgICAgJG9iamVjdC0+aWQgPSA2OTsKICAgICAgICAkb2JqZWN0LT5zbHVnID0gJ29hdXRoJzsKCiAgICAgICAgJHN0cmluZyA9ICdpZD02OSZzbHVnPW9hdXRoJzsKCiAgICAgICAgLy8KCiAgICAgICAgJHJlc3VsdCA9ICRwYXJzZXItPnBhcnNlKCRzdHJpbmcpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignXFxTdGRDbGFzcycsICRyZXN1bHQpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXN1bHQsICRvYmplY3QpOwoKICAgICAgICAvLwoKICAgICAgICAkcmVzdWx0ID0gJHBhcnNlci0+cGFyc2VRdWVyeVN0cmluZygkc3RyaW5nKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ1xcU3RkQ2xhc3MnLCAkcmVzdWx0KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzdWx0LCAkb2JqZWN0KTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/HttpClient/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/HttpClient/empty</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/HybridauthTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGg7Cgp1c2UgSHlicmlkYXV0aFxIeWJyaWRhdXRoOwoKY2xhc3MgSHlicmlkYXV0aFRlc3QgZXh0ZW5kcyBcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfcGFzcygpCiAgICB7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUodHJ1ZSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Logger/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Logger/empty</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Provider/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Provider/empty</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Storage/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/Storage/SessionTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGhcU3RvcmFnZTsKCnVzZSBIeWJyaWRhdXRoXFN0b3JhZ2VcU2Vzc2lvbjsKCnNlc3Npb25fc3RhcnQoKTsgLy8gdGhleSB3aWxsIGhhdGUgbWUgZm9yIHRoaXMuLgoKY2xhc3MgU2Vzc2lvblRlc3QgZXh0ZW5kcyBcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UKewogICAgcHVibGljIGZ1bmN0aW9uIHNvbWVfcmFuZG9tX3Nlc3Npb25fZGF0YSgpCiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgWyAnZm9vJywgJ2JhcicgXSwKICAgICAgICAgICAgWyAgMTIzNCwgJ2JhcicgXSwKICAgICAgICAgICAgWyAnZm9vJywgIDEyMzQgXSwKCiAgICAgICAgICAgIFsgJ0JvbmpvdXInLCAn7JWI64WV7ZWY7IS47JqUJyBdLAogICAgICAgICAgICBbICfgrrngrrLgr4fgrr4nICAgLCAnzpPOtc65zrEgz4POsc+CJyBdLAoKICAgICAgICAgICAgWyAnYXJyYXknLCBbIDEsIDIsIDMgXSBdLAogICAgICAgICAgICBbICdzdHJpbmcnLCAganNvbl9lbmNvZGUoJHRoaXMpIF0sCiAgICAgICAgICAgIFsgJ29iamVjdCcsICR0aGlzIF0sCgogICAgICAgICAgICBbICdwcm92aWRlci50b2tlbi5yZXF1ZXN0X3Rva2VuJywgJzlEWVBFSiZxaHZoUDNlSiEnIF0sCiAgICAgICAgICAgIFsgJ3Byb3ZpZGVyLnRva2VuLm9hdXRoX3Rva2VuJywgJzgwMzU5MDg0LWNsZzFERXR4UUYzd3N0VGN5VWRIRjN3c2RITScgXSwKICAgICAgICAgICAgWyAncHJvdmlkZXIudG9rZW4ub2F1dGhfdG9rZW5fc2VjcmV0JywgJ3FpSFRpMXpuejZxaUgzdFRjeVVkSG56NnFpSDN0VGN5VWRIM3hXM3dzRHZWMDhlJyBdLAogICAgICAgIF07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfaW5zdGFuY2Vfb2YoKQogICAgewogICAgICAgICRzdG9yYWdlID0gbmV3IFNlc3Npb247CgogICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdcXEh5YnJpZGF1dGhcXFN0b3JhZ2VcXFN0b3JhZ2VJbnRlcmZhY2UnLCAkc3RvcmFnZSk7CiAgICB9CgogICAgLyoqCiAgICAqIEBkYXRhUHJvdmlkZXIgc29tZV9yYW5kb21fc2Vzc2lvbl9kYXRhCiAgICAqIEBjb3ZlcnMgU2Vzc2lvbjo6Z2V0CiAgICAqIEBjb3ZlcnMgU2Vzc2lvbjo6c2V0CiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3Rfc2V0X2FuZF9nZXRfZGF0YSgka2V5LCAkdmFsdWUpCiAgICB7CiAgICAgICAgJHN0b3JhZ2UgPSBuZXcgU2Vzc2lvbjsKCiAgICAgICAgJHN0b3JhZ2UtPnNldCgka2V5LCAkdmFsdWUpOwoKICAgICAgICAkZGF0YSA9ICRzdG9yYWdlLT5nZXQoJGtleSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHZhbHVlLCAkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAqIEBkYXRhUHJvdmlkZXIgc29tZV9yYW5kb21fc2Vzc2lvbl9kYXRhCiAgICAqIEBjb3ZlcnMgU2Vzc2lvbjo6ZGVsZXRlCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZGVsZXRlX2RhdGEoJGtleSwgJHZhbHVlKQogICAgewogICAgICAgICRzdG9yYWdlID0gbmV3IFNlc3Npb247CgogICAgICAgICRzdG9yYWdlLT5zZXQoJGtleSwgJHZhbHVlKTsKCiAgICAgICAgJHN0b3JhZ2UtPmRlbGV0ZSgka2V5KTsKCiAgICAgICAgJGRhdGEgPSAkc3RvcmFnZS0+Z2V0KCRrZXkpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAqIEBkYXRhUHJvdmlkZXIgc29tZV9yYW5kb21fc2Vzc2lvbl9kYXRhCiAgICAqIEBjb3ZlcnMgU2Vzc2lvbjo6Y2xlYXIKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9jbGVhcl9kYXRhKCRrZXksICR2YWx1ZSkKICAgIHsKICAgICAgICAkc3RvcmFnZSA9IG5ldyBTZXNzaW9uOwoKICAgICAgICAkc3RvcmFnZS0+c2V0KCRrZXksICR2YWx1ZSk7CgogICAgICAgICRzdG9yYWdlLT5jbGVhcigpOwoKICAgICAgICAkZGF0YSA9ICRzdG9yYWdlLT5nZXQoJGtleSk7CgogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRkYXRhKTsKICAgIH0KCiAgICAvKioKICAgICogQGNvdmVycyBTZXNzaW9uOjpjbGVhcgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2NsZWFyX2RhdGFfYnVsaygpCiAgICB7CiAgICAgICAgJHN0b3JhZ2UgPSBuZXcgU2Vzc2lvbjsKCiAgICAgICAgZm9yZWFjaCAoKGFycmF5KSAkdGhpcy0+c29tZV9yYW5kb21fc2Vzc2lvbl9kYXRhKCkgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgJHN0b3JhZ2UtPnNldCgka2V5LCAkdmFsdWUpOwogICAgICAgIH0KCiAgICAgICAgJHN0b3JhZ2UtPmNsZWFyKCk7CgogICAgICAgIGZvcmVhY2ggKChhcnJheSkgJHRoaXMtPnNvbWVfcmFuZG9tX3Nlc3Npb25fZGF0YSgpIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICRkYXRhID0gJHN0b3JhZ2UtPmdldCgka2V5KTsKCiAgICAgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRkYXRhKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAqIEBkYXRhUHJvdmlkZXIgc29tZV9yYW5kb21fc2Vzc2lvbl9kYXRhCiAgICAqIEBjb3ZlcnMgU2Vzc2lvbjo6ZGVsZXRlTWF0Y2gKICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9kZWxldGVfbWF0Y2hfZGF0YSgka2V5LCAkdmFsdWUpCiAgICB7CiAgICAgICAgJHN0b3JhZ2UgPSBuZXcgU2Vzc2lvbjsKCiAgICAgICAgJHN0b3JhZ2UtPnNldCgka2V5LCAkdmFsdWUpOwoKICAgICAgICAkc3RvcmFnZS0+ZGVsZXRlTWF0Y2goJ3Byb3ZpZGVyLnRva2VuLicpOwoKICAgICAgICAkZGF0YSA9ICRzdG9yYWdlLT5nZXQoJ3Byb3ZpZGVyLnRva2VuLnJlcXVlc3RfdG9rZW4nKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJGRhdGEpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/User/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/User/ActivityTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGhcVXNlcjsKCnVzZSBIeWJyaWRhdXRoXFVzZXJcQWN0aXZpdHk7CgpjbGFzcyBBY3Rpdml0eVRlc3QgZXh0ZW5kcyBcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfaW5zdGFuY2Vfb2YoKQogICAgewogICAgICAgICRhY3Rpdml0eSA9IG5ldyBBY3Rpdml0eTsKCiAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ1xcSHlicmlkYXV0aFxcVXNlclxcQWN0aXZpdHknLCAkYWN0aXZpdHkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2hhc19hdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2lkJywgQWN0aXZpdHk6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2RhdGUnLCBBY3Rpdml0eTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgndGV4dCcsIEFjdGl2aXR5OjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCd1c2VyJywgQWN0aXZpdHk6OmNsYXNzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9zZXRfYXR0cmlidXRlcygpCiAgICB7CiAgICAgICAgJGFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5OwoKICAgICAgICAkYWN0aXZpdHktPmlkID0gdHJ1ZTsKICAgICAgICAkYWN0aXZpdHktPmRhdGUgPSB0cnVlOwogICAgICAgICRhY3Rpdml0eS0+dGV4dCA9IHRydWU7CiAgICAgICAgJGFjdGl2aXR5LT51c2VyID0gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIEh5YnJpZGF1dGhcRXhjZXB0aW9uXFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbgogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X3Byb3BlcnR5X292ZXJsb2FkaW5nKCkKICAgIHsKICAgICAgICAkYWN0aXZpdHkgPSBuZXcgQWN0aXZpdHk7CgogICAgICAgICRhY3Rpdml0eS0+c2x1ZyA9IHRydWU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/User/ContactTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGhcVXNlcjsKCnVzZSBIeWJyaWRhdXRoXFVzZXJcQ29udGFjdDsKCmNsYXNzIENvbnRhY3RUZXN0IGV4dGVuZHMgXFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2luc3RhbmNlX29mKCkKICAgIHsKICAgICAgICAkY29udGFjdCA9IG5ldyBDb250YWN0OwoKICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignXFxIeWJyaWRhdXRoXFxVc2VyXFxDb250YWN0JywgJGNvbnRhY3QpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2hhc19hdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2lkZW50aWZpZXInLCBDb250YWN0OjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCd3ZWJTaXRlVVJMJywgQ29udGFjdDo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgncHJvZmlsZVVSTCcsIENvbnRhY3Q6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ3Bob3RvVVJMJywgQ29udGFjdDo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgnZGlzcGxheU5hbWUnLCBDb250YWN0OjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdkZXNjcmlwdGlvbicsIENvbnRhY3Q6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2VtYWlsJywgQ29udGFjdDo6Y2xhc3MpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X3NldF9hdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICAkY29udGFjdCA9IG5ldyBDb250YWN0OwoKICAgICAgICAkY29udGFjdC0+aWRlbnRpZmllciA9IHRydWU7CiAgICAgICAgJGNvbnRhY3QtPndlYlNpdGVVUkwgPSB0cnVlOwogICAgICAgICRjb250YWN0LT5wcm9maWxlVVJMID0gdHJ1ZTsKICAgICAgICAkY29udGFjdC0+cGhvdG9VUkwgPSB0cnVlOwogICAgICAgICRjb250YWN0LT5kaXNwbGF5TmFtZSA9IHRydWU7CiAgICAgICAgJGNvbnRhY3QtPmRlc2NyaXB0aW9uID0gdHJ1ZTsKICAgICAgICAkY29udGFjdC0+ZW1haWwgPSB0cnVlOwogICAgfQoKICAgIC8qKgogICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gSHlicmlkYXV0aFxFeGNlcHRpb25cVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uCiAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfcHJvcGVydHlfb3ZlcmxvYWRpbmcoKQogICAgewogICAgICAgICRjb250YWN0ID0gbmV3IENvbnRhY3Q7CgogICAgICAgICRjb250YWN0LT5zbHVnID0gdHJ1ZTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/User/empty</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/hybridauth/tests/User/ProfileTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgbmFtZXNwYWNlIEh5YnJpZGF1dGhUZXN0XEh5YnJpZGF1dGhcVXNlcjsKCnVzZSBIeWJyaWRhdXRoXFVzZXJcUHJvZmlsZTsKCmNsYXNzIFByb2ZpbGVUZXN0IGV4dGVuZHMgXFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2luc3RhbmNlX29mKCkKICAgIHsKICAgICAgICAkcHJvZmlsZSA9IG5ldyBQcm9maWxlOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignXFxIeWJyaWRhdXRoXFxVc2VyXFxQcm9maWxlJywgJHByb2ZpbGUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2hhc19hdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2lkZW50aWZpZXInLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCd3ZWJTaXRlVVJMJywgUHJvZmlsZTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgncHJvZmlsZVVSTCcsIFByb2ZpbGU6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ3Bob3RvVVJMJywgUHJvZmlsZTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgnZGlzcGxheU5hbWUnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdmaXJzdE5hbWUnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdsYXN0TmFtZScsIFByb2ZpbGU6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2Rlc2NyaXB0aW9uJywgUHJvZmlsZTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgnZ2VuZGVyJywgUHJvZmlsZTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgnbGFuZ3VhZ2UnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdhZ2UnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdiaXJ0aERheScsIFByb2ZpbGU6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2JpcnRoTW9udGgnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdiaXJ0aFllYXInLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdlbWFpbCcsIFByb2ZpbGU6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2VtYWlsVmVyaWZpZWQnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdwaG9uZScsIFByb2ZpbGU6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ2FkZHJlc3MnLCBQcm9maWxlOjpjbGFzcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENsYXNzSGFzQXR0cmlidXRlKCdjb3VudHJ5JywgUHJvZmlsZTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgncmVnaW9uJywgUHJvZmlsZTo6Y2xhc3MpOwogICAgICAgICR0aGlzLT5hc3NlcnRDbGFzc0hhc0F0dHJpYnV0ZSgnY2l0eScsIFByb2ZpbGU6OmNsYXNzKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q2xhc3NIYXNBdHRyaWJ1dGUoJ3ppcCcsIFByb2ZpbGU6OmNsYXNzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9zZXRfYXR0cmlidXRlcygpCiAgICB7CiAgICAgICAgJHByb2ZpbGUgPSBuZXcgUHJvZmlsZTsKCiAgICAgICAgJHByb2ZpbGUtPmlkZW50aWZpZXIgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT53ZWJTaXRlVVJMID0gdHJ1ZTsKICAgICAgICAkcHJvZmlsZS0+cHJvZmlsZVVSTCA9IHRydWU7CiAgICAgICAgJHByb2ZpbGUtPnBob3RvVVJMID0gdHJ1ZTsKICAgICAgICAkcHJvZmlsZS0+ZGlzcGxheU5hbWUgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5maXJzdE5hbWUgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5sYXN0TmFtZSA9IHRydWU7CiAgICAgICAgJHByb2ZpbGUtPmRlc2NyaXB0aW9uID0gdHJ1ZTsKICAgICAgICAkcHJvZmlsZS0+Z2VuZGVyID0gdHJ1ZTsKICAgICAgICAkcHJvZmlsZS0+bGFuZ3VhZ2UgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5hZ2UgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5iaXJ0aERheSA9IHRydWU7CiAgICAgICAgJHByb2ZpbGUtPmJpcnRoTW9udGggPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5iaXJ0aFllYXIgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5lbWFpbCA9IHRydWU7CiAgICAgICAgJHByb2ZpbGUtPmVtYWlsVmVyaWZpZWQgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5waG9uZSA9IHRydWU7CiAgICAgICAgJHByb2ZpbGUtPmFkZHJlc3MgPSB0cnVlOwogICAgICAgICRwcm9maWxlLT5jb3VudHJ5ID0gdHJ1ZTsKICAgICAgICAkcHJvZmlsZS0+cmVnaW9uID0gdHJ1ZTsKICAgICAgICAkcHJvZmlsZS0+Y2l0eSA9IHRydWU7CiAgICAgICAgJHByb2ZpbGUtPnppcCA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAqIEBleHBlY3RlZEV4Y2VwdGlvbiBIeWJyaWRhdXRoXEV4Y2VwdGlvblxVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24KICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9wcm9wZXJ0eV9vdmVybG9hZGluZygpCiAgICB7CiAgICAgICAgJHByb2ZpbGUgPSBuZXcgUHJvZmlsZTsKCiAgICAgICAgJHByb2ZpbGUtPnNsdWcgPSB0cnVlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRkVVVHdpdHRlckF1dGg7CnVzZSBDR0ZFVVR3aXR0ZXJBdXRoOwoKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwokYXR0cmlicyA9IHNlcmlhbGl6ZShbJ21vZHVsZSc9PiR0aGlzLT5HZXROYW1lKCldKTsKJGZldS0+QWRkUHJvcGVydHlEZWZuKENHRkVVVHdpdHRlckF1dGg6OlBST1BOQU1FLCcnLCRmZXU6OkZJRUxEVFlQRV9EQVRBLCAxMDI0LCAxMDI0LCAkYXR0cmlicyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRkVVVHdpdHRlckF1dGg7CnVzZSBDR0ZFVVR3aXR0ZXJBdXRoOwoKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwokZmV1LT5EZWxldGVQcm9wZXJ0eURlZm4oQ0dGRVVUd2l0dGVyQXV0aDo6UFJPUE5BTUUsVFJVRSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDR0ZFVVR3aXR0ZXJBdXRoIgp2ZXJzaW9uID0gIjEuMC4xIgphdXRob3IgPSAiY2FsZ3V5MTAwMCIKYXV0aG9yZW1haWwgPSAiY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyIKbWluY21zdmVyc2lvbiA9ICIyLjIuMTAiCmxhenlsb2FkYWRtaW4gPSAwCmxhenlsb2FkZnJvbnRlbmQgPSAwCltkZXBlbmRzXQpDR0V4dGVuc2lvbnMgPSAxLjYzCkZyb250RW5kVXNlcnMgPSAyLjk5Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICEkY29ubmVjdGVkfQogICA8YSBocmVmPSJ7JGN1cnJlbnRfdXJsfSI+TG9naW4gd2l0aCB0d2l0dGVyPC9hPgp7L2lmfQo=]]></data>
	</file>
</module>
