<?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>CGStaticMaps</name>
	<version>1.0.3</version>
    <mincmsversion>1.12.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIGFuZCBlYXN5IHdheSB0byBjcmVhdGUgc3RhdGljIGdvb2dsZSBtYXBzIGZvciBDTVNNUyB3ZWIgcGFnZXMuPC9wPgo8aDM+RmVhdHVyZXM8L2gzPgo8dWw+CiAgPGxpPkNvbnZlbmllbnRseSBnZW5lcmF0ZSBzdGF0aWMgZ29vZ2xlIG1hcHMgd2l0aCBhIHNtYXJ0eSBwbHVnaW4uPC9saT4KICA8bGk+Q2FjaGUgdGhlIGdlbmVyYXRlZCBtYXAgaW1hZ2VzIG9uIHRoZSBzZXJ2ZXIuPC9saT4KICA8bGk+QXV0b21hdGljYWxseSBlbWJlZCBzbWFsbGVyIG1hcHMgdG8gcmVkdWUgaHRtbCByZXF1ZXN0cy48L2xpPgogIDxsaT5TdXBwb3J0cyAzIGRpZmZlcmVudCBtYXJrZXIgaWNvbiBzaXplcy48L2xpPgogIDxsaT5BdXRvbWF0aWNhbGx5IGRldGVjdHMgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuPC9saT4KICA8bGk+U3VwcG9ydHMgbXVsdGlwbGUgbWFya2VycyBwZXIgbWFwLjwvbGk+CiAgPGxpPlN1cHBvcnRzIHNwZWNpZnlpbmcgYSBjZW50ZXIgbG9jYXRpb24sIG9yIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5pbmcgb25lLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGxvY2F0aW9uIG5hbWVzIG9yIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuPC9saT4KPC91bD4KPGgzPkZBUTwvaDM+Cjx1bD4KICA8bGk+V2h5IGNhY2hlIHRoZSBtYXAgaW1hZ2VzPwogICAgPHA+VGhlcmUgYXJlIHR3byByZWFzb25zIHdoeSB0aGUgZ2VuZXJhdGVkIG1hcCBpbWFnZXMgYXJlIGNhY2hlZC4gIGE6IHBlcmZvcm1hbmNlIChpdCBpcyBmYXN0ZXIgdG8gbG9hZCBhIHN0YXRpYyBpbWFnZSB0aGFuIGFueSBkeW5hbWljIG9uZS4uLiBldmVuIGlmIGl0IGNvbWVzIGZyb20gZ29vZ2xlKS4gIGI6IFRoZSBnb29nbGUgc3RhdGljIG1hcHMgQVBJIGhhcyBhIHF1b3RhLiBDYWNoaW5nIHRoZSBpbWFnZXMgbWVhbnMgdGhhdCByZXBlYXRlZCB2aXNpdG9ycyB3aWxsIG5vdCBlZmZlY3QgdGhlIHF1b3RlLjwvcD4KICA8L2xpPgogIDxsaT5Ib3cgbG9uZyBpcyB0aGUgaW1hZ2UgY2FjaGVkLgogICAgPHA+SW1hZ2VzIGFyZSBjYWNoZWQgZm9yIDMwIGRheXMsIG9yIHVudGlsIGRlbGV0ZWQgZnJvbSB0aGUgQ01TTVMgY2FjaGUgZGlyZWN0b3J5LjwvcD4KICA8L2xpPgogIDxsaT5XaGF0IGlzIHRoZSBkZWZhdWx0IHNpemU/CiAgICA8cD5UaGUgZGVmYXVsdCBzaXplIG9mIHRoZSBtYXAgaXMgNDAweDQwMC48L3A+CiAgPC9saT4KICA8bGk+V2hhdCBpcyB0aGUgZGVmYXVsdCBmb3JtYXQ/CiAgICA8cD5UaGUgZGVmYXVsdCBmb3JtYXQgaXMgUE5HLjwvcD4KICA8L2xpPgogIDxsaT5UaGVyZSBjYW4gb25seSBiZSBhIG1heGltdW0gb2YgMjYgbWFya2VycyBvbiBlYWNoIG1hcC48L2xpPgogIDxsaT5Qb2x5bGluZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLjwvbGk+CiAgPGxpPlRoaXMgbW9kdWxlIGRvZXMgbm90IGdlbmVyYXRlIHByZXR0eSBVUkxTIGZvciBTRU8gcHVycG9zZXMuPC9saT4KICA8bGk+VGhpcyBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhbiBhZG1pbiBpbnRlcmZhY2UuPC9saT4KPC91bD4KPGgzPlBhcmFtZXRlcnM8L2gzPgo8dWw+CiAgPGxpPk1hcCBQYXJhbWV0ZXJzCiAgICA8dWw+CiAgICA8bGk+YWRkcmVzcyA8ZW0+KG9wdGlvbmFsLCBzdHJpbmcpPC9lbT4KICAgICAgICA8cD5TcGVjaWZ5IGEgc2luZ2xlIG1hcmtlciBieSBpdCdzIGFkZHJlc3MgKG9yIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUpLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBlcmFzZSBhbnkgcHJldmlvdXNseSBzZXQgbWFya2Vycy48L3A+Cgk8cD5FeGFtcGxlOiAgPGNvZGU+e0NHU3RhdGljTWFwcyBhZGRyZXNzPSdQYXJpcyBGUid9PC9jb2RlPgogICAgPC9saT4KICAgIDxsaT5tYXJrZXIwLi4yNSA8ZW0+KG9wdGlvbmFsLCBzdHJpbmcpPC9lbT4KICAgICAgICA8cD5BZGQgdXAgdG8gMjYgZGlmZmVyZW50IG1hcmtlcnMuPC9wPgoJPHA+RXhhbXBsZTogIDxjb2RlPntDR1N0YXRpY01hcHMgbWFya2VyMD0nUGFyaXMgRlInIG1hcmtlcjE9J0Ftc3RlcmRhbSBOTCd9PC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+bWFwdHlwZSA8ZW0+KHJvYWRtYXB8c2F0ZWxsaXRlfGh5YnJpZHx0ZXJyYWluKTwvZW0+CiAgICAgICAgPHA+U2V0IHRoZSBtYXAgdHlwZS4gIFRoZSBkZWZhdWx0IGlzICZxdW90O3JvYWRtYXAmcXVvdDs8L3A+Cgk8cD5FeGFtcGxlOiB7Q0dTdGF0aWNNYXBzIGFkZHJlc3M9J1BhcmlzIEZSJyBtYXB0eXBlPXNhdGVsbGl0ZX08L3A+CiAgICA8L2xpPgogICAgPGxpPmNlbnRlciA8ZW0+KG9wdGlvbmFsLCBzdHJpbmcpPC9lbT4KICAgICAgIDxwPlNldCB0aGUgY2VudGVyIGxvY2F0aW9uIGZvciB0aGUgbWFwLiAgQWNjZXB0cyBhIGxvY2F0aW9uIG9yIGEgbGF0aXR1ZGUgYW5kIGxvZ2l0dWRlLjwvcD4KICAgICAgIDxwPkV4YW1wbGU6IHtDR1N0YXRpY01hcHMgY2VudGVyPSdQYXJpcyBGUid9PC9wPgogICAgPC9saT4KICAgIDxsaT56b29tIDxlbT4ob3B0aW9uYWwgaW50IGJldHdlZW4gMCBhbmQgMjEpCiAgICAgICA8cD5TZXQgdGhlIHpvb20gbGV2ZWwuICBJZiBub3Qgc3BlY2lmaWVkIHRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZSBhIHpvb20gbGV2ZWwgdGhhdCBlbmNvbXBhc3NlcyBhbGwgbWFya2Vycy48L3A+CiAgICAgICA8cD5FeGFtcGxlOiB7Q0dTdGF0aWNNYXBzIGNlbnRlcj0nUGFyaXMgRlInIHpvb209MTJ9PC9wPgogICAgPC9saT4KICAgIDxsaT5tYXJrZXJzaXplIDxlbT4oc21hbGx8bWlkfHRpbnkpPC9lbT4KICAgICAgIDxwPkFsbG93cyBjaGFuZ2luZyB0aGUgc2l6ZSBvZiBtYXAgbWFya2Vycy4gIFNvbWUgbWFwIG1hcmtlciBzaXplcyBtYXkgbm90IHN1cHBvcnQgbGFiZWxzLjwvcD4KICAgICAgIDxwPkV4YW1wbGU6IHtDR1N0YXRpY01hcHMgY2VudGVyPSdQYXJpcyBGUicgem9vbT0xMiBtYXJrZXJzaXplPXRpbnl9PC9wPgogICAgPC9saT4KICAgIDxsaT5tYXJrZXJjb2xvciA8ZW0+KG9wdGlvbmFsLCBjb2xvciBzdHJpbmcpPC9lbT4KICAgICAgIDxwPkFsbG93cyBjaGFuZ2luZyB0aGUgY29sb3Igb2YgYWxsIG1hcmtlcnMgZm9yIHRoZSBtYXAuPC9wPgogICAgICAgPHA+RXhhbXBsZToge0NHU3RhdGljTWFwcyBjZW50ZXI9J1BhcmlzIEZSJyB6b29tPTEyIG1hcmtlcmNvbG9yPScjZWZlZmVmJ308L3A+CiAgICA8L2xpPgogICAgPGxpPnNpemUgPGVtPihzdHJpbmcpCiAgICAgICA8cD5TcGVjaWZ5IHRoZSBtYXAgc2l6ZS4gIE5vdGUsIHRoaXMgY2FuIGFsc28gYmUgZG9uZSB3aXRoIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMuPC9wPgogICAgICAgPHA+RXhhbXBsZToge0NHU3RhdGljTWFwcyBjZW50ZXI9J1BhcmlzIEZSJyB6b29tPTEyIG1hcmtlcmNvbG9yPScjZWZlZmVmJyBzaXplPScyNTB4MjUwJ308L3A+CiAgICA8L2xpPgogICAgPGxpPmZvcm1hdCA8ZW0+KFBOR3xKUEd8R0lGKTwvZW0+CiAgICAgICA8cD5TcGVjaWZ5IHRoZSBpbWFnZSBmb3JtYXQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBQTkcuPC9wPgogICAgPC9saT4KICAgIDxsaT5sYW5ndWFnZSA8ZW0+KHN0cmluZyk8L2VtPgogICAgICAgPHA+U3BlY2lmeSB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBpbWFnZSBsYWJlbHMuICBieSBkZWZhdWx0IHRoZSBjdXJyZW50IGNtc21zIGxhbmd1YWdlIGlzIHVzZWQuPC9wPgogICAgICAgPHA+RXhhbXBsZToge0NHU3RhdGljTWFwcyBjZW50ZXI9J1JvbWUgSXRhbHknIGxhbmd1YWdlPWZyfTwvcD4KICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CgogIDxsaT5JbWcgVGFnIFBhcmFtZXRlcnMKICAgIDx1bD4KICAgIDxsaT5pZCA8ZW0+KG9wdGlvbmFsIHN0cmluZyk8L2VtPiAtIFRoZSBpZCBhdHRyaWJ1dGUgZm9yIHRoZSBpbWcgdGFnLjwvbGk+CiAgICA8bGk+Y2xhc3MgPGVtPihvcHRpb25hbCBzdHJpbmcpPC9lbT4gLSBUaGUgY2xhc3MgYXR0cmlidXRlIGZvciB0aGUgaW1nIHRhZy48L2xpPgogICAgPGxpPmFsdCA8ZW0+KG9wdGlvbmFsIHN0cmluZyk8L2VtPiAtIFRoZSBhbHQgYXR0cmlidXRlIGZvciB0aGUgaW1nIHRhZy4gIElmIG5vdCBzcGVjaWZpZWQgb25lIHdpbGwgYmUgZ2VucmF0ZWQgYnkgZGVmYXVsdCBzbyB0aGF0IHRoZSBpbWcgdGFnIHZhbGlkYXRlcy48L2xpPgogICAgPGxpPndpZHRoIDxlbT4ob3B0aW9uYWwgaW50KTwvZW0+IC0gVGhlIHdpZHRoIGZvciB0aGUgaW1hZ2UgdGFnLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgc2l6ZSBmb3IgdGhlIGdlbmVyYXRlZCBpbWFnZSBhcyB3ZWxsLjwvbGk+CiAgICA8bGk+aGVpZ2h0IDxlbT4ob3B0aW9uYWwgaW50KTwvZW0+IC0gVGhlIGhlaWdodCBmb3IgdGhlIGltYWdlIHRhZy4gIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHNpemUgZm9yIHRoZSBnZW5lcmF0ZWQgaW1hZ2UgYXMgd2VsbC48L2xpPgogICAgPGxpPm5vZW1iZWQgPGVtPihvcHRpb25hbCBib29sKTwvZW0+IC0gRG8gbm90IGVtYmVkIGltYWdlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgzPkNvbmZpZyBWYXJpYWJsZXM8L2gzPgo8cD5UaGlzIG1vZHVsZSB3aWxsIHVzZSB0aGUgdmFsdWUgb2YgdGhlIGNnc21fbm9lbWJlZCB2YXJpYWJsZSBpbiB0aGUgY29uZmlnLnBocCBmaWxlIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG5vZW1iZWQgYXJndW1lbnQuPC9wPgo8cD50aGlzIG1vZHVsZSB3aWxsIHVzZSB0aGUgdmFsdWUgb2YgdGhlIGNnc21fYXBpa2V5IHZhcmlhYmxlIGluIHRoZSBjb25maWcucGhwIGZpbGUgdG8gYWxsb3cgc3BlY2lmeWluZyBhIGdvb2dsZSBtYXBzIEFQSSBrZXkuPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuNjIuNDwvbGk+PGxpPkNHU2ltcGxlU21hcnR5ID0mZ3Q7IDEuOTwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMC4zPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgoJPGxpPnZlcnNpb24gMS4wLjAgLSBJbml0aWFsIFJlbGVhc2U8L2xpPgoJPGxpPnZlcnNpb24gMS4wLjEgLSBNaW5vciBidWcgZml4Cgk8dWw+Cgk8bGk+UmVnaXN0ZXIgdGhlIGFkZHJlc3MgcGFyYW1ldGVyLCBzbyB0aGUgZGF0YSBpbiB0aGUgaGVscCB3b3Jrcy48L2xpPgoJPC91bD4KCTwvbGk+Cgk8bGk+dmVyc2lvbiAxLjAuMgoJPHVsPgoJPGxpPk5vIGxvbmdlciB1c2UgdG1wL2NhY2hlIGZvciBmaWxlIHN0b3JhZ2UuPC9saT4KCTwvdWw+Cgk8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.62.4</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.9</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKdHJ5IHsKICAgICRub2VtYmVkID0gY2dlX3V0aWxzOjp0b19ib29sKCRjb25maWdbJ2Nnc21fbm9lbWJlZCddKTsKICAgICRsYW5nID0gc3Vic3RyKENtc05sc09wZXJhdGlvbnM6OmdldF9jdXJyZW50X2xhbmd1YWdlKCksMCwyKTsKICAgICR0YWdwYXJtcyA9IGFycmF5KCdpZCc9Pm51bGwsJ2NsYXNzJz0+bnVsbCwnYWx0Jz0+bnVsbCwnd2lkdGgnPT5udWxsLCdoZWlnaHQnPT5udWxsKTsKICAgICRvcHRzID0gYXJyYXkoJ21hcmtlcnNpemUnPT5udWxsLCdtYXJrZXJjb2xvcic9Pm51bGwsJ3NpemUnPT5udWxsLCdzY2FsZSc9Pm51bGwsJ2Zvcm1hdCc9Pm51bGwsCiAgICAgICAgICAgICAgICAgICdtYXB0eXBlJz0+bnVsbCwnbGFuZ3VhZ2UnPT4kbGFuZywncmVnaW9uJz0+bnVsbCwnY2VudGVyJz0+bnVsbCwnem9vbSc9Pm51bGwsJ3NlbnNvcic9Pm51bGwpOwogICAgJGFwaWtleSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHRoaXMtPmNvbmZpZywnY2dzbV9hcGlrZXknKTsKICAgIGlmKCAkYXBpa2V5ICkgJG9wdHNbJ2tleSddID0gJGFwaWtleTsKCiAgICAkd2lkdGggPSAkaGVpZ2h0ID0gbnVsbDsKICAgICRtYXJrZXJzID0gbnVsbDsKCiAgICAkbWFya2VycyA9IGFycmF5KCk7CiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2Fzc2lnbic6CiAgICAgICAgY2FzZSAnYWN0aW9uJzoKICAgICAgICBjYXNlICdyZXR1cm5pZCc6CiAgICAgICAgY2FzZSAnbW9kdWxlJzoKICAgICAgICAgICAgLy8gaWdub3JlIHRoZXNlCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdub2VtYmVkJzoKICAgICAgICAgICAgJG5vZW1iZWQgPSBcY2dlX3V0aWxzOjp0b19ib29sKCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYWRkcmVzcyc6CiAgICAgICAgICAgIC8vIGNvbnZlbmllbmNlCiAgICAgICAgICAgICRtYXJrZXJzW10gPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRrZXksYXJyYXlfa2V5cygkdGFncGFybXMpKSApIHsKICAgICAgICAgICAgICAgICR0YWdwYXJtc1ska2V5XSA9ICR2YWw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggaW5fYXJyYXkoJGtleSxhcnJheV9rZXlzKCRvcHRzKSkgKSB7CiAgICAgICAgICAgICAgICAkb3B0c1ska2V5XSA9ICR2YWw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggc3RhcnRzd2l0aCgka2V5LCdtYXJrZXInKSApIHsKICAgICAgICAgICAgICAgICRtYXJrZXJzW10gPSAkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHZhbGlkIHBhcmFtZXRlciBmb3IgdGhpcyBhY3Rpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gaWYgd2UgaGF2ZSBib3RoIGEgaGVpZ2h0IGFuZCBhIHdpZHRoLCBidXQgbm8gc2l6ZS4uLiB3ZSBwYXNzIHRoYXQgaW4gYXMgYW4gb3B0CiAgICBpZiggJHRhZ3Bhcm1zWyd3aWR0aCddICYmICR0YWdwYXJtc1snaGVpZ2h0J10gJiYgISRvcHRzWydzaXplJ10gKSB7CiAgICAgICAgJG9wdHNbJ3NpemUnXSA9ICJ7JHRhZ3Bhcm1zWyd3aWR0aCddfXh7JHRhZ3Bhcm1zWydoZWlnaHQnXX0iOwogICAgfQogICAgJG1hcCA9IG5ldyBcQ0dTdGF0aWNNYXBzXHNhdmVkX3N0YXRpY19tYXAoJG9wdHMpOwogICAgZm9yZWFjaCggJG1hcmtlcnMgYXMgJG9uZSApIHsKICAgICAgICAkbWFwLT5hZGRfbWFya2VyKCRvbmUpOwogICAgfQogICAgJHRhZ3Bhcm1zWydzcmMnXSA9ICRtYXAtPmdldF91cmwoKTsKICAgIGlmKCAkbWFwLT5nZXRfc2l6ZSgpIDwgMTIwMDAgJiYgISRub2VtYmVkICkgewogICAgICAgICRkYXRhID0gYmFzZTY0X2VuY29kZSgkbWFwLT5nZXRfY29udGVudHMoKSk7CiAgICAgICAgJG1pbWV0eXBlID0gXGNnZV91dGlsczo6Z2V0X21pbWVfdHlwZSgkbWFwLT5nZXRfZmlsZSgpKTsKICAgICAgICBpZiggc3RhcnRzd2l0aCgkbWltZXR5cGUsJ2ltYWdlJykgKSAkdGFncGFybXNbJ3NyYyddID0gJ2RhdGE6Jy4kbWltZXR5cGUuJztiYXNlNjQsJy4kZGF0YTsKICAgIH0KCiAgICBpZiggISR0YWdwYXJtc1snYWx0J10gKSB7CiAgICAgICAgaWYoIGNvdW50KCRtYXJrZXJzKSApIHsKICAgICAgICAgICAgJHRhZ3Bhcm1zWydhbHQnXSA9ICRtYXJrZXJzWzBdOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRhZ3Bhcm1zWydhbHQnXSA9ICRvcHRzWydjZW50ZXInXTsKICAgICAgICB9CiAgICB9CiAgICAkb3V0ID0gJzxpbWcnOwogICAgZm9yZWFjaCggJHRhZ3Bhcm1zIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAkb3V0IC49ICIgJGtleT1cInskdmFsfVwiIjsKICAgIH0KICAgICRvdXQgLj0gJy8+JzsKICAgIGVjaG8gJG91dDsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQcm9ibGVtIGdlbmVyYXRpbmcgYSBtYXAnKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.test.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gbWFwIHdpdGggc2luZ2xlIG1hcmtlcgokbWFwID0gbmV3IFxDR1N0YXRpY01hcHNcbWFwX2dlbmVyYXRvcihhcnJheSgnc2l6ZSc9PicyMDB4MjAwJykpOwokbWFwLT5hZGRfbWFya2VyKCdDaXR5IEhhbGwsIENhbGdhcnkgQUInKTsKJHVybCA9ICRtYXAtPmdldF91cmwoKTsKZGVidWdfZGlzcGxheSgkdXJsKTsKZWNobyAnPGltZyBzcmM9IicuJHVybC4nIi8+PGJyLz4nOwoKLy8gbWFwIHdpdGggbm8gbWFya2VycywgYnV0IGEgY2VudGVyCiRtYXAgPSBuZXcgXENHU3RhdGljTWFwc1xtYXBfZ2VuZXJhdG9yKGFycmF5KCdjZW50ZXInPT4nQ2FsZ2FyeSwgQUInLCdzaXplJz0+JzIwMHgyMDAnKSk7CiR1cmwgPSAkbWFwLT5nZXRfdXJsKCk7CmRlYnVnX2Rpc3BsYXkoJHVybCk7CmVjaG8gJzxpbWcgc3JjPSInLiR1cmwuJyIvPjxici8+JzsKCi8vIG1hcCB3aXRoIG5vIG1hcmtlcnMsIG5vIGNlbnRlciwgYnV0IGEgJ3Zpc2libGUnCiRtYXAgPSBuZXcgXENHU3RhdGljTWFwc1xtYXBfZ2VuZXJhdG9yKGFycmF5KCd2aXNpYmxlJz0+J0Zlcm5pZSwgQkMnLCdzaXplJz0+JzIwMHgyMDAnKSk7CiR1cmwgPSAkbWFwLT5nZXRfdXJsKCk7CmRlYnVnX2Rpc3BsYXkoJHVybCk7CmVjaG8gJzxpbWcgc3JjPSInLiR1cmwuJyIvPjxici8+JzsKCi8vIG1hcCB3aXRoIGEgY2VudGVyIGFuZCBhIHZpc2libGUKJG1hcCA9IG5ldyBcQ0dTdGF0aWNNYXBzXG1hcF9nZW5lcmF0b3IoYXJyYXkoJ3Zpc2libGUnPT4nRmVybmllLCBCQycsJ2NlbnRlcic9PidDYWxnYXJ5LCBBQicsJ3NpemUnPT4nMjAweDIwMCcpKTsKJHVybCA9ICRtYXAtPmdldF91cmwoKTsKZGVidWdfZGlzcGxheSgkdXJsKTsKZWNobyAnPGltZyBzcmM9IicuJHVybC4nIi8+PGJyLz4nOwoKLy8gbWFwIHdpdGggbXVsdGlwbGUgbWFya2VycywgYW5kIG5vIGNlbnRlcgokbWFwID0gbmV3IFxDR1N0YXRpY01hcHNcbWFwX2dlbmVyYXRvcihhcnJheSgnc2l6ZSc9PicyMDB4MjAwJykpOwokbWFwLT5hZGRfbWFya2VyKCdDYWxnYXJ5LCBBQicpOwokbWFwLT5hZGRfbWFya2VyKCdGZXJuaWUsIEJDJyk7CiRtYXAtPmFkZF9tYXJrZXIoJ0NyYW5icm9vaywgQkMnKTsKJHVybCA9ICRtYXAtPmdldF91cmwoKTsKZGVidWdfZGlzcGxheSgkdXJsKTsKZWNobyAnPGltZyBzcmM9IicuJHVybC4nIi8+PGJyLz4nOwoKLy8gbWFwIHdpdGggbXVsdGlwbGUgbWFya2VycyBhbmQgYSBjZW50ZXIKJG1hcCA9IG5ldyBcQ0dTdGF0aWNNYXBzXG1hcF9nZW5lcmF0b3IoYXJyYXkoJ3NpemUnPT4nMjAweDIwMCcsJ2NlbnRlcic9PidTcGFyd29vZCwgQkMnKSk7CiRtYXAtPmFkZF9tYXJrZXIoJ0NhbGdhcnksIEFCJyk7CiRtYXAtPmFkZF9tYXJrZXIoJ0Zlcm5pZSwgQkMnKTsKJG1hcC0+YWRkX21hcmtlcignQ3JhbmJyb29rLCBCQycpOwokdXJsID0gJG1hcC0+Z2V0X3VybCgpOwpkZWJ1Z19kaXNwbGF5KCR1cmwpOwplY2hvICc8aW1nIHNyYz0iJy4kdXJsLiciLz48YnIvPic7CgovLyBtYXAgd2l0aCBtdWx0aXBsZSBtYXJrZXJzLCBhbmQgYSB2aXNpYmxlCiRtYXAgPSBuZXcgXENHU3RhdGljTWFwc1xtYXBfZ2VuZXJhdG9yKGFycmF5KCdzaXplJz0+JzIwMHgyMDAnLCd2aXNpYmxlJz0+J0xldGhicmlkZ2UgQUInKSk7CiRtYXAtPmFkZF9tYXJrZXIoJ0Zlcm5pZSwgQkMnKTsKJG1hcC0+YWRkX21hcmtlcignQ3JhbmJyb29rLCBCQycpOwokdXJsID0gJG1hcC0+Z2V0X3VybCgpOwpkZWJ1Z19kaXNwbGF5KCR1cmwpOwplY2hvICc8aW1nIHNyYz0iJy4kdXJsLiciLz48YnIvPic7CgovLyBzaW1wbGUgbWFwIGFyb3VuZCBwYXJpcywgaW4gZnJlbmNoCiRtYXAgPSBuZXcgXENHU3RhdGljTWFwc1xtYXBfZ2VuZXJhdG9yKGFycmF5KCdzaXplJz0+JzIwMHgyMDAnLCdsYW5ndWFnZSc9PidmcicsJ2NlbnRlcic9PidwYXJpcywgZnInKSk7CiR1cmwgPSAkbWFwLT5nZXRfdXJsKCk7CmRlYnVnX2Rpc3BsYXkoJHVybCk7CmVjaG8gJzxpbWcgc3JjPSInLiR1cmwuJyIvPjxici8+JzsKCi8vIHNpbXBsZSBtYXAgYXJvdW5kIGdoZW50LCBpbiBkdXRjaAokbWFwID0gbmV3IFxDR1N0YXRpY01hcHNcbWFwX2dlbmVyYXRvcihhcnJheSgnc2l6ZSc9PicyMDB4MjAwJywnbGFuZ3VhZ2UnPT4nbmwnLCdjZW50ZXInPT4nYnJ1c3NlbHMsIGJlJykpOwokdXJsID0gJG1hcC0+Z2V0X3VybCgpOwpkZWJ1Z19kaXNwbGF5KCR1cmwpOwplY2hvICc8aW1nIHNyYz0iJy4kdXJsLiciLz48YnIvPic7CgovLyBzaW1wbGUgbWFwLCB3aXRoIG9uZSBzbWFsbCBncmVlbiBtYXJrZXIKCiRtYXAgPSBuZXcgXENHU3RhdGljTWFwc1xtYXBfZ2VuZXJhdG9yKGFycmF5KCdzaXplJz0+JzIwMHgyMDAnKSk7CiRtYXAtPnNldF9tYXJrZXJjb2xvcignIzAwZmYwMCcpOwokbWFwLT5zZXRfbWFya2Vyc2l6ZSgnbWlkJyk7CiRtYXAtPmFkZF9tYXJrZXIoJ1ZhbmNvdXZlciBCQycpOwokdXJsID0gJG1hcC0+Z2V0X3VybCgpOwpkZWJ1Z19kaXNwbGF5KCR1cmwpOwplY2hvICc8aW1nIHNyYz0iJy4kdXJsLiciLz48YnIvPic7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.test2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIG1hcCB3aXRoIG11bHRpcGxlIG1hcmtlcnMgYW5kIGEgY2VudGVyCiRtYXAgPSBuZXcgXENHU3RhdGljTWFwc1xzYXZlZF9zdGF0aWNfbWFwKGFycmF5KCdzaXplJz0+JzIwMHgyMDAnLCdjZW50ZXInPT4nU3Bhcndvb2QsIEJDJykpOwokbWFwLT5hZGRfbWFya2VyKCdDYWxnYXJ5LCBBQicpOwokbWFwLT5hZGRfbWFya2VyKCdGZXJuaWUsIEJDJyk7CiRtYXAtPmFkZF9tYXJrZXIoJ0NyYW5icm9vaywgQkMnKTsKJHVybCA9ICRtYXAtPmdldF91cmwoKTsKZGVidWdfZGlzcGxheSgkdXJsKTsKZWNobyAnPGltZyBzcmM9IicuJHVybC4nIi8+PGJyLz4nOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/CGStaticMaps.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZpbmFsIGNsYXNzIENHU3RhdGljTWFwcyBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaWQnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FkZHJlc3MnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NsYXNzJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhbHQnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3dpZHRoJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoZWlnaHQnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21hcmtlcnNpemUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21hcmtlcmNvbG9yJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaXplJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzY2FsZScsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9ybWF0JyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXB0eXBlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsYW5ndWFnZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVnaW9uJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjZW50ZXInLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3pvb20nLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlbnNvcicsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9lbWJlZCcsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9tYXJrZXIuKi8nLENMRUFOX1NUUklORyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzEuMTIuMSc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMC4zJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gVFJVRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgeyByZXR1cm4gRkFMU0U7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjYyLjQnLCdDR1NpbXBsZVNtYXJ0eSc9PicxLjknKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgoJPGxpPnZlcnNpb24gMS4wLjAgLSBJbml0aWFsIFJlbGVhc2U8L2xpPgoJPGxpPnZlcnNpb24gMS4wLjEgLSBNaW5vciBidWcgZml4Cgk8dWw+Cgk8bGk+UmVnaXN0ZXIgdGhlIGFkZHJlc3MgcGFyYW1ldGVyLCBzbyB0aGUgZGF0YSBpbiB0aGUgaGVscCB3b3Jrcy48L2xpPgoJPC91bD4KCTwvbGk+Cgk8bGk+dmVyc2lvbiAxLjAuMgoJPHVsPgoJPGxpPk5vIGxvbmdlciB1c2UgdG1wL2NhY2hlIGZvciBmaWxlIHN0b3JhZ2UuPC9saT4KCTwvdWw+Cgk8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIGFuZCBlYXN5IHdheSB0byBjcmVhdGUgc3RhdGljIGdvb2dsZSBtYXBzIGZvciBDTVNNUyB3ZWIgcGFnZXMuPC9wPgo8aDM+RmVhdHVyZXM8L2gzPgo8dWw+CiAgPGxpPkNvbnZlbmllbnRseSBnZW5lcmF0ZSBzdGF0aWMgZ29vZ2xlIG1hcHMgd2l0aCBhIHNtYXJ0eSBwbHVnaW4uPC9saT4KICA8bGk+Q2FjaGUgdGhlIGdlbmVyYXRlZCBtYXAgaW1hZ2VzIG9uIHRoZSBzZXJ2ZXIuPC9saT4KICA8bGk+QXV0b21hdGljYWxseSBlbWJlZCBzbWFsbGVyIG1hcHMgdG8gcmVkdWUgaHRtbCByZXF1ZXN0cy48L2xpPgogIDxsaT5TdXBwb3J0cyAzIGRpZmZlcmVudCBtYXJrZXIgaWNvbiBzaXplcy48L2xpPgogIDxsaT5BdXRvbWF0aWNhbGx5IGRldGVjdHMgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuPC9saT4KICA8bGk+U3VwcG9ydHMgbXVsdGlwbGUgbWFya2VycyBwZXIgbWFwLjwvbGk+CiAgPGxpPlN1cHBvcnRzIHNwZWNpZnlpbmcgYSBjZW50ZXIgbG9jYXRpb24sIG9yIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5pbmcgb25lLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGxvY2F0aW9uIG5hbWVzIG9yIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuPC9saT4KPC91bD4KPGgzPkZBUTwvaDM+Cjx1bD4KICA8bGk+V2h5IGNhY2hlIHRoZSBtYXAgaW1hZ2VzPwogICAgPHA+VGhlcmUgYXJlIHR3byByZWFzb25zIHdoeSB0aGUgZ2VuZXJhdGVkIG1hcCBpbWFnZXMgYXJlIGNhY2hlZC4gIGE6IHBlcmZvcm1hbmNlIChpdCBpcyBmYXN0ZXIgdG8gbG9hZCBhIHN0YXRpYyBpbWFnZSB0aGFuIGFueSBkeW5hbWljIG9uZS4uLiBldmVuIGlmIGl0IGNvbWVzIGZyb20gZ29vZ2xlKS4gIGI6IFRoZSBnb29nbGUgc3RhdGljIG1hcHMgQVBJIGhhcyBhIHF1b3RhLiBDYWNoaW5nIHRoZSBpbWFnZXMgbWVhbnMgdGhhdCByZXBlYXRlZCB2aXNpdG9ycyB3aWxsIG5vdCBlZmZlY3QgdGhlIHF1b3RlLjwvcD4KICA8L2xpPgogIDxsaT5Ib3cgbG9uZyBpcyB0aGUgaW1hZ2UgY2FjaGVkLgogICAgPHA+SW1hZ2VzIGFyZSBjYWNoZWQgZm9yIDMwIGRheXMsIG9yIHVudGlsIGRlbGV0ZWQgZnJvbSB0aGUgQ01TTVMgY2FjaGUgZGlyZWN0b3J5LjwvcD4KICA8L2xpPgogIDxsaT5XaGF0IGlzIHRoZSBkZWZhdWx0IHNpemU/CiAgICA8cD5UaGUgZGVmYXVsdCBzaXplIG9mIHRoZSBtYXAgaXMgNDAweDQwMC48L3A+CiAgPC9saT4KICA8bGk+V2hhdCBpcyB0aGUgZGVmYXVsdCBmb3JtYXQ/CiAgICA8cD5UaGUgZGVmYXVsdCBmb3JtYXQgaXMgUE5HLjwvcD4KICA8L2xpPgogIDxsaT5UaGVyZSBjYW4gb25seSBiZSBhIG1heGltdW0gb2YgMjYgbWFya2VycyBvbiBlYWNoIG1hcC48L2xpPgogIDxsaT5Qb2x5bGluZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLjwvbGk+CiAgPGxpPlRoaXMgbW9kdWxlIGRvZXMgbm90IGdlbmVyYXRlIHByZXR0eSBVUkxTIGZvciBTRU8gcHVycG9zZXMuPC9saT4KICA8bGk+VGhpcyBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhbiBhZG1pbiBpbnRlcmZhY2UuPC9saT4KPC91bD4KPGgzPlBhcmFtZXRlcnM8L2gzPgo8dWw+CiAgPGxpPk1hcCBQYXJhbWV0ZXJzCiAgICA8dWw+CiAgICA8bGk+YWRkcmVzcyA8ZW0+KG9wdGlvbmFsLCBzdHJpbmcpPC9lbT4KICAgICAgICA8cD5TcGVjaWZ5IGEgc2luZ2xlIG1hcmtlciBieSBpdCdzIGFkZHJlc3MgKG9yIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUpLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBlcmFzZSBhbnkgcHJldmlvdXNseSBzZXQgbWFya2Vycy48L3A+Cgk8cD5FeGFtcGxlOiAgPGNvZGU+e0NHU3RhdGljTWFwcyBhZGRyZXNzPSdQYXJpcyBGUid9PC9jb2RlPgogICAgPC9saT4KICAgIDxsaT5tYXJrZXIwLi4yNSA8ZW0+KG9wdGlvbmFsLCBzdHJpbmcpPC9lbT4KICAgICAgICA8cD5BZGQgdXAgdG8gMjYgZGlmZmVyZW50IG1hcmtlcnMuPC9wPgoJPHA+RXhhbXBsZTogIDxjb2RlPntDR1N0YXRpY01hcHMgbWFya2VyMD0nUGFyaXMgRlInIG1hcmtlcjE9J0Ftc3RlcmRhbSBOTCd9PC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+bWFwdHlwZSA8ZW0+KHJvYWRtYXB8c2F0ZWxsaXRlfGh5YnJpZHx0ZXJyYWluKTwvZW0+CiAgICAgICAgPHA+U2V0IHRoZSBtYXAgdHlwZS4gIFRoZSBkZWZhdWx0IGlzICZxdW90O3JvYWRtYXAmcXVvdDs8L3A+Cgk8cD5FeGFtcGxlOiB7Q0dTdGF0aWNNYXBzIGFkZHJlc3M9J1BhcmlzIEZSJyBtYXB0eXBlPXNhdGVsbGl0ZX08L3A+CiAgICA8L2xpPgogICAgPGxpPmNlbnRlciA8ZW0+KG9wdGlvbmFsLCBzdHJpbmcpPC9lbT4KICAgICAgIDxwPlNldCB0aGUgY2VudGVyIGxvY2F0aW9uIGZvciB0aGUgbWFwLiAgQWNjZXB0cyBhIGxvY2F0aW9uIG9yIGEgbGF0aXR1ZGUgYW5kIGxvZ2l0dWRlLjwvcD4KICAgICAgIDxwPkV4YW1wbGU6IHtDR1N0YXRpY01hcHMgY2VudGVyPSdQYXJpcyBGUid9PC9wPgogICAgPC9saT4KICAgIDxsaT56b29tIDxlbT4ob3B0aW9uYWwgaW50IGJldHdlZW4gMCBhbmQgMjEpCiAgICAgICA8cD5TZXQgdGhlIHpvb20gbGV2ZWwuICBJZiBub3Qgc3BlY2lmaWVkIHRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZSBhIHpvb20gbGV2ZWwgdGhhdCBlbmNvbXBhc3NlcyBhbGwgbWFya2Vycy48L3A+CiAgICAgICA8cD5FeGFtcGxlOiB7Q0dTdGF0aWNNYXBzIGNlbnRlcj0nUGFyaXMgRlInIHpvb209MTJ9PC9wPgogICAgPC9saT4KICAgIDxsaT5tYXJrZXJzaXplIDxlbT4oc21hbGx8bWlkfHRpbnkpPC9lbT4KICAgICAgIDxwPkFsbG93cyBjaGFuZ2luZyB0aGUgc2l6ZSBvZiBtYXAgbWFya2Vycy4gIFNvbWUgbWFwIG1hcmtlciBzaXplcyBtYXkgbm90IHN1cHBvcnQgbGFiZWxzLjwvcD4KICAgICAgIDxwPkV4YW1wbGU6IHtDR1N0YXRpY01hcHMgY2VudGVyPSdQYXJpcyBGUicgem9vbT0xMiBtYXJrZXJzaXplPXRpbnl9PC9wPgogICAgPC9saT4KICAgIDxsaT5tYXJrZXJjb2xvciA8ZW0+KG9wdGlvbmFsLCBjb2xvciBzdHJpbmcpPC9lbT4KICAgICAgIDxwPkFsbG93cyBjaGFuZ2luZyB0aGUgY29sb3Igb2YgYWxsIG1hcmtlcnMgZm9yIHRoZSBtYXAuPC9wPgogICAgICAgPHA+RXhhbXBsZToge0NHU3RhdGljTWFwcyBjZW50ZXI9J1BhcmlzIEZSJyB6b29tPTEyIG1hcmtlcmNvbG9yPScjZWZlZmVmJ308L3A+CiAgICA8L2xpPgogICAgPGxpPnNpemUgPGVtPihzdHJpbmcpCiAgICAgICA8cD5TcGVjaWZ5IHRoZSBtYXAgc2l6ZS4gIE5vdGUsIHRoaXMgY2FuIGFsc28gYmUgZG9uZSB3aXRoIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMuPC9wPgogICAgICAgPHA+RXhhbXBsZToge0NHU3RhdGljTWFwcyBjZW50ZXI9J1BhcmlzIEZSJyB6b29tPTEyIG1hcmtlcmNvbG9yPScjZWZlZmVmJyBzaXplPScyNTB4MjUwJ308L3A+CiAgICA8L2xpPgogICAgPGxpPmZvcm1hdCA8ZW0+KFBOR3xKUEd8R0lGKTwvZW0+CiAgICAgICA8cD5TcGVjaWZ5IHRoZSBpbWFnZSBmb3JtYXQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBQTkcuPC9wPgogICAgPC9saT4KICAgIDxsaT5sYW5ndWFnZSA8ZW0+KHN0cmluZyk8L2VtPgogICAgICAgPHA+U3BlY2lmeSB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBpbWFnZSBsYWJlbHMuICBieSBkZWZhdWx0IHRoZSBjdXJyZW50IGNtc21zIGxhbmd1YWdlIGlzIHVzZWQuPC9wPgogICAgICAgPHA+RXhhbXBsZToge0NHU3RhdGljTWFwcyBjZW50ZXI9J1JvbWUgSXRhbHknIGxhbmd1YWdlPWZyfTwvcD4KICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CgogIDxsaT5JbWcgVGFnIFBhcmFtZXRlcnMKICAgIDx1bD4KICAgIDxsaT5pZCA8ZW0+KG9wdGlvbmFsIHN0cmluZyk8L2VtPiAtIFRoZSBpZCBhdHRyaWJ1dGUgZm9yIHRoZSBpbWcgdGFnLjwvbGk+CiAgICA8bGk+Y2xhc3MgPGVtPihvcHRpb25hbCBzdHJpbmcpPC9lbT4gLSBUaGUgY2xhc3MgYXR0cmlidXRlIGZvciB0aGUgaW1nIHRhZy48L2xpPgogICAgPGxpPmFsdCA8ZW0+KG9wdGlvbmFsIHN0cmluZyk8L2VtPiAtIFRoZSBhbHQgYXR0cmlidXRlIGZvciB0aGUgaW1nIHRhZy4gIElmIG5vdCBzcGVjaWZpZWQgb25lIHdpbGwgYmUgZ2VucmF0ZWQgYnkgZGVmYXVsdCBzbyB0aGF0IHRoZSBpbWcgdGFnIHZhbGlkYXRlcy48L2xpPgogICAgPGxpPndpZHRoIDxlbT4ob3B0aW9uYWwgaW50KTwvZW0+IC0gVGhlIHdpZHRoIGZvciB0aGUgaW1hZ2UgdGFnLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgc2l6ZSBmb3IgdGhlIGdlbmVyYXRlZCBpbWFnZSBhcyB3ZWxsLjwvbGk+CiAgICA8bGk+aGVpZ2h0IDxlbT4ob3B0aW9uYWwgaW50KTwvZW0+IC0gVGhlIGhlaWdodCBmb3IgdGhlIGltYWdlIHRhZy4gIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHNpemUgZm9yIHRoZSBnZW5lcmF0ZWQgaW1hZ2UgYXMgd2VsbC48L2xpPgogICAgPGxpPm5vZW1iZWQgPGVtPihvcHRpb25hbCBib29sKTwvZW0+IC0gRG8gbm90IGVtYmVkIGltYWdlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgzPkNvbmZpZyBWYXJpYWJsZXM8L2gzPgo8cD5UaGlzIG1vZHVsZSB3aWxsIHVzZSB0aGUgdmFsdWUgb2YgdGhlIGNnc21fbm9lbWJlZCB2YXJpYWJsZSBpbiB0aGUgY29uZmlnLnBocCBmaWxlIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG5vZW1iZWQgYXJndW1lbnQuPC9wPgo8cD50aGlzIG1vZHVsZSB3aWxsIHVzZSB0aGUgdmFsdWUgb2YgdGhlIGNnc21fYXBpa2V5IHZhcmlhYmxlIGluIHRoZSBjb25maWcucGhwIGZpbGUgdG8gYWxsb3cgc3BlY2lmeWluZyBhIGdvb2dsZSBtYXBzIEFQSSBrZXkuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.better_url.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR1N0YXRpY01hcHM7CgpjbGFzcyBiZXR0ZXJfdXJsIGV4dGVuZHMgXGNtc191cmwKewogICAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKQogICAgewogICAgICAgICR1cmwgPSBudWxsOwogICAgICAgICRzY2hlbWUgPSAkdGhpcy0+Z2V0X3NjaGVtZSgpOwogICAgICAgICR1c2VyID0gJHRoaXMtPmdldF91c2VyKCk7CiAgICAgICAgJHBhc3MgPSAkdGhpcy0+Z2V0X3Bhc3MoKTsKICAgICAgICAkaG9zdCA9ICR0aGlzLT5nZXRfaG9zdCgpOwogICAgICAgICRwb3J0ID0gJHRoaXMtPmdldF9wb3J0KCk7CiAgICAgICAgJHBhdGggPSAkdGhpcy0+Z2V0X3BhdGgoKTsKICAgICAgICAkcXVlcnkgPSAkdGhpcy0+Z2V0X3F1ZXJ5KCk7CiAgICAgICAgJGZyYWdtZW50ID0gJHRoaXMtPmdldF9mcmFnbWVudCgpOwogICAgICAgIGlmKCAkc2NoZW1lICkgJHVybCAuPSAkc2NoZW1lLic6Ly8nOwogICAgICAgIGlmKCAkdXNlciApIHsKICAgICAgICAgICAgJHVybCAuPSAkdXNlcjsKICAgICAgICAgICAgaWYoICRwYXNzICkgJHVybCAuPSAnOicgLiAkcGFzczsKICAgICAgICAgICAgJHVybCAuPSAnQCc7CiAgICAgICAgfQogICAgICAgICR1cmwgLj0gJGhvc3Q7CiAgICAgICAgaWYoICRwb3J0ICYmICRwb3J0ICE9ICcwJyApICR1cmwgLj0gJzonLiRwb3J0OwogICAgICAgIGlmKCAkcGF0aCApICR1cmwgLj0gJHBhdGg7CiAgICAgICAgaWYoICRxdWVyeSApICR1cmwgLj0gJz8nLnVybGVuY29kZSgkcXVlcnkpOwogICAgICAgIGlmKCAkZnJhZ21lbnQgKSAkdXJsIC49ICcjJy4kZnJhZ21lbnQ7CiAgICAgICAgcmV0dXJuICR1cmw7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cached_static_map.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR1N0YXRpY01hcHM7CgpjbGFzcyBjYWNoZWRfc3RhdGljX21hcCBleHRlbmRzIG1hcF9nZW5lcmF0b3IKewogICAgcHJpdmF0ZSAkX2RhdGEgPSBhcnJheSgnbGlmZXRpbWUnKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VybCgpCiAgICB7CiAgICAgICAgLy8gY2FsbCBwYXJlbnQgY2xhc3MgbWV0aG9kLi4uIG1ha2Ugc3VyZSB3ZSBnZXQgYSB1cmwKICAgICAgICAvLyBpZiB3ZSBkbywgIGZldGNoIGl0Li4uIHVzaW5nIGNnZV9jYWNoZWRfcmVtb3RlCiAgICAgICAgLy8KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2xpZmV0aW1lKCRob3VycykKICAgIHsKCiAgICB9Cgp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.map_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR1N0YXRpY01hcHM7CgpjbGFzcyBtYXBfZ2VuZXJhdG9yCnsKICAgIGNvbnN0IFNUQVRJQ19VUkwgPSAiaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcCI7CiAgICBjb25zdCBGTVRfUE5HID0gJ1BORyc7CiAgICBjb25zdCBGTVRfSlBHID0gJ0pQRyc7CiAgICBjb25zdCBGTVRfR0lGID0gJ0dJRic7CiAgICBjb25zdCBUWVBFX1JPQURNQVAgPSAncm9hZG1hcCc7CiAgICBjb25zdCBUWVBFX1NBVEVMTElURSA9ICdzYXRlbGxpdGUnOwogICAgY29uc3QgVFlQRV9IWUJSSUQgPSAnaHlicmlkJzsKICAgIGNvbnN0IFRZUEVfVEVSUkFJTiA9ICd0ZXJyYWluJzsKCiAgICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCdjbGllbnQnPT5udWxsLCdzaWduYXR1cmUnPT5udWxsLCdzaXplJz0+JzQwMHg0MDAnLCdzY2FsZSc9Pm51bGwsJ2Zvcm1hdCc9PidQTkcnLCdtYXB0eXBlJz0+J3JvYWRtYXAnLCdsYW5ndWFnZSc9Pm51bGwsJ3JlZ2lvbic9Pm51bGwsJ2NlbnRlcic9Pm51bGwsJ3pvb20nPT5udWxsLCdzZW5zb3InPT5mYWxzZSk7CiAgICBwcml2YXRlICRfbWFya2VyczsKICAgIHByaXZhdGUgJF9tYXJrZXJzdHlsZXM7CiAgICBwcml2YXRlICRfdmlzaWJsZTsKICAgIHByaXZhdGUgJF9tYXJrZXJzaXplOwogICAgcHJpdmF0ZSAkX21hcmtlcmNvbG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkb3B0cyA9IG51bGwpCiAgICB7CiAgICAgICAgLy8gdG9kbzogc2V0IGRlZmF1bHQgbGFuZ3VhZ2UuCiAgICAgICAgaWYoICFpc19hcnJheSgkb3B0cykgfHwgIWNvdW50KCRvcHRzKSApIHJldHVybjsKICAgICAgICBmb3JlYWNoKCAkb3B0cyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIGlmKCAhJHZhbCApIGNvbnRpbnVlOwogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2NsaWVudCc6CiAgICAgICAgICAgIGNhc2UgJ3NpZ25hdHVyZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdzaXplJzoKICAgICAgICAgICAgICAgIGlmKCBpc19zdHJpbmcoJHZhbCkgKSB7CiAgICAgICAgICAgICAgICAgICAgbGlzdCgkdywkaCkgPSBleHBsb2RlKCd4JywkdmFsKTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2V0X3NpemUoJHcsJGgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJHZhbCkgJiYgY291bnQoJHZhbCkgPT0gMiApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2V0X3NpemUoJHZhbFswXSwkdmFsWzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiJHZhbCBpcyBhIGludmFsaWQgdmFsdWUgZm9yIHNpemUgaW4gIi5fX0NMQVNTX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdtYXJrZXJzaXplJzoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfbWFya2Vyc2l6ZSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbWFya2VyY29sb3InOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9tYXJrZXJjb2xvcigkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnc2NhbGUnOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9zY2FsZSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnZm9ybWF0JzoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfZm9ybWF0KCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdtYXB0eXBlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfbWFwdHlwZSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbGFuZ3VhZ2UnOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9sYW5ndWFnZSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAncmVnaW9uJzoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfcmVnaW9uKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdjZW50ZXInOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9jZW50ZXIoJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3pvb20nOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF96b29tKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICd2aXNpYmxlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfdmlzaWJsZSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAna2V5JzoKICAgICAgICAgICAgICAgIC8vIGFwaSBrZXkKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfYXBpa2V5KCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdzZW5zb3InOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9zZW5zb3IoJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3N0eWxlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5hZGRfc3R5bGUoJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3N0eWxlcyc6CiAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpIHx8ICFjb3VudCgkdmFsKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiJHZhbCBpcyBhbiBpbnZhbGlkIHZhbHVlIGZvciBzdHlsZXMgb3B0aW9uIGluICIuX19DTEFTU19fKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWRkX3N0eWxlKCRvbmUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdtYXJrZXInOgogICAgICAgICAgICAgICAgLy8gb25lIG1hcmtlcgogICAgICAgICAgICAgICAgJHRoaXMtPmFkZF9tYXJrZXIoJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ21hcmtlcnMnOgogICAgICAgICAgICAgICAgLy8gYXJyYXkgb2YgbWFya2VycwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdmFsKSB8fCAhY291bnQoJHZhbCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiR2YWwgaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgbWFya2VycyBvcHRpb24gaW4gIi5fX0NMQVNTX18pOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJHZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5hZGRfbWFya2VyKCRvbmUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9jbGllbnQoJGNsaWVudCkKICAgIHsKICAgICAgICAkY2xpZW50ID0gdHJpbSgkY2xpZW50KTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2NsaWVudCddID0gJGNsaWVudDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NpZ25hdHVyZSgkc2lnKQogICAgewogICAgICAgICRzaWcgPSB0cmltKCRzaWcpOwogICAgICAgICR0aGlzLT5fZGF0YVsnc2lnbmF0dXJlJ10gPSAkc2lnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc2l6ZSgkdywkaCkKICAgIHsKICAgICAgICAkdyA9IChpbnQpICR3OwogICAgICAgICRoID0gKGludCkgJGg7CiAgICAgICAgaWYoICR3IDwgMTAgfHwgJGggPCAxMCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiSW52YWxpZCB2YWx1ZXMgcGFzc2VkIHRvICIuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydzaXplJ10gPSAieyR3fXh7JGh9IjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NjYWxlKCRzY2FsZSA9IDEpCiAgICB7CiAgICAgICAgJHNjYWxlID0gKGludCkgJHNjYWxlOwogICAgICAgIGlmKCAhaW5fYXJyYXkoJHNjYWxlLGFycmF5KDEsMiw0KSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIkludmFsaWQgdmFsdWUgZm9yIHNjYWxlIChwb3NzaWJsZSB2YWx1ZXMgYXJlIDEsMiw0KSIpOwogICAgICAgICR0aGlzLT5fZGF0YVsnc2NhbGUnXSA9ICRzY2FsZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Zvcm1hdCgkZm10KQogICAgewogICAgICAgIHN3aXRjaCggJGZtdCApIHsKICAgICAgICBjYXNlIHNlbGY6OkZNVF9QTkc6CiAgICAgICAgY2FzZSBzZWxmOjpGTVRfR0lGOgogICAgICAgIGNhc2Ugc2VsZjo6Rk1UX0pQRzoKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWydmb3JtYXQnXSA9ICRmbXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiJGZtdCBpcyBhbiBpbnZhbGlkIGZvcm1hdCBmb3IgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21hcHR5cGUoJHR5cGUpCiAgICB7CiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICBjYXNlIHNlbGY6OlRZUEVfUk9BRE1BUDoKICAgICAgICBjYXNlIHNlbGY6OlRZUEVfU0FURUxMSVRFOgogICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9IWUJSSUQ6CiAgICAgICAgY2FzZSBzZWxmOjpUWVBFX1RFUlJBSU46CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVsnbWFwdHlwZSddID0gJHR5cGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93ICBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiR0eXBlIGlzIGFuIGludmFsaWQgbWFwIHR5cGUgZm9yICIuX19DTEFTU19fKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9sYW5ndWFnZSgkbGFuZykKICAgIHsKICAgICAgICAkbGFuZyA9IChzdHJpbmcpICRsYW5nOwogICAgICAgIGlmKCBzdHJsZW4oJGxhbmcpICE9IDIgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiRsYW5nIGlzIGFuIGludmFsaWQgbGFuZ3VhZ2UgZm9yICIuX19DTEFTU19fKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2xhbmd1YWdlJ10gPSAkbGFuZzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3JlZ2lvbigkcmduKQogICAgewogICAgICAgICRyZ24gPSAoc3RyaW5nKSAkcmduOwogICAgICAgIGlmKCBzdHJsZW4oJHJnbikgIT0gMiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiJHJnbiBpcyBhbiBpbnZhbGlkIHJlZ2lvbiBzdHJpbmciKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3JlZ2lvbiddID0gJHJnbjsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdG9fbG9jYXRpb24oJGxvYykKICAgIHsKICAgICAgICAvLyBjb3VsZCBiZSBhIHBsYWNlIG5hbWUsIG9yIGEgbGF0L2xvbmcgYXJyYXkgcGFpci4KICAgICAgICBpZiggaXNfc3RyaW5nKCRsb2MpICkgewogICAgICAgICAgICBpZiggc3RybGVuKCRsb2MpIDw9IDQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiRsb2MgaXMgbm90IGEgdmFsaWQgbG9jYXRpb24gc3RyaW5nIik7CiAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCcsJywkbG9jKTsKICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApID09PSAyICkgewogICAgICAgICAgICAgICAgaWYoIGlzX2Zsb2F0KCR0bXBbMF0pICYmICFpc19mbG9hdCgkdG1wWzFdKSApIHsKICAgICAgICAgICAgICAgICAgICAkbG9jID0gJHRtcDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRsb2M7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGxvYzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICFpc19hcnJheSgkbG9jKSB8fCBjb3VudCgkbG9jKSAhPSAyICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCIkbG9jIGlzIG5vdCBhIHZhbGlkIGxvY2F0aW9uIik7CiAgICAgICAgaWYoICFpc19mbG9hdCgkbG9jWzBdKSB8fCAhaXNfZmxvYXQoJGxvY1sxXSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiRsb2MgaXMgbm90IGEgdmFsaWQgbG9jYXRpb24iKTsKICAgICAgICBpZiggJGxvY1swXSA8IC0xODAgfHwgJGxvY1swXSA+IDE4MCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiJGxvYyBpcyBub3QgYSB2YWxpZCBsb2NhdGlvbiIpOwogICAgICAgIGlmKCAkbG9jWzFdIDwgLTE4MCB8fCAkbG9jWzFdID4gMTgwICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCIkbG9jIGlzIG5vdCBhIHZhbGlkIGxvY2F0aW9uIik7CiAgICAgICAgcmV0dXJuICRsb2NhdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2NlbnRlcigkbG9jYXRpb24pCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWydjZW50ZXInXSA9ICR0aGlzLT50b19sb2NhdGlvbigkbG9jYXRpb24pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2VudGVyKCkKICAgIHsKICAgICAgICAvLyBpZiBjZW50ZXIgaXMgc2V0LCB1c2UgaXQuLi4gaWYgbWFya2VycyBhcmUgc2V0LCBjYWxjdWxhdGUgYSBjZW50ZXIKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3pvb20oJHpvb20pCiAgICB7CiAgICAgICAgJHpvb20gPSAoaW50KSAkem9vbTsKICAgICAgICBpZiggJHpvb20gPCAwIHx8ICR6b29tID4gMjEgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiR6b29tIGlzIGFuIGludmFsaWQgem9vbSB2YWx1ZSIpOwogICAgICAgICR0aGlzLT5fZGF0YVsnem9vbSddID0gJHpvb207CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXJrZXJzaXplKCRzdHIpCiAgICB7CiAgICAgICAgaWYoICEkc3RyICkgcmV0dXJuOwogICAgICAgIHN3aXRjaCggc3RydG9sb3dlcigkc3RyKSApIHsKICAgICAgICBjYXNlICd0aW55JzoKICAgICAgICBjYXNlICd0JzoKICAgICAgICAgICAgJHRoaXMtPl9tYXJrZXJzaXplID0gJ3RpbnknOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdtaWQnOgogICAgICAgIGNhc2UgJ20nOgogICAgICAgICAgICAkdGhpcy0+X21hcmtlcnNpemUgPSAnbWlkJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnc21hbGwnOgogICAgICAgIGNhc2UgJ3MnOgogICAgICAgICAgICAkdGhpcy0+X21hcmtlcnNpemUgPSAnc21hbGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIiRzdHIgaXMgYW4gaW52YWxpZCBtYXJrZXIgc2l6ZSB2YWx1ZSIpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21hcmtlcmNvbG9yKCRzdHIpCiAgICB7CiAgICAgICAgaWYoICEkc3RyICkgcmV0dXJuOwogICAgICAgICRzdHIgPSBzdHJ0b2xvd2VyKCRzdHIpOwogICAgICAgIGlmKCBzdGFydHN3aXRoKCRzdHIsJyMnKSAmJiBzdHJsZW4oJHN0cikgPT0gNyApIHsKICAgICAgICAgICAgJHN0ciA9ICcweCcuc3Vic3RyKCRzdHIsMSk7CiAgICAgICAgfQogICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkc3RyLCcweCcpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCJJbnZhbGlkIHZhbHVlIGZvciBtYXJrZXIgY29sb3IuICBtdXN0IGJlIGEgaGV4IHZhbHVlIGkuZSAweEZGOTlDQyBvciBhIDcgY2hhcmFjdGVyIGNzcyBjb2xvciwgaS5lOiAnI2ZmOTljYyIpOwogICAgICAgICR0aGlzLT5fbWFya2VyY29sb3IgPSAkc3RyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc2Vuc29yKCRzZW5zb3IgPSB0cnVlKQogICAgewogICAgICAgICRzZW5zb3IgPSAoYm9vbCkgJHNlbnNvcjsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3NlbnNvciddID0gJHNlbnNvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FwaWtleShzdHJpbmcgJGtleSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYoICFpc19udWxsKCRrZXkpICkgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydrZXknXSA9ICRrZXk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF92aXNpYmxlKCRsb2NhdGlvbikKICAgIHsKICAgICAgICAkdGhpcy0+X3Zpc2libGUgPSAkdGhpcy0+dG9fbG9jYXRpb24oJGxvY2F0aW9uKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX21hcmtlcigkbG9jYXRpb24pCiAgICB7CiAgICAgICAgLy8gYWxsb3cgb25seSAyNiBtYXJrZXJzLgogICAgICAgICRsb2NhdGlvbiA9ICR0aGlzLT50b19sb2NhdGlvbigkbG9jYXRpb24pOwogICAgICAgIGlmKCAhZW1wdHkoJHRoaXMtPl9tYXJrZXJzKSAmJiBjb3VudCgkdGhpcy0+X21hcmtlcnMpID49IDI2ICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCJBIHN0YXRpYyBtYXAgY2FuIGhhdmUgb25seSAzMCBtYXJrZXJzIChtYXgpIik7CiAgICAgICAgJHRoaXMtPl9tYXJrZXJzW10gPSAkbG9jYXRpb247CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZpbmRfY2VudGVyKCkKICAgIHsKICAgICAgICBpZiggIWNvdW50KCR0aGlzLT5fbWFya2VycykgKSB7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X3Zpc2libGUgKSByZXR1cm4gJHRoaXMtPl92aXNpYmxlOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJHRoaXMtPl9tYXJrZXJzKSA9PSAxICkgcmV0dXJuOyAvLyBoYXZlIGV4YWN0bHkgb25lIG1hcmtlci4uLiBubyBuZWVkIGZvciBjZW50ZXIuCgogICAgICAgICRtaW5fbGF0ID0gJG1pbl9sb25nID0gOTk5OwogICAgICAgICRtYXhfbGF0ID0gJG1heF9sb25nID0gLTk5OTsKICAgICAgICAkaGF2ZV9sbCA9IGZhbHNlOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5fbWFya2VycyBhcyAkbWFya2VyICkgewogICAgICAgICAgICBpZiggaXNfYXJyYXkoJG1hcmtlcikgJiYgY291bnQoJG1hcmtlcikgPT0gMiApIHsKICAgICAgICAgICAgICAgICRoYXZlX2xsID0gdHJ1ZTsKICAgICAgICAgICAgICAgICRtaW5fbGF0ID0gbWluKCRtaW5fbGF0LCRtYXJrZXJbMF0pOwogICAgICAgICAgICAgICAgJG1pbl9sb25nID0gbWluKCRtaW5fbGF0LCRtYXJrZXJbMV0pOwogICAgICAgICAgICAgICAgJG1heF9sYXQgPSBtYXgoJG1heF9sYXQsJG1hcmtlclswXSk7CiAgICAgICAgICAgICAgICAkbWF4X2xvbmcgPSBtYXgoJG1pbl9sYXQsJG1hcmtlclsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoICEkaGF2ZV9sbCApIHJldHVybjsKCiAgICAgICAgJGNlbnRlcl9sYXQgPSAkbWluX2xhdCArICgkbWF4X2xhdCAtICRtaW5fbGF0KSAvIDIuMDsKICAgICAgICAkY2VudGVyX2xvbmcgPSAkbWluX2xvbmcgKyAoJG1heF9sb25nIC0gJG1pbl9sb25nKSAvIDIuMDsKICAgICAgICByZXR1cm4gYXJyYXkoJGNlbnRlcl9sYXQsJGNlbnRlcl9sb25nKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZW5jb2RlX2xvY2F0aW9uKCRsb2MpCiAgICB7CiAgICAgICAgaWYoIGlzX3N0cmluZygkbG9jKSApIHJldHVybiAkbG9jOwogICAgICAgIGlmKCBpc19hcnJheSgkbG9jKSAmJiBjb3VudCgkbG9jKSA9PSAyICkgcmV0dXJuIGltcGxvZGUoJywnLCRsb2MpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVfbWFya2VyKCRtYXJrZXIsJGlkeCkgewogICAgICAgIC8vIHRvZG86IGFsbG93IGZvciBtYXJrZXIgc2l6ZSBhbmQgY29sb3IuCiAgICAgICAgJGlkeCA9ICRpZHggJSAyNjsgLy8gb25seSAyNiBsYWJlbHMuCiAgICAgICAgJGxhYmVsID0gY2hyKG9yZCgnQScpKyRpZHgpOwogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGlmKCAkdGhpcy0+X21hcmtlcnNpemUgKSAkb3V0IC49ICdzaXplOicuJHRoaXMtPl9tYXJrZXJzaXplLid8JzsKICAgICAgICBpZiggJHRoaXMtPl9tYXJrZXJjb2xvciApICRvdXQgLj0gJ2NvbG9yOicuJHRoaXMtPl9tYXJrZXJjb2xvci4nfCc7CiAgICAgICAgaWYoICR0aGlzLT5fbWFya2Vyc2l6ZSA9PSAnJyB8fCAkdGhpcy0+X21hcmtlcnNpemUgIT0gJ3RpbnknICkgJG91dCAuPSAibGFiZWw6JGxhYmVsfCI7CiAgICAgICAgJG91dCAuPSAkdGhpcy0+ZW5jb2RlX2xvY2F0aW9uKCRtYXJrZXIpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXJsKCkKICAgIHsKICAgICAgICAvLyBtYWtlIHN1cmUgd2UgYWh2ZSBhdCBsZWFzdCBvbmUgbWFya2VyIE9SIGEgY2VudGVyCiAgICAgICAgaWYoIGNvdW50KCR0aGlzLT5fbWFya2VycykgPT0gMCApIHsKICAgICAgICAgICAgaWYoICR0aGlzLT5fZGF0YVsnY2VudGVyJ10gPT0gbnVsbCAmJiAkdGhpcy0+X3Zpc2libGUgPT0gbnVsbCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiUGxlYXNlIHNwZWNpZnkgYSBjZW50ZXIgbG9jYXRpb24sIGEgdmlzaWJsZSBsb2NhdGlvbiBPUiBhdCBsZWFzdCBvbmUgbWFya2VyLiIpOwogICAgICAgIH0KCiAgICAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2RhdGEgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBpZiggIXN0cmxlbigkdmFsKSApIGNvbnRpbnVlOwogICAgICAgICAgICAkcGFybXNbJGtleV0gPSAkdmFsOwogICAgICAgIH0KCiAgICAgICAgLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIGNlbnRlciwgY2FsY3VsYXRlIG9uZQogICAgICAgIGlmKCAhaXNzZXQoJHBhcm1zWydjZW50ZXInXSkgJiYgISR0aGlzLT5fdmlzaWJsZSApIHsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5maW5kX2NlbnRlcigpOwogICAgICAgICAgICBpZiggJHRtcCApICRwYXJtc1snY2VudGVyJ10gPSAkdGhpcy0+ZW5jb2RlX2xvY2F0aW9uKCR0bXApOwogICAgICAgIH0KCiAgICAgICAgLy8gYWRkIHZpc2libGUKICAgICAgICBpZiggJHRoaXMtPl92aXNpYmxlICkgewogICAgICAgICAgICAkcGFybXNbJ3Zpc2libGUnXSA9ICR0aGlzLT5lbmNvZGVfbG9jYXRpb24oJHRoaXMtPl92aXNpYmxlKTsKICAgICAgICB9CgogICAgICAgIC8vIGFkZCBtYXJrZXJzCiAgICAgICAgaWYoIGNvdW50KCR0aGlzLT5fbWFya2VycykgKSB7CiAgICAgICAgICAgICRwYXJtc1snbWFya2VycyddID0gYXJyYXkoKTsKICAgICAgICAgICAgJGlkeD0wOwogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X21hcmtlcnMgYXMgJG1hcmtlciApIHsKICAgICAgICAgICAgICAgICRwYXJtc1snbWFya2VycyddW10gPSAkdGhpcy0+ZW5jb2RlX21hcmtlcigkbWFya2VyLCRpZHgrKyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGJ1aWxkIHRoZSB1cmwKICAgICAgICAkdXJsID0gc2VsZjo6U1RBVElDX1VSTDsKICAgICAgICAkaWR4ID0gMDsKICAgICAgICBmb3JlYWNoKCAkcGFybXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICAkc2VwID0gJyYnOwogICAgICAgICAgICBpZiggJGlkeCA9PSAwICkgJHNlcCA9ICc/JzsKICAgICAgICAgICAgJGlkeCsrOwoKICAgICAgICAgICAgaWYoICEkdmFsICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdmFsKSApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR2YWwgYXMgJGtleTIgPT4gJHZhbDIgKSB7CiAgICAgICAgICAgICAgICAgICAgJHVybCAuPSAkc2VwLiRrZXkuJz0nLiR2YWwyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHVybCAuPSAkc2VwLiRrZXkuJz0nLiR2YWw7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICR1cmwgPSBzdHJfcmVwbGFjZSgnICcsJyUyMCcsJHVybCk7CiAgICAgICAgaWYoIHN0cmxlbigkdXJsKSA+IDIwNDggKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIkdlbmVyYXRlZCBVUkwgaXMgdG9vIGxvbmcgZm9yIHRoZSBnb29nbGUgc3RhdGljIG1hcHMgQVBJIik7CiAgICAgICAgcmV0dXJuICR1cmw7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.saved_static_map.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR1N0YXRpY01hcHM7CgpjbGFzcyBzYXZlZF9zdGF0aWNfbWFwIGV4dGVuZHMgbWFwX2dlbmVyYXRvcgp7CiAgICBwcml2YXRlICRfbGlmZXRpbWU7CiAgICBwcml2YXRlICRfY3JmID0gbnVsbDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG9wdHMpCiAgICB7CiAgICAgICAgJHRoaXMtPl9saWZldGltZSA9IDI0ICogMzA7ICAvLyAzMCBkYXlzLgoKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRvcHRzKTsKICAgICAgICAkbGlmZXRpbWUgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRvcHRzLCdsaWZldGltZScpOwogICAgICAgIGlmKCAkbGlmZXRpbWUgPiAwICkgJHRoaXMtPnNldF9saWZldGltZSgkbGlmZXRpbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbGlmZXRpbWUoJGhvdXJzKQogICAgewogICAgICAgICRob3VycyA9IG1heCgxLG1pbigxMDAwLChpbnQpJGhvdXJzKSk7CiAgICAgICAgJHRoaXMtPl9saWZldGltZSA9ICRob3VyczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VybCgpCiAgICB7CiAgICAgICAgJHVybCA9IHBhcmVudDo6Z2V0X3VybCgpOwogICAgICAgICRzaWcgPSBtZDUoX19GSUxFX18uJHVybCk7CiAgICAgICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAkYmFzZV9wYXRoID0gVE1QX0NBQ0hFX0xPQ0FUSU9OLicvJzsKICAgICAgICBpZiggZGVmaW5lZChQVUJMSUNfQ0FDSEVfTE9DQVRJT04pICkgJGJhc2VfcGF0aCA9IFBVQkxJQ19DQUNIRV9MT0NBVElPTi4nLyc7CiAgICAgICAgaWYoICFzdGFydHN3aXRoKCRiYXNlX3BhdGgsJGNvbmZpZ1sncm9vdF9wYXRoJ10pICkgewogICAgICAgICAgICAkYmFzZV9wYXRoID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9fY2dzbS8nOwogICAgICAgIH0KICAgICAgICAkYmFzZV9wYXRoIC49ICRzaWc7CiAgICAgICAgJGJhc2VfdXJsID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1sncm9vdF9wYXRoJ10sJGNvbmZpZ1sncm9vdF91cmwnXSwkYmFzZV9wYXRoKTsKICAgICAgICAkZGVzdCA9ICRiYXNlX3BhdGg7CgogICAgICAgIC8vIGZpeCB1cCB0aGUgdXJsCiAgICAgICAgJGRpciA9IGRpcm5hbWUoJGJhc2VfcGF0aCk7CiAgICAgICAgaWYoICFpc19kaXIoJGRpcikgKSBAbWtkaXIoJGRpcik7CiAgICAgICAgJGNyZiA9IG5ldyBcY2dlX2NhY2hlZF9yZW1vdGVfZmlsZSgkdXJsLCR0aGlzLT5fbGlmZXRpbWUgKiA2MCwkZGVzdCk7CiAgICAgICAgaWYoICEkY3JmLT5zaXplKCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1Byb2JsZW0gcmV0cmlldmluZyBnb29nbGUgbWFwIHRvIHN0b3JlIHN0YXRpY2FsbHknKTsKICAgICAgICAkdHlwZSA9ICRjcmYtPnR5cGUoKTsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJHR5cGUsJ2ltYWdlJykgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1Byb2JsZW0gcmV0cmlldmluZyBnb29nbGUgbWFwIHRvIHN0b3JlIHN0YXRpY2FsbHknKTsKCiAgICAgICAgcmV0dXJuICRiYXNlX3VybDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpbGUoKQogICAgewogICAgICAgICR1cmwgPSBwYXJlbnQ6OmdldF91cmwoKTsKICAgICAgICAkY3JmID0gbmV3IFxjZ2VfY2FjaGVkX3JlbW90ZV9maWxlKCR1cmwsJHRoaXMtPl9saWZldGltZSAqIDYwKTsKICAgICAgICByZXR1cm4gJGNyZi0+Z2V0X2Rlc3QoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NpemUoKQogICAgewogICAgICAgICR1cmwgPSBwYXJlbnQ6OmdldF91cmwoKTsKICAgICAgICAkY3JmID0gbmV3IFxjZ2VfY2FjaGVkX3JlbW90ZV9maWxlKCR1cmwsJHRoaXMtPl9saWZldGltZSAqIDYwKTsKICAgICAgICByZXR1cm4gJGNyZi0+c2l6ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudHMoKQogICAgewogICAgICAgICR1cmwgPSBwYXJlbnQ6OmdldF91cmwoKTsKICAgICAgICAkY3JmID0gbmV3IFxjZ2VfY2FjaGVkX3JlbW90ZV9maWxlKCR1cmwsJHRoaXMtPl9saWZldGltZSAqIDYwKTsKICAgICAgICBpZiggISRjcmYtPnNpemUoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignUHJvYmxlbSByZXRyaWV2aW5nIGdvb2dsZSBtYXAgdG8gc3RvcmUgc3RhdGljYWxseScpOwoKICAgICAgICByZXR1cm4gJGNyZi0+ZmlsZV9nZXRfY29udGVudHMoKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDR1N0YXRpY01hcHMiCnZlcnNpb24gPSAiMS4wLjMiCmF1dGhvciA9ICJjYWxndXkxMDAwIgphdXRob3JlbWFpbCA9ICJjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIgptaW5jbXN2ZXJzaW9uID0gIjEuMTIuMSIKbGF6eWxvYWRhZG1pbiA9IDAKbGF6eWxvYWRmcm9udGVuZCA9IDAKW2RlcGVuZHNdCkNHRXh0ZW5zaW9ucyA9ICIxLjYyLjQiCkNHU2ltcGxlU21hcnR5ID0gMS45Cg==]]></data>
	</file>
</module>
