<?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>Eridu</name>
	<version>1.1</version>
    <mincmsversion>2.2.8</mincmsversion>
	<help><![CDATA[PHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvY21zbXMyMjE0bWFtcy9tb2R1bGVzL0NNU01TRXh0L2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+PHNjcmlwdD5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7dmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgnRXJpZHVfYWN0aXZlJyk7JCgiI2RvbmF0aW5nIikuY2xpY2soZnVuY3Rpb24oZXZlbnQpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X3NldF9hY3RpdmVfdGFiKCdjb250cmlidXRlJyk7fSk7aWYodHlwZW9mIGFjdGl2ZV90YWIgPT09ICJ1bmRlZmluZWQiKXtfc2V0X2FjdGl2ZV90YWIoJ2dlbmVyYWwnKTt9ZWxzZXtfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7fSQoJyNwYWdlX3RhYnMgPiBkaXYnKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5jbGljayhmdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCdFcmlkdV9hY3RpdmUnLCB0aGlzLmlkKTt9KTt9KTt9KTtmdW5jdGlvbiBfc2V0X2FjdGl2ZV90YWIodGFiX25hbWUpeyQoJyNwYWdlX3RhYnMgPiBkaXYnKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7fSk7JCgnI3BhZ2VfY29udGVudCA+IGRpdicpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmhpZGUoKTt9KTskKCcjJyArIHRhYl9uYW1lKS5hZGRDbGFzcygnYWN0aXZlJyk7JCgnIycgKyB0YWJfbmFtZSArICdfYycpLnNob3coKTtDb29raWVzLnNldCgnRXJpZHVfYWN0aXZlJywgdGFiX25hbWUpO31mdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoZWxlbWVudCl7dmFyICR0ZW1wID0gJCgiPGlucHV0PiIpOyQoImJvZHkiKS5hcHBlbmQoJHRlbXApOyR0ZW1wLnZhbCgkKGVsZW1lbnQpLnRleHQoKSkuc2VsZWN0KCk7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTskdGVtcC5yZW1vdmUoKTt9PC9zY3JpcHQ+PGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PjxkaXYgaWQ9InBhZ2VfdGFicyI+PGRpdiBpZD0iZ2VuZXJhbCI+V2hhdCBJcyBJdDwvZGl2PjxkaXYgaWQ9ImhvdyI+SG93IFRvIFVzZSBJdDwvZGl2PjxkaXYgaWQ9Im1ldGhvZHMiPk1ldGhvZHM8L2Rpdj48ZGl2IGlkPSJwYXJhbXMiPlBhcmFtZXRlcnM8L2Rpdj48ZGl2IGlkPSJpbmkiPklOSSBmaWxlczwvZGl2PjxkaXYgaWQ9Im5ldyI+V2hhdCdzIE5ldzwvZGl2PjxkaXYgaWQ9ImNvbnRyaWJ1dGUiPkNvbnRyaWJ1dGU8L2Rpdj48ZGl2IGlkPSJhYm91dCI+QWJvdXQ8L2Rpdj48L2Rpdj48ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPjxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+PGRpdiBpZD0iZ2VuZXJhbF9jIj48YmxvY2txdW90ZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjIDtwYWRkaW5nOiAxcHggM3B4IDhweCAxNnB4OyBib3JkZXItbGVmdDogNXB4IHNvbGlkICM1NzdkYTQ7Ij4KICA8aDQ+PGVtPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz48L2VtPjwvaDQ+CiAgPHA+PGVtPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgYW4gYW5jaWVudCBTdW1lcmlhbiBjaXR5IGluIHdoYXQgaXMgbm93IFRlbGwgQWJ1IFNoYWhyYWluLCBEaGkgUWFyIEdvdmVybm9yYXRlLCBJcmFxLjwvZW0+PC9wPgogIDxwPjxlbT48c3Ryb25nPkVyaWR1PC9zdHJvbmc+IHdhcyBsb25nIGNvbnNpZGVyZWQgdGhlIGVhcmxpZXN0IGNpdHkgaW4gc291dGhlcm4gTWVzb3BvdGFtaWEsIGFuZCBpcyBzdGlsbCB0b2RheSBhcmd1ZWQgdG8gYmUgdGhlIG9sZGVzdCBjaXR5IGluIHRoZSB3b3JsZC48L2VtPjwvcD4KICA8cD48ZW0+Wy4uLl0gVGhlIEVneXB0b2xvZ2lzdCA8c3Ryb25nPkRhdmlkIFJvaGw8L3N0cm9uZz4sIGhhcyBjb25qZWN0dXJlZCB0aGF0IDxzdHJvbmc+RXJpZHU8L3N0cm9uZz4sIHRvIHRoZSBzb3V0aCBvZiBVciwgd2FzIHRoZSBvcmlnaW5hbCA8c3Ryb25nPkJhYmVsPC9zdHJvbmc+IGFuZCBzaXRlIG9mIHRoZSA8c3Ryb25nPlRvd2VyIG9mIEJhYmVsPC9zdHJvbmc+LCByYXRoZXIgdGhhbiB0aGUgbGF0ZXIgY2l0eSBvZiA8c3Ryb25nPkJhYnlsb248L3N0cm9uZz4gWy4uLl08L2VtPjwvcD4KICA8Y2l0ZT5XaWtpcGVkaWE8L2NpdGU+CjwvYmxvY2txdW90ZT4KPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIG1hbmFnZXMgbXVsdGlwbGVzIGxhbmd1YWdlcyBmb3IgdGhlIGZyb250ZW5kIGFuZCBwcm92aWRlcyBuYXZpZ2F0aW9uIHRocm91Z2ggdGhlIGxhbmd1YWdlcy48L3A+CjxwPkl0cyBhIGZvcmsgb2YgPHN0cm9uZz5CYWJlbDwvc3Ryb25nPiB3aGljaCwgYnkgdGhlIHRpbWUgb2YgdGhpcyB3cml0dGluZywgc2VlbXMgdG8gYmUgPGVtPmFiYW5kb24td2FyZTwvZW0+LjwvcD4KPHA+Qm90aCB0aGlzIG1vZHVsZSBhbmQgQmFiZWwgdXNlIGFuIGFwcHJvYWNoIHRvIG11bHRpbGluZ3VhbCBzaXRlcyBjYWxsZWQgInNlcGFyYXRlIHRyZWUgYnJhbmNoZXMiLCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSBNYXJjb3MgQ3J1eiAtIHNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvdmlld3RvcGljLnBocD90PTE5MDk5I3A5NDc0OSIgdGFyZ2V0PSJfYmxhbmsiPnRoaXMgdG9waWM8L2E+LjwvcD4KPHA+RXJpZHUgaGFzIGFsc28gaW50ZWdyYXRlZCBDR21sIGZ1bmN0aW9uYWxpdHkgYW5kIGNhbiBhbHNvIHVzZSBpbmkgZmlsZXMgYXMgdHJhbnNsYXRpb24gc291cmNlcy48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHRocm91Z2ggYSBmZXcgY2hhbmdlcyBhbmQgaGFzIGFuIGV4dGVuc2l2ZSByb2FkbWFwIGZvciBmdXR1cmUgcmVsZWFzZXMuIFRoZXJlIG1heSBiZSBhIGZldyBtaW5vciBnbGl0Y2hlcyBidXQgaXQgaGFzIGJlZW4gdXNlZCBpbiBwcm9kdWN0aW9uIHNpdGVzIGZvciBhIGZldyB5ZWFycyBhbHJlYWR5LiBJdCBoYXMgcHJvdmVuIHRvIGJlIHF1aXRlIHN0YWJsZSBzbyBmYXIuPC9wPjwvZGl2PjxkaXYgaWQ9Imhvd19jIj48aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+CiAgICA8aDQ+VHJlZSBicmFuY2hlczwvaDQ+CiAgICA8cD5UaGlzIG1vZHVsZSB1c2VzIGFuIGFwcHJvYWNoIHRvIG11bHRpbGluZ3VhbCBzaXRlcyBjYWxsZWQgPGVtPjxzdHJvbmc+InNlcGFyYXRlIHRyZWUgYnJhbmNoZXMiPC9zdHJvbmc+PC9lbT4sIHdoaWNoIGhhcyBiZWVuIGRldmVsb3BwZWQgYnkgb3RoZXIgY21zbXMgZGV2ZWxvcGVycyAobmFtZWx5IDxzdHJvbmc+TWFyY29zIENydXo8L3N0cm9uZz4gLSBzZWUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnL3ZpZXd0b3BpYy5waHA/dD0xOTA5OSNwOTQ3NDkiIHRhcmdldD0iX2JsYW5rIj50aGlzIHRvcGljPC9hPikuPC9wPgogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+PHA+U2hvdWxkIHlvdSBuZWVkIHRvIHVzZSBpdCBpbiB5b3VyIHRlbXBsYXRlcywgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgPGVtPjxzdHJvbmc+JHBhZ2VfbGFuZyB2YXJpYWJsZTwvc3Ryb25nPjwvZW0+LjwvcD4KICAgIDxwPk1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGxhbmd1YWdlIGNhbiBhbHNvIGJlIHJldHJpZXZlZCB1c2luZyB0aGUgPGVtPjxzdHJvbmc+JHBhZ2VfbGFuZ19pbmZvIG9iamVjdDwvc3Ryb25nPjwvZW0+ICh3aXRoIHRoZSBzYW1lIGF0dHJpYnV0ZXMgYXMgaW4gdGhlIG1lbnUgdGVtcGxhdGVzKS48L3A+PC9kaXY+CgogICAgPGg0PlBhcnQgMTogc2V0dGluZyB1cCB0aGUgcGFnZXM8L2g0PgogICAgPHA+VG8gdXNlIHRoaXMsIHlvdSB3aWxsIGhhdmUgdG8gY3JlYXRlIGRpZmZlcmVudCByb290IHBhZ2VzIGZvciBlYWNoIGxhbmd1YWdlLiBGb3IgZXhhbXBsZTo8L3A+CiAgICA8ZmllbGRzZXQ+CiAgICAgIDxsZWdlbmQ+U2FtcGxlIFNpdGUgU3RydWN0dXJlPC9sZWdlbmQ+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPjEuIEVuZ2xpc2gKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4xLjEuIDFzdCBwYWdlPC9saT4KICAgICAgICAgICAgICA8bGk+MS4yLiAybmQgcGFnZTwvbGk+CiAgICAgICAgICAgICAgPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9saT4KICAgICAgICAgIDxsaT4yLiBGcmFuJmNjZWRpbDthaXMKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4yLjEuIFBhZ2UgMTwvbGk+CiAgICAgICAgICAgICAgPGxpPjIuMi4gUGFnZSAyPC9saT4KICAgICAgICAgICAgICA8bGk+Mi4zLiBQYWdlIDM8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9maWVsZHNldD4KCiAgICA8cD48c3Ryb25nPlJvb3QgbGFuZ3VhZ2U8L3N0cm9uZz4gcGFnZXMgPHN0cm9uZz4oMS4gYW5kIDIuKTwvc3Ryb25nPiBzaG91bGQgYmUgPHN0cm9uZz48ZW0+c2VjdGlvbiBoZWFkZXJzPC9lbT48L3N0cm9uZz4uPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPllvdSBjYW4gbmFtZSB0aGVtIChhbGlhcyBhbmQgYWxsKSBhbnkgd2F5IHlvdSB3YW50LjwvZGl2PgoKICAgIDxwPkluIG9yZGVyIHRvIGRpc3BsYXkgbWVudSBjb3JyZWN0bHkgKHRoYXQgaXMsIG5vdCB0byBkaXNwbGF5IGxhbmd1YWdlIGhlYWRlciBwYWdlcyBhbmQgcGFnZXMgYmVsb25naW5nIHRvIG90aGVyIGxhbmd1YWdlcyksIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgdGhlIDxzdHJvbmc+c3RhcnRfbGV2ZWw9JzInPC9zdHJvbmc+IHRvIHlvdXIgbWVudSB0YWdzOjwvcD4KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bWVudSBzdGFydF9sZXZlbD0nMid9PC9wcmU+PC9wPgogICAgPGg0PlBhcnQgMjogc2V0dGluZyB1cCB0aGUgbGFuZ3VhZ2VzPC9oND4KICAgIDxwPk5leHQsIGdvIHRvOjwvcD4KICAgICAgPGZpZWxkc2V0PgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48c3Ryb25nPjxlbT5Db250ZW50ICZndDsgRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50PC9lbT48L3N0cm9uZz48L2xpPgogICAgICAgIDwvdWw+CiAgICAgIDwvZmllbGRzZXQ+CiAgICA8cD5Gb3IgZWFjaCBsYW5ndWFnZSwgY2xpY2sgPHN0cm9uZz48ZW0+QWRkIExhbmd1YWdlPC9lbT48L3N0cm9uZz4gYW5kIGVudGVyIHRoZSBhcHByb3ByaWF0ZSBpbmZvcm1hdGlvbnMuPHA+CiAgICA8cD5UaGUgPHN0cm9uZz4iUm9vdCBwYWdlIjwvc3Ryb25nPiBzaG91bGQgYmUgb25lIG9mIHRoZSA8c3Ryb25nPnNlY3Rpb24gaGVhZGVyczwvc3Ryb25nPiB5b3UndmUgY3JlYXRlZCBmb3IgZWFjaCBsYW5ndWFnZSA8c3Ryb25nPigxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKTwvc3Ryb25nPi48L3A+CiAgICAgIDxmaWVsZHNldD4KICAgICAgPGxlZ2VuZD5Sb290IFBhZ2VzIGFuZCBTZWN0aW9uIEhlYWRlcnM8L2xlZ2VuZD4KICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+PHN0cm9uZz4xLiBFbmdsaXNoPC9zdHJvbmc+IChzaG91bGQgYmUgYSBTZWN0aW9uIEhlYWRlcikKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4uLi48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPjIuIEZyYW4mY2NlZGlsO2Fpczwvc3Ryb25nPiAoc2hvdWxkIGJlIGEgU2VjdGlvbiBIZWFkZXIpCiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Li4uPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvZmllbGRzZXQ+CiAgICA8cD5UaGUgPHN0cm9uZz4iRGVmYXVsdCBwYWdlIjwvc3Ryb25nPiBzaG91bGQgYmUgdGhlIDxzdHJvbmc+aG9tZSBwYWdlPC9zdHJvbmc+IGZvciBlYWNoIGxhbmd1YWdlLjwvcD4KICAgIDxwPkFzIG9mIHRoZSBsYW5ndWFnZSBjb2RlLCB5b3UgY291bGQgdXNlIGFueSA1IGNoYXJhY3RlcnMgY29kZSwgYnV0IGluIG9yZGVyIHRvIHByb3ZpZGUgZ29vZCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG1vZHVsZXMsIHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lIGFzIENNU01TIHVzZXMgKHlvdSBtYXkgdXNlIHRoZSBkcm9wIGRvd24gbGlzdCBvbiB0aGUgdG9wIHJpZ2h0IHRvIHBhcnRpYWxseSBmaWxsIHRoZSBmb3JtKS48L3A+CiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxwPldoZW4gcmVhZHksIG1ha2Ugc3VyZSB5b3UgYWN0aXZhdGUgZWFjaCBsYW5ndWFnZS4uLjwvcD48L2Rpdj4KCiAgICA8aDQ+UGFydCAzOiBMYW5ndWFnZSBtZW51PC9oND4KICAgIDxwPlRvIGdldCBhIGxhbmd1YWdlIG1lbnUsIHlvdSBtYXkgdXNlIHRoZSBmb2xsb3dpbmcgdGFnOjwvcD4KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57RXJpZHUgYWN0aW9uPSdtZW51J308L3ByZT48L3A+CiAgICA8cD5vciwgdG8gdXNlIGEgdGVtcGxhdGUgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCBvbmU6PC9wPgogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntFcmlkdSBhY3Rpb249J21lbnUnIHRlbXBsYXRlPSd0ZW1wbGF0ZV9uYW1lJ308L3ByZT48L3A+CiAgICA8cD5UaGUgInNob3ciIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBjaG9vc2Ugd2hpY2ggbGFuZ3VhZ2VzIHNob3VsZCBiZSBkaXNwbGF5ZWQuPC9wPgogICAgPGg0PlBhcnQgNCAob3B0aW9uYWwpIDogQ3VzdG9tIGxhbmd1YWdlIGVudHJpZXM8L2g0PgogICAgPHA+SW4gPHN0cm9uZz50ZW1wbGF0ZXM8L3N0cm9uZz4sIDxzdHJvbmc+bW9kdWxlIHRlbXBsYXRlczwvc3Ryb25nPiwgPHN0cm9uZz5nbG9iYWwgY29udGVudCBibG9ja3MgKEdDQidzKTwvc3Ryb25nPiwgPHN0cm9uZz5jb250ZW50IGJsb2Nrczwvc3Ryb25nPiwgZXRjLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBjb250ZW50IGRlcGVuZGluZyBvbiB0aGUgbGFuZ3VhZ2UuPC9wPgogICAgPHA+VGhlIHRyYWRpdGlvbmFsIHdheSB0byBkbyB0aGlzIHdhcyB0byBjcmVhdGUgY29uZGl0aW9ucyB3aXRoIHRoZSBwYWdlX2xhbmcgdmFyaWFibGU6PC9wPgogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPgogICAge2lmICRwYWdlX2xhbmcgPT0gJ2VuX1VTJ30KICAgICAgRW5nbGlzaCB0ZXh0CiAgICB7ZWxzZWlmICRwYWdlX2xhbmcgPT0gJ2ZyX0ZSJ30KICAgICAgVGV4dGUgZW4gZnJhbiZjY2VkaWw7YWlzCiAgICB7L2lmfTwvcHJlPjwvcD4KICAgIDxwPldlbGwuLi4geW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2QgYnV0LCB3aXRoIHRoZSBtb2R1bGUsIGFub3RoZXIgbW9yZSBjZW50cmFsaXplZCB3YXkgaXMgcHJvdmlkZWQuPC9wPgogICAgPHA+SW4gdGhlIGFkbWluIHBhbmVsIG9mIHRoaXMgbW9kdWxlLCB5b3Ugd2lsbCBmaW5kIGEgbGluayB0byBlZGl0IGVudHJpZXMgZm9yIGVhY2ggbGFuZ3VhZ2UuPC9wPgogICAgPHA+PHN0cm9uZz48ZW0+TGFuZ3VhZ2UgRW50cmllczwvZW0+PC9zdHJvbmc+IGFyZSBzdHJpbmdzIHRoYXQgZXhpc3RzIGZvciBlYWNoIGxhbmd1YWdlIGJ1dCBob2xkIGRpZmZlcmVudCB0ZXh0IChvciBIVE1MKS48L3A+CiAgICA8cD5XaGF0IHlvdSBjYW4gZG8gaXMgdG8gY3JlYXRlIGEgbmV3IDxzdHJvbmc+PGVtPmxhbmd1YWdlIGVudHJ5PC9lbT48L3N0cm9uZz4gKGZvciBleGFtcGxlOiAid2VsY29tZSB0ZXh0IiwgZW50ZXIgaXRzIGNvbnRlbnQgZm9yIGFsbCBsYW5ndWFnZXMsIGFuZCBzaW1wbHkgY2FsbCB0aGUgZW50cnkgd2hlcmV2ZXIgeW91IG5lZWQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgYWN0aW9uOjwvcD4KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57RXJpZHUgc2hvdz0nd2VsY29tZSB0ZXh0J308L3ByZT48L3A+CiAgICA8cD5TaG91bGQgeW91IGV2ZXIgbmVlZCB0byBlZGl0IHRoZSBzdHJpbmdzIGFuZCBhZGQgbGFuZ3VhZ2VzLCB5b3Ugd2lsbCBmaW5kIHRoaXMgc29sdXRpb24gdG8gYmUgbW9yZSBoYW5keS4gQnV0IGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBvbmUsIGl0IHdpbGwgd29yayBqdXN0IHRoZSBzYW1lLjwvcD4KICAgIDxwPllvdSBjYW4gYWxzbyBhc3NpZ24gbGFuZ3VhZ2UgZW50cmllcyB0byBzbWFydHkgdmFyaWFibGVzLCB1c2luZzo8L3A+CiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e0VyaWR1IHNob3c9J3dlbGNvbWUgdGV4dCcgYXNzaWduPSd3ZWxjb21lJ308L3ByZT48L3A+CiAgICA8cD5vciwgaWYgeW91IHdhbnQgdG8gYXNzaWduIG11bHRpcGxlIGVudHJpZXMsIHNlcGVyYXRlIHRoZW0gYnkgY29tbWFzOjwvcD4KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57RXJpZHUgc2hvdz0nZW50cnkxLGVudHJ5MixlbnRyeScgYXNzaWduPSd2YXIxLHZhcjIsdmFyMyd9PC9wcmU+PC9wPgoKICAgIDxoMz5JTkkgRmlsZXMgaW50ZWdyYXRpb248L2gzPgogICAgPHA+U2luY2UgdmVyc2lvbiAxLjEgRXJpZHUgaGFzIGludGVncmF0ZWQgQ0dtbCBmZWF0dXJlcyBhbmQgaGFzIHRoZSBhYmlsaXR5IHRvIGltcG9ydCBpdHMgaW5pIGZpbGVzLiBJdCdzIGEgZGlmZmVyZW50IGFwcHJvYWNoIGFuZCBvbmUgZG9lc24ndCBwcmVjbHVkZSB0aGUgb3RoZXIuPC9wPgogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+CiAgICAgIDxwPk1vcmUgaW5mb3JtYXRpb24gb24gdGhlIFNtYXJ0eSBhZGRvbnMgRXJpZHUgcmVnaXN0ZXJzIGlzIGF2YWlsYWJsZSBvbiB0aGUgSU5JIEZpbGVzIHRhYi48L3A+CiAgICA8L2Rpdj4KICAgIDxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgogICAgPHA+UGFnZSBsYW5ndWFnZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBzbWFydHkgdmFyaWFibGVzIGJlZm9yZSB0aGUgdGVtcGxhdGUgaXMgcHJvY2Vzc2VkIGJ5IGFuIGV2ZW50IGhhbmRsZXIuIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB0aGUgcGFnZSBsYW5ndWFnZSBpcyBsb3N0IChlc3BlY2lhbGx5IHNpbmNlIHRoZSBwYWdlIGhlYWQgaXMgcHJvY2Vzc2VkIHNlcGFyYXRseSBmcm9tIHRoZSBwYWdlIGJvZHkpLiBTaG91bGQgdGhpcyBoYXBwZW4sIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdGFnIHRvIHJlYXNzaWduIGl0OjwvcD4KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57RXJpZHUgYWN0aW9uPSdhc3NpZ24nfTwvcHJlPjwvcD4KICAgIDxwPk5vdGUgdGhhdCB5b3UgbWF5IGFsc28gdXNlPC9wPgogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntFcmlkdSBhY3Rpb249J2F1dG9fcmVkaXJlY3QnfTwvcHJlPjwvcD4KICAgIDxwPmF0IHRoZSBiZWdpbm5pbmcgb2YgeW91ciB0ZW1wbGF0ZSBpZiwgZm9yIHNvbWUgcmVhc29uLCByZWRpcmVjdGlvbiBkb2VzIG5vdCBvY2N1ciAoSSBkb24ndCBzZWUgd2h5IHRoaXMgc2hvdWxkIGhhcHBlbiB0aG91Z2gpLjwvcD48L2Rpdj48ZGl2IGlkPSJtZXRob2RzX2MiPjxoMz5MYW5ndWFnZSByZWRpcmVjdGlvbiBtZXRob2RzPC9oMz4KICAgIDxwPlRoZXJlIGFyZSB0d28gcG9zc2libGUgbWV0aG9kcyB0byB0ZWxsIENNU01TIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuPC9wPgogICAgPHA+IEJ5IGRlZmF1bHQsIHRoZSBoaXJlcmFyY2h5IHNvbHV0aW9uIGlzIGFjdGl2YXRlZCwgYnV0IHlvdSBjYW4gY2hhbmdlIHRoYXQgaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CiAgICA8aDQ+TWFyY29zIENydXoncyBkZWZpbml0aW9uIHNvbHV0aW9uPC9oND4KICAgIDxmaWVsZHNldD4KICAgICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Qcm9zOjwvZW0+PC9zdHJvbmc+IGFsbG93cyB0aGlnaHQgY3VzdG9taXphdGlvbiBhbmQgcGFydGlhbCB0cmFuc2xhdGlvbi48L2xpPgogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Db25zOjwvZW0+PC9zdHJvbmc+IG5lZWQgdG8gc3BlY2lmeSBsYW5ndWFnZSBhbHRlcm5hdGl2ZXMgZm9yIGVhY2ggcGFnZSwgYW5kIHRvIHVwZGF0ZSBpdCBpZiBhbiBhbGlhcyBjaGFuZ2VzLjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2ZpZWxkc2V0PiAKICAgIDxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxwPgogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntjb250ZW50IGJsb2NrID0gb3RoZXJfbGFuZ3VhZ2VzIG9uZWxpbmUgPSAxIGFzc2lnbiA9IG90aGVyX2xhbmd1YWdlcyB3eXNpd3lnID0gMH08L3ByZT48L3A+CiAgICA8cD5UaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5OjwvcD4KICAgIDxmaWVsZHNldD5lbl9VUz08ZW0+cGFnZTE8L2VtPjtmcl9GUj08ZW0+cGFnZTE8L2VtPjtkZV9ERT08ZW0+cGFnZTE8L2VtPjwvZmllbGRzZXQ+CiAgICA8cD53aGVyZSA8c3Ryb25nPjxlbT5wYWdlMTwvZW0+PC9zdHJvbmc+LCA8c3Ryb25nPjxlbT5wYWdlMTwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5wYWdlMTwvZW0+PC9zdHJvbmc+IGFyZSB0aGUgcGFnZSBhbGlhc2VzLjwvcD4KICAgIDxkaXYgY2xhc3M9Indhcm5pbmciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+PHA+dGhlIG9yZGVyIGRvZXMgbm90IG1hdHRlciwgYnV0IG5vIHNwYWNlcyBhcmUgYWxsb3dlZDwvcD48L2Rpdj4KICAgIDxwPlRvIG1ha2Ugc3VyZSB0aGUgbW9kdWxlcyB1c2VzIHRoaXMgbWV0aG9kLCBtYWtlIHN1cmUgdG8gdW50aWNrIHRoZSA8c3Ryb25nPjxlbT4iVXNlIGhpZXJhcmNoeSBmb3IgcmVkaXJlY3Rpb24iPC9lbT48L3N0cm9uZz4gb3B0aW9uIGluIHRoZSA8c3Ryb25nPjxlbT5TZXR0aW5nczwvZW0+PC9zdHJvbmc+IHRhYi48L3A+CiAgICA8aDQ+VGhlIGhpZXJhcmNoeSBzb2x1dGlvbjwvaDQ+CiAgICA8ZmllbGRzZXQ+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz48ZW0+UHJvczo8L2VtPjwvc3Ryb25nPiBpdCdzIGF1dG9tYXRpYyAtIHlvdSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nLjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+PGVtPkNvbnM6PC9lbT48L3N0cm9uZz4gdGhlIHBhZ2Ugc3RydWN0dXJlIG11c3QgYmUgaWRlbnRpY2FsIGZvciBlYWNoIGxhbmd1YWdlLjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2ZpZWxkc2V0PiAKICAgIDxwPlRoaXMgc29sdXRpb24gdXNlcyB0aGUgcGFnZSBoaWVyYXJjaHkgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgZXF1aXZhbGVudC48L3A+CiAgICA8cD5JbiBvdXIgZXhhbXBsZSBhYm92ZSwgIjIuMy4gUGFnZSAzIiB3b3VsZCBiZSB0aGUgZnJlbmNoIGVxdWl2YWxlbnQgb2YgIjEuMy4gM3JkIHBhZ2UiLCBiZWNhdXNlIGl0IG9jY3VwaWVzIHRoZSBlcXVpdmFsZW50IHBvc2l0aW9uIGluIHRoZSBmcmVuY2ggYnJhbmNoLjwvcD4KICAgIDxwPkluIG90aGVyIHdvcmRzLCBzaG91bGQgdGhlIHBhZ2UgYmUgb3JkZXJlZCBkaWZmZXJlbnRseSwgYWxsIHdvdWxkIGJlIG1lc3NlZCB1cDo8L3A+CiAgICA8ZmllbGRzZXQ+CiAgICAgIDxsZWdlbmQ+UGFnZSBIaWVyYXJjaHkgRG9lc24ndCBNYXRjaDwvbGVnZW5kPgogICAgICA8dWw+CiAgICAgICAgPGxpPjEuIEVuZ2xpc2gKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgogICAgICAgICAgICA8bGk+MS4yLiAybmQgcGFnZTwvbGk+CiAgICAgICAgICAgIDxsaT4xLjMuIDNyZCBwYWdlPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzCiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT4yLjEuIFBhZ2UgMTwvbGk+CiAgICAgICAgICAgIDxsaT4yLjIuIFBhZ2UgMzwvbGk+CiAgICAgICAgICAgIDxsaT4yLjMuIFBhZ2UgMjwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2ZpZWxkc2V0PgogICAgPHA+SGVyZSwgIlBhZ2UgMiIgb2NjdXBpZXMgdGhlIHRoaXJkIHBvc2l0aW9uLCBzbyBpdCB3b3VsZCBiZSBkZWVtZWQgZXF1aXZhbGVudCB0byB0aGUgM3JkIHBhZ2UgaW4gZW5nbGlzaC48L3A+ICAgICAgICAKICAgIDxwPlRoaXMgYWxzbyBtZWFucyB0aGF0IGlmIGFsbCBwYWdlcyBkbyBub3QgZXhpc3QgaW4gYWxsIGxhbmd1YWdlcywgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bC4gRm9yIGV4YW1wbGU6PC9wPgogICAgPGZpZWxkc2V0PgogICAgICA8bGVnZW5kPlBhZ2UgSGllcmFyY2h5IFdpdGggYSBNaXNzaW5nIFBhZ2U8L2xlZ2VuZD4KICAgICAgPHVsPgogICAgICAgIDxsaT4xLiBFbmdsaXNoCiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT4xLjEuIDFzdCBwYWdlPC9saT4KICAgICAgICAgICAgPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgogICAgICAgICAgICA8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPjIuIEZyYW4mY2NlZGlsO2FpcwogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+Mi4xLiBQYWdlIDI8L2xpPgogICAgICAgICAgICA8bGk+Mi4yLiBQYWdlIDM8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICA8L3VsPgogICAgPC9maWVsZHNldD4KICAgIDxwPkhlcmUsICIxc3QgcGFnZSIgd291bGQgYmUgdGFrZW4gdG8gYmUgZXF1aXZhbGVudCB0byAiUGFnZSAyIiBhbmQgIjNyZCBwYWdlIiB3b3VsZCBiZSBkZWVtZWQgdG8gaGF2ZSBubyB0cmFkdWN0aW9uLCBhbHRob3VnaCBpdCBkb2VzLjwvcD4KPC9kaXY+PGRpdiBpZD0icGFyYW1zX2MiPjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHA+CiAgQXMgc2VlbiBpbiB0aGUgPGI+VXNhZ2U8L2I+IHRhYiB0aGUgbW9zdCBiYXNpYyB1c2FnZSBvZiB0aGUgbW9kdWxlIGlzIGJ5IGNhbGxpbmcgdGhlIDxiPntFcmlkdX08L2I+IHRhZyBpbiBhbnkgb2YgeW91ciBmcm9udGVuZCB0ZW1wbGF0ZXMuIEhvd2V2ZXIgeW91IGNhbiBleHRlbmQgYW5kIGNvbnRyb2wgdGhlIG1vZHVsZSdzIGJlaGF2aW91ciB3aXRoIHBhcmFtZXRlcnMgaW4gdGhlIHRhZy4KPC9wPgoKPGgzPlBhcmFtZXRlcnM8L2gzPgoKICA8cD5UaGlzIGlzIGEgbGlzdCBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIG1vZHVsZSB0YWc6PC9wPgoKICA8dWw+CiAgICA8bGk+CiAgICAgIDxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSdkZWZhdWx0JyAtIFBvc3NpYmxlIGFjdGlvbnM6ICdkZWZhdWx0JyAodG8gdHJhbnNsYXRlKSBvciAnbWVudScuCiAgICA8L2xpPgogICAgPGxpPgogICAgICA8ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3c9JycgLSBGb3IgdGhlIG1lbnUgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggbGFuZ3VhZ2VzIHRvIHNob3cgaW4gdGhlIG1lbnUgKHVzZSBsYW5ndWFnZSBjb2RlIGFuZCBzZXBhcmF0ZSB3aXRoIGEgY29tbWEpLiBGb3IgdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIGhvbGRzIHRoZSBrZXkgdG8gdGhlIHN0cmluZyB0byBiZSB0cmFuc2xhdGVkLgogICAgPC9saT4KICAgIDxsaT4KICAgICAgPGVtPihvcHRpb25hbCk8L2VtPiBldmFsPScnIC0gRm9yY2UgdGhlIHN0cmluZyB0byBiZSBwYXJzZWQgYnkgc21hcnR5LiBBbiBhbHRlcm5hdGl2ZSBtZXRob2QgdG8gdXNpbmcgZXZhbCBpbnNpZGUgdGhlIHRlbXBsYXRlczsKICAgIDwvbGk+CiAgICA8bGk+CiAgICAgIDxlbT4ob3B0aW9uYWwpPC9lbT4gdGVtcGxhdGU9JycgLSBUZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBtZW51LgogICAgPC9saT4KICAgIDxsaT4KICAgICAgPGVtPihvcHRpb25hbCk8L2VtPiBhc3NpZ249JycgLSBJbnN0ZWFkIG9mIGRpc3BsYXlpbmcgdGhlIHJlc3VsdCBpbW1lZGlhdGVseSwgeW91IGNhbiBhc3NpZ24gaXQgdG8gYSBzbWFydHkgdmFyaWFibGUgc3BlY2lmaWVkIHdpdGggdGhlICdhc3NpZ24nIHBhcmFtZXRlci4KICAgIDwvbGk+CiAgPC91bD4KCiAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij4KICAgICAgPHA+TW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgU21hcnR5IGFkZG9ucyBFcmlkdSByZWdpc3RlcnMgaXMgYXZhaWxhYmxlIG9uIHRoZSBJTkkgRmlsZXMgdGFiLjwvcD4KICAgIDwvZGl2Pgo8L2Rpdj48L2Rpdj48ZGl2IGlkPSJpbmlfYyI+PGgzPk9sZCBDR21sIEludGVncmF0aW9uPC9oMz4KPHA+CiAgQ0dtbCB3YXMgYSBzaW1wbGUgbW9kdWxlIGludGVuZGVkIHRvIHByb3ZpZGUgZm9yIGEgcXVpY2sgYW5kIGVhc3kgd2F5IHRvIG1hbmFnZSB0cmFuc2xhdGlvbiBvZiBzaW1wbGUgc3RyaW5ncy4gIElkZWFsIGZvciB1c2UgaW4gZm9ybXMgb3IgcmVwb3J0cywgb3Igb3RoZXIgdGVtcGxhdGUgZmlsZXMsIGl0IGFsbG93ZWQgeW91IHRvIGF1dG9tYXRpY2FsbHkgYXBwbHkgdGhlIGNvcnJlY3QgbGFuZ3VhZ2Ugc3RyaW5nIGluIHRoZSBwcm9wZXIgbG9jYXRpb24gb2YgeW91ciB0ZW1wbGF0ZS4gSSB3YXMgaWRlYWxseSBzdWl0ZWQgZm9yIHNvbHZpbmcgY2FzZXMgd2hlcmUgdGhlIHRleHQgb3V0cHV0IGRvZXMgbm90IG5lZWQgdG8gYmUgbWFuYWdlZCBieSBhbiBlZGl0b3IsIGFuZCB3b3VsZCBjaGFuZ2UgaW5mcmVxdWVudGx5Lgo8L3A+Cgo8cD5FcmlkdSBoYXMgbm93IGludGVncmF0ZWQgaXQncyBmdW5jdGlvbmFsaXR5IGFuZCBpcyBjYXBhYmxlIG9mIGltcG9ydGluZyBkYXRhIGZyb20gQ0dtbC4gVGhlIG9yaWdpbmFsIElOSSBmaWxlcyB3aWxsIGJlIGNvcGllZCBvbiBpbXBvcnQgdG8gdGhlIGZvbGxvd2luZyBmb2xkZXI6PC9wPgoKPHA+PHByZT48Y29kZT4mbHQ7Q01TTVMgaW5zdGFsbGF0aW9uIHJvb3QmZ3Q7L2Fzc2V0cy9FcmlkdTwvY29kZT48L3ByZT48L3A+Cgo8cD5JZiB0aGUgaW1wb3J0IHByb2Nlc3MgZmluZHMgbW9yZSB0aGFuIG9uZSBsb2NhdGlvbiBmcm9tIHRoZSBsZWdpdCBDR21sIHBvc3NpYmxlIGxvY2F0aW9ucyBpdCB3aWxsIHRyeSB0byBpbXBvcnQgdGhlbSBhbGwsIGJ1dCBvbiBjb25mbGljdCBpdCB3aWxsIGNvcHkgYW55IGR1cGxpY2F0ZXMgdG8gYSBiYWNrdXAgZm9sZGVyIGluc2lkZSB0aGUgYXNzZXRzIEVyaWR1IG93biBmb2xkZXIuIEFnYWluLCBpbiBjYXNlIG9mIGNvbmZsaWN0cyB0aGUgZmlsZXMgd2lsbCBiZSBudW1iZXJlZCB0byBwcmV2ZW50IGxvc3Mgb2YgZGF0YS48L3A+CjxwPlRoZSBsb2NhdGlvbnMgd2lsbCBiZSBzY2FubmVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6PC9wPgo8b2w+CiAgPGxpPkFueSBsb2NhdGlvbiBzZXQgdW5kZXIgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNjZWNlY2U7Ij4kY29uZmlnWydDR21sX3BhdGgnXTwvY29kZT4gY29uZmlndXJhdGlvbiBrZXk7PC9saT4KICA8bGk+PGNvZGUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNjZWNlY2U7Ij4mbHQ7Q01TTVMgaW5zdGFsbGF0aW9uIHJvb3QmZ3Q7YXNzZXRzL0NHbWw8L2NvZGU+IGZvbGRlciBvbiB0aGUgc2l0ZSByb290IGxvY2F0aW9uOzwvbGk+CiAgPGxpPk9sZCA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2NlY2VjZTsiPiZsdDtDTVNNUyBpbnN0YWxsYXRpb24gcm9vdCZndDtfQ0dtbDwvY29kZT4gZm9sZGVyIG9uIHRoZSBzaXRlIHJvb3QgbG9jYXRpb247PC9saT4KPC9vbD4KCjxwPkZpbGVzIHdpbGwgYmUgY29waWVkIGFuZCB0aGVuIHVzZWQgb24gZmlyc3QgZm91bmQsIGZpcnN0IHVzZWQgb3JkZXIuIFRoZSByZXN0IHdpbGwgYmUgY29waWVkIHRvIHRoZSBiYWNrdXAgZm9sZGVyIGFzIGRlc2NyaWJlZCBhYm92ZS48L3A+Cgo8aDM+RmVhdHVyZXM6PC9oMz4KPHVsPgogIDxsaT5TdXBwb3J0cyBrZWVwaW5nIHRyYW5zbGF0aW9ucyBpbiBmaWxlcy4gIFBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIHNtYWxsIHN0cmluZ3MgdGhhdCBkbyBub3QgY2hhbmdlIG9mdGVuLCBhbmQgY2FuIGJlIHRyYWNrZWQgd2l0aCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcy48L2xpPgogIDxsaT5TdXBwb3J0cyBvcmdhbml6aW5nIGxhbmd1YWdlIGZpbGVzIGludG8gZGlmZmVyZW50IHJlYWxtcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBvcmdhbml6aW5nIHRyYW5zbGF0aW9ucyBmb3IgZGlmZmVyZW50IGZvcm1zLCBvciByZXBvcnRzLjwvbGk+CiAgPGxpPlVzZXMgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgZm9yIHRoZSByZXF1ZXN0LCB1c2luZyBDTVNNUyBwdWJsaXNoZWQgQVBJJ3M8L2xpPgo8L3VsPgoKPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgoKPG9sIHR5cGU9ImEiPgogIDxsaT5DcmVhdGUgeW91ciB0cmFuc2xhdGlvbihzKS4KICAgICA8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBhdCBsZWFzdCB0aGUgZGVmYXVsdCByZWFsbSBmaWxlLCB3aXRoIHRyYW5zbGF0aW9uIG9mIG51bWVyb3VzIHN0cmluZ3MgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy4gIFNlZSBiZWxvdyBmb3IgaW5mb3JtYXRpb24gb24gdGhlIGZvcm1hdCBvZiBsYW5nIGZpbGVzLjwvcD4KICA8L2xpPgogIDxsaT5DaGFuZ2UgaGFyZCBjb2RlZCBzdHJpbmdzIHRvIG1vZHVsZSBjYWxscyB0aGF0IHdpbGwgdXRpbGl6ZSBsYW5ndWFnZSBzdHJpbmcga2V5cy4gaS5lOgogICAgICA8cD48cHJlPjxjb2RlPntJMThOIGtleT0naGVsbG8nfTwvY29kZT48L3ByZT48L3A+CiAgPC9saT4KICA8bGk+CiAgICBJZiB5b3UgYXJlIG1pZ3JhdGluZyBmcm9tIENHbWw6CiAgICA8dWw+CiAgICAgIDxsaT5sb29rIGluIHRoZSBzZXR0aW5ncyB0YWIgZm9yIGFuIGltcG9ydCBidXR0b246IGFsbCB0aGUgaW5pIGZpbGVzIHdpbGwgYmUgY29waWVkIHRvIGEgbmV3IGxvY2F0aW9uLCBhcyBkZXNjcmliZWQgYWJvdmU7PC9saT4KICAgICAgPGxpPnJlcGxhY2UgdGhlIENHbWwgdGFncyB1c2VkIGluIHRoZSB0ZW1wbGF0ZXMgd2l0aCB0aGUgY29ycmVzcG9uZGVudCBFcmlkdSB0YWdzIChzZWUgQ2hlYXQgU2hlZXQgb24gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSk8L2xpPgogICAgPC91bD4KICA8L2xpPgo8L29sPgoKPGgzPlNtYXJ0eSBwbHVnaW5zPC9oMz4KCjxwPlRoaXMgbW9kdWxlIHJlZ2lzdGVycyBhIGZldyBhZGRpdGlvbmFsIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gdHJhbnNsYXRpb24sIGFuZCBpbiBvcmdhbml6aW5nIHRyYW5zbGF0aW9ucy48L3A+Cjx1bD4KICAgPGxpPjxjb2RlPntsMTBuIGtleT1zdHJpbmcgW2RmbHQ9c3RyaW5nXSBbYXNzaWduPXN0cmluZ10gW18qPXN0cmluZ119PC9jb2RlPgogICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHVybiB0aGUgdHJhbnNsYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpbiB0aGUgY3VycmVudCByZWFsbSwgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLCBpZiBvbiBleGlzdHMuPC9wPgogICAgICA8cD5Bcmd1bWVudHM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPmt8a2V5PXN0cmluZzwvY29kZT4gPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+IC0gVGhlIGxhbmd1YWdlIHN0cmluZyBrZXkuICBOb3RlIGVpdGhlciAmcXVvdDtrJnF1b3Q7IG9yICZxdW90O2tleSZxdW90OyBhcmUgYWNjZXB0YWJsZS48L2xpPgoJPGxpPjxjb2RlPmRmbHQ9c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gSWYgdGhlcmUgaXMgbm8gdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQga2V5LCByZXR1cm4gdGhlIHN0cmluZyBzcGVjaWZpZWQuPC9saT4KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gdGhlIG91dHB1dCBvZiB0aGlzIGZ1bmN0aW9uIHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICAgICAgPC91bD4KICAgICAgPHByZT48Y29kZT57bDEwbiBrPWhlbGxvIGRmbHQ9J0hlbGxvJ308L2NvZGU+PC9wcmU+CgogICAgICA8aDQ+VmFyaWFibGUgc3Vic3RpdHV0aW9uPC9oND4KCiAgICAgIDxwPlRoaXMgcGx1Z2luIGFsc28gc3VwcG9ydHMgc3RyaW5nIHN1YnN0aXR1dGlvbiBieSBwcm92aWRpbmcgb25lIG9yIG1vcmUgdmFyaWFibGVzIHRvIHRoZSB7STE4TiB0YWd9LjwvcD4KICAgICAgPHA+SWYgdGhlIHRyYW5zbGF0aW9uIHN0cmluZyBpbiB0aGUgbGFuZyBmaWxlIGlzIG9mIHRoZSBmb3JtIDxjb2RlPnNvbWVrZXk9IlRoZSBjb2xvciBvZiB0aGUgIyNvYmogaXMgIyNjb2xvciI8L2NvZGU+IDxlbT4oYWxvbmcgd2l0aCBpdCdzIHZhcmlvdXMgdHJhbnNsYXRpb25zKS48L2VtPiAgVGhlbiBjYWxsaW5nIHRoZSBwbHVnaW4gbGlrZSB0aGlzIDxjb2RlPntJMThOIGtleT1zb21la2V5IF9vYmo9YXBwbGUgX2NvbG9yPXJlZH08L2NvZGU+IHdpbGwgcGVyZm9ybSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uPC9wPgogICAgICA8cD5UaGUgZWZmZWN0IGNhbiBiZSBjb21iaW5lZCB1c2luZyB0aGUgY2FsbCB0byB0aGlzIG1vZHVsZSBtdWx0aXBsZSB0aW1lczo8L3A+CiAgICAgIDxwcmU+PGNvZGU+e0kxOE4ga2V5PWFwcGxlIGFzc2lnbj1vYmp9PGJyLz57STE4TiBrZXk9cmVkIGFzc2lnbj1yZWR9PGJyLz57STE4TiBrZXk9c29tZWtleSBfb2JqPSRvYmogX2NvbG9yPSRyZWR9PC9jb2RlPjwvcHJlPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPntJMThOIGtleT1zdHJpbmcgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaW4gdGhlIGN1cnJlbnQgcmVhbG0sIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZS48L3A+CgogICAgICA8cD5Bcmd1bWVudHM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPmt8a2V5PXN0cmluZzwvY29kZT4gPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+IC0gVGhlIGxhbmd1YWdlIHN0cmluZyBrZXkuICBOb3RlIGVpdGhlciAmcXVvdDtrJnF1b3Q7IG9yICZxdW90O2tleSZxdW90OyBhcmUgYWNjZXB0YWJsZS48L2xpPgoJPGxpPjxjb2RlPmFzc2lnbj1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBPcHRpb25hbGx5IGFzc2lnbiB0aGUgb3V0cHV0IG9mIHRoaXMgZnVuY3Rpb24gdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogICAgICA8L3VsPgoKICAgPGxpPjxjb2RlPntsMTBuX2dldGFsbCBhc3NpZ249c3RyaW5nfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBnZXQgYWxsIG9mIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2Ugc3RyaW5ncyBvZiB0aGUgY3VycmVudCByZWFsbSBhcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSwgYW5kIGFzc2lnbiB0aGVtIHRvIGEgc21hcnR5IHZhcmlhYmxlLjwvcD4KICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgYXNzaWduIGFyZ3VtZW50IGlzIHJlcXVpcmVkIGZvciB0aGlzIHBsdWdpbi4gIGkuZTo8L3A+CiAgICAgIDxwcmU+PGNvZGU+e2wxMG5fZ2V0YWxsIGFzc2lnbj0nbGFuZ3N0cmluZ3MnfSAuLi4geyRsYW5nc3RyaW5ncy5oZWxsb308L2NvZGU+PC9wcmU+CiAgIDwvbGk+CgogICA8bGk+PGNvZGU+e2wxMG5fc2V0cmVhbG0gW3JlYWxtPXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBzZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugc3RyaW5nIHJlYWxtIHRvIGEgZGlmZmVyZW50IHJlYWxtLCBhbmQgb3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGVkIHN0cmluZ3MgdG8gYW4gYXNzb2NpYXRpdmUgYXJyYXkuIGkuZTo8L3A+CiAgICAgIDxwPkFyZ3VtZW50czo8L3A+CiAgICAgIDx1bD4KCTxsaT48Y29kZT5yZWFsbT1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBBbiBvcHRpb25hbCBhbHRlcm5hdGl2ZSByZWFsbSBuYW1lLiAgSWYgbm9uZSBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHJlYWxtIGlzIGFzc3VtZWQuPC9saT4KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGlvbnMgZm9yIHRoaXMgcmVhbG0gYXMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogICAgICA8L3VsPgogICAgICA8cHJlPjxjb2RlPntsMTBuX3NldHJlYWxtIHJlYWxtPSdmb3Jtc3RyaW5ncycgYXNzaWduPSdmb3Jtc3RyaW5ncyd9IC4uLiB7JGZvcm10cmluZ3Muc3VibWl0fTwvY29kZT48L3ByZT4KICAgPC9saT4KCiAgIDxsaT48Y29kZT57bDEwbl9vcHRpb25zIHJlYWxtPXN0cmluZyBbc2VsZWN0ZWQ9c3RyaW5nXX08L2NvZGU+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGlzIHVzZWZ1bCBpbiBzZWxlY3Qgc3RhdGVtZW50cy4gIEl0IHdpbGwgbG9hZCBhbGwgc3RyaW5ncyBmb3IgdGhlIHNwZWNpZmllZCByZWFsbSwgY29udmVydCB0aGVtIHRvIEhUTUwgb3B0aW9uIHRhZ3MsIGFuZCBtYXJrIHRoZSBpbmRpY2F0ZWQgb3B0aW9uIGFzIHNlbGVjdGVkLjwvcD4KICAgICAgPHA+QXJndW1lbnRzOjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT48Y29kZT5yZWFsbT1zdHJpbmc8L2NvZGU+IDxlbT4ocmVxdWlyZWQpPC9lbT4gLSBUaGUgcmVhbG0gdG8gbG9hZC48L2xpPgogICAgICAgIDxsaT48Y29kZT5zZWxlY3RlZD1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBPcHRpb25hbGx5IHNwZWNpZnkgdGhlIG9wdGlvbiB0aGF0IHNob3VsZCBiZSBzZWxlY3RlZCwgYnkgaXQncyBrZXkuPC9saT4KICAgICAgPC91bD4KICAgICAgPHByZT48Y29kZT4mbHQ7c2VsZWN0Jmd0O3tsMTBuX29wdGlvbnMgcmVhbG09Y291bnRyaWVzIHNlbGVjdGVkPUNBfSZsdDtzZWxlY3QmZ3Q7PC9jb2RlPjwvcHJlPgogICA8L2xpPgoKPC91bD4KCjxoMz5Mb2NhdGlvbiBhbmQgbmFtaW5nIG9mIEZpbGVzPC9oMz4KCjxwPkVyaWR1IHdpbGwgb25seSB1c2UgdGhlIGZpbGVzIGNyZWF0ZWQgdW5kZXI6PC9wPgo8cD4gPHByZT48Y29kZT4mbHQ7Q01TTVMgaW5zdGFsbGF0aW9uIHJvb3QmZ3Q7L2Fzc2V0cy9FcmlkdTwvY29kZT48L3ByZT4gPC9wPgoKPHA+QWxsIGZpbGVzIG5hbWVzIG11c3QgYmUgaW4gdGhlIGZvcm1hdCA8Y29kZT5sYW5nLjxzdHJvbmc+cmVhbG1fbmFtZTwvc3Ryb25nPi5pbmk8L2NvZGU+PC9wPgo8cD5UaGUgbmFtZSBvZiB0aGUgZGVmYXVsdCByZWFsbSBpcyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHNvLCBieSBkZWZhdWx0IHRoaXMgbW9kdWxlIHdpbGwgbG9vayBmb3IgdGhlIGRlZmF1bHQgcmVhbG0gZmlsZSBpbiA8Y29kZT4mbHQ7Q01TTVMgaW5zdGFsbGF0aW9uIHJvb3QmZ3Q7L2Fzc2V0cy9FcmlkdS9sYW5nLjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPi5pbmk8L2NvZGU+PC9wPgoKPGgzPkZvcm1hdCBvZiBGaWxlczwvaDM+CjxwPlRoaXMgbW9kdWxlIHVzZXMgSU5JIGZpbGUgZm9ybWF0IGZvciB0cmFuc2xhdGlvbi4gIFNlY3Rpb24gZW50cmllcyBzZXBhcmF0ZSBsYW5ndWFnZXMsIGFuZCBpbmRpdmlkdWFsIGVudHJpZXMgY29udGFpbiB0aGUgdHJhbnNsYXRpb25zLiAgQSBzaW1wbGUgbGFuZ3VhZ2UgZmlsZSBmb3IgRW5nbGlzaCBhbmQgRnJlbmNoIG1heSBsb29rIHNvbWV0aGluZyBsaWtlOjwvcD4KPHByZT4KW2VuX1VTXQpoZWxsbz1IZWxsbwpieWU9R29vZCBCeWUKCltmcl9GUl0KaGVsbG89Qm9uam91cgpieWU9QXUgUmV2b2lyCjwvcHJlPgoKPHA+TXVsdGkgbGluZSBlbnRyaWVzIGFyZSBwZXJtaXNzaWJsZSwgYnV0IG11c3QgYmUgcXVvdGVkLiAgaS5lOjwvcD4KPHByZT4KW2VuX1VTXQp0ZXJtc19vZl91c2U9IlRoaXMgaXMgYSB2ZXJ5IGxvbmcgdGV4dCB1c2luZwptdWx0aXBsZSBsaW5lcyBkZXNjcmliaW5nIHRoZSB0ZXJtcyBvZiB1c2UKZm9yIG15IHdlYnNpdGUuIgo8L3ByZT4KCjxoMz5EZWZhdWx0IGxhbmd1YWdlLCBhbmQgbWlzc2luZyBsYW5ndWFnZSBzdHJpbmdzPC9oMz4KPHA+SXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBkZWZhdWx0IGxhbmd1YWdlIGlzIGVuX1VTLiA8ZW0+KHRoaXMgbWF5IGNoYW5nZSBhdCBhIGxhdGVyIGRhdGUpPC9lbT4uICBTbyBpZiBhIHN0cmluZyBleGlzdHMgZm9yIGVuX1VTLCBidXQgbm90IGZvciB0aGUgY3VycmVudCBsYW5ndWFnZSwgdGhlbiB0aGUgRW5nbGlzaCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KPHA+VGhlIG1vZHVsZSB3aWxsIG5vdCByZXR1cm4gYW55IHZhbHVlIGlmIGEgdHJhbnNsYXRpb24gZm9yIGEgcmVxdWVzdGVkIGtleSBkb2VzIG5vdCBleGlzdCBpbiBlaXRoZXIgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugb3IgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuICBIb3dldmVyLCBhIGRlYnVnIGVudHJ5IHdpbGwgYmUgcGxhY2VkIGludG8gdGhlIDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjY2VjZWNlOyI+Jmx0O0NNU01TIGluc3RhbGxhdGlvbiByb290Jmd0Oy90bXAvY2FjaGUvZGVidWcubG9nPC9jb2RlPiBmaWxlIHRvIGFsbG93IHlvdSB0byBmaW5kIGluc3RhbmNlcyB3aGVyZSBhIHRyYW5zbGF0aW9uIGlzIHVzZWQsIGJ1dCBpcyBub3QgY3VycmVudGx5IHRyYW5zbGF0ZWQuPC9wPgoKPGgzPkNHbWwgVGFncyBSZXBsYWNlbWVudCBDaGVhdCBTaGVldDwvaDM+Cgo8cD5IZXJlIGlzIGEgbGlzdCBvZiB0aGUgcmVwbGFjZW1lbnRzIG5lZWRlZCB0byBiZSBkb25lIG9uIHRoZSB0ZW1wbGF0ZXMgaW4gb3JkZXIgdG8gbW92ZSBmcm9tIENHbWwgdG8gRXJpZHUgZnVuY3Rpb25hbGl0eTo8L3A+Cgo8dWw+CiAgPGxpPjxiPkNHbWw8L2I+J3MgbW9kdWxlIGRlZmF1bHQgYWN0aW9uOgogICAgPHA+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwgLi4ufSB7KiByZXBsYWNlIHdpdGggKn0ge0kxOE4gLi4ufTwvY29kZT48L3ByZT48YnI+CiAgICAgICAgICA8c21hbGw+PGk+Tm90ZTogPGI+STE4TjwvYj4gY2FwaXRhbGl6YXRpb24gaXMgdXNlZCB0byBtaW1pYyBDTVNNUyBNb2R1bGUgbmFtZSBjb252ZW50aW9uIHdhcyBpZiB0aGUgdGFnIHdlcmUgYSBtb2R1bGUgZGVmYXVsdCBhY3Rpb24gY2FsbC5hcyBpdCBvcmlnaW5hbGx5IHdhcyB3aXRoIENHbWwuPC9pPjwvc21hbGw+PGJyPgogICAgICA8c21hbGw+PGk+Tm90ZTogPGI+STE4TjwvYj4gZnJvbSA8Yj5JbnRlcm5hdGlvbmFsaXphdGlvbjwvYj4gc2hvcnRoYW5kLjwvaT48L3NtYWxsPjxicj4KICAgICAgPHNtYWxsPjxpPk5vdGU6IDxiPkVyaWR1PC9iPiBvd24gZGVmYXVsdCBhY3Rpb24gaXMgdXNlZCBmb3IgYSBkaWZmZXJlbnQgZnVuY3Rpb24uPC9pPjwvc21hbGw+CiAgICA8L3A+CiAgPC9saT4KICA8bGk+U21hcnR5IHBsdWdpbnM6CiAgICA8cD4KICAgICAgPHByZT48Y29kZT57Y2dfXyAuLi59IHsqIHJlcGxhY2Ugd2l0aCAqfSB7bDEwbiAuLi59PC9jb2RlPjwvcHJlPjxicj4KICAgICAgPHByZT48Y29kZT57Y2dtbF9nZXRhbGwgLi4ufSB7KiByZXBsYWNlIHdpdGggKn0ge2wxMG5fZ2V0YWxsIC4uLn08L2NvZGU+PC9wcmU+PGJyPgogICAgICA8cHJlPjxjb2RlPntjZ21sX3NldHJlYWxtIC4uLn0geyogcmVwbGFjZSB3aXRoICp9IHtsMTBuX3NldHJlYWxtIC4uLn08L2NvZGU+PC9wcmU+PGJyPgogICAgICA8cHJlPjxjb2RlPntjZ21sX29wdGlvbnMgLi4ufSB7KiByZXBsYWNlIHdpdGggKn0ge2wxMG5fb3B0aW9ucyAuLi59PC9jb2RlPjwvcHJlPjxicj4KICAgICAgPHNtYWxsPjxpPk5vdGU6IDxiPmwxMG48L2I+IGZyb20gPGI+bG9jYWxpemF0aW9uIHNob3J0aGFuZDwvYj4uPC9pPjwvc21hbGw+CiAgICA8L3A+CiAgPC9saT4KPC91bD4KICAgIDxwPkFsbCB0aGUgb3JpZ2luYWwgcGFyYW1ldGVycyBhcmUgc3VwcG9ydGVkLiBTZWUgYWJvdmUgcmVmZXJlbmNlcy48L3A+CgogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPgogICAgICA8cD5UaGUgYm90aCB0aGUgbmV3IFRyYW5zbGF0aW9ucyBDZW50cmUgYW5kIHRoZSBFbnRyaWVzIEVkaXRvciBjYW4gb25seSBlZGl0IHRoZSBkYXRhYmFzZSBkYXRhIG9mIHRoZSBtb2R1bGUuPC9wPgogICAgICA8cD5UaGUgYWJpbGl0eSB0byBlZGl0IHRoZSBpbmkgZmlsZXMgYW5kIGVudHJpZXMgaXMgaW4gdGhlIFRvIERvIGxpc3QgYW5kIHdpbGwgcHJvYmFibHkgYmUgaW5jbHVkZWQgaW4gb25lIG9mIHRoZSBuZXh0IHJlbGVhc2VzLjwvcD4KICAgIDwvZGl2PgoKPC9kaXY+PGRpdiBpZD0ibmV3X2MiPjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgogIDxoMz5XaGF0J3MgbmV3PC9oMz4KCiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+CiAgICA8cD5UcmFuc2xhdGlvbiBDZW50cmUgaGFzIGl0cyBvd24gcGVybWlzc2lvbnMsIHNvIHRoYXQgdHJhbnNsYXRvcnMgY2FuIGJlIGluIGEgc2VwYXJhdGUgZ3JvdXAgd2l0aCB0aGVpciBvd24gcGVybWlzc2lvbnMuPC9wPgogIDwvZGl2PgoKICA8cD5UaGVzZSBhcmUgc29tZSBvZiB0aGUgbmV3IGZlYXR1cmVzIG9mIHRoZSBsYXRlc3QgcmVsZWFzZXM6PC9wPgoKICA8dWw+CiAgICA8bGk+SW50ZWdyYXRpb24gb2YgQ0dtbCBtb2R1bGUgZnVuY3Rpb25hbGl0aWVzOzwvbGk+CiAgICA8bGk+VGhlIGxhbmd1YWdlIG1lbnUgdGVtcGxhdGUgc3lzdGVtIGhhcyBiZWVuIG1vdmVkIHRvIERlc2lnbiBNYW5hZ2VyOzwvbGk+CiAgICA8bGk+VGhlcmUgYXJlIG5vdyB0d28gbmV3IGVkaXRvcnM6CiAgICAgIDx1bD4KICAgICAgICA8bGk+YSBmcm9udGVuZCBkZXZlbG9wZXIncyBlZGl0b3IgdG8gY3JlYXRlIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGtleXMgYW5kIGVudHJpZXM7PC9saT4KICAgICAgICA8bGk+YSB0cmFuc2xhdG9yJ3MgZWRpdG9yIHRvIGFkZCB0aGUgdHJhbnNsYXRpb25zIGZvciBhbGwgb3RoZXIgbGFuZ3VhZ2VzOzwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpPlRyYW5zbGF0aW9uIENlbnRyZSBoYXMgaXRzIG93biBwZXJtaXNzaW9ucyB0byBhbGxvdyBsaW1pdGluZyB0cmFuc2xhdG9ycyBhY2Nlc3MgdG8gdGhlIHNpdGU7PC9saT4KICAgIDxsaT5FcmlkdSBpcyBub3cgZGVwZW5kZW50IG9uIENNU01TRXh0IHdoaWNoIHByb3ZpZGVzIHNvbWUgb2YgaXRzIGVkaXRvcnMnIGZ1bmN0aW9uYWxpdHk6PC9saT4KICA8L3VsPgoKPC9kaXY+PC9kaXY+PGRpdiBpZD0iY29udHJpYnV0ZV9jIj48ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoKICA8aDM+SG93IENhbiBJIEhlbHA/PC9oMz4KICA8cD5JZiB5b3Ugd2FudCB0byBoZWxwIHRoZSBkZXZlbG9wbWVudCBhbmQgbWFpbnRlbmFuY2Ugb2YgdGhpcyBtb2R1bGUsIHBsZWFzZSBjb25zaWRlciBkb25hdGluZy48L3A+CiAgPHA+QWxsIGhlbHAgaXMgYXBwcmVjaWF0ZWQsIG5vIGNvbnRyaWJ1dGlvbiBpcyB0b28gc21hbGwhIFRoZSBtb3JlIHBlb3BsZSBjb250cmlidXRlIHRoZSBtb3JlIHRpbWUgY2FuIGJlIGFsbG9jYXRlZCB0byB0aGUgbWFpbnRlbmFuY2UgYW5kIGRldmVsb3BtZW50IG9mIHRoZSBtb2R1bGUuIFRoaXMgYWxzbyBlbnJpY2hlcyBDTVMgTWFkZSBTaW1wbGUuPC9wPgoKICA8aDQ+UGF5UGFsPC9oND4KICA8cD5Zb3UgY2FuIGNvbnRyaWJ1dGUgd2l0aCBhIG9uZSB0aW1lIGRvbmF0aW9uIG9yIGEgcmVjdXJyZW50IG9uZSwganVzdCBjbGljayBvbjo8cD4KICAgIDxkaXYgY2xhc3M9Im1fdG9wXzI1Ij48L2Rpdj4KICA8cD4KICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZG9uYXRlLz9ob3N0ZWRfYnV0dG9uX2lkPTM2TFRYSDI0OEw3R0wiPgogICAgICAgIDxpbWcgc3JjPSJodHRwOi8vbG9jYWxob3N0L2Ntc21zMjIxNG1hbXMvbW9kdWxlcy9FcmlkdS9pbWFnZXMvcHBfYnV0dG9uLnBuZyIgYWx0PSJQYXlQYWwgRG9uYXRlIEJ1dHRvbiIgLz4KICAgICAgPC9hPgogIDwvcD4KICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+CiAgPHA+CiAgICBPciB1c2UgdGhlIGZvbGxvd2luZyBRUiBjb2RlIGZvciB0aGUgc2FtZSBQYXlQYWwgYWNjb3VudDogPC9wPgogIDxkaXYgY2xhc3M9Im1fdG9wXzI1Ij48L2Rpdj4KICAgIDxwPjxpbWcgc3JjPSJodHRwOi8vbG9jYWxob3N0L2Ntc21zMjIxNG1hbXMvbW9kdWxlcy9FcmlkdS9pbWFnZXMvcHBfcXJfY29kZS5wbmciIGFsdD0iUGF5UGFsIFFSIENvZGUiIC8+CiAgPC9wPgogIDxkaXYgY2xhc3M9Im1fdG9wXzI1Ij48L2Rpdj4KPHA+Tm90ZTogdGhlIHBheXBhbCBkb25hdGUgbGluayBoYXMgYmVlbiB1cGRhdGVkIHRvIG15IFNtQXJ0IExhYiBhY2NvdW50LiBJIHdhc24ndCB1c2luZyBteSBwZXJzb25hbCBhY2NvdW50IHRoYXQgbXVjaCBhbmQgdGhlIGFjY291bnQgd2FzIGJlaW5nIG1vcmUgb2YgYW4gaGFzc2xlIHRoYW4gYW4gYXNzZXQuLi4gVGhhdCdzIFBQIGZvcid5YS4uLjwvcD4KICA8aDQ+Qml0Y29pbjwvaDQ+CiAgPHA+IFVzZSB0aGUgZm9sbG93aW5nIGJ0YyBhZGRyZXNzOiA8L3A+CiAgPHA+PHNwYW4gaWQ9InMxIj4xN0cySkQ0MTFzVTNzd2Nwck5jR0xRQ2NIYVpCeUsxOThOPC9zcGFuPiA8YnV0dG9uIG9uY2xpY2s9ImNvcHlUb0NsaXBib2FyZCgnI3MxJykiPkNvcHkgdG8gQ2xpcGJvYXJkPC9idXR0b24+PC9wPgogIDxwPgogICAgT3IgdXNlIHRoZSBmb2xsb3dpbmcgUVIgY29kZTogPGJyPgogICAgPGltZyBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvY21zbXMyMjE0bWFtcy9tb2R1bGVzL0VyaWR1L2ltYWdlcy9idGNfcXJfY29kZS5wbmciIGFsdD0iUGF5UGFsIFFSIENvZGUiIC8+CiAgPC9wPgoKICA8aDM+Q29udHJpYnV0aW9uczwvaDM+CiAgPHA+T3BlbiBTb3VyY2UgbW9kdWxlIGRldmVsb3BtZW50IGZvciBDTVNNUyBpcyBwcmV0dHkgbXVjaCBhIHZvbHVudGVlciBjb21taXRtZW50LiBUaGUgZGV2ZWxvcGVyIGNvbW1pdHMgdGhlIHRpbWUgaGUgY2FuIHNwYXJlIHRvIHRoZSBwcm9qZWN0cyBoZSBjb25zaWRlcnMgaW1wb3J0YW50IHRvIHRoZSBmdXR1cmUgb2YgdGhlIGdyZWF0ZXIgcHJvamVjdCB0aGF0IENNU01TIGlzLiBTb21ldGltZXMgd2hhdCBvbmUgYmVsaWV2ZXMgaXMgaW1wb3J0YW50IGlzIG5vdCBjb252ZXJnZW50IHdpdGggd2hhdCB0aGUgY29tbXVuaXR5IGJlbGlldmVzIHRvIGJlIGltcG9ydGFudC4gU29tZXRpbWVzIGl0J3MgYSB3YWtldXAgY2FsbCBhbmQgdGhlIGRldmVsb3BlciBlbWJyYWNlcyBzb21lIG9mIHRoZSBjb21tdW5pdHkncyB2aXNpb24sIHNvbWV0aW1lcyBib3RoIHZpc2lvbnMgYXJlIG5vdCBjb21wYXRpYmxlLiBJdCdzIGEgYmFsYW5jZSBkaWZmaWN1bHQgdG8gYWNoaWV2ZSwgYnV0IGJyaW5ncyBtb3JlIHJlc3BvbnNpYmlsaXR5IHRvIHRoZSBkZXZlbG9wZXIuIEJ1dCBhbHNvIHJlcXVpcmVzIHNvbWUgZW1wYXRoeSBmcm9tIHRoZSBjb21tdW5pdHkuIEFuZCB0aW1lLi4uPC9wPgogIDxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50LjwvcD4KICA8cD5Bbm90aGVyIHdheSB0aGF0ICdraWNrcyB0aGUgY2FuJyBmb3J3YXJkIHdoaWxlIG1vdGl2YXRpbmcgdGhlIG1vZHVsZSBkZXZlbG9wZXIgaXMgdG8gc3BvbnNvciBmZWF0dXJlcyB0aGF0IHdlYiBkZXZlbG9wZXJzIHdvdWxkIGxpa2UgdG8gc2VlIGltcGxlbWVudGVkLiBXZWIgZGV2ZWxvcGVycywgbW9yZSBvZnRlbiB0aGF0IG5vdCwga25vdyB3aGF0IHRoZSBmaW5hbCBjbGllbnQgd2FudHMgb3IgbmVlZHMgYW5kIGhlbHAgYnJpZGdpbmcgdGhlIGdhcCBiZXR3ZWVuIHRoZSBmaW5hbCB1c2VyIGFuZCB0aGUgb3JpZ2luYWwgY3JlYXRvciBvZiB0aGUgbW9kdWxlcy4gS2VlcCBpbiBtaW5kIHRoYXQgbW9kdWxlcywgbW9yZSB0aGFuIHRoZSBDTVNNUyBjb3JlLCBhcmUgcGFydGljdWxhcmx5IGFwdCB0byBjb3ZlciBzaXRlcyBzcGVjaWFsIG5lZWRzLCB0aGUgY29yZSBiZWluZyB0aGUgc3VwcG9ydCBhcm91bmQgd2hpY2ggYWxsIHRoaW5ncyBhcmUgcG9zc2libGUuIFNvLCBpZiBzZWUgdGhlIG5lZWQgZm9yIGEgcGFydGljdWxhciBmZWF0dXJlIGluIGFuIGV4aXN0aW5nIG1vZHVsZSwgb3IgYSBiZXNwb2tlIG1vZHVsZSBmb3IgYSBzcGVjaWFsIG5lZWQsIHNlZSBpZiB0aGUgZmluYWwgY3VzdG9tZXIgY2FuIGZpdCBpbiB0aGUgYnVkZ2V0IHRoZSBzcG9uc29yc2hpcCBvZiB0aGF0IHByb2plY3QuIEFzayBhIGRldmVsb3BlciBvciB0aGUgYWN0dWFsIG1vZHVsZSBkZXZlbG9wZXIgaWYgaXRzIGEgbW9kdWxlIGZlYXR1cmUgdGhhdCBpcyByZXF1ZXN0ZWQsIGZvciBhbiBlc3RpbWF0ZSBmb3IgdGhlIGpvYiBhbmQgdHJ5IHRvIG1ha2UgaXQgcG9zc2libGUuIFNvbWV0aW1lcyBpdCBtYXkgYmUgY2hlYXBlciB0aGFuIGl0IGxvb2tzLCBvdGhlciB0aW1lcyBpdCBtYXkgYmUgcG9zc2libGUgdmlhIHNvbWUgc29ydCBvZiBjcm93ZCBmdW5kaW5nLiBXaGVuIGl0IGhhcHBlbnMsIGl0J3MgYSB3aW4td2luIHNpdHVhdGlvbi4gVGhlIGNvbW11bml0eSB3aW5zLCB0aGUgd2ViIGRldmVsb3BlciB3aW5zLCB0aGUgY2xpZW50IHdpbnMsIENNU01TIHdpbnMgYW5kIHRoZSBtb2R1bGUgZGV2ZWxvcGVyIHdpbnMuPC9wPgogIDxwPkEgZGlmZmVyZW50IHdheSB0aGF0IGhlbHBzIHRvbzogZm91bmQgYSBidWc/IGZpbGUgYSBidWcgcmVwb3J0LiBCdXQgcGxlYXNlLCBiZSBhcyB0aG9yb3VnaCBpbiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZywgdGhlIGNpcmN1bXN0YW5jZXMgYW5kIGVudmlyb25tZW50IHdoZXJlIGl0IGhhcHBlbmVkIGFuZCB0aGUgc3RlcHMgdG8gcmVwcm9kdWNlIGl0OyBpZiB0aGUgZGV2ZWxvcGVyIGNhbid0IHJlcHJvZHVjZSB0aGUgYnVnIGl0IHdpbGwgYmUgZGlmZmljdWx0LCBpZiBub3QgaW1wb3NzaWJsZSwgdG8gZml4IGl0OiBhcyBmYXIgYXMgdGhlIGRldmVsb3BlciBpcyBjb25jZXJuZWQgaWYgaXQgY2Fubm90IGJlIHJlcHJvZHVjZWQgaXQgZG9lc24ndCBleGlzdC4gQmV0dGVyIHlldCwgaWYgeW91IGtub3cgaG93IHRvIGZpeCBpdCwgc3VnZ2VzdCB0aGUgcG9zc2libGUgZml4LiBJZiB2YWxpZCwgdGhlIGRldmVsb3BlciB3aWxsIHN1cmVseSBpbmNsdWRlIGl0LjwvcD4KPC9kaXY+PC9kaXY+PGRpdiBpZD0iYWJvdXRfYyI+PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgPGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4KICA8cD5UaGlzIG1vZHVsZSBpcyBiYXNlZCBvbiA8c3Ryb25nPkJhYmVsPC9zdHJvbmc+IHdoaWNoIHdhcyBjcmVhdGVkIGJ5IDxzdHJvbmc+UGllcnJlLUx1YyBHZXJtYWluIChwbGdlcik8L3N0cm9uZz4sIGJhc2VkIG9uIGFuIGFwcHJvYWNoIGJ5IDxzdHJvbmc+TWFyY29zIENydXo8L3N0cm9uZz4uPC9wPgogIDxwPkl0IGFsc28gaW50ZWdyYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgPHN0cm9uZz5DR21sPC9zdHJvbmc+IG1vZHVsZSBkZXZlbG9wZWQgYnkgPHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgJmx0O2NhbGd1eTEwMDAmZ3Q7PC9zdHJvbmc+LjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KICA8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgogIDxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXRzIHVzZTo8L3A+CiAgSWYgeW91IGZpbmQgYW55IGJ1Z3MgcGxlYXNlIGZlZWwgZnJlZSB0byBzdWJtaXQgYSBidWcgcmVwb3J0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvYnVnL2xpc3QvMTM1NyIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+IG9yIGZvciBhbnkgZ29vZCBpZGVhcyBjb25zaWRlciBzdWJtaXRpbmcgYSBmZWF0dXJlIHJlcXVlc3QgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xMzU3IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT47CiAgPHA+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L3A+CiAgPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuPC9wPgoKICA8cD5QbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgZGV2ZWxvcGVycyBkbyBoYXZlIHRoZWlyIGRhaWx5IGpvYnMgd2hpY2ggbWVhbnMgdGhhdCBmZWF0dXJlIHJlcXVlc3RzIGFyZSBjb25zaWRlcmVkIGFuZCBkb25lIGFzIHRpbWUgYWxsb3dzLiBJZiB5b3UgbmVlZCBhIGZlYXR1cmUgcmVhbGx5IGJhZGx5IGNvbnNpZGVyIGNvbnRhY3Rpbmcgb25lIG9mIHRoZSBkZXZlbG9wZXJzIGZvciBhIHNwb25zb3JlZCBkZXZlbG9wbWVudC48L3A+CgogIDxwPklmIHdhbnQgdG8gaGVscCB0aGUgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29uc2lkZXIgPGEgaHJlZj0iIiBpZD0iZG9uYXRpbmciPmRvbmF0aW5nPC9hPi48L3A+CgoKICAgIDxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoKICAgICAgPHA+VGhlIE1vZHVsZSBpcyBjdXJyZW50bHkgYmVpbmcgZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+RmVybmFuZG8gTW9yZ2FkbyAoSm8gTW9yZyk8L3N0cm9uZz4KICAgICAgPGJyPgogICAgICBXZWI6IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5zbS1hcnQtbGFiLmNvbSIgcmVsPSJleHRlcm5hbCI+d3d3LnNtLWFydC1sYWIuY29tPC9hPgogICAgICA8YnI+CiAgICAgIEVtYWlsOiA8YSBocmVmPSJtYWlsdG86am9tb3JnQHNtLWFydC1sYWIuY29tIj5qb21vcmdAc20tYXJ0LWxhYi5jb208L2E+CiAgICAgIDwvcD4KICAgICAgCiAgICAgIDxwPkNvcHlyaWdodCAmY29weTsgMjAxNiAtIDIwMjIgLiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48YnI+PC9wPgogICAgICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+CiAgICAgIDxwPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgZnJlZSBzb2Z0d2FyZTs8YnIgLz4geW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYXMgcHVibGlzaGVkIGJ5IHRoZSA8c3Ryb25nPkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjwvc3Ryb25nPjs8YnIgLz4gZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CiAgICAgIDxwPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IDxzdHJvbmc+V0lUSE9VVCBBTlkgV0FSUkFOVFk8L3N0cm9uZz47PGJyIC8+IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiA8c3Ryb25nPk1FUkNIQU5UQUJJTElUWTwvc3Ryb25nPiBvciA8c3Ryb25nPkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFPC9zdHJvbmc+LjwvcD4KICAgICAgPHA+U2VlIHRoZUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPC9wPgogICAgICA8cD5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOzxiciAvPiBpZiBub3QsIHdyaXRlIHRvIHRoZSA8c3Ryb25nPkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8L3N0cm9uZz4gb3IgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+cmVhZCBpdCBvbmxpbmU8L2E+LjwvcD4KICAgICAgPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+RXJpZHU8L3N0cm9uZz4uPC9zdHJvbmc+PC9wPgogICAgICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+CiAgICAgIDxoND5Db250cmlidXRvcnM8L2g0PgogICAgICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+CiAgICAgIDxwPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3Lm1hdHRob3Juc2J5LmNhIiByZWw9ImV4dGVybmFsIj5NYXR0IEhvbXNieSAoRElHSTMpPC9hPiAtIHNwb25zb3JzaGlwLjwvcD4KPC9kaXY+PC9kaXY+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNU0V4dCA9Jmd0OyAxLjE8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKbyBNb3JnIChGZXJuYW5kbyBNb3JnYWRvKSAmbHQ7am9tb3JnQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjxoND5WZXJzaW9uIDEuMDwvaDQ+Cjx1bD4KICA8bGk+MXN0IHB1YmxpYyByZWxlYXNlLjwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[Manage frontend languages and multilingual behaviors.]]></description>
	<requires>
	  <requiredname>CMSMSExt</requiredname>
	  <requiredversion>1.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.moduledata/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.moduledata/moduledata.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxtb2R1bGVkYXRhIHZlcnNpb249JzEuMCc+DQo8TW9kdWxlTmFtZT5FcmlkdTwvTW9kdWxlTmFtZT4NCjxNb2R1bGVGcmllbmRseU5hbWU+PC9Nb2R1bGVGcmllbmRseU5hbWU+DQo8VmVyc2lvbj4xLjEuYmV0YS4xMzwvVmVyc2lvbj4NCjxBdXRob3I+Sm8gTW9yZyAoRmVybmFuZG8gTW9yZ2Fkbyk8L0F1dGhvcj4NCjxBdXRob3JFbWFpbD5qb21vcmdAY21zbWFkZXNpbXBsZS5vcmc8L0F1dGhvckVtYWlsPg0KPFN0YXJ0RGF0ZT48L1N0YXJ0RGF0ZT4NCjxQSFBIZWFkZXI+PCFbQ0RBVEFbSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTkNpTWdleVJ0YjJSMWJHVmZibUZ0WlgwZ0xTQjdKRzF2WkhWc1pWOW1jbWxsYm1Sc2VWOXVZVzFsZlEwS0l5QldaWEp6YVc5dUlIc2tiVzlrZFd4bFgzWmxjbk5wYjI1OURRb2pJSHNrYlc5a2RXeGxYMlJsYzJOeWFYQjBhVzl1ZlEwS0l5QW9ZeWtnZXlSemRHRnlkR1JoZEdWOUxYc2taVzVrWkdGMFpYMGdZbmtnZXlSdGIyUjFiR1ZmWVhWMGFHOXlmUTBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTkNpTU5DaU1nZXlSdGIyUjFiR1ZmYm1GdFpYMGdhWE1nWVNCRFRWTWdUV0ZrWlNCVGFXMXdiR1VnYlc5a2RXeGxJSFJvWVhRZ1pXNWhZbXhsY3lCMGFHVWdkMlZpSUdSbGRtVnNiM0JsY2lCMGJ5QmpjbVZoZEdVTkNpTWdiWFZzZEdsd2JHVWdiR2x6ZEhNZ2RHaHliM1ZuYUc5MWRDQmhJSE5wZEdVdUlFbDBJR05oYmlCaVpTQmtkWEJzYVdOaGRHVmtJR0Z1WkNCbmFYWmxiaUJtY21sbGJtUnNlUTBLSXlCdVlXMWxjeUJtYjNJZ1pXRnphV1Z5SUdOc2FXVnVkQ0J0WVdsdWRHVnVZVzVqWlM0TkNpTU5DaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0RFFvaklFTk5VeUF0SUVOTlV5Qk5ZV1JsSUZOcGJYQnNaU0JwY3lBb1l5a2dNakF3TlNCaWVTQlVaV1FnUzNWc2NDQW9kMmx6YUhsQVkyMXpiV0ZrWlhOcGJYQnNaUzV2Y21jcERRb2pJRlpwYzJsMElIUm9aU0JEVFZOTlV5Qm9iMjFsY0dGblpTQmhkRG9nYUhSMGNEb3ZMM2QzZHk1amJYTnRZV1JsYzJsdGNHeGxMbTl5WncwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTME5DaU1nUWtWSFNVNWZURWxEUlU1VFJRMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBOQ2lNZ1ZHaHBjeUJtYVd4bElHbHpJSEJoY25RZ2IyWWdleVJ0YjJSMWJHVmZibUZ0WlgwTkNpTWdleVJ0YjJSMWJHVmZibUZ0WlgwZ2NISnZaM0poYlNCcGN5Qm1jbVZsSUhOdlpuUjNZWEpsT3lCNWIzVWdZMkZ1SUhKbFpHbHpkSEpwWW5WMFpTQnBkQ0JoYm1RdmIzSWdiVzlrYVdaNURRb2pJR2wwSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdSMDVWSUVkbGJtVnlZV3dnVUhWaWJHbGpJRXhwWTJWdWMyVWdZWE1nY0hWaWJHbHphR1ZrSUdKNURRb2pJSFJvWlNCR2NtVmxJRk52Wm5SM1lYSmxJRVp2ZFc1a1lYUnBiMjQ3SUdWcGRHaGxjaUIyWlhKemFXOXVJRElnYjJZZ2RHaGxJRXhwWTJWdWMyVXNJRzl5RFFvaklDaGhkQ0I1YjNWeUlHOXdkR2x2YmlrZ1lXNTVJR3hoZEdWeUlIWmxjbk5wYjI0dURRb2pEUW9qSUhza2JXOWtkV3hsWDI1aGJXVjlJSEJ5YjJkeVlXMGdhWE1nWkdsemRISnBZblYwWldRZ2FXNGdkR2hsSUdodmNHVWdkR2hoZENCcGRDQjNhV3hzSUdKbElIVnpaV1oxYkN3TkNpTWdZblYwSUZkSlZFaFBWVlFnUVU1WklGZEJVbEpCVGxSWk95QjNhWFJvYjNWMElHVjJaVzRnZEdobElHbHRjR3hwWldRZ2QyRnljbUZ1ZEhrZ2IyWU5DaU1nVFVWU1EwaEJUbFJCUWtsTVNWUlpJRzl5SUVaSlZFNUZVMU1nUms5U0lFRWdVRUZTVkVsRFZVeEJVaUJRVlZKUVQxTkZMaUFnVTJWbElIUm9aUTBLSXlCSFRsVWdSMlZ1WlhKaGJDQlFkV0pzYVdNZ1RHbGpaVzV6WlNCbWIzSWdiVzl5WlNCa1pYUmhhV3h6TGcwS0l5QlpiM1VnYzJodmRXeGtJR2hoZG1VZ2NtVmpaV2wyWldRZ1lTQmpiM0I1SUc5bUlIUm9aU0JIVGxVZ1IyVnVaWEpoYkNCUWRXSnNhV01nVEdsalpXNXpaUTBLSXlCaGJHOXVaeUIzYVhSb0lIUm9hWE1nY0hKdlozSmhiVHNnYVdZZ2JtOTBMQ0IzY21sMFpTQjBieUIwYUdVZ1JuSmxaU0JUYjJaMGQyRnlaUTBLSXlCR2IzVnVaR0YwYVc5dUxDQkpibU11TENBMU9TQlVaVzF3YkdVZ1VHeGhZMlVzSUZOMWFYUmxJRE16TUN3Z1FtOXpkRzl1TENCTlFTQXdNakV4TVMweE16QTNJRlZUUVEwS0l5QlBjaUJ5WldGa0lHbDBJRzl1YkdsdVpUb2dhSFIwY0RvdkwzZDNkeTVuYm5VdWIzSm5MMnhwWTJWdWMyVnpMMnhwWTJWdWMyVnpMbWgwYld3alIxQk1EUW9qRFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRMEtJeUJGVGtSZlRFbERSVTVUUlEwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMD1dXT48L1BIUEhlYWRlcj4NCjxMaWNlbmNlPkdQTCBWMzwvTGljZW5jZT4NCjxGaWxsSGVhZGVyPjA8L0ZpbGxIZWFkZXI+DQo8L21vZHVsZWRhdGE+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQ0KDQokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7DQpmb3IoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9DQpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCcpOw0KLy9oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKicpOw0KaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzOiBHRVQsIFBPU1QnKTsNCmhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogWC1SZXF1ZXN0ZWQtV2l0aCcpOw0KDQokcmVxdWVzdCAgICAgICAgICA9ICRfUkVRVUVTVDsNCiR2ZXJiICAgICAgICAgICAgID0gZW1wdHkgKCRyZXF1ZXN0Wyd2ZXJiJ10pID8gJycgOiAkcmVxdWVzdFsndmVyYiddOw0KJGRlYnVnICAgICAgICAgICAgPSAnJzsNCiRyZXNwb25zZVsndmVyYiddID0gJHZlcmI7DQoNCiRyZXNwb25zZSA9IFsNCiAgICAgICAgICAgICAgJ3ZlcmInICAgPT4gJHZlcmIsDQogICAgICAgICAgICAgICdkYXRhJyAgID0+IFtdLA0KICAgICAgICAgICAgICAnc3RhdHVzJyA9PiAnQ29kZSAyMDAwOiBSZXNvdXJjZSBhY2Nlc3Mgbm90IGFsbG93ZWQnLCAjIGRlZmF1bHQNCiAgICAgICAgICAgICAgJ2RlYnVnJyAgPT4gJGRlYnVnDQogICAgICAgICAgICBdOw0KDQp0cnkNCnsNCiAgc3dpdGNoICgkdmVyYikNCiAgew0KICAgIGNhc2UgJ3Rlc3QnOg0KICAgICAgJHJlc3BvbnNlWydkYXRhJ10gPSd0ZXN0JzsNCiAgICAgICRyZXNwb25zZVsnc3RhdHVzJ10gPSAnT0snOw0KICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgJ2xpc3RfZGJfa2V5c19pbmRleCc6DQogIA0KICAgICAgJGVfb3BzICAgICAgICAgICAgICA9IFxFcmlkdVxlbnRyaWVzX29wczo6Z2V0SW5zdGFuY2UoKTsNCiAgICAgICRyZXNwb25zZVsnZGF0YSddICAgPSAkZV9vcHMtPmdldF9rZXlzKCk7DQogICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ09LJzsNCiAgICAgIA0KICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgJ2xpc3RfZnNfa2V5c19pbmRleCc6DQogICAgICAkcmVzcG9uc2VbJ2RhdGEnXSA9IFtdOw0KICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdPSyc7DQogICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAnc2V0X2RlZmF1bHRfbGFuZyc6DQogICAgICBpZiggaXNzZXQoJHJlcXVlc3RbJ2lkJ10pICkNCiAgICAgIHsNCiAgICAgICAgY21zX3VzZXJwcmVmczo6c2V0KCdlcmlkdV90Y19kZWZhdWx0X2xhbmcnLCAkX1JFUVVFU1RbJ2lkJ10gKTsNCiAgICAgICAgJHJlc3BvbnNlWydkYXRhJ10gPSBbXTsNCiAgICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdPSyc7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRyZXNwb25zZVsnc3RhdHVzJ10gPSAnQ29kZSAxMDAwOiBtaXNzaW5nIHBhcmFtZXRlciEnOw0KICAgICAgfQ0KICAgIA0KICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgJ2dldF90cmFuc2xhdGlvbnMnOg0KICAgICAgDQogICAgICBpZiggaXNzZXQoJHJlcXVlc3RbJ2tleSddKSApDQogICAgICB7DQogICAgICAgIC8qKg0KICAgICAgICAgKiBAdmFyIFxFcmlkdVxlbnRyaWVzX29wcyAkZV9vcHMNCiAgICAgICAgICovDQogICAgICAgICRlX29wcyA9XEVyaWR1XGVudHJpZXNfb3BzOjpnZXRJbnN0YW5jZSgpOw0KICAgICAgICANCiAgICAgICAgJHJlc3BvbnNlWydkYXRhJ10gPSAkZV9vcHMtPmdldF9rZXlfZW50cmllcygkcmVxdWVzdFsna2V5J10pOw0KICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ09LJzsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdDb2RlIDEwMDA6IG1pc3NpbmcgcGFyYW1ldGVyISc7DQogICAgICB9DQogICAgICANCiAgICBicmVhazsNCiAgICANCiAgICBjYXNlICdsaXN0X2xhbmd1YWdlcyc6DQogICAgICAkcmVzcG9uc2VbJ2RhdGEnXSA9IFxFcmlkdVxsYW5ndWFnZXM6OmdldGxhbmd1YWdlcygpOw0KICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdPSyc7DQogICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAnYWRkX2RiX2tleSc6DQogIA0KICAgICAgaWYoIGlzc2V0KCRyZXF1ZXN0WydrZXknXSkgKQ0KICAgICAgew0KICAgICAgICAkZV9vcHMgPVxFcmlkdVxlbnRyaWVzX29wczo6Z2V0SW5zdGFuY2UoKTsNCiAgICAgICAgaWYoICRlX29wcy0+aXNfdmFsaWRfa2V5X25hbWUoJHJlcXVlc3RbJ2tleSddKSApDQogICAgICAgIHsNCiAgICAgICAgICAkZGJfb3BzID0gXEVyaWR1XGRiX29wczo6Z2V0SW5zdGFuY2UoKTsNCiAgICAgICAgICAka2V5ID0gbmV3IEVyaWR1XGxhbmdfa2V5KCk7DQogICAgICAgICAgJGtleS0+aWQgPSAwOw0KICAgICAgICAgICRrZXktPmNhcHRpb24gPSAkcmVxdWVzdFsna2V5J107DQogICAgICAgICAgJHJlc3BvbnNlWydkYXRhJ10gPSAkZGJfb3BzLT5zYXZlX2tleSgka2V5KTsNCiAgICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ09LJzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ0NvZGUgMTAwMTogaW52YWxpZCBrZXkhJzsNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRyZXNwb25zZVsnc3RhdHVzJ10gPSAnQ29kZSAxMDAwOiBtaXNzaW5nIHBhcmFtZXRlciEnOw0KICAgICAgfQ0KICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgJ2FkZF9kYl90cmFuc2xhdGlvbnMnOg0KICANCiAgICAgIGlmKCBpc3NldCgkcmVxdWVzdFsna2V5J10pICkNCiAgICAgIHsNCiAgICAgICAgJGRiX29wcyA9IFxFcmlkdVxkYl9vcHM6OmdldEluc3RhbmNlKCk7DQogICAgICAgICRlX29wcyA9XEVyaWR1XGVudHJpZXNfb3BzOjpnZXRJbnN0YW5jZSgpOw0KICAgICAgICAkZW50cmllcyA9ICRlX29wcy0+Z2V0X2tleV9lbnRyaWVzKCRyZXF1ZXN0WydrZXknXSk7DQogICAgICAgICRrZXkgPSBuZXcgRXJpZHVcbGFuZ19rZXkoJGRiX29wcy0+bG9hZF9rZXlfYnlfY2FwdGlvbigkcmVxdWVzdFsna2V5J10pKTsNCiAgICAgICAgJG5ld19lbnRyaWVzID0gW107DQogICAgICAgIA0KICAgICAgICBmb3JlYWNoKCRlbnRyaWVzIGFzICRrID0+ICR2KQ0KICAgICAgICB7DQogICAgICAgICAgJHRlbXAgPSAkZV9vcHMtPmdldF9lbnRyeV9mdWxsX2RhdGEoJGssICRyZXF1ZXN0WydrZXknXSk7DQogICAgICAgICAgJG5ld19lbnRyaWVzWyRrXSA9IG5ldyBcRXJpZHVcbGFuZ19lbnRyeSgpOw0KICAgICAgICAgICRuZXdfZW50cmllc1ska10tPmlkID0gJHRlbXBbJ2lkJ10gPz8gMDsNCiAgICAgICAgICAkbmV3X2VudHJpZXNbJGtdLT52YWx1ZSA9ICRyZXF1ZXN0WyRrXTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJGtleS0+ZW50cmllcyA9ICRuZXdfZW50cmllczsNCiAgICAgICAgDQogICAgICAgICRkYl9vcHMtPnJlcGxhY2Vfa2V5X2VudHJpZXMoJGtleSk7DQogIA0KICAgICAgICAkcmVzcG9uc2VbJ2RhdGEnXSA9IFtdOw0KICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ09LJzsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdDb2RlIDEwMDA6IG1pc3NpbmcgcGFyYW1ldGVyISc7DQogICAgICB9DQogICAgICANCiAgICBicmVhazsNCiAgICANCiAgICBjYXNlICdkYl9rZXlfZXhpc3RzJzoNCiAgICAgIGlmKCBpc3NldCgkcmVxdWVzdFsna2V5J10pICkNCiAgICAgIHsNCiAgICAgICAgJGRiX29wcyA9IFxFcmlkdVxkYl9vcHM6OmdldEluc3RhbmNlKCk7DQogICAgICAgICRyZXNwb25zZVsnZGF0YSddID0gKGJvb2wpJGRiX29wcy0+a2V5X2V4aXN0c19ieV9jYXB0aW9uKCRyZXF1ZXN0WydrZXknXSk7DQogICAgICAgICRyZXNwb25zZVsnc3RhdHVzJ10gPSAnT0snOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ0NvZGUgMTAwMDogbWlzc2luZyBwYXJhbWV0ZXIhJzsNCiAgICAgIH0NCiAgIGJyZWFrOw0KDQogICAgY2FzZSAnZGVsX2RiX2tleSc6DQogIA0KICAgICAgaWYoIGlzc2V0KCRyZXF1ZXN0WydrZXknXSkgKQ0KICAgICAgew0KICAgICAgICAkZGJfb3BzID0gXEVyaWR1XGRiX29wczo6Z2V0SW5zdGFuY2UoKTsNCiAgICAgICAgJHJlc3BvbnNlWydkYXRhJ10gPSAkZGJfb3BzLT5kZWxldGVfa2V5X2J5X2NhcHRpb24oJHJlcXVlc3RbJ2tleSddKTsNCiAgICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdPSyc7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRyZXNwb25zZVsnc3RhdHVzJ10gPSAnQ29kZSAxMDAwOiBtaXNzaW5nIHBhcmFtZXRlciEnOw0KICAgICAgfQ0KICAgICAgDQogICAgYnJlYWs7DQogICAgDQogICAgDQogICAgZGVmYXVsdDoNCiAgICAgICMganVzdCB1c2UgdGhlIHByZXNldCBzdHVmZi4uLg0KICB9DQp9DQpjYXRjaChcRXhjZXB0aW9uICRlKQ0Kew0KICAkcmVzcG9uc2UgPSBbDQogICAgICAgICAgICAgICAgJ3ZlcmInICAgPT4gJHZlcmIsDQogICAgICAgICAgICAgICAgJ2RhdGEnICAgPT4gW10sDQogICAgICAgICAgICAgICAgJ3N0YXR1cycgPT4gJ0NvZGUgJyAuICRlLT5nZXRDb2RlKCkgLiAnOiAnIC4gJGUtPmdldE1lc3NhZ2UoKSwNCiAgICAgICAgICAgICAgICAnZGVidWcnICA9PiAkZGVidWcNCiAgICAgICAgICAgICAgXTsNCn0NCg0KJHJlc3BvbnNlWydkZWJ1ZyddID0gJGRlYnVnOw0KDQp0cnkNCnsNCiAgJG91dCA9IGpzb25fZW5jb2RlKCRyZXNwb25zZSwgSlNPTl9USFJPV19PTl9FUlJPUik7DQp9DQpjYXRjaChKc29uRXhjZXB0aW9uICRlKQ0Kew0KICAkcmVzcG9uc2UgPSBbDQogICAgJ3ZlcmInICAgPT4gJHZlcmIsDQogICAgJ2RhdGEnICAgPT4gW10sDQogICAgJ3N0YXR1cycgPT4gKHN0cmluZykkZS0+Z2V0Q29kZSgpIC4gJzogJyAuICRlLT5nZXRNZXNzYWdlKCksDQogICAgJ2RlYnVnJyAgPT4gJGRlYnVnDQogIF07DQogIA0KICAkb3V0ID0ganNvbl9lbmNvZGUoJHJlc3BvbnNlKTsNCn0NCmVjaG8gJG91dDsNCmV4aXQ7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_cgml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgKGMpIDIwMTEtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIHVwbG9hZGVkIGZpbGVzCiMgIGhhcyBudW1lcm91cyBjYXBhYmlsaXRpZXMgaW5jbHVkaW5nIHlvdXNlbmRpdCwgdGltZSBsaW1pdGVkIHVybHMsCiMgIGZyb250ZW5kIHVwbG9hZHMuLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOgkvL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCi8qKiBAdmFyIGludCAkcmV0dXJuaWQgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLwovKiogQHZhciBFcmlkdSAkdGhpcyBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSB7IHJldHVybjsgfQoKIwojIEluaXRpYWxpemF0aW9uCiMKJHBhcm1zWydlcnJvciddICAgPSAwOwokcGFybXNbJ21lc3NhZ2UnXSA9ICdTdWNjZXNzISc7CiRwYXJtcyAgICAgICAgICAgID0gW107CgppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2RvX2ltcG9ydCddKSApCnsKICAkaW1wb3J0ZXIgPSBuZXcgXEVyaWR1XGNnbWxfaW1wb3J0ZXIoICdDR21sJywgJHRoaXMtPkdldE5hbWUoKSApOwogICRyZXN1bHQgPSAkaW1wb3J0ZXItPnJ1bigpOwp9CmVsc2UKewogICRwYXJtc1snZXJyb3InXSA9IDE7CiAgJHBhcm1zWydtZXNzYWdlJ10gPSAnTm8gZGlyZWN0IGFjY2VzcyEnOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYiggJGlkLCAnc2V0dGluZ3MnLCAkcGFybXMsICdkZWZhdWx0YWRtaW4nKTs=]]></data>
	</file>
	<file>
	  <filename>/action.admin_tranlation_center.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KdXNlIEVyaWR1XGVudHJpZXNfb3BzOw0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0NCi8qKiBAdmFyIFxFcmlkdSAkdGhpcyBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovDQovKiogQHZhciBpbnQgJHJldHVybmlkIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8NCg0KJGlzX2FkbWluaXN0cmF0b3IgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpOw0KJGlzX3RyYW5zbGF0b3IgICAgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCd0cmFuc2xfZXJpZHUnKTsNCg0KaWYoICEoJGlzX2FkbWluaXN0cmF0b3IgfHwgJGlzX3RyYW5zbGF0b3IpICkNCnsNCiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygnUGVybWlzc2lvbiBkZW5pZWQuJyk7DQogIA0KICByZXR1cm4gRkFMU0U7DQp9DQoNCiR2YXJzID0gWw0KICAnbGFuZ3VhZ2VzJyAgICAgICAgPT4gJHRoaXMtPmFkbWluX3JldHJpZXZlX2xhbmd1YWdlcygkaWQsICRyZXR1cm5pZCksDQogICdhYmNkJyAgICAgICAgICAgICA9PiBccmFuZ2UoJ0EnLCAnWicpLA0KICAnZGVmYXVsdF9sYW5ndWFnZScgPT4gY21zX3VzZXJwcmVmczo6Z2V0KCdlcmlkdV90Y19kZWZhdWx0X2xhbmcnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9sYW5ndWFnZScpKSwNCiAgJ2lzX2FkbWluaXN0cmF0b3InID0+ICRpc19hZG1pbmlzdHJhdG9yLA0KICAnaXNfdHJhbnNsYXRvcicgICAgPT4gJGlzX3RyYW5zbGF0b3IsDQpdOw0KDQokc21hcnR5LT5hc3NpZ24oJHZhcnMpOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZG1pbl90cmFuc2xhdGlvbl9jZW50ZXIudHBsJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.alter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKJG5ld3BhcmFtcyA9IGlzc2V0KCRwYXJhbXNbJ2xldmVsbmFtZSddKSA/IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAkcGFyYW1zWydsZXZlbG5hbWUnXSkgOiBhcnJheSgpOwoKaWYgKCFpc3NldCgkcGFyYW1zWydtb3ZlJ10pIHx8ICFpc3NldCgkcGFyYW1zWydsYW5nX2lkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydjdXJyZW50b3JkZXInXSkgKQp7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJG5ld3BhcmFtcyk7Cn0KCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRkYnRhYmxlID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMnOwokY3VycmVudG9yZGVyID0gJHBhcmFtc1snY3VycmVudG9yZGVyJ107CiRsYW5nX2lkID0gJHBhcmFtc1snbGFuZ19pZCddOwoKc3dpdGNoKCRwYXJhbXNbJ21vdmUnXSkKewoJCgljYXNlICdkZWxldGUnOgoJCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2xhbmdlbnRyaWVzIFdIRVJFIGlkPT8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nX2lkKSk7CgkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICRkYnRhYmxlIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxJzsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ19pZCkpOwoKCQkvLyBVUERBVEUgVEhFIE9SREVSIE9GIFRIRSBJVEVNUwoJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8gIjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudG9yZGVyKSk7CgkJCgkJJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2UiXSA9ICR0aGlzLT5sYW5nKCJtZXNzYWdlX2RlbGV0ZWQiKTsKCQlicmVhazsJCgoJY2FzZSAidXAiOgoJCWlmICgkY3VycmVudG9yZGVyICE9IDEpewoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRvcmRlci0xKSk7CgkJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgbGFuZ2NvZGUgPSA/IExJTUlUIDE7IjsKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7CgkJfQoJCWJyZWFrOwoJCQoJY2FzZSAiZG93biI6CgkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBpdGVtX29yZGVyID0gPyBMSU1JVCAxOyI7CgkJaWYoICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIrMSkpICl7CgkJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXIrMSkgV0hFUkUgbGFuZ2NvZGUgPSA/IExJTUlUIDE7IjsKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7CgkJfQoJCWJyZWFrOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.assign.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpCnsKICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZycsICR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsKICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZ19pbmZvJywgJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpOwp9CmVsc2UKewogICR0aGlzLT5hc3NpZ25fcGFnZV9sYW5nKCk7Cn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/action.auto_redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoISR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKSAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOwoKJHRoaXMtPmF1dG9fcmVkaXJlY3QoKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.changesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0KLyoqIEB2YXIgXEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovCgokbW9kcHJlZnMgPSAkdGhpcy0+Z2V0X21vZHByZWZzKCk7CiR0ZXN0ID0gW107CmZvcmVhY2goJG1vZHByZWZzIGFzICRwcmVmKQp7CiAgJHRlc3RbJHByZWZbMF1dID0gJHBhcmFtc1skcHJlZlswXV07CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoICRwcmVmWzBdLCBpc3NldCgkcGFyYW1zWyRwcmVmWzBdXSkgKTsKfQoKJHRoaXMtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICdkZWZhdWx0YWRtaW4nLAogICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX3RhYicgICAgID0+ICdzZXR0aW5ncycsCiAgICAgICAgICAgICAgICAgICAgJ21vZHVsZV9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnbWVzc2FnZV9tb2RpZmllZCcpCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKLyoqIEB2YXIgXEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KIyBoYWNrIHRvIGF2b2lkIGludGVyZmVyaW5nIHdpdGggdXNlciBzZWxlY3Rpb24gb2YgbGFuZwppZiggaXNzZXQoJF9HRVRbJ2xhbmcnXSkgfHwgaXNzZXQoJF9HRVRbJ2NpZCddKSApIHsgcmV0dXJuOyB9CgokZXZhbCA9IGlzc2V0KCRwYXJhbXNbJ2V2YWwnXSkgPyAoYm9vbCkkcGFyYW1zWydldmFsJ10gOiBGQUxTRTsKCmlmKGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkpCnsKICAkb3V0cHV0ID0gJHRoaXMtPnJldHJpZXZlX3RyYW5zbGF0aW9uKCRwYXJhbXNbJ3Nob3cnXSk7CiAgCiAgaWYoICFpc19hcnJheSgkb3V0cHV0KSApIHsgJG91dHB1dCA9IFskb3V0cHV0XTsgfQogIAogIGlmKGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSAmJiAnJyAhPT0gJHBhcmFtc1snYXNzaWduJ10pCiAgewogICAgJGtleXMgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snYXNzaWduJ10pOwogICAgCiAgICBpZihjb3VudCgka2V5cykgIT0gY291bnQoJG91dHB1dCkpCiAgICB7CiAgICAgICMgbWF5YmUgYW4gZXhjZXB0aW9uIGhlcmU/Pz8KICAgICAgZWNobyAnLS0gRXJpZHUgZmFpbGVkIHRvIGFzc2lnbjogdmFyIGNvdW50IGRvZXMgbm90IG1hdGNoIC0tJzsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJGkgPSAwOwogICAgICAgICAgICAKICAgICAgd2hpbGUoIGlzc2V0KCRvdXRwdXRbJGldKSApCiAgICAgIHsKICAgICAgICAjIGV2YWwgaWYgcmVxdWVzdGVkCiAgICAgICAgJHR4dCA9ICRldmFsID8gJHNtYXJ0eS0+ZmV0Y2goICdldmFsOicgLiAkb3V0cHV0WyRpXSkgOiAkb3V0cHV0WyRpXTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJGtleXNbJGldLCAkdHh0KTsKICAgICAgICAkaSsrOwogICAgICB9CiAgICB9CiAgfQogIGVsc2UKICB7CiAgICAjIGV2YWwgaWYgcmVxdWVzdGVkCiAgICAkdHh0ID0gJGV2YWwgPyAkc21hcnR5LT5mZXRjaCggJ2V2YWw6JyAuIGltcGxvZGUoJG91dHB1dCkgKSA6IGltcGxvZGUoJG91dHB1dCk7CiAgICBlY2hvICR0eHQ7CiAgfQp9CmVsc2UKewogICNkZWZhdWx0IGluaXRpYWxpemF0aW9uIG9uIHRvcCBvZiB0aGUgdGVtcGxhdGUKICAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOwp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0KLyoqIEB2YXIgXEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpICkKewkKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCdQZXJtaXNzaW9uIGRlbmllZC4nKTsgCiAgcmV0dXJuIGZhbHNlOyAKfQoKJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKCiRhY3RpdmVfdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddID8/ICdsYW5ndWFnZXMnOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbGFuZ3VhZ2VzJywgJHRoaXMtPkxhbmcoJ2xhbmd1YWdlcycpLCAnbGFuZ3VhZ2VzJyA9PT0gJGFjdGl2ZV90YWIgKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsICR0aGlzLT5MYW5nKCdzZXR0aW5ncycpLCAnc2V0dGluZ3MnID09PSAkYWN0aXZlX3RhYik7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2xhbmd1YWdlcycpOwppbmNsdWRlIF9fRElSX18gLiAnL3RhYi5sYW5ndWFnZXMucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnKTsKaW5jbHVkZSBfX0RJUl9fIC4gJy90YWIuc2V0dGluZ3MucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.deleteEntry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiYWRtaW5fZXJpZHUiKSkgcmV0dXJuIGZhbHNlOwoKJGVudHJ5ID0gKGlzc2V0KCRwYXJhbXNbJ2VudHJ5X2lkJ10pICYmICRwYXJhbXNbJ2VudHJ5X2lkJ10gIT0gJycpID8gJHBhcmFtc1snZW50cnlfaWQnXSA6IGZhbHNlOwoKaWYoJGVudHJ5KQp7CiAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9PyI7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGVudHJ5KSk7CiAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2VyaWR1X2xhbmdrZXlzIFdIRVJFIGlkPT8iOwogICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOyAgICAgICAgICAgICAgICAgICAgCiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXRlbnRyaWVzJywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdtZXNzYWdlX2RlbGV0ZWQnKSkpOwp9CmVsc2UKewogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0ZW50cmllcycsICRyZXR1cm5pZCk7Cn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/action.deletetpl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKJG5ld3BhcmFtcyA9IGFycmF5KCJhY3RpdmVfdGFiIj0+InRlbXBsYXRlcyIpOwoKaWYoaXNzZXQoJHBhcmFtc1sidHBsbmFtZSJdKSAmJiAkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1sidHBsbmFtZSJdKSkgICAgICAgCnsKICAkbmV3cGFyYW1zWyJtb2R1bGVfbWVzc2FnZT4iXSA9ICR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIik7Cn0KCiR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRuZXdwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editentries.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0KLyoqIEB2YXIgXEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovCgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignYWRtaW5fZXJpZHUnKSkKewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygnZXJyb3JfZGVuaWVkJykuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKewogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIFtdKTsKfQoKaWYoICFpc3NldCgkcGFyYW1zWydsYW5naWQnXSkgfHwgISR0aGlzLT5sYW5nX2V4aXN0KCRwYXJhbXNbJ2xhbmdpZCddKSApCnsKICAkcGFyYW1zWydsYW5naWQnXSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2xhbmd1YWdlJywgRkFMU0UpOwp9CgokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwokd3lzaXd5ZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3eXNpd3lnJywgZmFsc2UpOwoKJGxhbmd1YWdlID0gXEVyaWR1XGxhbmd1YWdlczo6R2V0TGFuZ0Zyb21JZCgkcGFyYW1zWydsYW5naWQnXSk7CiMganVzdCBhIGhhY2sgdG8ga2VlcCBiYWNrd2FyZCBjb21wYXQuLi4gKEpNKQokbGFuZ3VhZ2UgPSAkbGFuZ3VhZ2UtPnRvQXJyYXkoKTsKCi8vIHVnbHkgc3R1ZmYgbmVlZHMgcmV2aXNpdGluZyBhbmQgbW92aW5nIHRvIGEgdGVtcGxhdGUgKEpNKQoKJG5ld2VudHJ5bGluayA9ICc8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij4nCiAgICAgICAgICAgICAgICAuICR0aGlzLT5DcmVhdGVMaW5rKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdGVudHJ5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5c3RlbWljb24nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5MYW5nKCdhZGRfZW50cnknKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuICc8L2Rpdj4nOwogICAgICAgICAgICAKZWNobyAkbmV3ZW50cnlsaW5rOwoKZWNobyAnPGgxPicgLiAkbGFuZ3VhZ2VbJ25hbWUnXSAuICcgKCcgLiAkbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10gLiAnKTwvaDE+PGJyLz4nOwoKLyoqCiogbmV4dCBzdHVmZiB3aWxsIGJlIG1vdmVkIHRvIGEgaGVscGVyIGNsYXNzCiovCgokZGIgPSBjbXNtcygpLT5HZXREYigpOwoKJHF1ZXJ5ID0gJ1NFTEVDVCBpZCwgY2FwdGlvbiBGUk9NICcuIGNtc19kYl9wcmVmaXgoKQogICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMnOwoKJGtleXMgPSAgJGRiLT5HZXRBbGwoJHF1ZXJ5KTsKCiRjYXB0aW9ucyA9IGFycmF5KCk7CmZvcmVhY2goJGtleXMgYXMgJG9uZSkKewogICRjYXB0aW9uc1skb25lWydpZCddXSA9ICRvbmVbJ2NhcHRpb24nXTsKfQoKJHF1ZXJ5ID0gJ1NFTEVDVCBsYW5na2V5cy5pZCBpZCwgbGFuZ2tleXMuY2FwdGlvbiBjYXB0aW9uLCBsYW5nZW50cmllcy52YWx1ZSBGUk9NICcKICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQogICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5na2V5cyBsYW5na2V5cyBMRUZUIEpPSU4gJwogICAgICAgIC4gY21zX2RiX3ByZWZpeCgpCiAgICAgICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzIGxhbmdlbnRyaWVzIE9OIGxhbmdrZXlzLmlkID0gbGFuZ2VudHJpZXMuc3RyaW5naWQgV0hFUkUgbGFuZ2VudHJpZXMubGFuZ2lkPT8nOwogICAgICAgIAokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbGFuZ2lkJ10pICk7CgokdmFsdWVzID0gYXJyYXkoKTsKCndoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQp7CgkvLyRjYXB0aW9uc1skcm93WydpZCddXSA9ICRyb3dbJ2NhcHRpb24nXTsKCSR2YWx1ZXNbJHJvd1snaWQnXV0gPSAkcm93Wyd2YWx1ZSddOwp9CgkKaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pKQkKewoJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcKICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpCiAgICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgV0hFUkUgbGFuZ2lkPT8nOwogICAgICAgICAgCgkkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbGFuZ2lkJ10pICk7CiAgCgkkdmFsdWVzID0gYXJyYXkoKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIAogICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgCiAgICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgU0VUIGxhbmdpZD0/LCBzdHJpbmdpZD0/LCB2YWx1ZT0/JzsKCQogIGZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkKICB7CgkJaWYoc3Vic3RyKCRrZXksIDAsIDYpID09ICdlbnRyeV8nICYmICR2YWx1ZSAhPSAnJykKICAgIHsKCQkJJHZhbHVlc1tzdWJzdHIoJGtleSw2KV0gPSAkdmFsdWU7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2xhbmdpZCddLCBzdWJzdHIoJGtleSwgNiksICR2YWx1ZSkpOwoJCX0KCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKICB7CgkJJHRoaXMtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgICAgJGlkLCAKICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0YWRtaW4nLCAKICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwgCiAgICAgICAgICAgICAgICAgICAgICBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZHVsZV9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnbWVzc2FnZV9tb2RpZmllZCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICk7Cgl9CiAgZWxzZQogIHsKCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSggJHRoaXMtPkxhbmcoJ21lc3NhZ2VfbW9kaWZpZWQnKSApOwoJfQp9CQoKJGJ1dHRvbnMgPSAnPHA+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnYXBwbHknLCBsYW5nKCdhcHBseScpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKS4nPC9wPic7CgplY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdGVudHJpZXMnLCAkcmV0dXJuaWQpOwplY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5nY29kZScsICRwYXJhbXNbJ2xhbmdjb2RlJ10pOwplY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5naWQnLCAkcGFyYW1zWydsYW5naWQnXSk7CmlmKCEkd3lzaXd5ZykJZWNobyAnCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gaW5zdGFudF90YWJsZV9zZWFyY2god2hhdCl7Cgl2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJpZHVfbGFuZ3VhZ2VfZW50cmllcyIpOwoJaWYoIWRlc3RpbmF0aW9uKSByZXR1cm47Cgl2YXIgdGhlcm93cyA9IGRlc3RpbmF0aW9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOwoJZm9yKGk9MDtpPHRoZXJvd3MubGVuZ3RoO2krKyl7CgkJdmFyIHRoZWNvbHVtbiA9IHRoZXJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTsKCQlpZih0aGVjb2x1bW4gJiYgdGhlY29sdW1uLmlubmVySFRNTC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2hhdC50b0xvd2VyQ2FzZSgpKSA+PSAwKXsKCQkJdGhlcm93c1tpXS5zdHlsZS5kaXNwbGF5ID0gInRhYmxlLXJvdyI7CgkJfWVsc2V7CgkJCXRoZXJvd3NbaV0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9Cgl9Cn0KPC9zY3JpcHQ+Cic7CmVjaG8gJGJ1dHRvbnM7CmVjaG8gJzx0YWJsZSBpZD0iZXJpZHVfbGFuZ3VhZ2VfZW50cmllcyIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgonOwppZighJHd5c2l3eWcpIGVjaG8gJwo8dGhlYWQ+Cgk8dHI+PHRoPicgLiAkdGhpcy0+TGFuZygic2VhcmNodGhpc3RhYmxlIikuJzxpbnB1dCB0eXBlPSJ0ZXh0IiBvbmtleXVwPSJpbnN0YW50X3RhYmxlX3NlYXJjaCh0aGlzLnZhbHVlKTsiLz48L3RoPjx0aD48L3RoPjwvdHI+CjwvdGhlYWQ+Cic7CmVjaG8gJzx0Ym9keT4KCSc7CiAgCmZvcmVhY2goJGNhcHRpb25zIGFzICRrZXkgPT4gJGxhYmVsKQp7CgllY2hvICc8dHI+CgkJPHRkPicgLiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0ZW50cnkiLCAkcmV0dXJuaWQsICRsYWJlbCwgYXJyYXkoImVudHJ5X2lkIj0+JGtleSkpLic8L3RkPgogICAgCgkJPHRkPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR3eXNpd3lnLCAkaWQsIChpc3NldCgkdmFsdWVzWyRrZXldKSAmJiAkdmFsdWVzWyRrZXldKSA/ICR2YWx1ZXNbJGtleV0gOiAnJywgJ2VudHJ5XycgLiAka2V5LCAnJywgJycsICcnLCAnJywgNTAsIDEwKS4nPC90ZD4KCTwvdHI+CgknOwp9CmVjaG8gJwo8L3Rib2R5Pgo8L3RhYmxlPgonOwplY2hvICRidXR0b25zOwplY2hvICRuZXdlbnRyeWxpbms7CmVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editentry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKiogQHZhciBpbnQgJHJldHVybmlkIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KLyoqIEB2YXIgRXJpZHUgJHRoaXMgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLwoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgeyBleGl0OyB9CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignYWRtaW5fZXJpZHUnKSkKewoJZWNobyAnPHA+JyAuICR0aGlzLT5MYW5nKCdlcnJvcl9kZW5pZWQnKSAuICc8L3A+JzsKCXJldHVybiBGQUxTRTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCnsKICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdGVudHJpZXMnLCAkcmV0dXJuaWQsIFtdKTsKfQoKJHd5c2l3eWcgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd3lzaXd5ZycsIEZBTFNFKTsKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXModHJ1ZSk7CiRlbnRyeSA9ICRwYXJhbXNbJ2VudHJ5a2V5J10gPz8gRkFMU0U7CiRlbnRyeV9pZCA9ICRwYXJhbXNbJ2VudHJ5X2lkJ10gPz8gLTE7CiRjYXB0aW9uID0gJHBhcmFtc1snY2FwdGlvbiddID8/ICcnOwokdmFsdWVzID0gW107CiRsYW5nc19ieV9pZCA9IFtdOwoKZm9yZWFjaCgkbGFuZ3VhZ2VzIGFzICRvbmUpCnsKICAkbGFuZ3NfYnlfaWRbJG9uZS0+Z2V0X2lkKCldID0gJG9uZS0+Z2V0X2xhbmdjb2RlKCk7Cn0KCmlmKCcnICE9PSAkY2FwdGlvbiAmJiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICkgKQp7CiAgIyBub3cgYWxsb3dzIGZvciBhbHBoYW51bWVyaWMgYW5kIC0gYW5kIF8KICAkY2FwdGlvbiA9IHByZWdfcmVwbGFjZSgnL1teYS16X1wtMC05XS9pJywgJycsICRjYXB0aW9uKTsKICAKICAkZGJfb3BzID0gXEVyaWR1XGRiX29wczo6Z2V0SW5zdGFuY2UoKTsKICAkZV9vcHMgPVxFcmlkdVxlbnRyaWVzX29wczo6Z2V0SW5zdGFuY2UoKTsKICAKICAjIGhhbmRsZSB0aGUga2V5CiAgJGtleSA9IG5ldyBFcmlkdVxsYW5nX2tleSgpOwogICRrZXktPmlkID0gJGVudHJ5X2lkOwogICRrZXktPmNhcHRpb24gPSAkY2FwdGlvbjsKICAkZGJfb3BzLT5zYXZlX2tleSgka2V5KTsKICAKICAjIG5vdyBoYW5kbGUgdGhlIHRyYW5zbGF0aW9ucwoKICAkZW50cmllcyA9ICRlX29wcy0+Z2V0X2tleV9lbnRyaWVzKCRjYXB0aW9uKTsKICAka2V5ID0gbmV3IEVyaWR1XGxhbmdfa2V5KCAkZGJfb3BzLT5sb2FkX2tleV9ieV9jYXB0aW9uKCRjYXB0aW9uKSApOwogICRuZXdfZW50cmllcyA9IFtdOwogIAogIGZvcmVhY2goJGVudHJpZXMgYXMgJGsgPT4gJHYpCiAgewogICAgJHRlbXAgPSAkZV9vcHMtPmdldF9lbnRyeV9mdWxsX2RhdGEoJGssICRjYXB0aW9uKTsKICAgICRuZXdfZW50cmllc1ska10gPSBuZXcgXEVyaWR1XGxhbmdfZW50cnkoKTsKICAgICRuZXdfZW50cmllc1ska10tPmlkID0gJHRlbXBbJ2lkJ107CiAgICAkbmV3X2VudHJpZXNbJGtdLT52YWx1ZSA9ICRyZXF1ZXN0WyRrXTsKICB9CiAgCiAgJGtleS0+ZW50cmllcyA9ICRuZXdfZW50cmllczsKICAKICAkZGJfb3BzLT5yZXBsYWNlX2tleV9lbnRyaWVzKCRrZXkpOwogIAogIAovLyAgaWYoJGVudHJ5X2lkID4gMCkKLy8gIHsKLy8JCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnCi8vICAgIC4gY21zX2RiX3ByZWZpeCgpCi8vICAgIC8vLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzIFdIRVJFIHN0cmluZ2lkPT8nOwovLyAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgV0hFUkUgaWQ9Pyc7Ci8vCi8vICAgIHRyeQovLyAgICB7Ci8vCQkgICRyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRlbnRyeV9pZCkgKTsKLy8gICAgICBpZighJHIpIHRocm93IG5ldyBcRXhjZXB0aW9uKCRkYi0+RXJyTXNnKCkgLiAnOiAnIC4gJHF1ZXJ5KTsKLy8gICAgfQovLyAgICBjYXRjaChcRXhjZXB0aW9uICRlKQovLyAgICB7Ci8vICAgICAgZWNobyAkZS0+Z2V0TWVzc2FnZSgpOwovLyAgICB9Ci8vCX0KLy8gIGVsc2UKLy8gIHsKLy8JCS8vJGVudHJ5ID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzX3NlcScpOwovLwkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzIFNFVCBzdHJpbmdpZD0/LCBjYXB0aW9uPT8nOwovLwovLyAgICB0cnkKLy8gICAgewovLyAgICAgICRyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KC0xLCAkY2FwdGlvbikgKTsKLy8KLy8gICAgICBpZighJHIpIHRocm93IG5ldyBcRXhjZXB0aW9uKCRkYi0+RXJyTXNnKCkgLiAnOiAnIC4gJHF1ZXJ5KTsKLy8KLy8gICAgICAkZW50cnlfaWQgPSAkZGItPkluc2VydF9JRCgpOwovLyAgICB9Ci8vICAgIGNhdGNoKFxFeGNlcHRpb24gJGUpCi8vICAgIHsKLy8gICAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCk7Ci8vICAgIH0KLy8KLy8JfQoKLy8gICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBTRVQgc3RyaW5naWQ9PywgbGFuZ2lkPT8sIGxhbmdjb2RlPT8sIHZhbHVlPT8nOwovLwovLyAgZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKQovLyAgewovLyAgICAkaWR4ID0gc3Vic3RyKCRrZXksIDYpOwovLwovLyAgICBpZihzdWJzdHIoJGtleSwgMCwgNikgPT0gJ2VudHJ5XycgJiYgJHZhbHVlICE9ICcnKQovLyAgICB7Ci8vICAgICAgJHZhbHVlc1skaWR4XSA9ICR2YWx1ZTsKLy8KLy8gICAgICB0cnkKLy8gICAgICB7Ci8vICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeV9pZCwgJGlkeCwgJGxhbmdzX2J5X2lkWyRpZHhdLCAkdmFsdWUpKTsKLy8gICAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxFeGNlcHRpb24oJGRiLT5FcnJNc2coKSAuICc6ICcgLiAkcXVlcnkpOwovLyAgICAgIH0KLy8gICAgICBjYXRjaChcRXhjZXB0aW9uICRlKQovLyAgICAgIHsKLy8gICAgICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKTsKLy8gICAgICB9Ci8vCi8vICAgIH0KLy8gIH0KICAKICBpZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCiAgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXRlbnRyaWVzJywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX21lc3NhZ2UnPT4kdGhpcy0+TGFuZygnbWVzc2FnZV9tb2RpZmllZCcpKSk7CgkJIyR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZSc9PiR0aGlzLT5MYW5nKCdtZXNzYWdlX21vZGlmaWVkJykpKTsKCX0KICBlbHNlCiAgewoJCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdtZXNzYWdlX21vZGlmaWVkJykpOwoJfQoJCn0KZWxzZWlmKCRlbnRyeV9pZCA+IDApCnsKCSRxdWVyeSA9ICdTRUxFQ1QgaWQsIGNhcHRpb24gRlJPTSAnCiAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQogICAgICAgICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzIFdIRVJFIGlkPT8gTElNSVQgMSc7CiAgICAgICAgICAKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIFskZW50cnlfaWRdKTsKCQogIGlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogIHsKICAgICRlbnRyeSA9ICRyb3dbJ2lkJ107CgkJJGVudHJ5X2lkID0gJHJvd1snaWQnXTsKCQkkY2FwdGlvbiA9ICRyb3dbJ2NhcHRpb24nXTsKCQkkcXVlcnkgPSAiU0VMRUNUIGxhbmdpZCwgdmFsdWUgRlJPTSAiCiAgICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpIAogICAgICAgICAgICAuICJtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9PyI7CiAgICAgICAgICAgIAoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIFskZW50cnlfaWRdKTsKICAgIAoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgewoJCQkkdmFsdWVzWyRyb3dbJ2xhbmdpZCddXSA9ICRyb3dbJ3ZhbHVlJ107CgkJfQoJfQp9CgojIG1vdmUgYWxsIHRoaXMgaW50byBhIHRlbXBsYXRlPz8/IChKTSkKCiRidXR0b25zID0gJzxwPicKICAgICAgICAgIC4gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKQogICAgICAgICAgLiAnICcKICAgICAgICAgIC4gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSkKICAgICAgICAgIC4gJyAnCiAgICAgICAgICAuICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkKICAgICAgICAgIC4gJzwvcD4nOwoKZWNobyAnPGgxPicgLiAkdGhpcy0+TGFuZygnZW50cnknKSAuICc8L2gxPic7CgplY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdGVudHJ5JywgJHJldHVybmlkKTsKCmVjaG8gJGJ1dHRvbnM7CgppZigkZW50cnkgfHwgJGVudHJ5X2lkID4gMCkKewoJZWNobyAnPHA+JyAuICR0aGlzLT5MYW5nKCdlbnRyeW5hbWUnKSAuICcgOiAnIC4gJGNhcHRpb24gLiAnPC9wPic7CiAgZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiZW50cnlrZXkiLCAkZW50cnkpOwoJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiZW50cnlfaWQiLCAkZW50cnlfaWQpOwoJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiY2FwdGlvbiIsICRjYXB0aW9uKTsKCWVjaG8gJzxwPicgLiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVFbnRyeScsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoImRlbGV0ZV9lbnRyeSIpLCBhcnJheSgnZW50cnlfaWQnID0+ICRlbnRyeV9pZCksICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRlZW50cnknKSkuJzwvcD4nOwp9CmVsc2UKewoJZWNobyAnPHA+JyAuICR0aGlzLT5MYW5nKCdlbnRyeW5hbWUnKSAuICcqIDogJyAuICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2FwdGlvbicsICRyZXR1cm5pZCwgJycsIDY0LCA2NCkgLiAnPC9wPic7Cn0KZWNobyAnPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4nOwoKCmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZykKewogICRvbmVsYW5nID0gJGxhbmctPnRvQXJyYXkoKTsKCWVjaG8gJwoJPHRyPgoJCTx0ZD4nIAogICAgLiAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0ZW50cmllcycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgJG9uZWxhbmdbJ25hbWUnXQogICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAoJyAuICRvbmVsYW5nWydsYW5nY29kZSddIC4gJyknLCBhcnJheSgnbGFuZ2lkJyA9PiAkb25lbGFuZ1snaWQnXSkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgLiAnPC90ZD4KCQk8dGQ+JwogICAgLiAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd3lzaXd5ZywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNzZXQoJHZhbHVlc1skb25lbGFuZ1snaWQnXV0pICYmICR2YWx1ZXNbJG9uZWxhbmdbJ2lkJ11dKSA/ICR2YWx1ZXNbJG9uZWxhbmdbJ2lkJ11dIDogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnlfJyAuICRvbmVsYW5nWydpZCddKSAuICc8L3RkPgoJPC90cj4nOwp9CmVjaG8gJwo8L3Rib2R5Pgo8L3RhYmxlPgonOwplY2hvICRidXR0b25zOwplY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editlang.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKiogQHZhciBpbnQgJHJldHVybmlkIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KLyoqIEB2YXIgQ01TTVNFeHRcWFRNb2R1bGUgJHRoaXMgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLwppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0KCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignYWRtaW5fZXJpZHUnKSApCnsKCWVjaG8gJzxwPicgLiAkdGhpcy0+TGFuZygnZXJyb3JfZGVuaWVkJykgLiAnPC9wPic7CglyZXR1cm4gZmFsc2U7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQkKewogICR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgpICk7Cn0KCiRsYW5nX2lkID0gaXNzZXQoJHBhcmFtc1snbGFuZ2lkJ10pID8gJHBhcmFtc1snbGFuZ2lkJ10gOiAtMTsKCmlmKCAkbGFuZ19pZCA+IDApCnsKICAjIHdlIGFyZSBlZGl0aW5nCiAgJGxhbmcgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRMYW5nRnJvbUlkKCRsYW5nX2lkKTsKfQplbHNlCnsKICAjIG5ldyBlbnRyeQogICRsYW5nID0gbmV3IFxFcmlkdVxsYW5ndWFnZSgpOwp9CgojIGp1c3QgYSBoYWNrIHRvIGtlZXAgYmFja3dhcmQgY29tcGF0Li4uIChKTSkKIyBhcnJheSB0byBzdGRjbGFzcwokaXRlbSA9IChvYmplY3QpJGxhbmctPnRvQXJyYXkoKTsKCmlmKCAhaXNzZXQoJGl0ZW0tPmRvbWFpbikgKSAkaXRlbS0+ZG9tYWluID0gJyc7CiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CiRkYiA9IGNtc21zKCktPkdldERiKCk7CgppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgKQkKewoJCglpZighJHBhcmFtc1sncm9vdF9pZCddIHx8ICRwYXJhbXNbJ2xhbmdjb2RlJ10gPT0gJycgfHwgJHBhcmFtc1snbmFtZSddID09ICcnKQogIHsKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCAkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2dpbnZhbHVlJykgKTsKCX0KICBlbHNlCiAgewogICAgJGl0ZW0tPmlkID0gJGxhbmdfaWQ7CiAgICAkaXRlbS0+bGFuZ2NvZGUgPSAkdGhpcy0+cGxjcmVhdGVhbGlhcyhpc3NldCgkcGFyYW1zWydsYW5nY29kZSddKSA/ICRwYXJhbXNbJ2xhbmdjb2RlJ10gOiAnJyk7CiAgICAkaXRlbS0+cm9vdF9pZCA9IGlzc2V0KCRwYXJhbXNbJ3Jvb3RfaWQnXSkgPyAkcGFyYW1zWydyb290X2lkJ10gOiBGQUxTRTsKICAgICRpdGVtLT5kZWZhdWx0X2lkID0gaXNzZXQoJHBhcmFtc1snZGVmYXVsdF9pZCddKSA/ICRwYXJhbXNbJ2RlZmF1bHRfaWQnXSA6ICcnOwogICAgJGl0ZW0tPm5hbWUgPSBpc3NldCgkcGFyYW1zWyduYW1lJ10pID8gJHBhcmFtc1snbmFtZSddIDogJyc7CiAgICAkaXRlbS0+bWVudV9uYW1lID0gaXNzZXQoJHBhcmFtc1snbWVudV9uYW1lJ10pID8gJHBhcmFtc1snbWVudV9uYW1lJ10gOiAnJzsKICAgICRpdGVtLT5hY3RpdmUgPSBpc3NldCgkcGFyYW1zWydhY3RpdmUnXSkgPyAkcGFyYW1zWydhY3RpdmUnXSA6IDE7CiAgICAkaXRlbS0+aXRlbV9vcmRlciA9ICFlbXB0eSgkcGFyYW1zWydpdGVtX29yZGVyJ10pID8gJHBhcmFtc1snaXRlbV9vcmRlciddIDogXEVyaWR1XGxhbmdfb3BzOjpjb3VudF9mcm9tX2RiKCdsYW5ndWFnZXMnLCAnbGFuZ2NvZGUnKSArIDE7CiAgICAkaXRlbS0+ZG9tYWluID0gaXNzZXQoJHBhcmFtc1snZG9tYWluJ10pID8gJHBhcmFtc1snZG9tYWluJ10gOiAnJzsKICAgICRpdGVtLT5pc29fNjM5XzEgPSBpc3NldCgkcGFyYW1zWydpc29fNjM5XzEnXSkgPyAkcGFyYW1zWydpc29fNjM5XzEnXSA6ICcnOwogICAgJGl0ZW0tPmlzb18zMTY2XzFfYWxwaGFfMiA9IGlzc2V0KCRwYXJhbXNbJ2lzb18zMTY2XzFfYWxwaGFfMiddKSA/ICRwYXJhbXNbJ2lzb18zMTY2XzFfYWxwaGFfMiddIDogJyc7CiAgICAKICAgICMgc2F2ZQogICAgJGxhbmctPmZyb21BcnJheSggKGFycmF5KSRpdGVtICk7CiAgICAkbGFuZy0+U2F2ZSgpOwogICAgICAKCQlpZihpc3NldCgkcGFyYW1zWydhcHBseSddKSkKICAgIHsKCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ21lc3NhZ2VfbW9kaWZpZWQnKSk7CgkJfQogICAgZWxzZQogICAgewoJCQkkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoICdtb2R1bGVfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfbW9kaWZpZWQnKSApICk7CQoJCX0KCX0KfQoKLyoqCiogc21hcnR5IHN0dWZmCiovCgokaGlkZGVuID0gJyc7CgovLyBwcmVwYXJlIHJvb3QgcGFnZXMgY29tYm8KJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXMoKTsKJGxhbmd1YWdlc19yb290aWRzID0gYXJyYXkoKTsKJGxhbmd1YWdlc19jb2RlcyA9IGFycmF5KCk7Cgpmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGFsYW5nKQp7CiAgJG9uZWxhbmcgPSAkYWxhbmctPnRvQXJyYXkoKTsKCSRsYW5ndWFnZXNfcm9vdGlkc1tdID0gJG9uZWxhbmdbJ3Jvb3RfaWQnXTsKCSRsYW5ndWFnZXNfY29kZXNbXSA9ICRvbmVsYW5nWydsYW5nY29kZSddOwp9CgokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCBjb250ZW50X2lkLCBjb250ZW50X25hbWUgRlJPTSBgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdjb250ZW50YCBXSEVSRSBwYXJlbnRfaWQgPCAxJyk7CiRvcHRpb25zID0gYXJyYXkoKTsKCndoaWxlKCAkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApCnsKCWlmKCAhaW5fYXJyYXkoJHJvd1snY29udGVudF9pZCddLCAkbGFuZ3VhZ2VzX3Jvb3RpZHMpIHx8IChpc3NldCgkaXRlbS0+cm9vdF9pZCkgJiYgJHJvd1snY29udGVudF9pZCddID09ICRpdGVtLT5yb290X2lkKSApCQogIHsKICAgICRvcHRpb25zWyRyb3dbJ2NvbnRlbnRfbmFtZSddXSA9ICRyb3dbJ2NvbnRlbnRfaWQnXTsKICB9Cn0KCiRzbWFydHktPmFzc2lnbigKICAgICAgICAgICAgICAgICAgJ3Jvb3RfaWRfaW5wdXQnLCAKICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAncm9vdF9pZCcsICRvcHRpb25zLCAtMSwgaXNzZXQoJGl0ZW0tPnJvb3RfaWQpID8gJGl0ZW0tPnJvb3RfaWQgOiAwKSAKICAgICAgICAgICAgICAgICk7CgovLyBwcmVwYXJlIGRlZmF1bHQgcGFnZXMgY29tYm8KJGNudG9wZXJhdGlvbnMgPSBjbXNtcygpLT5nZXRDb250ZW50T3BlcmF0aW9ucygpOwokc21hcnR5LT5hc3NpZ24oCiAgICAgICAgICAgICAgICAgICdkZWZhdWx0X2lkX2lucHV0JywgCiAgICAgICAgICAgICAgICAgICRjbnRvcGVyYXRpb25zLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgaXNzZXQoJGl0ZW0tPmRlZmF1bHRfaWQpID8gJGl0ZW0tPmRlZmF1bHRfaWQgOiAnLTEnLCAkaWQgLiAnZGVmYXVsdF9pZCcpCiAgICAgICAgICAgICAgICApOwoKaWYoJGxhbmdfaWQgPCAxKQp7CiAgJGxhbmdsaXN0ID0gXEVyaWR1XHV0aWxzOjpHZXRSZWdCY3A0N0NvZGVzTGlzdCgpOwogIAoJJHBvc3NpYmxlbGFuZ3MgPSBhcnJheSgnLScgPT4gJy8nKTsKCS8vYXNvcnQoJGxhbmdsaXN0KTsKICAKCWZvcmVhY2ggKCRsYW5nbGlzdCBhcyAka2V5ID0+ICR2YWwpIAogIHsKCQkkbG5hbWUgPSBleHBsb2RlKCcoJywgJHZhbCk7CgkJCiAgICBpZihjb3VudCgkbG5hbWUpID09IDEpCiAgICB7CgkJCSRsbmFtZSA9ICR2YWw7CgkJfQogICAgZWxzZQogICAgewoJCQkkbG5hbWUgPSB0cmltKCB0cmltKCRsbmFtZVsxXSwgJyknKSApOwoJCX0KICAgIAogICAgIyB3ZSB3aWxsIG9wZXJhdGUgb24gdGhpcyBzb29uIGFuZCAkbmV3X2tleSB3aWxsIGJlIGRpZmZlcmVudCB0aGFuICRrZXkKICAgICRuZXdfa2V5ID0gJGtleTsKICAgIAoJCWlmKCAhaW5fYXJyYXkoJG5ld19rZXksICRsYW5ndWFnZXNfY29kZXMpICkJCiAgICB7CiAgICAgICRwb3NzaWJsZWxhbmdzWyRuZXdfa2V5IC4gJyAvICcgLiAkdmFsXSA9ICRuZXdfa2V5IC4gJy8nIC4gJGxuYW1lOwogICAgfQoJfQogIAoJJGxhbmdzZWxlY3QgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2xhbmdzZWxlY3QnLCAkcG9zc2libGVsYW5ncyk7CgkkbGFuZ2NvZGVfaW5wdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnbGFuZ2NvZGUnLCAnJywgMTUsIDgpOwp9CmVsc2UKewoJJGxhbmdjb2RlX2lucHV0ID0gJGl0ZW0tPmxhbmdjb2RlOwoJJGxhbmdzZWxlY3QgPSBmYWxzZTsKfQoKJGhpZGRlbiAgID0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2xhbmdpZCcsICRsYW5nX2lkKTsKJGhpZGRlbiAgLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fb3JkZXInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3NldCgkaXRlbSkgPyAkaXRlbS0+aXRlbV9vcmRlciA6IFxFcmlkdVxsYW5nX29wczo6Y291bnRfZnJvbV9kYignbGFuZ3VhZ2VzJywgJ2xhbmdjb2RlJykgKyAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiRoaWRkZW4gIC49ICRsYW5nX2lkID4gMCA/ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5nY29kZScsICRpdGVtLT5sYW5nY29kZSkgOiAnJzsKCiRzbWFydHktPmFzc2lnbignaGlkZGVuJywgJGhpZGRlbik7CiRzbWFydHktPmFzc2lnbignbGFuZ3NlbGVjdCcsICRsYW5nc2VsZWN0KTsKJHNtYXJ0eS0+YXNzaWduKCdsYW5nY29kZV9pbnB1dCcsICRsYW5nY29kZV9pbnB1dCk7CgokaXRlbS0+bmFtZV9sYWJlbCA9ICR0aGlzLT5MYW5nKCduYW1lJyk7CiRpdGVtLT5tZW51X25hbWVfbGFiZWwgPSAkdGhpcy0+TGFuZygnbWVudV9uYW1lJyk7CiRpdGVtLT5yb290X2lkX2xhYmVsID0gJHRoaXMtPkxhbmcoJ3Jvb3RfaWQnKTsKJGl0ZW0tPmRlZmF1bHRfaWRfbGFiZWwgPSAkdGhpcy0+TGFuZygnZGVmYXVsdF9pZCcpOwokaXRlbS0+bGFuZ2NvZGVfbGFiZWwgPSAkdGhpcy0+TGFuZygnbGFuZ2NvZGVfcHJvbXB0Jyk7CiRpdGVtLT5sYW5nc2VsZWN0X2xhYmVsID0gJHRoaXMtPkxhbmcoJ2xhbmdzZWxlY3QnKTsKJGl0ZW0tPmlzb182MzlfMV9sYWJlbCA9ICR0aGlzLT5MYW5nKCdpc29fNjM5XzEnKTsKJGl0ZW0tPmlzb18zMTY2XzFfYWxwaGFfMl9sYWJlbCA9ICR0aGlzLT5MYW5nKCdpc29fMzE2Nl8xX2FscGhhXzInKTsKJGl0ZW0tPmRvbWFpbl9sYWJlbCA9ICR0aGlzLT5MYW5nKCdkb21haW4nKTsKCiRzbWFydHktPmFzc2lnbignaXRlbScsICRpdGVtKTsKCiRzbWFydHktPmFzc2lnbigKICAgICAgICAgICAgICAgICAgJ25hbWVfaW5wdXQnLCAKICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgaXNzZXQoJGl0ZW0pID8gJGl0ZW0tPm5hbWUgOiAnJywgNTAsIDY0KSAKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAKJHNtYXJ0eS0+YXNzaWduKAogICAgICAgICAgICAgICAgICAnbWVudV9uYW1lX2lucHV0JywgCiAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbWVudV9uYW1lJywgaXNzZXQoJGl0ZW0pID8gJGl0ZW0tPm1lbnVfbmFtZSA6ICcnLCA1MCwgNjQpCiAgICAgICAgICAgICAgICApOwoKLy8gcHJlcGFyaW5nIGxhYmVscwojLS0gZGVwcmVjYXRlZCAoSk0pIGFuZCB3aWxsIGJlIHJlbW92ZWQKJHNtYXJ0eS0+YXNzaWduKCduYW1lX2xhYmVsJywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignbWVudV9uYW1lX2xhYmVsJywgJHRoaXMtPkxhbmcoJ21lbnVfbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdyb290X2lkX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3Jvb3RfaWQnKSk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdF9pZF9sYWJlbCcsICR0aGlzLT5MYW5nKCdkZWZhdWx0X2lkJykpOwokc21hcnR5LT5hc3NpZ24oJ2xhbmdjb2RlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2xhbmdjb2RlX3Byb21wdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsYW5nc2VsZWN0X2xhYmVsJywgJHRoaXMtPkxhbmcoJ2xhbmdzZWxlY3QnKSk7CiRzbWFydHktPmFzc2lnbigncGxpZCcsICRpZCk7IC8vIHRiciAoSk0pIG5vIGlkZWEgd2h5IGl0IHdhcyBldmVuIGhlcmUgaW4gdGhlIDFzdCBwbGFjZQojLS0KCiRzbWFydHktPmFzc2lnbignZWRpdHRpdGxlJywgKCRsYW5nX2lkIDwgMSkgPyAkdGhpcy0+TGFuZygnYWRkX2xhbmd1YWdlJykgOiAkdGhpcy0+TGFuZygnZWRpdF9sYW5ndWFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdhcHBseScsIChpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPmlkKSk/JHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSk6JycpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRsYW5nJywgJHJldHVybmlkKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRsYW5nLnRwbCcpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJz0+J3RlbXBsYXRlcycpICk7CgokdHBsY29udGVudCA9ICcnOwppZiggKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgKSAmJiBpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICl7CgkkdHBsY29udGVudCA9ICRwYXJhbXNbJ3RwbGNvbnRlbnQnXTsKCWlmKCRwYXJhbXNbJ3RwbG5hbWUnXSAhPSAnJyl7CgkJaWYoaXNzZXQoJHBhcmFtc1snaXNuZXcnXSkpCSRwYXJhbXNbJ3RwbG5hbWUnXSA9IG11bmdlX3N0cmluZ190b191cmwoJHBhcmFtc1sndHBsbmFtZSddLCBmYWxzZSk7CgkJaWYoJHRoaXMtPlNldFRlbXBsYXRlKCRwYXJhbXNbJ3RwbG5hbWUnXSwkcGFyYW1zWyd0cGxjb250ZW50J10sJHRoaXMtPkdldE5hbWUoKSkpOwoJCWlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSl7CgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCJtb2R1bGVfbWVzc2FnZSIgPT4gJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSwgJ2FjdGl2ZV90YWInPT4ndGVtcGxhdGVzJykgKTsKCQl9ZWxzZXsKCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7CgkJfQoJfWVsc2V7CgkJZWNobyAnPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9taXNzZ2ludmFsdWUnKS4nPC9kaXY+JzsKCX0KfWVsc2VpZiggaXNzZXQoJHBhcmFtc1sndHBsbmFtZSddKSApewoJJHRwbGNvbnRlbnQgPSAkdGhpcy0+R2V0VGVtcGxhdGUoICRwYXJhbXNbJ3RwbG5hbWUnXSwgJHRoaXMtPkdldE5hbWUoKSApOwp9CgplY2hvICc8aDE+Jy4kdGhpcy0+TGFuZygiZWRpdHRlbXBsYXRlIikuJzwvaDE+JzsKZWNobyAnPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+Jy4kdGhpcy0+TGFuZygidGVtcGxhdGVoZWxwIikuJzwvZGl2Pic7CmVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJlZGl0VGVtcGxhdGUiLCAkcmV0dXJuaWQpOwplY2hvICcJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ25hbWUnKS4nIDo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+JzsKaWYoaXNzZXQoJHBhcmFtc1sndHBsbmFtZSddKSAmJiAkcGFyYW1zWyd0cGxuYW1lJ10gIT0gJycpewoJZWNobyAkcGFyYW1zWyd0cGxuYW1lJ10uJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgInRwbG5hbWUiLCAkcGFyYW1zWyd0cGxuYW1lJ10pOwp9ZWxzZXsKCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3RwbG5hbWUnLCcnLDMwLDY0KTsKfQplY2hvICc8L3A+Cgk8L2Rpdj4KJzsKZWNobyAnCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5MYW5nKCd0ZW1wbGF0ZScpLicgOjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJHRwbGNvbnRlbnQsJ3RwbGNvbnRlbnQnKS4nPC9wPgoJPC9kaXY+Cic7CmVjaG8gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkuJzwvcD4nOwppZighaXNzZXQoJHBhcmFtc1sidHBsbmFtZSJdKSB8fCAkcGFyYW1zWyJ0cGxuYW1lIl0gPT0gJycpCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImlzbmV3IiwgMSk7CmVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.entries_editor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgeyBleGl0OyB9DQovKiogQHZhciBcRXJpZHUgJHRoaXMgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLw0KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovDQoNCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpKQ0Kew0KICBlY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdlcnJvcl9kZW5pZWQnKS4nPC9wPic7DQogIHJldHVybiBmYWxzZTsNCn0NCg0KJGxhbmd1YWdlcyAgICAgICAgICA9ICR0aGlzLT5hZG1pbl9yZXRyaWV2ZV9sYW5ndWFnZXMoJGlkLCAkcmV0dXJuaWQpOw0KJGRlZmF1bHRfbGFuZ3VhZ2UgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2xhbmd1YWdlJyk7DQokbGFuZ3NfYnlfbGFuZ19jb2RlID0gW107DQokZGVmYXVsdF9sYW5ndWFnZV9uYW1lID0gJ1VuZGVmaW5lZCc7DQokZGVmYXVsdF9sYW5ndWFnZV9jb2RlID0gJyc7DQoNCmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkb25lKQ0Kew0KICAkbGFuZ3NfYnlfbGFuZ19jb2RlWyRvbmUtPmlkXSA9ICRvbmU7DQogIA0KICBpZigkb25lLT5pZCA9PT0gJGRlZmF1bHRfbGFuZ3VhZ2UpDQogIHsNCiAgICAkZGVmYXVsdF9sYW5ndWFnZV9uYW1lID0gJG9uZS0+bmFtZTsNCiAgICAkZGVmYXVsdF9sYW5ndWFnZV9jb2RlID0gJG9uZS0+bGFuZ2NvZGU7DQogIH0NCn0NCg0KDQoNCiR2YXJzID0gWw0KICAnbGFuZ3VhZ2VzJyAgICAgICAgICA9PiAkbGFuZ3VhZ2VzLA0KICAnbGFuZ3NfYnlfbGFuZ19jb2RlJyA9PiAkbGFuZ3NfYnlfbGFuZ19jb2RlLA0KICAnYWJjZCcgICAgICAgICAgICAgICA9PiBccmFuZ2UoJ0EnLCAnWicpLA0KICAnZGVmYXVsdF9sYW5ndWFnZScgICA9PiAkZGVmYXVsdF9sYW5ndWFnZSwNCiAgJ2RlZmF1bHRfbGFuZ3VhZ2VfbmFtZScgICA9PiAkZGVmYXVsdF9sYW5ndWFnZV9uYW1lLA0KICAnZGVmYXVsdF9sYW5ndWFnZV9jb2RlJyAgID0+ICRkZWZhdWx0X2xhbmd1YWdlX2NvZGUNCl07DQoNCiRzbWFydHktPmFzc2lnbigkdmFycyk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSAoJ2VudHJpZXNfZWRpdG9yLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.menu.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovCi8qKiBAdmFyIEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KdHJ5CnsKICBpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpIHsgJHRoaXMtPmFzc2lnbl9wYWdlX2xhbmcoKTsgfQp9CmNhdGNoKCBcRXhjZXB0aW9uICRlKQp7CiAgLy8gaWYgbm8gcGFnZSBsYW5nIGlzIGFzc2lnbmVkLi4uIG1heWJlIHdlIGFyZW4ndCBpbiBhIHBhZ2UgdGhhdCBoYXMgYSBwYXJ0aWN1bGFyIGxhbmd1YWdlPwogIFxhdWRpdCggJGlkLCAkcGFyYW1zWydhY3Rpb24nXSwgJGUtPmdldE1lc3NhZ2UoKSApOwogIHJldHVybiBGQUxTRTsKfQoKdHJ5CnsKICAkZGVmYXVsdF9yZXR1cm5faWQgICAgID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICRjdXJyZW50X2xhbmd1YWdlID0gJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGU7CiAgJHNob3duID0gKGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkgJiYgJycgIT09ICRwYXJhbXNbJ3Nob3cnXSkgPyBleHBsb2RlKCcsJywgJHBhcmFtc1snc2hvdyddKSA6IEZBTFNFOwogIAogICRyZWRpcmVjdF91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgnY250bnQwMScsICdyZWRpcmVjdCcsICRkZWZhdWx0X3JldHVybl9pZCwgWydhY3Rpb24nID0+ICdyZWRpcmVjdCddLCBGQUxTRSwgRkFMU0UsICdsYW5nJyk7CiAgCiAgJHVzZV9jb29raWVzICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCcsIEZBTFNFKSB8fAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb29raWVzX2F1dG9yZWRpcmVjdF9ob21lJywgRkFMU0UpOwogICRkZWZhdWx0X2hpZGUgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2hpZGUnLCBGQUxTRSk7CiAgJGxhbmd1YWdlcyAgICAgID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOwogICRjb25maWcgICAgICAgICA9IGNtc21zKCktPkdldENvbmZpZygpOwogICRsaW5rcyAgICAgICAgICA9ICR0aGlzLT5nZXRfdXJscygpOwogICRpdGVtbGlzdCAgICAgICA9IFtdOwogICRzaG93X2N1cnJlbnQgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW50X2xpbmsnLCBGQUxTRSk7CiAgCiAgIyBkZXRlY3Qgc3BlY2lhbCBjYXNlcwogICRyb290X2lkID0gXEVyaWR1XHV0aWxzOjpnZXRfcm9vdF9pZCgpOwogICRjdXJyZW50X2lkID0gXEVyaWR1XHV0aWxzOjpnZXRfY3VycmVudF9pZCgpOwogIC8vJG91dHNpZGVfaGllcmFyY2h5ID0gJHJvb3RfaWQgPT09ICRjdXJyZW50X2lkOwogICMgYSBzcGVjaWFsIHBhZ2UgaWYgb3V0c2lkZSB0aGUgaGllcmFyY2h5IGFuZCBubyBwYXJ0aWN1bGFyIGxhbmd1YWdlIGFzc2lnbmVkCiAgJHNwZWNpYWwgPSBcRXJpZHVcbGFuZ3VhZ2VzOjppc19zcGVjaWFsX2NvbnRlbnQoKTsKICAKICBmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGxhbmd1YWdlKQogIHsKICAgICRpc19ob21lcGFnZSA9ICRsYW5ndWFnZS0+Z2V0X2RlZmF1bHRfaWQoKSA9PSAkZGVmYXVsdF9yZXR1cm5faWQ7CiAgICAkcGFnZV9leHQgPSAkaXNfaG9tZXBhZ2UgPyAnJyA6ICRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ107CiAgICAKICAgIGlmKCAoJHNob3dfY3VycmVudCB8fCAkbGFuZ3VhZ2UtPmdldF9sYW5nY29kZSgpICE9PSAkY3VycmVudF9sYW5ndWFnZSkgJiYKICAgICAgICAoICEkc2hvd24gfHwgaW5fYXJyYXkoJGxhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKSwgJHNob3duKSApCiAgICApCiAgICB7CiAgICAgICRpdGVtICAgICAgICAgICAgICAgICA9IG5ldyBTdGRDbGFzcygpOwogICAgICAkaXRlbS0+Y29kZSAgICAgICAgICAgPSAkbGFuZ3VhZ2UtPmdldF9sYW5nY29kZSgpOwogICAgICAkaXRlbS0+bmFtZSAgICAgICAgICAgPSAkbGFuZ3VhZ2UtPmdldF9uYW1lKCk7CiAgICAgICRpdGVtLT5tZW51X25hbWUgICAgICA9ICRsYW5ndWFnZS0+Z2V0X21lbnVfbmFtZSgpOwogICAgICAkaXRlbS0+aXNfY3VycmVudCAgICAgPSAoJGl0ZW0tPmNvZGUgPT09ICRjdXJyZW50X2xhbmd1YWdlKTsKICAgICAgJGl0ZW0tPnBhZ2VfbWVudV90ZXh0ID0gaXNzZXQoJGxpbmtzWyRpdGVtLT5jb2RlXSkgPyAkbGlua3NbJGl0ZW0tPmNvZGVdWydtZW51X3RleHQnXSA6ICcnOwogICAgICAkaXRlbS0+cGFnZV9uYW1lICAgICAgPSBpc3NldCgkbGlua3NbJGl0ZW0tPmNvZGVdKSA/ICRsaW5rc1skaXRlbS0+Y29kZV1bJ25hbWUnXSA6ICcnOwogICAgICAKICAgICAgJHJlZGlyZWN0aW9uICAgICA9ICR0aGlzLT5nZXRfdXJsdHlwZSgpOwogIAogICAgICBpZignbW9kX3Jld3JpdGUnID09PSAkcmVkaXJlY3Rpb24pCiAgICAgIHsKICAgICAgICAjIGl0J3Mgc29tZSBzcGVjaWFsIHBhZ2U6IGNoYW5nZSBsYW5ndWFnZSBvbmx5CiAgICAgICAgaWYoJHNwZWNpYWwpCiAgICAgICAgewogICAgICAgICAgJGl0ZW0tPnVybCA9IChpc3NldCgkbGlua3NbJGl0ZW0tPmNvZGVdKSAmJiAkbGlua3NbJGl0ZW0tPmNvZGVdKQogICAgICAgICAgICA/ICgkcmVkaXJlY3RfdXJsIC4gJz8nIC4gJ2NpZD0nIC4gJGN1cnJlbnRfaWQgLiAnJmFtcDtsYW5nPScgLiAkaXRlbS0+Y29kZSkKICAgICAgICAgICAgOiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICRpdGVtLT51cmwgPSAoaXNzZXQoJGxpbmtzWyRpdGVtLT5jb2RlXSkgJiYgJGxpbmtzWyRpdGVtLT5jb2RlXSkKICAgICAgICAgICAgPyAoJHJlZGlyZWN0X3VybCAuICc/JyAuICdjaWQ9JyAuICRsaW5rc1skaXRlbS0+Y29kZV1bJ2NpZCddIC4gJyZhbXA7bGFuZz0nIC4gJGl0ZW0tPmNvZGUpCiAgICAgICAgICAgIDogRkFMU0U7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgIGlmKCRzcGVjaWFsKQogICAgICAgIHsKICAgICAgICAgICR0bXAgPSBleHBsb2RlICgnPycsICRyZWRpcmVjdF91cmwpOwogICAgICAgICAgJHBhdGggPSAkdG1wWzBdOwogICAgICAgICAgJHF1ZXJ5ID0gcGFyc2VfdXJsKGh0bWxzcGVjaWFsY2hhcnNfZGVjb2RlKCRyZWRpcmVjdF91cmwpLCBQSFBfVVJMX1FVRVJZKTsKICAgICAgICAgICRyZWJ1aWxkID0gW107CiAgICAgICAgICBwYXJzZV9zdHIgKCAkcXVlcnkgLCAkcmVidWlsZCk7CiAgICAgICAgICAkcmVidWlsZFsnY2lkJ10gPSAkY3VycmVudF9pZDsKICAgICAgICAgICRyZWJ1aWxkWydsYW5nJ10gPSAkaXRlbS0+Y29kZTsKICAgICAgICAgICR1cmwgPSAkcGF0aCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHJlYnVpbGQpOwogICAgICAgICAgJGl0ZW0tPnVybCA9ICR1cmw7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdG1wID0gZXhwbG9kZSAoJz8nLCAkcmVkaXJlY3RfdXJsKTsKICAgICAgICAgICRwYXRoID0gJHRtcFswXTsKICAgICAgICAgICRxdWVyeSA9IHBhcnNlX3VybChodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkcmVkaXJlY3RfdXJsKSwgUEhQX1VSTF9RVUVSWSk7CiAgICAgICAgICAkcmVidWlsZCA9IFtdOwogICAgICAgICAgcGFyc2Vfc3RyICggJHF1ZXJ5ICwgJHJlYnVpbGQpOwogICAgICAgICAgJHJlYnVpbGRbJ2NpZCddID0gJGxpbmtzWyRpdGVtLT5jb2RlXVsnY2lkJ107CiAgICAgICAgICAkcmVidWlsZFsnbGFuZyddID0gJGl0ZW0tPmNvZGU7CiAgICAgICAgICAkdXJsID0gJHBhdGggLiAnPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRyZWJ1aWxkKTsKICAgICAgICAgICRpdGVtLT51cmwgPSAkdXJsOwogICAgICAgIH0KCiAgICAgIH0KICAgICAgCiAgICAgIGlmKCRpdGVtLT51cmwgfHwgISRkZWZhdWx0X2hpZGUgfHwgJGl0ZW0tPmlzX2N1cnJlbnQpCiAgICAgIHsKICAgICAgICAkaXRlbWxpc3RbXSA9ICRpdGVtOwogICAgICB9CiAgICB9CiAgfQp9CmNhdGNoKCBcRXhjZXB0aW9uICRlKQp7CiAgXGF1ZGl0KCAkdGhpcy0+aWQsICRwYXJhbXNbJ2FjdGlvbiddLCAkZS0+Z2V0TWVzc2FnZSgpICk7CiAgcmV0dXJuIEZBTFNFOwp9CiRzbWFydHktPmFzc2lnbignbGFuZ3VhZ2VzJywgJGl0ZW1saXN0KTsKJHNtYXJ0eS0+YXNzaWduKCdzZXRfbGFuZ191cmwnLCAnJyk7CgppZihpc3NldCggJHBhcmFtc1sndGVtcGxhdGUnXSkgICkKewogIHRyeQogIHsKICAgICRsYXlvdXRfdGVtcGxhdGVfb2JqID0gQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWQoJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgfQogIGNhdGNoKENtc0V4Y2VwdGlvbiAkZSkKICB7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdObyBtZW51IHRlbXBsYXRlIGZvdW5kIHdpdGggdGhlIG5hbWU6ICcgLiAkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICAgIHJldHVybjsKICB9Cn0KZWxzZQp7CiAgdHJ5CiAgewogICAgJGxheW91dF90ZW1wbGF0ZV9vYmogPSBDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZF9kZmx0X2J5X3R5cGUoJ0VyaWR1OjplcmlkdV9sYW5nX3NlbGVjdG9yX21lbnUnKTsKICB9CiAgY2F0Y2goQ21zRXhjZXB0aW9uICRlKQogIHsKICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCdObyBkZWZhdWx0IG1lbnUgdGVtcGxhdGUgZm91bmQnKTsKICAgIHJldHVybjsKICB9CiAgCiAgaWYoICFpc19vYmplY3QoJGxheW91dF90ZW1wbGF0ZV9vYmopICkKICB7CiAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwnTm8gbWVudSB0ZW1wbGF0ZSBmb3VuZCcpOwogICAgcmV0dXJuOwogIH0KfQoKJHRlbXBsYXRlX25hbWUgPSAkbGF5b3V0X3RlbXBsYXRlX29iai0+Z2V0X25hbWUoKTsKCiRjYWNoZV9pZCA9ICd8eGw4cicuIG1kNShzZXJpYWxpemUoJHBhcmFtcykpOwokdGVtcGxhdGVfb2JqZWN0ID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoCiAgJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJHRlbXBsYXRlX25hbWUpLAogICRjYWNoZV9pZCwKICBOVUxMLAogICRzbWFydHkKKTsKCiR0ZW1wbGF0ZV9vYmplY3QtPmRpc3BsYXkoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.movesomething.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMQojIEEgZm9yayBvZiBCYWJlbAojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZwojIHNpbmNlIDIwMTYKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUKIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUKIyBhbmQgbWFuYWdlIG11bHRpcGxlIGxhbmd1YWdlIGNvbnRlbnQKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQojIEVyaWR1IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRU5EX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiRuZXdwYXJhbXMgPSBpc3NldCgkcGFyYW1zWyJsZXZlbG5hbWUiXSk/YXJyYXkoImFjdGl2ZV90YWIiPT4kcGFyYW1zWyJsZXZlbG5hbWUiXSk6YXJyYXkoKTsKCmlmICghaXNzZXQoJHBhcmFtc1sibW92ZSJdKSB8fCAhaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkgfHwgIWlzc2V0KCRwYXJhbXNbImN1cnJlbnRvcmRlciJdKSApCiR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRuZXdwYXJhbXMpOwoKJGRiID0mIGNtc21zKCktPkdldERiKCk7CiRkYnRhYmxlID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzIjsKJGN1cnJlbnRvcmRlciA9ICRwYXJhbXNbImN1cnJlbnRvcmRlciJdOwokbGFuZ2NvZGUgPSAkcGFyYW1zWyJsYW5nY29kZSJdOwoKc3dpdGNoKCRwYXJhbXNbIm1vdmUiXSl7CgkKCWNhc2UgImRlbGV0ZSI6CgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbGFuZ2VudHJpZXMgV0hFUkUgbGFuZ2NvZGU9PyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7CgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICRkYnRhYmxlIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxIjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsKCgkJLy8gVVBEQVRFIFRIRSBPUkRFUiBPRiBUSEUgSVRFTVMKCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/ICI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRvcmRlcikpOwoJCQoJCSRuZXdwYXJhbXNbIm1vZHVsZV9tZXNzYWdlIl0gPSAkdGhpcy0+bGFuZygibWVzc2FnZV9kZWxldGVkIik7CgkJYnJlYWs7CQoKCWNhc2UgInVwIjoKCQlpZiAoJGN1cnJlbnRvcmRlciAhPSAxKXsKCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlcisxKSBXSEVSRSBpdGVtX29yZGVyID0gPyBMSU1JVCAxOyI7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXItMSkpOwoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxOyI7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkpOwoJCX0KCQlicmVhazsKCQkKCWNhc2UgImRvd24iOgoJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA9ID8gTElNSVQgMTsiOwoJCWlmKCAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudG9yZGVyKzEpKSApewoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxOyI7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkpOwoJCX0KCQlicmVhazsKfQoKJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgeyBleGl0OyB9CmlmICggUEhQX1NFU1NJT05fTk9ORSA9PSBzZXNzaW9uX3N0YXR1cygpICl7IHNlc3Npb25fc3RhcnQoKTsgfQoKJF9TRVNTSU9OWydfZXJpZHVfcmVkaXJlY3QnXSA9IFRSVUU7CgokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CiRsYW5nID0gJF9HRVRbJ2xhbmcnXSA/PyBGQUxTRTsKJGNpZCA9IGlzc2V0KCRfR0VUWydjaWQnXSkgPyAoaW50KSRfR0VUWydjaWQnXSA6IC0xOwokdXJsID0gRkFMU0U7CgokcmVkaXJlY3RfdXJsICAgICA9ICR0aGlzLT5QYXJ0aWFsVXJsVG9Db29raWUoKTsKJGNvbmZpZyAgICAgICAgICAgPSAkdGhpcy0+R2V0RXh0ZW5kZWRDb25maWcoKTsKJHByZWZfY29va2llX2hvbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29va2llc19hdXRvcmVkaXJlY3RfaG9tZScsIEZBTFNFKTsKJHByZWZfY29va2llX2FsbCAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29va2llc19hdXRvcmVkaXJlY3RfYWxsJywgRkFMU0UpOwoKIyBzZXQgdGhlIGNvb2tpZSBmb3IgdGhlIGN1cnJlbnQgZG9tYWluIG9yIGRlbGV0ZSBpdCBpZiBub3QgdXNpbmcgaXQKaWYoJHByZWZfY29va2llX2hvbWUgfHwgJHByZWZfY29va2llX2FsbCkKewogIHNldGNvb2tpZSgkY29uZmlnWydjb29raWVfbmFtZSddLCAkbGFuZywgdGltZSgpICsgODY0MDAgKiAzMCwgJy8nKTsKfQplbHNlCnsKICBzZXRjb29raWUgKCRjb25maWdbJ2Nvb2tpZV9uYW1lJ10sICcnLCB0aW1lKCkgLSAzNjAwLCAnLycpOwp9CgokbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOwojIGEgc3BlY2lhbCBwYWdlIGlmIG91dHNpZGUgdGhlIGhpZXJhcmNoeSBhbmQgbm8gcGFydGljdWxhciBsYW5ndWFnZSBhc3NpZ25lZAokc3BlY2lhbCAgID0gXEVyaWR1XGxhbmd1YWdlczo6aXNfc3BlY2lhbF9jb250ZW50KCRjaWQpOwoKJG5ld19sYW5nICAgICAgICAgPSAkbGFuZ3VhZ2VzWyRsYW5nXTsKJGRlZmF1bHRfbGFuZ3VhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9sYW5ndWFnZScpOwoKaWYoJGNpZCA+IDApCnsKICAkaXNfZGVmYXVsdCA9ICggKGludCkkbmV3X2xhbmctPmdldF9kZWZhdWx0X2lkKCkgPT09ICRjaWQpOwogICRiYXNlICAgICAgID0gXEVyaWR1XHV0aWxzOjpnZXRfZG9tYWluX2Jhc2UoKTsKICAkYmFzZSAgICAgICA9IGVtcHR5KCRiYXNlKSA/ICcnIDogJy8nIC4gJGJhc2U7Cn0KZWxzZQp7CiAgJGNpZCA9ICRuZXdfbGFuZy0+Z2V0X2RlZmF1bHRfaWQoKTsKfQoKJGRvbWFpbiA9ICFlbXB0eSggJG5ld19sYW5nLT5nZXRfZG9tYWluKCkgKSA/ICRuZXdfbGFuZy0+Z2V0X2RvbWFpbigpIDogXEVyaWR1XHV0aWxzOjpnZXRfY3VycmVudF9ob3N0KCk7CgppZigkaXNfZGVmYXVsdCAmJiAoIChpbnQpJG5ld19sYW5nLT5nZXRfaWQoKSA9PT0gKGludCkkZGVmYXVsdF9sYW5ndWFnZSkgKQp7CiAgJHVybCA9ICRkb21haW4gLiAkYmFzZTsKfQplbHNlCnsKICAkdXJsID0gJGRvbWFpbiAuICcvJyAuICR0aGlzLT5HZXRMaW5rVG9QYWdlKCRjaWQpOwp9CgoKJHVybCA9IFxFcmlkdVx1dGlsczo6Y29uZm9ybV91cmwoJHVybCk7CgokZG9tYWluc19zZXRfY29va2llID0gW107CgojIG9ubHkgc2V0IGNvb2tpZXMgZm9yIHRoZSByZXN0IG9mIHRoZSBkb21haW5zIGlmIGluIHByZWZzCmlmKCRwcmVmX2Nvb2tpZV9ob21lIHx8ICRwcmVmX2Nvb2tpZV9hbGwpCnsKICBmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGxhbmd1YWdlKQogIHsKICAgICRkb21haW4gPSAhZW1wdHkoICRsYW5ndWFnZS0+Z2V0X2RvbWFpbigpICkgPyAkbGFuZ3VhZ2UtPmdldF9kb21haW4oKSA6IFxFcmlkdVx1dGlsczo6Z2V0X2N1cnJlbnRfaG9zdCgpOwogICAgJHNldF9jb29raWVfdXJsID0gXEVyaWR1XHV0aWxzOjpjb25mb3JtX3VybCgkZG9tYWluIC4gJy8nIC4gJHJlZGlyZWN0X3VybCAuICc/bGFuZz0nIC4gJGxhbmcpOwogICAgCiAgICAjIGF2b2lkIGR1cGxpY2F0ZXMKICAgIGlmKCAhaW5fYXJyYXkoJHNldF9jb29raWVfdXJsLCAkZG9tYWluc19zZXRfY29va2llKSApCiAgICB7CiAgICAgICRkb21haW5zX3NldF9jb29raWVbXSAgPSAnPGltZyBzcmM9IicgLiAkc2V0X2Nvb2tpZV91cmwgLiAnIiBzdHlsZT0iZGlzcGxheTpub25lOyIgLz4nOwogICAgfQogIH0KfQoKJF9TRVNTSU9OWydfZXJpZHVfJ11bJ2xhbmdfY29kZSddID0gJGxhbmc7CgppZigkc3BlY2lhbCkKewogICRfU0VTU0lPTlsnX2VyaWR1XyddWydsYW5nX2NvZGUnXSA9ICRsYW5nOwp9CgojIHRoaXMgc2VlbXMgdG8gYmUgYSBiaXQgZmFzdGVyIHRoYW4gcGFyc2luZyBieSBzbWFydHkuLi4uCi8vJHRlbXBsYXRlID0gJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2RkZDsiIG9ubG9hZD0iZG9jdW1lbnQubG9jYXRpb24uYXNzaWduKFwnJyAuICR1cmwgLiAnXCcpIj48cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGltZyBhbHQ9IlBsZWFzZSB3YWl0Li4uIiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqWTBJaUJvWldsbmFIUTlJalkwSWlCbWFXeHNQU0ozYUdsMFpTSStDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJeklpQnlQU0l3SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUluSWlJSFpoYkhWbGN6MGlNRHN6T3pBN01DSWdaSFZ5UFNJeGN5SWdjbVZ3WldGMFEyOTFiblE5SW1sdVpHVm1hVzVwZEdVaUlHSmxaMmx1UFNJd0lpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RRMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR4TWpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0Rrd0lERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR5TlhNaUlHdGxlVk53YkdsdVpYTTlJakF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnN01DNHlJREF1TWlBd0xqUWdNQzQ0SWlCallXeGpUVzlrWlQwaWMzQnNhVzVsSWlBdlBnb2dJRHd2WTJseVkyeGxQZ29nSUR4amFYSmpiR1VnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTVRNMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR6TnpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RFNE1DQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1TlhNaUlHdGxlVk53YkdsdVpYTTlJakF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnN01DNHlJREF1TWlBd0xqUWdNQzQ0SWlCallXeGpUVzlrWlQwaWMzQnNhVzVsSWlBdlBnb2dJRHd2WTJseVkyeGxQZ29nSUR4amFYSmpiR1VnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTWpJMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzQyTWpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RJM01DQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1TnpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RNeE5TQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1T0RjMWN5SWdhMlY1VTNCc2FXNWxjejBpTUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnaUlHTmhiR05OYjJSbFBTSnpjR3hwYm1VaUlDOCtDaUFnUEM5amFYSmpiR1UrQ2lBZ1BHTnBjbU5zWlNCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNneE9EQWdNVFlnTVRZcElpQmplRDBpTVRZaUlHTjVQU0l6SWlCeVBTSXdJajRLSUNBZ0lEeGhibWx0WVhSbElHRjBkSEpwWW5WMFpVNWhiV1U5SW5JaUlIWmhiSFZsY3owaU1Ec3pPekE3TUNJZ1pIVnlQU0l4Y3lJZ2NtVndaV0YwUTI5MWJuUTlJbWx1WkdWbWFXNXBkR1VpSUdKbFoybHVQU0l3TGpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLUEM5emRtYytDZz09IiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87IiAvPjwvcD48cD4nIC4gaW1wbG9kZSgnJyAsICRkb21haW5zX3NldF9jb29raWUpIC4gJzwvcD48L2JvZHk+PC9odG1sPic7Cgokc21hcnR5LT5hc3NpZ24oJ2RvbWFpbnNfY29va2llc19zZXQnLCAgaW1wbG9kZSgnJyAsICRkb21haW5zX3NldF9jb29raWUpICk7CiRzbWFydHktPmFzc2lnbigncmVkaXJlY3RfdXJsJywgJHVybCk7CgokdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGVGcm9tRmlsZSgncmVkaXJlY3QudHBsJyk7CiRvdXRwdXQgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicgLiAkdGVtcGxhdGUpOwplY2hvICRvdXRwdXQ7CgoKZXhpdDsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.sitemap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKICAgIGlmKCEkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSkgcmV0dXJuIGZhbHNlOwogICAgJGhpZXJNYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJGhpZXJhcmNoeSA9ICRoaWVyTWFuYWdlci0+Z2V0Tm9kZUJ5SWQoJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2VbJ3Jvb3RfaWQnXSk7CgogICAgaWYgKCRoaWVyYXJjaHkgJiYgJGhpZXJhcmNoeS0+aGFzQ2hpbGRyZW4oKSkKICAgIHsKICAgICAgICBlY2hvICc8dWwgY2xhc3M9InNpdGVtYXAiPic7CiAgICAgICAgJHBhZ2VsaXN0ID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoICgkaGllcmFyY2h5LT5nZXRDaGlsZHJlbigpIGFzICRub2RlKSAgICAkdGhpcy0+ZWNob19saW5lKCRub2RlKTsKICAgICAgICBlY2hvICc8L3VsPic7CiAgICB9ICAgIAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.toggleactive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2xhbmdfaWQnXSkgKQp7ICAKICAkYWN0aXZlID0gaXNzZXQoJHBhcmFtc1snYWN0aXZlJ10pID8gJHBhcmFtc1snYWN0aXZlJ10gOiAwOwogICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzIFNFVCBhY3RpdmU9PyBXSEVSRSBpZD0/IExJTUlUIDEnOwogICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRhY3RpdmUsICRwYXJhbXNbJ2xhbmdfaWQnXSkpOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.toggledefault.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoaXNzZXQoJHBhcmFtc1snbGFuZ19pZCddKSkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2xhbmd1YWdlJywgJHBhcmFtc1snbGFuZ19pZCddKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/data/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/data/cfg.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIG5hbWUgb2YgdGhlIGNvb2tpZSB1c2VkIGZvciBsYW5nIGRhdGEKICogZGVmYXVsdCB1c2VybGFuZwogKiBOb3RlOiBjYW4ndCBiZSBlbXB0eSEKICovCiRjb25maWdbJ2Nvb2tpZV9uYW1lJ10gPSAndXNlcmxhbmcnOwoKLyoqCiAqIHdoZXRoZXIgdG8gdXNlIGJhY2tzbGFzaCBjc3MKICogZGVmYXVsdDogMCBvciBmYWxzZQogKi8KJGNvbmZpZ1snYWRkX2JhY2tzbGFzaCddID0gMDsKCi8qKgogKiB3aGV0aGVyIHRvIHVzZSBhZGRfdWlraXQgY3NzIGFuZCBqcwogKiBkZWZhdWx0OiAxIG9yIHRydWUKICovCiRjb25maWdbJ2FkZF91aWtpdCddID0gMTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/data/cfg_original.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIG5hbWUgb2YgdGhlIGNvb2tpZSB1c2VkIGZvciBsYW5nIGRhdGEKICogZGVmYXVsdCB1c2VybGFuZwogKiBOb3RlOiBjYW4ndCBiZSBlbXB0eSEKICovCiRjb25maWdbJ2Nvb2tpZV9uYW1lJ10gPSAndXNlcmxhbmcnOwoKLyoqCiAqIHdoZXRoZXIgdG8gdXNlIGJhY2tzbGFzaCBjc3MKICogZGVmYXVsdDogMCBvciBmYWxzZQogKi8KJGNvbmZpZ1snYWRkX2JhY2tzbGFzaCddID0gMDsKCi8qKgogKiB3aGV0aGVyIHRvIHVzZSBhZGRfdWlraXQgY3NzIGFuZCBqcwogKiBkZWZhdWx0OiAxIG9yIHRydWUKICovCiRjb25maWdbJ2FkZF91aWtpdCddID0gMTsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/data/country-ISO-3166-2.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[TmFtZSxDb2RlCkFmZ2hhbmlzdGFuLEFGCsOFbGFuZCBJc2xhbmRzLEFYCkFsYmFuaWEsQUwKQWxnZXJpYSxEWgpBbWVyaWNhbiBTYW1vYSxBUwpBbmRvcnJhLEFECkFuZ29sYSxBTwpBbmd1aWxsYSxBSQpBbnRhcmN0aWNhLEFRCkFudGlndWEgYW5kIEJhcmJ1ZGEsQUcKQXJnZW50aW5hLEFSCkFybWVuaWEsQU0KQXJ1YmEsQVcKQXVzdHJhbGlhLEFVCkF1c3RyaWEsQVQKQXplcmJhaWphbixBWgpCYWhhbWFzLEJTCkJhaHJhaW4sQkgKQmFuZ2xhZGVzaCxCRApCYXJiYWRvcyxCQgpCZWxhcnVzLEJZCkJlbGdpdW0sQkUKQmVsaXplLEJaCkJlbmluLEJKCkJlcm11ZGEsQk0KQmh1dGFuLEJUCiJCb2xpdmlhLCBQbHVyaW5hdGlvbmFsIFN0YXRlIG9mIixCTwoiQm9uYWlyZSwgU2ludCBFdXN0YXRpdXMgYW5kIFNhYmEiLEJRCkJvc25pYSBhbmQgSGVyemVnb3ZpbmEsQkEKQm90c3dhbmEsQlcKQm91dmV0IElzbGFuZCxCVgpCcmF6aWwsQlIKQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5LElPCkJydW5laSBEYXJ1c3NhbGFtLEJOCkJ1bGdhcmlhLEJHCkJ1cmtpbmEgRmFzbyxCRgpCdXJ1bmRpLEJJCkNhbWJvZGlhLEtICkNhbWVyb29uLENNCkNhbmFkYSxDQQpDYXBlIFZlcmRlLENWCkNheW1hbiBJc2xhbmRzLEtZCkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyxDRgpDaGFkLFRECkNoaWxlLENMCkNoaW5hLENOCkNocmlzdG1hcyBJc2xhbmQsQ1gKQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMsQ0MKQ29sb21iaWEsQ08KQ29tb3JvcyxLTQpDb25nbyxDRwoiQ29uZ28sIHRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsQ0QKQ29vayBJc2xhbmRzLENLCkNvc3RhIFJpY2EsQ1IKQ8O0dGUgZCdJdm9pcmUsQ0kKQ3JvYXRpYSxIUgpDdWJhLENVCkN1cmHDp2FvLENXCkN5cHJ1cyxDWQpDemVjaCBSZXB1YmxpYyxDWgpEZW5tYXJrLERLCkRqaWJvdXRpLERKCkRvbWluaWNhLERNCkRvbWluaWNhbiBSZXB1YmxpYyxETwpFY3VhZG9yLEVDCkVneXB0LEVHCkVsIFNhbHZhZG9yLFNWCkVxdWF0b3JpYWwgR3VpbmVhLEdRCkVyaXRyZWEsRVIKRXN0b25pYSxFRQpFdGhpb3BpYSxFVApGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyksRksKRmFyb2UgSXNsYW5kcyxGTwpGaWppLEZKCkZpbmxhbmQsRkkKRnJhbmNlLEZSCkZyZW5jaCBHdWlhbmEsR0YKRnJlbmNoIFBvbHluZXNpYSxQRgpGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMsVEYKR2Fib24sR0EKR2FtYmlhLEdNCkdlb3JnaWEsR0UKR2VybWFueSxERQpHaGFuYSxHSApHaWJyYWx0YXIsR0kKR3JlZWNlLEdSCkdyZWVubGFuZCxHTApHcmVuYWRhLEdECkd1YWRlbG91cGUsR1AKR3VhbSxHVQpHdWF0ZW1hbGEsR1QKR3Vlcm5zZXksR0cKR3VpbmVhLEdOCkd1aW5lYS1CaXNzYXUsR1cKR3V5YW5hLEdZCkhhaXRpLEhUCkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kcyxITQpIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSxWQQpIb25kdXJhcyxITgpIb25nIEtvbmcsSEsKSHVuZ2FyeSxIVQpJY2VsYW5kLElTCkluZGlhLElOCkluZG9uZXNpYSxJRAoiSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiIsSVIKSXJhcSxJUQpJcmVsYW5kLElFCklzbGUgb2YgTWFuLElNCklzcmFlbCxJTApJdGFseSxJVApKYW1haWNhLEpNCkphcGFuLEpQCkplcnNleSxKRQpKb3JkYW4sSk8KS2F6YWtoc3RhbixLWgpLZW55YSxLRQpLaXJpYmF0aSxLSQoiS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJ3MgUmVwdWJsaWMgb2YiLEtQCiJLb3JlYSwgUmVwdWJsaWMgb2YiLEtSCkt1d2FpdCxLVwpLeXJneXpzdGFuLEtHCkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljLExBCkxhdHZpYSxMVgpMZWJhbm9uLExCCkxlc290aG8sTFMKTGliZXJpYSxMUgpMaWJ5YSxMWQpMaWVjaHRlbnN0ZWluLExJCkxpdGh1YW5pYSxMVApMdXhlbWJvdXJnLExVCk1hY2FvLE1PCiJNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YiLE1LCk1hZGFnYXNjYXIsTUcKTWFsYXdpLE1XCk1hbGF5c2lhLE1ZCk1hbGRpdmVzLE1WCk1hbGksTUwKTWFsdGEsTVQKTWFyc2hhbGwgSXNsYW5kcyxNSApNYXJ0aW5pcXVlLE1RCk1hdXJpdGFuaWEsTVIKTWF1cml0aXVzLE1VCk1heW90dGUsWVQKTWV4aWNvLE1YCiJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mIixGTQoiTW9sZG92YSwgUmVwdWJsaWMgb2YiLE1ECk1vbmFjbyxNQwpNb25nb2xpYSxNTgpNb250ZW5lZ3JvLE1FCk1vbnRzZXJyYXQsTVMKTW9yb2NjbyxNQQpNb3phbWJpcXVlLE1aCk15YW5tYXIsTU0KTmFtaWJpYSxOQQpOYXVydSxOUgpOZXBhbCxOUApOZXRoZXJsYW5kcyxOTApOZXcgQ2FsZWRvbmlhLE5DCk5ldyBaZWFsYW5kLE5aCk5pY2FyYWd1YSxOSQpOaWdlcixORQpOaWdlcmlhLE5HCk5pdWUsTlUKTm9yZm9sayBJc2xhbmQsTkYKTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzLE1QCk5vcndheSxOTwpPbWFuLE9NClBha2lzdGFuLFBLClBhbGF1LFBXCiJQYWxlc3RpbmUsIFN0YXRlIG9mIixQUwpQYW5hbWEsUEEKUGFwdWEgTmV3IEd1aW5lYSxQRwpQYXJhZ3VheSxQWQpQZXJ1LFBFClBoaWxpcHBpbmVzLFBIClBpdGNhaXJuLFBOClBvbGFuZCxQTApQb3J0dWdhbCxQVApQdWVydG8gUmljbyxQUgpRYXRhcixRQQpSw6l1bmlvbixSRQpSb21hbmlhLFJPClJ1c3NpYW4gRmVkZXJhdGlvbixSVQpSd2FuZGEsUlcKU2FpbnQgQmFydGjDqWxlbXksQkwKIlNhaW50IEhlbGVuYSwgQXNjZW5zaW9uIGFuZCBUcmlzdGFuIGRhIEN1bmhhIixTSApTYWludCBLaXR0cyBhbmQgTmV2aXMsS04KU2FpbnQgTHVjaWEsTEMKU2FpbnQgTWFydGluIChGcmVuY2ggcGFydCksTUYKU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbixQTQpTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyxWQwpTYW1vYSxXUwpTYW4gTWFyaW5vLFNNClNhbyBUb21lIGFuZCBQcmluY2lwZSxTVApTYXVkaSBBcmFiaWEsU0EKU2VuZWdhbCxTTgpTZXJiaWEsUlMKU2V5Y2hlbGxlcyxTQwpTaWVycmEgTGVvbmUsU0wKU2luZ2Fwb3JlLFNHClNpbnQgTWFhcnRlbiAoRHV0Y2ggcGFydCksU1gKU2xvdmFraWEsU0sKU2xvdmVuaWEsU0kKU29sb21vbiBJc2xhbmRzLFNCClNvbWFsaWEsU08KU291dGggQWZyaWNhLFpBClNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzLEdTClNvdXRoIFN1ZGFuLFNTClNwYWluLEVTClNyaSBMYW5rYSxMSwpTdWRhbixTRApTdXJpbmFtZSxTUgpTdmFsYmFyZCBhbmQgSmFuIE1heWVuLFNKClN3YXppbGFuZCxTWgpTd2VkZW4sU0UKU3dpdHplcmxhbmQsQ0gKU3lyaWFuIEFyYWIgUmVwdWJsaWMsU1kKIlRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmEiLFRXClRhamlraXN0YW4sVEoKIlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YiLFRaClRoYWlsYW5kLFRIClRpbW9yLUxlc3RlLFRMClRvZ28sVEcKVG9rZWxhdSxUSwpUb25nYSxUTwpUcmluaWRhZCBhbmQgVG9iYWdvLFRUClR1bmlzaWEsVE4KVHVya2V5LFRSClR1cmttZW5pc3RhbixUTQpUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMsVEMKVHV2YWx1LFRWClVnYW5kYSxVRwpVa3JhaW5lLFVBClVuaXRlZCBBcmFiIEVtaXJhdGVzLEFFClVuaXRlZCBLaW5nZG9tLEdCClVuaXRlZCBTdGF0ZXMsVVMKVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzLFVNClVydWd1YXksVVkKVXpiZWtpc3RhbixVWgpWYW51YXR1LFZVCiJWZW5lenVlbGEsIEJvbGl2YXJpYW4gUmVwdWJsaWMgb2YiLFZFClZpZXQgTmFtLFZOCiJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIsVkcKIlZpcmdpbiBJc2xhbmRzLCBVLlMuIixWSQpXYWxsaXMgYW5kIEZ1dHVuYSxXRgpXZXN0ZXJuIFNhaGFyYSxFSApZZW1lbixZRQpaYW1iaWEsWk0KWmltYmFid2UsWlcK]]></data>
	</file>
	<file>
	  <filename>/data/lang-ISO-639-1.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ImFscGhhMiIsIkVuZ2xpc2giCiJhYSIsIkFmYXIiCiJhYiIsIkFia2hhemlhbiIKImFlIiwiQXZlc3RhbiIKImFmIiwiQWZyaWthYW5zIgoiYWsiLCJBa2FuIgoiYW0iLCJBbWhhcmljIgoiYW4iLCJBcmFnb25lc2UiCiJhciIsIkFyYWJpYyIKImFzIiwiQXNzYW1lc2UiCiJhdiIsIkF2YXJpYyIKImF5IiwiQXltYXJhIgoiYXoiLCJBemVyYmFpamFuaSIKImJhIiwiQmFzaGtpciIKImJlIiwiQmVsYXJ1c2lhbiIKImJnIiwiQnVsZ2FyaWFuIgoiYmgiLCJCaWhhcmkgbGFuZ3VhZ2VzIgoiYmkiLCJCaXNsYW1hIgoiYm0iLCJCYW1iYXJhIgoiYm4iLCJCZW5nYWxpIgoiYm8iLCJUaWJldGFuIgoiYnIiLCJCcmV0b24iCiJicyIsIkJvc25pYW4iCiJjYSIsIkNhdGFsYW47IFZhbGVuY2lhbiIKImNlIiwiQ2hlY2hlbiIKImNoIiwiQ2hhbW9ycm8iCiJjbyIsIkNvcnNpY2FuIgoiY3IiLCJDcmVlIgoiY3MiLCJDemVjaCIKImN1IiwiQ2h1cmNoIFNsYXZpYzsgT2xkIFNsYXZvbmljOyBDaHVyY2ggU2xhdm9uaWM7IE9sZCBCdWxnYXJpYW47IE9sZCBDaHVyY2ggU2xhdm9uaWMiCiJjdiIsIkNodXZhc2giCiJjeSIsIldlbHNoIgoiZGEiLCJEYW5pc2giCiJkZSIsIkdlcm1hbiIKImR2IiwiRGl2ZWhpOyBEaGl2ZWhpOyBNYWxkaXZpYW4iCiJkeiIsIkR6b25na2hhIgoiZWUiLCJFd2UiCiJlbCIsIkdyZWVrLCBNb2Rlcm4gKDE0NTMtKSIKImVuIiwiRW5nbGlzaCIKImVvIiwiRXNwZXJhbnRvIgoiZXMiLCJTcGFuaXNoOyBDYXN0aWxpYW4iCiJldCIsIkVzdG9uaWFuIgoiZXUiLCJCYXNxdWUiCiJmYSIsIlBlcnNpYW4iCiJmZiIsIkZ1bGFoIgoiZmkiLCJGaW5uaXNoIgoiZmoiLCJGaWppYW4iCiJmbyIsIkZhcm9lc2UiCiJmciIsIkZyZW5jaCIKImZ5IiwiV2VzdGVybiBGcmlzaWFuIgoiZ2EiLCJJcmlzaCIKImdkIiwiR2FlbGljOyBTY290dGlzaCBHYWVsaWMiCiJnbCIsIkdhbGljaWFuIgoiZ24iLCJHdWFyYW5pIgoiZ3UiLCJHdWphcmF0aSIKImd2IiwiTWFueCIKImhhIiwiSGF1c2EiCiJoZSIsIkhlYnJldyIKImhpIiwiSGluZGkiCiJobyIsIkhpcmkgTW90dSIKImhyIiwiQ3JvYXRpYW4iCiJodCIsIkhhaXRpYW47IEhhaXRpYW4gQ3Jlb2xlIgoiaHUiLCJIdW5nYXJpYW4iCiJoeSIsIkFybWVuaWFuIgoiaHoiLCJIZXJlcm8iCiJpYSIsIkludGVybGluZ3VhIChJbnRlcm5hdGlvbmFsIEF1eGlsaWFyeSBMYW5ndWFnZSBBc3NvY2lhdGlvbikiCiJpZCIsIkluZG9uZXNpYW4iCiJpZSIsIkludGVybGluZ3VlOyBPY2NpZGVudGFsIgoiaWciLCJJZ2JvIgoiaWkiLCJTaWNodWFuIFlpOyBOdW9zdSIKImlrIiwiSW51cGlhcSIKImlvIiwiSWRvIgoiaXMiLCJJY2VsYW5kaWMiCiJpdCIsIkl0YWxpYW4iCiJpdSIsIkludWt0aXR1dCIKImphIiwiSmFwYW5lc2UiCiJqdiIsIkphdmFuZXNlIgoia2EiLCJHZW9yZ2lhbiIKImtnIiwiS29uZ28iCiJraSIsIktpa3V5dTsgR2lrdXl1Igoia2oiLCJLdWFueWFtYTsgS3dhbnlhbWEiCiJrayIsIkthemFraCIKImtsIiwiS2FsYWFsbGlzdXQ7IEdyZWVubGFuZGljIgoia20iLCJDZW50cmFsIEtobWVyIgoia24iLCJLYW5uYWRhIgoia28iLCJLb3JlYW4iCiJrciIsIkthbnVyaSIKImtzIiwiS2FzaG1pcmkiCiJrdSIsIkt1cmRpc2giCiJrdiIsIktvbWkiCiJrdyIsIkNvcm5pc2giCiJreSIsIktpcmdoaXo7IEt5cmd5eiIKImxhIiwiTGF0aW4iCiJsYiIsIkx1eGVtYm91cmdpc2g7IExldHplYnVyZ2VzY2giCiJsZyIsIkdhbmRhIgoibGkiLCJMaW1idXJnYW47IExpbWJ1cmdlcjsgTGltYnVyZ2lzaCIKImxuIiwiTGluZ2FsYSIKImxvIiwiTGFvIgoibHQiLCJMaXRodWFuaWFuIgoibHUiLCJMdWJhLUthdGFuZ2EiCiJsdiIsIkxhdHZpYW4iCiJtZyIsIk1hbGFnYXN5IgoibWgiLCJNYXJzaGFsbGVzZSIKIm1pIiwiTWFvcmkiCiJtayIsIk1hY2Vkb25pYW4iCiJtbCIsIk1hbGF5YWxhbSIKIm1uIiwiTW9uZ29saWFuIgoibXIiLCJNYXJhdGhpIgoibXMiLCJNYWxheSIKIm10IiwiTWFsdGVzZSIKIm15IiwiQnVybWVzZSIKIm5hIiwiTmF1cnUiCiJuYiIsIkJva23DpWwsIE5vcndlZ2lhbjsgTm9yd2VnaWFuIEJva23DpWwiCiJuZCIsIk5kZWJlbGUsIE5vcnRoOyBOb3J0aCBOZGViZWxlIgoibmUiLCJOZXBhbGkiCiJuZyIsIk5kb25nYSIKIm5sIiwiRHV0Y2g7IEZsZW1pc2giCiJubiIsIk5vcndlZ2lhbiBOeW5vcnNrOyBOeW5vcnNrLCBOb3J3ZWdpYW4iCiJubyIsIk5vcndlZ2lhbiIKIm5yIiwiTmRlYmVsZSwgU291dGg7IFNvdXRoIE5kZWJlbGUiCiJudiIsIk5hdmFqbzsgTmF2YWhvIgoibnkiLCJDaGljaGV3YTsgQ2hld2E7IE55YW5qYSIKIm9jIiwiT2NjaXRhbiAocG9zdCAxNTAwKTsgUHJvdmVuw6dhbCIKIm9qIiwiT2ppYndhIgoib20iLCJPcm9tbyIKIm9yIiwiT3JpeWEiCiJvcyIsIk9zc2V0aWFuOyBPc3NldGljIgoicGEiLCJQYW5qYWJpOyBQdW5qYWJpIgoicGkiLCJQYWxpIgoicGwiLCJQb2xpc2giCiJwcyIsIlB1c2h0bzsgUGFzaHRvIgoicHQiLCJQb3J0dWd1ZXNlIgoicXUiLCJRdWVjaHVhIgoicm0iLCJSb21hbnNoIgoicm4iLCJSdW5kaSIKInJvIiwiUm9tYW5pYW47IE1vbGRhdmlhbjsgTW9sZG92YW4iCiJydSIsIlJ1c3NpYW4iCiJydyIsIktpbnlhcndhbmRhIgoic2EiLCJTYW5za3JpdCIKInNjIiwiU2FyZGluaWFuIgoic2QiLCJTaW5kaGkiCiJzZSIsIk5vcnRoZXJuIFNhbWkiCiJzZyIsIlNhbmdvIgoic2kiLCJTaW5oYWxhOyBTaW5oYWxlc2UiCiJzayIsIlNsb3ZhayIKInNsIiwiU2xvdmVuaWFuIgoic20iLCJTYW1vYW4iCiJzbiIsIlNob25hIgoic28iLCJTb21hbGkiCiJzcSIsIkFsYmFuaWFuIgoic3IiLCJTZXJiaWFuIgoic3MiLCJTd2F0aSIKInN0IiwiU290aG8sIFNvdXRoZXJuIgoic3UiLCJTdW5kYW5lc2UiCiJzdiIsIlN3ZWRpc2giCiJzdyIsIlN3YWhpbGkiCiJ0YSIsIlRhbWlsIgoidGUiLCJUZWx1Z3UiCiJ0ZyIsIlRhamlrIgoidGgiLCJUaGFpIgoidGkiLCJUaWdyaW55YSIKInRrIiwiVHVya21lbiIKInRsIiwiVGFnYWxvZyIKInRuIiwiVHN3YW5hIgoidG8iLCJUb25nYSAoVG9uZ2EgSXNsYW5kcykiCiJ0ciIsIlR1cmtpc2giCiJ0cyIsIlRzb25nYSIKInR0IiwiVGF0YXIiCiJ0dyIsIlR3aSIKInR5IiwiVGFoaXRpYW4iCiJ1ZyIsIlVpZ2h1cjsgVXlnaHVyIgoidWsiLCJVa3JhaW5pYW4iCiJ1ciIsIlVyZHUiCiJ1eiIsIlV6YmVrIgoidmUiLCJWZW5kYSIKInZpIiwiVmlldG5hbWVzZSIKInZvIiwiVm9sYXDDvGsiCiJ3YSIsIldhbGxvb24iCiJ3byIsIldvbG9mIgoieGgiLCJYaG9zYSIKInlpIiwiWWlkZGlzaCIKInlvIiwiWW9ydWJhIgoiemEiLCJaaHVhbmc7IENodWFuZyIKInpoIiwiQ2hpbmVzZSIKInp1IiwiWnVsdSIK]]></data>
	</file>
	<file>
	  <filename>/data/registered-BCP-47.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[J2FmX1pBJywiQWZyaWthYW5zIChBZnJpY2FhbnMpIgoiYXJfQVIiLCLYp9mE2LnYsdio2YrYqSAoQXJhYmljKSIKImJnX0JHIiwi0JHRitC70LPQsNGA0YHQutC4IChCdWxnYXJpYW4pIgoiY2FfRVMiLCJDYXRhbMOgIChDYXRhbGFuKSIKImNzX0NaIiwixIxlc2t5IChDemVjaCkiCiJkYV9ESyIsIkRhbnNrIChEYW5pc2gpIgoiZGVfREUiLCJEZXV0c2NoIChHZXJtYW4pIgoiZWxfR1IiLCLOlc67zrvOt869zrnOus6xIChHcmVlaykiCiJlbl9DWSIsIldhbGVzIChXZWxzaCkiCiJlbl9VUyIsIkVuZ2xpc2ggKEVuZ2xpc2gpIgoiZXNfRVMiLCJFc3Bhw7FvbCAoU3BhbmlzaCkiCiJldF9FRSIsIkVlc3RpIChFc3RvbmlhbikiCiJldV9FUyIsIkV1c2thcmEgKEJhc3F1ZSkiCiJmYV9JUiIsItmB2KfYsdiz24wgKEZhcnNpKSIKImZpX0ZJIiwiU3VvbWkgKEZpbm5pc2gpIgoiZnJfRlIiLCJGcmFuw6dhaXMgKEZyZW5jaCkiCiJocl9IUiIsIkhydmF0c2tpIChDcm9hdGlhbikiCiJodV9IVSIsIk1hZ3lhciAoSHVuZ2FyaWFuKSIKImlkX0lEIiwiQmFoYXNhIEluZG9uZXNpYSAoSW5kb25lc2lhbikiCiJpc19JUyIsIsONc2xlbnNrYSAoSWNlbGFuZGljKSIKIml0X0lUIiwiSXRhbGlhbm8gKEl0YWxpYW4pIgoiamFfSlAiLCLml6XmnKzoqp4gKEphcGFuZXNlKSIKImt6X0taIiwiS2F6YWtoIChLYXpha2gpIgoibHRfTFQiLCJMaWV0dXZpxbMgKExpdGh1YW5pYW4pIgoibmJfTk8iLCJOb3JzayBib2ttw6VsIChOb3J3ZWdpYW4gYm9rbcOlbCkiCiJubF9OTCIsIk5lZGVybGFuZHMgKER1dGNoKSIKInBsX1BMIiwiUG9sc2tpIChQb2xpc2gpIgoicHRfQlIiLCJQb3J0dWd1w6pzIGRvIEJyYXNpbCAoQnJhemlsaWFuIFBvcnR1Z3Vlc2UpIgoicHRfUFQiLCJQb3J0dWd1w6pzIGRlIFBvcnR1Z2FsIChQb3J0dWd1ZXNlKSIKInJvX1JPIiwiUm9tw6JuxIMgKFJvbWFuaWFuKSIKInJ1X1JVIiwi0KDRg9GB0YHQutC40LkgKFJ1c3NpYW4pIgoic2tfU0siLCJTbG92ZW7EjWluYSAoU2xvdmFrKSIKInNsX1NJIiwiU2xvdmVuc2tvIChTbG92ZW5pYW4pIgoic3JfWVUiLCJTcnBza2kgKFNlcmJpYW4pIgoic3ZfU0UiLCJTdmVuc2thIChTd2VkaXNoKSIKInRyX1RSIiwiVMO8cmvDp2UgKFR1cmtpc2gpIgoiemhfQ04iLCLnroDkvZPkuK3mlocgKFNpbXBsaWZpZWQgQ2hpbmVzZSkiCiJ6aF9UVyIsIue5gemrlOS4reaWhyAoVHJhZGl0aW9uYWwgQ2hpbmVzZSki]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/Eridu.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKdXNlIENNU01TRXh0XFhUTW9kdWxlOwp1c2UgRXJpZHVcTGFuZ0RBTzsKdXNlIEVyaWR1XGxhbmd1YWdlczsKdXNlIEVyaWR1XFRyYW5zbGF0b3I7CgpjbGFzcyBFcmlkdSBleHRlbmRzIFhUTW9kdWxlCnsKICAjIGltcG9ydGVkIGZyb20gQ0dtbAogIHByb3RlY3RlZCBMYW5nREFPICRkYW87CiAgcHJvdGVjdGVkIFRyYW5zbGF0b3IgJHRyYW5zbGF0b3I7CiAgIyBlbmQKICAKICBwdWJsaWMgYXJyYXkgJGF2YWlsYWJsZV9sYW5ndWFnZXMgPSBbXTsKICBwdWJsaWMgYXJyYXkgJGFsbF9sYW5ndWFnZXMgICAgICAgPSBbXTsKICBwdWJsaWMgYXJyYXkgJGN1cnJlbnRfbGFuZ2VudHJpZXMgPSBbXTsKICAKICAvKioKICAgKiBAdmFyIFxFcmlkdVxsYW5ndWFnZQogICAqLwogIHB1YmxpYyAkY3VycmVudF9sYW5ndWFnZTsKICBwdWJsaWMgc3RyaW5nICRjdXJyZW50X2xhbmdjb2RlID0gJyc7CiAgCiAgIyBpbnRlcm5hbDogcGVyc2lzdGFudCBtb2R1bGUgZmxhZ3MKICBwcml2YXRlICAgICAgICAgICAgJF9pZmxhZ3M7CiAgcHVibGljIHN0YXRpYyBib29sICRsb2FkZWQgPSBGQUxTRTsKICAKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgICMgc2luY2UgdGhpcyBpcyBub3cgYW4gWFRNb2R1bGUgdGhlIGZvbGxvd2luZyBzaG91bGQgbm90IGJlIG5lZWRlZAogICAgLy9zcGxfYXV0b2xvYWRfcmVnaXN0ZXIoWyR0aGlzLCAnX2F1dG9sb2FkZXInXSk7CiAgICAKICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsKICAgIAogICAgIyBvbiBob2xkLi4uLgovLyAgICAkZm4gPSBjbXNfam9pbl9wYXRoKAovLyAgICAgICR0aGlzLT5HZXRNb2R1bGVQYXRoKCksCi8vICAgICAgJ2xpYicsCi8vICAgICAgJ2NsYXNzLmVyaWR1X21sX3BhZ2UucGhwJwovLyAgICApOwovLwovLyAgICAkY29udGVudG9wcyAgICAgICAgPSBDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7Ci8vICAgICRvYmogICAgICAgICAgICAgICA9IG5ldyBDbXNDb250ZW50VHlwZVBsYWNlaG9sZGVyKCk7Ci8vICAgICRvYmotPmNsYXNzICAgICAgICA9ICdlcmlkdV9tbF9wYWdlJzsKLy8gICAgJG9iai0+dHlwZSAgICAgICAgID0gc3RydG9sb3dlcigkb2JqLT5jbGFzcyk7Ci8vICAgICRvYmotPmZpbGVuYW1lICAgICA9ICRmbjsKLy8gICAgJG9iai0+bG9hZGVkICAgICAgID0gRkFMU0U7Ci8vICAgICRvYmotPmZyaWVuZGx5bmFtZSA9ICR0aGlzLT5MYW5nKCdlcmlkdV9tbF9wYWdlJyk7Ci8vICAgICRjb250ZW50b3BzLT5yZWdpc3Rlcl9jb250ZW50X3R5cGUoJG9iaik7Ci8vICAgICR0aGlzLT5faWZsYWdzID0gdW5zZXJpYWxpemUoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmbGFncycsIHNlcmlhbGl6ZShbXSkgKSApOwogICAgCiAgICAjIGltcG9ydGVkIGZyb20gQ0dtbAogICAgc3RhdGljICRfbG9hZGVkOwogICAgaWYoJF9sb2FkZWQpIHsgcmV0dXJuOyB9CiAgICAkX2xvYWRlZCA9IDE7CiAgICAKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgIGlmKCEkc21hcnR5KSB7IHJldHVybjsgfQogICAgIyBFbmQKICAgIAogICAgJHNtYXJ0eS0+cmVnaXN0ZXJDbGFzcygneGw4cicsICdcRXJpZHVcc21hcnR5X3hsOHInKTsKICAgICRzbWFydHktPnJlZ2lzdGVyRmlsdGVyKCdvdXRwdXQnLCBbJHRoaXMsICdfb3V0cHV0X2ZpbHRlciddKTsKICAgIFxFcmlkdVxzbWFydHlfdXRpbHM6OnJlZ2lzdGVyKCk7CiAgICAKICAgICMgaW1wb3J0ZWQgYW5kIGFkYXB0ZWQgZnJvbSBDR21sCiAgICAkdGhpcy0+ZGFvICAgICAgICA9IG5ldyBMYW5nREFPKCk7CiAgICAkdGhpcy0+dHJhbnNsYXRvciA9IG5ldyBUcmFuc2xhdG9yKCR0aGlzLT5kYW8pOwogICAgCiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignbDEwbl9zZXRyZWFsbScsICdcXEVyaWR1XHNtYXJ0eV9wbHVnaW5zOjpzZXRyZWFsbScpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2wxMG5fZ2V0YWxsJywgJ1xcRXJpZHVcc21hcnR5X3BsdWdpbnM6OmdldGFsbCcpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2wxMG5fb3B0aW9ucycsICdcXEVyaWR1XHNtYXJ0eV9wbHVnaW5zOjpvcHRpb25zJyk7CiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignbDEwbicsICdcXEVyaWR1XHNtYXJ0eV9wbHVnaW5zOjp0cmFuc2xhdGUnKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdJMThOJywgJ1xcRXJpZHVcc21hcnR5X3BsdWdpbnM6OkkxOE4nKTsKICAgICMgZW5kCiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkgOiBzdHJpbmcgIHsgcmV0dXJuICdFcmlkdSc7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgOiBzdHJpbmcKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIDogc3RyaW5nCiAgewogICAgcmV0dXJuICcxLjEnOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSAgOiBzdHJpbmcKICB7CiAgICByZXR1cm4gJzIuMi44JzsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpICA6IGFycmF5CiAgewogICAgcmV0dXJuIFsnQ01TTVNFeHQnID0+ICcxLjEnXTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvcigpIDogc3RyaW5nCiAgewogICAgcmV0dXJuICdKbyBNb3JnIChGZXJuYW5kbyBNb3JnYWRvKSc7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIDogc3RyaW5nCiAgewogICAgcmV0dXJuICdqb21vcmdAY21zbWFkZXNpbXBsZS5vcmcnOwogIH0KICAKICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIDogYm9vbCB7IHJldHVybiBUUlVFOyB9CiAgCiAgZnVuY3Rpb24gSGFzQWRtaW4oKSAgOiBib29sIHsgcmV0dXJuIFRSVUU7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgOiBzdHJpbmcgIHsgcmV0dXJuICdjb250ZW50JzsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgOiBzdHJpbmcKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIDogYm9vbAogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5NZW51SXRlbXMoKQogIHsKICAgICRvdXQgPSBbXTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpICkKICAgIHsKICAgICAgJG91dFtdID0gXENtc0FkbWluTWVudUl0ZW06OmZyb21fbW9kdWxlKCR0aGlzKTsKICAgICAgCiAgICAgICMgYWRkaXRpb25hbGx5CiAgCiAgICAgICRvYmogICAgICAgICAgICAgID0gbmV3IENtc0FkbWluTWVudUl0ZW0oKTsKICAgICAgJG9iai0+bW9kdWxlICAgICAgPSAkdGhpcy0+R2V0TmFtZSgpOwogICAgICAkb2JqLT5zZWN0aW9uICAgICA9ICdjb250ZW50JzsKICAgICAgJG9iai0+dGl0bGUgICAgICAgPSAkdGhpcy0+TGFuZygnZW50cmllc19lZGl0b3InKTsKICAgICAgJG9iai0+ZGVzY3JpcHRpb24gPSAkdGhpcy0+TGFuZygnYWRtaW5kZXNjcmlwdGlvbicpOwogICAgICAkb2JqLT5hY3Rpb24gICAgICA9ICdlbnRyaWVzX2VkaXRvcic7CiAgICAgICRvYmotPnVybCAgICAgICAgID0gJHRoaXMtPmNyZWF0ZV91cmwoJ20xXycsICRvYmotPmFjdGlvbik7CiAgICAgICRvdXRbXSAgICAgICAgICAgID0gJG9iajsKICAgIH0KICAgIAogICAgaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigndHJhbnNsX2VyaWR1JykpCiAgICB7CiAgICAgICRvYmogICAgICAgICAgICAgID0gbmV3IENtc0FkbWluTWVudUl0ZW0oKTsKICAgICAgJG9iai0+bW9kdWxlICAgICAgPSAkdGhpcy0+R2V0TmFtZSgpOwogICAgICAkb2JqLT5zZWN0aW9uICAgICA9ICdjb250ZW50JzsKICAgICAgJG9iai0+dGl0bGUgICAgICAgPSAkdGhpcy0+TGFuZygndHJhbnNsYXRpb25fY2VudGVyJyk7CiAgICAgICRvYmotPmRlc2NyaXB0aW9uID0gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsKICAgICAgJG9iai0+YWN0aW9uICAgICAgPSAnYWRtaW5fdHJhbmxhdGlvbl9jZW50ZXInOwogICAgICAkb2JqLT51cmwgICAgICAgICA9ICR0aGlzLT5jcmVhdGVfdXJsKCdtMV8nLCAkb2JqLT5hY3Rpb24pOwogICAgICAkb3V0W10gICAgICAgICAgICA9ICRvYmo7CiAgICB9CiAgICAKICAgIHJldHVybiAkb3V0OwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkgIDogdm9pZAogIHsKICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aW9uJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtb2R1bGUnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93JywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdldmFsJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhc3NpZ24nLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25ld2xhbmcnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25ld3VybCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL2xhbmckLycsIFsnYWN0aW9uJyA9PiAncmVkaXJlY3QnXSk7CiAgICAKICAgICMgaW1wb3J0ZWQgZnJvbSBDR21sCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaycsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgna2V5JywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUCAuICcvXy4qLycsIENMRUFOX1NUUklORyk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBIYW5kbGVzRXZlbnRzKCkgOiBib29sICB7IHJldHVybiBUUlVFOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIDogc3RyaW5nCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSA6IHN0cmluZwogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpIDogc3RyaW5nCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7CiAgfQogIAogIAogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5PVCBQQVJUIE9GIFRIRSBOT1JNQUwgTU9EVUxFIEFQSQogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIAogIC8qKgogICAqIGltcG9ydGVkIGZyb20gQ0dtbAogICAqLwogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHJhbnNsYXRvcigpIDogVHJhbnNsYXRvcgogIHsKICAgIHJldHVybiAkdGhpcy0+dHJhbnNsYXRvcjsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9sYW5ndWFnZV9zdG9yYWdlKCkgOiBMYW5nREFPCiAgewogICAgcmV0dXJuICR0aGlzLT5kYW87CiAgfQogIAogIC8qKgogICAqIGVuZCBpbXBvcnRlZCBmcm9tIENHbWwKICAgKi8KICAKICAvKioKICAgKiBpbXBvcnRlZCBmcm9tIENHbWxHdWkKICAgKi8KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2xhbmdzX2Zyb21fcmF3KCAkcmF3ICkKICB7CiAgICAkb3V0ID0gbnVsbDsKICAgIGlmKCAkcmF3ICkgewogICAgICAkdG1wID0gZXhwbG9kZSgiXG4iLCRyYXcpOwogICAgICBmb3JlYWNoKCAkdG1wIGFzICYkb25lICkgewogICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgIGlmKCAhcHJlZ19tYXRjaCgnL1thLXpdezJ9X1tBLVpdezJ9LycsJG9uZSkgKSB7IGNvbnRpbnVlOyB9CiAgICAgICAgJG91dFtdID0gJG9uZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICRvdXQ7CiAgfQogIAogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZGZsdF9sYW5ndWFnZXMoKQogIHsKICAgICRyYXcgPSAiZW5fVVNcbmZyX0ZSXG5lc19FU1xubmxfTkwiOwogICAgJHJhdyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZmx0X2xhbmd1YWdlcycsICRyYXcpOwogICAgcmV0dXJuICR0aGlzLT5nZXRfbGFuZ3NfZnJvbV9yYXcoICRyYXcgKTsKICB9CiAgCiAgLyoqCiAgICogZW5kIGltcG9ydGVkIGZyb20gQ0dtbEd1aQogICAqLwogIAogIC8qKgogICAqIEBkZXByZWNhdGVkCiAgICogQHJldHVybiBhcnJheXxhcnJheVtdCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9tb2RwcmVmcygpIDogYXJyYXkKICB7CiAgICAvLyBbJ3ByZWZlcmVuY2VfbmFtZScsIGRlZmF1bHRdOwogICAgcmV0dXJuIFsKICAgICAgWydhdXRvcmVkaXJlY3RfaG9tZScsIFRSVUVdLAogICAgICBbJ2F1dG9yZWRpcmVjdF9hbGwnLCBGQUxTRV0sCiAgICAgIFsnY29va2llc19hdXRvcmVkaXJlY3RfaG9tZScsIFRSVUVdLAogICAgICBbJ2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCcsIEZBTFNFXSwKICAgICAgWydoaWVyYXJjaHlfcmVkaXJlY3QnLCBUUlVFXSwKICAgICAgWydjdXJyZW50X2xpbmsnLCBGQUxTRV0sCiAgICAgIFsnZGVmYXVsdF9oaWRlJywgVFJVRV0sCiAgICAgIFsnZGVmYXVsdF90cmFuc2xhdGUnLCBUUlVFXSwKICAgICAgWydoaWRlX21pc3NpbmdlbnRyaWVzJywgRkFMU0VdLAogICAgICBbJ3d5c2l3eWcnLCBGQUxTRV0KICAgIF07CiAgfQogIAogIAogIC8qKgogICAqIEBwYXJhbSBtaXhlZCAkbmFtZQogICAqCiAgICogQHJldHVybiBzdHJpbmcKICAgKiBAZGVwcmVjYXRlZAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBwbGNyZWF0ZWFsaWFzKCRuYW1lKSA6IHN0cmluZwogIHsKICAgIHJldHVybiBcRXJpZHVcbGFuZ19vcHM6OnBsY3JlYXRlYWxpYXMoJG5hbWUpOwogIH0KICAKICAvKioKICAgKiByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSB0YWJsZQogICAqCiAgICogQHBhcmFtIG1peGVkICR0YWJsZW5hbWUKICAgKiBAcGFyYW0gbWl4ZWQgJHdoYXQKICAgKiBAcGFyYW0gbWl4ZWQgJHdoZXJlCiAgICoKICAgKiBAcmV0dXJuIGludAogICAqIEBkZXByZWNhdGVkCiAgICovCiAgZnVuY3Rpb24gY291bnRzb21ldGhpbmcoJHRhYmxlbmFtZSwgJHdoYXQgPSAnaWQnLCAkd2hlcmUgPSBbXSkgOiBpbnQKICB7CiAgICByZXR1cm4gXEVyaWR1XGxhbmdfb3BzOjpjb3VudF9mcm9tX2RiKCR0YWJsZW5hbWUsICR3aGF0LCAkd2hlcmUpOwogIH0KICAKICAvKioKICAgKiBAcGFyYW0gbWl4ZWQgJGZpbGVuYW1lCiAgICoKICAgKiBAcmV0dXJuIGJvb2x8ZmFsc2V8c3RyaW5nCiAgICogQGRlcHJlY2F0ZWQKICAgKgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRGaWxlQ29udGVudCgkZmlsZW5hbWUpCiAgewogICAgcmV0dXJuIFxFcmlkdVx1dGlsczo6Z2V0RmlsZUNvbnRlbnQoJGZpbGVuYW1lKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIHJldHJpZXZlX3BhZ2VfbGFuZygpIDogdm9pZAogIHsKICAgICR0aGlzLT5hc3NpZ25fcGFnZV9sYW5nKCk7CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSBtaXhlZCAkaW5hY3RpdmUKICAgKgogICAqIEByZXR1cm4gYXJyYXkKICAgKiBAZGVwcmVjYXRlZAogICAqCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldGxhbmd1YWdlcygkaW5hY3RpdmUgPSBGQUxTRSkgOiBhcnJheQogIHsKICAgIGlmKCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzID09IEZBTFNFKQogICAgewogICAgICAkdGhpcy0+cmV0cmlldmVfbGFuZ3VhZ2VzKCk7CiAgICB9CiAgICAKICAgIHJldHVybiAkaW5hY3RpdmUgPyAkdGhpcy0+YWxsX2xhbmd1YWdlcyA6ICR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzOwogIH0KICAKICAvKioKICAgKiByZXRyaWV2ZXMgbGFuZ3VhZ2VzIGZyb20gdGhlIGRhdGFiYXNlIGFuZCBzdG9yZSB0aGVtIGluIHRoZSBtb2R1bGUgb2JqZWN0CiAgICogdG8gYXZvaWQgbXVsdGlwbGUgcmV0cmlldmFsLCB1c2UgZ2V0bGFuZ3VhZ2VzKCk7CiAgICoKICAgKiBAZGVwcmVjYXRlZAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiByZXRyaWV2ZV9sYW5ndWFnZXMoKSA6IHZvaWQKICB7CiAgICAkdGhpcy0+YWxsX2xhbmd1YWdlcyAgICAgICA9IGxhbmd1YWdlczo6Z2V0bGFuZ3VhZ2VzKFRSVUUpOwogICAgJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgPSBsYW5ndWFnZXM6OmdldGxhbmd1YWdlcygpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gYWRtaW5fcmV0cmlldmVfbGFuZ3VhZ2VzKCRpZCwgJHJldHVybmlkKSA6IGFycmF5CiAgewogICAgJGdDbXMgPSBjbXNtcygpOwogICAgCiAgICAkYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwogICAgCiAgICAkZGVmYXVsdGxhbmcgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9sYW5ndWFnZScsIEZBTFNFKTsKICAgICRsYW5ncyAgICAgICA9IGxhbmd1YWdlczo6R2V0Rm9yRWRpdGluZygpOwogICAgJGNudCAgICAgICAgID0gY291bnQoJGxhbmdzKTsKICAgICRvdXRwdXQgICAgICA9IFtdOwogICAgCiAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykKICAgIHsKICAgICAgIyBqdXN0IGEgaGFjayB0byBrZWVwIGJhY2t3YXJkIGNvbXBhdC4uLiAoSk0pCiAgICAgICMgYXJyYXkgdG8gc3RkY2xhc3MKICAgICAgJGl0ZW0gPSAob2JqZWN0KSRsYW5nLT50b0FycmF5KCk7CiAgICAgIAogICAgICAkaXRlbS0+bmFtZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAkaWQsCiAgICAgICAgJ2VkaXRsYW5nJywKICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgJGl0ZW0tPm5hbWUsCiAgICAgICAgWydsYW5naWQnID0+ICRpdGVtLT5pZF0KICAgICAgKTsKICAgICAgCiAgICAgICRpdGVtLT5jb2RlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKAogICAgICAgICRpZCwKICAgICAgICAnZWRpdGxhbmcnLAogICAgICAgICRyZXR1cm5pZCwKICAgICAgICAkaXRlbS0+bGFuZ2NvZGUsCiAgICAgICAgWydsYW5naWQnID0+ICRpdGVtLT5pZF0KICAgICAgKTsKICAgICAgCi8vICAgICAgJGl0ZW0tPmVkaXRlbnRyaWVzID0gJHRoaXMtPkNyZWF0ZUxpbmsoCi8vICAgICAgICAkaWQsCi8vICAgICAgICAnZWRpdGVudHJpZXMnLAovLyAgICAgICAgJHJldHVybmlkLAovLyAgICAgICAgJHRoaXMtPkxhbmcoJ2VkaXRfZW50cmllcycpLAovLyAgICAgICAgWydsYW5naWQnID0+ICRpdGVtLT5pZF0KLy8gICAgICApOwogICAgICAKICAgICAgJGltYWdlID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBsYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwogICAgICAKICAgICAgJG1vdmVwYXJhbXMgPSBbCiAgICAgICAgJ2xhbmdfaWQnICAgICAgPT4gJGl0ZW0tPmlkLAogICAgICAgICdjdXJyZW50b3JkZXInID0+ICRpdGVtLT5pdGVtX29yZGVyCiAgICAgIF07CiAgICAgIAogICAgICAkZGVsZXRlcGFyYW1zICAgPSBhcnJheV9tZXJnZShbJ21vdmUnID0+ICdkZWxldGUnXSwgJG1vdmVwYXJhbXMpOwogICAgICAkc2FmZV9pdGVtX25hbWUgPSBzdHJfcmVwbGFjZSgiJyIsICJcJyIsICRpdGVtLT5uYW1lKTsKICAgICAgCiAgICAgICRpdGVtLT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoCiAgICAgICAgJGlkLAogICAgICAgICdhbHRlcicsCiAgICAgICAgJHJldHVybmlkLAogICAgICAgICRpbWFnZSwKICAgICAgICAkZGVsZXRlcGFyYW1zLAogICAgICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRlbGFuZ3VhZ2UnLCAkc2FmZV9pdGVtX25hbWUpCiAgICAgICk7CiAgICAgIAogICAgICAkaXRlbS0+YWN0aW9ucyA9ICRpdGVtLT5kZWxldGVsaW5rOwogICAgICAKICAgICAgaWYoJGl0ZW0tPml0ZW1fb3JkZXIgIT09ICRjbnQpCiAgICAgIHsKICAgICAgICAkaW1hZ2UgICAgICAgID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywgbGFuZygndXAnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwogICAgICAgICRtb3ZldXBwYXJhbXMgPSBhcnJheV9tZXJnZShbJ21vdmUnID0+ICd1cCddLCAkbW92ZXBhcmFtcyk7CiAgICAgICAgCiAgICAgICAgJGl0ZW0tPm1vdmV1cGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAgICRpZCwKICAgICAgICAgICdhbHRlcicsCiAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAkaW1hZ2UsCiAgICAgICAgICAkbW92ZXVwcGFyYW1zCiAgICAgICAgKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAkaXRlbS0+bW92ZXVwbGluayA9ICcnOwogICAgICB9CiAgICAgIAogICAgICBpZigxICE9PSAkaXRlbS0+aXRlbV9vcmRlcikKICAgICAgewogICAgICAgICRpbWFnZSA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsIGxhbmcoJ2Rvd24nKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwogICAgICAgIAogICAgICAgICRtb3ZlZG93bnBhcmFtcyA9IGFycmF5X21lcmdlKFsnbW92ZScgPT4gJ2Rvd24nXSwgJG1vdmVwYXJhbXMpOwogICAgICAgIAogICAgICAgICRpdGVtLT5tb3ZlZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAgICRpZCwKICAgICAgICAgICdhbHRlcicsCiAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAkaW1hZ2UsCiAgICAgICAgICAkbW92ZWRvd25wYXJhbXMKICAgICAgICApOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICRpdGVtLT5tb3ZlZG93bmxpbmsgPSAnJzsKICAgICAgfQogICAgICAKICAgICAgCiAgICAgICRpdGVtLT5tb3ZlbGlua3MgPSAkaXRlbS0+bW92ZXVwbGluayAuICcgJyAuICRpdGVtLT5tb3ZlZG93bmxpbms7CiAgICAgIAogICAgICBpZigkZGVmYXVsdGxhbmcgPT09ICRpdGVtLT5pZCkKICAgICAgewogICAgICAgICRpdGVtLT50b2dnbGVkZWZhdWx0ID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJ3RydWUnLCAnJywgJycsICdzeXN0ZW1pY29uJyk7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJGl0ZW0tPnRvZ2dsZWRlZmF1bHQgPSAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAgICRpZCwgJ3RvZ2dsZWRlZmF1bHQnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoCiAgICAgICAgICAnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsIGxhbmcoJ3NldHRydWUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicKICAgICAgICApLCBbJ2xhbmdfaWQnID0+ICRpdGVtLT5pZF0KICAgICAgICApOwogICAgICB9CiAgICAgIAogICAgICBpZigkaXRlbS0+YWN0aXZlKQogICAgICB7CiAgICAgICAgJGl0ZW0tPnRvZ2dsZWFjdGl2ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKAogICAgICAgICAgJGlkLCAndG9nZ2xlYWN0aXZlJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKAogICAgICAgICAgJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsIGxhbmcoJ3NldGZhbHNlJyksICcnLCAnJywgJ3N5c3RlbWljb24nCiAgICAgICAgKSwgWydsYW5nX2lkJyA9PiAkaXRlbS0+aWQsICdhY3RpdmUnID0+ICcwJ10KICAgICAgICApOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICRpdGVtLT50b2dnbGVhY3RpdmUgPSAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAgICRpZCwgJ3RvZ2dsZWFjdGl2ZScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgKICAgICAgICAgICdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgbGFuZygnc2V0dHJ1ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJwogICAgICAgICksIFsnbGFuZ19pZCcgPT4gJGl0ZW0tPmlkLCAnYWN0aXZlJyA9PiAnMSddCiAgICAgICAgKTsKICAgICAgfQogICAgICAKICAgICAgJG91dHB1dFtdID0gJGl0ZW07CiAgICB9CiAgICAKICAgIHJldHVybiAkb3V0cHV0OwogIH0KICAKICAvKioKICAgKiBAcGFyYW0gbWl4ZWQgJGxhbmdjb2RlCiAgICoKICAgKiBAcmV0dXJuIFN0ZENsYXNzCiAgICogQGRlcHJlY2F0ZWQKICAgKgogICAqLwovLyAgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX2RldGFpbHMoJGxhbmdjb2RlKQovLyAgewovLyAgICByZXR1cm4gXEVyaWR1XGxhbmdfb3BzOjpnZXRfbGFuZ3VhZ2VfZGV0YWlscygkbGFuZ2NvZGUpOwovLyAgfQogIAogIC8qKgogICAqIHJldHJpZXZlcyB0aGUgbGFuZ3VhZ2UgZW50cmllcyBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UKICAgKgogICAqIEBkZXByZWNhdGVkCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHJldHJpZXZlX2xhbmdlbnRyaWVzKCkKICB7CiAgICBpZighJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpIHsgJHRoaXMtPnJldHJpZXZlX3BhZ2VfbGFuZygpOyB9CiAgICAKICAgIGlmKCEkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSkgeyByZXR1cm4gRkFMU0U7IH0KICAgIAogICAgJGRlZmxhbmcgICAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbGFuZ3VhZ2UnLCBGQUxTRSk7CiAgICAkcGFydGlhbF9pbXBvcnQgPSBGQUxTRTsKICAgIAogICAgaWYoJGRlZmxhbmcgJiYgJGRlZmxhbmcgIT09ICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3RyYW5zbGF0ZScsIEZBTFNFKSkKICAgIHsKICAgICAgLy8gd2hlbiB0aGUgZW50cnkgZG9lc24ndCBleGlzdCBpbiB0aGUgY3VycmVudCBsYW5ndWFnZSwgd2UgdXNlIHRoZSBvbmUgZnJvbSB0aGUgZGVmYXVsdCBsYW5ndWFnZSwKICAgICAgLy8gc28gd2UgbG9hZCB0aGlzIG9uZSBmaXJzdAogICAgICAkcGFydGlhbF9pbXBvcnQgICAgICAgICAgICA9IFRSVUU7CiAgICAgICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzID0gJHRoaXMtPmxvYWRfbGFuZ2VudHJpZXMoJGRlZmxhbmcpOwogICAgfQogICAgCiAgICAkY3VycmVudF9lbnRyaWVzID0gJHRoaXMtPmxvYWRfbGFuZ2VudHJpZXMoICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfaWQoKSApOwogICAgCiAgICBpZigkcGFydGlhbF9pbXBvcnQpCiAgICB7CiAgICAgIC8vIHdlJ3ZlIGFscmVhZHkgbG9hZGVkIHRoZSBkZWZhdWx0IGVudHJpZXMsIHNvIHdlIGFkZC9yZXBsYWNlIHRoZSBvbmVzIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZQogICAgICBmb3JlYWNoKCRjdXJyZW50X2VudHJpZXMgYXMgJGtleSA9PiAkdmFsdWUpCiAgICAgIHsKICAgICAgICBpZigkdmFsdWUgJiYgJycgIT09ICR2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllc1ska2V5XSA9ICR2YWx1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgLy8gbm8gbmVlZCBmb3IgZGVmYXVsdCBlbnRyaWVzCiAgICAgICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzID0gJGN1cnJlbnRfZW50cmllczsKICAgIH0KICB9CiAgCiAgLyoqCiAgICogcmV0cmlldmVzIGxhbmd1YWdlIGVudHJpZXMgZm9yIGFueSBsYW5ndWFnZQogICAqCiAgICogQHBhcmFtIG1peGVkICRsYW5nCiAgICoKICAgKiBAcmV0dXJuIGFycmF5CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGxvYWRfbGFuZ2VudHJpZXMoJGxhbmcpIDogYXJyYXkKICB7CiAgICBpZiggISR0aGlzLT5pc19sYW5ndWFnZSgkbGFuZykgKSB7IHJldHVybiBbXTsgfQogICAgCiAgICByZXR1cm4gXEVyaWR1XGxhbmdfb3BzOjpsb2FkX2xhbmdlbnRyaWVzKCRsYW5nKTsKICB9CiAgCiAgLyoqCiAgICogQ2hlY2tzIHdoZXRoZXIgYSBsYW5ndWFnZSBleGlzdHMgYnkgY29kZSBvciBpZAogICAqCiAgICogQHBhcmFtIG51bGwgJGxhbmcKICAgKgogICAqIEByZXR1cm4gYm9vbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBpc19sYW5ndWFnZSgkbGFuZyA9IE5VTEwpIDogYm9vbAogIHsKICAgIGlmKCBlbXB0eSgkbGFuZykgKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICBpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpCiAgICB7CiAgICAgICR0aGlzLT5yZXRyaWV2ZV9sYW5ndWFnZXMoKTsKICAgIH0KICAgIAogICAgaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICBmb3JlYWNoKCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzIGFzICRvbmUpCiAgICB7CiAgICAgIGlmKCRvbmUtPmdldF9sYW5nY29kZSgpID09PSAkbGFuZykgeyByZXR1cm4gVFJVRTsgfQogICAgICAKICAgICAgaWYoJG9uZS0+Z2V0X2lkKCkgPT09ICRsYW5nKSB7IHJldHVybiBUUlVFOyB9CiAgICB9CiAgICAKICAgIHJldHVybiBGQUxTRTsKICB9CiAgCiAgLyoqCiAgICogQ2hlY2tzIHdoZXRoZXIgYSBsYW5ndWFnZSBleGlzdHMgYnkgaWQKICAgKgogICAqIEBwYXJhbSBtaXhlZCAkaWQKICAgKgogICAqIEByZXR1cm4gYm9vbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBsYW5nX2V4aXN0KCRpZCA9IC0xKSA6IGJvb2wKICB7CiAgICBpZigkaWQgPCAxKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICBpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpIHsgJHRoaXMtPnJldHJpZXZlX2xhbmd1YWdlcygpOyB9CiAgICAKICAgIGlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgeyByZXR1cm4gRkFMU0U7IH0KICAgIAogICAgZm9yZWFjaCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyBhcyAkb25lKQogICAgewogICAgICBpZigkb25lLT5nZXRfaWQoKSA9PT0gJGlkKSB7IHJldHVybiBUUlVFOyB9CiAgICB9CiAgICAKICAgIHJldHVybiBGQUxTRTsKICB9CiAgCiAgLyoqCiAgICogcmV0dXJucyBzdHJpbmcgY29ycmVzcG9uZGluZyB0byAka2V5IGluIHRoZSBjdXJyZW50IGxhbmd1YWdlCiAgICoKICAgKiBAcGFyYW0gbWl4ZWQgJGtleQogICAqCiAgICogIHN0cmluZyBub3Qgc3VyZSB3aHkgaXQgc2VlbXMgaXQgbWF5IHJldHVybiBhbiBhcnJheSBhdCBzb21lIHBvaW50Li4uIG5lZWRzIHJldmlzaXRpbmcgKEpNKQogICAqCiAgICogQHJldHVybiBhcnJheXxib29sfG1peGVkfHN0cmluZwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiByZXRyaWV2ZV90cmFuc2xhdGlvbigka2V5KQogIHsKICAgIGlmKCEkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllcykKICAgIHsKICAgICAgJHRoaXMtPnJldHJpZXZlX2xhbmdlbnRyaWVzKCk7CiAgICB9CiAgICAKICAgIGlmKCEkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllcykgeyByZXR1cm4gRkFMU0U7IH0KICAgIAogICAgJGtleXMgICA9IGV4cGxvZGUoJywnLCAka2V5KTsKICAgICRvdXRwdXQgPSBbXTsKICAgIAogICAgZm9yZWFjaCgka2V5cyBhcyAkYWtleSkKICAgIHsKICAgICAgaWYoaXNzZXQoJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGFrZXldKSAmJiAnJyAhPT0gJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGFrZXldKQogICAgICB7CiAgICAgICAgJG91dHB1dFtdID0gJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGFrZXldOwogICAgICB9CiAgICAgIGVsc2UgaWYoISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX21pc3NpbmdlbnRyaWVzJywgRkFMU0UpKQogICAgICB7CiAgICAgICAgJG91dHB1dFtdID0gJ0FkZCBtZTogJyAuICRha2V5IC4gJyAoJyAuICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKSAuICcpJzsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAkb3V0cHV0W10gPSAnJzsKICAgICAgfQogICAgfQogICAgCiAgICBpZiggMSA9PT0gY291bnQoJG91dHB1dCkgKSB7IHJldHVybiAkb3V0cHV0WzBdOyB9CiAgICAKICAgIHJldHVybiAkb3V0cHV0OwogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIF9yZXNvbHZlX2RlZmF1bHRfY29udGVudCgpIDogdm9pZAogIHsKICAgICRuZXdfZGVmYXVsdF9pZCAgICAgPSAkdGhpcy0+Y3VycmVudF9sYW5ndWFnZS0+Z2V0X2RlZmF1bHRfaWQoKTsKICAgICRjb3BzICAgICAgICAgICAgICAgPSBDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7CiAgICAkY3VycmVudF9kZWZhdWx0X2lkID0gJGNvcHMtPkdldERlZmF1bHRDb250ZW50KCk7CiAgICAKICAgIGlmKCRuZXdfZGVmYXVsdF9pZCAhPT0gJGN1cnJlbnRfZGVmYXVsdF9pZCkKICAgIHsKICAgICAgJG9sZCA9ICRjb3BzLT5Mb2FkQ29udGVudEZyb21JZCgkY3VycmVudF9kZWZhdWx0X2lkKTsKICAgICAgJG9sZC0+U2V0RGVmYXVsdENvbnRlbnQoRkFMU0UpOwogICAgICAkb2xkLT5TYXZlKCk7CiAgICAgICRuZXcgPSAkY29wcy0+TG9hZENvbnRlbnRGcm9tSWQoJG5ld19kZWZhdWx0X2lkKTsKICAgICAgJG5ldy0+U2V0RGVmYXVsdENvbnRlbnQoVFJVRSk7CiAgICAgICRuZXctPlNhdmUoKTsKICAgIH0KICB9CiAgCiAgLyoqCiAgICogY3VycmVudCBlbnRyeSBwb2ludAogICAqCiAgICogZGV0ZWN0cyBjdXJyZW50IGxhbmd1YWdlIGJhc2VkIG9uIGhpZXJhcmNoeSBhbmQgYXNzaWduIGl0IHRvIHNtYXJ0eQogICAqCiAgICogQGRlcHJlY2F0ZWQKICAgKi8KICBmdW5jdGlvbiBhc3NpZ25fcGFnZV9sYW5nKCkKICB7CiAgICAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKCk7CiAgICAkY29wcyAgICAgICAgICAgICAgICAgICA9IENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsKICAgICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gbGFuZ3VhZ2VzOjpHZXRDdXJyZW50TGFuZygpOwogICAgJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUgPSAkdGhpcy0+Y3VycmVudF9sYW5ndWFnZS0+Z2V0X2xhbmdjb2RlKCk7CiAgICAkdGVzdCAgICAgICAgICAgICAgICAgICA9ICR0aGlzLT5oaWVyYXJjaHlfZ2V0X2xpbmtzKCR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsKICAgIAogICAgIyBUT0RPOiB0aGlzIGlzIGEgYml0IGhhY2tpc2ggOjogd2lsbCBiZSByZXZpc2l0ZWQgZm9yIHRoZSBuZXh0IHZlcnNpb24gOiBKTQogICAgLy9pZigkdGhpcy0+Z2V0X3VybHR5cGUoKSAhPSAnbW9kX3Jld3JpdGUnKSAkdGhpcy0+X3Jlc29sdmVfZGVmYXVsdF9jb250ZW50KCk7CiAgICAKICAgICRjbnRfb2JqID0gJGNvcHMtPmdldENvbnRlbnRPYmplY3QoKTsKICAgIGlmKCAhaXNfb2JqZWN0KCRjbnRfb2JqKSApIHsgcmV0dXJuOyB9CiAgICAKICAgIGlmKCdlcnJvcnBhZ2UnID09PSAkY250X29iai0+VHlwZSgpKSB7IHJldHVybjsgfQogICAgCiAgICAkcGFnZWlkID0gJGNudF9vYmotPklkKCk7CiAgICAKICAgIGlmKCRwYWdlaWQgIT09ICR0ZXN0WyR0aGlzLT5jdXJyZW50X2xhbmdjb2RlXVsnY2lkJ10pCiAgICB7CiAgICAgIGlmKCFlbXB0eSgkdGVzdFskdGhpcy0+Y3VycmVudF9sYW5nY29kZV1bJ2FsaWFzJ10pKQogICAgICB7CiAgICAgICAgcmVkaXJlY3RfdG9fYWxpYXMoJHRlc3RbJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGVdWydhbGlhcyddKTsKICAgICAgfQogICAgfQogICAgCiAgICAjIHNtYXJ0eSBzdHVmZgogICAgJHNtYXJ0eSA9ICR0aGlzLT5HZXRBY3Rpb25UZW1wbGF0ZU9iamVjdCgpOwogICAgCiAgICBpZighaXNfb2JqZWN0KCRzbWFydHkpKQogICAgewogICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogdGhlc2UgYXJlIG5vdyBkZXByZWNhdGVkCiAgICAgKiB3aWxsIGJlIGtlcHQgZm9yIHNvbWUgdGltZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBwdXJwb3NlcwogICAgICovCiAgICAkc21hcnR5LT5hc3NpZ25HbG9iYWwoJ3BhZ2VfbGFuZycsICR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsKICAgICRzbWFydHktPmFzc2lnbkdsb2JhbCgnY3VycmVudF9sYW5ndWFnZScsICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlLT50b0FycmF5KCkpOwogIH0KICAKICAvKioKICAgKiByZWRpcmVjdHMgdG8gdGhlIHVzZXIgbGFuZ3VhZ2Ugd2hlbiBhIHVybCBpcyByZXF1ZXN0ZWQKICAgKgogICAqIEBkZXByZWNhdGVkCiAgICovCiAgZnVuY3Rpb24gYXV0b19yZWRpcmVjdCgpCiAgewogICAgaWYoISR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKQogICAgewogICAgICAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOwogICAgfQogICAgCiAgICAkcHJlZl9icm93c2VyX2hvbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3JlZGlyZWN0X2hvbWUnKTsKICAgICRwcmVmX2Jyb3dzZXJfYWxsICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvcmVkaXJlY3RfYWxsJyk7CiAgICAkcHJlZl9jb29raWVfaG9tZSAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29va2llc19hdXRvcmVkaXJlY3RfaG9tZScpOwogICAgJHByZWZfY29va2llX2FsbCAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCcpOwogICAgCiAgICAjIHJldHVybiBjYXNlIG5vIHJlZGlyZWN0aW9uIGlzIHJlcXVpcmVkCiAgICBpZigKICAgICEoCiAgICAgICRwcmVmX2Nvb2tpZV9ob21lICYmCiAgICAgICRwcmVmX2Nvb2tpZV9hbGwgJiYKICAgICAgJHByZWZfYnJvd3Nlcl9ob21lICYmCiAgICAgICRwcmVmX2Jyb3dzZXJfYWxsCiAgICApCiAgICApCiAgICB7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAgIAogICAgJHBhZ2VpZCAgICAgID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRDb250ZW50T2JqZWN0KCktPklkKCk7CiAgICAkbGFuZ3VhZ2VzICAgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKCk7CiAgICAkaXNfaG9tZXBhZ2UgPSBGQUxTRTsKICAgICRsYW5nY29kZXMgICA9IFtdOwogICAgJHRydW5jYXRlZCAgID0gW107CiAgICAKICAgIGZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZykKICAgIHsKICAgICAgJGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGxhbmctPnRvQXJyYXkoKTsKICAgICAgLyoqIEB2YXIgc3RyaW5nICRsZ2NkICovCiAgICAgICRsZ2NkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRsYW5ndWFnZVsnbGFuZ2NvZGUnXTsKICAgICAgJGxhbmdjb2Rlc1tdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGxnY2Q7CiAgCiAgICAgIC8qKiBAdmFyIHN0cmluZyAkdCAqLwogICAgICAkdCAgICAgICAgICAgICA9IHN1YnN0cigkbGdjZCwgMCwgMik7CiAgICAgICR0cnVuY2F0ZWRbJHRdID0gJGxnY2Q7CiAgICAgIAogICAgICBpZigkbGFuZ3VhZ2VbJ2RlZmF1bHRfaWQnXSA9PT0gJHBhZ2VpZCkgeyAkaXNfaG9tZXBhZ2UgPSBUUlVFOyB9CiAgICB9CiAgICAKICAgICRjb29raWUgID0gKCRpc19ob21lcGFnZSAmJiAkcHJlZl9jb29raWVfaG9tZSkgfHwgJHByZWZfY29va2llX2FsbDsKICAgICRicm93c2VyID0gKCRpc19ob21lcGFnZSAmJiAkcHJlZl9icm93c2VyX2hvbWUpIHx8ICRwcmVmX2Jyb3dzZXJfYWxsOwogICAgCiAgICBpZighJGNvb2tpZSAmJiAhJGJyb3dzZXIpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICAKICAgIC8vIHJldHJpZXZlIHVzZXIgbGFuZ3VhZ2UgOgogICAgJHVzcmxhbmcgPSBGQUxTRTsKICAgIAogICAgJGNvbmZpZyA9ICR0aGlzLT5HZXRFeHRlbmRlZENvbmZpZygpOwogICAgCiAgICBpZihpc3NldCgkX0NPT0tJRVskY29uZmlnWydjb29raWVfbmFtZSddXSkgJiYgJGNvb2tpZSAmJiBpbl9hcnJheSgkX0NPT0tJRVskY29uZmlnWydjb29raWVfbmFtZSddXSwgJGxhbmdjb2RlcykpCiAgICB7CiAgICAgICR1c3JsYW5nID0gJF9DT09LSUVbJGNvbmZpZ1snY29va2llX25hbWUnXV07CiAgICB9CiAgICBlbHNlIGlmKCRicm93c2VyKQogICAgewogICAgICAkbGFuZ19vYmogPSBsYW5ndWFnZXM6OkdldEJyb3dzZXJMYW5nKCk7CiAgICAgICRsYW5ndWFnZSA9ICRsYW5nX29iai0+Z2V0X2xhbmdjb2RlKCk7CiAgICAgIAogICAgICBpZihpc3NldCgkdHJ1bmNhdGVkWyRsYW5ndWFnZV0pKQogICAgICB7CiAgICAgICAgJHVzcmxhbmcgPSAkdHJ1bmNhdGVkWyRsYW5ndWFnZV07CiAgICAgIH0KICAgIH0KICAgIAogICAgaWYoJHVzcmxhbmcgJiYgKCRwcmVmX2Nvb2tpZV9hbGwgfHwgJHByZWZfY29va2llX2hvbWUpKQogICAgewogICAgICBzZXRjb29raWUoJGNvbmZpZ1snY29va2llX25hbWUnXSwgJHVzcmxhbmcsIHRpbWUoKSArIDg2NDAwICogMzY1LCAnLycpOwogICAgfQogICAgCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAKICAgIGlmKCR1c3JsYW5nICYmICR1c3JsYW5nICE9PSAkdGhpcy0+Y3VycmVudF9sYW5nY29kZSkKICAgIHsKICAgICAgJGRlc3RwYWdlID0gJHRoaXMtPmdldF91cmxzKCR1c3JsYW5nKTsKICAgICAgaWYoaXNzZXQoJGRlc3RwYWdlWyR1c3JsYW5nXSkpCiAgICAgIHsKICAgICAgICBoZWFkZXIoImxvY2F0aW9uOiAiIC4gJGRlc3RwYWdlWyR1c3JsYW5nXVsndXJsJ10gLiAkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddKTsKICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gRkFMU0U7CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSBib29sICRkZXNpcmVkX2xhbmcKICAgKgogICAqIEByZXR1cm4gYXJyYXkKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VybHMoJGRlc2lyZWRfbGFuZyA9IEZBTFNFKQogIHsKICAgIGlmKCAoYm9vbGVhbikkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcmFyY2h5X3JlZGlyZWN0JywgVFJVRSkgKQogICAgewogICAgICByZXR1cm4gJHRoaXMtPmhpZXJhcmNoeV9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZyk7CiAgICB9CiAgCiAgICByZXR1cm4gJHRoaXMtPm1hbnVhbF9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZyk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBjbGVhbkhpZXIoJHZhbHVlKSA6IHN0cmluZwogIHsKICAgIC8qKiBAdmFyIHN0cmluZyAkcGFydHMgKi8KICAgICRwYXJ0cyA9IGV4cGxvZGUoJy4nLCAkdmFsdWUpOwogICAgJGkgICAgID0gMDsKICAgIAogICAgd2hpbGUoaXNzZXQoJHBhcnRzWyRpXSkpCiAgICB7CiAgICAgICRwYXJ0c1skaV0gPSBzdHJfcGFkKCRwYXJ0c1skaV0sIDUsICcwJywgU1RSX1BBRF9MRUZUKTsKICAgICAgJGkrKzsKICAgIH0KICAgIAogICAgcmV0dXJuIGltcGxvZGUoJy4nLCAkcGFydHMpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gUGFydGlhbFVybFRvQ29va2llKCkgOiBzdHJpbmcKICB7CiAgICAkcHJvdG9jb2wgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAnaHR0cCcgOiAnaHR0cHMnOwogICAgJHJlbW92ZSAgID0gJHByb3RvY29sIC4gJzovLycgLiAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiAnLyc7CiAgICAKICAgIHJldHVybiB0cmltKAogICAgICBzdHJfcmVwbGFjZSgKICAgICAgICAkcmVtb3ZlLCAnJywgJHRoaXMtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCAncmVkaXJlY3QnLCBjbXNtcygpLT5nZXRfY29udGVudF9pZCgpLCBbXSwgRkFMU0UsIEZBTFNFLCAnbGFuZycpCiAgICAgICksICcvJwogICAgKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldExpbmtUb1BhZ2UoJGlkKQogIHsKICAgICRkYiAgICAgICAgICA9IGNtc21zKCktPkdldERiKCk7CiAgICAkY29uZmlnICAgICAgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRwcm90b2NvbCAgICA9IGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSA/ICdodHRwJyA6ICdodHRwcyc7CiAgICAkcmVtb3ZlICAgICAgPSAkcHJvdG9jb2wgLiAnOi8vJyAuICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKICAgICRiYXNldXJsICAgICA9IHRyaW0oc3RyX3JlcGxhY2UoJHJlbW92ZSwgJycsICRjb25maWdbJ3Jvb3RfdXJsJ10pLCAnLycpOwogICAgJHJldCAgICAgICAgID0gRkFMU0U7CiAgICAkcmVkaXJlY3Rpb24gPSAkdGhpcy0+Z2V0X3VybHR5cGUoKTsKICAgIAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBoaWVyYXJjaHlfcGF0aCxkZWZhdWx0X2NvbnRlbnQsY29udGVudF9hbGlhcyBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLgogICAgICAgICAgICAgJ2NvbnRlbnQgV0hFUkUgY29udGVudF9pZD0nIC4gJGlkOwogIAogICAgLyoqIEB2YXIgYXJyYXkgJGRicmVzdWx0ICovCiAgICAkZGJyZXN1bHQgPSAkZGItPkdldFJvdygkcXVlcnkpOwogICAgCiAgICBpZigkZGJyZXN1bHQpCiAgICB7CiAgICAgICRwYWdlX2V4dCA9ICRkYnJlc3VsdFsnZGVmYXVsdF9jb250ZW50J10gPyAnJyA6ICRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ107CiAgICAgIAogICAgICBpZignbW9kX3Jld3JpdGUnID09PSAkcmVkaXJlY3Rpb24pCiAgICAgIHsKICAgICAgICAkcmV0ID0gJGJhc2V1cmwgLiAnLycgLiAoJGRicmVzdWx0WydkZWZhdWx0X2NvbnRlbnQnXSA/ICcnIDogJGRicmVzdWx0WydoaWVyYXJjaHlfcGF0aCddIC4gJHBhZ2VfZXh0KTsKICAgICAgfQogICAgICBlbHNlIGlmKCdpbnRlcm5hbCcgPT09ICRyZWRpcmVjdGlvbikKICAgICAgewogICAgICAgICRyZXQgPSAkYmFzZXVybCAuICgkZGJyZXN1bHRbJ2RlZmF1bHRfY29udGVudCddID8gJycgOiAnL2luZGV4LnBocC8nIC4gJGRicmVzdWx0WydoaWVyYXJjaHlfcGF0aCddIC4gJHBhZ2VfZXh0KTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAkcmV0ID0gJGJhc2V1cmwgLiAoJGRicmVzdWx0WydkZWZhdWx0X2NvbnRlbnQnXQogICAgICAgICAgICA/ICcvJyA6ICcvaW5kZXgucGhwPycgLiAkY29uZmlnWydxdWVyeV92YXInXSAuICc9JyAuICRkYnJlc3VsdFsnY29udGVudF9hbGlhcyddKTsKICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gJHJldDsKICB9CiAgCiAgCiAgLyoqCiAgICogcmV0cmlldmVzIHRoZSB1cmwgdG8gdGhlIHBhZ2UgaW4gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UocykgZXF1aXZhbGVudCB0byB0aGUgY3VycmVudCBwYWdlLAogICAqIGJhc2VkIG9uIGhpZXJhcmNoeQogICAqIGlmICRkZXNpcmVkX2xhbmcgaXMgZmFsc2UsIGxpbmtzIGZvciBhbGwgYWN0aXZlIGxhbmd1YWdlcyB3aWxsIGJlIHJldHVybmVkCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nICRkZXNpcmVkX2xhbmcKICAgKgogICAqIEByZXR1cm4gYXJyYXl8Ym9vbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBoaWVyYXJjaHlfZ2V0X2xpbmtzKCRkZXNpcmVkX2xhbmcgPSAnJykKICB7CiAgICBpZiggISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzIHx8IDAgPT09IGNvdW50KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKSApIHsgcmV0dXJuIEZBTFNFOyB9CiAgICAKICAgICRkYiAgICAgICAgICAgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGJhc2VfdXJsICAgICA9ICR0aGlzLT5nZXRfYmFzZV91cmwoKTsKICAgICRkZWZhdWx0X2hpZGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9oaWRlJywgRkFMU0UpOwogICAgCiAgICBpZigkZGVzaXJlZF9sYW5nICYmIGlzc2V0KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRkZXNpcmVkX2xhbmddKSkKICAgIHsKICAgICAgJGxhbmdzID0gWyRkZXNpcmVkX2xhbmcgPT4gJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXNbJGRlc2lyZWRfbGFuZ11dOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkbGFuZ3MgPSAkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlczsKICAgIH0KICAgIAogICAgLy8gICAgJG1vZHVsZV9saW5rcyA9ICR0aGlzLT5tb2R1bGVfZ2V0X3VybCgpOwogICAgLy8KICAgIC8vICAgICMgbW9kdWxlX2dldF91cmwganVzdCByZXR1cm5zIGFuIGVtcHR5IGFycmF5IGZvciBub3cgc28gdGhpcyBpcyByZWFsbHkgYnlwYXNzZWQhISEKICAgIC8vICAgIGlmKGNvdW50KCRtb2R1bGVfbGlua3MpID09PSBjb3VudCgkbGFuZ3MpICYmIGlzc2V0KCRtb2R1bGVfbGlua3NbJGxhbmdbMF1bJ2xhbmdjb2RlJ11dKSkKICAgIC8vICAgIHsKICAgIC8vICAgICAgcmV0dXJuICRtb2R1bGVfbGlua3M7CiAgICAvLyAgICB9CiAgICAKICAgICRjbnRfb2JqID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+Z2V0Q29udGVudE9iamVjdCgpOwogICAgCiAgICBpZiggIWlzX29iamVjdCgkY250X29iaikgKSB7IHJldHVybiBbXTsgfQogICAgCiAgICAkY3VycmVudF9wb3NpdGlvbiA9IGV4cGxvZGUoICcuJywgJGNudF9vYmotPkhpZXJhcmNoeSgpICk7CiAgICAkb3V0cHV0ICAgICAgICAgICA9IFtdOwogICAgJHJvb3RpZHMgICAgICAgICAgPSBbXTsKICAgIC8vJGhpZXJhcmNoaWVzICAgICAgPSBbXTsKICAgICR3aGVyZSAgICAgICAgICAgID0gJyc7CiAgICAkcXVlcnlfdmFsdWVzICAgICA9IFtdOwogICAgJGRlZmF1bHRfcGF0aHMgICAgPSBbXTsKICAgIAogICAgZm9yZWFjaCgkbGFuZ3MgYXMgJG9uZSkKICAgIHsKICAgICAgJG9uZWxhbmcgPSAkb25lLT50b0FycmF5KCk7CiAgICAgIAogICAgICAkb3V0cHV0WyRvbmVsYW5nWydsYW5nY29kZSddXSA9IFsKICAgICAgICAnbWVudV90ZXh0JyA9PiAnJywKICAgICAgICAnbmFtZScgICAgICA9PiAnJywKICAgICAgICAndXJsJyAgICAgICA9PiAnJywKICAgICAgICAnYWxpYXMnICAgICA9PiAnJwogICAgICBdOwogICAgICAKICAgICAgJHJvb3RpZHNbJG9uZWxhbmdbJ3Jvb3RfaWQnXV0gPSAkb25lbGFuZ1snbGFuZ2NvZGUnXTsKICAgICAgJHdoZXJlIC49ICgnJyA9PT0gJHdoZXJlID8gJycgOiAnIE9SICcpIC4gJ2NvbnRlbnRfaWQ9Pyc7CiAgICAgICRxdWVyeV92YWx1ZXNbXSA9ICRvbmVsYW5nWydyb290X2lkJ107CiAgICB9CiAgICAKICAgICRjb3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgCiAgICAkdGVzdCA9IGxhbmd1YWdlczo6aXNfc3BlY2lhbF9jb250ZW50KCk7CiAgICAKICAgIAogICAgaWYobGFuZ3VhZ2VzOjppc19zcGVjaWFsX2NvbnRlbnQoKSkKICAgIHsKICAgICAgIyBhbGwgaW4gdGhlIHNhbWUgcGFnZSBzbyB3ZSBqdXN0IGZpbGwgdGhlIGJsYW5rcwogICAgICAkY250X29iaiA9ICRjb3BzLT5nZXRDb250ZW50T2JqZWN0KCk7CiAgICAgICRjaWQgICAgID0gJGNudF9vYmotPklkKCk7CiAgICAgICRkYXRhICAgID0gWwogICAgICAgICdjaWQnICAgICAgID0+ICRjaWQsCiAgICAgICAgJ3VybCcgICAgICAgPT4gJGNudF9vYmotPkdldFVSTCgpLAogICAgICAgICduYW1lJyAgICAgID0+ICRjbnRfb2JqLT5OYW1lKCksCiAgICAgICAgJ21lbnVfdGV4dCcgPT4gJGNudF9vYmotPk1lbnVUZXh0KCksCiAgICAgICAgJ2FsaWFzJyAgICAgPT4gJGNudF9vYmotPkFsaWFzKCkKICAgICAgXTsKICAgICAgCiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRvbmUpCiAgICAgIHsKICAgICAgICAkYWxhbmcgICAgICAgICAgICAgICAgICAgICAgPSAkb25lLT50b0FycmF5KCk7CiAgICAgICAgJG91dHB1dFskYWxhbmdbJ2xhbmdjb2RlJ11dID0gJGRhdGE7CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiAkb3V0cHV0OwogICAgfQogICAgCiAgICAkcXVlcnkgPSAnU0VMRUNUIGNvbnRlbnRfbmFtZSwgbWVudV90ZXh0LCBjb250ZW50X2lkLCBjb250ZW50X2FsaWFzLCAgaGllcmFyY2h5LCBoaWVyYXJjaHlfcGF0aCBGUk9NICcKICAgICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpCiAgICAgICAgICAgICAuICdjb250ZW50IFdIRVJFICgnIC4gJHdoZXJlIC4gJyknOwogICAgCiAgICAkZGJyZXN1bHQgICAgID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHF1ZXJ5X3ZhbHVlcyk7CiAgICAkcXVlcnlfdmFsdWVzID0gW107CiAgICAkd2hlcmUgICAgICAgID0gJyc7CiAgICAkbmV3cGF0aHMgICAgID0gW107CiAgICAKICAgIHdoaWxlKCAkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApCiAgICB7CiAgICAgIC8qKiBAdmFyIGFycmF5ICRwb3NpdGlvbiAqLwogICAgICAkcG9zaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBleHBsb2RlKCcuJywgJHJvd1snaGllcmFyY2h5J10pOwogICAgICAvKiogQHZhciBhcnJheSAkbmV3cG9zaXRpb24gKi8KICAgICAgJG5ld3Bvc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGN1cnJlbnRfcG9zaXRpb247CiAgICAgICRuZXdwb3NpdGlvblswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRwb3NpdGlvblswXTsKICAgICAgJG5ld19oaWVyYXJjaHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHRoaXMtPmNsZWFuSGllcihpbXBsb2RlKCcuJywgJG5ld3Bvc2l0aW9uKSk7Ci8vICAgICAgJGhpZXJhcmNoaWVzWwovLyAgICAgICAgJHJvb3RpZHNbCi8vICAgICAgICAgICRyb3dbJ2NvbnRlbnRfaWQnXQovLyAgICAgICAgXQovLyAgICAgIF0gPSAkbmV3X2hpZXJhcmNoeTsKICAKICAgICAgJHF1ZXJ5X3ZhbHVlc1tdID0gJG5ld19oaWVyYXJjaHk7CiAgICAgIAogICAgICAkbmV3cGF0aHNbJG5ld19oaWVyYXJjaHldICAgICAgICAgICAgICAgICAgICA9ICRyb290aWRzWyRyb3dbJ2NvbnRlbnRfaWQnXV07CiAgICAgICRkZWZhdWx0X3BhdGhzWyRyb290aWRzWyRyb3dbJ2NvbnRlbnRfaWQnXV1dID0gWwogICAgICAgICdjaWQnICAgICAgID0+ICRyb3dbJ2NvbnRlbnRfaWQnXSwKICAgICAgICAndXJsJyAgICAgICA9PiAkYmFzZV91cmwgLiAkcm93WydoaWVyYXJjaHlfcGF0aCddLAogICAgICAgICduYW1lJyAgICAgID0+ICRyb3dbJ2NvbnRlbnRfbmFtZSddLAogICAgICAgICdhbGlhcycgICAgID0+ICRyb3dbJ2NvbnRlbnRfYWxpYXMnXSwKICAgICAgICAnbWVudV90ZXh0JyA9PiAkcm93WydtZW51X3RleHQnXQogICAgICBdOwogICAgICAkd2hlcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuPSAoJycgPT09ICR3aGVyZSA/ICcnIDogJyBPUiAnKSAuICdoaWVyYXJjaHk9Pyc7CiAgICB9CiAgICAKICAgICRxdWVyeSA9ICdTRUxFQ1QgY29udGVudF9pZCwgY29udGVudF9hbGlhcywgY29udGVudF9uYW1lLCBtZW51X3RleHQsIGhpZXJhcmNoeSwgaGllcmFyY2h5X3BhdGggRlJPTSAnCiAgICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQogICAgICAgICAgICAgLiAnY29udGVudCBXSEVSRSAoJyAuICR3aGVyZSAuICcpJzsKICAgIAogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHF1ZXJ5X3ZhbHVlcyk7CiAgICAKICAgICRyZWRpcmVjdGlvbiA9ICR0aGlzLT5nZXRfdXJsdHlwZSgpOwogICAgCiAgICAkZGVmYXVsdF9wYWdlX2lkID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICAgCiAgICB3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgIHsKICAgICAgaWYoJ2ludGVybmFsJyA9PT0gJHJlZGlyZWN0aW9uIHx8ICdtb2RfcmV3cml0ZScgPT09ICRyZWRpcmVjdGlvbikKICAgICAgewogICAgICAgICR1cmwgPSAkYmFzZV91cmw7CiAgICAgICAgCiAgICAgICAgaWYoJHJvd1snY29udGVudF9pZCddICE9ICRkZWZhdWx0X3BhZ2VfaWQpCiAgICAgICAgewogICAgICAgICAgJHVybCAuPSAkcm93WydoaWVyYXJjaHlfcGF0aCddOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAkcGF0aHBhcnRzID0gZXhwbG9kZSgnLycsICRyb3dbJ2hpZXJhcmNoeV9wYXRoJ10pOwogICAgICAgICR1cmwgICAgICAgPSAkYmFzZV91cmwgLiAkcGF0aHBhcnRzW2NvdW50KCRwYXRocGFydHMpIC0gMV07CiAgICAgIH0KICAgICAgCiAgICAgICRvdXRwdXRbJG5ld3BhdGhzWyRyb3dbJ2hpZXJhcmNoeSddXV0gPSBbCiAgICAgICAgJ2NpZCcgICAgICAgPT4gJHJvd1snY29udGVudF9pZCddLAogICAgICAgICd1cmwnICAgICAgID0+ICR1cmwsCiAgICAgICAgJ25hbWUnICAgICAgPT4gJHJvd1snY29udGVudF9uYW1lJ10sCiAgICAgICAgJ21lbnVfdGV4dCcgPT4gJHJvd1snbWVudV90ZXh0J10sCiAgICAgICAgJ2FsaWFzJyAgICAgPT4gJHJvd1snY29udGVudF9hbGlhcyddCiAgICAgIF07CiAgICB9CiAgICAKICAgICRmaW5hbCA9IFtdOwogICAgCiAgICBmb3JlYWNoKCRvdXRwdXQgYXMgJGxhbmcgPT4gJHZhbHVlKQogICAgewogICAgICBpZiggaXNzZXQoJG1vZHVsZV9saW5rc1skbGFuZ10pICkKICAgICAgewogICAgICAgICR2YWx1ZVsndXJsJ10gID0gJG1vZHVsZV9saW5rc1skbGFuZ11bJ3VybCddOwogICAgICAgICR2YWx1ZVsnbmFtZSddID0gJG1vZHVsZV9saW5rc1skbGFuZ11bJ25hbWUnXTsKICAgICAgfQogICAgICAKICAgICAgaWYoJycgPT09ICR2YWx1ZVsndXJsJ10gJiYgJGRlZmF1bHRfaGlkZSkKICAgICAgewogICAgICAgICMgVE9ETwogICAgICB9CiAgICAgIGVsc2UgaWYoJycgPT09ICR2YWx1ZVsndXJsJ10pCiAgICAgIHsKICAgICAgICAkZmluYWxbJGxhbmddID0gJGRlZmF1bHRfcGF0aHNbJGxhbmddOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICRmaW5hbFskbGFuZ10gPSAkdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICRmaW5hbDsKICB9CiAgCiAgLyoqCiAgICogcmV0cmlldmVzIHRoZSB1cmwgdG8gdGhlIHBhZ2UgaW4gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UocykgZXF1aXZhbGVudCB0byB0aGUgY3VycmVudCBwYWdlLAogICAqIGJhc2VkIG9uIE1hcmNvcyBDcnV6IG1hbnVhbCBwcm9jZWR1cmUgKHNlZSBoZWxwKQogICAqIGlmICRkZXNpcmVkX2xhbmcgaXMgRkFMU0UsIGxpbmtzIGZvciBhbGwgYWN0aXZlIGxhbmd1YWdlcyB3aWxsIGJlIHJldHVybmVkCiAgICoKICAgKiBAcGFyYW0gYm9vbCAkZGVzaXJlZF9sYW5nCiAgICoKICAgKiBAcmV0dXJuIGFycmF5fGJvb2wKICAgKi8KICBmdW5jdGlvbiBtYW51YWxfZ2V0X2xpbmtzKCRkZXNpcmVkX2xhbmcgPSBGQUxTRSkKICB7CiAgICBpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgfHwgMCA9PT0gY291bnQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpKQogICAgewogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgICAKICAgICRkYiAgICAgICAgICAgICAgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGJhc2VfdXJsICAgICAgICA9ICR0aGlzLT5nZXRfYmFzZV91cmwoKTsKICAgICRvdXRwdXQgICAgICAgICAgPSBbXTsKICAgICRyb290aWRzICAgICAgICAgPSBbXTsKICAgICR3aGVyZSAgICAgICAgICAgPSAnJzsKICAgICRxdWVyeV92YWx1ZXMgICAgPSBbXTsKICAgICRkZWZhdWx0X3BhdGhzICAgPSBbXTsKICAgICRyZWRpcmVjdGlvbiAgICAgPSAkdGhpcy0+Z2V0X3VybHR5cGUoKTsKICAgICRkZWZhdWx0X3BhZ2VfaWQgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCk7CiAgICAKICAgICMgYWxsIG9yIGp1c3Qgb25lPwogICAgaWYoJGRlc2lyZWRfbGFuZyAmJiBpc3NldCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlc1skZGVzaXJlZF9sYW5nXSkpCiAgICB7CiAgICAgICRsYW5ncyA9IFskZGVzaXJlZF9sYW5nID0+ICR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRkZXNpcmVkX2xhbmddXTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJGxhbmdzID0gJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXM7CiAgICB9CiAgICAKICAgICMgYWx3YXlzIHJldHVybnMgYW4gZW1wdHkgYXJyYXksIG5lZWRzIHJldmlzaXRpbmcgKEpNKQogICAgLy8kbW9kdWxlX2xpbmtzID0gJHRoaXMtPm1vZHVsZV9nZXRfdXJsKCk7CiAgICAKICAgICMgdXNlbGVzcyBhdCBtb21lbnQuLi4KICAgIC8qCiAgICBpZiggY291bnQoJG1vZHVsZV9saW5rcykgPT09IGNvdW50KCRsYW5ncykgJiYgaXNzZXQoJG1vZHVsZV9saW5rc1skbGFuZ1swXVsnbGFuZ2NvZGUnXV0pICkKICAgIHsKICAgICAgcmV0dXJuICRtb2R1bGVfbGlua3M7CiAgICB9CiAgICAqLwogICAgCiAgICAkb3V0cHV0ID0gW107CiAgICAKICAgIGZvcmVhY2goJGxhbmdzIGFzICRvbmUpCiAgICB7CiAgICAgIGlmKGlzX29iamVjdCgkb25lKSkKICAgICAgewogICAgICAgICRvbmVsYW5nID0gJG9uZS0+dG9BcnJheSgpOwogICAgICB9CiAgICAgICRvdXRwdXRbJG9uZWxhbmdbJ2xhbmdjb2RlJ11dID0gRkFMU0U7CiAgICB9CiAgICAKICAgICRjb3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgCiAgICBpZihsYW5ndWFnZXM6OmlzX3NwZWNpYWxfY29udGVudCgpKQogICAgewogICAgICAjIGFsbCBpbiB0aGUgc2FtZSBwYWdlIHNvIHdlIGp1c3QgZmlsbCB0aGUgYmxhbmtzCiAgICAgICRjbnRfb2JqID0gJGNvcHMtPmdldENvbnRlbnRPYmplY3QoKTsKICAgICAgJGNpZCAgICAgPSAkY250X29iai0+SWQoKTsKICAgICAgJGRhdGEgICAgPSBbCiAgICAgICAgJ2NpZCcgICAgICAgPT4gJGNpZCwKICAgICAgICAndXJsJyAgICAgICA9PiAkY250X29iai0+R2V0VVJMKCksCiAgICAgICAgJ25hbWUnICAgICAgPT4gJGNudF9vYmotPk5hbWUoKSwKICAgICAgICAnbWVudV90ZXh0JyA9PiAkY250X29iai0+TWVudVRleHQoKSwKICAgICAgICAnYWxpYXMnICAgICA9PiAkY250X29iai0+QWxpYXMoKQogICAgICBdOwogICAgICAKICAgICAgZm9yZWFjaCgkbGFuZ3MgYXMgJG9uZSkKICAgICAgewogICAgICAgICRhbGFuZyAgICAgICAgICAgICAgICAgICAgICA9ICRvbmUtPnRvQXJyYXkoKTsKICAgICAgICAkb3V0cHV0WyRhbGFuZ1snbGFuZ2NvZGUnXV0gPSAkZGF0YTsKICAgICAgfQogICAgICAKICAgICAgcmV0dXJuICRvdXRwdXQ7CiAgICB9CiAgICAKICAgIAogICAgLy8gd2UgcmV0cmlldmUgdGhlIGFsdGVybmF0aXZlcyBmcm9tIHRoZSBjb250ZW50IGJsb2NrCiAgICAkb3RoZXJfbGFuZ3VhZ2VzID0gJGNvcHMtPmdldENvbnRlbnRPYmplY3QoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5HZXRQcm9wZXJ0eVZhbHVlKCdvdGhlcl9sYW5ndWFnZXMnKQogICAgOwogICAgJGFsdGVybmF0aXZlcyAgICA9IFtdOwogICAgJHdoZXJldmFsdWVzICAgICA9IFtdOwogICAgJHdoZXJlICAgICAgICAgICA9ICcnOwogICAgCiAgICBmb3JlYWNoKGV4cGxvZGUoJzsnLCAkb3RoZXJfbGFuZ3VhZ2VzKSBhcyAkb25lbGFuZykKICAgIHsKICAgICAgJHBhcnRzID0gZXhwbG9kZSgnPScsICRvbmVsYW5nKTsKICAgICAgCiAgICAgIGlmKDIgPT09IGNvdW50KCRwYXJ0cykpCiAgICAgIHsKICAgICAgICAkd2hlcmUgICAgICAgICAgICAgICAgICAgLj0gKCcnID09PSAkd2hlcmUgPyAnJyA6ICcgT1IgJykgLiAnY29udGVudF9hbGlhcz0/JzsKICAgICAgICAkYWx0ZXJuYXRpdmVzWyRwYXJ0c1sxXV0gPSAkcGFydHNbMF07CiAgICAgICAgJHdoZXJldmFsdWVzW10gPSAkcGFydHNbMV07CiAgICAgIH0KICAgIH0KICAgIAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBjb250ZW50X2lkLCBtZW51X3RleHQsIGNvbnRlbnRfbmFtZSwgY29udGVudF9hbGlhcywgaGllcmFyY2h5X3BhdGggRlJPTSAnCiAgICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQogICAgICAgICAgICAgLiAnY29udGVudCBXSEVSRSAoJyAuICR3aGVyZSAuICcpJzsKICAgIAogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHdoZXJldmFsdWVzKTsKICAgIAogICAgd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICB7CiAgICAgIGlmKCdpbnRlcm5hbCcgPT09ICRyZWRpcmVjdGlvbiB8fCAnbW9kX3Jld3JpdGUnID09PSAkcmVkaXJlY3Rpb24pCiAgICAgIHsKICAgICAgICAkdXJsID0gJGJhc2VfdXJsOwogICAgICAgIAogICAgICAgIGlmKCRyb3dbJ2NvbnRlbnRfaWQnXSAhPT0gJGRlZmF1bHRfcGFnZV9pZCkKICAgICAgICB7CiAgICAgICAgICAkdXJsIC49ICRyb3dbJ2hpZXJhcmNoeV9wYXRoJ107CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICRwYXRocGFydHMgPSBleHBsb2RlKCcvJywgJHJvd1snaGllcmFyY2h5X3BhdGgnXSk7CiAgICAgICAgJHVybCAgICAgICA9ICRiYXNlX3VybCAuICRwYXRocGFydHNbY291bnQoJHBhdGhwYXJ0cykgLSAxXTsKICAgICAgfQogICAgICAKICAgICAgJG91dHB1dFskYWx0ZXJuYXRpdmVzWyRyb3dbJ2NvbnRlbnRfYWxpYXMnXV1dID0gWwogICAgICAgICdjaWQnICAgICAgID0+ICRyb3dbJ2NvbnRlbnRfaWQnXSwKICAgICAgICAndXJsJyAgICAgICA9PiAkdXJsLAogICAgICAgICduYW1lJyAgICAgID0+ICRyb3dbJ2NvbnRlbnRfbmFtZSddLAogICAgICAgICdtZW51X3RleHQnID0+ICRyb3dbJ21lbnVfdGV4dCddLAogICAgICAgICdhbGlhcycgICAgID0+ICRyb3dbJ2NvbnRlbnRfYWxpYXMnXQogICAgICBdOwogICAgfQogICAgCiAgICBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9oaWRlJywgRkFMU0UpKQogICAgewogICAgICByZXR1cm4gJG91dHB1dDsKICAgIH0KICAgIAogICAgLy8gd2UgY2hlY2sgZm9yIGRlZmF1bHQgYWx0ZXJuYXRpdmVzCiAgICAkd2hlcmUgICAgICAgPSAnJzsKICAgICR3aGVyZXZhbHVlcyA9IFtdOwogICAgJGlkdG9sYW5nICAgID0gW107CiAgICAKICAgIGZvcmVhY2goJG91dHB1dCBhcyAkbGFuZyA9PiAkcGF0aCkKICAgIHsKICAgICAgaWYoISRwYXRoKQogICAgICB7CiAgICAgICAgJHdoZXJlIC49ICgnJyA9PT0gJHdoZXJlID8gJycgOiAnIE9SICcpIC4gJ2NvbnRlbnRfaWQ9Pyc7CiAgICAgICAgJGFsYW5nID0gJGxhbmdzWyRsYW5nXTsKICAgICAgICBpZihpc19vYmplY3QoJGFsYW5nKSkKICAgICAgICB7CiAgICAgICAgICAkYWxhbmcgPSAkYWxhbmctPnRvQXJyYXkoKTsKICAgICAgICB9CiAgICAgICAgJHdoZXJldmFsdWVzW10gICAgICAgICAgICAgICAgICA9ICRhbGFuZ1snZGVmYXVsdF9pZCddOwogICAgICAgICRpZHRvbGFuZ1skYWxhbmdbJ2RlZmF1bHRfaWQnXV0gPSAkbGFuZzsKICAgICAgfQogICAgfQogICAgCiAgICBpZignJyA9PT0gJHdoZXJlKQogICAgewogICAgICByZXR1cm4gJG91dHB1dDsKICAgIH0KICAgIAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBhbGlhcywgbWVudV90ZXh0LCBjb250ZW50X25hbWUsIGNvbnRlbnRfaWQsIGhpZXJhcmNoeSwgaGllcmFyY2h5X3BhdGggRlJPTSAnCiAgICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQogICAgICAgICAgICAgLiAnY29udGVudCBXSEVSRSAoJyAuICR3aGVyZSAuICcpJzsKICAgIAogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHdoZXJldmFsdWVzKTsKICAgIAogICAgd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICB7CiAgICAgIGlmKCdpbnRlcm5hbCcgPT09ICRyZWRpcmVjdGlvbiB8fCAnbW9kX3Jld3JpdGUnID09PSAkcmVkaXJlY3Rpb24pCiAgICAgIHsKICAgICAgICAkdXJsID0gJGJhc2VfdXJsOwogICAgICAgIAogICAgICAgIGlmKCRyb3dbJ2NvbnRlbnRfaWQnXSAhPT0gJGRlZmF1bHRfcGFnZV9pZCkKICAgICAgICB7CiAgICAgICAgICAkdXJsIC49ICRyb3dbJ2hpZXJhcmNoeV9wYXRoJ107CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICRwYXRocGFydHMgPSBleHBsb2RlKCcvJywgJHJvd1snaGllcmFyY2h5X3BhdGgnXSk7CiAgICAgICAgJHVybCAgICAgICA9ICRiYXNlX3VybCAuICRwYXRocGFydHNbY291bnQoJHBhdGhwYXJ0cykgLSAxXTsKICAgICAgfQogICAgICAKICAgICAgJG91dHB1dFskaWR0b2xhbmdbJHJvd1snY29udGVudF9pZCddXV0gPSBbCiAgICAgICAgJ2NpZCcgICAgICAgPT4gJHJvd1snY29udGVudF9pZCddLAogICAgICAgICd1cmwnICAgICAgID0+ICR1cmwsCiAgICAgICAgJ25hbWUnICAgICAgPT4gJHJvd1snY29udGVudF9uYW1lJ10sCiAgICAgICAgJ21lbnVfdGV4dCcgPT4gJHJvd1snbWVudV90ZXh0J10sCiAgICAgICAgJ2FsaWFzJyAgICAgPT4gJHJvd1snY29udGVudF9hbGlhcyddCiAgICAgIF07CiAgICB9CiAgICAKICAgIHJldHVybiAkb3V0cHV0OwogIH0KICAKICBmdW5jdGlvbiBnZXRfdXJsdHlwZSgpCiAgewogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgCiAgICBpZihpc3NldCgkY29uZmlnWyd1cmxfcmV3cml0aW5nJ10pKQogICAgewogICAgICAkcmVkaXJlY3Rpb24gPSAkY29uZmlnWyd1cmxfcmV3cml0aW5nJ107CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRyZWRpcmVjdGlvbiA9ICdpbnRlcm5hbCc7CiAgICB9CiAgICAKICAgIHJldHVybiAkcmVkaXJlY3Rpb247CiAgfQogIAogIC8qKgogICAqIHJldHVybnMgYSB2YWxpZCBiYXNlIHVybAogICAqIGRlcHJlY2F0ZWQgYXMgYmVpbmcgdXNlbGVzcyBvbiB0aGlzIGNvbnRleHQKICAgKiBiYXNlIHVybCBpcyBBTFdBWVMgJGNvbmZpZ1sncm9vdF91cmwnXS4uLgogICAqIGlmIHdlIG5lZWQgdG8gYWRkIGV4dGVuc2lvbiBhbmQgcXVlcnkgdmFyIGRlcGVuZHMgb24gd2hldGhlciBpdHMgdGhlIGRlZmF1bHQgcGFnZSBvciBub3QKICAgKiBhbmQgdGhhdCBjYW5ub3QgKGFuZCBzaG91bGQgbm90KSBiZSBjb21wdXRlZCBoZXJlLi4uKEpNKQogICAqLwogIGZ1bmN0aW9uIGdldF9iYXNlX3VybCgpCiAgewogICAgJGNvbmZpZyAgICAgID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkcmVkaXJlY3Rpb24gPSAkdGhpcy0+Z2V0X3VybHR5cGUoKTsKICAgICRiYXNldXJsICAgICA9ICRjb25maWdbJ3Jvb3RfdXJsJ107CiAgICAKICAgIGlmKCdtb2RfcmV3cml0ZScgPT09ICRyZWRpcmVjdGlvbikKICAgIHsKICAgICAgJGJhc2V1cmwgLj0gJy8nOwogICAgfQogICAgZWxzZSBpZignaW50ZXJuYWwnID09PSAkcmVkaXJlY3Rpb24pCiAgICB7CiAgICAgICRiYXNldXJsIC49ICcvaW5kZXgucGhwLyc7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRiYXNldXJsIC49ICcvaW5kZXgucGhwPycgLiAkY29uZmlnWydxdWVyeV92YXInXSAuICc9JzsKICAgIH0KICAgIAogICAgcmV0dXJuICRiYXNldXJsOwogIH0KICAKICBmdW5jdGlvbiBtb2R1bGVfZ2V0X3VybCgpCiAgewogICAgcmV0dXJuIFtdOwogICAgLy8gZXZlbnR1YWxseSwgc29tZSBjdXN0b20gY29kZSBoZXJlIGNhbiBjaGVjayBpZiB3ZSBhcmUgaW4gYSBtb2R1bGUgYWN0aW9uCiAgICAvLyBhbmQgcmV0cmlldmUgbGFuZ3VhZ2UgbGlua3MgZnJvbSB0aGUgbW9kdWxlCiAgfQogIAogIGZ1bmN0aW9uIF9vdXRwdXRfZmlsdGVyKCRzb3VyY2UsIFxTbWFydHlfSW50ZXJuYWxfVGVtcGxhdGUgJHRlbXBsYXRlKQogIHsKICAgIGlmKCFDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkpIHsgcmV0dXJuICRzb3VyY2U7IH0KICAgIAogICAgIyB3ZSBtYXkgbm90IGhhdmUgYSBzZXNzaW9uIHNldCBhcyBzb29uIGFzIHRoZSAxc3QgdGltZSB0aGlzIGlzIGNhbGxlZC4uLgogICAgIyBzbyBza2lwIGl0CiAgICBpZighaXNzZXQoJF9TRVNTSU9OWydfZXJpZHVfcmVkaXJlY3QnXSkpIHsgcmV0dXJuICRzb3VyY2U7IH0KCiAgICAKICAgICMgaXRzIGEgcmVkaXJlY3Q6IGF2b2lkIHJlY3Vyc2lvbiBhbmQgZmFsc2UgcmVkaXJlY3RzCiAgICBpZigkX1NFU1NJT05bJ19lcmlkdV9yZWRpcmVjdCddKSB7IHJldHVybiAkc291cmNlOyB9CiAgICAKICAgICMgdGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIEVWRVJZIHRlbXBsYXRlIG91dHB1dCBzbyB3ZSBtYWtlIHN1cmUgd2Ugb25seSB1c2UgaXQgb25jZQogICAgaWYoIXNlbGY6OiRsb2FkZWQpCiAgICB7CiAgICAgIHNlbGY6OiRsb2FkZWQgPSBUUlVFOwogICAgICAKICAgICAgJHRoaXMtPmF1dG9fcmVkaXJlY3QoKTsKICAgIH0KICAgIAogICAgIyBvdGhlcndpc2Ugd2UganVzdCBvdXRwdXQgc291cmNlIAogICAgcmV0dXJuICRzb3VyY2U7CiAgfQogIAogIGZ1bmN0aW9uICZHZXRJRmxhZ3MoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2lmbGFnczsKICB9CiAgCiAgZnVuY3Rpb24gU2F2ZUlGbGFncygpCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZsYWdzJywgc2VyaWFsaXplKCR0aGlzLT5faWZsYWdzKSk7CiAgfQogIAogICNETSBzdXBwb3J0IwogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdGVtcGxhdGVfaGVscF9jYWxsYmFjaygkc3RyKQogIHsKICAgIGlmKCAnZXJpZHVfbGFuZ19zZWxlY3Rvcl9tZW51JyA9PT0gdHJpbSgkc3RyKSApCiAgICB7CiAgICAgIHJldHVybiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1JyktPkxhbmcoJ3RlbXBsYXRlaGVscCcpOwogICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRlbXBsYXRlX2xhbmdfY2FsbGJhY2soJHN0cikKICB7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdFcmlkdScpOwogICAgCiAgICBpZiggaXNfb2JqZWN0KCRtb2QpICkKICAgIHsKICAgICAgcmV0dXJuICRtb2QtPkxhbmcoJ3R5cGVfJyAuICRzdHIpOwogICAgfQogICAgCiAgICByZXR1cm4gJyc7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVzZXRfdGVtcGxhdGVfZGVmYXVsdChDbXNMYXlvdXRUZW1wbGF0ZVR5cGUgJHR5cGUpCiAgewogICAgaWYoICdFcmlkdScgIT09ICR0eXBlLT5nZXRfb3JpZ2luYXRvcigpICkKICAgIHsKICAgICAgdGhyb3cgbmV3IENtc0xvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgcmVzZXQgY29udGVudHMgZm9yIHRoaXMgdGVtcGxhdGUgdHlwZScpOwogICAgfQogICAgCiAgICAkZGVmYXVsdF90cGwgPSBOVUxMOwogICAgCiAgICBpZiggJ2VyaWR1X2xhbmdfc2VsZWN0b3JfbWVudScgPT09ICR0eXBlLT5nZXRfbmFtZSgpICkKICAgIHsKICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1JyktPkdldE1vZHVsZVBhdGgoKSwgJ3RlbXBsYXRlcycsICdkZWZhdWx0X21lbnVfdG1wbHQudHBsJyk7CiAgICAgIAogICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApCiAgICAgIHsKICAgICAgICAkZGVmYXVsdF90cGwgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAkZGVmYXVsdF90cGwgPSAnPCEtLSBFcnJvciBkdXJpbmcgRXJpZHUgaW5zdGFsbGF0aW9uIC0tPic7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICRkZWZhdWx0X3RwbDsKICB9CiAgI0RNIHN1cHBvcnQgZW5kIwp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.core.ContentPreCompile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKLyoqCiAqIGRlcHJlY2F0ZWQgbmV3IGVudHJ5IHBvaW50IGluCiAqLwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/btc_qr_code.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAwAOYAAP//////9/f39/f37/fv7+/v7+/v5u/m5ubm5ubm3ube3t7e3t7e1t7W1tbW1tbWztbOzs7Ozs7Oxc7Fzs7FxcXFxcXFvb3FvcW9vcW9tb29xb29vb29tb21tb21rbW1vbW1tbW1rbWtrbWtpa2tta2tra2tpa2lpa2lnKWlpaWlnKWllKWcpaWcnJycnJyclJycjJSclJyUnJyUlJyUjJSUlJSUjJSMlJSMjJSMhIyMjIyMhIyEjIyEe4SEhISEe4R7hIR7c3t7e3t7c3tze3tzc3tza3Nze3Nzc3Nza3Nrc3Nra2trc2tra2trY2tja2tjY2Nja2NjY2NaY2NaWlpaY1paWlJaWlpSWlpSUlpSSlJSWlJSUlJKUkpKUkpKSkpCSkpCQkJCSkJCQkI6QkI6Ojo6Qjo6OjoxOjExOjExMTEpOjEpMSkpMSkpKSkhKSEhKSEhISEZIRkZIRkZGRkQGRAQGRAQEAgIEAgICAgACAAACAAAAAAAAAAAAAAAACH5BAkAAH0ALAAAAAAwADAAAAj+APsIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHKkQAAIJSayM8fGhgpAUAkgCeFGhCxYpd+I8+WEmBckAEhBgsYKki48rJ6ywkInAwFAkX0pIubGlhEwBEs6Y6XKGy5cmX4AsWADgIwABBlyK+fJFpZktX7yKKVGgLMcFHAr4UNPWilcrVr50IXOmyxgHHAFAkLABCRcpTZogiXJECGQrVaRYASEAgF2LAjZgUPBlzBfImjFbaeL3yxYrUJ64+EwRwIYUFRg85oIESZMoUoQgEWKFCWUkTKQg6UwbooAOLixUEFMGcGQkkIsIYSIZyREkRaT+cKkiJOZEED9ARKgwRrUVKVG+RLFCXIrm5EKGWgGDQCKAAjPwUIMabrRBRntRTMZbFDo0YR9RTdQgBA9CNOGAZxgyZJsTwaUQxx5uwDFHGnO0UYUYbXzhw3oQlABHGk1UiN0RNYBQwxezJfRfC1IMMYMFEsCRRxdWeEHGHW4gcQYdUvgwQAEFDCCFHVKQuMUZYxDxRU5SNDeQADg04YQNJ5wgQQVx5LFaFV/EkeQYczARwwACIDCAA6epkYZKNUgxhx3yeSlQBEvsQOYJJkBgwRx3rJaiFGo0MUYcQrgQJQIJDABCF2yQwYQPVrwxBx1fMCEoABUYYcMKLZRZwQb/jFYRhRv0RfZFkjUUsACmCQjgAx1IsCBFHF2oQccWRJxqwRA50KCCCSlIgAGjVizRBn1MHCGFG0roUIAAAgyQQAEIWOHDFmTAAakdWAiBEAAlFLGDsxiYICCBTfhgBhIptOWCFUD4sEEEmRqAgAANvJEGEWQ8AQYcRGVYkAo5mMCBBQzEsEcecZxxhnzJfccECCmk0UYanAXwrQBAqAFcFOgOxgQT/Ql0FgIhjCAdBQvUsMceaozhRhxNpEEHE1WkkAIbeaRBxgb/hWsSGEB/YYfHd7ARxwYDIVAoChw8wAADB7SQR9NfqKEGEkILUUIKbYy6hRga1BkAnajSwYYY/sdaMceVFQykwBAw6Dw22S6cfYYVZ6x9mgQ1tNGGGnOcWHdnAnwLAA93vGHHasSOEbhACxgBgwkWiE12DXfk0V4aaUhRRQU8xGGHGJRj8UUFdBZgwJMqg4HHHWNEEUdpo/dROgxgP/CAAgbo0HqeaggBAhJuzoGF0UVuYEABBAgQgAEEoJpmV3OwlfwCQRgaggQPLHCAD3fccdoZQ2hQxRxstKHuGnTwAhc2oICDneVJndFBHuRgNDAMcCALKEIPCieBCiJgCHaw3xaEsIEt3GEOZGiDG6KwpC94YQO7Ch8CCDCA3m1pUia0CumK8AMVoKACFKAAAopAB/vFIAVk/vhTHLhAIBKSCgsacEBTWngWKAEgAm4wltNkqLwiDAEFqKugAnjohhKUQA2Tm4MbpHAGNzCBb6/RAAQSYCfxCYAACKhLCuaQB72BAIJFCMKzgFQBBSBBDScoQRvuIIYxwEENTDgDHJjwhWNVAQQVYCMBvnUwTH2rCXsgXhMKQLofBGEFKhABBirwACS4QAYivEMXvHCyI5gBDk3gwt8eicIFGIxcmVOAAgrQADfk4QwwqgsDehCEVY2AAzncgA/4lwY7rPJkiawc39pSAhA0QIlsjONYHBABBJSgc3GInQhasAJQhiADIeAABJiQBzuo4Q15iIubojDIK5GqCV7cTUAFuOmAfqZAnxWAAAKgwiEhZKE9S8BBCTKwTwcIwQc2cEENcCACDrygBRsoQQtA0AEQbEACDbgmAxTwgAY8IALSIdkGVlqBAhwgAQEBADs=]]></data>
	</file>
	<file>
	  <filename>/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/images/pp_button.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAJYAAAAZCAYAAADT59fvAAAACXBIWXMAAC4jAAAuIwF4pT92AAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAABIgSURBVHja7FtpsGVVdf7W2nufe++599zp3Tf0iDTGspyCE5iYQEAraiqCiTFKMEqp0ASJjUNAUSEhiKBBItIgkwPGxMJobFJliEaNUSsRKKEMFQWTboGmm+43vzufc/Za+XHvfXM/upumlZJd9ar6vXPOHr/1rbW+tdtu2LABazVVRSYTIMxlQALsm5hCIZdFO4kR5vNot9rHDFWrp4v4U4noeAA1AIyn269a66jqfd6nNxhnv2wPtxcm2pLNZN6TDYK3ABIREVS1Q0TTANKn9/lXroVEdIpzwSmi8tbDApbLBFtzhfxfMdGoqja9l1uNMXdMTk79sBhFjSDjVFWf9JUQrfY3hog8JU+G+ak5dyJCnKTGsvljMG4m0IUHDywFRLU0VK1ca615CzHDi9w8PTP78Ww287N8GOJogGnQvCjE+yXoIgDtThP5MAdm05v0U6SJCJrNFgqFPIjoKQUwEUG73QYR31rIh5cT0ZZDYawRMny7JT459emubqt9XjaXvfNobQD1YZKkHkQEL4okTkCLgUWE2dk5ZDNZMAOiANNK61puAKv9bTWrPNA7az8DVnskqoD2viUCRAUPPbwbYZjDcG0IhUIegC75trdWhf6S2UvqPYgJTLQFQJWIHrHMa8fZaZpCgQKYvwTFyVD8p0/9mc1Wa1cuzB0VmlVVpF6QeoGowhoDAmrMzIvdIYFgrUkBtAB0RBQCgJnABHgRdLsx8rkcFAoFQVUAERhjeuDQlT7W+xTdOEE+DKHiVzxvtlrIZDIw8yxJ84lPmnowM5gJwMJaehhRGGPm12mtCVqtVrx7dwdRMcL6dWPz3akqkjQFE8MY/oW6TWaeN24RBbNFLmtgjXkHEYI4Se60s7Ozax5qpVJGxgVXE+gUhd4FkdMATNBqAc4RnryKIElSxEkK1d55MjMION05+xlnjRsc4oDWRoIRIaI9Cr0ZwDU9qlYQM1Lve+4mF/YYg4DUC36+6+dYt24MURRBRVbEbj71aLbayId5QHuABBGYCFPT0+h0OqjVqmAyACmgBFBv3CT1ADyYCYELVmObsgKnM5kXbznmmMuZaH+z1UKQzUC1T3d9RvNeMDU7g3a7heHhGqJCYd4VHS1AAcBcvY5Ws93bQwBhPodCvvAiQN8FUMd7+bSdm5tbs7OxsZE/CZw7R0QeU5EzoJh4MmOpAWDr9QYmJifRarWXLOzYY5+xyTm7XVWrq4Gber6vBNAnmPEtQH+si2Kt5d8QgCRJ0Gy2EEXFx53XggyzIMesZWQDV7h8y4joBUR0NhGdxsybW+3WGa1WZ7+qotvtYjifW+FiB+M0my00mw8jigoYGqoeFYARE+bm5jA+MYVWq7XsaSlfKZdu9Knkxculxpj77cjIyKralaqCmZ/JzJ8kIqRe3tntdncyM+I4BhH16f3IgkpUsWfPXszN1ZccWv/fzMzbAQzENwHwE1XNE9Hm5fqZpGmGCDCWMQDXWnHS4+l5h9N0WR/MBBCvZ6J/BrCZiNBoNC6Ok+RLYT6PZqMBJoKukngsB1m93kC93nhSATbYlyTxaDbbCIIA2Wx2HvREhGJUuFwFLyHm7yZpchUA2KGhoVUoj0DEjoAbAa3V6/XrZmfrX/XSD5y9h4ggk8ng8WK0Q6HYOE4QJymiqIhisbQM6IJ8PrzAGvNaXaCLy5nNFRNTEyYMw0tyudxFg8V673/6yO5H769UKiiXIwAoGGNemc+Hv6m9A3Ug2g3g7wDcvejQhgFsBWABdKC41RjzrHwYvg7QY0E8C6JrSHE/AKgoiMgCeAURXg7QMSAUAQgzTTtj707S9HMAugA2AXgbEb0CwOb+2tqZjBvO5nK/Z4z9eqvRBBEZAL8N4HeI6JkA8kw8Ezi+W0Q+C6C9GGQDgIVhDrWhIRSL0RPO0FeEIgBK5fLSd4yBNeZ0a/iCNPVTk1OTW5Mk7RIR7IMPPrjCKoZrFYyOjL7fi55qDN87Mzt38fT09IrBgyBAGIZPGFCDjellfCvZIwxDFAr5E6yxly18a76Tev8REYlzYR7WmtximlDV62rDtXaYzQUi2MpM51s2z3KLZBECYIw5Y6Q2/NJsmHuoF1/RJwGc0e/pYQVOMda+Mu8caz/QU+h+VXwAALK57GsyQfCX1toTela81NqdNW83hnd6L98kopsAvJqWMkKOyJ4/OTn1hVKpiFyYfV3RFi601v5GL21c0OeM4bOKUVQzxlx2oLS/041RUO2x3mGA60ChyOIz6XszbNly7EZDdIOqQlTfvX//+AODd+wBej8ZRB8G0IqT5JwwDOurdZ7P55EkCYLAHbK76LmAJiYmJ1GvN9Z81xgTDdeGbkzTNN/XeCb37d9/rvc+zufziKLo1wnytsH4zHxPu9nd3u12n1eKip8WlZf3u3pEVXcCOAFATnsHMDw6NrI+Sf1DqvoOYjpj0dAbmLBZF62NiFS9fHPPnscwNjqyLSoU/rb3TBtpmt7KzPcT8KcgOqn/QZOJf0LMZ0P1VcuW1gWQpt6/1Tn3P9aYz2YzwVmqgIr+RKGfJ8IwQO8GwCKCfCF/TJjPP47GJwAJDiXBGoBFVLHn0b2Yq68MRRa/S0TMRNvBWAfF55j5ttHRUUjPOGGPO+64JYgnoqqz5ibvxaWpv7Dd6dzjnEN5GQ0OWqPR6KXhUOTzIYzhgwKVF8HDj+yG9/6AG0BEqJTLKEaFK0Xk+IGkoJq+e//+/Q/2F5kplYrXiUdhkP1Pz8y+2Vrz0mqlskNU1vXBeJWofoyJp4jwXwBO7I/xUJr6+1T12cbwxxdF9d/3qVwq4tcHQfAF7WdnXuSLnU732+12C0y4S1Rfl6Z+c7fTuTsXuntB9CKAi72yF2Ou0bh+bm5ud1Qo/KhUjB4R1c19Hesfmc1lXtKWszxTKZe/oSoniShU9DNQ/DlIWwBeCKIL5g/Vy53yeJqb9qNNOjgDj+MEc3N11GpD6LQ7ABE2bdp0QACqCsIwt80Yc5qk8oAXeS+IUK1W59+zU1NT8wNUKxVYa64homelqd+xc9eua9M0XfXgRQRBEKBSKSObDQDtAWsQ+B+MhYj3azKdAhgdGfkja815vm8J3W73s3Eaf6EQFRC4AKVSdBVUf2uhJOLPA2k7m818zxgz3NN/kg+S4golhkKPJ6LnDtbcbXc+2u52O6VS6RZAB9bz76rp6amXOSbePu9+wTvn6rPvCTIBhoaqGS/StooqM23Mhdk3GubnqqK8CJw/arWaf62SgInOBNHmvq/c5dP0nXv3P7bfBc6MjQ5/Q0ROGiybiEogXA8Qg/ASAKbf4fe9yo41NnUhRj6UxEoXzkChyGQySNMUzWZzpZcKc4gK0UuNMZcbY+LHxvedMzE5ObUcI3ZiYmL+l2q5/FYieosCjyrwTlWVnjK8zL8SYWi4hmq1gkzg4L0cliscGRmGFz0g8CzzM5TwqYGFeu/vTUXOD2yAYlREMSpc4pzbJiJgZtTr9SuMtbeVisUfqupwXxX+2q5dP79ibGwdwjAsENENQI/dVGRHs92+0Vp3OTO9XHpz2Zsm6VmP7n10bmxs7I2ZTHBen8nTVPw5zVZrPJvLvn2oWt0G4PkKBRPV09TfCRCYqO92qRHHydahobDubPn10MwFvXlSEneTc7txsj+VFKVc9BEondrPH0VVmwD+YEFlRUxEdQCNbhxfICLxgfbUWgNnzRNOpqy1aLfbmJmZWfnMIKrVhm5KUx96kQ97kf9Y7dxtz8UpgiB4NvfYCqp6HjM/umXLlhUsRQQYZrjAQkXnQXVIKXgfnMPDNSSprAAkE4GYjWO+3quM9X160o271zuX2eiseX7JmrOY+fcHoJqdmb1yYmr6g5s3b9wK1RMG4QYpLl2/fgT5MD8sojcT4WV9XeZ7SZy8OYqiU4MgeL+Ih2Gj3SQ5f3pm9qFMJrfFOXftIM5oNBofBfG3hqqVTwfObe3v049F5f1xN/mXmZnpF4yOjn51vlKQph9Kvb8noOxmEfMpQIiItNlsXWaM/UbgHDasW/885+w20YFh+vd24vRWBpExXFHAE8E3my1jreuoYgKryCbWGjjnYM2Rua0kIigWI3S7nSXBe6VcRiGKrhTR44n436ZnZq5yzmE1ycpWq1UQIRPmsjcCVKnXG9c0mo07FpclRASZIEClWobpZ3Lin5hW0tPGPHbt3NWrNS0KEiuVCtaNjb7Pq7xmERhtmAuvVtVAVbPMpldjE9mnoIubrdZnhqplOGtfP9BxVJWMNWdGQfQqEX0bMz27//cv1+ca5zjngmzG3SLiDRNjdm5ue7vT+Wo2l7XFqHCDqo5or4T0PVVcmg3ce1zgtvaDdUmS5KJ6o/mDaqWybXRs9AMEGu33v+PhRx65duPGjURs/gbAusEyjDXPtNadlqbpHYD+IYDsgkOiRsa5YQadRkxnKEEN80/HxycuEcFEtVqB9x6D7NQaRuAcbJ+ljpRwLSKIogitVgvNZmveyw7CksT78cmJyXNb7XayButZGMMfENGTDNPdM7OzH15MgUSEarWCqFg47BT28dhrecbBTK9g4iu9+qUxqWqR+nK2qjRFcPvU9MyVURQ9GEURgiAgEYkXKdYM4EKReVe+M0nSqyanpm5qNptm08aN/0REx6oqwLi30WxcHAQZRIXCJar6uz09TGb2TY6fXa1WmJkvmo9FFOyc+1q5XGoAWiaQ6SUWOrX3sX3bwjDUTCY4SUXesGht7Fxw5sT4xNVeBFGhkA+CoJdlAQTim4l61UHtlaLuAfR2gPYCMr9X1ponBVDLwQUQhqpVGGYQ03FKuE6hUNVt+8fH/29Nd+q9f17g7EWq2vSiW4vFYtNa16vLEaFSKSEIAojIEV1AnwmwcdNGNFvt+QSGiIJKufQmL/4eLL0wSCA009TvipPkx4boX8H8gIggTT327N2LNPVayIcf2rRpQxagF6sqE2hGofeKyNeNoa8AmFRVjI6OnJzJBJtU9S4AcbcTX1CtDtWDwG2B6kkA7uqFYX77+MTEA1EU2SBwOwC8QUSImfYpcBcR/b2qnkpEJ4PA3U78lU63+9BwrQYV7QD6v6oYAeCZeY9PkqvHx8f/W3su/5ZiMXqOqr5MVAMiEiJ6DNAfxnH6tUazeUetNiQi/eK7tcgETy6glkkKGB4eQsYGNSV8UVRHkyS9MU7Sf6hUKvPSwqrAMobPBZAF0UdVcW8URSgWiyBSUB+53vsnbfJhmEPgHNqdLuIkAROlIHqXQpNlFREiUJqkKZqtVq980dderGVksxnMzdUxV6/fJyKvBHFlamqaS1HUsdY00zSFsa7/vgMR/0ChJypUoJA4ScQ5C0B2K/AqAL4/x5SNgRdJRfQcABftfWwfj47UWsbYdv/ywTf7JRhK0iQpRhHCMIQXucswXtBqtfPduOuHa0MtiHaNMYMC7s8M0WvHp2dKrU7HhdlsUqsNdUTSrqrOu72oGIEBZDPuoLPuI3U+3sux3ugXVfVEAN+Jk/R9cRyjVCqtnQAEzr1aROJWu31LT013cM5B5Shd+lGFcxbOWcRxgm43FkDbBxJhiKiXPNje4VTKJTATNm/aiEajicnp6b61YXrpdz1hhxkIwyyYqLs8o+prcPHSRIKxYf3YvAgMLOu395MOdsswI5fLgmneKtr9n968mLBp0wYEQYAkTtAP3GdXxiiMfD4EVFAuRkf1FsOC0YevMdZsB+FYqH4Xqm8C0DiYi4hWVdcDmFLRncYaOGtxtG+SDSywB2q7JggzgUPgimBmGF0o1aoqoqiAfD4P1V72OlQtz1N1ENj+xTqg0Nfb0IttAAIygUP/itQCpFVhLCMK8pBFhrZubGRRjXShPARV5HKLCrTzJakswjALEQE7g0JQgKrCOYfUe1QqJZS12L856gEQjDHIh/aoMtSiUtuvEdFfRIX82SqCNElvY8K7iGn2oCULADuJ6Dn5MHx76v3tROT1F3RF8WDHPdCNzYEVDcB0IP+/liC7eiCrq9Y4D3YdS+ahGLDUkufcj9qPxI2Kw0vSqQDgxGwmc1qYzb6JiPLe+31pklw6PTN342itekgXva1CP8bEnwfjFsf2KlW0DqoW8HQ7skb1ixpXARc4W61WKqqaNYYhonVV3T4zM/OJjHU7D0tkBeG2JIlbxtg/I6IXovf/Ap9uv1pNiGifqt5HZL49PTO1IxfmHpInwJj/PwA5xrq/dBP+BAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/pp_qr_code.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/js_app/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js_app/admin_entries_editor_app.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIyBNb2R1bGU6IEVyaWR1DQogIyBBdXRob3JzOiBGZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKQ0KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAjIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQogIyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KICMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQ0KICMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KICMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiAjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQogIw0KICMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQogIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KICMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KICMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KICMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiAjIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogKi8NCg0KJ3VzZSBzdHJpY3QnOw0KDQooZnVuY3Rpb24oIGdsb2JhbCwgJCwgXywgYmIsIGpTbWFydCwgVUlraXQsIGNvbmZpZyApDQp7DQogIC8vUHJpdmF0ZQ0KICBjb25zdCBFRSAgICAgICAgICAgICAgICA9IGdsb2JhbC5FRSB8fCB7fTsNCiAgY29uc3QgX2RlYnVnX21lICAgICAgICAgPSBmYWxzZTsNCiAgbGV0IF9jb25maWcgICAgICAgICAgICAgPSBudWxsOw0KICBsZXQgX2tleV9pbmRleCAgICAgICAgICA9ICcnOw0KICBsZXQgX2tleV9jb3VudCAgICAgICAgICA9IDA7DQogIGxldCBfa2V5X29yZGVyX3BvaW50ZXIgID0gMDsNCiAgbGV0IF9kZWZhdWx0X2xhbmdfaWQgICAgPSAwOw0KICBsZXQgX2RlZmF1bHRfbGFuZ3VhZ2UgICA9ICdhbGwnOw0KICBsZXQgX2xhc3Rfa2V5ICAgICAgICAgICA9ICcnOw0KICBsZXQgX3RzX3N1Ym1pdF9lbmFibGVkICA9IGZhbHNlOw0KICBsZXQgX3N0cl9lZGl0b3JfY2hhbmdlZCA9IGZhbHNlOw0KICANCiAgLy8gbWlzYw0KICBsZXQgX2VkaXRvcl9jaGFuZ2VfYnVmZmVyID0gJyc7DQogIA0KICAvKioNCiAgICogcHJldmVudCBBSkFYIHNwYW0gb24gY2VydGFpbiBrZXlkb3duIGV2ZW50cw0KICAgKiBAZXhhbXBsZToNCiAgICogICAgICAgICAgICB0eXBlX3RpbWVyKA0KICAgKiAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aGVuIHRpbWVzIG91dC4uLg0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAqICAgICAgICAgICAgICAgICAgICAgICAgNzAwIC8vIG1zIGJlZm9yZSBpdCB0aW1lcyBvdXQNCiAgICogICAgICAgICAgICAgICAgICAgICAgICk7DQogICAqIEB0eXBlIHtmdW5jdGlvbiguLi5bKl09KX0NCiAgICovDQogIHZhciB0eXBlX3RpbWVyID0gZnVuY3Rpb24oKQ0KICB7DQogICAgdmFyIHRpbWVyID0gMDsNCiAgICByZXR1cm4gZnVuY3Rpb24oY2FsbGJhY2ssIG1zKQ0KICAgIHsNCiAgICAgIGNsZWFyVGltZW91dCAodGltZXIpOw0KICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGNhbGxiYWNrLCBtcyk7DQogICAgfQ0KICB9KCk7DQogIA0KICANCiAgLy9QdWJsaWMgUHJvcGVydGllcw0KICBFRS5sYW5na2V5cyA9IFtdOw0KICBFRS5zcGlubmVyX2h0bWwgPSAnPGRpdiB1ay1zcGlubmVyPjwvZGl2Pic7DQogIA0KICAvLyBSdW4gdGhlIGFwcA0KICAkKGZ1bmN0aW9uKCkNCiAgew0KICAgIC8vYWxlcnQoSlNPTi5zdHJpbmdpZnkoRUVfQ29uZmlnKSk7DQogICAgRUUuSU5JVC5sb2FkKEVFX0NvbmZpZyk7DQogICAgaWYoX2RlYnVnX21lKXtjb25zb2xlLmxvZygnRUUuSU5JVC5sb2FkKCkhJyk7fQ0KICB9KTsNCiAgDQogIC8vUHJpdmF0ZSBNZXRob2RzDQogIA0KICAvKioNCiAgICogbm90aWZpY2F0aW9uIHN0dWZmDQogICAqLw0KICANCiAgLyoqDQogICAqIEBwYXJhbSBtZXNzYWdlDQogICAqIEBwYXJhbSBzdGF0dXMNCiAgICogQHByaXZhdGUNCiAgICovDQogIGZ1bmN0aW9uIF9ub3RpZnlfcmF3KG1lc3NhZ2UsIHN0YXR1cykNCiAgew0KICAgIFVJa2l0Lm5vdGlmaWNhdGlvbih7DQogICAgICBtZXNzYWdlOiBtZXNzYWdlLA0KICAgICAgc3RhdHVzOiBzdGF0dXMsDQogICAgICBwb3M6ICd0b3AtcmlnaHQnLA0KICAgICAgdGltZW91dDogNTAwMA0KICAgIH0pOw0KICB9DQogIA0KICBmdW5jdGlvbiBfbm90aWZ5X3N1Y2Nlc3MobWVzc2FnZSkNCiAgew0KICAgIG1lc3NhZ2UgPSAnPGRpdiBjbGFzcz0idWstYWxlcnQtc3VjY2VzcyIgdWstYWxlcnQ+JyArIG1lc3NhZ2UgKyAnPC9kaXY+JzsNCiAgICBfbm90aWZ5X3JhdyhtZXNzYWdlLCAnc3VjY2VzcycpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfbm90aWZ5X3dhcm5pbmcobWVzc2FnZSkNCiAgew0KICAgIG1lc3NhZ2UgPSAnPGRpdiBjbGFzcz0idWstYWxlcnQtd2FybmluZyIgdWstYWxlcnQ+JyArIG1lc3NhZ2UgKyAnPC9kaXY+JzsNCiAgICBfbm90aWZ5X3JhdyhtZXNzYWdlLCAnd2FybmluZycpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfbm90aWZ5X2Vycm9yKG1lc3NhZ2UpDQogIHsNCiAgICBtZXNzYWdlID0gJzxkaXYgY2xhc3M9InVrLWFsZXJ0LWRhbmdlciIgdWstYWxlcnQ+JyArIG1lc3NhZ2UgKyAnPC9kaXY+JzsNCiAgICBfbm90aWZ5X3JhdyhtZXNzYWdlLCAnZGFuZ2VyJyk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9kYl9rZXlfZXhpc3RzKGtleSkNCiAgew0KICAgIHJldHVybiBqUXVlcnkuaW5BcnJheShrZXksIEVFLmxhbmdrZXlzKSA+IC0xOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdmFsaWRhdGVfZGJfa2V5KGtleSkNCiAgew0KICAgIGNvbnN0IHBhdHRlcm4gPSAvXlthLXpBLVpdW2EtekEtWjAtOV8tXSoveTsNCiAgICBjb25zdCBhID0ga2V5LnJlcGxhY2UocGF0dGVybiwgJycpID09PSAnJzsNCiAgICBjb25zdCBiID0gIV9kYl9rZXlfZXhpc3RzKGtleSk7DQogICAgDQogICAgcmV0dXJuIGEgJiYgYjsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX2FkZF9kYl9rZXkobmFtZSkNCiAgew0KICAgIF9kb19hamF4KCdhZGRfZGJfa2V5Jyx7IGtleTogbmFtZX0sDQogICAgICBfbm90aWZ5X3N1Y2Nlc3MoJ0tleSAnICsgbmFtZSArICcgc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIHRoZSBkYicpDQogICAgKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX2RlbF9kYl9rZXkobmFtZSkNCiAgew0KICAgIF9kb19hamF4KCdkZWxfZGJfa2V5Jyx7IGtleTogbmFtZX0sDQogICAgICBfbm90aWZ5X3N1Y2Nlc3MoJ0tleSAnICsgbmFtZSArICcgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgZnJvbSB0aGUgZGInKQ0KICAgICk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9yZWZyZXNoX2tleXNfbGlzdCgpDQogIHsNCiAgICAkKCcja2V5cy1saXN0JykuaHRtbChFRS5zcGlubmVyX2h0bWwpOw0KICAgIF9kb19hamF4KCdsaXN0X2RiX2tleXNfaW5kZXgnLCB7ICB9LA0KICAgICAgZnVuY3Rpb24ocmVzdWx0KQ0KICAgICAgew0KICAgICAgICAkKCcja2V5cy1saXN0JykuaHRtbCggRUUuU21hcnR5LmZldGNoKCdrZXlzLWxpc3QtdHBsJywgeyBrZXlzOiByZXN1bHQuZGF0YSB9KSApOw0KICAgICAgICBfdXBkYXRlX2tleXNfZGF0YSgpOw0KICAgICAgICBfdXBkYXRlX2tleXNfYmFkZ2VzKCk7DQogICAgICB9DQogICAgKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX3VwZGF0ZV9zdHJpbmdfZWRpdG9yKGtleSkNCiAgew0KICAgIF9kb19hamF4KCdnZXRfdHJhbnNsYXRpb25zJywgeyBrZXk6IGtleSB9LA0KICAgICAgZnVuY3Rpb24ocmVzdWx0KQ0KICAgICAgew0KICAgICAgICBsZXQgZGF0YSA9IHsNCiAgICAgICAgICBkZWZhdWx0X2xhbmc6IF9kZWZhdWx0X2xhbmdfaWQsDQogICAgICAgICAgc3RyaW5nczogcmVzdWx0LmRhdGEsDQogICAgICAgICAga2V5OiBrZXksDQogICAgICAgICAgbGFuZ3VhZ2VzOiBfY29uZmlnLmxhbmd1YWdlcw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkKCIjc3RyaW5ncy1jYXJkIikuaHRtbCggRUUuU21hcnR5LmZldGNoKCdzdHJpbmctZWRpdG9yJywgZGF0YSkgKTsNCiAgICAgICAgX2Rpc2FibGVfc2UoKTsNCiAgICAgIH0pOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdXBkYXRlX2tleXNfZGF0YSgpDQogIHsNCiAgICBfa2V5X2NvdW50ID0gRUUubGFuZ2tleXMubGVuZ3RoOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdXBkYXRlX2tleXNfYmFkZ2VzKCkNCiAgew0KICAgICQoJyNrZXktY291bnRlci1iYWRnZScpLmh0bWwoJCgnLmtleS10YWdzJykubGVuZ3RoKTsNCiAgICBsZXQgaW5kZXggPSAnLSc7DQogICAgDQogICAgaWYoX2tleV9vcmRlcl9wb2ludGVyID4gMCkNCiAgICB7DQogICAgICBpbmRleCA9IF9rZXlfb3JkZXJfcG9pbnRlcjsNCiAgICB9DQogICAgDQogICAgJCgnI2tleS1pbmRleC1iYWRnZScpLmh0bWwoaW5kZXgpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdG9nZ2xlX3N3aXRjaGVzKGFjdGl2ZSwgZ3JvdXBfY2xhc3MpDQogIHsNCiAgICAkKGdyb3VwX2NsYXNzKS5ub3QoYWN0aXZlKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpOw0KICAgICQoYWN0aXZlKS5wcm9wKCdjaGVja2VkJywgdHJ1ZSk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9wcm9jZXNzX2tleXNfbmF2KGVsKQ0KICB7DQogICAgbGV0IGFjdGlvbiA9ICQoZWwpLmF0dHIoJ2lkJyk7DQogICAgDQogICAgc3dpdGNoIChhY3Rpb24pDQogICAgew0KICAgICAgY2FzZSAnay1uYXYtYWRkJzoNCiAgICAgICAgbGV0IG5ld19rZXkgPSAkKCcjYWRkLWtleS1pbnB1dCcpLnZhbCgpOw0KICAgICAgICANCiAgICAgICAgaWYoICFfdmFsaWRhdGVfZGJfa2V5KG5ld19rZXkpICkNCiAgICAgICAgew0KICAgICAgICAgIF9ub3RpZnlfZXJyb3IoJ0tleSBtdXN0IGJlIHVuaXF1ZSwgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYWxwaGFiZXRpYycpOw0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAgIF9hZGRfZGJfa2V5KG5ld19rZXkpOw0KICAgICAgICAgIF9yZWZyZXNoX2tleXNfbGlzdCgpOw0KICAgICAgICAgICQoJyNhZGQta2V5LWlucHV0JykudmFsKCcnKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ2stbmF2LXJlbW92ZSc6DQogICAgICAgIGlmKF9sYXN0X2tleSkNCiAgICAgICAgew0KICAgICAgICAgIFVJa2l0Lm1vZGFsLmNvbmZpcm0oJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIGtleTogJyArIF9sYXN0X2tleSArICchIGFyZSB5b3Ugc3VyZT8nKQ0KICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9kZWxfZGJfa2V5KF9sYXN0X2tleSk7DQogICAgICAgICAgICAgICAgX3JlZnJlc2hfa2V5c19saXN0KCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIGZ1bmN0aW9uICgpDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfbm90aWZ5X3dhcm5pbmcoJ0FjdGlvbiBjYW5jZWxlZCEnKTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgX25vdGlmeV93YXJuaW5nKCdObyBrZXkgaXMgY3VycmVudGx5IHNlbGVjdGVkIScpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBicmVhazsNCiAgICAgICAgDQogICAgICBjYXNlICdrLW5hdi1yZWZyZXNoJzoNCiAgDQogICAgICAgIF9yZWZyZXNoX2tleXNfbGlzdCgpOw0KICAgICAgICBfbGFzdF9rZXkgPSAnJzsNCiAgICAgICAgLy9fdXBkYXRlX3N0cmluZ19lZGl0b3IoX2xhc3Rfa2V5KTsNCiAgICAgICAgX3N0cl9lZGl0b3JfY2hhbmdlZCA9IGZhbHNlOw0KICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ2stbmF2LXInOg0KICAgICAgICBpZihfbGFzdF9rZXkpDQogICAgICAgIHsNCiAgICAgICAgICAkKCcjay1maWx0ZXItYWxsJykuY2xpY2soKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICQoJyNrLWZpbHRlci1hbGwnKS5jbGljaygpOw0KICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ2stbmF2LWwnOg0KICAgICAgICBpZihfbGFzdF9rZXkpDQogICAgICAgIHsNCiAgICAgICAgICAkKCcjay1maWx0ZXItYWxsJykuY2xpY2soKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCiAgfQ0KICANCiAgZnVuY3Rpb24gX2VuYWJsZV9zZSgpDQogIHsNCiAgICBfdHNfc3VibWl0X2VuYWJsZWQgPSB0cnVlOw0KICAgICQoJyNzZS1zdWJtaXQnKS5yZW1vdmVDbGFzcygndWstbGluay1yZXNldCcpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfZGlzYWJsZV9zZSgpDQogIHsNCiAgICBfdHNfc3VibWl0X2VuYWJsZWQgPSBmYWxzZTsNCiAgICAkKCcjc2Utc3VibWl0JykuYWRkQ2xhc3MoJ3VrLWxpbmstcmVzZXQnKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIE1haW4gQUpBWCBzdHVmZg0KICAgKiBAcGFyYW0gYWN0aW9uDQogICAqIEBwYXJhbSBkYXRhDQogICAqIEBwYXJhbSBjYWxsYmFjaw0KICAgKiBAcGFyYW0gdHlwZQ0KICAgKiBAcHJpdmF0ZQ0KICAgKi8NCiAgZnVuY3Rpb24gX2RvX2FqYXgoYWN0aW9uLCBkYXRhLCBjYWxsYmFjaywgdHlwZSkNCiAgew0KICAgIGlmKCB0eXBlb2YgYWN0aW9uID09PSAidW5kZWZpbmVkIikNCiAgICB7DQogICAgICBhY3Rpb24gPSAnbGlzdF9sYW5ndWFnZXMnOw0KICAgIH0NCiAgICANCiAgICBpZiggdHlwZW9mIHR5cGUgPT09ICJ1bmRlZmluZWQiKQ0KICAgIHsNCiAgICAgIHR5cGUgPSAnUE9TVCc7DQogICAgfQ0KICAgIA0KICAgICQuYWpheCgNCiAgICAgIHsNCiAgICAgICAgdHlwZTogdHlwZSwNCiAgICAgICAgdXJsOiBfY29uZmlnLmFkbWluX2FqYXhfdXJsICsgIiZ2ZXJiPSIgKyBhY3Rpb24sDQogICAgICAgIGRhdGE6IGRhdGEsDQogICAgICAgIC8vYXN5bmM6IGZhbHNlLA0KICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihqc29uKQ0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYoanNvbi5zdGF0dXMudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnb2snKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIF9ub3RpZnlfZXJyb3IoanNvbi5zdGF0dXMpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiggdHlwZW9mIGNhbGxiYWNrICE9PSAidW5kZWZpbmVkIikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICBjYWxsYmFjayhqc29uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0sDQogICAgICAgIGVycm9yOiBmdW5jdGlvbih4aHIpDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfbm90aWZ5X2Vycm9yKCJBbiBlcnJvciBoYXMgb2NjdXJyZWQ6ICIgKyB4aHIuc3RhdHVzICsgIiAtICIgKyB4aHIuc3RhdHVzVGV4dCk7DQogICAgICAgICAgICAgIH0NCiAgICAgIH0pOw0KICB9DQogIA0KICBmdW5jdGlvbiBfc2V0X2RlZmF1bHRfbGFuZyhpZCkNCiAgew0KICAgIF9kb19hamF4KA0KICAgICAgJ3NldF9kZWZhdWx0X2xhbmcnLA0KICAgICAgeyBpZDogaWQgfSk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9yZW5kZXJfa2V5c19pbmRleCgpDQogIHsNCiAgICAkKCcja2V5cy1jYXJkJykNCiAgICAgIC5odG1sKCBFRS5TbWFydHkuZmV0Y2goJ2FiYy1uYXYtdGVtcGxhdGUnLCB7IGNoYXJhY3RlcnM6IF9rZXlfaW5kZXggfSApICk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9yZW5kZXJfc3RyaW5nc19lZGl0b3IoZGF0YSkNCiAgew0KICAgICQoIiNzdHJpbmdzLWNhcmQiKQ0KICAgICAgLmh0bWwoIEVFLlNtYXJ0eS5mZXRjaCgnc3RyaW5nLWVkaXRvcicsIGRhdGEpICk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9jYW5fZGlzY2FyZF9lZGl0b3JfY2hhbmdlcyhjb25maXJtX2NhbGxiYWNrLCBjYW5jZWxfY2FsbGJhY2spDQogIHsNCiAgICBpZihfc3RyX2VkaXRvcl9jaGFuZ2VkKQ0KICAgIHsNCiAgICAgIFVJa2l0Lm1vZGFsLmNvbmZpcm0oJ1RyYW5zbGF0aW9ucyBtYXkgaGF2ZSBjaGFuZ2VkIGFuZCB5b3UgbWF5IGxvc2UgdGhlbSEgRG8geW91IHdhbnQgdG8gY29udGludWUgd2l0aG91dCBzYXZpbmc/JykNCiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkNCiAgICAgICAgICB7DQogICAgICAgICAgICBpZiggdHlwZW9mIGNvbmZpcm1fY2FsbGJhY2sgIT09ICJ1bmRlZmluZWQiKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBjb25maXJtX2NhbGxiYWNrKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSwNCiAgICAgICAgICBmdW5jdGlvbiAoKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGlmKCB0eXBlb2YgY2FuY2VsX2NhbGxiYWNrICE9PSAidW5kZWZpbmVkIikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgY2FuY2VsX2NhbGxiYWNrKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAvLyBpZiBubyBjaGFuZ2VzIGp1c3QgcGFzc3Rocm91Z2gsIG5vIHByb21wdHMNCiAgICAgIGNvbmZpcm1fY2FsbGJhY2soKTsNCiAgICB9DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9uZXdfa2V5X2RpYWxvZygpDQogIHsNCiAgICAvL2NvbnN0IGh0bWwgPSAnPHA+dGVzdDwvcD4nOw0KICAgIC8vVUlraXQubW9kYWwoZWxlbWVudCwgb3B0aW9ucyk7DQogICAgVUlraXQubW9kYWwuZGlhbG9nKCQoJyNtb2RhbC1hZGQta2V5JykuaHRtbCgpLA0KICAgICAgew0KICAgICAgICAnYmctY2xvc2UnOiBmYWxzZSwNCiAgICAgIH0pDQogICAgICAuc2hvdygpOw0KICB9DQogIA0KICAvL1B1YmxpYyBNZXRob2RzDQogIEVFLklOSVQgPSB7DQogICAgDQogICAgLyoqDQogICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0cyBFRSBhcHANCiAgICAgKiBAZnVuY3Rpb24gbG9hZA0KICAgICAqLw0KICAgIGxvYWQgOiBmdW5jdGlvbihFRV9Db25maWcpDQogICAgICAgICAgIHsNCiAgICAgICAgICAgICBfY29uZmlnID0gRUVfQ29uZmlnOw0KICAgICAgICAgICAgIF9rZXlfaW5kZXggPSBfY29uZmlnLmtleV9pbmRleDsNCiAgICAgICAgICAgICBfZGVmYXVsdF9sYW5nX2lkID0gX2NvbmZpZy5kZWZhdWx0X2xhbmdfaWQ7DQogICAgICAgICAgICAgX2RlZmF1bHRfbGFuZ3VhZ2UgPSBfY29uZmlnLmRlZmF1bHRfbGFuZ3VhZ2U7DQogICAgICANCiAgICAgICAgICAgICBFRS5DT1JFLmluaXRpYWxpemUoKTsNCiAgICAgICAgICAgfQ0KICB9Ow0KICANCiAgRUUuU21hcnR5ID0gew0KICAgIGZldGNoIDogZnVuY3Rpb24oc291cmNlX2lkLCBkYXRhKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBsZXQgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzb3VyY2VfaWQpLmlubmVySFRNTDsNCiAgICAgICAgICAgICAgbGV0IGNvbXBpbGVkID0gbmV3IGpTbWFydCh0ZW1wbGF0ZSk7DQogICAgICAgICAgICAgIHJldHVybiBjb21waWxlZC5mZXRjaChkYXRhKTsNCiAgICAgICAgICAgIH0NCiAgfTsNCiAgDQogIEVFLkNPUkUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICAgIA0KICAgICAgICAgICAgICAgICAgX2RvX2FqYXgoJ2xpc3RfZGJfa2V5c19pbmRleCcsIHsgfSwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24ocmVzdWx0KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgRUUubGFuZ2tleXMgPSByZXN1bHQuZGF0YTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICANCiAgICAgICAgICAgICAgICAgICQoJyNsYW5ncy1jYXJkJykuaHRtbCggRUUuU21hcnR5LmZldGNoKCdsYW5ncy1saXN0JywgeyBsYW5nczogX2NvbmZpZy5sYW5ndWFnZXMgfSApICk7DQogICAgICAgICAgICAgICAgICBfdG9nZ2xlX3N3aXRjaGVzKCcjb24tJyArIF9kZWZhdWx0X2xhbmd1YWdlLCAnLmxhbmd1YWdlcy1pdGVtcycpOw0KICAgICAgDQogICAgICAgICAgICAgICAgICAkKCcubGFuZ3VhZ2VzLWl0ZW1zJykNCiAgICAgICAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIF90b2dnbGVfc3dpdGNoZXModGhpcywgJy5sYW5ndWFnZXMtaXRlbXMnKTsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICBpZiggJCh0aGlzKS52YWwoKSAhPT0gX2RlZmF1bHRfbGFuZ19pZCkNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfZGVmYXVsdF9sYW5nX2lkID0gJCh0aGlzKS52YWwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIF9jYW5fZGlzY2FyZF9lZGl0b3JfY2hhbmdlcygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NldF9kZWZhdWx0X2xhbmcoX2RlZmF1bHRfbGFuZ19pZCk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoX2xhc3Rfa2V5ICE9PScnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF91cGRhdGVfc3RyaW5nX2VkaXRvcihfbGFzdF9rZXkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3RyX2VkaXRvcl9jaGFuZ2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ub3RpZnlfd2FybmluZygnQWN0aW9uIGNhbmNlbGVkIScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgIA0KICAgICAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbigna2V5dXAnLCAnI3NlYXJjaC1maWx0ZXInLCBmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIgZWwgPSB0aGlzOw0KICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9ICQoZWwpLnZhbCgpLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgdHlwZV90aW1lcihmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNrZXktbGlzdCBsaSIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGUoJCh0aGlzKS5jaGlsZHJlbignYScpLnRleHQoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUpID4gLTEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgNzAwIC8vIG1zIGJlZm9yZSBpdCB0aW1lcyBvdXQNCiAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgIA0KICAgICAgICAgICAgICAgICAgX3JlbmRlcl9rZXlzX2luZGV4KCk7DQogICAgICAgICAgICAgICAgICBfcmVmcmVzaF9rZXlzX2xpc3QoKTsNCiAgICAgICAgICAgICAgICAgIF91cGRhdGVfa2V5c19kYXRhKCk7DQogICAgICANCiAgICAgICAgICAgICAgICAgICQoJyNrLWFkZC1ub3RpY2VzJykuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgJChkb2N1bWVudC5ib2R5KQ0KICAgICAgICAgICAgICAgICAgICAub24oJ2tleXVwJywgJyNhZGQta2V5LWlucHV0JywgZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIGVsID0gdGhpczsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSAkKGVsKS52YWwoKTsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICB0eXBlX3RpbWVyKGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICh2YWx1ZSAhPT0gJycpICYmICFfdmFsaWRhdGVfZGJfa2V5KHZhbHVlKSApDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjay1hZGQtbm90aWNlcycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaHRtbCgnS2V5IG11c3QgYmUgdW5pcXVlLCBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbHBoYWJldGljJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaG93KDUwMCk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV90aW1lcihmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNrLWFkZC1ub3RpY2VzJykuaGlkZSg1MDApLmh0bWwoJycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgNzAwDQogICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICANCiAgICAgICAgICAgICAgICAgIC8vYWxsb3cgdGhlIGVkaXRvciB0byBzaG93IGV2ZW4gaWYgZW1wdHkNCiAgICAgICAgICAgICAgICAgIF9yZW5kZXJfc3RyaW5nc19lZGl0b3Ioew0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2xhbmc6IF9kZWZhdWx0X2xhbmdfaWQsDQogICAgICAgICAgICAgICAgICAgIHN0cmluZ3M6IHsgfSwNCiAgICAgICAgICAgICAgICAgICAga2V5OiBfbGFzdF9rZXksDQogICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlczogX2NvbmZpZy5sYW5ndWFnZXMNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAkKCcuay1uYXYsICNrLW5hdi1hZGQnKQ0KICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICBsZXQgZWwgPSB0aGlzOw0KICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgIF9jYW5fZGlzY2FyZF9lZGl0b3JfY2hhbmdlcygNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5c19uYXYoZWwpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBfc3RyX2VkaXRvcl9jaGFuZ2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBfbm90aWZ5X3dhcm5pbmcoJ0FjdGlvbiBjYW5jZWxlZCEnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgIA0KICAgICAgICAgICAgICAgICAgJChkb2N1bWVudC5ib2R5KQ0KICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgJy5rZXktdGFncycsIGZ1bmN0aW9uKGUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9ICQodGhpcykudGV4dCgpOw0KICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9ICQodGhpcykuYXR0cignZGF0YS1rZXktb3JkZXInKTsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICBfY2FuX2Rpc2NhcmRfZWRpdG9yX2NoYW5nZXMoDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5rZXktdGFncycpLnJlbW92ZUNsYXNzKCd1ay1iYWNrZ3JvdW5kLW11dGVkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICQoJ1tkYXRhLWtleT0iJyArIGtleSArICciXScpLmFkZENsYXNzKCd1ay1iYWNrZ3JvdW5kLW11dGVkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzdHJpbmdzLWNhcmQiKS5odG1sKEVFLnNwaW5uZXJfaHRtbCk7DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBfdXBkYXRlX3N0cmluZ19lZGl0b3Ioa2V5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX2xhc3Rfa2V5ID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICBfa2V5X29yZGVyX3BvaW50ZXIgPSBpbmRleDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX3VwZGF0ZV9rZXlzX2JhZGdlcygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX25vdGlmeV93YXJuaW5nKCdBY3Rpb24gY2FuY2VsZWQhJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICANCiAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkNCiAgICAgICAgICAgICAgICAgICAgLm9uKCdmb2N1cycsICcuc3RyLWVkJywgZnVuY3Rpb24oZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIGlmKCFfc3RyX2VkaXRvcl9jaGFuZ2VkKQ0KICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF9lZGl0b3JfY2hhbmdlX2J1ZmZlciA9ICQodGhpcykudmFsKCk7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgIA0KICAgICAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbigna2V5dXAnLCAnLnN0ci1lZCcsIGZ1bmN0aW9uKGUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZihfZWRpdG9yX2NoYW5nZV9idWZmZXIgIT09ICQodGhpcykudmFsKCkgJiYgX3N0cl9lZGl0b3JfY2hhbmdlZCA9PT0gZmFsc2UpDQogICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgX3N0cl9lZGl0b3JfY2hhbmdlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBfZW5hYmxlX3NlKCk7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgJChkb2N1bWVudC5ib2R5KQ0KICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgJyNzZS1zdWJtaXQnLCBmdW5jdGlvbihlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgIGlmKF9zdHJfZWRpdG9yX2NoYW5nZWQpDQogICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogX2xhc3Rfa2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnN0ci1lZCcpDQogICAgICAgICAgICAgICAgICAgICAgICAgIC5lYWNoKGZ1bmN0aW9uKCBpbmRleCApDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyQodGhpcykuYXR0cignZGF0YS1sYW5nJyldID0gJCh0aGlzKS52YWwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIF9kb19hamF4KCdhZGRfZGJfdHJhbnNsYXRpb25zJywgZGF0YSxmdW5jdGlvbihyZXN1bHQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIF9ub3RpZnlfc3VjY2VzcygnS2V5ICcgKyBuYW1lICsgJyB0cmFuc2xhdGlvbnMgc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIHRoZSBkYicpDQogICAgICAgICAgICAgICAgICAgICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX2Rpc2FibGVfc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbigna2V5cHJlc3MnLCAnI2FkZC1rZXktaW5wdXQnLCBmdW5jdGlvbihlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IGUud2hpY2g7DQogICAgICAgICAgICAgICAgICAgICAgaWYoa2V5ID09IDEzKSAgLy8gdGhlIGVudGVyIGtleSBjb2RlDQogICAgICAgICAgICAgICAgICAgICAgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAkKCcjay1uYXYtYWRkJykuY2xpY2soKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgIA0KICB9DQogIA0KfSggdGhpcywgalF1ZXJ5LCBfLCBCYWNrYm9uZSwgIGpTbWFydCwgVUlraXQsIEVFX0NvbmZpZykgKTs=]]></data>
	</file>
	<file>
	  <filename>/js_app/admin_translation_center_app.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIyBNb2R1bGU6IEVyaWR1DQogIyBBdXRob3JzOiBGZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKQ0KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAjIENNUyBNYWRlIFNpbXBsZSAtIFBvd2VyIGZvciB0aGUgcHJvZmVzc2lvbmFsLCBTaW1wbGljaXR5IGZvciB0aGUgZW5kIHVzZXIuDQogIyAoYykgMjAwNCAtIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KICMgKGMpIDIwMTEgLSAyMDE4IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRGV2ZWxvcG1lbnQgVGVhbQ0KICMgKGMpIDIwMTggLSAyMDE5IGJ5IFRoZSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KICMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiAjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQogIw0KICMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQogIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KICMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KICMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KICMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiAjIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogKi8NCg0KJ3VzZSBzdHJpY3QnOw0KDQooZnVuY3Rpb24oIGdsb2JhbCwgJCwgXywgYmIsIGpTbWFydCwgVUlraXQsIGNvbmZpZyApDQp7DQogIC8vUHJpdmF0ZQ0KICBjb25zdCBUQyAgICAgICAgICAgICAgICA9IGdsb2JhbC5UQyB8fCB7fTsNCiAgY29uc3QgX2RlYnVnX21lICAgICAgICAgPSBmYWxzZTsNCiAgbGV0IF9jb25maWcgICAgICAgICAgICAgPSBudWxsOw0KICBsZXQgX2tleV9pbmRleCAgICAgICAgICA9ICcnOw0KICBsZXQgX2tleV9jb3VudCAgICAgICAgICA9IDA7DQogIGxldCBfa2V5X29yZGVyX3BvaW50ZXIgID0gMDsNCiAgbGV0IF9kZWZhdWx0X2xhbmdfaWQgICAgPSAwOw0KICBsZXQgX2RlZmF1bHRfbGFuZ3VhZ2UgICA9ICdhbGwnOw0KICBsZXQgX2xhc3Rfa2V5ICAgICAgICAgICA9ICcnOw0KICBsZXQgX3RzX3N1Ym1pdF9lbmFibGVkICA9IGZhbHNlOw0KICBsZXQgX3N0cl9lZGl0b3JfY2hhbmdlZCA9IGZhbHNlOw0KICBsZXQgX2lzX2FkbWluaXN0cmF0b3IgICA9IGZhbHNlOw0KICANCiAgLy8gbWlzYw0KICBsZXQgX2VkaXRvcl9jaGFuZ2VfYnVmZmVyID0gJyc7DQogIA0KICAvKioNCiAgICogcHJldmVudCBBSkFYIHNwYW0gb24gY2VydGFpbiBrZXlkb3duIGV2ZW50cw0KICAgKiBAZXhhbXBsZToNCiAgICogICAgICAgICAgICB0eXBlX3RpbWVyKA0KICAgKiAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aGVuIHRpbWVzIG91dC4uLg0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAqICAgICAgICAgICAgICAgICAgICAgICAgNzAwIC8vIG1zIGJlZm9yZSBpdCB0aW1lcyBvdXQNCiAgICogICAgICAgICAgICAgICAgICAgICAgICk7DQogICAqIEB0eXBlIHtmdW5jdGlvbiguLi5bKl09KX0NCiAgICovDQogIHZhciB0eXBlX3RpbWVyID0gZnVuY3Rpb24oKQ0KICB7DQogICAgdmFyIHRpbWVyID0gMDsNCiAgICByZXR1cm4gZnVuY3Rpb24oY2FsbGJhY2ssIG1zKQ0KICAgIHsNCiAgICAgIGNsZWFyVGltZW91dCAodGltZXIpOw0KICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGNhbGxiYWNrLCBtcyk7DQogICAgfQ0KICB9KCk7DQogIA0KICANCiAgLy9QdWJsaWMgUHJvcGVydGllcw0KICBUQy5sYW5na2V5cyA9IFtdOw0KICBUQy5zcGlubmVyX2h0bWwgPSAnPGRpdiB1ay1zcGlubmVyPjwvZGl2Pic7DQogIA0KICAvLyBSdW4gdGhlIGFwcA0KICAkKGZ1bmN0aW9uKCkNCiAgew0KICAgIC8vYWxlcnQoSlNPTi5zdHJpbmdpZnkoVENfQ29uZmlnKSk7DQogICAgVEMuSU5JVC5sb2FkKFRDX0NvbmZpZyk7DQogICAgaWYoX2RlYnVnX21lKXtjb25zb2xlLmxvZygnVEMuSU5JVC5sb2FkKCkhJyk7fQ0KICB9KTsNCiAgDQogIC8vUHJpdmF0ZSBNZXRob2RzDQogIA0KICAvKioNCiAgICogbm90aWZpY2F0aW9uIHN0dWZmDQogICAqLw0KICANCiAgLyoqDQogICAqIEBwYXJhbSBtZXNzYWdlDQogICAqIEBwYXJhbSBzdGF0dXMNCiAgICogQHByaXZhdGUNCiAgICovDQogIGZ1bmN0aW9uIF9ub3RpZnlfcmF3KG1lc3NhZ2UsIHN0YXR1cykNCiAgew0KICAgIFVJa2l0Lm5vdGlmaWNhdGlvbih7DQogICAgICBtZXNzYWdlOiBtZXNzYWdlLA0KICAgICAgc3RhdHVzOiBzdGF0dXMsDQogICAgICBwb3M6ICd0b3AtcmlnaHQnLA0KICAgICAgdGltZW91dDogNTAwMA0KICAgIH0pOw0KICB9DQogIA0KICBmdW5jdGlvbiBfbm90aWZ5X3N1Y2Nlc3MobWVzc2FnZSkNCiAgew0KICAgIG1lc3NhZ2UgPSAnPGRpdiBjbGFzcz0idWstYWxlcnQtc3VjY2VzcyIgdWstYWxlcnQ+JyArIG1lc3NhZ2UgKyAnPC9kaXY+JzsNCiAgICBfbm90aWZ5X3JhdyhtZXNzYWdlLCAnc3VjY2VzcycpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfbm90aWZ5X3dhcm5pbmcobWVzc2FnZSkNCiAgew0KICAgIG1lc3NhZ2UgPSAnPGRpdiBjbGFzcz0idWstYWxlcnQtd2FybmluZyIgdWstYWxlcnQ+JyArIG1lc3NhZ2UgKyAnPC9kaXY+JzsNCiAgICBfbm90aWZ5X3JhdyhtZXNzYWdlLCAnd2FybmluZycpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfbm90aWZ5X2Vycm9yKG1lc3NhZ2UpDQogIHsNCiAgICBtZXNzYWdlID0gJzxkaXYgY2xhc3M9InVrLWFsZXJ0LWRhbmdlciIgdWstYWxlcnQ+JyArIG1lc3NhZ2UgKyAnPC9kaXY+JzsNCiAgICBfbm90aWZ5X3JhdyhtZXNzYWdlLCAnZGFuZ2VyJyk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9kYl9rZXlfZXhpc3RzKGtleSkNCiAgew0KICAgIHJldHVybiBqUXVlcnkuaW5BcnJheShrZXksIFRDLmxhbmdrZXlzKSA+IC0xOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdmFsaWRhdGVfZGJfa2V5KGtleSkNCiAgew0KICAgIGNvbnN0IHBhdHRlcm4gPSAvXlthLXpBLVpdW2EtekEtWjAtOV8tXSoveTsNCiAgICBjb25zdCBhID0ga2V5LnJlcGxhY2UocGF0dGVybiwgJycpID09PSAnJzsNCiAgICBjb25zdCBiID0gIV9kYl9rZXlfZXhpc3RzKGtleSk7DQoNCiAgICByZXR1cm4gYSAmJiBiOw0KICB9DQogIA0KICBmdW5jdGlvbiBfYWRkX2RiX2tleShuYW1lKQ0KICB7DQogICAgX2RvX2FqYXgoJ2FkZF9kYl9rZXknLHsga2V5OiBuYW1lfSwNCiAgICAgIF9ub3RpZnlfc3VjY2VzcygnS2V5ICcgKyBuYW1lICsgJyBzdWNjZXNzZnVsbHkgYWRkZWQgdG8gdGhlIGRiJykNCiAgICApOw0KICB9DQogIA0KICBmdW5jdGlvbiBfZGVsX2RiX2tleShuYW1lKQ0KICB7DQogICAgX2RvX2FqYXgoJ2RlbF9kYl9rZXknLHsga2V5OiBuYW1lfSwNCiAgICAgIF9ub3RpZnlfc3VjY2VzcygnS2V5ICcgKyBuYW1lICsgJyBzdWNjZXNzZnVsbHkgZGVsZXRlZCBmcm9tIHRoZSBkYicpDQogICAgKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX3JlZnJlc2hfa2V5c19saXN0KCkNCiAgew0KICAgICQoJyNrZXlzLWxpc3QnKS5odG1sKFRDLnNwaW5uZXJfaHRtbCk7DQogICAgX2RvX2FqYXgoJ2xpc3RfZGJfa2V5c19pbmRleCcsIHsgIH0sDQogICAgICBmdW5jdGlvbihyZXN1bHQpDQogICAgICB7DQogICAgICAgIGNvbnN0IGRhdGEgPSB7DQogICAgICAgICAgaXNfYWRtaW5pc3RyYXRvcjogX2lzX2FkbWluaXN0cmF0b3IsDQogICAgICAgICAga2V5czogcmVzdWx0LmRhdGENCiAgICAgICAgfTsNCiAgICAgICAgJCgnI2tleXMtbGlzdCcpLmh0bWwoIFRDLlNtYXJ0eS5mZXRjaCgna2V5cy1saXN0LXRwbCcsIGRhdGEpICk7DQogICAgICAgIF91cGRhdGVfa2V5c19kYXRhKCk7DQogICAgICAgIF91cGRhdGVfa2V5c19iYWRnZXMoKTsNCiAgICAgIH0NCiAgICApOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdXBkYXRlX3N0cmluZ19lZGl0b3Ioa2V5KQ0KICB7DQogICAgX2RvX2FqYXgoJ2dldF90cmFuc2xhdGlvbnMnLCB7IGtleToga2V5IH0sDQogICAgICBmdW5jdGlvbihyZXN1bHQpDQogICAgICB7DQogICAgICAgIGxldCBkYXRhID0gew0KICAgICAgICAgIGRlZmF1bHRfbGFuZzogX2RlZmF1bHRfbGFuZ19pZCwNCiAgICAgICAgICBzdHJpbmdzOiByZXN1bHQuZGF0YSwNCiAgICAgICAgICBrZXk6IGtleSwNCiAgICAgICAgICBsYW5ndWFnZXM6IF9jb25maWcubGFuZ3VhZ2VzDQogICAgICAgIH0NCiAgICAgIA0KICAgICAgICAkKCIjc3RyaW5ncy1jYXJkIikuaHRtbCggVEMuU21hcnR5LmZldGNoKCdzdHJpbmctZWRpdG9yJywgZGF0YSkgKTsNCiAgICAgICAgX2Rpc2FibGVfc2UoKTsNCiAgICAgIH0pOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdXBkYXRlX2tleXNfZGF0YSgpDQogIHsNCiAgICBfa2V5X2NvdW50ID0gVEMubGFuZ2tleXMubGVuZ3RoOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdXBkYXRlX2tleXNfYmFkZ2VzKCkNCiAgew0KICAgICQoJyNrZXktY291bnRlci1iYWRnZScpLmh0bWwoJCgnLmtleS10YWdzJykubGVuZ3RoKTsNCiAgICBsZXQgaW5kZXggPSAnLSc7DQogICAgDQogICAgaWYoX2tleV9vcmRlcl9wb2ludGVyID4gMCkNCiAgICB7DQogICAgICBpbmRleCA9IF9rZXlfb3JkZXJfcG9pbnRlcjsNCiAgICB9DQogICAgDQogICAgJCgnI2tleS1pbmRleC1iYWRnZScpLmh0bWwoaW5kZXgpOw0KICB9DQogIA0KICBmdW5jdGlvbiBfdG9nZ2xlX3N3aXRjaGVzKGFjdGl2ZSwgZ3JvdXBfY2xhc3MpDQogIHsNCiAgICAkKGdyb3VwX2NsYXNzKS5ub3QoYWN0aXZlKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpOw0KICAgICQoYWN0aXZlKS5wcm9wKCdjaGVja2VkJywgdHJ1ZSk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9wcm9jZXNzX2tleXNfbmF2KGVsKQ0KICB7DQogICAgbGV0IGFjdGlvbiA9ICQoZWwpLmF0dHIoJ2lkJyk7DQogIA0KICAgIHN3aXRjaCAoYWN0aW9uKSB7DQogICAgICBjYXNlICdrLW5hdi1hZGQnOg0KICAgICAgICBsZXQgbmV3X2tleSA9ICQoJyNhZGQta2V5LWlucHV0JykudmFsKCk7DQogICAgICAgIA0KICAgICAgICBpZiggIV92YWxpZGF0ZV9kYl9rZXkobmV3X2tleSkgKQ0KICAgICAgICB7DQogICAgICAgICAgX25vdGlmeV9lcnJvcignS2V5IG11c3QgYmUgdW5pcXVlLCBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbHBoYWJldGljJyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgX2FkZF9kYl9rZXkobmV3X2tleSk7DQogICAgICAgICAgX3JlZnJlc2hfa2V5c19saXN0KCk7DQogICAgICAgICAgJCgnI2FkZC1rZXktaW5wdXQnKS52YWwoJycpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBicmVhazsNCiAgICANCiAgICAgIGNhc2UgJ2stbmF2LXJlbW92ZSc6DQogICAgICAgIGlmKF9sYXN0X2tleSkNCiAgICAgICAgew0KICAgICAgICAgIFVJa2l0Lm1vZGFsLmNvbmZpcm0oJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIGtleTogJyArIF9sYXN0X2tleSArICchIGFyZSB5b3Ugc3VyZT8nKQ0KICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9kZWxfZGJfa2V5KF9sYXN0X2tleSk7DQogICAgICAgICAgICAgICAgX3JlZnJlc2hfa2V5c19saXN0KCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIGZ1bmN0aW9uICgpDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfbm90aWZ5X3dhcm5pbmcoJ0FjdGlvbiBjYW5jZWxlZCEnKTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgX25vdGlmeV93YXJuaW5nKCdObyBrZXkgaXMgY3VycmVudGx5IHNlbGVjdGVkIScpOw0KICAgICAgICB9DQogICAgICANCiAgICAgICAgYnJlYWs7DQogIA0KICAgICAgY2FzZSAnay1uYXYtcmVmcmVzaCc6DQogICAgICAgIA0KICAgICAgICBfcmVmcmVzaF9rZXlzX2xpc3QoKTsNCiAgICAgICAgX2xhc3Rfa2V5ID0gJyc7DQogICAgICAgIC8vX3VwZGF0ZV9zdHJpbmdfZWRpdG9yKF9sYXN0X2tleSk7DQogICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICANCiAgICAgICAgYnJlYWs7DQogICAgDQogICAgICBjYXNlICdrLW5hdi1yJzoNCiAgICAgICAgaWYoX2xhc3Rfa2V5KQ0KICAgICAgICB7DQogICAgICAgICAgJCgnI2stZmlsdGVyLWFsbCcpLmNsaWNrKCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgIA0KICAgICAgICB9DQogIA0KICAgICAgICAkKCcjay1maWx0ZXItYWxsJykuY2xpY2soKTsNCiAgICAgIA0KICAgICAgICBicmVhazsNCiAgICANCiAgICAgIGNhc2UgJ2stbmF2LWwnOg0KICAgICAgICBpZihfbGFzdF9rZXkpDQogICAgICAgIHsNCiAgICAgICAgICAkKCcjay1maWx0ZXItYWxsJykuY2xpY2soKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgDQogICAgICAgIH0NCiAgICAgIA0KICAgICAgICBicmVhazsNCiAgICB9DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9lbmFibGVfc2UoKQ0KICB7DQogICAgX3RzX3N1Ym1pdF9lbmFibGVkID0gdHJ1ZTsNCiAgICAkKCcjc2Utc3VibWl0JykucmVtb3ZlQ2xhc3MoJ3VrLWxpbmstcmVzZXQnKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX2Rpc2FibGVfc2UoKQ0KICB7DQogICAgX3RzX3N1Ym1pdF9lbmFibGVkID0gZmFsc2U7DQogICAgJCgnI3NlLXN1Ym1pdCcpLmFkZENsYXNzKCd1ay1saW5rLXJlc2V0Jyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBNYWluIEFKQVggc3R1ZmYNCiAgICogQHBhcmFtIGFjdGlvbg0KICAgKiBAcGFyYW0gZGF0YQ0KICAgKiBAcGFyYW0gY2FsbGJhY2sNCiAgICogQHBhcmFtIHR5cGUNCiAgICogQHByaXZhdGUNCiAgICovDQogIGZ1bmN0aW9uIF9kb19hamF4KGFjdGlvbiwgZGF0YSwgY2FsbGJhY2ssIHR5cGUpDQogIHsNCiAgICBpZiggdHlwZW9mIGFjdGlvbiA9PT0gInVuZGVmaW5lZCIpDQogICAgew0KICAgICAgYWN0aW9uID0gJ2xpc3RfbGFuZ3VhZ2VzJzsNCiAgICB9DQogICAgDQogICAgaWYoIHR5cGVvZiB0eXBlID09PSAidW5kZWZpbmVkIikNCiAgICB7DQogICAgICB0eXBlID0gJ1BPU1QnOw0KICAgIH0NCiAgICANCiAgICAkLmFqYXgoDQogICAgICB7DQogICAgICAgIHR5cGU6IHR5cGUsDQogICAgICAgIHVybDogX2NvbmZpZy5hZG1pbl9hamF4X3VybCArICImdmVyYj0iICsgYWN0aW9uLA0KICAgICAgICBkYXRhOiBkYXRhLA0KICAgICAgICAvL2FzeW5jOiBmYWxzZSwNCiAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oanNvbikNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmKGpzb24uc3RhdHVzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSAhPT0gJ29rJykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICBfbm90aWZ5X2Vycm9yKGpzb24uc3RhdHVzKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYoIHR5cGVvZiBjYWxsYmFjayAhPT0gInVuZGVmaW5lZCIpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgY2FsbGJhY2soanNvbik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9LA0KICAgICAgICBlcnJvcjogZnVuY3Rpb24oeGhyKQ0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX25vdGlmeV9lcnJvcigiQW4gZXJyb3IgaGFzIG9jY3VycmVkOiAiICsgeGhyLnN0YXR1cyArICIgLSAiICsgeGhyLnN0YXR1c1RleHQpOw0KICAgICAgICAgICAgICB9DQogICAgICB9KTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX3NldF9kZWZhdWx0X2xhbmcoaWQpDQogIHsNCiAgICBfZG9fYWpheCgNCiAgICAgICdzZXRfZGVmYXVsdF9sYW5nJywNCiAgICAgIHsgaWQ6IGlkIH0pOw0KICB9DQogIA0KICBmdW5jdGlvbiBfcmVuZGVyX2tleXNfaW5kZXgoKQ0KICB7DQogICAgbGV0IGRhdGEgPSB7DQogICAgICBpc19hZG1pbmlzdHJhdG9yOiBfaXNfYWRtaW5pc3RyYXRvciwNCiAgICAgIGNoYXJhY3RlcnM6IF9rZXlfaW5kZXgNCiAgICB9Ow0KICAgICQoJyNrZXlzLWNhcmQnKQ0KICAgICAgLmh0bWwoIFRDLlNtYXJ0eS5mZXRjaCgnYWJjLW5hdi10ZW1wbGF0ZScsIGRhdGEgKSApOw0KICB9DQogIA0KICBmdW5jdGlvbiBfcmVuZGVyX3N0cmluZ3NfZWRpdG9yKGRhdGEpDQogIHsNCiAgICAkKCIjc3RyaW5ncy1jYXJkIikNCiAgICAgIC5odG1sKCBUQy5TbWFydHkuZmV0Y2goJ3N0cmluZy1lZGl0b3InLCBkYXRhKSApOw0KICB9DQogIA0KICBmdW5jdGlvbiBfY2FuX2Rpc2NhcmRfZWRpdG9yX2NoYW5nZXMoY29uZmlybV9jYWxsYmFjaywgY2FuY2VsX2NhbGxiYWNrKQ0KICB7DQogICAgaWYoX3N0cl9lZGl0b3JfY2hhbmdlZCkNCiAgICB7DQogICAgICBVSWtpdC5tb2RhbC5jb25maXJtKCdUcmFuc2xhdGlvbnMgbWF5IGhhdmUgY2hhbmdlZCBhbmQgeW91IG1heSBsb3NlIHRoZW0hIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGhvdXQgc2F2aW5nPycpDQogICAgICAgIC50aGVuKGZ1bmN0aW9uICgpDQogICAgICAgICAgew0KICAgICAgICAgICAgaWYoIHR5cGVvZiBjb25maXJtX2NhbGxiYWNrICE9PSAidW5kZWZpbmVkIikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgY29uZmlybV9jYWxsYmFjaygpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0sDQogICAgICAgICAgZnVuY3Rpb24gKCkNCiAgICAgICAgICB7DQogICAgICAgICAgICBpZiggdHlwZW9mIGNhbmNlbF9jYWxsYmFjayAhPT0gInVuZGVmaW5lZCIpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGNhbmNlbF9jYWxsYmFjaygpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgLy8gaWYgbm8gY2hhbmdlcyBqdXN0IHBhc3N0aHJvdWdoLCBubyBwcm9tcHRzDQogICAgICBjb25maXJtX2NhbGxiYWNrKCk7DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICogQGRlcHJlY2F0ZWQNCiAgICogQHByaXZhdGUNCiAgICovDQogIGZ1bmN0aW9uIF9uZXdfa2V5X2RpYWxvZygpDQogIHsNCiAgICBVSWtpdC5tb2RhbC5kaWFsb2coJCgnI21vZGFsLWFkZC1rZXknKS5odG1sKCksDQogICAgICB7DQogICAgICAgICdiZy1jbG9zZSc6IGZhbHNlLA0KICAgICAgfSkNCiAgICAgIC5zaG93KCk7DQogIH0NCiAgDQogIC8vUHVibGljIE1ldGhvZHMNCiAgVEMuSU5JVCA9IHsNCiAgICANCiAgICAvKioNCiAgICAgKiBAZGVzY3JpcHRpb24gU3RhcnRzIFRDIGFwcA0KICAgICAqIEBmdW5jdGlvbiBsb2FkDQogICAgICovDQogICAgbG9hZCA6IGZ1bmN0aW9uKFRDX0NvbmZpZykNCiAgICAgICAgICAgew0KICAgICAgICAgICAgIF9jb25maWcgICAgICAgICAgID0gVENfQ29uZmlnOw0KICAgICAgICAgICAgIF9rZXlfaW5kZXggICAgICAgID0gX2NvbmZpZy5rZXlfaW5kZXg7DQogICAgICAgICAgICAgX2RlZmF1bHRfbGFuZ19pZCAgPSBfY29uZmlnLmRlZmF1bHRfbGFuZ19pZDsNCiAgICAgICAgICAgICBfZGVmYXVsdF9sYW5ndWFnZSA9IF9jb25maWcuZGVmYXVsdF9sYW5ndWFnZTsNCiAgICAgICAgICAgICBfaXNfYWRtaW5pc3RyYXRvciA9IF9jb25maWcuaXNfYWRtaW5pc3RyYXRvcjsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICBUQy5DT1JFLmluaXRpYWxpemUoKTsNCiAgICAgICAgICAgfQ0KICB9Ow0KICANCiAgVEMuU21hcnR5ID0gew0KICAgIGZldGNoIDogZnVuY3Rpb24oc291cmNlX2lkLCBkYXRhKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBsZXQgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzb3VyY2VfaWQpLmlubmVySFRNTDsNCiAgICAgICAgICAgICAgbGV0IGNvbXBpbGVkID0gbmV3IGpTbWFydCh0ZW1wbGF0ZSk7DQogICAgICAgICAgICAgIHJldHVybiBjb21waWxlZC5mZXRjaChkYXRhKTsNCiAgICAgICAgICAgIH0NCiAgfTsNCiAgDQogIFRDLkNPUkUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgX2RvX2FqYXgoJ2xpc3RfZGJfa2V5c19pbmRleCcsIHsgfSwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24ocmVzdWx0KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgVEMubGFuZ2tleXMgPSByZXN1bHQuZGF0YTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICBpZihfaXNfYWRtaW5pc3RyYXRvcikNCiAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJCgnI2xhbmdzLWNhcmQnKS5odG1sKCBUQy5TbWFydHkuZmV0Y2goJ2xhbmdzLWxpc3QnLCB7IGxhbmdzOiBfY29uZmlnLmxhbmd1YWdlcyB9ICkgKTsNCiAgICAgICAgICAgICAgICAgICAgX3RvZ2dsZV9zd2l0Y2hlcygnI29uLScgKyBfZGVmYXVsdF9sYW5ndWFnZSwgJy5sYW5ndWFnZXMtaXRlbXMnKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgJCgnLmxhbmd1YWdlcy1pdGVtcycpDQogICAgICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBfdG9nZ2xlX3N3aXRjaGVzKHRoaXMsICcubGFuZ3VhZ2VzLWl0ZW1zJyk7DQogICAgICANCiAgICAgICAgICAgICAgICAgICAgICBpZiggJCh0aGlzKS52YWwoKSAhPT0gX2RlZmF1bHRfbGFuZ19pZCkNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfZGVmYXVsdF9sYW5nX2lkID0gJCh0aGlzKS52YWwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIF9jYW5fZGlzY2FyZF9lZGl0b3JfY2hhbmdlcygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NldF9kZWZhdWx0X2xhbmcoX2RlZmF1bHRfbGFuZ19pZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoX2xhc3Rfa2V5ICE9PScnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF91cGRhdGVfc3RyaW5nX2VkaXRvcihfbGFzdF9rZXkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3RyX2VkaXRvcl9jaGFuZ2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ub3RpZnlfd2FybmluZygnQWN0aW9uIGNhbmNlbGVkIScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICApOw0KDQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgDQogICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkNCiAgICAgICAgICAgICAgICAgICAgLm9uKCdrZXl1cCcsICcjc2VhcmNoLWZpbHRlcicsIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIHZhciBlbCA9IHRoaXM7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gJChlbCkudmFsKCkudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICB0eXBlX3RpbWVyKGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNrZXktbGlzdCBsaSIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGUoJCh0aGlzKS5jaGlsZHJlbignYScpLnRleHQoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUpID4gLTEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgNzAwIC8vIG1zIGJlZm9yZSBpdCB0aW1lcyBvdXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgDQogICAgICAgICAgICAgICAgICAgIH0pOw0KICANCiAgICAgICAgICAgICAgICAgIF9yZW5kZXJfa2V5c19pbmRleCgpOw0KICAgICAgICAgICAgICAgICAgX3JlZnJlc2hfa2V5c19saXN0KCk7DQogICAgICAgICAgICAgICAgICBfdXBkYXRlX2tleXNfZGF0YSgpOw0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAkKCcjay1hZGQtbm90aWNlcycpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkNCiAgICAgICAgICAgICAgICAgICAgLm9uKCdrZXl1cCcsICcjYWRkLWtleS1pbnB1dCcsIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIHZhciBlbCA9IHRoaXM7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gJChlbCkudmFsKCk7DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgdHlwZV90aW1lcihmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAodmFsdWUgIT09ICcnKSAmJiAhX3ZhbGlkYXRlX2RiX2tleSh2YWx1ZSkgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2stYWRkLW5vdGljZXMnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmh0bWwoJ0tleSBtdXN0IGJlIHVuaXF1ZSwgIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGFscGhhYmV0aWMnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNob3coNTAwKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfdGltZXIoZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjay1hZGQtbm90aWNlcycpLmhpZGUoNTAwKS5odG1sKCcnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIDcwMA0KICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICANCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIC8vYWxsb3cgdGhlIGVkaXRvciB0byBzaG93IGV2ZW4gaWYgZW1wdHkNCiAgICAgICAgICAgICAgICAgIF9yZW5kZXJfc3RyaW5nc19lZGl0b3Ioew0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2xhbmc6IF9kZWZhdWx0X2xhbmdfaWQsDQogICAgICAgICAgICAgICAgICAgIHN0cmluZ3M6IHsgfSwNCiAgICAgICAgICAgICAgICAgICAga2V5OiBfbGFzdF9rZXksDQogICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlczogX2NvbmZpZy5sYW5ndWFnZXMNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICQoJy5rLW5hdiwgI2stbmF2LWFkZCcpDQogICAgICAgICAgICAgICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbihlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgICAgICAgICAgIGxldCBlbCA9IHRoaXM7DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgX2Nhbl9kaXNjYXJkX2VkaXRvcl9jaGFuZ2VzKA0KICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBfcHJvY2Vzc19rZXlzX25hdihlbCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIF9ub3RpZnlfd2FybmluZygnQWN0aW9uIGNhbmNlbGVkIScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbignY2xpY2snLCAnLmtleS10YWdzJywgZnVuY3Rpb24oZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICBsZXQga2V5ID0gJCh0aGlzKS50ZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gJCh0aGlzKS5hdHRyKCdkYXRhLWtleS1vcmRlcicpOw0KICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgIF9jYW5fZGlzY2FyZF9lZGl0b3JfY2hhbmdlcygNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX3N0cl9lZGl0b3JfY2hhbmdlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmtleS10YWdzJykucmVtb3ZlQ2xhc3MoJ3VrLWJhY2tncm91bmQtbXV0ZWQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnW2RhdGEta2V5PSInICsga2V5ICsgJyJdJykuYWRkQ2xhc3MoJ3VrLWJhY2tncm91bmQtbXV0ZWQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3N0cmluZ3MtY2FyZCIpLmh0bWwoVEMuc3Bpbm5lcl9odG1sKTsNCiAgDQogICAgICAgICAgICAgICAgICAgICAgICAgIF91cGRhdGVfc3RyaW5nX2VkaXRvcihrZXkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBfbGFzdF9rZXkgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIF9rZXlfb3JkZXJfcG9pbnRlciA9IGluZGV4Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICBfdXBkYXRlX2tleXNfYmFkZ2VzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBfbm90aWZ5X3dhcm5pbmcoJ0FjdGlvbiBjYW5jZWxlZCEnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbignZm9jdXMnLCAnLnN0ci1lZCcsIGZ1bmN0aW9uKGUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZighX3N0cl9lZGl0b3JfY2hhbmdlZCkNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfZWRpdG9yX2NoYW5nZV9idWZmZXIgPSAkKHRoaXMpLnZhbCgpOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgfSk7DQogIA0KICANCiAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkNCiAgICAgICAgICAgICAgICAgICAgLm9uKCdrZXl1cCcsICcuc3RyLWVkJywgZnVuY3Rpb24oZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIGlmKF9lZGl0b3JfY2hhbmdlX2J1ZmZlciAhPT0gJCh0aGlzKS52YWwoKSAmJiBfc3RyX2VkaXRvcl9jaGFuZ2VkID09PSBmYWxzZSkNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfc3RyX2VkaXRvcl9jaGFuZ2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIF9lbmFibGVfc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgIA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbignY2xpY2snLCAnI3NlLXN1Ym1pdCcsIGZ1bmN0aW9uKGUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgaWYoX3N0cl9lZGl0b3JfY2hhbmdlZCkNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBfbGFzdF9rZXksDQogICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICANCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zdHItZWQnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuZWFjaChmdW5jdGlvbiggaW5kZXggKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVskKHRoaXMpLmF0dHIoJ2RhdGEtbGFuZycpXSA9ICQodGhpcykudmFsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICANCiAgICAgICAgICAgICAgICAgICAgICAgIF9kb19hamF4KCdhZGRfZGJfdHJhbnNsYXRpb25zJywgZGF0YSxmdW5jdGlvbihyZXN1bHQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIF9ub3RpZnlfc3VjY2VzcygnS2V5ICcgKyBuYW1lICsgJyB0cmFuc2xhdGlvbnMgc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIHRoZSBkYicpDQogICAgICAgICAgICAgICAgICAgICAgICAgIF9zdHJfZWRpdG9yX2NoYW5nZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgX2Rpc2FibGVfc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgDQogICAgICAgICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpDQogICAgICAgICAgICAgICAgICAgIC5vbigna2V5cHJlc3MnLCAnI2FkZC1rZXktaW5wdXQnLCBmdW5jdGlvbihlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IGUud2hpY2g7DQogICAgICAgICAgICAgICAgICAgICAgaWYoa2V5ID09IDEzKSAgLy8gdGhlIGVudGVyIGtleSBjb2RlDQogICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2stbmF2LWFkZCcpLmNsaWNrKCk7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgDQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgfQ0KICANCn0oIHRoaXMsIGpRdWVyeSwgXywgQmFja2JvbmUsICBqU21hcnQsIFVJa2l0LCBUQ19Db25maWcpICk7]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQWxsb3dzIHRoZSBtYW5hZ2VtZW50IG9mIChhbmQgbmF2aWdhdGlvbiB0aHJvdWdoKSBtdWx0aXBsZSBsYW5ndWFnZXMgZm9yIHRoZSBmcm9udGVuZC4nOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJ01hbmFnZSBmcm9udGVuZCBsYW5ndWFnZXMgYW5kIG11bHRpbGluZ3VhbCBiZWhhdmlvcnMuJzsKCiRsYW5nWydhY3RpdmUnXSA9ICdBY3RpdmUnOwoKJGxhbmdbJ2xhbmd1YWdlJ10gPSAnTGFuZ3VhZ2UnOwokbGFuZ1snbGFuZ3VhZ2VzJ10gPSAnTGFuZ3VhZ2VzJzsKJGxhbmdbJ2FkZF9sYW5ndWFnZSddID0gJ0FkZCBsYW5ndWFnZSc7CiRsYW5nWydhZGRfZW50cnknXSA9ICdBZGQgYSBuZXcgbGFuZ3VhZ2UgZW50cnknOwokbGFuZ1snZW50cnknXSA9ICdMYW5ndWFnZSBlbnRyeSc7CiRsYW5nWydlZGl0X2xhbmd1YWdlJ10gPSAnRWRpdCBsYW5ndWFnZSc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydlbnRyeW5hbWUnXSA9ICdFbnRyeSBuYW1lICh1c2VkIHRvIGNhbGwgdGhpcyBsYW5ndWFnZSBlbnRyeSknOwokbGFuZ1snbWVudV9uYW1lJ10gPSAnTWVudSBuYW1lJzsKJGxhbmdbJ2lzb182MzlfMSddID0gJ0lTTyA2MzktMSBDb2RlJzsKJGxhbmdbJ2lzb18zMTY2XzFfYWxwaGFfMiddID0gJ0lTTyAzMTY2LTEtYWxwaGEtMiBjb2RlJzsKJGxhbmdbJ2RvbWFpbiddID0gJ0RvbWFpbic7CiRsYW5nWydsYW5nY29kZSddID0gJ0xhbmd1YWdlIGNvZGUnOwokbGFuZ1snbGFuZ2NvZGVfcHJvbXB0J10gPSAnTGFuZ3VhZ2UgY29kZSAoZWc6IGVuX1VTICknOwokbGFuZ1sncm9vdF9pZCddID0gJ1Jvb3QgcGFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxhbmd1YWdlJzsKJGxhbmdbJ2RlZmF1bHRfaWQnXSA9ICdEZWZhdWx0IHBhZ2UgZm9yIHJlZGlyZWN0aW9uIHRvIHRoaXMgbGFuZ3VhZ2UnOwokbGFuZ1snbGFuZ3NlbGVjdCddID0gJyhvcHRpb25hbCkgQXV0by1maWxsIGZvciB0aGUgZm9sbG93aW5nIGxhbmd1YWdlOic7CiRsYW5nWydpc2RlZmF1bHQnXSA9ICdEZWZhdWx0Pyc7CiRsYW5nWydhY3Rpb25zJ10gPSAnQWN0aW9ucyc7CiRsYW5nWydhY3RpdmUnXSA9ICdBY3RpdmUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZWxhbmd1YWdlJ10gPSAnUmVhbGx5IGRlbGV0ZSB0aGlzIGxhbmd1YWdlICglcyk/JzsKJGxhbmdbJ3Byb21wdF9kZWxldGVlbnRyeSddID0gJ1JlYWxseSBkZWxldGUgdGhpcyBlbnRyeT8nOwokbGFuZ1snZGVsZXRlX2VudHJ5J10gPSAnRGVsZXRlIHRoaXMgZW50cnknOwoKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snYXBwbHknXSA9ICdBcHBseSc7CgokbGFuZ1snZWRpdF9lbnRyaWVzJ10gPSAnRWRpdCBsYW5ndWFnZSBlbnRyaWVzJzsKCi8vIERNCiRsYW5nWyd0eXBlX0VyaWR1J10gPSAnRXJpZHUnOwokbGFuZ1sndHlwZV9lcmlkdV9sYW5nX3NlbGVjdG9yX21lbnUnXSA9ICdMYW5nIFNlbGVjdG9yIE1lbnUnOwoKCiRsYW5nWyd0ZW1wbGF0ZWhlbHAnXSA9ICc8dWw+CjxsaT4kbGFuZ3VhZ2VzIChhcnJheSBvZiAkbGFuZ3VhZ2UpPC9saT4KPGxpPiRsYW5ndWFnZS0mZ3Q7bmFtZTwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O2NvZGU8L2xpPgo8bGk+JGxhbmd1YWdlLSZndDttZW51X25hbWU8L2xpPgo8bGk+JGxhbmd1YWdlLSZndDtwYWdlX25hbWU8L2xpPgo8bGk+JGxhbmd1YWdlLSZndDtwYWdlX21lbnVfdGV4dDwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O3VybDwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O2lzX2N1cnJlbnQ8L2xpPgo8L3VsPic7CgkKLy8gR0VORVJBTAokbGFuZ1snYWN0aXZhdGUnXSA9ICdBY3RpdmF0ZSc7CiRsYW5nWyd1bmFjdGl2YXRlJ10gPSAnVHVybiBvZmYnOwokbGFuZ1snc2VhcmNodGhpc3RhYmxlJ10gPSAnU2VhcmNoIHRoaXMgdGFibGUgZm9yOic7CiRsYW5nWydZZXMnXSA9ICdZZXMnOwokbGFuZ1snTm8nXSA9ICdObyc7CiRsYW5nWydBY3Rpb25zJ10gPSAnQWN0aW9ucyc7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlcic7CiRsYW5nWydsaXN0dGVtcGxhdGUnXSA9ICdMaXN0IHRlbXBsYXRlIGZvcic7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdNZW51IHRlbXBsYXRlcyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgdGVtcGxhdGUnOwokbGFuZ1sndGVtcGxhdGV2YXJzJ10gPSAnVGVtcGxhdGUgdmFyaWFibGVzJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXQgdGVtcGxhdGUnOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdBZGQgdGVtcGxhdGUnOwokbGFuZ1snZmlsdGVyYnknXSA9ICdGaWx0ZXIgYnknOwokbGFuZ1snc2hvd2FsbCddID0gJ1Nob3cgYWxsIChubyBmaWx0ZXIpJzsKJGxhbmdbJ21lc3NhZ2VfZGVsZXRlZCddID0gJ0VsZW1lbnQgZGVsZXRlZCc7CiRsYW5nWydtZXNzYWdlX21vZGlmaWVkJ10gPSAnTW9kaWZpY2F0aW9uIHNhdmVkJzsKJGxhbmdbJ2Vycm9yX21pc3NnaW52YWx1ZSddID0gJ09uZSBvciBtb3JlIG5lY2Vzc2FyeSB2YWx1ZXMgaGF2ZSBub3QgYmVlbiBlbnRlcmVkLic7CiRsYW5nWydlcnJvcl9hbHJlYWR5ZXhpc3RzJ10gPSAnVGhlcmUgaXMgYWxyZWFkeSBhbiBlbGVtZW50IGJlYXJpbmcgdGhhdCBuYW1lLic7CiRsYW5nWydlcnJvcl9ub3BhcmVudCddID0gJ05vIHBhcmVudCBpcyBkZWZpbmVkISc7CiRsYW5nWydlcnJvcl9ub3Rmb3VuZCddID0gJ1RoZSBpdGVtIGNvdWxkIG5vdCBiZSBmb3VuZC4nOwokbGFuZ1snZXJyb3Jfbm9pdGVtZm91bmQnXSA9ICdObyBpdGVtIGZvdW5kLic7CiRsYW5nWydlcnJvcl9kZW5pZWQnXSA9ICdQZXJtaXNzaW9uIGRlbmllZCc7CiRsYW5nWydnaXZlbmVycm9yJ10gPSAnRXJyb3I6ICc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbGRlbGV0ZSddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcz8nOwokbGFuZ1sncmVzdWx0cyddID0gJ1Jlc3VsdHMnOwokbGFuZ1sndHJhbnNsYXRpb25fY2VudGVyJ10gPSAnRXJpZHU6IFRyYW5zbGF0aW9uIENlbnRlcic7CiRsYW5nWydlbnRyaWVzX2VkaXRvciddID0gJ0VyaWR1OiBFbnRyaWVzIEVkaXRvcic7CgovLyBNT0RVTEUgSU5URVJBQ1RJT04KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlIHN1Y2Nlc3NmdWxseSBhZGRlZC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZC4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0FsbCBvZiB0aGlzIG1vZHVsZVwncyBjb250ZW50IHdpbGwgYmUgbG9zdC4gQ29udGludWU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKCi8vU0VUVElOR1MKJGxhbmdbJ3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1sncHJlZl9hdXRvcmVkaXJlY3RfaG9tZSddID0gJ0F1dG8tcmVkaXJlY3Qgb24gaG9tZSBwYWdlIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlPyo8YnIvPldoZW4gdGhlIHVzZXIgZ2V0cyBvbiBhIGhvbWUgcGFnZSAoYSBwYWdlIGRlZmluZWQgYXMgZGVmYXVsdCBwYWdlIGZvciBhIGxhbmd1YWdlKSwgaWYgaGlzIGJyb3dzZXIgbGFuZ3VhZ2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHBhZ2UgbGFuZ3VhZ2UgaGUgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYWdlLic7CiRsYW5nWydwcmVmX2F1dG9yZWRpcmVjdF9hbGwnXSA9ICdBdXRvLXJlZGlyZWN0IG9uIGFsbCBwYWdlcyBiYXNlZCBvbiByZXF1ZXN0IGxhbmd1YWdlPyo8YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcyknOwokbGFuZ1sncHJlZl9jb29raWVzX2F1dG9yZWRpcmVjdF9ob21lJ10gPSAnQXV0by1yZWRpcmVjdCBvbiBob21lIHBhZ2UgYmFzZWQgb24gbGFuZ3VhZ2Ugc3RvcmVkIGluIGNvb2tpZXM/PGJyLz5JZiB0aGUgdXNlciBoYXMgcHJldmlvdXNseSBuYXZpZ2F0ZWQgdGhlIHNpdGUgaW4gYSBzZWxlY3RlZCBsYW5ndWFnZSBiZWZvcmUsIGhlIHdpbGwgYmUgZm93YXJkZWQgdG8gdGhpcyBsYW5ndWFnZSB1cG9uIHZpc2l0aW5nIGFueSBob21lIHBhZ2UgKGFueSBwYWdlIHRoYXQgaGFzIGJlZW4gc2V0IGFzIGRlZmF1bHQgcGFnZSBmb3IgYSBsYW5ndWFnZSkuJzsKJGxhbmdbJ3ByZWZfY29va2llc19hdXRvcmVkaXJlY3RfYWxsJ10gPSAnQXV0by1yZWRpcmVjdCBvbiBhbGwgcGFnZXMgYmFzZWQgb24gY29va2llcz88YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcyknOwokbGFuZ1sncHJlZl9oaWVyYXJjaHlfcmVkaXJlY3QnXSA9ICdVc2UgaGllcmFyY2h5IGZvciByZWRpcmVjdGlvbj8gKHNlZSBoZWxwIGZvciBtb3JlIGluZm8pPGJyLz5UaGlzIG1lYW5zIHRoYXQgdGhlIHBhZ2Ugc3RydWN0dXJlIG11c3QgYmUgZXhhY3RseSB0aGUgc2FtZSBmb3IgYWxsIGxhbmd1YWdlcy4gSWYgeW91IGRvblwndCB1c2UgdGhlIGhpZXJhcmNoeSwgeW91IHdpbGwgaGF2ZSB0byBzcGVjaWZ5IHRoZSBwYWdlcyBtYW51YWxseS4nOwokbGFuZ1sncHJlZl9kZWZhdWx0X2hpZGUnXSA9ICdIaWRlIG1lbnUgbGluayB3aGVuIHRoZSBhY2NvcmRpbmcgcGFnZSBkb2VzIG5vdCBleGlzdD88YnIvPklmIHRoZSBsYW5ndWFnZSBsaW5rIHNob3VsZCBsZWFkIHRvIGEgcGFnZSB0aGF0IGRvZXMgbm90IGV4aXN0LCBoaWRlIHRoZSBsaW5rIChvdGhlcndpc2UsIHRoZSBsaW5rIHdpbGwgbGVhZCB0byB0aGUgbGFuZ3VhZ2VcJ3MgZGVmYXVsdCBwYWdlKS4nOwokbGFuZ1sncHJlZl9kZWZhdWx0X3RyYW5zbGF0ZSddID0gJ1VzZSBkZWZhdWx0IGxhbmd1YWdlIHdoZXJlIGxhbmd1YWdlLXNwZWNpZmljIGVudHJpZXMgaGF2ZW5cJ3QgYmVlbiBzdXBwbGllZC4nOwokbGFuZ1sncHJlZl9oaWRlX21pc3NpbmdlbnRyaWVzJ10gPSAnSGlkZSBlcnJvciBtZXNzYWdlIGZvciB1bmtub3duIGxhbmd1YWdlIGVudHJpZXMuJzsKJGxhbmdbJ3ByZWZfd3lzaXd5ZyddID0gJ0VuYWJsZSB3eXNpd3lnIGluIGxhbmd1YWdlIGVudHJpZXMuJzsKJGxhbmdbJ3ByZWZfdXNlX3BhZ2VfdGl0bGUnXSA9ICdVc2UgcGFnZSB0aXRsZSBpbiBsYW5ndWFnZSBsaW5rcyAoaW5zdGVhZCBvZiBsYW5ndWFnZSBuYW1lKS4nOwokbGFuZ1sncHJlZl9jdXJyZW50X2xpbmsnXSA9ICdJbiB0aGUgbGFuZ3VhZ2UgbWVudSwgc2hvdyBsaW5rIGZvciBjdXJyZW50IHBhZ2UgKHRoYXQgaXMsIGN1cnJlbnQgbGFuZ3VhZ2UpIHRvby4nOwokbGFuZ1snaGVscF9yZWRpcmVjdGlvbiddID0gJypOb3RlOiBJZiB5b3UgdXNlIHJlZGlyZWN0aW9uIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlLCBtYWtlIHN1cmUgdG8gYWN0aXZhdGUgdGhlIGNvcnJlc3BvbmRpbmcgY29va2llIHJlZGlyZWN0aW9uLCBvdGhlcndpc2UgdGhlIHVzZXJzIHdpbGwgYmUgPGI+Zm9yY2VkPC9iPiB0byB2aWV3IHRoZSBwYWdlIGluIHRoZWlyIGJyb3dzZXIgbGFuZ3VhZ2UuJzsKCgovL1BBUkFNRVRFUlMKJGxhbmdbJ3BoZWxwX2FjdGlvbiddID0gJ1Bvc3NpYmxlIGFjdGlvbnM6IFwnZGVmYXVsdFwnIChmb3IgdHJhbnNsYXRpb25zKSBvciBcJ21lbnVcJy4nOwokbGFuZ1sncGhlbHBfc2hvdyddID0gJ0ZvciB0aGUgbWVudSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYW5ndWFnZXMgdG8gc2hvdyBpbiB0aGUgbWVudSAodXNlIGxhbmd1YWdlIGNvZGUgYW5kIHNlcGFyYXRlIHdpdGggYSBjb21tYSkuIEZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgaG9sZHMgdGhlIGtleSB0byB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuJzsKJGxhbmdbJ3BoZWxwX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbWVudS4nOwokbGFuZ1sncGhlbHBfYXNzaWduJ10gPSAnSW5zdGVhZCBvZiBkaXNwbGF5aW5nIHRoZSByZXN1bHQgaW1tZWRpYXRlbHksIHlvdSBjYW4gYXNzaWduIGl0IHRvIGEgc21hcnR5IHZhcmlhYmxlIHNwZWNpZmllZCB3aXRoIHRoZSBcJ2Fzc2lnblwnIHBhcmFtZXRlci4nOwokbGFuZ1sncGhlbHBfZXZhbCddID0gJ0ZvcmNlIHRoZSBzdHJpbmcgdG8gYmUgcGFyc2VkIGJ5IHNtYXJ0eS4gQW4gYWx0ZXJuYXRpdmUgbWV0aG9kIHRvIHVzaW5nIGV2YWwgaW5zaWRlIHRoZSB0ZW1wbGF0ZXM7JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cgml_importer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNb2R1bGU6IE1BTVMgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyAgQW4gYWRkLW9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdXNlZnVsIGZ1bmN0aW9ucw0KIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQSBmb3JrIG9mOg0KIw0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwNCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbg0KIyBDTVNNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbg0KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KI0VORF9MSUNFTlNFDQoNCm5hbWVzcGFjZSBFcmlkdTsNCg0KDQpjbGFzcyBjZ21sX2ltcG9ydGVyIGV4dGVuZHMgXENNU01TRXh0XG1vZHVsZV9taWdyYXRvcg0Kew0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfY3JlYXRlX2ZvbGRlcigkZm4pDQogIHsNCiAgICBpZiggIUBcbWtkaXIoJGZuLCAwNzc3LCBUUlVFKSAmJiAhXGlzX2RpcigkZm4pICkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIFxzcHJpbnRmKCdEaXJlY3RvcnkgIiVzIiB3YXMgbm90IGNyZWF0ZWQnLCAkZm4pICk7DQogICAgfQ0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9jcmVhdGVfYXNzZXRzX2ZvbGRlcigkYWRkX2JhY2t1cCA9IEZBTFNFKQ0KICB7DQogICAgJGNvbmZpZyA9IFxjbXNfdXRpbHM6OmdldF9jb25maWcoKTsNCiAgICAkZm9sZGVyID0gXGNtc19qb2luX3BhdGgoJGNvbmZpZ1snYXNzZXRzX3BhdGgnXSwgJ0VyaWR1Jyk7DQogIA0KICAgIGlmKCRhZGRfYmFja3VwKQ0KICAgIHsNCiAgICAgICRmb2xkZXIgPSBcY21zX2pvaW5fcGF0aCgkZm9sZGVyLCAnYmFja3VwJyk7DQogICAgfQ0KICAgIA0KICAgICR0aGlzLT5fY3JlYXRlX2ZvbGRlcigkZm9sZGVyKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIHRlc3RzIGZvciB0aGUgZXhpc3RlbmNlIG9mIENHbWwgZXZlbiBpZiBub3QgYWN0aXZlDQogICAqIGFzIGxvbmcgYXMgaXQncyBpbnN0YWxsZWQgdGhlcmUgaXMgZGF0YSB0byBpbXBvcnQNCiAgICoNCiAgICogQHJldHVybiBib29sDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gaGF2ZV9jZ21sKCkgOiBib29sDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9oYXZlX3NvdXJjZSgpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gcnVuKCkgOiBhcnJheQ0KICB7DQogICAgJGNvZGUgPSAwOw0KICAgICRtc2cgID0gJ09LJzsNCiAgICAkZXJyICA9IFskY29kZSwgJG1zZ107DQogICAgJGZhaWwgPSBGQUxTRTsNCiAgICANCiAgICAkcmV0ID0gcGFyZW50OjpydW4oKTsNCiAgDQogICAgdHJ5DQogICAgew0KICAgICAgJHRoaXMtPl9jcmVhdGVfYXNzZXRzX2ZvbGRlcigpOw0KICAgIH0NCiAgICBjYXRjaChcRXhjZXB0aW9uICRlKQ0KICAgIHsNCiAgICAgICRjb2RlID0gJGUtPmdldENvZGUoKTsNCiAgICAgICRtc2cgID0gJGUtPmdldE1lc3NhZ2UoKTsNCiAgICAgICRlcnIgID0gWyRjb2RlLCAkbXNnXTsNCiAgICAgIA0KICAgICAgcmV0dXJuIFtGQUxTRSwgJGVycl07DQogICAgfQ0KICAgIA0KICAgICRjb25maWcgPSBcY21zX3V0aWxzOjpnZXRfY29uZmlnKCk7DQogICAgJHBvc3NpYmxlX3BhdGhzID0gW107DQogICAgDQogICAgaWYoIGlzc2V0KCRjb25maWdbJ0NHbWxfcGF0aCddKSApDQogICAgew0KICAgICAgJHBvc3NpYmxlX3BhdGhzW10gPSAkY29uZmlnWydDR21sX3BhdGgnXTsNCiAgICB9DQogICAgDQogICAgJHBvc3NpYmxlX3BhdGhzW10gPSBcY21zX2pvaW5fcGF0aCgkY29uZmlnWydhc3NldHNfcGF0aCddLCAnQ0dtbCcpOw0KICAgICRwb3NzaWJsZV9wYXRoc1tdID0gXGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10sICdfQ0dtbCcpOw0KICAgIA0KICAgICRmaWxlcyA9IFtdOw0KICAgIA0KICAgIGZvcmVhY2goJHBvc3NpYmxlX3BhdGhzIGFzICRwYXRoKQ0KICAgIHsNCiAgICAgICRwYXR0ZXJuID0gXGNtc19qb2luX3BhdGgoJHBhdGgsICdsYW5nLiouaW5pJyk7DQogICAgICAkZmlsZXMgPSBcYXJyYXlfbWVyZ2UoICRmaWxlcywgXGdsb2IoJHBhdHRlcm4pICk7DQogICAgfQ0KICANCiAgICAkZm9sZGVyID0gXGNtc19qb2luX3BhdGgoJGNvbmZpZ1snYXNzZXRzX3BhdGgnXSwgJ0VyaWR1Jyk7DQogICAgDQogICAgZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQogICAgew0KICAgICAgJGV4dCA9ICcuaW5pJzsNCiAgICAgICRiYXNlID0gXGJhc2VuYW1lKCRmaWxlLCRleHQpOw0KICAgICAgDQogICAgICAkc291cmNlID0gJGZpbGU7DQogICAgICAkdGFyZ2V0ID0gXGNtc19qb2luX3BhdGgoJGZvbGRlciwgJGJhc2UgLiAkZXh0KTsNCiAgICAgIA0KICAgICAgdHJ5DQogICAgICB7DQogIA0KICAgICAgICBpZiggXGlzX2ZpbGUoJHRhcmdldCkgKQ0KICAgICAgICB7DQogICAgICAgICAgJGMgPSAwOw0KICAgICAgICAgICRsID0gMTAwOw0KICANCiAgICAgICAgICAkdGhpcy0+X2NyZWF0ZV9hc3NldHNfZm9sZGVyKFRSVUUpOw0KICANCiAgICAgICAgICAkdGFyZ2V0ID0gXGNtc19qb2luX3BhdGgoJGZvbGRlciwgJ2JhY2t1cCcsICRiYXNlIC4gJGV4dCk7DQogIA0KICAgICAgICAgIHdoaWxlKCBcaXNfZmlsZSgkdGFyZ2V0KSApDQogICAgICAgICAgew0KICAgICAgICAgICAgJHRmbiA9ICRiYXNlIC4nLScgLiBcc3ByaW50ZignJTAzZCcsICRjKyspIC4gJGV4dDsNCiAgICAgICAgICAgICR0YXJnZXQgPSBcY21zX2pvaW5fcGF0aCgkZm9sZGVyLCAnYmFja3VwJywgJHRmbik7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmKCRjID09PSAkbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKFxzcHJpbnRmKCdGYWlsZWQgdG8gY29weSAiJXMiIHRvIEVyaWR1JywgJHNvdXJjZSkgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgDQogIA0KICAgICAgICBAXGNvcHkoJHNvdXJjZSwgJHRhcmdldCk7DQogICAgICANCiAgICAgIH0NCiAgICAgIGNhdGNoKFxFeGNlcHRpb24gJGUpDQogICAgICB7DQogICAgICAgICRjb2RlID0gJGUtPmdldENvZGUoKTsNCiAgICAgICAgJG1zZyAgPSAkZS0+Z2V0TWVzc2FnZSgpOw0KICAgICAgICAkZXJyICA9IFskY29kZSwgJG1zZ107DQoNCiAgICAgICAgcmV0dXJuIFtGQUxTRSwgJGVycl07DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogICAgcmV0dXJuIFtUUlVFLCAkZXJyXTsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiogRXJpZHUgY29uZmlnIGNsYXNzCiogQSBjb252ZW5pZW5jZSBjbGFzcyB0byBjZW50cmFsaXplCiogYWxsIENvbmZpZyB2YWx1ZXMgaW4gb25lIEFycmF5QWNjZXNzIHR5cGUgb2JqZWN0CiogCiogQGF1dGhvciBKbyBNb3JnIChGZXJuYW5kbyBNb3JnYWRvKQoqIEB2ZXJzaW9uIDEuMAoqLwpuYW1lc3BhY2UgRXJpZHU7CgpjbGFzcyBjb25maWcgaW1wbGVtZW50cyBcQXJyYXlBY2Nlc3MKewogIAogIC8qKgogICogQGFjY2VzcyBwcml2YXRlCiAgICogQHZhciBhcnJheQogICAqLwogIHByaXZhdGUgc3RhdGljIGFycmF5ICRfZGF0YSA9IFtdOwogICAKICAvKioKICAqIFRoZSBpbnN0YW5jZQogICogQGFjY2VzcyBwcml2YXRlCiAgKi8KICBwcml2YXRlIHN0YXRpYyBjb25maWcgJF9pbnN0YW5jZTsKICAKICAvKioKICAqIENNU01TIG93biBjb25maWcKICAqIEBhY2Nlc3MgcHJpdmF0ZQogICovCiAgLyoqCiAgICogQHZhciBcY21zX2NvbmZpZwogICAqLwogIHByaXZhdGUgc3RhdGljIFxjbXNfY29uZmlnICRfQ01TTVNfQ0ZHOwogIAogIC8qKgogICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGl0IGJlaW5nIGNyZWF0ZWQgZGlyZWN0bHkKICAqIEBhY2Nlc3MgcHJpdmF0ZQogICovCiAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe30KICAKICAvKioKICAgKiBHZXRJbnN0YW5jZSBtZXRob2QgdXNlZCB0byBhY2Nlc3MgdGhlIG9iamVjdAogICAqCiAgICogQGFjY2VzcyBwdWJsaWMKICAgKiBAcmV0dXJuIFxFcmlkdVxjb25maWcKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldEluc3RhbmNlKCkKICB7CiAgICBpZiggIWlzc2V0KHNlbGY6OiRfaW5zdGFuY2UpICkKICAgIHsKICAgICAgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyBzZWxmOwogICAgICBzZWxmOjokX0NNU01TX0NGRyA9IFxjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgJG1vZHVsZV9wYXRoID0gZGlybmFtZShfX0ZJTEVfXywgMik7CiAgICAgICRmaWxlID0gXGNtc19qb2luX3BhdGgoJG1vZHVsZV9wYXRoLCAnZGF0YScsICdjZmcuaW5jJyk7CiAgICAgIAogICAgICBpZiggXGZpbGVfZXhpc3RzKCRmaWxlKSApCiAgICAgIHsKICAgICAgICBpbmNsdWRlKCRmaWxlKTsKICAgICAgICAvKiogQHZhciBhcnJheSAkY2ZnIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8KICAgICAgICBzZWxmOjokX2RhdGEgPSAkY2ZnID8/IFtdOwogICAgICB9CiAgICAgIAogICAgICBzZWxmOjokX2RhdGFbJ21vZHVsZV9wYXRoJ10gPSAkbW9kdWxlX3BhdGg7CiAgICB9CiAgICAKICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOwogIH0KICAKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBleGlzdHMoJGtleSkgOiBib29sCiAgewogICAgcmV0dXJuIHNlbGY6Om9mZnNldEV4aXN0cygka2V5KTsKICB9CiAgCiAgLyoqCiAgICogcHJldmVudCBjbG9uaW5nIG9mIHRoZSBvYmplY3Q6IGlzc3VlcyBhbiBFX1VTRVJfRVJST1IgaWYgdGhpcyBpcyBhdHRlbXB0ZWQKICAgKgogICAqIEB0aHJvd3MgXFJ1bnRpbWVFeGNlcHRpb24KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX19jbG9uZSgpCiAgewogICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdDbG9uaW5nIHRoZSBDb25maWcgaXMgbm90IHBlcm1pdHRlZCcpOwogIH0KICAKICAvKioKICAgKiBHZXQgYSBkYXRhIGJ5IGtleQogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUga2V5IGRhdGEgdG8gcmV0cmlldmUKICAgKgogICAqIEBhY2Nlc3MgcHVibGljCiAgICogQHJldHVybiBib29sfG1peGVkfHN0cmluZ3x2b2lkfG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gJl9fZ2V0ICgka2V5KSAKICB7CiAgICBpZiggc2VsZjo6JF9DTVNNU19DRkctPm9mZnNldEV4aXN0cygka2V5KSApCiAgICB7CiAgICAgIHJldHVybiBzZWxmOjokX0NNU01TX0NGR1ska2V5XTsKICAgIH0KICAgIHJldHVybiBzZWxmOjokX2RhdGFbJGtleV07CiAgfQogIAogIC8qKgogICAqIEFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIGRhdGEKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGRhdGEga2V5IHRvIGFzc2lnbiB0aGUgdmFsdWUgdG8KICAgKiBAcGFyYW0gbWl4ZWQgIFRoZSB2YWx1ZSB0byBzZXQKICAgKgogICAqIEBhY2Nlc3MgcHVibGljCiAgICogQHRocm93cyBcUnVudGltZUV4Y2VwdGlvbgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCAkdmFsdWUpIAogIHsKICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignUmVhZCBPbmx5Jyk7CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSBtaXhlZCAka2V5CiAgICoKICAgKiBAcmV0dXJuIGJvb2wKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpIDogYm9vbAogIHsKICAgIHJldHVybiAoIGlzc2V0KHNlbGY6OiRfZGF0YVska2V5XSkgfHwgc2VsZjo6JF9DTVNNU19DRkctPm9mZnNldEV4aXN0cygka2V5KSApOwogIH0KICAKICAvKioKICAgKiBAcGFyYW0gbWl4ZWQgJGtleQogICAqCiAgICogQHJldHVybiBib29sfG1peGVkfHN0cmluZ3x2b2lkfG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpCiAgewogICBpZihzZWxmOjokX0NNU01TX0NGRy0+b2Zmc2V0RXhpc3RzKCRrZXkpKQogICB7CiAgICAgcmV0dXJuIHNlbGY6OiRfQ01TTVNfQ0ZHWyRrZXldOwogICB9CiAgCiAgIHJldHVybiBzZWxmOjokX2RhdGFbJGtleV0gPz8gTlVMTDsKICB9CiAgCiAgLyoqCiAgICogQHBhcmFtIG1peGVkICRrZXkKICAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCiAgICovCiAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGtleSwgJHZhbHVlKSA6IHZvaWQKICAgewogICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignUmVhZCBPbmx5Jyk7CiAgIH0KICAKICAvKioKICAgKiBAcGFyYW0gbWl4ZWQgJGtleQogICAqLwogICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkgOiB2b2lkCiAgIHsKICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1JlYWQgT25seScpOwogICB9CiAgCiAgLyoqCiAgICogQHBhcmFtICRrZXkKICAgKgogICAqIEByZXR1cm4gYm9vbHxtaXhlZHxzdHJpbmd8dm9pZHxudWxsCiAgICovCiAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0KCRrZXkpCiAgewogICAgaWYoIHNlbGY6OiRfQ01TTVNfQ0ZHLT5vZmZzZXRFeGlzdHMoJGtleSkgKQogICAgewogICAgICByZXR1cm4gc2VsZjo6JF9DTVNNU19DRkdbJGtleV07CiAgICB9CiAgICAKICAgIGlmKCBzZWxmOjpleGlzdHMoJGtleSkgKQogICAgewogICAgICByZXR1cm4gc2VsZjo6JF9kYXRhWyRrZXldOwogICAgfQogIH0KICAKICAvKioKICAgKiBAcGFyYW0gJGtleQogICAqIEBwYXJhbSAkdmFsdWUKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldCgka2V5LCAkdmFsdWUpIDogdm9pZAogIHsKICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignUmVhZCBPbmx5Jyk7CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSAka2V5CiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlcmFzZSgka2V5KSA6IHZvaWQKICB7CiAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1JlYWQgT25seScpOwogIH0KfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.db_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgRXJpZHU7DQoNCg0KZmluYWwgY2xhc3MgZGJfb3BzDQp7DQogIHVzZSBcQ01TTVNFeHRcQ29yZVxUU2luZ2xldG9uOw0KICBwcml2YXRlICRfZGI7DQogIHByaXZhdGUgJF9tb2Q7DQogIHByaXZhdGUgJF90YWJsZXMgPSBbXTsNCiAgDQogIC8qKg0KICAgKiBwcm90ZWN0ZWQgbWV0aG9kcw0KICAgKi8NCiAgDQogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQogIHsNCiAgICAkdGhpcy0+X2RiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogICAgJHRoaXMtPl9tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKF9fTkFNRVNQQUNFX18pOw0KICAgICR0aGlzLT5fdGFibGVzWydsYW5ndWFnZXMnXSA9IFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiBcc3RydG9sb3dlcihfX05BTUVTUEFDRV9fKSAuICdfbGFuZ3VhZ2VzJzsNCiAgICAkdGhpcy0+X3RhYmxlc1snbGFuZ2tleXMnXSA9IFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiBcc3RydG9sb3dlcihfX05BTUVTUEFDRV9fKSAuICdfbGFuZ2tleXMnOw0KICAgICR0aGlzLT5fdGFibGVzWydsYW5nZW50cmllcyddID0gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIFxzdHJ0b2xvd2VyKF9fTkFNRVNQQUNFX18pIC4gJ19sYW5nZW50cmllcyc7DQogIH0NCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRfZnVsbF90YWJsZV9uYW1lKCR0YWJsZSkNCiAgew0KICAgIGlmKCBlbXB0eSgkdGFibGUpICkgeyByZXR1cm4gJyc7IH0NCiAgDQogICAgcmV0dXJuICR0aGlzLT5fdGFibGVzWyR0YWJsZV0gPz8gJyc7DQogIH0NCiAgDQogIC8qKg0KICAgKiBMYW5ndWFnZXMNCiAgICoNCiAgICogQHBhcmFtIGJvb2wgJGluY2x1ZGVfaW5hY3RpdmUNCiAgICoNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2xhbmd1YWdlc19mcm9tX2RiKCRpbmNsdWRlX2luYWN0aXZlID0gRkFMU0UpDQogIHsNCiAgICAkcSA9ICdTRUxFQ1QgKiBGUk9NICcNCiAgICAgICAgICAgICAuICR0aGlzLT5fdGFibGVzWydsYW5ndWFnZXMnXQ0KICAgICAgICAgICAgIC4gJyAnDQogICAgICAgICAgICAgLiAoICRpbmNsdWRlX2luYWN0aXZlID8gJycgOiAnV0hFUkUgYWN0aXZlID0gMScpIC4gJyBPUkRFUiBCWSBpdGVtX29yZGVyJzsNCiAgICANCiAgICAkciA9ICR0aGlzLT5fZGItPkdldEFsbCgkcSk7DQogICAgDQogICAgaWYoRkFMU0UgPT09ICRyKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbiggJHRoaXMtPl9kYi0+RXJyb3JNc2coKSApOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHI7DQogIH0NCiAgDQogIC8qKg0KICAgKiBLZXlzIG1ldGhvZHMNCiAgICovDQogIA0KICAvKioNCiAgICogQHBhcmFtICRrZXkNCiAgICoNCiAgICogQHJldHVybiBpbnQNCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnRfa2V5KCRrZXkpDQogIHsNCiAgICAkcSA9ICcNCiAgICAgICAgICBJTlNFUlQgSU5UTyAnIC4gJHRoaXMtPl90YWJsZXNbJ2xhbmdrZXlzJ10gLiAnDQogICAgICAgICAgKGNhcHRpb24pDQogICAgICAgICAgVkFMVUVTICg/KQ0KICAgICc7DQogICAgDQogICAgJHBhcmFtcyA9IFsgJGtleVsnY2FwdGlvbiddIF07DQogICAgDQogICAgJHIgPSAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxLCAkcGFyYW1zKTsNCiAgICANCiAgICBpZigkcikNCiAgICB7DQogICAgICByZXR1cm4gJHRoaXMtPl9kYi0+SW5zZXJ0X0lEKCk7DQogICAgfQ0KICAgIA0KICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCAkdGhpcy0+X2RiLT5FcnJvck1zZygpICk7DQogIH0NCiAgDQoNCiAgcHJpdmF0ZSBmdW5jdGlvbiBfdXBkYXRlX2tleSgka2V5KQ0KICB7DQogICAgJHEgPSAnDQogICAgICAgICAgVVBEQVRFICcgLiAkdGhpcy0+X3RhYmxlc1snbGFuZ2tleXMnXSAuICcNCiAgICAgICAgICBTRVQNCiAgICAgICAgICAgIGNhcHRpb24gPT8NCiAgICAgICAgICBXSEVSRQ0KICAgICAgICAgICAgaWQ9Pw0KICAgICc7DQogICAgDQogICAgJHBhcmFtcyA9IFsNCiAgICAgICRrZXlbJ2NhcHRpb24nXSwNCiAgICAgICRrZXlbJ2lkJ10NCiAgICBdOw0KICAgIA0KICAgICRyID0gJHRoaXMtPl9kYi0+RXhlY3V0ZSgkcSwgJHBhcmFtcyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJGlkDQogICAqDQogICAqIEByZXR1cm4gYXJyYXkNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX3NlbGVjdF9rZXlfYnlfaWQoJGlkKQ0KICB7DQogICAgJHEgPSAnDQogICAgICAgICAgU0VMRUNUICogRlJPTSAnIC4gJHRoaXMtPl90YWJsZXNbJ2xhbmdrZXlzJ10gLiAnDQogICAgICAgICAgV0hFUkUNCiAgICAgICAgICAgIGlkPT8NCiAgICAnOw0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+X2RiLT5HZXRSb3coJHEsIFskaWRdKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZGVsZXRlX2tleV9ieV9pZCgkaWQpDQogIHsNCiAgICAkcSA9ICcNCiAgICAgICAgICBERUxFVEUgRlJPTSAnIC4gJHRoaXMtPl90YWJsZXNbJ2xhbmdrZXlzJ10gLiAnDQogICAgICAgICAgV0hFUkUNCiAgICAgICAgICAgIGlkPT87DQogICAgJzsNCiAgDQogICAgcmV0dXJuICR0aGlzLT5fZGItPkV4ZWN1dGUoJHEsIFskaWRdKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfa2V5X2V4aXN0c19ieV9pZCgkaWQpDQogIHsNCiAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5fc2VsZWN0X2tleSgkaWQpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICRpZA0KICAgKg0KICAgKiBAcmV0dXJuIGFycmF5DQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9zZWxlY3Rfa2V5X2J5X2NhcHRpb24oJGNhcHRpb24pDQogIHsNCiAgICAkcSA9ICcNCiAgICAgICAgICBTRUxFQ1QgKiBGUk9NICcgLiAkdGhpcy0+X3RhYmxlc1snbGFuZ2tleXMnXSAuICcNCiAgICAgICAgICBXSEVSRQ0KICAgICAgICAgICAgY2FwdGlvbj0/DQogICAgJzsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9kYi0+R2V0Um93KCRxLCBbJGNhcHRpb25dKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZGVsZXRlX2tleV9ieV9jYXB0aW9uKCRjYXB0aW9uKQ0KICB7DQogICAgJHEgPSAnDQogICAgICAgICAgREVMRVRFIEZST00gJyAuICR0aGlzLT5fdGFibGVzWydsYW5na2V5cyddIC4gJw0KICAgICAgICAgIFdIRVJFDQogICAgICAgICAgICBjYXB0aW9uPT87DQogICAgJzsNCiAgDQogICAgcmV0dXJuICR0aGlzLT5fZGItPkV4ZWN1dGUoJHEsIFskY2FwdGlvbl0pOw0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9rZXlfZXhpc3RzX2J5X2NhcHRpb24oJGNhcHRpb24pDQogIHsNCiAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5fc2VsZWN0X2tleV9ieV9jYXB0aW9uKCRjYXB0aW9uKTsNCiAgfQ0KICANCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX3NlbGVjdF9rZXlzKCkNCiAgew0KICAgICRxID0gJw0KICAgICAgICAgICAgU0VMRUNUICogRlJPTSAnIC4gJHRoaXMtPl90YWJsZXNbJ2xhbmdrZXlzJ10gLiAnDQogICAgJzsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9kYi0+R2V0QWxsKCRxKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIHB1YmxpYyBtZXRob2RzDQogICAqLw0KICANCiAgDQogIC8qKg0KICAgKiBtaXNjIHRvb2xzDQogICAqLw0KICANCiAgLyoqDQogICAqIHJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHRhYmxlDQogICAqDQogICAqIEBwYXJhbSBtaXhlZCAkdGFibGVuYW1lDQogICAqIEBwYXJhbSBtaXhlZCAkd2hhdA0KICAgKiBAcGFyYW0gbWl4ZWQgJHdoZXJlDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBjb3VudF9mcm9tX2RiKCR0YWJsZW5hbWUgPSAnJywgJHdoYXQgPSAnaWQnLCAkd2hlcmUgPSBbXSkNCiAgew0KDQogICAgJHdoZXJlX3N0cmluZyA9ICcnOw0KICAgICR3aGVyZV92YWx1ZXMgPSBbXTsNCiAgICANCiAgICBmb3JlYWNoKCR3aGVyZSBhcyAka2V5ID0+ICR2YWx1ZSkNCiAgICB7DQogICAgICAkd2hlcmVfc3RyaW5nIC49ICgnJyA9PT0gJHdoZXJlX3N0cmluZyA/ICcgV0hFUkUgJyA6ICcgQU5EICcpIC4gJGtleSAuICc9Pyc7DQogICAgICAkd2hlcmVfdmFsdWVzW10gPSAkdmFsdWU7DQogICAgfQ0KICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgQ09VTlQoJyAgLiAkd2hhdCAgLiAnKSBjb3VudCBGUk9NICcNCiAgICAgICAgICAgICAuICR0aGlzLT5fZ2V0X2Z1bGxfdGFibGVfbmFtZSgkdGFibGVuYW1lKQ0KICAgICAgICAgICAgIC4gJHdoZXJlX3N0cmluZzsNCiAgICANCiAgICAkZGJyZXN1bHQgPSAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgJHdoZXJlX3ZhbHVlcyk7DQogICAgDQogICAgaWYgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQ0KICAgIHsNCiAgICAgIHJldHVybiAkcm93Wydjb3VudCddOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gMDsNCiAgfQ0KICANCiAgLyoqDQogICAqIGxhbmcgZGIgb3BlcmF0aW9ucw0KICAgKi8NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFuZ3NfZnJvbV9kYigkaW5jbHVkZV9pbmFjdGl2ZSA9IEZBTFNFKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fbGFuZ3VhZ2VzX2Zyb21fZGIoJGluY2x1ZGVfaW5hY3RpdmUpOw0KICB9DQogIA0KICANCiAgLyoqDQogICAqIGtleXMgbWV0aG9kcw0KICAgKi8NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBzYXZlX2tleSgka2V5KQ0KICB7DQogICAgaWYoJGtleVsnaWQnXSA8IDEpDQogICAgew0KICAgICAgJGlkID0gJHRoaXMtPl9pbnNlcnRfa2V5KCRrZXkpOw0KICAgICAgDQogICAgICBpZigkaWQpDQogICAgICB7DQogICAgICAgICRrZXlbJ2lkJ10gPSAkaWQ7DQogICAgICB9DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkdGhpcy0+X3VwZGF0ZV9rZXkoJGtleSk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAka2V5Ow0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9rZXlfYnlfaWQoJGlkKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fc2VsZWN0X2tleV9ieV9pZCgkaWQpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9rZXlfYnlfY2FwdGlvbigkY2FwdGlvbikNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X3NlbGVjdF9rZXlfYnlfY2FwdGlvbigkY2FwdGlvbik7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJGlkDQogICAqDQogICAqIEByZXR1cm4gYm9vbA0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIGtleV9leGlzdHNfYnlfaWQoJGlkKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fa2V5X2V4aXN0c19ieV9pZCgkaWQpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICRjYXB0aW9uDQogICAqDQogICAqIEByZXR1cm4gYm9vbA0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIGtleV9leGlzdHNfYnlfY2FwdGlvbigkY2FwdGlvbikNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2tleV9leGlzdHNfYnlfY2FwdGlvbigkY2FwdGlvbik7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJGlkDQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfa2V5X2J5X2lkKCRpZCkNCiAgew0KICAgICR0aGlzLT5fZGVsZXRlX2tleV9ieV9pZCgkaWQpOw0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkaWQNCiAgICoNCiAgICogQHJldHVybiAkdGhpcw0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9rZXlfYnlfY2FwdGlvbigkY2FwdGlvbikNCiAgew0KICAgICR0aGlzLT5fZGVsZXRlX2tleV9ieV9jYXB0aW9uKCRjYXB0aW9uKTsNCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBnZXRfa2V5cygpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9zZWxlY3Rfa2V5cygpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9lbnRyeV9ieV9rZXlfaWQoJGtleV9pZCkNCiAgew0KICAgICRxID0gJ1NFTEVDVCAqIEZST00gJw0KICAgICAgLiAkdGhpcy0+X3RhYmxlc1snbGFuZ2VudHJpZXMnXQ0KICAgICAgLiAnIFdIRVJFIHN0cmluZ2lkID0gPyc7DQogIA0KICAgICRyID0gJHRoaXMtPl9kYi0+R2V0QWxsKCRxLCBbJGtleV9pZF0pOw0KICANCiAgICBpZiggMCAhPT0gJHRoaXMtPl9kYi0+RXJyb3JObygpICkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oICR0aGlzLT5fZGItPkVycm9yTXNnKCkgKTsNCiAgICB9DQogIA0KICAgIHJldHVybiAkcjsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldF9lbnRyeV9mdWxsKCRrZXlfaWQsICRsYW5nX2NvZGUsICR0eHQpDQogIHsNCiAgICAkcSA9ICdTRUxFQ1QgKiBGUk9NICcNCiAgICAgICAgIC4gJHRoaXMtPl90YWJsZXNbJ2xhbmdlbnRyaWVzJ10NCiAgICAgICAgIC4gJyBXSEVSRSBzdHJpbmdpZCA9ID8gYW5kIGxhbmdjb2RlID0gPyBhbmQgdmFsdWUgPSA/JzsNCiAgICANCiAgICAkciA9ICR0aGlzLT5fZGItPkdldFJvdygkcSwgWyRrZXlfaWQsICRsYW5nX2NvZGUsICR0eHRdKTsNCiAgICANCiAgICBpZiggMCAhPT0gJHRoaXMtPl9kYi0+RXJyb3JObygpICkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oICR0aGlzLT5fZGItPkVycm9yTXNnKCkgKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRyOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FsbF9lbnRyaWVzKCkNCiAgew0KICAgICRxID0gJ1NFTEVDVCAqIEZST00gJw0KICAgICAgICAgLiAkdGhpcy0+X3RhYmxlc1snbGFuZ2VudHJpZXMnXTsNCiAgDQogICAgJHIgPSAkdGhpcy0+X2RiLT5HZXRBbGwoJHEpOw0KICANCiAgICBpZiggMCAhPT0gJHRoaXMtPl9kYi0+RXJyb3JObygpICkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oICR0aGlzLT5fZGItPkVycm9yTXNnKCkgKTsNCiAgICB9DQogIA0KICAgIHJldHVybiAkcjsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIHJlcGxhY2Vfa2V5X2VudHJpZXMoJGtleV9lbnRyaWVzKQ0KICB7DQogICAgDQogICAgaWYoIFxpc19hKCRrZXlfZW50cmllcywgXEVyaWR1XGxhbmdfa2V5OjpjbGFzcykgKQ0KICAgIHsNCiAgICAgIGlmKGlzc2V0KCRrZXlfZW50cmllc1snZW50cmllcyddKSApDQogICAgICB7DQogICAgICAgIA0KICAgICAgICBmb3JlYWNoKCRrZXlfZW50cmllcy0+ZW50cmllcyBhcyAkayA9PiAkb25lKQ0KICAgICAgICB7DQogICAgICAgICAgJGxhbmcgPSBsYW5ndWFnZXM6OkdldExhbmd1YWdlRnJvbUxhbmdDb2RlKCRrKTsNCiAgICAgICAgICAkcCA9IFsNCiAgICAgICAgICAgICAgICAgICRvbmVbJ2lkJ10sDQogICAgICAgICAgICAgICAgICAka2V5X2VudHJpZXNbJ2lkJ10sDQogICAgICAgICAgICAgICAgICAkaywNCiAgICAgICAgICAgICAgICAgICRsYW5nLT5nZXRfaWQoKSwNCiAgICAgICAgICAgICAgICAgICRvbmVbJ3ZhbHVlJ10NCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgIA0KICAgICAgICAgICRxID0gJ1JFUExBQ0UgSU5UTyAnOw0KICAgICAgICAgICRxIC49ICR0aGlzLT5fdGFibGVzWydsYW5nZW50cmllcyddOw0KICAgICAgICAgICRxIC49ICcgKGlkLHN0cmluZ2lkLGxhbmdjb2RlLGxhbmdpZCx2YWx1ZSkgJzsNCiAgICAgICAgICAkcSAuPSAnIFZBTFVFUyAoPyw/LD8sPyw/KSAnOw0KICAgICAgICAgIA0KICAgICAgICAgICR0aGlzLT5fZGItPkV4ZWN1dGUoJHEsICRwKTsNCiAgICAgICAgICANCiAgDQogICAgICAgICAgaWYoIDAgIT09ICR0aGlzLT5fZGItPkVycm9yTm8oKSApDQogICAgICAgICAgew0KICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCAkdGhpcy0+X2RiLT5FcnJvck1zZygpICk7DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICB9DQoNCiAgICAgIH0NCiAgICB9DQogICAgDQogIH0NCiAgDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.entries_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgRXJpZHU7DQoNCnVzZSBDTVNNU0V4dFxjb3JlXEFTaW5nbGV0b247DQoNCmZpbmFsIGNsYXNzIGVudHJpZXNfb3BzDQp7DQogIHVzZSBcQ01TTVNFeHRcQ29yZVxUU2luZ2xldG9uOw0KICBwcml2YXRlIHN0YXRpYyAkX2VudHJpZXMgPSBbXTsNCiAgcHJpdmF0ZSAkX2RiOw0KICANCiAgLyoqDQogICAqIGVudHJpZXNfb3BzIGNvbnN0cnVjdG9yLg0KICAgKi8NCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkNCiAgew0KICAgICR0aGlzLT5fZGIgPSBcY21zbXMoKS0+R2V0RGIoKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfbG9hZF9hbGwoKQ0KICB7DQogIA0KICAgICRsYW5ncyA9IFtdOw0KICANCiAgICBmb3JlYWNoKGxhbmd1YWdlczo6Z2V0bGFuZ3VhZ2VzKCkgYXMgJG9uZSkNCiAgICB7DQogICAgICAkbGFuZ3NbJG9uZS0+Z2V0X2lkKCldID0gJG9uZS0+Z2V0X2xhbmdjb2RlKCk7DQogICAgfQ0KICAgIA0KICAgICRxID0gJ1NFTEVDVCBpZCwgY2FwdGlvbiBGUk9NICcgLiBcY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMgT1JERVIgQlkgY2FwdGlvbic7DQogIA0KICAgICRrZXlzX2xpc3QgPSAkdGhpcy0+X2RiLT5HZXRBbGwoJHEpOw0KICAgIA0KICAgIGZvcmVhY2goJGtleXNfbGlzdCBhcyAkb25lKQ0KICAgIHsNCiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRrID0+ICR2KQ0KICAgICAgew0KICAgICAgICBzZWxmOjokX2VudHJpZXNbICRvbmVbJ2NhcHRpb24nXSBdWyR2XT0gJyc7DQogICAgICB9DQogICAgfQ0KICANCiAgICAkcSA9ICdTRUxFQ1QgbGFuZ2tleXMuaWQgaWQsIGxhbmdrZXlzLmNhcHRpb24gY2FwdGlvbiwgbGFuZ2VudHJpZXMubGFuZ2lkLCBsYW5nZW50cmllcy52YWx1ZSBGUk9NICcNCiAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMgbGFuZ2tleXMgTEVGVCBKT0lOICcNCiAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgbGFuZ2VudHJpZXMgT04gbGFuZ2tleXMuaWQgPSBsYW5nZW50cmllcy5zdHJpbmdpZCBPUkRFUiBCWSBsYW5nZW50cmllcy5pZCAnOw0KICANCiAgICAkdmFsdWVzID0gJHRoaXMtPl9kYi0+R2V0QWxsKCRxKTsNCiAgICANCiAgICBmb3JlYWNoKCR2YWx1ZXMgYXMgJG9uZSkNCiAgICB7DQogICAgICBpZiggaXNzZXQoJG9uZVsnbGFuZ2lkJ10pICkNCiAgICAgIHsNCiAgICAgICAgc2VsZjo6JF9lbnRyaWVzWyAkb25lWydjYXB0aW9uJ10gXSBbICRsYW5nc1sgJG9uZVsnbGFuZ2lkJ10gXSBdPSAkb25lWyd2YWx1ZSddOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRfZW50cmllc19ieV9sYW5nKCRsYW5nX2lkID0gMCkNCiAgew0KICAgICRlbnRyaWVzID0gbmV3IFxFcmlkdVxsYW5nX2VudHJpZXMoKTsgLy8gb3Igc3RyaW5ncw0KICAgICRsYW5nX2xpc3QgPSBuZXcgXEVyaWR1XGxhbmdzKCk7DQogICAgDQogICAgaWYoJGxhbmdfaWQpDQogICAgew0KICAgICAgJGxhbmcgPSBsYW5ndWFnZXM6OkdldExhbmd1YWdlRnJvbUlkKCRsYW5nX2lkKTsNCiAgICAgICRsYW5nc1skbGFuZ19pZF0gPSAkbGFuZzsNCiAgICAgICRlbnRyaWVzKCAkbGFuZy0+Z2V0X2xhbmdjb2RlKCkgKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICRsYW5ncyA9IFtdOw0KICAgICAgDQogICAgICBmb3JlYWNoKGxhbmd1YWdlczo6Z2V0bGFuZ3VhZ2VzKCkgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgJGxhbmdzWyRvbmUtPmdldF9pZCgpXSA9ICRvbmU7DQogICAgICAgICRlbnRyaWVzKCAkb25lLT5nZXRfbGFuZ2NvZGUoKSApOw0KICAgICAgfQ0KICAgICAgDQogICAgfQ0KICAgIA0KICAgICRxID0gJ1NFTEVDVCBpZCwgY2FwdGlvbiBGUk9NICcgLiBcY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAgICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzJzsNCiAgDQogICAgJGtleXNfbGlzdCA9ICR0aGlzLT5fZGItPkdldEFsbCgkcSk7DQogICAgDQogICAgJGtleXNfZW50cmllcyA9IG5ldyBcRXJpZHVcbGFuZ19lbnRyeSgpOw0KICAgIA0KICAgIGZvcmVhY2goJGtleXNfbGlzdCBhcyAkb25lKQ0KICAgIHsNCiAgICAgICRrZXkgPSBuZXcgbGFuZ19rZXkoKTsNCiAgICAgICRrZXktPkZyb21BcnJheSgkb25lKTsNCiAgICAgIA0KICAgICAgJGtleXNbJGtleS0+aWRdID0gJGtleTsNCiAgDQogICAgICAka2V5c19lbnRyaWVzKCRrZXktPmNhcHRpb24pOw0KICAgICAgDQogICAgICBmb3JlYWNoKCRlbnRyaWVzLT5hcnJheV9rZXlzKCkgYXMgJGFuX2VudHJ5KQ0KICAgICAgew0KICAgICAgICAkZW50cmllc1skYW5fZW50cnldID0gJGtleXNfZW50cmllczsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgJHEgPSAnU0VMRUNUIGxhbmdrZXlzLmlkIGlkLCBsYW5na2V5cy5jYXB0aW9uIGNhcHRpb24sIGxhbmdlbnRyaWVzLmxhbmdpZCwgbGFuZ2VudHJpZXMudmFsdWUgRlJPTSAnDQogICAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMgbGFuZ2tleXMgTEVGVCBKT0lOICcNCiAgICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQ0KICAgICAgICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBsYW5nZW50cmllcyBPTiBsYW5na2V5cy5pZCA9IGxhbmdlbnRyaWVzLnN0cmluZ2lkIE9SREVSIEJZIGxhbmdlbnRyaWVzLmlkICc7DQogICAgDQogICAgDQogICAgaWYoJGxhbmdfaWQpDQogICAgew0KICAgICAgJHEgLj0nIFdIRVJFIGxhbmdlbnRyaWVzLmxhbmdpZD0/JzsNCiAgDQogICAgICAkciA9ICR0aGlzLT5fZGItPkdldEFsbCgkcSwgWyRsYW5nX2lkXSk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkciA9ICR0aGlzLT5fZGItPkdldEFsbCgkcSwgW10pOw0KICAgIH0NCiAgICANCiAgICAkdCA9IFtdOw0KDQogICAgZm9yZWFjaCgkciBhcyAkb25lX2tleSkNCiAgICB7DQogICAgICAkdFsgJGxhbmdzWyAkb25lX2tleVsnbGFuZ2lkJ10gXS0+Z2V0X2xhbmdjb2RlKCkgXVsgJG9uZV9rZXlbJ2NhcHRpb24nXSBdID0gJG9uZV9rZXlbJ3ZhbHVlJ107Ly8NCiAgICB9DQogIA0KICAgICRlbnRyaWVzLT5Gcm9tQXJyYXkoJHQpOw0KDQogICAgcmV0dXJuICRlbnRyaWVzOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2VudHJpZXMoKQ0KICB7DQogICAgaWYoIGVtcHR5KHNlbGY6OiRfZW50cmllcykgKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fbG9hZF9hbGwoKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfZW50cmllczsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldF9rZXlfZW50cmllcygka2V5ID0gJycpDQogIHsNCiAgICBpZiggZW1wdHkoJGtleSkgKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigncGFyYW1ldGVyICRrZXkgY2Fubm90IGJlIGVtcHR5IG9uICcgLiAgX19GVU5DVElPTl9fKTsNCiAgICB9DQogICAgDQogICAgaWYoIGVtcHR5KHNlbGY6OiRfZW50cmllcykgfHwgIWlzc2V0KHNlbGY6OiRfZW50cmllc1ska2V5XSkgKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fbG9hZF9hbGwoKTsNCiAgICB9DQogIA0KICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9lbnRyaWVzWyRrZXldKSApDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdLZXkgJyAuICRrZXkgLiAgJyBkb2VzIG5vdCBleGlzdCEnKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfZW50cmllc1ska2V5XTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldF9rZXlzKCkNCiAgew0KICAgIGlmKCBlbXB0eShzZWxmOjokX2VudHJpZXMpICkNCiAgICB7DQogICAgICAkdGhpcy0+X2xvYWRfYWxsKCk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBcYXJyYXlfa2V5cyhzZWxmOjokX2VudHJpZXMpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVfa2V5KCRrZXkgPSAnJykNCiAgew0KICAgIGlmKCBlbXB0eSgka2V5KSApDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdFbXB0eSBrZXknKTsNCiAgICB9DQogICAgDQogICAgDQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZW50cnlfZnVsbF9kYXRhKCRsYW5nX2NvZGUsICRrZXkpDQogIHsNCiAgICAkdCA9ICR0aGlzLT5nZXRfa2V5X2VudHJpZXMoJGtleSk7DQogICAgJHRleHQgPSAkdFskbGFuZ19jb2RlXTsNCiAgICAkZGJfb3BzID0gZGJfb3BzOjpnZXRJbnN0YW5jZSgpOw0KICAgICRrID0gJGRiX29wcy0+bG9hZF9rZXlfYnlfY2FwdGlvbigka2V5KTsNCiAgICANCiAgICByZXR1cm4gJGRiX29wcy0+Z2V0X2VudHJ5X2Z1bGwoJGtbJ2lkJ10sICRsYW5nX2NvZGUsICR0ZXh0KTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGlzX3ZhbGlkX2tleV9uYW1lKCRrZXkpDQogIHsNCiAgICAkcGF0dGVybiA9ICcvXlthLXpBLVpdW2EtekEtWjAtOV8tXSokL0QnOw0KICAgIHJldHVybiBccHJlZ19tYXRjaCgkcGF0dGVybiwgJGtleSk7DQogIH0NCiAgDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.EriduHelperFunctions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMQojIEEgZm9yayBvZiBCYWJlbAojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZwojIHNpbmNlIDIwMTYKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUKIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUKIyBhbmQgbWFuYWdlIG11bHRpcGxlIGxhbmd1YWdlIGNvbnRlbnQKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQojIEVyaWR1IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRU5EX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLyoqCiogZGVwcmVjYXRlZDogd2lsbCBiZSByZW1vdmVkLi4uLgoqLwpjbGFzcyBFcmlkdUhlbHBlckZ1bmN0aW9ucwp7CiAgIyBtb3ZlZCB0byBsYW5nX29wcwogIHN0YXRpYyBmdW5jdGlvbiBwbGNyZWF0ZWFsaWFzKCRuYW1lKQogIHsKICAgIC8vIGZpbHRlciBrZXlzIGZvciBsYW5ndWFnZSBlbnRyaWVzCiAgICAvLyBhcyBhIHN1Z2dlc3Rpb24gZnJvbSBBTVQsIHRoZSBmaXJzdCBwYXJ0IGRlYWxzIHdpdGggc21hcnQgcXVvdGVzCiAgICAgJHNlYXJjaCA9IGFycmF5KGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk4KSwKICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk5KSwKICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDljKSwKICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDlkKSwKICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDkzKSwKICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk0KSk7CiAgICAgJG5hbWUgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAiIiwgJG5hbWUpOwogICAgIC8vIHRoZSBzZWNvbmQgcGFydCB1c2VzIHRoZSBjbXMgdmVyc2lvbgogICAgICRhbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJG5hbWUsIGZhbHNlKTsKICAgICByZXR1cm4gJGFsaWFzOwogIH0KfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.eridu_ml_page.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKY2xhc3MgZXJpZHVfbWxfcGFnZSBleHRlbmRzIENvbnRlbnQKewovLyAgcHVibGljIGZ1bmN0aW9uIEZyaWVuZGx5TmFtZSgpCi8vICB7Ci8vICAgIHJldHVybiAnYXNkJzsKLy8gIH0KICAKLy8gIGZ1bmN0aW9uIFNob3coJHBhcmFtID0gJ2NvbnRlbnRfZW4nKQovLyAgewovLyAgICAkcGFyYW0gPSB0cmltKCRwYXJhbSk7Ci8vICAgIGlmKCAhJHBhcmFtICkgJHBhcmFtID0gJ2NvbnRlbnRfZW4nOwovLyAgICAkcGFyYW0gPSBzdHJfcmVwbGFjZSgnICcsJ18nLCRwYXJhbSk7Ci8vCi8vICAgIHJldHVybiAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgkcGFyYW0pOwovLyAgfQovLwp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.eridu_page_alias.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmNsYXNzIGVyaWR1X3BhZ2VfYWxpYXMgZXh0ZW5kcyBDb250ZW50DQp7DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9yZXBsYWNlX3Jvb3QoJHJvb3QsICR0YXJnZXQpDQogIHsNCiAgICAkcm9vdCA9IGV4cGxvZGUoJy4nLCAkcm9vdCk7DQogICAgJHRhcmdldCA9IGV4cGxvZGUoJy4nLCAkdGFyZ2V0KTsNCiAgDQogICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkcm9vdCk7ICRpKyspDQogICAgew0KICAgICAgJHRhcmdldFskaV0gPSAkcm9vdFskaV07DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBpbXBsb2RlKCcuJywgJHRhcmdldCk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBGcmllbmRseU5hbWUoKQ0KICB7DQogICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKS0+TGFuZyhnZXRfY2xhc3MoKSk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBOYW1lKCkNCiAgew0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRtb2QtPmFzc2lnbl9wYWdlX2xhbmcoKTsNCiAgICAgICRjb250ZW50b3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsNCiAgICAgICRhc3NpZ25lZCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2FsaWFzX3RhcmdldCcpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJHJvb3QgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgKS0+SGllcmFyY2h5KCk7DQogICAgICAkb3V0cHV0X3Bvc2l0aW9uID0gJHRoaXMtPl9yZXBsYWNlX3Jvb3QoJHJvb3QsICRhc3NpZ25lZCk7DQogICAgICAkb3V0cHV0X2lkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21IaWVyYXJjaHkoJG91dHB1dF9wb3NpdGlvbik7DQogICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRvdXRwdXRfaWQpOw0KICAgICAgcmV0dXJuICRvdXRwdXQtPk5hbWUoKTsNCiAgICB9DQogIA0KICAgIHJldHVybiBwYXJlbnQ6Ok5hbWUoKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIE1lbnVUZXh0KCkNCiAgew0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UgPSAgXEVyaWR1XGxhbmd1YWdlczo6R2V0UmVxdWVzdExhbmcoKTsNCiAgICAgIFxFcmlkdVxsYW5ndWFnZXM6OlNldEN1cnJlbnRMYW5nKCRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UpOw0KICAgICAgJG1vZC0+Y3VycmVudF9sYW5nY29kZSA9ICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9sYW5nY29kZSgpOw0KICAgICAgJGNvbnRlbnRvcHMgPSBcQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOw0KICAgICAgJGFzc2lnbmVkID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnYWxpYXNfdGFyZ2V0JykgKS0+SGllcmFyY2h5KCk7DQogICAgICAkcm9vdCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJG1vZC0+Y3VycmVudF9sYW5ndWFnZS0+Z2V0X3Jvb3RfaWQoKSApLT5IaWVyYXJjaHkoKTsNCiAgICAgICRvdXRwdXRfcG9zaXRpb24gPSAkdGhpcy0+X3JlcGxhY2Vfcm9vdCgkcm9vdCwgJGFzc2lnbmVkKTsNCiAgICAgICRvdXRwdXRfaWQgPSAkY29udGVudG9wcy0+R2V0UGFnZUlERnJvbUhpZXJhcmNoeSgkb3V0cHV0X3Bvc2l0aW9uKTsNCiAgICAgICRvdXRwdXQgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJG91dHB1dF9pZCk7DQogICAgICByZXR1cm4gJG91dHB1dC0+TWVudVRleHQoKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHBhcmVudDo6TWVudVRleHQoKTsNCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBNZXRhZGF0YSgpDQogIHsNCiAgICBpZiggXGNtc21zKCktPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApDQogICAgew0KICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1Jyk7DQogICAgICAkY29udGVudG9wcyA9IFxDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7DQogICAgICAkYXNzaWduZWQgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdhbGlhc190YXJnZXQnKSApLT5IaWVyYXJjaHkoKTsNCiAgICAgICRyb290ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCAkbW9kLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfcm9vdF9pZCgpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJG91dHB1dF9wb3NpdGlvbiA9ICR0aGlzLT5fcmVwbGFjZV9yb290KCRyb290LCAkYXNzaWduZWQpOw0KICAgICAgJG91dHB1dF9pZCA9ICRjb250ZW50b3BzLT5HZXRQYWdlSURGcm9tSGllcmFyY2h5KCRvdXRwdXRfcG9zaXRpb24pOw0KICAgICAgJG91dHB1dCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkb3V0cHV0X2lkKTsNCiAgICAgIHJldHVybiAkb3V0cHV0LT5NZXRhZGF0YSgpOw0KICAgIH0NCiAgDQogICAgcmV0dXJuIHBhcmVudDo6TWV0YWRhdGEoKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFRpdGxlQXR0cmlidXRlKCkNCiAgew0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRjb250ZW50b3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsNCiAgICAgICRhc3NpZ25lZCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2FsaWFzX3RhcmdldCcpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJHJvb3QgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgKS0+SGllcmFyY2h5KCk7DQogICAgICAkb3V0cHV0X3Bvc2l0aW9uID0gJHRoaXMtPl9yZXBsYWNlX3Jvb3QoJHJvb3QsICRhc3NpZ25lZCk7DQogICAgICAkb3V0cHV0X2lkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21IaWVyYXJjaHkoJG91dHB1dF9wb3NpdGlvbik7DQogICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRvdXRwdXRfaWQpOw0KICAgICAgcmV0dXJuICRvdXRwdXQtPlRpdGxlQXR0cmlidXRlKCk7DQogICAgfQ0KICANCiAgICByZXR1cm4gcGFyZW50OjpUaXRsZUF0dHJpYnV0ZSgpOw0KICB9DQoJDQoJZnVuY3Rpb24gSXNEZWZhdWx0UG9zc2libGUoKQ0KCXsNCgkJcmV0dXJuIFRSVUU7DQoJfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldE1vZGlmaWVkRGF0ZSgpDQogIHsNCiAgICAvLyB0aGlzIHdpbGwgZm9yY2UgdGhlIHRlbXBsYXRlIHRvIGJlIHJlY29tcGlsZWQgb24gZnJvbnRlbmQgcmVxdWVzdHMNCiAgICBpZiggY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgcmV0dXJuIHRpbWUoKTsNCiAgICByZXR1cm4gcGFyZW50OjpHZXRNb2RpZmllZERhdGUoKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFNldFByb3BlcnRpZXMoKQ0KICB7DQogICAgcGFyZW50OjpTZXRQcm9wZXJ0aWVzKCk7DQogICAgDQogICAgJHRoaXMtPkFkZFByb3BlcnR5KCdhbGlhc190YXJnZXQnLCAyLCBzZWxmOjpUQUJfTUFJTik7DQogICAgDQogICAgIyBsb2FkIGFuZCBzaG93IGNvbnRlbnQgYmxvY2tzPyAobWFpbiBvciBjdXN0b20pDQogICAgJHRoaXMtPmRvTG9hZENvbnRlbnRCbG9ja3MgPSBmYWxzZTsNCg0KCSAgI1R1cm4gb2ZmIGNhY2hpbmcNCgkgICR0aGlzLT5tQ2FjaGFibGUgPSBmYWxzZTsNCiAgfQ0KIA0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gZGlzcGxheV9zaW5nbGVfZWxlbWVudCgkb25lLCAkYWRkaW5nKQ0KICB7DQogICAgJGNvbnRlbnRvcHMgPSBcY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCiAgICANCiAgICBzd2l0Y2ggKCRvbmUpIA0KICAgIHsNCiAgICAgIGNhc2UgJ2NvbnRlbnRfZW4nOg0KICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnJywgJycpOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAnYWxpYXNfdGFyZ2V0JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFyZyA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdhbGlhc190YXJnZXQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmllbGQgPSAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJHRoaXMtPm1JZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmcsICdhbGlhc190YXJnZXQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIGFycmF5KCBcbGFuZygndGFyZ2V0JykgLiAnOicgLCAkZmllbGQpOw0KICAgICAgYnJlYWs7DQoNCiAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDo6ZGlzcGxheV9zaW5nbGVfZWxlbWVudCgkb25lLCAkYWRkaW5nKTsNCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBGaWxsUGFyYW1zKCRwYXJhbXMsICRlZGl0aW5nID0gZmFsc2UpDQogIHsNCgkgIGlmIChpc3NldCgkcGFyYW1zKSkNCgkgIHsNCgkJICAkcGFyYW1ldGVycyA9IGFycmF5KCdhbGlhc190YXJnZXQnKTsNCiAgICAgIA0KCQkgIGZvcmVhY2ggKCRwYXJhbWV0ZXJzIGFzICRvbmVwYXJhbSkNCgkJICB7DQoJCQkgIA0KICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1skb25lcGFyYW1dKSkNCgkJCSAgew0KCQkJCSAgJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoJG9uZXBhcmFtLCAkcGFyYW1zWyRvbmVwYXJhbV0pOw0KCQkJICB9DQogICAgICAgIA0KCQkgIH0NCgkgIH0NCiAgICANCgkgIHBhcmVudDo6RmlsbFBhcmFtcygkcGFyYW1zKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gU2hvdygkcGFyYW0gPSAnY29udGVudF9lbicpDQogIHsNCiAgICBpZiAoJHBhcmFtID09ICdjb250ZW50X2VuJykNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRtb2QtPmFzc2lnbl9wYWdlX2xhbmcoKTsNCiAgICAgICRjb250ZW50b3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsNCiAgICAgICRhc3NpZ25lZCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2FsaWFzX3RhcmdldCcpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJHJvb3QgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgKS0+SGllcmFyY2h5KCk7DQogICAgICAkb3V0cHV0X3Bvc2l0aW9uID0gJHRoaXMtPl9yZXBsYWNlX3Jvb3QoJHJvb3QsICRhc3NpZ25lZCk7DQogICAgICAkb3V0cHV0X2lkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21IaWVyYXJjaHkoJG91dHB1dF9wb3NpdGlvbik7DQogICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRvdXRwdXRfaWQpOw0KICAgICAgaWYoICFpc19vYmplY3QoJG91dHB1dCkgKQ0KICAgICAgew0KICAgICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnYWxpYXNfdGFyZ2V0JykgKTsNCiAgICAgIH0NCiAgICAgICRyZXQgPSAkb3V0cHV0LT5TaG93KCRwYXJhbSk7DQogICAgICByZXR1cm4gJHJldDsgIA0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgcmV0dXJuIHBhcmVudDo6U2hvdygkcGFyYW0pOw0KICAgIH0NCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.InstallAssistant.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMjSEVBREVSIyMNCg0KbmFtZXNwYWNlIEVyaWR1Ow0KDQp1c2UgQ21zRXhjZXB0aW9uOw0KdXNlIENtc0xheW91dFRlbXBsYXRlOw0KdXNlIENtc0xheW91dFRlbXBsYXRlVHlwZTsNCnVzZSBFeGNlcHRpb247DQoNCmZpbmFsIGNsYXNzIEluc3RhbGxBc3Npc3RhbnQNCnsNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBJbnN0YWxsKCkgOiBzdHJpbmcNCiAgew0KICAgICRkYiAgID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogICAgJGRpY3QgPSAkZGItPk5ld0RhdGFEaWN0aW9uYXJ5KCk7DQogICAgJG1vZCAgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKF9fTkFNRVNQQUNFX18pOw0KICAgIA0KICAgIC8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQ0KICAgICR0YWJvcHRhcnJheSA9IFsnbXlzcWwnID0+ICdUWVBFPU15SVNBTSddOw0KICAgIA0KICAgIC8vIENyZWF0ZXMgdGhlIGxhbmd1YWdlcyB0YWJsZQ0KICAgICRmbGRzID0gJw0KICBpZCBJIEtFWSBBVVRPLA0KCWxhbmdjb2RlIEMoOCkgS0VZLA0KICBpc29fNjM5XzEgQygyKSwNCiAgaXNvXzMxNjZfMV9hbHBoYV8yIEMoMiksDQoJcm9vdF9pZCBJLA0KCWRlZmF1bHRfaWQgSSwNCgluYW1lIEMoNjQpLA0KCW1lbnVfbmFtZSBDKDY0KSwNCglhY3RpdmUgTCwNCglpdGVtX29yZGVyIEksDQogIGFzc29jaWF0ZWRfZGF0YSBYKDIwMDAwKTsNCgknOw0KICAgIA0KICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgDQogICAgDQogICAgLy8gQ3JlYXRlcyB0aGUgbGFuZ3VhZ2Uga2V5cyB0YWJsZQ0KICAgICRmbGRzID0gJw0KICBpZCBJIEtFWSBBVVRPLA0KCWNhcHRpb24gQygxMjgpDQoJJzsNCiAgICANCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgDQogICAgDQogICAgLy8gQ3JlYXRlcyB0aGUgbGFuZ3VhZ2UgZW50cmllcyB0YWJsZQ0KICAgICRmbGRzID0gJw0KICBpZCBJIEtFWSBBVVRPLA0KCXN0cmluZ2lkIEksDQogIGxhbmdpZCBJIE5PVCBOVUxMLA0KCWxhbmdjb2RlIEMoNSksDQoJdmFsdWUgWEwNCgknOw0KICAgIA0KICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzJywgJGZsZHMsICR0YWJvcHRhcnJheSk7DQogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KICAgIA0KICAgICRtb2QtPkNyZWF0ZVBlcm1pc3Npb24oJ2FkbWluX2VyaWR1JywgJ0VyaWR1OiBhZG1pbicpOw0KICAgICRtb2QtPkNyZWF0ZVBlcm1pc3Npb24oJ3RyYW5zbF9lcmlkdScsICdFcmlkdTogdHJhbnNsYXRlJyk7DQogICAgDQogICAgdHJ5DQogICAgew0KICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7DQogICAgICAkZXJpZHVfbWVudV90ZW1wbGF0ZS0+c2V0X29yaWdpbmF0b3IoJG1vZC0+R2V0TmFtZSgpKTsNCiAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfbmFtZSgnZXJpZHVfbGFuZ19zZWxlY3Rvcl9tZW51Jyk7DQogICAgICAkZXJpZHVfbWVudV90ZW1wbGF0ZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsNCiAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfbGFuZ19jYWxsYmFjaygnRXJpZHU6OnRlbXBsYXRlX2xhbmdfY2FsbGJhY2snKTsNCiAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRXJpZHU6OnJlc2V0X3RlbXBsYXRlX2RlZmF1bHQnKTsNCiAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfaGVscF9jYWxsYmFjaygnRXJpZHU6OnRlbXBsYXRlX2hlbHBfY2FsbGJhY2snKTsNCiAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsNCiAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zYXZlKCk7DQogICAgfQ0KICAgIGNhdGNoKENtc0V4Y2VwdGlvbiAkZSkNCiAgICB7DQogICAgICBcYXVkaXQoJycsICRtb2QtPkdldE5hbWUoKSwgJ0luc3RhbGxhdGlvbiBFcnJvcjogJyAuICRlLT5HZXRNZXNzYWdlKCkpOw0KICAgIH0NCiAgDQogICAgdHJ5DQogICAgew0KICAgICAgJGZuID0gXGNtc19qb2luX3BhdGgoJG1vZC0+R2V0TW9kdWxlUGF0aCgpLCAndGVtcGxhdGVzJywgJ2RlZmF1bHRfbWVudV90bXBsdC50cGwnKTsNCiAgDQogICAgICBpZihcZmlsZV9leGlzdHMoJGZuKSkNCiAgICAgIHsNCiAgICAgICAgJGNvbnRlbnRzID0gQFxmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICANCiAgICAgICAgJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZSgpOw0KICAgICAgICAkdHBsLT5zZXRfbmFtZSgkdHBsOjpnZW5lcmF0ZV91bmlxdWVfbmFtZSgnRXJpZHUgTGFuZ3VhZ2UgTWVudScpKTsNCiAgICAgICAgJHRwbC0+c2V0X293bmVyKFxnZXRfdXNlcmlkKCkpOw0KICAgICAgICAkdHBsLT5zZXRfY29udGVudCgkY29udGVudHMpOw0KICAgICAgICAkdHBsLT5zZXRfdHlwZSgkZXJpZHVfbWVudV90ZW1wbGF0ZSk7DQogICAgICAgICR0cGwtPnNldF90eXBlX2RmbHQoVFJVRSk7DQogICAgICAgICR0cGwtPnNhdmUoKTsNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICBjYXRjaChcQ21zSW52YWxpZERhdGFFeGNlcHRpb24gJGUpDQogICAgew0KICAgICAgcmV0dXJuICRlLT5nZXRNZXNzYWdlKCk7DQogICAgfQ0KICAgIA0KICAgICRtb2RwcmVmcyA9ICRtb2QtPmdldF9tb2RwcmVmcygpOw0KICAgIA0KICAgIGZvcmVhY2goJG1vZHByZWZzIGFzICRvbmVwcmVmKQ0KICAgIHsNCiAgICAgICRtb2QtPlNldFByZWZlcmVuY2UoJG9uZXByZWZbMF0sICRvbmVwcmVmWzFdKTsNCiAgICB9DQogICAgDQogICAgDQogICAgJG1vZC0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ0NvbnRlbnRQcmVDb21waWxlJywgRkFMU0UpOw0KICAgIA0KICAgIC8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KICAgICRtb2QtPkF1ZGl0KDAsICRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkbW9kLT5MYW5nKCdpbnN0YWxsZWQnLCAkbW9kLT5HZXRWZXJzaW9uKCkpKTsNCiAgICANCiAgICByZXR1cm4gJyc7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gVXBncmFkZSgkb2xkX3ZlcnNpb24sICRuZXdfdmVyc2lvbiA9ICcnKSA6IHN0cmluZw0KICB7DQogICAgJGRiICAgPSBcY21zX3V0aWxzOjpnZXRfZGIoKTsNCiAgICAkZGljdCA9ICRkYi0+TmV3RGF0YURpY3Rpb25hcnkoKTsNCiAgICAkbW9kICA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoX19OQU1FU1BBQ0VfXyk7DQogICAgDQogICAgdHJ5DQogICAgew0KICAgICAgc3dpdGNoKCRvbGRfdmVyc2lvbikNCiAgICAgIHsNCiAgICAgICAgY2FzZSAnMS4wLmIuMyc6DQogICAgICAgIGNhc2UgJzEuMC5iLjQnOg0KICAgICAgICAgIA0KICAgICAgICAgICRxID0gJ0FMVEVSIFRBQkxFICcgLiBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBNT0RJRlkgdmFsdWUgVkFSQ0hBUig0MDAwKSc7DQogICAgICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoJHEpOw0KICAgICAgICAgIGlmKCEkcikNCiAgICAgICAgICB7DQogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRkYi0+RXJyb3JNc2coKSk7DQogICAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgY2FzZSAnMS4wJzoNCiAgICAgICAgY2FzZSAnMS4xLmJldGEuMSc6DQogICAgICAgIGNhc2UgJzEuMS5iZXRhLjInOg0KICAgICAgICBjYXNlICcxLjEuYmV0YS4zJzoNCiAgICAgICAgICANCiAgICAgICAgICAkcSA9ICdBTFRFUiBUQUJMRSAnIC4gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzDQogICAgICAgICAgICBBREQgaXNvXzYzOV8xIFZBUkNIQVIoMikgQUZURVIgbGFuZ2NvZGUsDQogICAgICAgICAgICBBREQgaXNvXzMxNjZfMV9hbHBoYV8yIFZBUkNIQVIoMikgQUZURVIgaXNvXzYzOV8xLA0KICAgICAgICAgICAgQUREIGFzc29jaWF0ZWRfZGF0YSBWQVJDSEFSKDIwMDAwKSBBRlRFUiBpdGVtX29yZGVyJzsNCiAgICAgICAgICANCiAgICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7DQogICAgICAgICAgaWYoISRyKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkZGItPkVycm9yTXNnKCkpOw0KICAgICAgICAgIH0NCiAgDQogICAgICAgICRxID0gJ0FMVEVSIFRBQkxFICcgLiBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcw0KICAgICAgICAgICAgQUREIGxhbmdpZCBJTlQgTk9UIE5VTEwgQUZURVIgc3RyaW5naWQnOw0KICANCiAgICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoJHEpOw0KICAgICAgICBpZighJHIpDQogICAgICAgIHsNCiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgfQ0KICAgICAgICAkZGVmYXVsdF9sYW5nY29kZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbGFuZ3VhZ2UnKTsNCiAgICAgICAgJGxhbmcgICAgICAgICAgICAgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpnZXRfbGFuZ3VhZ2VfZGV0YWlscygkZGVmYXVsdF9sYW5nY29kZSk7DQogICAgICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfbGFuZ3VhZ2UnLCAkbGFuZy0+aWQpOw0KICANCiAgICAgICAgIyB3ZSBuZWVkIHRvIHR3ZWFrIGxhbmdlbnRyaWVzDQogICAgICAgICRxID0gJ1NFTEVDVCBsYW5nY29kZSBGUk9NICcgLiBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyc7DQogICAgICAgICRyID0gJGRiLT5HZXRBbGwoJHEpOw0KICAgICAgICBpZighJHIpDQogICAgICAgIHsNCiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgfQ0KICANCiAgICAgICAgJHEgID0gJ1NFTEVDVCBpZCxsYW5nY29kZSBGUk9NICcgLiBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMnOw0KICAgICAgICAkcjIgPSAkZGItPkdldEFsbCgkcSk7DQogICAgICAgIGlmKCEkcjIpDQogICAgICAgIHsNCiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgfQ0KICANCiAgICAgICAgJGxhbmcgPSBbXTsNCiAgDQogICAgICAgIGZvcmVhY2goJHIyIGFzICRsKQ0KICAgICAgICB7DQogICAgICAgICAgJGxhbmdbJGxbJ2xhbmdjb2RlJ11dID0gJGxbJ2lkJ107DQogICAgICAgIH0NCiAgDQogICAgICAgIGZvcmVhY2goJHIgYXMgJG9uZSkNCiAgICAgICAgew0KICAgICAgICAgICRxID0gJ1VQREFURSAnIC4gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgU0VUIGxhbmdpZD0/IFdIRVJFIGxhbmdjb2RlPT8nOw0KICAgICAgICAgICRyID0gJGRiLT5FeGVjdXRlKCRxLCBbJGxhbmdbJG9uZVsnbGFuZ2NvZGUnXV0sICRvbmVbJ2xhbmdjb2RlJ11dKTsNCiAgICAgICAgfQ0KICANCiAgICAgICAgIyBhIHRhYmxlIGxlZnRvdmVyLi4uLg0KICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzX3NlcScpOw0KICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgICAgIA0KICAgICAgICBjYXNlICcxLjEuYmV0YS40JzoNCiAgICAgICAgY2FzZSAnMS4xLmJldGEuNSc6DQogICAgICAgIGNhc2UgJzEuMS5iZXRhLjYnOg0KICAgICAgICAgIA0KICAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlID0gTlVMTDsNCiAgICAgICAgICANCiAgICAgICAgICB0cnkNCiAgICAgICAgICB7DQogICAgICAgICAgICAkZXJpZHVfbWVudV90ZW1wbGF0ZSA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsNCiAgICAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfb3JpZ2luYXRvcigkbW9kLT5HZXROYW1lKCkpOw0KICAgICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9uYW1lKCdlcmlkdV9sYW5nX3NlbGVjdG9yX21lbnUnKTsNCiAgICAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOw0KICAgICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9sYW5nX2NhbGxiYWNrKCdFcmlkdTo6dGVtcGxhdGVfbGFuZ19jYWxsYmFjaycpOw0KICAgICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdFcmlkdTo6cmVzZXRfdGVtcGxhdGVfZGVmYXVsdCcpOw0KICAgICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9oZWxwX2NhbGxiYWNrKCdFcmlkdTo6dGVtcGxhdGVfaGVscF9jYWxsYmFjaycpOw0KICAgICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOw0KICAgICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNhdmUoKTsNCiAgICAgICAgICB9DQogICAgICAgICAgY2F0Y2goQ21zRXhjZXB0aW9uICRlKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgIFxhdWRpdCgnJywgJG1vZC0+R2V0TmFtZSgpLCAnSW5zdGFsbGF0aW9uIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgICRhbGx0ZW1wbGF0ZXMgPSAkbW9kLT5MaXN0VGVtcGxhdGVzKCk7DQogICAgICAgICAgDQogICAgICAgICAgZm9yZWFjaCgkYWxsdGVtcGxhdGVzIGFzICR0cGxuYW1lKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICRjb250ZW50cyA9ICRtb2QtPkdldFRlbXBsYXRlKCR0cGxuYW1lKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYoJGNvbnRlbnRzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICR0cGwgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGUoKTsNCiAgICAgICAgICAgICAgICAkdHBsLT5zZXRfbmFtZSgkdHBsOjpnZW5lcmF0ZV91bmlxdWVfbmFtZSgkdHBsbmFtZSkpOw0KICAgICAgICAgICAgICAgICR0cGwtPnNldF9vd25lcihcZ2V0X3VzZXJpZCgpKTsNCiAgICAgICAgICAgICAgICAkdHBsLT5zZXRfY29udGVudCgkY29udGVudHMpOw0KICAgICAgICAgICAgICAgICR0cGwtPnNldF90eXBlKCRlcmlkdV9tZW51X3RlbXBsYXRlKTsNCiAgICAgICAgICAgICAgICAkdHBsLT5zZXRfdHlwZV9kZmx0KCR0cGxuYW1lID09PSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0dGVtcGxhdGUnLCAnZGVmYXVsdCcpKTsNCiAgICAgICAgICAgICAgICAkdHBsLT5zYXZlKCk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgJG1vZC0+RGVsZXRlVGVtcGxhdGUoJHRwbG5hbWUpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGNhdGNoKFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbiAkZSkNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFxhdWRpdCgnJywgJG1vZC0+R2V0TmFtZSgpLCAnSW5zdGFsbGF0aW9uIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSApOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICBjYXNlICcxLjEuYmV0YS4yMSc6DQogICAgICAgICAgDQogICAgICAgICAgJHEgPSAnQUxURVIgVEFCTEUgJyAuIFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzDQogICAgICAgICAgICBEUk9QIHN0cmluZ2lkJzsNCiAgDQogICAgICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoJHEpOw0KICAgICAgICAgIGlmKCEkcikNCiAgICAgICAgICB7DQogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgICB9DQogIA0KICAgICAgICAgIHNlbGY6Ol9yZXBhaXJfbGFuZ2VudHJpZXNfdGFibGVfMDEoKTsNCiAgDQogICAgICAgICAgJG1vZC0+Q3JlYXRlUGVybWlzc2lvbigndHJhbnNsX2VyaWR1JywgJ0VyaWR1OiB0cmFuc2xhdGUnKTsNCiAgICAgICAgICANCiAgICAgIH0NCiAgICB9DQogICAgY2F0Y2goRXhjZXB0aW9uICRlKQ0KICAgIHsNCiAgICAgICRtb2QtPkF1ZGl0KDAsICRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkZGItPkVycm9yTXNnKCkgKTsNCiAgICAgIA0KICAgICAgcmV0dXJuICRlLT5nZXRNZXNzYWdlKCk7DQogICAgfQ0KICAgIA0KICAgIC8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KICAgICRtb2QtPkF1ZGl0KA0KICAgICAgMCwNCiAgICAgICRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLA0KICAgICAgJG1vZC0+TGFuZyggJ3VwZ3JhZGVkJywgJG1vZC0+R2V0VmVyc2lvbigpICkNCiAgICApOw0KICAgIA0KICAgIHJldHVybiAnJzsNCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBVbmluc3RhbGwoKSA6IHN0cmluZw0KICB7DQogICAgJGRiICAgPSBcY21zX3V0aWxzOjpnZXRfZGIoKTsNCiAgICAkZGljdCA9ICRkYi0+TmV3RGF0YURpY3Rpb25hcnkoKTsNCiAgICAkbW9kICA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoX19OQU1FU1BBQ0VfXyk7DQogICAgDQogICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMnKTsNCiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgDQogICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5na2V5cycpOw0KICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiAgICANCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzJyk7DQogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KICAgIA0KICAgICRtb2QtPkRlbGV0ZVRlbXBsYXRlKCcnLCAkbW9kLT5HZXROYW1lKCkpOw0KICAgIA0KICAgICRtb2QtPlJlbW92ZVBlcm1pc3Npb24oJ2FkbWluX2VyaWR1Jyk7DQogICAgJG1vZC0+UmVtb3ZlUHJlZmVyZW5jZSgpOw0KICAgIA0KICAgIC8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KICAgICRtb2QtPkF1ZGl0KDAsICRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkbW9kLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsNCiAgICANCiAgICByZXR1cm4gJyc7DQogIH0NCiAgDQogIC8qKg0KICAgKiBQcml2YXRlIG1ldGhvZHMNCiAgICovDQogIA0KICAvKioNCiAgICogb2xkIGVudHJpZXMgZWRpdG9yIGFsbG93ZWQgZm9yIE5VTEwgbGFuZ2NvZGUgcm93cw0KICAgKiBuZXcgb25lIHdpbGwgZHVwbGljYXRlIGVudHJpZXMgb24gdXBkYXRlIGlmIGl0IGZpbmRzIE5VTExzDQogICAqLw0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfcmVwYWlyX2xhbmdlbnRyaWVzX3RhYmxlXzAxKCkNCiAgew0KICAgICRkYiAgID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogICAgJGVudHJpZXMgPSBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyc7DQogICAgJGxhbmdzID0gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzJzsNCiAgICANCiAgICAkcSA9ICdVUERBVEUgJyAuICRlbnRyaWVzIC4gJw0KICAgICAgICAgIElOTkVSIEpPSU4gJyAuICRsYW5ncyAuICcgT04gJyAuICRlbnRyaWVzIC4gJy5sYW5naWQgPSAnIC4gJGxhbmdzIC4gJy5pZA0KICAgICAgICAgIFNFVCAnIC4gJGVudHJpZXMgLiAnLmxhbmdjb2RlID0gJyAuICRsYW5ncyAuICcubGFuZ2NvZGUNCiAgICAgICAgICBXSEVSRSAnIC4gJGVudHJpZXMgLiAnLmxhbmdjb2RlIElTIE5VTEwnOw0KICANCiAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7DQogICAgaWYoISRyKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkZGItPkVycm9yTXNnKCkpOw0KICAgIH0NCiAgfQ0KICANCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LangDAO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgRXJpZHU7CgpjbGFzcyBMYW5nREFPCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX3BhdGgoKQogIHsKICAgICRjb25maWcgPSBcY21zX2NvbmZpZzo6Z2V0X2luc3RhbmNlKCk7CiAgICByZXR1cm4gXGNtc19qb2luX3BhdGgoJGNvbmZpZ1snYXNzZXRzX3BhdGgnXSwgX19OQU1FU1BBQ0VfXyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZmluZF9yZWFsbXMoKQogIHsKICAgICRkaXIgPSAkdGhpcy0+Z2V0X2xhbmd1YWdlX3BhdGgoKTsKICAgICRwYXR0ZXJuID0gIiRkaXIvbGFuZy4qLmluaSI7CiAgICAkZmlsZXMgPSBcZ2xvYigkcGF0dGVybiApOwogICAgCiAgICBpZighXGlzX2FycmF5KCRmaWxlcykgfHwgIVxjb3VudCgkZmlsZXMpICkgeyByZXR1cm47IH0KCiAgICAkb3V0ID0gbnVsbDsKICAgIGZvcmVhY2goICRmaWxlcyBhcyAkb25lX2ZpbGUgKQogICAgewogICAgICAgICRibiA9IFxiYXNlbmFtZSgkb25lX2ZpbGUpOwogICAgICAgICRwb3MxID0gXHN0cnBvcygkYm4sICcuJyApOwogICAgICAgICRwb3MyID0gXHN0cnJwb3MoJGJuLCAnLicgKTsKICAgICAgICAkcmVhbG0gPSBcc3Vic3RyKCRibiwgJHBvczEgKyAxLCAkcG9zMiAtICRwb3MxIC0gMSApOwogICAgICAgICRvdXRbJHJlYWxtXSA9ICRvbmVfZmlsZTsKICAgIH0KICAgIAogICAgcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX2ZpbGUoJHJlYWxtKQogIHsKICAgICRkaXIgPSAkdGhpcy0+Z2V0X2xhbmd1YWdlX3BhdGgoKTsKICAgIHJldHVybiAiJGRpci9sYW5nLiRyZWFsbS5pbmkiOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxvYWRfbGFuZ3VhZ2VfZmlsZSgkZmlsZSkKICB7CiAgICBpZighXGlzX2ZpbGUoJGZpbGUpIHx8ICFcaXNfcmVhZGFibGUoJGZpbGUgKSApIHsgcmV0dXJuIE5VTEw7IH0KCiAgICBcc2V0X2Vycm9yX2hhbmRsZXIoCiAgICAgIGZ1bmN0aW9uKCRlcnJubywgJGVycnN0cikKICAgICAgewogICAgICAgIFxkZWJ1Z190b19sb2coJ0VyaWR1IGxhbmdmaWxlIGVycm9yOicgLiAkZXJyc3RyKTsKICAgICAgICBcZGVidWdfZGlzcGxheSgkZXJyc3RyKTsKICAgICAgfSwgXEVfV0FSTklORwogICAgKTsKICAgIAogICAgJGRhdGEgPSBccGFyc2VfaW5pX2ZpbGUoJGZpbGUsIHRydWUpOwogICAgXHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOwogICAgCiAgICByZXR1cm4gJGRhdGE7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9yZWFsbSgkcmVhbG0pCiAgewogICAgJGZpbGUgPSAkdGhpcy0+Z2V0X2xhbmd1YWdlX2ZpbGUoJHJlYWxtKTsKCiAgICByZXR1cm4gJHRoaXMtPmxvYWRfbGFuZ3VhZ2VfZmlsZSgkZmlsZSApOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfaW5pX2ZpbGUoJGZpbGVuYW1lLCAkZGF0YSkKICB7CiAgICAkZmggPSBcZm9wZW4oJGZpbGVuYW1lLCAndycgKTsKICAgIGlmKCEkZmgpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignQ291bGQgbm90IG9wZW4gJyAuICRmaWxlbmFtZSAuICcgZm9yIHdyaXRpbmcgKHBlcm1pc3Npb25zPyknKTsKICAgIH0KCiAgICBmb3JlYWNoKCAkZGF0YSBhcyAkbGFuZyA9PiAkbGFuZ2RhdGEgKQogICAgewogICAgICAkbGFuZyA9IFx0cmltKCRsYW5nKTsKICAgICAgXGZ3cml0ZSgkZmgsICJbJGxhbmddIiAuIFBIUF9FT0wgKTsKICAgICAgCiAgICAgIGZvcmVhY2goICRsYW5nZGF0YSBhcyAka2V5ID0+ICR2YWwgKQogICAgICB7CiAgICAgICAgJGtleSA9IFx0cmltKCRrZXkpOwogICAgICAgICR2YWwgPSBcdHJpbShcYWRkc2xhc2hlcygkdmFsKSk7CiAgICAgICAgCiAgICAgICAgaWYoIEZBTFNFICE9PSBcc3RycG9zKCRrZXksICciJykgKSB7IGNvbnRpbnVlOyB9CiAgICAgICAgCiAgICAgICAgXGZ3cml0ZSgkZmgsICIka2V5PVwiJHZhbFwiIiAuIFBIUF9FT0wpOwogICAgICB9CiAgICAgIAogICAgICBcZndyaXRlKCAkZmgsIFBIUF9FT0wuUEhQX0VPTCApOwogICAgfQogICAgCiAgICBcZmNsb3NlKCRmaCApOwogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gYmFja3VwX2xhbmd1YWdlX2ZpbGUoJHJlYWxtKQogIHsKICAgICRsYW5nZmlsZSA9ICR0aGlzLT5nZXRfbGFuZ3VhZ2VfZmlsZSgkcmVhbG0pOwogICAgJGJha2ZpbGUgID0gJGxhbmdmaWxlIC4gJy5iYWsnOwogICAgCiAgICBpZihcaXNfZmlsZSgkbGFuZ2ZpbGUpKQogICAgewogICAgICAkcmVzID0gXGNvcHkoJGxhbmdmaWxlLCAkYmFrZmlsZSk7CiAgICAgIGlmKCEkcmVzKQogICAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCJjb3VsZCBub3QgY3JlYXRlICRiYWtmaWxlLi4uIChwZXJtaXNzaW9ucz8pIik7CiAgICAgIH0KICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzYXZlX3JlYWxtKCAkcmVhbG0sICRkYXRhICkKICB7CiAgICAvLyBjaGVjayB0aGUgZGF0YQogICAgaWYoISRkYXRhKQogICAgewogICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignbm8gZGF0YSBwYXNzZWQgdG8gJyAuIF9fTUVUSE9EX18pOwogICAgfQogIAogICAgXHJlc2V0KCRkYXRhKTsKICAgICRmaXJzdF9sYW5nID0gXGtleSgkZGF0YSk7CiAgCiAgICBpZigkZmlyc3RfbGFuZyAhPSAnZW5fVVMnKQogICAgewogICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBkYXRhIHBhc3NlZCB0byAnIC4gX19NRVRIT0RfXyAuICcgZmlyc3QgbGFuZ3VhZ2UgbXVzdCBiZSBlbmdsaXNoJyk7CiAgICB9CiAgCiAgICBpZighXGlzX2FycmF5KCRkYXRhWyRmaXJzdF9sYW5nXSkgfHwgIVxjb3VudCgkZGF0YVskZmlyc3RfbGFuZ10pKQogICAgewogICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBkYXRhIHBhc3NlZCB0byAnIC4gX19NRVRIT0RfXyk7CiAgICB9CiAgCiAgICBmb3JlYWNoKCRkYXRhIGFzICRrZXkgPT4gJHZhbHVlKQogICAgewogICAgICBpZighXGlzX2FycmF5KCR2YWx1ZSkpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignbWFsZm9ybWVkIGRhdGEgcGFzc2VkIHRvICcgLiBfX01FVEhPRF9fKTsKICAgICAgfQogICAgfQogIAogICAgJHRoaXMtPmJhY2t1cF9sYW5ndWFnZV9maWxlKCRyZWFsbSk7CiAgICAkdGhpcy0+c2F2ZV9pbmlfZmlsZSgkdGhpcy0+Z2V0X2xhbmd1YWdlX2ZpbGUoJHJlYWxtKSwgJGRhdGEpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9yZWFsbSggJHJlYWxtICkKICB7CiAgICAkbGFuZ2ZpbGUgPSAkdGhpcy0+Z2V0X2xhbmd1YWdlX2ZpbGUoJHJlYWxtKTsKICAgIAogICAgaWYoIVxpc19maWxlKCRsYW5nZmlsZSkpIHsgcmV0dXJuIFRSVUU7IH0KICAgIAogICAgaWYoIVxpc193cml0YWJsZSgkbGFuZ2ZpbGUpKSB7IHJldHVybjsgfQogIAogICAgcmV0dXJuIFx1bmxpbmsoJGxhbmdmaWxlKTsKICB9Cn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.langs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgRXJpZHU7DQoNCg0KY2xhc3MgbGFuZ3MgZXh0ZW5kcyBcQ01TTVNFeHRcY29yZVxjb2xsZWN0aW9uDQp7DQogIA0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.language.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1OwoKY2xhc3MgbGFuZ3VhZ2UKewogIHByaXZhdGUgJF9pZDsKICBwcml2YXRlICRfbmFtZTsKICBwcml2YXRlICRfbWVudV9uYW1lOwogIHByaXZhdGUgJF9sYW5nY29kZTsKICBwcml2YXRlICRfaXNvXzYzOV8xOwogIHByaXZhdGUgJF9pc29fMzE2Nl8xX2FscGhhXzI7CiAgcHJpdmF0ZSAkX3Jvb3RfaWQ7CiAgcHJpdmF0ZSAkX2RlZmF1bHRfaWQ7CiAgcHJpdmF0ZSAkX2FjdGl2ZTsKICBwcml2YXRlICRfaXRlbV9vcmRlcjsKICBwcml2YXRlICRfYXNzb2NpYXRlZF9kYXRhID0gYXJyYXkoKTsKICAKICBwcml2YXRlICRfbWVtYmVycyA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51X25hbWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFuZ2NvZGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNvXzYzOV8xJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzb18zMTY2XzFfYWxwaGFfMicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290X2lkJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHRfaWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fb3JkZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNzb2NpYXRlZF9kYXRhJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAKICBwcml2YXRlIGZ1bmN0aW9uIF9idWlsZF9mcm9tX2RhdGEoJGRhdGEpCiAgewogICAgICAgICAgICAgICAgCiAgICBmb3JlYWNoKCR0aGlzLT5fbWVtYmVycyBhcyAkbWVtYmVyKQogICAgewogICAgICAkbW5hbWUgPSAnXycgLiAkbWVtYmVyOwogICAgICAKICAgICAgaWYoICRtZW1iZXIgPT0gJ2Fzc29jaWF0ZWRfZGF0YScgJiYgaXNzZXQoJGRhdGFbJG1lbWJlcl0pICkKICAgICAgewoKICAgICAgICBpZiggIWlzX2FycmF5KCRkYXRhWyRtZW1iZXJdKSApCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPiRtbmFtZSA9IGFycmF5KCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+JG1uYW1lID0gJGRhdGFbJG1lbWJlcl07CiAgICAgICAgfQoKICAgICAgICB1bnNldCgkZGF0YVskbWVtYmVyXSk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgaWYoIGlzc2V0KCRkYXRhWyRtZW1iZXJdKSApICR0aGlzLT4kbW5hbWUgPSAkZGF0YVskbWVtYmVyXTsKICAgICAgICB7CiAgICAgICAgICB1bnNldCgkZGF0YVskbWVtYmVyXSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICAKICAgICMgd2hhdGV2ZXIgd2UgaGF2ZSBsZWZ0IGhhcyB0byBiZSAiYXNzb2NpYXRlZF9kYXRhIgogICAgJHRoaXMtPl9hc3NvY2lhdGVkX2RhdGEgPSBhcnJheV9tZXJnZSgkdGhpcy0+X2Fzc29jaWF0ZWRfZGF0YSwgJGRhdGEpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRkYXRhID0gYXJyYXkoKSApCiAgewogICAgaWYoIGlzX2FycmF5KCRkYXRhKSAmJiAhZW1wdHkoJGRhdGEpICkKICAgIHsKICAgICAgJHRoaXMtPl9idWlsZF9mcm9tX2RhdGEoJGRhdGEpOwogICAgfQogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gX19jYWxsKCRuYW1lLCAkYXJndW1lbnRzKQogIHsKICAgIGlmKHN0YXJ0c3dpdGgoJG5hbWUsICdnZXRfJykpCiAgICB7CiAgICAgICRhZCA9IHN0cl9yZXBsYWNlKCdnZXRfJywgJycsICRuYW1lKTsgCiAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2Fzc29jaWF0ZWRfZGF0YVskYWRdKSApIHJldHVybiAkdGhpcy0+X2Fzc29jaWF0ZWRfZGF0YVskYWRdOwogICAgfQogICAgCiAgICBpZihzdGFydHN3aXRoKCRuYW1lLCAnc2V0XycpKQogICAgewogICAgICAkYWQgPSBzdHJfcmVwbGFjZSgnc2V0XycsICcnLCAkbmFtZSk7CiAgICAgICR0aGlzLT5fYXNzb2NpYXRlZF9kYXRhWyRhZF0gPSAkYXJndW1lbnRzWzBdOyAgCiAgICB9CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkKICB7CiAgICAkcmV0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goJHRoaXMtPl9tZW1iZXJzIGFzICRtZW1iZXIpCiAgICB7CiAgICAgICRtbmFtZSA9ICdfJyAuICRtZW1iZXI7CiAgICAgIAogICAgICBpZigkbWVtYmVyID09ICdhc3NvY2lhdGVkX2RhdGEnKQogICAgICB7CiAgICAgICAgZm9yZWFjaCgkdGhpcy0+X2Fzc29jaWF0ZWRfZGF0YSBhcyAkayA9PiAkdikKICAgICAgICB7CiAgICAgICAgICAkcmV0W109ICRrIC4gJz0nIC4gJHY7CiAgICAgICAgfQogICAgICAgIGNvbnRpbnVlOyAgIAogICAgICB9CiAgICAgIAogICAgICAkcmV0W109ICRtZW1iZXIgLiAnPScgLiAkdGhpcy0+JG1uYW1lOyAKICAgIH0KICAgIAogICAgcmV0dXJuIGltcGxvZGUoJywnLCAkcmV0KTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIHRvQXJyYXkoKQogIHsKICAgICR0ZXJtcyA9IGV4cGxvZGUoJywnLCAkdGhpcy0+X190b1N0cmluZygpICk7CgogICAgJHJldCA9IGFycmF5KCk7CiAgICAKICAgIGZvcmVhY2goJHRlcm1zIGFzICRvbmUpCiAgICB7CiAgICAgICR0ZXJtID0gZXhwbG9kZSgnPScsICRvbmUpOwogICAgICAkcmV0WyR0ZXJtWzBdXSA9ICR0ZXJtWzFdOwogICAgfQogICAgCiAgICByZXR1cm4gJHJldDsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGZyb21BcnJheSggJGRhdGEgPSBhcnJheSgpICkKICB7CiAgICBpZiggaXNfYXJyYXkoJGRhdGEpICYmICFlbXB0eSgkZGF0YSkgKQogICAgewogICAgICAkdGhpcy0+X2J1aWxkX2Zyb21fZGF0YSgkZGF0YSk7CiAgICB9CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBzZXRfaWQoJHZhbHVlKQogIHsKICAgICR0aGlzLT5faWQgPSAkdmFsdWU7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2lkOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gc2V0X25hbWUoJHZhbHVlKQogIHsKICAgICR0aGlzLT5fbmFtZSA9ICR2YWx1ZTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9uYW1lOwogIH0KICAgIAogIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWVudV9uYW1lKCR2YWx1ZSkKICB7CiAgICAkdGhpcy0+X21lbnVfbmFtZSA9ICR2YWx1ZTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9tZW51X25hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X21lbnVfbmFtZTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIHNldF9sYW5nY29kZSgkdmFsdWUpCiAgewogICAgJHRoaXMtPl9sYW5nY29kZSA9ICR2YWx1ZTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9sYW5nY29kZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fbGFuZ2NvZGU7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBzZXRfaXNvXzYzOV8xKCR2YWx1ZSkKICB7CiAgICAkdGhpcy0+X0lTT182MzlfMSA9IHN0cnRvbG93ZXIoJHZhbHVlKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9pc29fNjM5XzEoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2lkOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2lzb18zMTY2XzFfYWxwaGFfMigkdmFsdWUpCiAgewogICAgJHRoaXMtPl9pc29fMzE2Nl8xX2FscGhhXzIgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXNvXzMxNjZfMV9hbHBoYV8yKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9pc29fMzE2Nl8xX2FscGhhXzI7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGVmYXVsdF9pZCgkdmFsdWUpCiAgewogICAgJHRoaXMtPl9kZWZhdWx0X2lkID0gJHZhbHVlOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2RlZmF1bHRfaWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2RlZmF1bHRfaWQ7CiAgfSAgCiAgCiAgcHVibGljIGZ1bmN0aW9uIHNldF9yb290X2lkKCR2YWx1ZSkKICB7CiAgICAkdGhpcy0+X3Jvb3RfaWQgPSAkdmFsdWU7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcm9vdF9pZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fcm9vdF9pZDsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9ocmVmbGFuZygpCiAgewogICAgJHJldCA9IGlzc2V0KCR0aGlzLT5faXNvXzYzOV8xKSA/ICR0aGlzLT5faXNvXzYzOV8xIDogRkFMU0U7CiAgICBpZigkcmV0KSAkcmV0ID0gJHJldCAuIGlzc2V0KCR0aGlzLT5faXNvXzMxNjZfMV9hbHBoYV8yKSA/ICctJyAuICR0aGlzLT5faXNvXzMxNjZfMV9hbHBoYV8yIDogJyc7CiAgICByZXR1cm4gJHJldDsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9ocmVmbGFuZ19sb3dlcigpCiAgewogICAgcmV0dXJuIHN0cnRvbG93ZXIoICR0aGlzLT5nZXRfaHJlZmxhbmcoKSApOwogIH0gCiAgIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaHJlZmxhbmdfdXBwZXIoKQogIHsKICAgIHJldHVybiBzdHJ0b3VwcGVyKCAkdGhpcy0+Z2V0X2hyZWZsYW5nKCkgKTsKICB9CiAgCiAgLyoqCiAgKiBzYXZlcyBhIGxhbmd1YWdlIGludG8gdGhlIGRiCiAgKiAKICAqIG5vdGU6IGl0IGluc2VydHMgYSBuZXcgcmVjb3JkIGluIGNhc2UgaWQgPCAwCiAgKiAgICAgICBvdGhlcndpc2UgdXBkYXRlcwogICovCiAgcHVibGljIGZ1bmN0aW9uIFNhdmUoKQogIHsKICAgIGlmKCBlbXB0eSgkdGhpcy0+X2xhbmdjb2RlKSB8fCBlbXB0eSgkdGhpcy0+X25hbWUpICApIHRocm93IG5ldyBcRXhjZXB0aW9uKCdOb3QgZW5vdWdoIGRhdGEnKTsKICAgIAogICAgJGNvbHMgPSAkdGhpcy0+X21lbWJlcnM7ICAKICAgICR0bXB2YWxzID0gJHRoaXMtPnRvQXJyYXkoKTsKICAgIAogICAgI2xvc2UgaWQKICAgIGFycmF5X3NoaWZ0KCRjb2xzKTsKICAgIAogICAgI2J1aWxkIGNvbHMgcGFydCBvZiBxdWVyeSBhbmQgdmFsdWVzIGFycmF5ICAgIAogICAgJHZhbHMgPSBhcnJheSgpOwogICAgCiAgICBmb3JlYWNoKCRjb2xzIGFzICYkY29sKSAKICAgIHsKICAgICAgaWYoJGNvbCA9PSAnYXNzb2NpYXRlZF9kYXRhJykKICAgICAgewogICAgICAgICR2YWxzW10gPSBzZXJpYWxpemUoJHRoaXMtPnsnXycgLiAkY29sfSk7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJHZhbHNbXSA9ICR0aGlzLT57J18nIC4gJGNvbH07CiAgICAgIH0gCiAgICAgICRjb2wgPSAkY29sIC4gJyA9ID8nOyAgICAgIAogICAgfSAKICAgIAogICAgJHRlcm1zID0gaW1wbG9kZSgnLCAnLCAkY29scyk7CiAgICAKICAgICAgCiAgICAKICAgIGlmKCR0aGlzLT5faWQgPiAwKSAkdmFsc1tdID0gJHRoaXMtPl9pZDsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICRxdWVyeSA9ICgkdGhpcy0+X2lkIDwgMSA/ICdJTlNFUlQgSU5UTyAnIDogJ1VQREFURSAnKQogICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkKICAgICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMgU0VUICcgLiAkdGVybXMgCiAgICAgICAgICAuICgkdGhpcy0+X2lkIDwgMSA/ICcnIDogJyBXSEVSRSBpZD0/Jyk7IAogICAgCiAgICAkZGIgPSBcY21zbXMoKS0+R2V0RGIoKTsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICR2YWxzKTsgCiAgICBpZighJGRicmVzdWx0KSB0aHJvdyBuZXcgXEV4Y2VwdGlvbiggJGRiLT5FcnJvck1zZygpIC4gJyBRdWVyeTogJyAuICAkcXVlcnkpOwogIH0KICAKICAvKioKICAgKiBsb2FkcyBhIGxhbmd1YWdlIGZyb20gdGhlIGRiCiAgICogZ2l2ZW4gYW4gaWQKICAgKiBhbiBhdHRlbXB0IHdpbGwgYmUgbWFkZQogICAqIHRvIHVzZSB0aGUgY2xhc3Mgb3duIGlkCiAgICogaWYgdmFsaWQgYW5kIG5vICRpZCBwYXJhbWV0ZXIgcHJvdmlkZWQKICAgKiBvdGhlcndpc2UgcmFpc2VzIGFuIGV4Y2VwdGlvbgogICAqCiAgICogQHBhcmFtIG1peGVkICRpZAogICAqCiAgICogQHRocm93cyBcRXhjZXB0aW9uCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIExvYWQoJGlkID0gLTEpCiAgewogICAgaWYoJGlkIDwgMSAmJiAkdGhpcy0+X2lkIDwgMSkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0lkIG1pc3NpbmcgZnJvbSBvcGVyYXRpb24nKTsKICAgIGlmKCR0aGlzLT5faWQgPiAxICYmICRpZCA8IDEpICRpZCA9ICR0aGlzLT5faWQ7IAogICAgCiAgICAkZGIgPSBcY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcyBXSEVSRSBpZD0/JzsKICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGlkKSApOwogICAgCiAgICBpZihGQUxTRSA9PT0gJGRicmVzdWx0KSB0aHJvdyBuZXcgXEV4Y2VwdGlvbihzZWxmOjokX2RiLT5FcnJvck1zZygpICk7CiAgICBpZiggIWVtcHR5KCRkYnJlc3VsdFsnYXNzb2NpYXRlZF9kYXRhJ10pICkgJGRicmVzdWx0Wydhc3NvY2lhdGVkX2RhdGEnXSA9IHVuc2VyaWFsaXplKCRkYnJlc3VsdFsnYXNzb2NpYXRlZF9kYXRhJ10pOwogICAgCiAgICAkdGhpcy0+X2J1aWxkX2Zyb21fZGF0YSgkZGJyZXN1bHQpOwogIH0KICAKfSAgCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.languages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1Owp1c2UgQ29udGVudE9wZXJhdGlvbnM7CgpjbGFzcyBsYW5ndWFnZXMKewogIHByaXZhdGUgc3RhdGljICRfY21zOwogIHByaXZhdGUgc3RhdGljICRfZGI7CiAgLyoqIEB2YXIgXEVyaWR1ICRfZXJpZHUgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLwogIHByaXZhdGUgc3RhdGljICRfZXJpZHU7CiAgc3RhdGljIHByaXZhdGUgJF9sYW5ndWFnZXMgPSBbXTsKICBzdGF0aWMgcHJpdmF0ZSAkX2F2YWlsYWJsZV9sYW5ndWFnZXMgPSBbXTsKICBzdGF0aWMgcHJpdmF0ZSAkX2N1cnJlbnRfbGFuZ3VhZ2U7CiAgc3RhdGljIHByaXZhdGUgJF9jdXJyZW50X3Jvb3RfaWQ7CiAgcHJpdmF0ZSBzdGF0aWMgJF9pbml0aXRhbGl6ZWQ7CiAgCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2luaXRpYWxpemUoKQogIHsKICAgIGlmKCFzZWxmOjokX2luaXRpdGFsaXplZCkKICAgIHsKICAgICAgc2VsZjo6JF9jbXMgPSBcY21zbXMoKTsKICAgICAgc2VsZjo6JF9kYiA9IHNlbGY6OiRfY21zLT5HZXREYigpOwogICAgICAKICAgICAgc2VsZjo6JF9lcmlkdSA9XGNtc191dGlsczo6Z2V0X21vZHVsZShfX05BTUVTUEFDRV9fKTsKICAgICAgc2VsZjo6JF9pbml0aXRhbGl6ZWQgPSBUUlVFOwogICAgfQogIH0KICAKICAvKioKICAgKiBAcGFyYW0gYm9vbCAkaW5jbHVkZV9pbmFjdGl2ZQogICAqCiAgICogQGRlcHJlY2F0ZWQgdXNlIGRiX29wcy0+Z2V0X2xhbmdzX2Zyb21fZGIoJGluY2x1ZGVfaW5hY3RpdmUpIGluc3RlYWQKICAgKiBAcmV0dXJuIG1peGVkCiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2Zyb21fZGIoJGluY2x1ZGVfaW5hY3RpdmUgPSBGQUxTRSkKICB7Ci8vICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7Ci8vICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcKLy8gICAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcyAnCi8vICAgICAgICAgICAgIC4oICRpbmNsdWRlX2luYWN0aXZlID8gJycgOiAnV0hFUkUgYWN0aXZlID0gMScpIC4gJyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKLy8KLy8gICAgJGRicmVzdWx0ID0gc2VsZjo6JF9kYi0+R2V0QWxsKCRxdWVyeSk7Ci8vCi8vICAgIGlmKEZBTFNFID09PSAkZGJyZXN1bHQpCi8vICAgIHsKLy8gICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIHNlbGY6OiRfZGItPkVycm9yTXNnKCkgKTsKLy8gICAgfQogICAgCiAgICByZXR1cm4gZGJfb3BzOjpnZXRJbnN0YW5jZSgpLT5nZXRfbGFuZ3NfZnJvbV9kYigkaW5jbHVkZV9pbmFjdGl2ZSk7CiAgfQogIAogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9jYWxjdWxhdGVfY3VycmVudCgkcm9vdF9pZCkKICB7CiAgICBpZiggIWlzc2V0KCRyb290X2lkKSB8fCAkcm9vdF9pZCA8IDEpIHsgcmV0dXJuOyB9CiAgICAKICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7CiAgICAkbGFuZ3MgPSBzZWxmOjpnZXRsYW5ndWFnZXMoKTsKICAgIAogICAgZm9yZWFjaCgkbGFuZ3MgYXMgJGxhbmd1YWdlKQogICAgewogICAgICBpZigkbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgPT0gJHJvb3RfaWQpCiAgICAgIHsKICAgICAgICBzZWxmOjokX2N1cnJlbnRfbGFuZ3VhZ2UgPSAkbGFuZ3VhZ2U7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuIHNlbGY6OiRfY3VycmVudF9sYW5ndWFnZTsKICB9CiAgCiAgLyoqCiAgICogQHBhcmFtIG1peGVkICRsYW5nY29kZQogICAqCiAgICogQHJldHVybiBcU3RkQ2xhc3MKICAgKiBAZGVwcmVjYXRlZAogICAqLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX2RldGFpbHMoJGxhbmdjb2RlKQogIHsKICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7CiAgICAKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcyBXSEVSRSBsYW5nY29kZT0/JzsKICAgICRkYnJlc3VsdCA9IHNlbGY6OiRfZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpICk7CiAgCiAgICAkaXRlbSA9IG5ldyBcU3RkQ2xhc3MoKTsKICAgIAogICAgaWYoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkgKQogICAgewogICAgICBmb3JlYWNoKCRyb3cgYXMgJGtleSA9PiAkdmFsdWUpCiAgICAgIHsKICAgICAgICAkaXRlbS0+JGtleSA9ICR2YWx1ZTsKICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gJGl0ZW07CiAgfQogIAogIC8qKgogICAqIHJldHVybnMgYSBsYW5ndWFnZSBvYmplY3QgZ2l2ZW4gYW4gaWQKICAgKgogICAqIEBwYXJhbSBtaXhlZCAkdmFsdWUKICAgKgogICAqIEByZXR1cm4gbGFuZ3VhZ2UKICAgKiBAdGhyb3dzIFxFeGNlcHRpb24KICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldExhbmdGcm9tSWQoJHZhbHVlKQogIHsKICAgICRyZXQgPSBuZXcgXEVyaWR1XGxhbmd1YWdlKCk7CiAgICAkcmV0LT5Mb2FkKCR2YWx1ZSk7CiAgICByZXR1cm4gJHJldDsKICB9CiAgCiAgLyoqCiAgICogcmV0cmlldmVzIGxhbmd1YWdlcyBmcm9tIHRoZSBkYXRhYmFzZQogICAqIEBkZXByZWNhdGVkCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZV9sYW5ndWFnZXMoJGFsbCA9IEZBTFNFKQogIHsKICAgIHJldHVybiBzZWxmOjpfZnJvbV9kYigkYWxsKTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRGb3JFZGl0aW5nKCkKICB7CiAgICByZXR1cm4gc2VsZjo6Z2V0bGFuZ3VhZ2VzKFRSVUUpOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldGxhbmd1YWdlcygkaW5jbHVkZV9pbmFjdGl2ZSA9IEZBTFNFKQogIHsKICAgIGlmKCBlbXB0eShzZWxmOjokX2F2YWlsYWJsZV9sYW5ndWFnZXMpICkKICAgIHsKICAgICAgJGxhbmdzID0gZGJfb3BzOjpnZXRJbnN0YW5jZSgpLT5nZXRfbGFuZ3NfZnJvbV9kYihUUlVFKTsKICAgICAgCiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRsYW5nKQogICAgICB7CiAgICAgICAgJHRtcCA9IG5ldyBcRXJpZHVcbGFuZ3VhZ2UoKTsKICAgICAgICAkdG1wLT5Mb2FkKCRsYW5nWydpZCddKTsKICAgICAgICAvL2lmKCBlbXB0eSggJHRtcC0+Z2V0X2RvbWFpbigpICkgKSAkdG1wLT5zZXRfZG9tYWluKCBcRXJpZHVcdXRpbHM6OmdldF9jdXJyZW50X2hvc3QoKSApOwogICAgICAgIHNlbGY6OiRfYXZhaWxhYmxlX2xhbmd1YWdlc1skbGFuZ1snbGFuZ2NvZGUnXV0gPSAkdG1wOwogICAgICB9CiAgICB9CiAgICAKICAgIGlmKCBlbXB0eShzZWxmOjokX2xhbmd1YWdlcykgKQogICAgewogICAgICAkbGFuZ3MgPSBkYl9vcHM6OmdldEluc3RhbmNlKCktPmdldF9sYW5nc19mcm9tX2RiKEZBTFNFKTsKICAgICAgCiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRsYW5nKQogICAgICB7CiAgICAgICAgJHRtcCA9IG5ldyBcRXJpZHVcbGFuZ3VhZ2UoKTsKICAgICAgICAkdG1wLT5Mb2FkKCRsYW5nWydpZCddKTsKICAgICAgICAvL2lmKCBlbXB0eSggJHRtcC0+Z2V0X2RvbWFpbigpICkgKSAkdG1wLT5zZXRfZG9tYWluKCBcRXJpZHVcdXRpbHM6OmdldF9jdXJyZW50X2hvc3QoKSApOwogICAgICAgIHNlbGY6OiRfbGFuZ3VhZ2VzWyRsYW5nWydsYW5nY29kZSddXSA9ICR0bXA7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICRpbmNsdWRlX2luYWN0aXZlID8gc2VsZjo6JF9hdmFpbGFibGVfbGFuZ3VhZ2VzIDogIHNlbGY6OiRfbGFuZ3VhZ2VzOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldExhbmd1YWdlRnJvbUxhbmdDb2RlKCRsYW5nX2NvZGUgPSBOVUxMLCAkaW5jbHVkZV9pbmFjdGl2ZSA9IE5VTEwpCiAgewogICAgCiAgICBpZiggZW1wdHkoJGxhbmdfY29kZSkgKSB7IHJldHVybiBOVUxMOyB9CiAgICAKICAgIGlmKCBlbXB0eShzZWxmOjokX2F2YWlsYWJsZV9sYW5ndWFnZXMpIHx8IGVtcHR5KHNlbGY6OiRfbGFuZ3VhZ2VzKSApCiAgICB7CiAgICAgc2VsZjo6Z2V0bGFuZ3VhZ2VzKCk7CiAgICB9CiAgICAKICAgIGlmKCRpbmNsdWRlX2luYWN0aXZlKQogICAgewogICAgICByZXR1cm4gc2VsZjo6JF9hdmFpbGFibGVfbGFuZ3VhZ2VzWyRsYW5nX2NvZGVdID8/IE5VTEw7CiAgICB9CiAgICAKICAgIHJldHVybiAgc2VsZjo6JF9sYW5ndWFnZXNbJGxhbmdfY29kZV0gPz8gTlVMTDsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRMYW5ndWFnZUZyb21JZCgkbGFuZ19pZCA9IE5VTEwsICRpbmNsdWRlX2luYWN0aXZlID1OVUxMKQogIHsKICAgIAogICAgaWYoIGVtcHR5KCRsYW5nX2lkKSApIHsgcmV0dXJuIE5VTEw7IH0KICAgIAogICAgaWYoIGVtcHR5KHNlbGY6OiRfYXZhaWxhYmxlX2xhbmd1YWdlcykgfHwgZW1wdHkoc2VsZjo6JF9sYW5ndWFnZXMpICkKICAgIHsKICAgICBzZWxmOjpnZXRsYW5ndWFnZXMoKTsKICAgIH0KICAgIAogICAgaWYoJGluY2x1ZGVfaW5hY3RpdmUpCiAgICB7CiAgICAgIGZvcmVhY2goc2VsZjo6JF9hdmFpbGFibGVfbGFuZ3VhZ2VzIGFzICRvbmUpCiAgICAgIHsKICAgICAgICBpZiggJG9uZS0+Z2V0X2lkKCkgPiAwICkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJG9uZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiBOVUxMOwogICAgfQogIAogICAgZm9yZWFjaChzZWxmOjokX2xhbmd1YWdlcyBhcyAkb25lKQogICAgewogICAgICBpZiggJG9uZS0+Z2V0X2lkKCkgPiAwICkKICAgICAgewogICAgICAgIHJldHVybiAkb25lOwogICAgICB9CiAgICB9CiAgICAKICAgIHJldHVybiBOVUxMOwogIH0KICAKICAvKioKICAgKiByZXR1cm5zIHRoZSBsYW5ndWFnZSBjb21wdXRlZCBmcm9tIFJlcXVlc3QKICAgKiBvciBmcm9tIHRoZSByb290IGlkIG9mIHRoZSBoaWVyYXJjaHkKICAgKiB3aWxsIGJlIHJldmlzaXRlZC4uLgogICAqCiAgICogQHJldHVybiBib29sfG1peGVkCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXREb21haW5MYW5nKCkKICB7CiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOwogICAgJGxhbmdzID0gc2VsZjo6Z2V0bGFuZ3VhZ2VzKCk7CiAgICAKICAgICMgY2FuIHdlIHVzZSBob3N0IHNldCBkb21haW4/CiAgICAkaG9zdCA9IFxFcmlkdVx1dGlsczo6Z2V0X2N1cnJlbnRfaG9zdCgpOwogICAgCiAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykKICAgIHsKICAgICAgaWYoJGxhbmctPmdldF9kb21haW4oKSA9PT0gJGhvc3QpCiAgICAgIHsKICAgICAgICByZXR1cm4gJGxhbmc7ICMgd2UndmUgZm91bmQgYSBsYW5nIGZyb20gY3VycmVudCBkb21haW4gLT4gcmV0dXJuIGl0IQogICAgICB9CiAgICB9CiAgCiAgICByZXR1cm4gRkFMU0U7CiAgfQogIAogIC8qKgogICAqCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRSZXF1ZXN0TGFuZygpCiAgewogICAgLy9UT0RPCiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQ29tcHV0ZUZyb21Sb290KCkKICB7CiAgICAkcm9vdF9pZCA9ICBcRXJpZHVcdXRpbHM6OmdldF9yb290X2lkKCk7CiAgICAkcm9vdF9sYW5nID0gc2VsZjo6X2NhbGN1bGF0ZV9jdXJyZW50KCRyb290X2lkKTsKICAgIHJldHVybiBpc19vYmplY3QoJHJvb3RfbGFuZykgPyAkcm9vdF9sYW5nIDogRkFMU0U7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0RnJvbUNvb2tpZSgkbmFtZSkKICB7CiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOwogICAgJGNvb2tpZV9sYW5nID0gaXNzZXQoJF9DT09LSUVbJG5hbWVdKSA/ICRfQ09PS0lFWyRuYW1lXSA6IEZBTFNFOwogICAgJGxhbmdzID0gc2VsZjo6Z2V0bGFuZ3VhZ2VzKCk7CiAgICAKICAgIGlmKCAkY29va2llX2xhbmcgJiYgaXNzZXQoJGxhbmdzWyRjb29raWVfbGFuZ10pICkKICAgIHsKICAgICAgcmV0dXJuICRsYW5nc1skY29va2llX2xhbmddOwogICAgfQogICAgCiAgICByZXR1cm4gIEZBTFNFOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldEJyb3dzZXJMYW5nKCkKICB7CiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOwogICAgJGxhbmdzID0gc2VsZjo6Z2V0bGFuZ3VhZ2VzKCk7CiAgICAkY29kZSA9IFxFcmlkdVxsYW5nX29wczo6R2V0UHJlZmVycmVkQnJvd3NlckxhbmcoKTsKICAgIAogICAgaWYoICFlbXB0eSgkY29kZSkgKQogICAgewogICAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykKICAgICAgewogICAgICAgIGlmKCRsYW5nLT5nZXRfbGFuZ2NvZGUoKSA9PSAkY29kZSkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJGxhbmc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICMgc2ltaWxhciBhcyBhYm92ZSBidXQganVzdCB0byBtYWtlIHN1cmUgbm90aGluZyBoYXMgZmFpbGVkIGZvciBzb21lIHJlYXNvbgogICAgICAgICR0ZXN0ID0gJGxhbmctPmdldF9pc29fNjM5XzEoKSAuICctJyAuICRsYW5nLT5pc29fMzE2Nl8xX2FscGhhXzIoKTsKICAgICAgICAKICAgICAgICBpZigkdGVzdCA9PSAkY29kZSkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJGxhbmc7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAjIHRoZSBhYm92ZSBzaG91bGQgaGF2ZSBiZWVuIGVub3VnaCB0byByZXR1cm4gYSBwcm9wZXIgbGFuZ3VhZ2UKICAgICAgIyBob3dldmVyIGlmIHRoZSB1c2VyIGRpZG4ndCBmb2xsb3cgdGhlIHJ1bGVzIHdlIG1ha2UgYW5vdGhlciBhdGVtcHQgdG8gY29tcHV0ZSB0aGUgbGFuZ3VhZ2UKICAgICAgCiAgICAgICR0bXAgPSBleHBsb2RlKCctJywgJGNvZGUpOwogICAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykKICAgICAgewogICAgICAgICMgYnkgcGFydGlhbCBsYW5nIGNvZGUKICAgICAgICBpZigkbGFuZy0+Z2V0X2xhbmdjb2RlKCkgPT0gJHRtcFswXSkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJGxhbmc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICMgYnkgaXNvLTYzOS0xIGxhbmcgY29kZQogICAgICAgIGlmKCRsYW5nLT5nZXRfaXNvXzYzOV8xKCkgPT0gJHRtcFsxXSkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJGxhbmc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICMgZmluYWx5IGJ5IGlzb18zMTY2LTEtYWxwaGEtMiBjb3VudHJ5IGNvZGUKICAgICAgICBpZigkbGFuZy0+aXNvXzMxNjZfMV9hbHBoYV8yKCkgPT0gJHRtcFswXSkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJGxhbmc7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAjIGFsbCBmYWlsbGluZyB3ZSBqdXN0IHJldHVybiBGQUxTRQogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0TGFuZ0Zyb21TZXNzaW9uKCkKICB7CiAgICAkcmV0ID0gRkFMU0U7CiAgICAKICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJ19lcmlkdV8nXVsnbGFuZ19jb2RlJ10pICkKICAgIHsKICAgICAgJGxhbmdzID0gc2VsZjo6Z2V0bGFuZ3VhZ2VzKCk7CiAgICAgICRsYW5nID0gJF9TRVNTSU9OWydfZXJpZHVfJ11bJ2xhbmdfY29kZSddOwogICAgICAKICAgICAgaWYoIGlzc2V0KCRsYW5nc1skbGFuZ10pICkKICAgICAgewogICAgICAgICRyZXQgPSAkbGFuZ3NbJGxhbmddOwogICAgICB9CiAgICB9CiAgICAKICAgIHVuc2V0KCRfU0VTU0lPTlsnX2VyaWR1XyddWydsYW5nX2NvZGUnXSk7CiAgICAKICAgIHJldHVybiAkcmV0OwogIH0KICAKICAvKioKICAgKiBkZXRlcm1pbmVzIHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIG9uIGVhY2ggcmVxdWVzdAogICAqCiAgICogcHJpb3JpdGllcyBhcmUgKGhpZ2hlciB0byBsb3dlcik6CiAgICogMS0gRkVVIChpZiBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IHNldHVwKTsKICAgKiAyLSBjb29raWUgKGlmIGV4aXN0cyk7CiAgICogMy0gcmVxdWVzdGVkIGxhbmd1YWdlIChmcm9tIHVybCkgaWYgaXQgY2FuIGJlIGRldGVybWluZWQ7CiAgICogNC0gYnJvd3NlciBsYW5nIGlmIGl0IGlzIGF2YWlsYWJsZSBvbiB0aGUgc2V0IGxhbmd1YWdlcyBvZiB0aGUgc2l0ZQogICAqIDUtIGZyb20gcm9vdCBpZCBvZiB0aGUgY3VycmVudCBwYWdlIGJyYW5jaCBpZiB0aGUgcGFnZSBleGlzdHMgKG90aGVyd2lzZSByb290IGNhbid0IGJlIGRldGVybmluZWQpCiAgICogNi0gZGVmYXVsdCBsYW5ndWFnZTsKICAgKgogICAqIEByZXR1cm5zIFxFcmlkdVxsYW5ndWFnZSBhIGxhbmcgb2JqZWN0CiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2NvbXB1dGVfY3VycmVudF9sYW5nKCkKICB7CiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOwogICAgI2dldCBwcmVmcwogICAgCiAgICAkcHJlZl9icm93c2VyX2hvbWUgID0gc2VsZjo6JF9lcmlkdS0+R2V0UHJlZmVyZW5jZSgnYXV0b3JlZGlyZWN0X2hvbWUnLCBGQUxTRSk7CiAgICAkcHJlZl9icm93c2VyX2FsbCAgID0gc2VsZjo6JF9lcmlkdS0+R2V0UHJlZmVyZW5jZSgnYXV0b3JlZGlyZWN0X2FsbCcsIEZBTFNFKTsKICAgICRwcmVmX2Nvb2tpZV9ob21lICAgPSBzZWxmOjokX2VyaWR1LT5HZXRQcmVmZXJlbmNlKCdjb29raWVzX2F1dG9yZWRpcmVjdF9ob21lJywgRkFMU0UpOwogICAgJHByZWZfY29va2llX2FsbCAgICA9IHNlbGY6OiRfZXJpZHUtPkdldFByZWZlcmVuY2UoJ2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCcsIEZBTFNFKTsKICAgIAogICAgJGNvbXB1dGVkID0gW107CiAgICAjIGdldCBkZWZhdWx0IGxhbmcKICAgICRjb21wdXRlZFsnZGVmYXVsdF9sYW5nJ10gICA9IHNlbGY6OkdldExhbmdGcm9tSWQoIHNlbGY6OiRfZXJpZHUtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbGFuZ3VhZ2UnLCAtMSkgKTsKICAgIAogICAgIyBnZXQgcm9vdCBsYW5ndWFnZQogICAgJGNvbXB1dGVkWydyb290X2xhbmcnXSAgICAgID0gc2VsZjo6Q29tcHV0ZUZyb21Sb290KCk7CiAgICAKICAgIAogICAgIyBnZXQgYnJvd3NlcidzIGxhbmcKICAgIGlmKCRwcmVmX2Jyb3dzZXJfaG9tZSB8fCAkcHJlZl9icm93c2VyX2FsbCkKICAgIHsKICAgICAgJGNvbXB1dGVkWydicm93c2VyX2xhbmcnXSAgID0gc2VsZjo6R2V0QnJvd3NlckxhbmcoKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJGNvbXB1dGVkWydicm93c2VyX2xhbmcnXSA9IEZBTFNFOwogICAgfQogICAgCiAgICAjIGdldCByZXF1ZXN0ZWQgbGFuZwogICAgLy8kY29tcHV0ZWRbJ3JlcXVlc3RlZF9sYW5nJ10gPSBzZWxmOjpHZXRSZXF1ZXN0TGFuZygpOwogICAgJGNvbXB1dGVkWydyZXF1ZXN0ZWRfbGFuZyddID0gRkFMU0U7CiAgCiAgICAjIGdldCBkb21haW4gbGFuZwogICAgJGNvbXB1dGVkWydkb21haW5fbGFuZyddICAgID0gc2VsZjo6R2V0RG9tYWluTGFuZygpOwogICAgCiAgICAjIGdldCBmcm9tIGNvb2tpZQogICAgaWYoJHByZWZfY29va2llX2hvbWUgfHwgJHByZWZfY29va2llX2FsbCkKICAgIHsKICAgICAgJGNvbmZpZyA9ICBzZWxmOjokX2VyaWR1LT5HZXRFeHRlbmRlZENvbmZpZygpOwogICAgICAkY29tcHV0ZWRbJ2Nvb2tpZV9sYW5nJ10gICAgPSBzZWxmOjpHZXRGcm9tQ29va2llKCAkY29uZmlnWydjb29raWVfbmFtZSddICk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRjb21wdXRlZFsnY29va2llX2xhbmcnXSA9IEZBTFNFOwogICAgfQogICAgCiAgICAKICAgICMgZ2V0IGZyb20gRkVVIGxvZ2ljIGhlcmUgbmV4dAogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICMgZm9yIG5vdyBqdXN0IHNldCB0byBGQUxTRQogICAgJGNvbXB1dGVkWydGRVVfbGFuZyddICAgICAgID0gRkFMU0U7CiAgICAKICAgICMgbGFzdCBidXQgbm90IGxlYXN0IGFuZCBoYXMgcHJpb3JpdHkgb3ZlciBldmVyeXRoaW5nIGVsc2UKICAgICRjb21wdXRlZFsnc2Vzc2lvbl9sYW5nJ10gICA9IHNlbGY6OkdldExhbmdGcm9tU2Vzc2lvbigpOwogICAgCiAgICAjIG5vdyBsZXRzIGNvbXB1dGUgYnkgcHJpb3JpdHkKICAgICRjb21wdXRlZCA9IFxhcnJheV9yZXZlcnNlKCRjb21wdXRlZCk7CiAgICAKICAgICMgd2UgcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCBsYW5ndWFnZSBvYmplY3QKICAgIGZvcmVhY2goJGNvbXB1dGVkIGFzICRrID0+ICRsYW5nKQogICAgewogICAgICBpZiggJGxhbmcgaW5zdGFuY2VvZiBcRXJpZHVcbGFuZ3VhZ2UgKQogICAgICB7CiAgICAgICAgcmV0dXJuICRsYW5nOwogICAgICB9CiAgICB9CiAgICAKICAgICMgc29tZXRoaW5nIGhhcyBnb25lIGRlYWQgd3JvbmcuLi4uICAgCiAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ0Vycm9yOiBjb3VsZCBub3QgZGV0ZXJtaW5lIGEgbGFuZ3VhZ2UgdG8gYmUgdXNlZCBmb3IgdGhlIHJlcXVlc3QhJyk7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0Q3VycmVudExhbmcoKQogIHsKICAgIHNlbGY6OiRfY3VycmVudF9sYW5ndWFnZSA9IHNlbGY6Ol9jb21wdXRlX2N1cnJlbnRfbGFuZygpOwogICAgCiAgICByZXR1cm4gc2VsZjo6JF9jdXJyZW50X2xhbmd1YWdlOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX2luc2lkZV9oaWVyYXJjaHkoJGNpZCA9IC0xLCAkaW5jbHVkZV9pbmFjdGl2ZSA9IEZBTFNFKQogIHsKICAgIGlmKCRjaWQgPCAwKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICAkY3VycmVudF9yb290X2lkID0gdXRpbHM6OmdldF9yb290X2lkKCRjaWQpOwogICAgCiAgICBmb3JlYWNoKCBzZWxmOjpnZXRsYW5ndWFnZXMoJGluY2x1ZGVfaW5hY3RpdmUpIGFzICRvbmUpCiAgICB7CiAgICAgIGlmKCRvbmUtPmdldF9yb290X2lkKCkgPT09ICAkY2lkKSB7IHJldHVybiBUUlVFOyB9CiAgICB9CiAgICAKICAgIHJldHVybiBGQUxTRTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYWx0ZXJuYXRpdmVzKCRjaWQgPSAtMSkKICB7CiAgICAKICAgICRjb3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgCiAgICBpZigkY2lkID4gLTEpCiAgICB7CiAgICAgICRvdGhlcl9sYW5ndWFnZXMgPSAkY29wcy0+TG9hZENvbnRlbnRGcm9tSWQoJGNpZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5HZXRQcm9wZXJ0eVZhbHVlKCdvdGhlcl9sYW5ndWFnZXMnKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJG90aGVyX2xhbmd1YWdlcyA9ICRjb3BzLT5nZXRDb250ZW50T2JqZWN0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5HZXRQcm9wZXJ0eVZhbHVlKCdvdGhlcl9sYW5ndWFnZXMnKTsKICAgIH0KICAKICAgICRvdGhlcl9sYW5ndWFnZXMgPSAkb3RoZXJfbGFuZ3VhZ2VzID8/ICcnOwogICAgJGFsdGVybmF0aXZlcyAgICA9IFtdOwogICAgJGxpc3QgPSBcYXJyYXlfZmlsdGVyKFxleHBsb2RlKCc7JywgJG90aGVyX2xhbmd1YWdlcykgKTsKICAgIAogICAgZm9yZWFjaCgkbGlzdCBhcyAkb25lX2xhbmcpCiAgICB7CiAgICAgICRwYXJ0cyA9IFxleHBsb2RlKCc9JywgJG9uZV9sYW5nKTsKICAgICAgJGFsdGVybmF0aXZlc1skcGFydHNbMV1dID0gJHBhcnRzWzBdOwogICAgfQogICAgCiAgICByZXR1cm4gJGFsdGVybmF0aXZlczsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19zcGVjaWFsX2NvbnRlbnQoJGNpZCA9IC0xKQogIHsKICAgIHJldHVybiAhc2VsZjo6aXNfaW5zaWRlX2hpZXJhcmNoeSgkY2lkKSAmJiAhZW1wdHkoc2VsZjo6Z2V0X2FsdGVybmF0aXZlcygkY2lkKSApOwogIH0KfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.lang_entries.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgRXJpZHU7DQoNCg0KY2xhc3MgbGFuZ19lbnRyaWVzIGV4dGVuZHMgXENNU01TRXh0XGNvcmVcY29sbGVjdGlvbg0Kew0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.lang_entry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgRXJpZHU7DQoNCg0KY2xhc3MgbGFuZ19lbnRyeSAgZXh0ZW5kcyBcQ01TTVNFeHRcY29yZVxjb2xsZWN0aW9uDQp7fQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.lang_key.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgRXJpZHU7DQoNCg0KY2xhc3MgbGFuZ19rZXkgZXh0ZW5kcyBcQ01TTVNFeHRcY29yZVxjb2xsZWN0aW9uDQp7fQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.lang_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1OwpjbGFzcyBsYW5nX29wcwp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9pbml0aXRhbGl6ZWQgPSBGQUxTRTsKICBwcml2YXRlIHN0YXRpYyAkX2NtczsKICBwcml2YXRlIHN0YXRpYyAkX2RiOwogIHByaXZhdGUgc3RhdGljICRfbGFuZ19vYmo7CiAgCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2luaXRpYWxpemUoKSA6IHZvaWQKICB7CiAgICBpZighc2VsZjo6JF9pbml0aXRhbGl6ZWQpCiAgICB7CiAgICAgIHNlbGY6OiRfY21zID0gXGNtc21zKCk7CiAgICAgIHNlbGY6OiRfZGIgPSBzZWxmOjokX2Ntcy0+R2V0RGIoKTsKICAgICAgc2VsZjo6JF9pbml0aXRhbGl6ZWQgPSBUUlVFOwogICAgfSAKICB9CiAgCiAgLyoqCiAgICogZmlsdGVyIGtleXMgZm9yIGxhbmd1YWdlIGVudHJpZXMKICAgKgogICAqIEBwYXJhbSBtaXhlZCAkbmFtZQogICAqCiAgICogQHJldHVybiBzdHJpbmcKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHBsY3JlYXRlYWxpYXMoJG5hbWUpCiAgewogICAgLy8gYXMgYSBzdWdnZXN0aW9uIGZyb20gQU1ULCB0aGUgZmlyc3QgcGFydCBkZWFscyB3aXRoIHNtYXJ0IHF1b3RlcwogICAgICRzZWFyY2ggPSBbCiAgICAgICAgICAgICAgICAgIFxjaHIoMHhlMikgLiBcY2hyKDB4ODApIC4gXGNocigweDk4KSwKICAgICAgICAgICAgICAgICAgXGNocigweGUyKSAuIFxjaHIoMHg4MCkgLiBcY2hyKDB4OTkpLAogICAgICAgICAgICAgICAgICBcY2hyKDB4ZTIpIC4gXGNocigweDgwKSAuIFxjaHIoMHg5YyksCiAgICAgICAgICAgICAgICAgIFxjaHIoMHhlMikgLiBcY2hyKDB4ODApIC4gXGNocigweDlkKSwKICAgICAgICAgICAgICAgICAgXGNocigweGUyKSAuIFxjaHIoMHg4MCkgLiBcY2hyKDB4OTMpLAogICAgICAgICAgICAgICAgICBcY2hyKDB4ZTIpIC4gXGNocigweDgwKSAuIFxjaHIoMHg5NCkKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgCiAgICAgJG5hbWUgPSBcc3RyX3JlcGxhY2UoJHNlYXJjaCwgJycsICRuYW1lKTsKICAgICAvLyB0aGUgc2Vjb25kIHBhcnQgdXNlcyB0aGUgY21zIHZlcnNpb24KICAgICAkYWxpYXMgPSBcbXVuZ2Vfc3RyaW5nX3RvX3VybCh0cmltKCRuYW1lKSwgRkFMU0UpOwogICAgIHJldHVybiAkYWxpYXM7CiAgfQogIAogIC8qKgogICogcmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgdGFibGUKICAqIAogICogQHBhcmFtIG1peGVkICR0YWJsZW5hbWUKICAqIEBwYXJhbSBtaXhlZCAkd2hhdAogICogQHBhcmFtIG1peGVkICR3aGVyZQogICogQHJldHVybiBtaXhlZAogICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb3VudF9mcm9tX2RiKCR0YWJsZW5hbWUsICR3aGF0ID0gJ2lkJywgJHdoZXJlID0gYXJyYXkoKSApCiAgewogICAgc2VsZjo6X2luaXRpYWxpemUoKTsKICAgICR3aGVyZXN0cmluZyA9ICcnOwogICAgJHdoZXJldmFsdWVzID0gW107CiAgICAgICAgCiAgICBmb3JlYWNoKCR3aGVyZSBhcyAka2V5ID0+ICR2YWx1ZSkKICAgIHsKICAgICAgJHdoZXJlc3RyaW5nIC49ICgnJyA9PT0gJHdoZXJlc3RyaW5nID8gJyBXSEVSRSAnIDogJyBBTkQgJykgLiAka2V5IC4gJz0/JzsKICAgICAgJHdoZXJldmFsdWVzW10gPSAkdmFsdWU7CiAgICB9CiAgICAgICAgCiAgICAkcXVlcnkgPSAiU0VMRUNUIENPVU5UKCR3aGF0KSBjb3VudCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2VyaWR1XyR0YWJsZW5hbWUiIC4gJHdoZXJlc3RyaW5nOwogICAgJGRicmVzdWx0ID0gc2VsZjo6JF9kYi0+RXhlY3V0ZSgkcXVlcnksICR3aGVyZXZhbHVlcyk7CiAgICAgICAgCiAgICBpZiAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICB7CiAgICAgIHJldHVybiAkcm93Wydjb3VudCddOwogICAgfQogIAogICAgcmV0dXJuIDA7CiAgfQogIAogIC8qKgogICogCiAgKiBAcGFyYW0gbWl4ZWQgJGxhbmdjb2RlCiAgKiBAcmV0dXJuIG1peGVkCiAgKi8KLy8gIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0TGFuZ09iamVjdCgkbGFuZ2NvZGUpCi8vICB7Ci8vICAgIHJldHVybiAob2JqZWN0KXNlbGY6OmdldF9sYW5ndWFnZV9kZXRhaWxzKCRsYW5nY29kZSk7Ci8vICB9Ci8vICAKICAvKioKICAgKiByZXRyaWV2ZXMgbGFuZ3VhZ2UgZW50cmllcyBmb3IgYW55IGxhbmd1YWdlCiAgICoKICAgKiBAcGFyYW0gbWl4ZWQgJGxhbmcKICAgKgogICAqIEByZXR1cm4gYXJyYXkKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRfbGFuZ2VudHJpZXMoJGxhbmcpCiAgeyAgICAKICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7CiAgICAKICAgICRxdWVyeSA9ICdTRUxFQ1QgbGFuZ2tleXMuY2FwdGlvbiBjYXB0aW9uLCBsYW5nZW50cmllcy52YWx1ZSBGUk9NICcgCiAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgCiAgICAgICAgICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzIGxhbmdrZXlzIExFRlQgSk9JTiAnIAogICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpIAogICAgICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBsYW5nZW50cmllcyAnCiAgICAgICAgICAgLiAnIE9OIGxhbmdrZXlzLmlkID0gbGFuZ2VudHJpZXMuc3RyaW5naWQgJwogICAgICAgICAgIC4gJyBXSEVSRSBsYW5nZW50cmllcy5sYW5naWQ9Pyc7CiAgICAgICAgICAgCiAgICAkZGJyZXN1bHQgPSBzZWxmOjokX2RiLT5FeGVjdXRlKCRxdWVyeSwgWyRsYW5nXSk7CiAgICAkb3V0cHV0ID0gW107CiAgICAgICAgCiAgICB3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgIHsKICAgICAgJG91dHB1dFskcm93WydjYXB0aW9uJ11dID0gJHJvd1sndmFsdWUnXSA/IDogJyc7CiAgICB9CiAgICAKICAgIHJldHVybiAkb3V0cHV0OwogIH0KICAKLy8gIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZF9hbGxfbGFuZ19lbnRyaWVzKCkKLy8gIHsKLy8gICAgc3RhdGljICRlbnRyaWVzOwovLwovLyAgICBpZihOVUxMID09PSAkZW50cmllcykKLy8gICAgewovLyAgICAgICRsYW5ncyA9IGxhbmd1YWdlczo6R2V0Rm9yRWRpdGluZygpOwovLwovLyAgICAgIGZvcmVhY2goYXJyYXlfa2V5cygkbGFuZ3MpIGFzICRsYW5nKQovLyAgICAgIHsKLy8gICAgICAgICRlbnRyaWVzCi8vICAgICAgfQovLyAgICB9Ci8vICB9CiAgCiAgLyoqCiAgICogcGFyc2UgJF9TRVJWRVJbIkhUVFBfQUNDRVBUX0xBTkdVQUdFIl0KICAgKgogICAqIGJhc2VkIG9uIERhcnJpbiBZZWFnZXIncyBjb2RlCiAgICogQ29weXJpZ2h0IMKpIDIwMDggRGFycmluIFllYWdlcgogICAqIGh0dHBzOi8vd3d3LmR5ZWFnZXIub3JnLwogICAqIExpY2Vuc2VkIHVuZGVyIEJTRCBsaWNlbnNlLgogICAqIGh0dHBzOi8vd3d3LmR5ZWFnZXIub3JnL2Rvd25sb2Fkcy9saWNlbnNlLWJzZC50eHQKICAgKgogICAqIEBwYXJhbSBtaXhlZCAkYWNjZXB0IC0gaG9sZHMgJF9TRVJWRVJbIkhUVFBfQUNDRVBUX0xBTkdVQUdFIl0gY29udGVudAogICAqCiAgICogQHJldHVybnMgc3RyaW5nIC0gdGhlIDFzdCBoaWdoZXN0IHEtdmFsdWUgbGFuZ3VhZ2UKICAgKiBAcmV0dXJuIGJvb2x8aW50fHN0cmluZwogICAqLwogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9wYXJzZV9odHRwX2FsKCRhY2NlcHQpCiAgewogICAgJGRlZmxhbmcgPSBGQUxTRTsKICAgIAogICAgaWYoIWVtcHR5KCRhY2NlcHQpICYmIFxzdHJsZW4oJGFjY2VwdCkgPiAxKQogICAgewogICAgICAjIFNwbGl0IHBvc3NpYmxlIGxhbmd1YWdlcyBpbnRvIGFycmF5ICAgICAgICAKICAgICAgJHRtcF9sYW5ncyA9IFxleHBsb2RlKCcsJywgJGFjY2VwdCk7CiAgICAgIAogICAgICAkbGFuZ3MgPSBhcnJheSgpOwogICAgICBmb3JlYWNoICgkdG1wX2xhbmdzIGFzICRsYW5nKSAKICAgICAgewogICAgICAgICMgY2hlY2sgZm9yIHEtdmFsdWUgYW5kIGNyZWF0ZSBhc3NvY2lhdGl2ZSBhcnJheS4KICAgICAgICBpZiggXHByZWdfbWF0Y2goJy8oLiopO3E9KFswLTFdezAsMX0uXGR7MCw0fSkvaScsICRsYW5nLCAkbWF0Y2hlcykgKQogICAgICAgIHsKICAgICAgICAgICRsYW5nc1skbWF0Y2hlc1sxXV0gPSAoZmxvYXQpJG1hdGNoZXNbMl07IAogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgIyBObyBxLXZhbHVlIG1lYW5zIDEKICAgICAgICAgICRsYW5nc1skbGFuZ10gPSAxLjA7CiAgICAgICAgfQogICAgICB9CgogICAgICAjcmV0dXJuIGRlZmF1bHQgbGFuZ3VhZ2UgKGhpZ2hlc3QgcS12YWx1ZSkKICAgICAgJHEgPSAwLjA7CiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRrID0+ICR2KSAKICAgICAgewogICAgICAgIGlmKCR2ID4gJHEpIAogICAgICAgIHsKICAgICAgICAgICRxID0gKGZsb2F0KSR2OwogICAgICAgICAgJGRlZmxhbmcgPSAkazsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICRkZWZsYW5nOyAgICAKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRQcmVmZXJyZWRCcm93c2VyTGFuZygpCiAgewogICAgJGFjY2VwdCA9IGlzc2V0KCRfU0VSVkVSWyJIVFRQX0FDQ0VQVF9MQU5HVUFHRSJdKSA/ICRfU0VSVkVSWyJIVFRQX0FDQ0VQVF9MQU5HVUFHRSJdIDogTlVMTDsKICAgIHJldHVybiBzZWxmOjpfcGFyc2VfaHR0cF9hbCgkYWNjZXB0KTsgCiAgfQoKICAKICAvLyByZXR1cm5zIFRSVUUgaWYgJGNvZGUgaXMgYW4gYWN0aXZlIGxhbmd1YWdlCi8vICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX2xhbmd1YWdlKCRjb2RlKQovLyAgewovLyAgICBpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpICAkdGhpcy0+cmV0cmlldmVfbGFuZ3VhZ2VzKCk7Ci8vICAgIGlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgIHJldHVybiBGQUxTRTsKLy8gICAgJHJlc3VsdCA9IGlzc2V0KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRjb2RlXSk7Ci8vICAgIGlmKCEkcmVzdWx0KSBlY2hvICRjb2RlLicgaXMgbm90IGEgbGFuZ3VhZ2UnOwovLyAgICByZXR1cm4gJHJlc3VsdDsKLy8gIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_plugins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgRXJpZHU7CgpmaW5hbCBjbGFzcyBzbWFydHlfcGx1Z2lucwp7CiAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsgfQogIAogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9tb2QoKSA6IFxDbXNNb2R1bGUKICB7CiAgICByZXR1cm4gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRyZWFsbSgkcGFyYW1zLCAkdGVtcGxhdGUpCiAgewogICAgJHJlYWxtICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAncmVhbG0nKTsKICAgICRhc3NpZ24gPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2Fzc2lnbicpOwogICAgCiAgICAkbW9kICAgICAgICA9IHNlbGY6OmdldF9tb2QoKTsKICAgICR0cmFuc2xhdG9yID0gJG1vZC0+Z2V0X3RyYW5zbGF0b3IoKTsKICAgIGlmKCEkcmVhbG0pCiAgICB7CiAgICAgICRyZWFsbSA9IFRyYW5zbGF0b3I6OkRGTFRfUkVBTE07CiAgICB9CiAgICAkdHJhbnNsYXRvci0+c2V0X3JlYWxtKCRyZWFsbSk7CiAgICBpZigkYXNzaWduKQogICAgewogICAgICAkb3V0ID0gJHRyYW5zbGF0b3ItPmdldF9hbGxfdHJhbnNsYXRpb25zKCk7CiAgICAgICR0ZW1wbGF0ZS0+YXNzaWduKCRhc3NpZ24sICRvdXQpOwogICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldGFsbCgkcGFyYW1zLCAkdGVtcGxhdGUpCiAgewogICAgJG1vZCAgICAgICAgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAkdHJhbnNsYXRvciA9ICRtb2QtPmdldF90cmFuc2xhdG9yKCk7CiAgICAkYXNzaWduICAgICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnYXNzaWduJyk7CiAgICBpZighJGFzc2lnbikKICAgIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgCiAgICAkb3V0ID0gJHRyYW5zbGF0b3ItPmdldF9hbGxfdHJhbnNsYXRpb25zKCk7CiAgICAkdGVtcGxhdGUtPmFzc2lnbigkYXNzaWduLCAkb3V0KTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cmFuc2xhdGUoJHBhcmFtcywgJHRlbXBsYXRlKQogIHsKICAgICRrZXkgICAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2snKTsKICAgICRrZXkgICAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2tleScsICRrZXkpOwogICAgJGFzc2lnbiA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnYXNzaWduJyk7CiAgICAkZGZsdCAgID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdkZmx0Jyk7CiAgICAKICAgICRwYXJtcyA9IFtdOwogICAgZm9yZWFjaCgkcGFyYW1zIGFzICR4a2V5ID0+ICR2YWwpCiAgICB7CiAgICAgIGlmKCFcc3RhcnRzd2l0aCgkeGtleSwgJ18nKSkgeyBjb250aW51ZTsgfQogICAgICAKICAgICAgJHhrZXkgICAgICAgICA9IFxzdWJzdHIoJHhrZXksIDEpOwogICAgICAkcGFybXNbJHhrZXldID0gJHZhbDsKICAgIH0KICAgIAogICAgJG1vZCAgICAgICAgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAkdHJhbnNsYXRvciA9ICRtb2QtPmdldF90cmFuc2xhdG9yKCk7CiAgICAkc3RyICAgICAgICA9ICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJGtleSwgJHBhcm1zKTsKICAgIAogICAgaWYoISRzdHIpCiAgICB7CiAgICAgICRzdHIgPSAkZGZsdDsKICAgIH0gLy8gY29tcGxldGVseSB1bmtub3duIGtleSAobm90IGV2ZW4gaW4gZW5nbGlzaCkKICAgIAogICAgaWYoJGFzc2lnbikKICAgIHsKICAgICAgJHRlbXBsYXRlLT5hc3NpZ24oJGFzc2lnbiwgJHN0cik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIHJldHVybiAkc3RyOwogICAgfQogIH0KICAKICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEkxOE4oJHBhcmFtcywgJHRlbXBsYXRlKQogIHsKICAgICRrZXkgICAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2snKTsKICAgICRrZXkgICAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2tleScsICRrZXkpOwogICAgJGFzc2lnbiA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnYXNzaWduJyk7CiAgCiAgICAkcGFybXMgPSBbXTsKICAgIAogICAgZm9yZWFjaCgkcGFyYW1zIGFzICR4a2V5ID0+ICR2YWwpCiAgICB7CiAgICAgIGlmKCAhXHN0YXJ0c3dpdGgoJHhrZXksICdfJykgKSB7IGNvbnRpbnVlOyB9CiAgICAgIAogICAgICAkeGtleSAgICAgICAgID0gXHN1YnN0cigkeGtleSwgMSk7CiAgICAgICRwYXJtc1skeGtleV0gPSAkdmFsOwogICAgfQogICAgCiAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsKICAKICAgICR0cmFuc2xhdG9yID0gJG1vZC0+Z2V0X3RyYW5zbGF0b3IoKTsKICAgIAogICAgJHN0ciA9ICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJGtleSwgJHBhcm1zKTsKICAKICAgIGlmKCRhc3NpZ24pCiAgICB7CiAgICAgICR0ZW1wbGF0ZS0+YXNzaWduKCRhc3NpZ24sICRzdHIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICByZXR1cm4gJHN0cjsKICAgIH0KICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBvcHRpb25zKCRwYXJhbXMsICR0ZW1wbGF0ZSkKICB7CiAgICAkcmVhbG0gICAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ3JlYWxtJyk7CiAgICAkc2VsZWN0ZWQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ3NlbGVjdGVkJyk7CiAgICAKICAgICRtb2QgICAgICAgID0gc2VsZjo6Z2V0X21vZCgpOwogICAgJHRyYW5zbGF0b3IgPSAkbW9kLT5nZXRfdHJhbnNsYXRvcigpOwogICAgJG9yaWdfcmVhbG0gPSAkdHJhbnNsYXRvci0+Z2V0X3JlYWxtKCk7CiAgICAkdHJhbnNsYXRvci0+c2V0X3JlYWxtKCRyZWFsbSk7CiAgICAkbGlzdCA9ICR0cmFuc2xhdG9yLT5nZXRfYWxsX3RyYW5zbGF0aW9ucygpOwogICAgJHRyYW5zbGF0b3ItPnNldF9yZWFsbSgkb3JpZ19yZWFsbSk7CiAgICAKICAgIGlmKCAhXGNvdW50KCRsaXN0KSApIHsgcmV0dXJuOyB9CiAgICAKICAgICRvdXQgPSBOVUxMOwogICAgCiAgICBmb3JlYWNoKCRsaXN0IGFzICRrZXkgPT4gJHN0cikKICAgIHsKICAgICAgJG91dCAuPSBcQ21zRm9ybVV0aWxzOjpjcmVhdGVfb3B0aW9uKFsndmFsdWUnID0+ICRrZXksICdsYWJlbCcgPT4gJHN0cl0sICRzZWxlY3RlZCk7CiAgICB9CiAgICAKICAgIHJldHVybiAkb3V0OwogIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1OwoKY2xhc3Mgc21hcnR5X3V0aWxzCnsKICBwcml2YXRlIHN0YXRpYyAkX2luaXRpdGFsaXplZCA9IEZBTFNFOwogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2U7CiAgcHJpdmF0ZSBzdGF0aWMgJF9lcmlkdTsKICBwcml2YXRlIHN0YXRpYyAkX2NtczsKICBwcml2YXRlIHN0YXRpYyAkX3NtYXJ0eTsKICBwcml2YXRlIHN0YXRpYyAkX2RiOwogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVnaXN0ZXIoKQogIHsKICAgICRpbnN0YW5jZSA9IHNlbGY6Ol9pbnN0YW5jaWF0ZSgpOwogICAgc2VsZjo6JF9jbXMgPSBcY21zbXMoKTsKICAgIHNlbGY6OiRfc21hcnR5ID0gc2VsZjo6JF9jbXMtPkdldFNtYXJ0eSgpOwogICAgIyBhIHNtYWxsIGhhY2sgdG8ga2VlcCBhbGwgb24gdGhpcyBjbGFzcwogICAgc2VsZjo6JF9zbWFydHktPnJlZ2lzdGVyUGx1Z2luKCAnYmxvY2snLCAneGw4JywgYXJyYXkoIHNlbGY6OiRfaW5zdGFuY2UsICdfYmxvY2tfZG9fdHJhbnNsYXRpb24nKSApOwogICAgc2VsZjo6JF9zbWFydHktPnJlZ2lzdGVyUGx1Z2luKCAnbW9kaWZpZXInLCAneGw4JywgYXJyYXkoIHNlbGY6OiRfaW5zdGFuY2UsICdfbW9kaWZpZXJfZG9fdHJhbnNsYXRpb24nKSApOwogIH0KICAKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaW5zdGFuY2lhdGUoKQogIHsKICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9pbnN0YW5jZSkgICkgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyBzZWxmOwogIH0KICAKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpCiAgewogICAgaWYoIXNlbGY6OiRfaW5pdGl0YWxpemVkKQogICAgewogICAgICBzZWxmOjokX2RiID0gc2VsZjo6JF9jbXMtPkdldERiKCk7CiAgICAgIHNlbGY6OiRfZXJpZHUgPSBzZWxmOjokX2Ntcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0VyaWR1Jyk7CiAgICAgIHNlbGY6OiRfaW5pdGl0YWxpemVkID0gVFJVRTsKICAgIH0KICB9CiAgCiAgc3RhdGljIGZ1bmN0aW9uIF9ibG9ja19kb190cmFuc2xhdGlvbigkcGFyYW1zLCAkY29udGVudCwgJHNtYXJ0eSwgJiRyZXBlYXQpCiAgewogICAgc2VsZjo6X2luaXRpYWxpemUoKTsKICAgIGlmIChpc3NldCgkY29udGVudCkpIAogICAgewogICAgICAvLyBkbyBzb21lIHRyYW5zbGF0aW9uIHdpdGggJGNvbnRlbnQKICAgICAgaWYoISRyZXBlYXQpCiAgICAgIHsKICAgICAgICByZXR1cm4gJ3xibG9jazogJyAuICRjb250ZW50IC4gJzogYmxvY2t8JzsKICAgICAgfQogICAgICBlbHNlIAogICAgICB7CiAgICAgICAgcmV0dXJuICcqYmxvY2s6ICcgLiAkY29udGVudCAuICc6IGJsb2NrKic7CiAgICAgIH0KICAgIH0KICB9CiAgCiAgc3RhdGljIGZ1bmN0aW9uIF9tb2RpZmllcl9kb190cmFuc2xhdGlvbigkdmFsdWUsICRsYW5nID0gJycpCiAgewogICAgc2VsZjo6X2luaXRpYWxpemUoKTsKICAgIHJldHVybiAnbW9kaWZpZXInOwogIH0KfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_xl8r.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1OwpjbGFzcyBzbWFydHlfeGw4cgp7CgogIC8qKgogICogZm9yIHRlc3Rpbmc6IG1heSBiZSByZW1vdmVkIG9yIGNoYW5nZWQgd2l0aG91dCBub3RpY2UKICAqIAogICogQHBhcmFtIG1peGVkICRuYW1lCiAgKiBAcGFyYW0gbWl4ZWQgJGFyZ3VtZW50cwogICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBfX2NhbGxTdGF0aWMoJG5hbWUsICRhcmd1bWVudHMpCiAgewogICAgICAvLyBOb3RlOiB2YWx1ZSBvZiAkbmFtZSBpcyBjYXNlIHNlbnNpdGl2ZS4KICAgICAgZWNobyAiQ2FsbGluZyBzdGF0aWMgbWV0aG9kICckbmFtZScgIgogICAgICAgICAgIC4gaW1wbG9kZSgnLCAnLCAkYXJndW1lbnRzKS4gIlxuIjsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMYW5nKCkKICB7CiAgICByZXR1cm4gXEVyaWR1XGxhbmd1YWdlczo6R2V0Q3VycmVudExhbmcoKS0+dG9BcnJheSgpOwogIH0gIAogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTGFuZ09iaigpCiAgewogICAgcmV0dXJuIFxFcmlkdVxsYW5ndWFnZXM6OkdldEN1cnJlbnRMYW5nKCk7CiAgfQogICAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMYW5nQ29kZSgpCiAgewogICAgJHJldCA9IFxFcmlkdVxsYW5ndWFnZXM6OkdldEN1cnJlbnRMYW5nKCktPnRvQXJyYXkoKTsKICAgIHJldHVybiAkcmV0WydsYW5nY29kZSddOwogIH0KICAgICAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBocmVmbGFuZygkbW9kZSA9ICdkJykKICB7CiAgICAkbW9kZSA9IHN0cnRvbG93ZXIoJG1vZGUpOwogICAgCiAgICBzd2l0Y2ggKCRtb2RlKSAKICAgIHsKICAgICAgIGNhc2UgJ2wnOgogICAgICAgICAgcmV0dXJuIFxFcmlkdVxsYW5ndWFnZXM6OkdldEN1cnJlbnRMYW5nKCktPmdldF9ocmVmbGFuZ19sb3dlcigpOwogICAgICAgICBicmVhazsKICAgICAgICAgIAogICAgICAgY2FzZSAndSc6CiAgICAgICAgICByZXR1cm4gXEVyaWR1XGxhbmd1YWdlczo6R2V0Q3VycmVudExhbmcoKS0+Z2V0X2hyZWZsYW5nX3VwcGVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgICBjYXNlICdkJzogIAogICAgICAgZGVmYXVsdDoKICAgICAgICAgIHJldHVybiBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRDdXJyZW50TGFuZygpLT5nZXRfaHJlZmxhbmcoKTsKICAgICAgICAgYnJlYWs7CiAgICB9CgogIH0KICAKICBzdGF0aWMgZnVuY3Rpb24gR2V0TGFuZ3MoKQogIHsKICAgIHJldHVybiBcRXJpZHVcbGFuZ3VhZ2VzOjpnZXRsYW5ndWFnZXMoKTsKICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.translation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1OwpjbGFzcyB0cmFuc2xhdGlvbiBpbXBsZW1lbnRzIFxBcnJheUFjY2Vzcwp7CiAgcHJpdmF0ZSAkX2RhdGE7CiAgCiAgLyoqCiAgKiBAcGFyYW0gYXJyYXkgJGRhdGEKICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJGRhdGEgPSBhcnJheSgpICkKICB7CiAgICAkdGhpcy0+X2RhdGEgPSAkZGF0YTsKICB9CiAgCiAgLyoqCiAgICogR2V0IGEgZGF0YSBieSBrZXkKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGtleSBkYXRhIHRvIHJldHJpZXZlCiAgICoKICAgKiBAYWNjZXNzIHB1YmxpYwogICAqIEByZXR1cm4gc3RyaW5nCiAgICovCiAgcHVibGljIGZ1bmN0aW9uICZfX2dldCAoJGtleSkgCiAgewogICAgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICB9CgogIC8qKgogICogQXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgZGF0YQogICoKICAqIEBwYXJhbSBzdHJpbmcgVGhlIGRhdGEga2V5IHRvIGFzc2lnbiB0aGUgdmFsdWUgdG8KICAqIEBwYXJhbSBtaXhlZCAgVGhlIHZhbHVlIHRvIHNldAogICogQGFjY2VzcyBwdWJsaWMKICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCAkdmFsdWUpIAogIHsKICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICB9CiAgCiAgLyoqCiAgKiBAcGFyYW0gbWl4ZWQgJGtleQogICogQHJldHVybnMgc3RyaW5nCiAgKi8KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpIAogIHsKICAgIHJldHVybiBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pOwogIH0KCiAgLyoqCiAgKiBAcGFyYW0gbWl4ZWQgJGtleQogICogQHJldHVybnMgc3RyaW5nCiAgKi8KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpIAogIHsKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgCiAgICB7CiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICB9CiAgfQoKICAvKioKICAqIEBwYXJhbSBtaXhlZCAka2V5CiAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCiAgKi8KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrZXksICR2YWx1ZSkgCiAgewogICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogIH0KCiAgLyoqCiAgKiBAcGFyYW0gbWl4ZWQgJGtleQogICovCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFVuc2V0KCRrZXkpIAogIHsKICAgIHVuc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CiAgfQogIAogIC8qKgogICogQHBhcmFtIG1peGVkICRrZXkKICAqIEByZXR1cm5zIHN0cmluZwogICovCiAgcHVibGljIGZ1bmN0aW9uIGdldCgka2V5KQogIHsgCiAgICBpZiggc2VsZjo6ZXhpc3RzKCRrZXkpICkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICAgIH0KICB9CgogIC8qKgogICogQHBhcmFtIG1peGVkICRrZXkKICAqIEBwYXJhbSBtaXhlZCAkdmFsdWUKICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXQoJGtleSwgJHZhbHVlKQogIHsKICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICB9CgogIC8qKgogICogQHBhcmFtIG1peGVkICRrZXkKICAqLwogIHB1YmxpYyBmdW5jdGlvbiBlcmFzZSgka2V5KQogIHsKICAgICR0aGlzLT5vZmZzZXRVbnNldCgka2V5KTsKICB9CiAgCiAgLyoqCiAgKiBjbGVhcnMgYWxsIGRhdGEgCiAgKi8KICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJfYWxsKCkKICB7CiAgICAkdGhpcy0+X2RhdGEgPSBbXTsKICB9CiAgCiAgLyoqCiAgKiBAcGFyYW0gbWl4ZWQgJGEKICAqIEBwYXJhbSBtaXhlZCAkbWVyZ2UKICAqLwogIHB1YmxpYyBmdW5jdGlvbiBmcm9tX2FycmF5KCRhID0gYXJyYXkoKSwgJG1lcmdlID0gRkFMU0UpIDogdm9pZAogIHsKICAgIGlmKCRtZXJnZSkKICAgIHsKICAgICAgXGFycmF5X21lcmdlKCR0aGlzLT5fZGF0YSwgJGEpOwogICAgfSAgICAgIAogICAgZWxzZQogICAgewogICAgICAkdGhpcy0+X2RhdGEgPSAkYTsKICAgIH0KICB9CiAgCiAgLyoqCiAgKiBmb3JtYXRzIGRhdGEgaWYgY29udmVydGVkIHRvIHN0cmluZwogICogQHJldHVybnMgc3RyaW5nCiAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpCiAgewogICAgJHJldCA9IFtdOwogICAgZm9yZWFjaCgkdGhpcy0+X2RhdGEgYXMgJGsgPT4gJHYpCiAgICB7CiAgICAgICRyZXRbXSA9ICRrIC4gJz0nIC4gJHY7CiAgICB9CiAgICByZXR1cm4gXGltcGxvZGUoJywnLCAkcmV0KTsKICB9CiAgCiAgLyoqCiAgICogYWxsb3dzIHRoZSBjbGFzcyB0byBiZSB1c2VkIGFzIGEgZnVuY3Rpb24KICAgKiBleDoKICAgKiAkZW5nbGlzaCA9IG5ldyBcRXJpZHVcdHJhbnNsYXRpb24oYXJyYXkoJ2ZvbycgPT4gJ2JhcikpOwogICAqICRlbmdsaXNoKCdmb28nKSByZXR1cm5zICdiYXInOwogICAqCiAgICogQHBhcmFtIG1peGVkICRrZXkKICAgKgogICAqIEByZXR1cm4gc3RyaW5nCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIF9faW52b2tlKCRrZXkpCiAgewogICAgcmV0dXJuICR0aGlzLT5vZmZzZXRHZXQoJGtleSk7CiAgfQogIAp9IAo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Translator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgRXJpZHU7CgpjbGFzcyBUcmFuc2xhdG9yCnsKICBjb25zdCBERkxUX0xBTkcgID0gJ2VuX1VTJzsKICBjb25zdCBERkxUX1JFQUxNID0gJ2RlZmF1bHQnOwogIHByaXZhdGUgJF9kYW87CiAgcHJpdmF0ZSAkX2RhdGEgPSBbXTsKICBwcml2YXRlICRfY3VyX3JlYWxtOwogIHByaXZhdGUgJF9jdXJfbGFuZzsKICBwcml2YXRlICRfc3RhcnRlZDsKICAKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTGFuZ0RBTyAkZGFvKQogIHsKICAgICR0aGlzLT5fZGFvID0gJGRhbzsKICB9CiAgCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoKQogIHsKICAgIGlmKCR0aGlzLT5fc3RhcnRlZCkKICAgIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgJHRoaXMtPl9zdGFydGVkID0gMTsKICAgIAogICAgLy8gZ2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlCiAgICAkdGhpcy0+X2N1cl9sYW5nID0gXENtc05sc09wZXJhdGlvbnM6OmdldF9jdXJyZW50X2xhbmd1YWdlKCk7CiAgICAKICAgIC8vIGxvYWQgdGhlIGRlZmF1bHQgcmVhbG0sIGFuZCBzZXQgaXQgYXMgdGhlIGRlZmF1bHQuCiAgICAkdGhpcy0+c2V0X3JlYWxtKHNlbGY6OkRGTFRfUkVBTE0pOwogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gaXNfcmVhbG1fbG9hZGVkKCRyZWFsbSkKICB7CiAgICByZXR1cm4gXGFycmF5X2tleV9leGlzdHMoJHJlYWxtLCAkdGhpcy0+X2RhdGEpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3JlYWxtKCRyZWFsbSkKICB7CiAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgJHRoaXMtPl9jdXJfcmVhbG0gPSAkcmVhbG07CiAgICAKICAgIGlmKCR0aGlzLT5pc19yZWFsbV9sb2FkZWQoJHJlYWxtKSkgeyByZXR1cm47IH0KICAgIAogICAgJGRhdGEgPSAkdGhpcy0+X2Rhby0+bG9hZF9yZWFsbSgkcmVhbG0pOwogICAgCiAgICBpZighaXNzZXQoJGRhdGFbc2VsZjo6REZMVF9MQU5HXSkpIHsgcmV0dXJuOyB9CiAgICAKICAgICR0aGlzLT5fZGF0YVskcmVhbG1dW3NlbGY6OkRGTFRfTEFOR10gPSAkZGF0YVtzZWxmOjpERkxUX0xBTkddOwogICAgCiAgICBpZigkdGhpcy0+X2N1cl9sYW5nICE9IHNlbGY6OkRGTFRfTEFORyAmJiBpc3NldCgkZGF0YVskdGhpcy0+X2N1cl9sYW5nXSkpCiAgICB7CiAgICAgICR0aGlzLT5fZGF0YVskcmVhbG1dWyR0aGlzLT5fY3VyX2xhbmddID0gJGRhdGFbJHRoaXMtPl9jdXJfbGFuZ107CiAgICB9CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcmVhbG0oKQogIHsKICAgICR0aGlzLT5pbml0aWFsaXplKCk7CiAgICAKICAgIHJldHVybiAkdGhpcy0+X2N1cl9yZWFsbTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9sYW5nKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9jdXJfbGFuZzsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIHNldF9sYW5nKCRsYW5nKQogIHsKICAgICR0aGlzLT5pbml0aWFsaXplKCk7CiAgICAkdGhpcy0+X2N1cl9sYW5nID0gXHRyaW0oJGxhbmcpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FsbF90cmFuc2xhdGlvbnMoKQogIHsKICAgICR0aGlzLT5pbml0aWFsaXplKCk7CiAgICAkbGFuZyA9ICR0aGlzLT5fY3VyX2xhbmc7CiAgICAkb3V0ICA9ICR0aGlzLT5fZGF0YVskdGhpcy0+X2N1cl9yZWFsbV1bc2VsZjo6REZMVF9MQU5HXTsKICAgIAogICAgaWYoJGxhbmcgPT0gc2VsZjo6REZMVF9MQU5HKSB7IHJldHVybiAkb3V0OyB9CiAgICAKICAgIGZvcmVhY2goJG91dCBhcyAka2V5ID0+ICYkdmFsdWUpCiAgICB7CiAgICAgICR2YWx1ZSA9ICR0aGlzLT50cmFuc2xhdGUoJGtleSk7CiAgICB9CiAgICAKICAgIHJldHVybiAkb3V0OwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNsYXRlKCRrZXksIGFycmF5ICRwYXJtcyA9IE5VTEwpCiAgewogICAgJGRvX3JlcGxhY2VtZW50cyA9IHN0YXRpYyBmdW5jdGlvbigkc3RyLCBhcnJheSAkcGFybXMgPSBOVUxMKQogICAgewogICAgICBpZihcaXNfYXJyYXkoJHBhcm1zKSAmJiBcY291bnQoJHBhcm1zKSkKICAgICAgewogICAgICAgIGZvcmVhY2goJHBhcm1zIGFzICRrZXkgPT4gJHZhbCkKICAgICAgICB7CiAgICAgICAgICAkaW5rZXkgPSAnIyMnIC4gJGtleTsKICAgICAgICAgICRzdHIgICA9IFxzdHJfcmVwbGFjZSgkaW5rZXksICR2YWwsICRzdHIpOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgcmV0dXJuICRzdHI7CiAgICB9OwogICAgCiAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgJGN1cl9yZWFsbSA9ICR0aGlzLT5fY3VyX3JlYWxtOwogICAgJGxhbmcgICAgICA9ICR0aGlzLT5fY3VyX2xhbmc7CiAgCiAgICAkb3V0ID0gJHRoaXMtPl9kYXRhWyRjdXJfcmVhbG1dW3NlbGY6OkRGTFRfTEFOR11bJGtleV0gPz8gTlVMTDsKICAgIAogICAgaWYoISRvdXQpCiAgICB7CiAgICAgIFxkZWJ1Z190b19sb2coIkVyaWR1IC0tIE1pc3NpbmcgZW5fVVMgZW50cnkgZm9yIGtleT0ka2V5IGluIHJlYWxtPSRjdXJfcmVhbG0iKTsKICAgIH0KICAgIGlmKCRsYW5nID09IHNlbGY6OkRGTFRfTEFORyB8fCAhaXNzZXQoJHRoaXMtPl9kYXRhWyRjdXJfcmVhbG1dWyRsYW5nXSkpCiAgICB7CiAgICAgIHJldHVybiAkZG9fcmVwbGFjZW1lbnRzKCRvdXQsICRwYXJtcyk7CiAgICB9CiAgICAKICAgIC8vIG5vdCBkZWZhdWx0IGxhbmd1YWdlLi4uCiAgICBpZihpc3NldCgkdGhpcy0+X2RhdGFbJGN1cl9yZWFsbV1bJGxhbmddWyRrZXldKSkKICAgIHsKICAgICAgJG91dCA9ICR0aGlzLT5fZGF0YVskY3VyX3JlYWxtXVskbGFuZ11bJGtleV07CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIFxkZWJ1Z190b19sb2coIkVyaWR1IC0tIE1pc3NpbmcgbGFuZyBlbnRyeSBmb3Iga2V5PSRrZXkgaW4gcmVhbG09JGN1cl9yZWFsbSBmb3IgbGFuZ3VhZ2UgJGxhbmciKTsKICAgIH0KICAgIAogICAgcmV0dXJuICRkb19yZXBsYWNlbWVudHMoJG91dCwgJHBhcm1zKTsKICB9Cn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEVyaWR1Owp1c2UgQ29udGVudE9wZXJhdGlvbnM7CgpjbGFzcyB1dGlscwp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9pbml0aXRhbGl6ZWQ7CiAgcHJpdmF0ZSBzdGF0aWMgJF9jb3VudHJ5X2NvZGVzOwogIHByaXZhdGUgc3RhdGljICRfbGFuZ19jb2RlczsKICBwcml2YXRlIHN0YXRpYyAkX2JjcDQ3Y29kZXM7CiAgcHJpdmF0ZSBzdGF0aWMgJF9jb25maWc7CiAgCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2luaXRpYWxpemUoKQogIHsKICAgIGlmKCFzZWxmOjokX2luaXRpdGFsaXplZCkKICAgIHsKICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoX19OQU1FU1BBQ0VfXyk7CiAgICAgIHNlbGY6OiRfY29uZmlnID0gJG1vZC0+R2V0RXh0ZW5kZWRDb25maWcoKTsKICAgICAgc2VsZjo6JF9pbml0aXRhbGl6ZWQgPSBUUlVFOwogICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X2lkKCkKICB7CiAgICByZXR1cm4gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRDb250ZW50T2JqZWN0KCktPklkKCk7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Jvb3RfaWQoJGN1cnJlbnRfaWQgPSBOVUxMKQogIHsKICAgICRnQ21zID0gXGNtc21zKCk7CiAgICAKICAgIC8qKiBAdmFyIFxjbXNfY29udGVudF90cmVlICRobSAgKi8KICAgICRobSA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAKICAgIGlmKCAhaXNzZXQoJGN1cnJlbnRfaWQpICkgCiAgICB7CiAgICAgICRjb250ZW50b3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgICAkY29udGVudF9vYmogPSAkY29udGVudG9wcy0+Z2V0Q29udGVudE9iamVjdCgpOwogICAgICBpZiggIVxpc19vYmplY3QoJGNvbnRlbnRfb2JqKSApIHsgcmV0dXJuIC0xOyB9CiAgICAgICRjdXJyZW50X2lkID0gJGNvbnRlbnRfb2JqLT5JZCgpOwogICAgICBpZihOVUxMID09PSAkY3VycmVudF9pZCkgeyByZXR1cm4gJGN1cnJlbnRfaWQ7IH0KICAgIH0KICAgIAogICAgJHN0YWNrID0gW107CiAgICAkbm9kZSA9ICRobS0+ZmluZF9ieV90YWcoJ2lkJywgJGN1cnJlbnRfaWQpOwogICAgCiAgICB3aGlsZSggJG5vZGUgJiYgJG5vZGUtPmdldF90YWcoJ2lkJykgPiAwICkKICAgIHsKICAgICAgJHN0YWNrW10gPSAkbm9kZTsKICAgICAgJG5vZGUgPSAkbm9kZS0+Z2V0UGFyZW50KCk7CiAgICB9CiAgICAKICAgICRjb3VudCA9IFxjb3VudCgkc3RhY2spOwogICAgCiAgICBpZigwID09PSAkY291bnQpIHsgcmV0dXJuIC0xOyB9CiAgICAKICAgICRpbmRleCA9ICRjb3VudCAtIDE7CiAgICAKICAgICRpZCA9ICRzdGFja1skaW5kZXhdLT5nZXRfdGFnKCdpZCcpOwogICAgCiAgICByZXR1cm4gJGlkOwogIH0gCiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRGaWxlQ29udGVudCgkZmlsZW5hbWUpCiAgewogICAgJGZpbGVwYXRoID0gZGlybmFtZSggZGlybmFtZShfX0ZJTEVfXykgKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWU7CiAgICAKICAgIGlmKCBmaWxlX2V4aXN0cygkZmlsZXBhdGgpICkKICAgIHsKICAgICAgJGZoYW5kbGUgPSBmb3BlbigkZmlsZXBhdGgsICdyKycpOwogICAgICAkY29udGVudCA9IGZyZWFkKCAkZmhhbmRsZSwgZmlsZXNpemUoJGZpbGVwYXRoKSApOwogICAgICByZXR1cm4gJGNvbnRlbnQ7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CiAgCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2RhdGFfZnJvbV9jc3YoJGZuID0gJycsICRoZWFkaW5ncyA9IFRSVUUsICRmbGlwID0gRkFMU0UsICRjbGVhbiA9IFRSVUUpCiAgewogICAgJHJldCA9IEZBTFNFOwogICAgCiAgICBpZiggaXNfcmVhZGFibGUoJGZuKSApCiAgICB7CiAgICAgICRoID0gZm9wZW4oJGZuLCAncicpOwogICAgICAKICAgICAgJHJldCA9IGFycmF5KCk7CiAgICAgIHdoaWxlKCAoJGRhdGEgPSBmZ2V0Y3N2KCRoLCAxMDAsICcsJykgKSAhPT0gRkFMU0UpIAogICAgICB7CiAgICAgICAgI2RldGVybWluZSBpZiB3ZSB3YW50IHRoZSBzdWZpeCAnKCRrZXkpJwogICAgICAgICRzdWYgPSAkY2xlYW4gPyAnJyA6ICcgKCcgLiAkZGF0YVsoaW50KSRmbGlwXSAuICcpJzsKICAgICAgICAKICAgICAgICBpZigkZmxpcCkKICAgICAgICB7CiAgICAgICAgICAKICAgICAgICAgICRyZXRbJGRhdGFbMV1dID0gJGRhdGFbMF0gLiAkc3VmOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHJldFskZGF0YVswXV0gPSAkZGF0YVsxXSAuICRzdWY7IAogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgaWYoISRoZWFkaW5ncykKICAgICAgewogICAgICAgICMgY2xlYXIgaGVhZGluZ3MKICAgICAgICBhcnJheV9zaGlmdCgkcmV0KTsKICAgICAgIH0KICAgICAgIAogICAgICBmY2xvc2UoJGgpOyAgCiAgICB9CiAgICAKICAgIHJldHVybiAkcmV0OwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldENvdW50cnlDb2Rlc0xpc3QoKQogIHsKICAgIGlmKCBlbXB0eShzZWxmOjokX2NvdW50cnlfY29kZXMpICkKICAgIHsKICAgICAgc2VsZjo6X2luaXRpYWxpemUoKTsKICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6OiRfY29uZmlnWydtb2R1bGVfcGF0aCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdW50cnktSVNPLTMxNjYtMi5kYXQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgc2VsZjo6JF9jb3VudHJ5X2NvZGVzID0gc2VsZjo6X2RhdGFfZnJvbV9jc3YoJGZuLCBGQUxTRSwgVFJVRSwgRkFMU0UpOwogICAgfQogICAgCiAgICByZXR1cm4gc2VsZjo6JF9jb3VudHJ5X2NvZGVzOwogIH0KICAgIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0TGFuZ0NvZGVzTGlzdCgpCiAgewogICAgaWYoIGVtcHR5KHNlbGY6OiRfbGFuZ19jb2RlcykgKQogICAgewogICAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOwogICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZjo6JF9jb25maWdbJ21vZHVsZV9wYXRoJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFuZy1JU08tNjM5LTEuZGF0JwogICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgIHNlbGY6OiRfbGFuZ19jb2RlcyA9IHNlbGY6Ol9kYXRhX2Zyb21fY3N2KCRmbiwgRkFMU0UsIEZBTFNFLCBGQUxTRSk7CiAgICB9CiAgICAKICAgIHJldHVybiBzZWxmOjokX2xhbmdfY29kZXM7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldFJlZ0JjcDQ3Q29kZXNMaXN0KCkKICB7CiAgICBpZiggZW1wdHkoc2VsZjo6JF9iY3A0N2NvZGVzKSApCiAgICB7CiAgICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7CiAgICAgICRmbiA9IGNtc19qb2luX3BhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmOjokX2NvbmZpZ1snbW9kdWxlX3BhdGgnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWdpc3RlcmVkLUJDUC00Ny5kYXQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgc2VsZjo6JF9iY3A0N2NvZGVzID0gc2VsZjo6X2RhdGFfZnJvbV9jc3YoJGZuLCBGQUxTRSwgRkFMU0UpOwogICAgfQogICAgCiAgICByZXR1cm4gc2VsZjo6JF9iY3A0N2NvZGVzOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X2hvc3QoKQogIHsKICAgIHJldHVybiAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAgfSAgCiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY3VycmVudF91cmwoKQogIHsKICAgIHJldHVybiAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19pcCgkdGVzdCA9ICcnKQogIHsKICAgIHJldHVybiAoYm9vbClmaWx0ZXJfdmFyKCR0ZXN0LCBGSUxURVJfVkFMSURBVEVfSVApOyAKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtaW5pbWl6ZV9kb21haW5fbmFtZSgkbmFtZSA9ICcnKQogIHsKICAgICRyZW1vdmUgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICd3d3cnLAogICAgICAgICAgICAgICAgICAgICAgJ3d3dzEnLAogICAgICAgICAgICAgICAgICAgICAgJ3d3dzInLAogICAgICAgICAgICAgICAgICAgICAgJ3d3dzMnCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICRyZXQgPSAkbmFtZTsKICAgICR0bXAgPSBleHBsb2RlKCcuJywgJG5hbWUpOwogICAgCiAgICBpZiggaXNfYXJyYXkoJHRtcCkgKQogICAgewogICAgICBmb3JlYWNoKCRyZW1vdmUgYXMgJG9uZSkKICAgICAgewogICAgICAgIGlmKCR0bXBbMF0gPT0gJG9uZSkKICAgICAgICB7CiAgICAgICAgICB1bnNldCgkdG1wWzBdKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgJHJldCA9IGltcGxvZGUoJy4nLCAkdG1wKTsKICAgIH0KICAgIAogICAgcmV0dXJuICRyZXQ7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2RvbWFpbl9iYXNlKCkKICB7CiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOwogICAgJGNvbmZpZyA9IHNlbGY6OiRfY29uZmlnOwogICAgcmV0dXJuIFx0cmltKHBhcnNlX3VybCgkY29uZmlnWydyb290X3VybCddLCBQSFBfVVJMX1BBVEgpLCAnLycpOwogIH0KICAKICAvKioKICAqIG1ha2Ugc3VyZSAkdXJsIGlzIHdlbGwtZm9ybWVkIGkuZS4gZG9lc24ndCBoYXZlIGV4dHJhICcvJwogICogCiAgKiBAcGFyYW0gbWl4ZWQgJHVybAogICogQHJldHVybiBtaXhlZAogICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb25mb3JtX3VybCgkdXJsKQogIHsKICAgIGlmKCBlbXB0eSgkdXJsKSApIHsgcmV0dXJuICcnOyB9CiAgICAkcHJvdG9jb2wgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAnaHR0cDovLycgOiAnaHR0cHM6Ly8nOyAgICAKICAgIGlmKCBcc3RhcnRzd2l0aCgkdXJsLCAkcHJvdG9jb2wpICkgeyAkdXJsID0gXHN0cl9yZXBsYWNlKCRwcm90b2NvbCwgJHVybCwgJycpOyB9CiAgICByZXR1cm4gJHByb3RvY29sIC4gXHByZWdfcmVwbGFjZSgnL1wvezIsfS8nLCAnLycsICR1cmwpOwogIH0KICAKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMQojIEEgZm9yayBvZiBCYWJlbAojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZwojIHNpbmNlIDIwMTYKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUKIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUKIyBhbmQgbWFuYWdlIG11bHRpcGxlIGxhbmd1YWdlIGNvbnRlbnQKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQojIEVyaWR1IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRU5EX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCnJldHVybiBcRXJpZHVcSW5zdGFsbEFzc2lzdGFudDo6SW5zdGFsbCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKcmV0dXJuIFxFcmlkdVxJbnN0YWxsQXNzaXN0YW50OjpVbmluc3RhbGwoKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMQojIEEgZm9yayBvZiBCYWJlbAojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZwojIHNpbmNlIDIwMTYKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUKIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUKIyBhbmQgbWFuYWdlIG11bHRpcGxlIGxhbmd1YWdlIGNvbnRlbnQKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQojIEVyaWR1IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRU5EX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCnJldHVybiBcRXJpZHVcSW5zdGFsbEFzc2lzdGFudDo6VXBncmFkZSgkb2xkdmVyc2lvbikKPz4=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJFcmlkdSINCnZlcnNpb24gPSAxLjENCmF1dGhvciA9ICJKbyBNb3JnIChGZXJuYW5kbyBNb3JnYWRvKSINCmF1dGhvcmVtYWlsID0gImpvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZyINCm1pbmNtc3ZlcnNpb24gPSAiMi4yLjgiDQpsYXp5bG9hZGFkbWluID0gMA0KbGF6eWxvYWRmcm9udGVuZCA9IDANCltkZXBlbmRzXQpDTVNNU0V4dCA9IDEuMQ0K]]></data>
	</file>
	<file>
	  <filename>/redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplcnJvcl9yZXBvcnRpbmcoMCk7CmlmKCFpc3NldCgkX0dFVFsnbmV3dXJsJ10pICkKewoJaGVhZGVyKCdsb2NhdGlvbjogaW5kZXgucGhwJyk7Cn1lbHNlCnsKCWlmKGlzc2V0KCRfR0VUWyduZXdsYW5nJ10pKQlzZXRjb29raWUoJ3VzcmxhbmcnLCAkX0dFVFsnbmV3bGFuZyddLCB0aW1lKCkgKyA4NjQwMCAqIDMwLCAnLycpOwoJaGVhZGVyKCdsb2NhdGlvbjogJyAuICRfR0VUWyduZXd1cmwnXSk7Cn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/tab.languages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQ0KLyoqIEB2YXIgXEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8NCi8qKiBAdmFyIGludCAkcmV0dXJuaWQgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLw0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ2FkbWluX2VyaWR1JykgKQ0Kew0KICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCdQZXJtaXNzaW9uIGRlbmllZC4nKTsNCiAgcmV0dXJuIGZhbHNlOw0KfQ0KDQokaW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICcnLCAnJywgJycsICdzeXN0ZW1pY29uJyk7DQokc21hcnR5LT5hc3NpZ24oDQogICdhZGRuZXcnLA0KICAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAkaWQsDQogICAgJ2VkaXRsYW5nJywNCiAgICAkcmV0dXJuaWQsDQogICAgJGltYWdlIC4gJyAnIC4gJHRoaXMtPkxhbmcoJ2FkZF9sYW5ndWFnZScpDQogICkNCik7DQoNCiRpdGVtbGlzdCA9ICR0aGlzLT5hZG1pbl9yZXRyaWV2ZV9sYW5ndWFnZXMoJGlkLCAkcmV0dXJuaWQpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2l0ZW1saXN0JywgJGl0ZW1saXN0KTsNCg0KJGFkbWluc2hvdyA9IFsNCiAgICAgICAgICAgICAgICBbJHRoaXMtPkxhbmcoJ2xhbmdjb2RlJyksICdjb2RlbGluayddLA0KICAgICAgICAgICAgICAgIFskdGhpcy0+TGFuZygnbmFtZScpLCAnbmFtZWxpbmsnXSwNCiAgICAgICAgICAgICAgICBbJHRoaXMtPkxhbmcoJ2FjdGl2ZScpLCAndG9nZ2xlYWN0aXZlJ10sDQogICAgICAgICAgICAgICAgWyR0aGlzLT5MYW5nKCdpc2RlZmF1bHQnKSwgJ3RvZ2dsZWRlZmF1bHQnXSwNCiAgICAgICAgICAgICAgICBbJHRoaXMtPkxhbmcoJ3Jlb3JkZXInKSwgJ21vdmVsaW5rcyddLA0KICAgICAgICAgICAgICAgIFskdGhpcy0+TGFuZygnYWN0aW9ucycpLCAnYWN0aW9ucyddDQogICAgICAgICAgICAgIF07DQoNCiRzbWFydHktPmFzc2lnbignYWRtaW5zaG93JywgJGFkbWluc2hvdyk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgndGFiLmxhbmd1YWdlcy50cGwnKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/tab.settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQ0KLyoqIEB2YXIgXEVyaWR1ICR0aGlzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8NCi8qKiBAdmFyIGludCAkcmV0dXJuaWQgaW4gc2NvcGUgZnJvbSBmaWxlIGluY2x1c2lvbiAqLw0KDQokbW9kcHJlZnMgPSAkdGhpcy0+Z2V0X21vZHByZWZzKCk7DQokbW9kID0gJHRoaXM7DQokc21hcnR5LT5hc3NpZ24oIGNvbXBhY3QoJ21vZCcsICdtb2RwcmVmcycgKSApOw0KDQp0cnkNCnsNCiAgIyMjIGltcG9ydCBmcm9tIENHbWwgc3R1ZmYNCiAgIyB3ZSBkbyBuZWVkIHRvIGluaXRpYWxpc2UgaXQganVzdCB0byBxdWVyeSBzdHVmZi4uLg0KICAkaW1wb3J0ZXIgPSBuZXcgXEVyaWR1XGNnbWxfaW1wb3J0ZXIoICdDR21sJywgJHRoaXMtPkdldE5hbWUoKSApOw0KICAkc21hcnR5LT5hc3NpZ24oICdoYXZlX2NnbWwnLCAkaW1wb3J0ZXItPmhhdmVfY2dtbCgpICk7DQp9DQpjYXRjaChcQ01TTVNFeHRcTWlncmF0b3JSdW50aW1lRXhjZXB0aW9uICRleGNlcHRpb24pDQp7DQogICRzbWFydHktPmFzc2lnbiggJ2hhdmVfY2dtbCcsIEZBTFNFICk7DQp9DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgndGFiLnNldHRpbmdzLnRwbCcpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRhZGRuZXd9PC9wPgp7aWYgY291bnQoJGl0ZW1saXN0KSA+IDB9CjxkaXY+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cjx0aGVhZD48dHI+Cgl7Zm9yZWFjaCBmcm9tPSRhZG1pbnNob3cgaXRlbT1jb2x1bW59CgkJPHRoPnskY29sdW1uWzBdfTwvdGg+Cgl7L2ZvcmVhY2h9CjwvdHI+PC90aGVhZD4KPHRib2R5Pgp7Y3ljbGUgdmFsdWVzPSJyb3cyLHJvdzEiIGFzc2lnbj1yb3djbGFzcyByZXNldD10cnVlfQp7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPW9uZWl0ZW19CntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzfQo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJe2ZvcmVhY2ggZnJvbT0kYWRtaW5zaG93IGl0ZW09Y29sdW1ufQoJCXthc3NpZ24gdmFyPW9uZXZhbCB2YWx1ZT0kY29sdW1uWzFdfQoJCTx0ZD57JG9uZWl0ZW0tPiRvbmV2YWx9PC90ZD4KCXsvZm9yZWFjaH0KPC90cj4Key9mb3JlYWNofQo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPHA+eyRhZGRuZXd9PC9wPnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_ee_app.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4NCiAgY29uc3QgRUVfQ29uZmlnID0gew0KICAgIGFkbWluX2FqYXhfdXJsOiAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9hamF4IGZvcmpzID0gMX0nLA0KICAgIGxhbmd1YWdlczogew0KICAgICAgICAgICAgICAgICAgICB7Zm9yZWFjaCAkbGFuZ3VhZ2VzIGFzICRvbmV9DQogICAgICAieyRvbmUtPmxhbmdjb2RlfSI6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogInskb25lLT5pZH0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogInskb25lLT5uYW1lfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudV9uYW1lOiAieyRvbmUtPm1lbnVfbmFtZX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmdjb2RlOiAieyRvbmUtPmxhbmdjb2RlfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvXzYzOV8xOiAieyRvbmUtPmlzb182MzlfMX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzb18zMTY2XzFfYWxwaGFfMjogInskb25lLT5pc29fMzE2Nl8xX2FscGhhXzJ9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290X2lkOiAieyRvbmUtPnJvb3RfaWR9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2lkOiAieyRvbmUtPmRlZmF1bHRfaWR9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6ICJ7JG9uZS0+YWN0aXZlfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV9vcmRlcjogInskb25lLT5pdGVtX29yZGVyfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluOiAieyRvbmUtPmRvbWFpbn0iDQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICB9LA0KICAgIGRlZmF1bHRfbGFuZ19pZCA6IHskZGVmYXVsdF9sYW5ndWFnZX0sDQogICAga2V5X2luZGV4OiBbIntpbXBsb2RlKCciLCInLCRhYmNkKX0iXSwNCiAgICBkZWZhdWx0X2xhbmd1YWdlOiAieyRkZWZhdWx0X2xhbmd1YWdlfSINCiAgfTsNCjwvc2NyaXB0Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_ee_header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCBzcmM9InskeHQtPkdldE1vZHVsZVVSTFBhdGgoKX0vanMvanF1ZXJ5LTMuNi4wLm1pbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ieyR4dC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9qcy91bmRlcnNjb3JlLW1pbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ieyR4dC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9qcy9iYWNrYm9uZS1taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9InskeHQtPkdldE1vZHVsZVVSTFBhdGgoKX0vanMvc21hcnQubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJ7JG1vZC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9qc19hcHAvYWRtaW5fZW50cmllc19lZGl0b3JfYXBwLmpzIj48L3NjcmlwdD4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_ee_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoNCiBUZW1wbGF0ZXMgZm9yIHRoZSBFbnRyaWVzIEVkaXRvciBBcHBsaWNhdGlvbg0KICp9DQoNCnsqDQp0ZW1wb3JhcnkgSnNtYXJ0eSB0ZW1wbGF0ZXMNCip9DQp7bGl0ZXJhbH0NCiAgPHNjcmlwdCBpZD0iYWJjLW5hdi10ZW1wbGF0ZSIgdHlwZT0idGV4dC94LXNtYXJ0eS10bXBsIj4NCiAgICA8ZGl2IGNsYXNzPSJ1ay1tYXJnaW4iIHVrLWdyaWQ+DQogICAgICA8ZGl2IGNsYXNzPSJ1ay1wYWRkaW5nLXJlbW92ZS1sZWZ0IHVrLXdpZHRoLTEtMSB1ay1pbmxpbmUiPg0KICAgICAgICA8YSBpZD0iay1uYXYtYWRkIiBjbGFzcz0idWstZm9ybS1pY29uIHVrLWZvcm0taWNvbi1mbGlwIiB1ay1pY29uPSJpY29uOiBwbHVzIj48L2E+DQogICAgICAgIDxpbnB1dCBpZD0iYWRkLWtleS1pbnB1dCIgY2xhc3M9InVrLWlucHV0IiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iYWRkIGEga2V5Ij4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiB1ay1hbGVydCBpZD0iay1hZGQtbm90aWNlcyIgY2xhc3M9InVrLW1hcmdpbiB1ay13aWR0aC0xLTEiPjwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogIDxkaXYgdWstZmlsdGVyPSJ0YXJnZXQ6IC5hYmMtc3RyaW5ncyI+DQoNCiAgICA8dWwgY2xhc3M9InVrLXBhZ2luYXRpb24gdWstbWFyZ2luLXJlbW92ZSI+DQogICAgICA8bGkgdWstZmlsdGVyLWNvbnRyb2w+PGEgaWQ9ImstZmlsdGVyLWFsbCIgaHJlZj0iIyI+QUxMPC9hPjwvbGk+DQoNCiAgICAgICAge2ZvcmVhY2ggJGNoYXJhY3RlcnMgYXMgJG9uZX0NCiAgICAgICAgICA8bGkgdWstZmlsdGVyLWNvbnRyb2w9Ii50YWcteyRvbmV8dXBwZXJ9Ij4NCiAgICAgICAgPGEgaHJlZj0iIyI+eyRvbmV8dXBwZXJ9PC9hPjwvbGk+DQogICAgICAgIHsvZm9yZWFjaH0NCg0KICAgIDwvdWw+DQoNCiAgICA8ZGl2IGNsYXNzPSJ1ay1tYXJnaW4iIHVrLWdyaWQ+DQogICAgICA8ZGl2IGNsYXNzPSJ1ay1wYWRkaW5nLXJlbW92ZS1sZWZ0IHVrLXdpZHRoLTEtMSB1ay1pbmxpbmUiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9InVrLWZvcm0taWNvbiB1ay1mb3JtLWljb24tZmxpcCIgdWstaWNvbj0iaWNvbjogc2VhcmNoIj48L2Rpdj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InNlYXJjaC1maWx0ZXIiIGNsYXNzPSJ1ay1pbnB1dCIgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9InNlYXJjaCI+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgICAgPGRpdiBjbGFzcz0idWstaGVpZ2h0LW1lZGl1bSI+DQogICAgICAgIDxkaXYgaWQ9ImtleXMtbGlzdCIgY2xhc3M9InVrLXBhbmVsIHVrLXBhbmVsLXNjcm9sbGFibGUiIHN0eWxlPSJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsiPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgY2xhc3M9InVrLW1hcmdpbiI+DQogICAgICB7KiAgPGEgaHJlZj0iIyIgaWQ9ImstbmF2LWRsIiBjbGFzcz0idWstaWNvbi1idXR0b24gay1uYXYiIHVrLWljb249ImNoZXZyb24tZG91YmxlLWxlZnQiPjwvYT4NCiAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImstbmF2LWwiIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiBrLW5hdiIgdWstaWNvbj0iY2hldnJvbi1sZWZ0Ij48L2E+DQogICAgICAgIDxhIGhyZWY9IiMiIGlkPSJrLW5hdi1yIiBjbGFzcz0idWstaWNvbi1idXR0b24gay1uYXYiIHVrLWljb249ImNoZXZyb24tcmlnaHQiPjwvYT4NCiAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImstbmF2LWRyIiBjbGFzcz0idWstaWNvbi1idXR0b24gay1uYXYiIHVrLWljb249ImNoZXZyb24tZG91YmxlLXJpZ2h0Ij48L2E+ICp9DQogICAgICAgIDxhIGhyZWY9IiMiIGlkPSJrLW5hdi1yZWZyZXNoIiBjbGFzcz0idWstaWNvbi1idXR0b24gay1uYXYiIHVrLWljb249InJlZnJlc2giPjwvYT4NCiAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImstbmF2LXJlbW92ZSIgY2xhc3M9InVrLWljb24tYnV0dG9uIGstbmF2IHVrLXRleHQtZGFuZ2VyIiB1ay1pY29uPSJtaW51cyI+PC9hPg0KICAgICAgPC9kaXY+DQogIDwvZGl2Pg0KICA8L3NjcmlwdD4NCg0KICA8c2NyaXB0IGlkPSJrZXlzLWxpc3QtdHBsIiB0eXBlPSJ0ZXh0L3gtc21hcnR5LXRtcGwiPg0KICA8dWwgaWQ9ImtleS1saXN0IiBjbGFzcz0idWstbGlzdCBhYmMtc3RyaW5ncyB1ay1tYXJnaW4tcmVtb3ZlIj4NCiAgICB7Zm9yZWFjaCAka2V5cyBhcyAkb25lfQ0KICAgICAgPGxpIGNsYXNzPSJ0YWcteyRvbmV8dHJ1bmNhdGU6MTonJ3x1cHBlcn0gdWstbWFyZ2luLXJlbW92ZSI+DQogICAgICAgICAgPGEgY2xhc3M9ImtleS10YWdzIHVrLXRleHQtbGVmdCB1ay1jYXJkLWhvdmVyIHVrLWxpbmstbXV0ZWQgdWstY2FyZCB1ay1jYXJkLWRlZmF1bHQgdWstY2FyZC1zbWFsbCB1ay1jYXJkLWJvZHkgdWstd2lkdGgtMS0xIHVrLW1hcmdpbi1yZW1vdmUiIGhyZWY9IiMiIGRhdGEta2V5LW9yZGVyPSJ7JG9uZUBpdGVyYXRpb259IiBkYXRhLWtleT0ieyRvbmV9Ij57JG9uZX08L2E+DQogICAgICA8L2xpPg0KICAgIHsvZm9yZWFjaH0NCiAgPC91bD4NCjwvc2NyaXB0Pg0KDQogIDxzY3JpcHQgaWQ9ImxhbmdzLWxpc3QiIHR5cGU9InRleHQveC1zbWFydHktdG1wbCI+DQogIDx1bCBpZD0ibGFuZy1saXN0IiBjbGFzcz0idWstbGlzdCB1ay1saXN0LWRpdmlkZXIiPg0KICAgIDxsaSBpZD0ibC0wIj4NCiAgICAgIE5vIExvY2sNCiAgICAgIDxsYWJlbCBjbGFzcz0idWstc3dpdGNoIHVrLWZsb2F0LXJpZ2h0IHVrLWZvcm0tbGFiZWwiIGZvcj0ib24tMCI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9J2xhbmd1YWdlcy1pdGVtcycgaWQ9Im9uLTAiIHZhbHVlPSIwIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstc3dpdGNoLXNsaWRlciB1ay1zd2l0Y2gtb24tb2ZmIHVrLXN3aXRjaC1iaWcgcm91bmQgbGFuZy1zd2l0Y2hlcyI+PC9kaXY+DQogICAgICA8L2xhYmVsPg0KICAgIDwvbGk+DQogICAge2ZvcmVhY2ggJGxhbmdzIGFzICRvbmV9DQogICAgICA8bGkgaWQ9ImwteyRvbmUuaWR9Ij4NCiAgICAgICAgeyRvbmUubmFtZX0NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJ1ay1zd2l0Y2ggdWstZmxvYXQtcmlnaHQgdWstZm9ybS1sYWJlbCIgZm9yPSJvbi17JG9uZS5pZH0iPg0KICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9J2xhbmd1YWdlcy1pdGVtcycgaWQ9Im9uLXskb25lLmlkfSIgdmFsdWU9Inskb25lLmlkfSI+DQogICAgICAgICAgPGRpdiBjbGFzcz0idWstc3dpdGNoLXNsaWRlciB1ay1zd2l0Y2gtb24tb2ZmIHVrLXN3aXRjaC1iaWcgcm91bmQgbGFuZy1zd2l0Y2hlcyI+PC9kaXY+DQogICAgICAgIDwvbGFiZWw+DQogICAgICA8L2xpPg0KICAgIHsvZm9yZWFjaH0NCiAgPC91bD4NCjwvc2NyaXB0Pg0KDQogIDxzY3JpcHQgaWQ9InN0cmluZy1lZGl0b3IiIHR5cGU9InRleHQveC1zbWFydHktdG1wbCI+DQo8aDQgY2xhc3M9InVrLWhlYWRpbmctZGl2aWRlciB1ay1oZWFkaW5nLWJ1bGxldCI+eyRrZXl8ZGVmYXVsdDonPGVtPiZsdDtub25lIHNlbGVjdGVkJmd0OzwvZW0+J308L2g0Pg0KDQp7Zm9yZWFjaCAkc3RyaW5ncyBhcyAkayA9PiAkdn0NCiAgICB7aWYgJGxhbmd1YWdlc1ska10tPmlkID09ICRkZWZhdWx0X2xhbmd9DQogICAgICA8Zm9ybT4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1ay1tYXJnaW4iPg0KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ1ay1mb3JtLWxhYmVsIj57JGxhbmd1YWdlc1ska10tPm5hbWV9PC9sYWJlbD4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVrLWZvcm0tY29udHJvbHMiPg0KICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9InN0ci1lZC17JGxhbmd1YWdlc1ska10tPmxhbmdjb2RlfSIgZGF0YS1sYW5nPSJ7JGxhbmd1YWdlc1ska10tPmxhbmdjb2RlfSIgY2xhc3M9InVrLXRleHRhcmVhIHN0ci1lZCIgcm93cz0iMSIgcGxhY2Vob2xkZXI9InskbGFuZ3VhZ2VzWyRrXS0+bmFtZX0gdHJhbnNsYXRpb24gbWlzc2luZyI+eyR2fTwvdGV4dGFyZWE+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZm9ybT4NCiAgICB7ZWxzZX0NCiAgICAgIDxkaXYgY2xhc3M9InVrLW1hcmdpbiIgaGlkZGVuPg0KICAgICAgICA8bGFiZWwgY2xhc3M9InVrLWZvcm0tbGFiZWwiPnskbGFuZ3VhZ2VzWyRrXS0+bmFtZX08L2xhYmVsPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ1ay1mb3JtLWNvbnRyb2xzIj4NCiAgICAgICAgICA8dGV4dGFyZWEgcmVhZG9ubHkgZGlzYWJsZWQgaWQ9InN0ci1lZC17JGxhbmd1YWdlc1ska10tPmxhbmdjb2RlfSIgZGF0YS1sYW5nPSJ7JGxhbmd1YWdlc1ska10tPmxhbmdjb2RlfSIgY2xhc3M9InVrLXRleHRhcmVhIHN0ci1lZCIgcm93cz0iMSIgcGxhY2Vob2xkZXI9InskbGFuZ3VhZ2VzWyRrXS0+bmFtZX0gdHJhbnNsYXRpb24gbWlzc2luZyI+eyR2fTwvdGV4dGFyZWE+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgey9pZn0NCiAgICB7Zm9yZWFjaGVsc2V9DQogIDxkaXYgdWstYWxlcnQ+DQogICAgPHA+UGxlYXNlIHNlbGVjdCBhIGtleTwvcD4NCjwvZGl2Pg0Key9mb3JlYWNofQ0KDQp7aWYgJHN0cmluZ3N8Y291bnQgPiAwfQ0KICA8YSBocmVmPSIjIiBpZD0ic2Utc3VibWl0IiBjbGFzcz0iIiB1ay1pY29uPSJjaGVjayI+PC9hPg0Key9pZn0NCjwvc2NyaXB0Pg0KDQp7L2xpdGVyYWx9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tc_app.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4NCiAgY29uc3QgVENfQ29uZmlnID0gew0KICAgIGFkbWluX2FqYXhfdXJsOiAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9hamF4IGZvcmpzID0gMX0nLA0KICAgIGxhbmd1YWdlczogew0KICAgICAgICAgICAgICAgICAgICB7Zm9yZWFjaCAkbGFuZ3VhZ2VzIGFzICRvbmV9DQogICAgICAieyRvbmUtPmxhbmdjb2RlfSI6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogInskb25lLT5pZH0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogInskb25lLT5uYW1lfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudV9uYW1lOiAieyRvbmUtPm1lbnVfbmFtZX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmdjb2RlOiAieyRvbmUtPmxhbmdjb2RlfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvXzYzOV8xOiAieyRvbmUtPmlzb182MzlfMX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzb18zMTY2XzFfYWxwaGFfMjogInskb25lLT5pc29fMzE2Nl8xX2FscGhhXzJ9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290X2lkOiAieyRvbmUtPnJvb3RfaWR9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2lkOiAieyRvbmUtPmRlZmF1bHRfaWR9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6ICJ7JG9uZS0+YWN0aXZlfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV9vcmRlcjogInskb25lLT5pdGVtX29yZGVyfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluOiAieyRvbmUtPmRvbWFpbn0iDQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICB9LA0KICAgIGlzX2FkbWluaXN0cmF0b3I6IHsoaW50KSRpc19hZG1pbmlzdHJhdG9yfSwNCiAgICBkZWZhdWx0X2xhbmdfaWQ6ICB7JGRlZmF1bHRfbGFuZ3VhZ2V9LA0KICAgIGtleV9pbmRleDogICAgICAgIFsie2ltcGxvZGUoJyIsIicsJGFiY2QpfSJdLA0KICAgIGRlZmF1bHRfbGFuZ3VhZ2U6ICJ7JGRlZmF1bHRfbGFuZ3VhZ2V9Ig0KICB9Ow0KDQoNCjwvc2NyaXB0Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tc_backbone_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoNCiBUZW1wbGF0ZXMgZm9yIHRoZSBUcmFuc2xhdGlvbiBDZW50ZXIgQmFja2JvbmUgQXBwbGljYXRpb24NCiAqfQ0Ke2xpdGVyYWx9ey9saXRlcmFsfQ0KeyoNCnRlbXBvcmFyeSBKc21hcnR5IHRlbXBsYXRlcw0KKn0NCntsaXRlcmFsfQ0KPHNjcmlwdCBpZD0iYWJjLW5hdi10ZW1wbGF0ZSIgdHlwZT0idGV4dC94LXNtYXJ0eS10bXBsIj4NCiAgIDxkaXYgY2xhc3M9InVrLW1hcmdpbiIgdWstZ3JpZD4NCiAgICAge2lmICRpc19hZG1pbmlzdHJhdG9yfQ0KICAgICAgIDxkaXYgY2xhc3M9InVrLXBhZGRpbmctcmVtb3ZlLWxlZnQgdWstd2lkdGgtMS0xIHVrLWlubGluZSI+DQogICAgICAgICA8YSBpZD0iay1uYXYtYWRkIiBjbGFzcz0idWstZm9ybS1pY29uIHVrLWZvcm0taWNvbi1mbGlwIiB1ay1pY29uPSJpY29uOiBwbHVzIj48L2E+DQogICAgICAgICA8aW5wdXQgaWQ9ImFkZC1rZXktaW5wdXQiIGNsYXNzPSJ1ay1pbnB1dCIgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9ImFkZCBhIGtleSI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IHVrLWFsZXJ0IGlkPSJrLWFkZC1ub3RpY2VzIiBjbGFzcz0idWstbWFyZ2luIHVrLXdpZHRoLTEtMSI+PC9kaXY+DQogICAgIHsvaWZ9DQogICAgPC9kaXY+DQoNCiAgPGRpdiB1ay1maWx0ZXI9InRhcmdldDogLmFiYy1zdHJpbmdzIj4NCg0KICAgIDx1bCBjbGFzcz0idWstcGFnaW5hdGlvbiB1ay1tYXJnaW4tcmVtb3ZlIj4NCiAgICAgIDxsaSB1ay1maWx0ZXItY29udHJvbD48YSBpZD0iay1maWx0ZXItYWxsIiBocmVmPSIjIj5BTEw8L2E+PC9saT4NCg0KICAgICAgICB7Zm9yZWFjaCAkY2hhcmFjdGVycyBhcyAkb25lfQ0KICAgICAgICAgIDxsaSB1ay1maWx0ZXItY29udHJvbD0iLnRhZy17JG9uZXx1cHBlcn0iPg0KICAgICAgICA8YSBocmVmPSIjIj57JG9uZXx1cHBlcn08L2E+PC9saT4NCiAgICAgICAgey9mb3JlYWNofQ0KDQogICAgPC91bD4NCg0KICAgIDxkaXYgY2xhc3M9InVrLW1hcmdpbiIgdWstZ3JpZD4NCiAgICAgIDxkaXYgY2xhc3M9InVrLXBhZGRpbmctcmVtb3ZlLWxlZnQgdWstd2lkdGgtMS0xIHVrLWlubGluZSI+DQogICAgICAgICAgPGRpdiBjbGFzcz0idWstZm9ybS1pY29uIHVrLWZvcm0taWNvbi1mbGlwIiB1ay1pY29uPSJpY29uOiBzZWFyY2giPjwvZGl2Pg0KICAgICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoLWZpbHRlciIgY2xhc3M9InVrLWlucHV0IiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0ic2VhcmNoIj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGNsYXNzPSJ1ay1oZWlnaHQtbWVkaXVtIj4NCiAgICAgICAgPGRpdiBpZD0ia2V5cy1saXN0IiBjbGFzcz0idWstcGFuZWwgdWstcGFuZWwtc2Nyb2xsYWJsZSIgc3R5bGU9ImhlaWdodDogMTAwJSAhaW1wb3J0YW50OyI+PC9kaXY+DQogICAgICA8L2Rpdj4NCg0KICAgICAgPGRpdiBjbGFzcz0idWstbWFyZ2luIj4NCiAgICAgIHsqICA8YSBocmVmPSIjIiBpZD0iay1uYXYtZGwiIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiBrLW5hdiIgdWstaWNvbj0iY2hldnJvbi1kb3VibGUtbGVmdCI+PC9hPg0KICAgICAgICA8YSBocmVmPSIjIiBpZD0iay1uYXYtbCIgY2xhc3M9InVrLWljb24tYnV0dG9uIGstbmF2IiB1ay1pY29uPSJjaGV2cm9uLWxlZnQiPjwvYT4NCiAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImstbmF2LXIiIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiBrLW5hdiIgdWstaWNvbj0iY2hldnJvbi1yaWdodCI+PC9hPg0KICAgICAgICA8YSBocmVmPSIjIiBpZD0iay1uYXYtZHIiIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiBrLW5hdiIgdWstaWNvbj0iY2hldnJvbi1kb3VibGUtcmlnaHQiPjwvYT4gKn0NCiAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImstbmF2LXJlZnJlc2giIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiBrLW5hdiIgdWstaWNvbj0icmVmcmVzaCI+PC9hPg0KICAgICAgICAgIHtpZiAkaXNfYWRtaW5pc3RyYXRvcn0NCiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJrLW5hdi1yZW1vdmUiIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiBrLW5hdiB1ay10ZXh0LWRhbmdlciIgdWstaWNvbj0ibWludXMiPjwvYT4NCiAgICAgICAgICB7L2lmfQ0KICAgICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9zY3JpcHQ+DQoNCjxzY3JpcHQgaWQ9ImtleXMtbGlzdC10cGwiIHR5cGU9InRleHQveC1zbWFydHktdG1wbCI+DQogIDx1bCBpZD0ia2V5LWxpc3QiIGNsYXNzPSJ1ay1saXN0IGFiYy1zdHJpbmdzIHVrLW1hcmdpbi1yZW1vdmUiPg0KICAgIHtmb3JlYWNoICRrZXlzIGFzICRvbmV9DQogICAgICA8bGkgY2xhc3M9InRhZy17JG9uZXx0cnVuY2F0ZToxOicnfHVwcGVyfSB1ay1tYXJnaW4tcmVtb3ZlIj4NCiAgICAgICAgICA8YSBjbGFzcz0ia2V5LXRhZ3MgdWstdGV4dC1sZWZ0IHVrLWNhcmQtaG92ZXIgdWstbGluay1tdXRlZCB1ay1jYXJkIHVrLWNhcmQtZGVmYXVsdCB1ay1jYXJkLXNtYWxsIHVrLWNhcmQtYm9keSB1ay13aWR0aC0xLTEgdWstbWFyZ2luLXJlbW92ZSIgaHJlZj0iIyIgZGF0YS1rZXktb3JkZXI9Inskb25lQGl0ZXJhdGlvbn0iIGRhdGEta2V5PSJ7JG9uZX0iPnskb25lfTwvYT4NCiAgICAgIDwvbGk+DQogICAgey9mb3JlYWNofQ0KICA8L3VsPg0KPC9zY3JpcHQ+DQoNCjxzY3JpcHQgaWQ9ImxhbmdzLWxpc3QiIHR5cGU9InRleHQveC1zbWFydHktdG1wbCI+DQogIDx1bCBpZD0ibGFuZy1saXN0IiBjbGFzcz0idWstbGlzdCB1ay1saXN0LWRpdmlkZXIiPg0KICAgIDxsaSBpZD0ibC0wIj4NCiAgICAgIE5vIExvY2sNCiAgICAgIDxsYWJlbCBjbGFzcz0idWstc3dpdGNoIHVrLWZsb2F0LXJpZ2h0IHVrLWZvcm0tbGFiZWwiIGZvcj0ib24tMCI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9J2xhbmd1YWdlcy1pdGVtcycgaWQ9Im9uLTAiIHZhbHVlPSIwIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstc3dpdGNoLXNsaWRlciB1ay1zd2l0Y2gtb24tb2ZmIHVrLXN3aXRjaC1iaWcgcm91bmQgbGFuZy1zd2l0Y2hlcyI+PC9kaXY+DQogICAgICA8L2xhYmVsPg0KICAgIDwvbGk+DQogICAge2ZvcmVhY2ggJGxhbmdzIGFzICRvbmV9DQogICAgICA8bGkgaWQ9ImwteyRvbmUuaWR9Ij4NCiAgICAgICAgeyRvbmUubmFtZX0NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJ1ay1zd2l0Y2ggdWstZmxvYXQtcmlnaHQgdWstZm9ybS1sYWJlbCIgZm9yPSJvbi17JG9uZS5pZH0iPg0KICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9J2xhbmd1YWdlcy1pdGVtcycgaWQ9Im9uLXskb25lLmlkfSIgdmFsdWU9Inskb25lLmlkfSI+DQogICAgICAgICAgPGRpdiBjbGFzcz0idWstc3dpdGNoLXNsaWRlciB1ay1zd2l0Y2gtb24tb2ZmIHVrLXN3aXRjaC1iaWcgcm91bmQgbGFuZy1zd2l0Y2hlcyI+PC9kaXY+DQogICAgICAgIDwvbGFiZWw+DQogICAgICA8L2xpPg0KICAgIHsvZm9yZWFjaH0NCiAgPC91bD4NCjwvc2NyaXB0Pg0KDQo8c2NyaXB0IGlkPSJzdHJpbmctZWRpdG9yIiB0eXBlPSJ0ZXh0L3gtc21hcnR5LXRtcGwiPg0KPGg0IGNsYXNzPSJ1ay1oZWFkaW5nLWRpdmlkZXIgdWstaGVhZGluZy1idWxsZXQiPnska2V5fGRlZmF1bHQ6JzxlbT4mbHQ7bm9uZSBzZWxlY3RlZCZndDs8L2VtPid9PC9oND4NCg0Ke2ZvcmVhY2ggJHN0cmluZ3MgYXMgJGsgPT4gJHZ9DQogICAge2lmICRsYW5ndWFnZXNbJGtdLT5pZCA9PSAkZGVmYXVsdF9sYW5nfQ0KICAgICAgPGRpdiBjbGFzcz0idWstbWFyZ2luIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJ1ay1mb3JtLWxhYmVsIj57JGxhbmd1YWdlc1ska10tPm5hbWV9PC9sYWJlbD4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstZm9ybS1jb250cm9scyI+DQogICAgICAgICAgPHRleHRhcmVhIHJlYWRvbmx5IGRpc2FibGVkIGlkPSJzdHItZWQteyRsYW5ndWFnZXNbJGtdLT5sYW5nY29kZX0iIGRhdGEtbGFuZz0ieyRsYW5ndWFnZXNbJGtdLT5sYW5nY29kZX0iIGNsYXNzPSJ1ay10ZXh0YXJlYSBzdHItZWQiIHJvd3M9IjEiIHBsYWNlaG9sZGVyPSJ7JGxhbmd1YWdlc1ska10tPm5hbWV9IHRyYW5zbGF0aW9uIG1pc3NpbmciPnskdn08L3RleHRhcmVhPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGhyIGNsYXNzPSJ1ay1kaXZpZGVyLWljb24iPg0KICAgIHsvaWZ9DQoNCiAgICB7Zm9yZWFjaGVsc2V9DQogIDxkaXYgdWstYWxlcnQ+DQogICAgPHA+UGxlYXNlIHNlbGVjdCBhIGtleTwvcD4NCiAgPC9kaXY+DQp7L2ZvcmVhY2h9DQp7Zm9yZWFjaCAkc3RyaW5ncyBhcyAkayA9PiAkdn0NCiAgICB7aWYgJGxhbmd1YWdlc1ska10tPmlkICE9ICRkZWZhdWx0X2xhbmd9DQogICAgICA8Zm9ybT4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1ay1tYXJnaW4iPg0KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ1ay1mb3JtLWxhYmVsIj57JGxhbmd1YWdlc1ska10tPm5hbWV9PC9sYWJlbD4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVrLWZvcm0tY29udHJvbHMiPg0KICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9InN0ci1lZC17JGxhbmd1YWdlc1ska10tPmxhbmdjb2RlfSIgZGF0YS1sYW5nPSJ7JGxhbmd1YWdlc1ska10tPmxhbmdjb2RlfSIgY2xhc3M9InVrLXRleHRhcmVhIHN0ci1lZCIgcm93cz0iMSIgcGxhY2Vob2xkZXI9InskbGFuZ3VhZ2VzWyRrXS0+bmFtZX0gdHJhbnNsYXRpb24gbWlzc2luZyI+eyR2fTwvdGV4dGFyZWE+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZm9ybT4NCiAgICAgIDxociBjbGFzcz0idWstZGl2aWRlci1pY29uIj4NCiAgICB7L2lmfQ0KDQp7L2ZvcmVhY2h9DQoNCntpZiAkc3RyaW5nc3xjb3VudCA+IDB9DQogIDxhIGhyZWY9IiMiIGlkPSJzZS1zdWJtaXQiIGNsYXNzPSIiIHVrLWljb249ImNoZWNrIj48L2E+DQp7L2lmfQ0KPC9zY3JpcHQ+DQoNCnsvbGl0ZXJhbH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tc_header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCBzcmM9InskeHQtPkdldE1vZHVsZVVSTFBhdGgoKX0vanMvanF1ZXJ5LTMuNi4wLm1pbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ieyR4dC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9qcy91bmRlcnNjb3JlLW1pbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ieyR4dC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9qcy9iYWNrYm9uZS1taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9InskeHQtPkdldE1vZHVsZVVSTFBhdGgoKX0vanMvc21hcnQubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJ7JG1vZC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9qc19hcHAvYWRtaW5fdHJhbnNsYXRpb25fY2VudGVyX2FwcC5qcyI+PC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_translation_center.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2FkbWluX3RjX2FwcC50cGwnfQ0KDQo8ZGl2IGNsYXNzPSJ1ay1tYWluIj4NCnsqICA8dWwgY2xhc3M9InVrLXN1Ym5hdiB1ay1zdWJuYXYtZGl2aWRlciIgdWstbWFyZ2luPip9DQp7KiAgICAgIDxsaSBjbGFzcz0idWstYWN0aXZlIj4qfQ0KeyogICAgICAgIDxhIGhyZWY9IiMiPlNvdXJjZTogPHNwYW4gaWQ9Im5hdi1zb3VyY2VzIj5GaWxlPC9zcGFuPiA8c3BhbiB1ay1pY29uPSJpY29uOiB0cmlhbmdsZS1kb3duIj48L3NwYW4+PC9hPip9DQp7KiAgICAgICAgPGRpdiB1ay1kcm9wZG93bj0ibW9kZTogY2xpY2siPip9DQp7KiAgICAgICAgICAgIDx1bCBjbGFzcz0idWstbmF2IHVrLWRyb3Bkb3duLW5hdiI+Kn0NCnsqICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idWstYWN0aXZlIj48YSBocmVmPSIjIj5GaWxlPC9hPjwvbGk+Kn0NCnsqICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EYXRhYmFzZTwvYT48L2xpPip9DQp7KiAgICAgICAgICAgIDwvdWw+Kn0NCnsqICAgICAgICA8L2Rpdj4qfQ0KeyogICAgPC9saT4qfQ0KeyogIDwvdWw+Kn0NCiAgPGRpdiBpZD0iYXBwIiBjbGFzcz0idWstY2hpbGQtd2lkdGgtZXhwYW5kQHMiIHVrLWdyaWQ+DQogICAge2lmICRpc19hZG1pbmlzdHJhdG9yfQ0KICAgICAgPGRpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstY2FyZCB1ay1jYXJkLXNtYWxsIHVrLWNhcmQtZGVmYXVsdCI+DQogICAgICAgICAgPGRpdiBjbGFzcz0idWstY2FyZC1oZWFkZXIiPg0KICAgICAgICAgICAgPGg0IGNsYXNzPSJ1ay1oNCAiPkxhbmd1YWdlczwvaDQ+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPGRpdiBpZD0ibGFuZ3MtY2FyZCIgY2xhc3M9InVrLWNhcmQtYm9keSI+DQogICAgICAgICAgICA8ZGl2IHVrLXNwaW5uZXI+PC9kaXY+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPGRpdiBjbGFzcz0idWstY2FyZC1mb290ZXIiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0idWstdGV4dC1zbWFsbCI+VG9nZ2xlIHN3aXRjaCB0byBsb2NrIGRlZmF1bHQ8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICB7L2lmfQ0KICAgIDxkaXY+DQogICAgICA8ZGl2IGNsYXNzPSJ1ay1jYXJkIHVrLWNhcmQtc21hbGwgdWstY2FyZC1kZWZhdWx0Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstY2FyZC1oZWFkZXIiPg0KICAgICAgICAgIDxoNCBjbGFzcz0idWstaDQgIj5LZXlzPC9oND4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImtleXMtY2FyZCIgY2xhc3M9InVrLWNhcmQtYm9keSI+DQogICAgICAgICAgPGRpdiB1ay1zcGlubmVyPjwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstY2FyZC1mb290ZXIiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVrLWFsaWduLXJpZ2h0Ij4NCiAgICAgICAgICAgICAgPHNwYW4gaWQ9ImtleS1pbmRleC1iYWRnZSIgY2xhc3M9InVrLWJhZGdlIj4tPC9zcGFuPiBvZiA8c3BhbiBpZD0ia2V5LWNvdW50ZXItYmFkZ2UiIGNsYXNzPSJ1ay1iYWRnZSI+LTwvc3Bhbj4NCiAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdj4NCiAgICAgIDxkaXYgY2xhc3M9InVrLWNhcmQgdWstY2FyZC1zbWFsbCB1ay1jYXJkLWRlZmF1bHQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ1ay1jYXJkLWhlYWRlciI+DQogICAgICAgICAgPGg0IGNsYXNzPSJ1ay1oNCAiPlRyYW5zbGF0aW9uczwvaDQ+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJzdHJpbmdzLWNhcmQiIGNsYXNzPSJ1ay1jYXJkLWJvZHkiPg0KICAgICAgICAgIDxkaXYgdWstc3Bpbm5lcj48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InVrLWNhcmQtZm9vdGVyIj4NCg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvZGl2Pg0KDQoNCntpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpFcmlkdTthZG1pbl90Y19oZWFkZXIudHBsJ30NCntpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpFcmlkdTthZG1pbl90Y19iYWNrYm9uZV90ZW1wbGF0ZXMudHBsJ30=]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGg0PlZlcnNpb24gMS4wPC9oND4KPHVsPgogIDxsaT4xc3QgcHVibGljIHJlbGVhc2UuPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/default_menu_tmplt.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIHtmb3JlYWNoIGZyb209JGxhbmd1YWdlcyBpdGVtPSdsYW5ndWFnZSd9CiAgICB7aWYgJGxhbmd1YWdlLT5pc19jdXJyZW50fXskY2xhc3MgPSAiY2xhc3M9J2FjdGl2ZScifXtlbHNlfXskY2xhc3MgPSAnJ317L2lmfQogICAgPGxpIHskY2xhc3N9PgogICAgICA8YSB7aWYgJGxhbmd1YWdlLT51cmx9aHJlZj0neyRsYW5ndWFnZS0+dXJsfSd7L2lmfSB7JGNsYXNzfT57JGxhbmd1YWdlLT5tZW51X25hbWV9PC9hPgogICAgPC9saT4KICB7L2ZvcmVhY2h9CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/templates/default_menu_tmplt_backup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsIGlkPSdsYW5ndWFnZV9tZW51Jz4Ke2ZvcmVhY2ggZnJvbT0kbGFuZ3VhZ2VzIGl0ZW09J2xhbmd1YWdlJ30KICAge2lmICRsYW5ndWFnZS0+aXNfY3VycmVudH08bGkgY2xhc3M9J2FjdGl2ZSc+PGEge2lmICRsYW5ndWFnZS0+dXJsfWhyZWY9J3skbGFuZ3VhZ2UtPnVybH0nIHsvaWZ9Y2xhc3M9J2FjdGl2ZSc+e2Vsc2V9PGxpPjxhIGhyZWY9J3skbGFuZ3VhZ2UtPnVybH0nPnsvaWZ9eyRsYW5ndWFnZS0+bWVudV9uYW1lfTwvYT48L2xpPgp7L2ZvcmVhY2h9CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/templates/editlang.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQp7JGhpZGRlbn0KPGgzPnskZWRpdHRpdGxlfTwvaDM+CntpZiAkbGFuZ3NlbGVjdH0KCTxkaXYgaWQ9ImVyaWR1X2xhbmdzZWxlY3RkaXYiIGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7Ij4KCQk8cD57JGxhbmdzZWxlY3RfbGFiZWx9Jm5ic3A7eyRsYW5nc2VsZWN0fTwvcD4KCTwvZGl2Pgp7L2lmfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPgogICAgICB7JGl0ZW0tPm5hbWVfbGFiZWx9KjoKICAgICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1uYW1lIiBpZD0ieyRhY3Rpb25pZH1uYW1lIiB2YWx1ZT0ieyRpdGVtLT5uYW1lfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iNjQiIHR5cGU9InRleHQiPgogICAgPC9wPgoJPC9kaXY+CiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+CiAgICAgIHskaXRlbS0+bGFuZ2NvZGVfbGFiZWx9KjoKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1sYW5nY29kZSIgaWQ9InskYWN0aW9uaWR9bGFuZ2NvZGUiIHZhbHVlPSJ7JGl0ZW0tPmxhbmdjb2RlfSIgc2l6ZT0iMTUiIG1heGxlbmd0aD0iOCIgdHlwZT0idGV4dCIge2lmICFlbXB0eSgkaXRlbS0+aWQpfXJlYWRvbmx5ey9pZn0+CiAgICA8L3A+CiAgPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRpdGVtLT5pc29fNjM5XzFfbGFiZWx9KjoKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1pc29fNjM5XzEiIGlkPSJ7JGFjdGlvbmlkfWlzb182MzlfMSIgdmFsdWU9InskaXRlbS0+aXNvXzYzOV8xfSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSIyIiB0eXBlPSJ0ZXh0Ij4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+CiAgICAgIHskaXRlbS0+aXNvXzMxNjZfMV9hbHBoYV8yX2xhYmVsfSo6CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICA8aW5wdXQgY2xhc3M9ImNtc190ZXh0ZmllbGQiIG5hbWU9InskYWN0aW9uaWR9aXNvXzMxNjZfMV9hbHBoYV8yIiBpZD0ieyRhY3Rpb25pZH1pc29fMzE2Nl8xX2FscGhhXzIiIHZhbHVlPSJ7JGl0ZW0tPmlzb18zMTY2XzFfYWxwaGFfMn0iIHNpemU9IjQiIG1heGxlbmd0aD0iMiIgdHlwZT0idGV4dCI+CiAgICA8L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRpdGVtLT5tZW51X25hbWVfbGFiZWx9IDoKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgY2xhc3M9ImNtc190ZXh0ZmllbGQiIG5hbWU9InskYWN0aW9uaWR9bWVudV9uYW1lIiBpZD0ieyRhY3Rpb25pZH1tZW51X25hbWUiIHZhbHVlPSJ7JGl0ZW0tPm1lbnVfbmFtZX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjY0IiB0eXBlPSJ0ZXh0Ij4KICAgIDwvcD4KCTwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+IAogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgeyRpdGVtLT5kb21haW5fbGFiZWx9OiB7KmNtc19oZWxwIGtleTI9J2hlbHBfZmllbGRfdXNlcm5hbWUnIHRpdGxlPSRmb28qfQogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1kb21haW4iIGlkPSJ7JGFjdGlvbmlkfWRvbWFpbiIgdmFsdWU9InskaXRlbS0+ZG9tYWlufSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iNjQiIHR5cGU9InRleHQiPgogICAgPC9wPgogIDwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaXRlbS0+cm9vdF9pZF9sYWJlbH0qIDo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRyb290X2lkX2lucHV0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaXRlbS0+ZGVmYXVsdF9pZF9sYWJlbH0gOjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRlZmF1bHRfaWRfaW5wdXR9PC9wPgoJPC9kaXY+Cjxici8+CjxwPnskc3VibWl0fSB7JGFwcGx5fSB7JGNhbmNlbH08L3A+CjwvZm9ybT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgbW9kdWxlaWQgPSAieyRhY3Rpb25pZH0iOwp7bGl0ZXJhbH0KZnVuY3Rpb24gbGFuZ3VhZ2VmaWxsKHJhd2RhdGEpewoJdmFyIG5ld2RhdGEgPSByYXdkYXRhLnNwbGl0KCcvJyk7CiAgdmFyIGxhbmdjb2RlID0gbmV3ZGF0YVswXS5yZXBsYWNlKCdfJywgJy0nKTsKICB2YXIgY29kZXMgPSBsYW5nY29kZS5zcGxpdCgnLScpOwogIHZhciBpc29fNjM5XzEgPSBjb2Rlc1swXTsKICB2YXIgaXNvXzMxNjZfMV9hbHBoYV8yID0gY29kZXNbMV07Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnbGFuZ2NvZGUnKS52YWx1ZSA9IGxhbmdjb2RlOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW9kdWxlaWQrJ25hbWUnKS52YWx1ZSA9IG5ld2RhdGFbMV07CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW9kdWxlaWQrJ21lbnVfbmFtZScpLnZhbHVlID0gbmV3ZGF0YVsxXTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnaXNvXzYzOV8xJykudmFsdWUgPSBpc29fNjM5XzE7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnaXNvXzMxNjZfMV9hbHBoYV8yJykudmFsdWUgPSBpc29fMzE2Nl8xX2FscGhhXzI7CglyZXR1cm4gZmFsc2U7Cn0KdmFyIGxhbmdzZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJpZHVfbGFuZ3NlbGVjdGRpdicpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKTsKaWYobGFuZ3NlbGVjdFswXSkgbGFuZ3NlbGVjdFswXS5vbmNoYW5nZSA9IGZ1bmN0aW9uKCl7CglsYW5ndWFnZWZpbGwodGhpcy52YWx1ZSk7Cn07CmxhbmdzZWxlY3QgPSBudWxsOwp7L2xpdGVyYWx9Cjwvc2NyaXB0Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/entriestable.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/entries_editor.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2FkbWluX2VlX2FwcC50cGwnfQ0KDQo8ZGl2IGNsYXNzPSJ1ay1tYWluIj4NCnsqICA8dWwgY2xhc3M9InVrLXN1Ym5hdiB1ay1zdWJuYXYtZGl2aWRlciIgdWstbWFyZ2luPip9DQogICAgeyogICAgICA8bGkgY2xhc3M9InVrLWFjdGl2ZSI+Kn0NCiAgICB7KiAgICAgICAgPGEgaHJlZj0iIyI+U291cmNlOiA8c3BhbiBpZD0ibmF2LXNvdXJjZXMiPkZpbGU8L3NwYW4+IDxzcGFuIHVrLWljb249Imljb246IHRyaWFuZ2xlLWRvd24iPjwvc3Bhbj48L2E+Kn0NCiAgICB7KiAgICAgICAgPGRpdiB1ay1kcm9wZG93bj0ibW9kZTogY2xpY2siPip9DQogICAgeyogICAgICAgICAgICA8dWwgY2xhc3M9InVrLW5hdiB1ay1kcm9wZG93bi1uYXYiPip9DQogICAgeyogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ1ay1hY3RpdmUiPjxhIGhyZWY9IiMiPkZpbGU8L2E+PC9saT4qfQ0KICAgIHsqICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EYXRhYmFzZTwvYT48L2xpPip9DQogICAgeyogICAgICAgICAgICA8L3VsPip9DQogICAgeyogICAgICAgIDwvZGl2Pip9DQogICAgeyogICAgPC9saT4qfQ0KICAgIHsqICA8L3VsPip9DQogIDxoMj57JGRlZmF1bHRfbGFuZ3VhZ2VfbmFtZX08L2gyPg0KICA8ZGl2IHVrLWFsZXJ0PlRoaXMgZWRpdG9yIGFsbG93cyBvbmx5IHRvIGFkZCBvciBlZGl0IGtleXMgYW5kIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuIFRyYW5zbGF0b3JzIG11c3QgdXNlIHRoZSBUcmFuc2xhdGlvbiBDZW50cmU8L2Rpdj4NCiAgPGRpdiBpZD0iYXBwIiBjbGFzcz0idWstY2hpbGQtd2lkdGgtZXhwYW5kQHMiIHVrLWdyaWQ+DQoNCiAgICA8ZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0idWstY2FyZCB1ay1jYXJkLXNtYWxsIHVrLWNhcmQtZGVmYXVsdCI+DQogICAgICAgIDxkaXYgY2xhc3M9InVrLWNhcmQtaGVhZGVyIj4NCiAgICAgICAgICA8aDQgY2xhc3M9InVrLWg0ICI+S2V5czwvaDQ+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJrZXlzLWNhcmQiIGNsYXNzPSJ1ay1jYXJkLWJvZHkiPg0KICAgICAgICAgIDxkaXYgdWstc3Bpbm5lcj48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InVrLWNhcmQtZm9vdGVyIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1ay1hbGlnbi1yaWdodCI+DQogICAgICAgICAgICAgIDxzcGFuIGlkPSJrZXktaW5kZXgtYmFkZ2UiIGNsYXNzPSJ1ay1iYWRnZSI+LTwvc3Bhbj4gb2YgPHNwYW4gaWQ9ImtleS1jb3VudGVyLWJhZGdlIiBjbGFzcz0idWstYmFkZ2UiPi08L3NwYW4+DQogICAgICAgICAgICA8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXY+DQogICAgICA8ZGl2IGNsYXNzPSJ1ay1jYXJkIHVrLWNhcmQtc21hbGwgdWstY2FyZC1kZWZhdWx0Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstY2FyZC1oZWFkZXIiPg0KICAgICAgICAgIDxoNCBjbGFzcz0idWstaDQgIj5UcmFuc2xhdGlvbnM8L2g0Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBpZD0ic3RyaW5ncy1jYXJkIiBjbGFzcz0idWstY2FyZC1ib2R5Ij4NCiAgICAgICAgICA8ZGl2IHVrLXNwaW5uZXI+PC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJ1ay1jYXJkLWZvb3RlciI+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCg0KDQoNCg0Ke2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2FkbWluX2VlX2hlYWRlci50cGwnfQ0Ke2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2FkbWluX2VlX3RlbXBsYXRlcy50cGwnfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.about.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCg0KICA8aDM+QWJvdXQgdGhpcyBtb2R1bGU8L2gzPg0KICA8cD5UaGlzIG1vZHVsZSBpcyBiYXNlZCBvbiA8c3Ryb25nPkJhYmVsPC9zdHJvbmc+IHdoaWNoIHdhcyBjcmVhdGVkIGJ5IDxzdHJvbmc+UGllcnJlLUx1YyBHZXJtYWluIChwbGdlcik8L3N0cm9uZz4sIGJhc2VkIG9uIGFuIGFwcHJvYWNoIGJ5IDxzdHJvbmc+TWFyY29zIENydXo8L3N0cm9uZz4uPC9wPg0KICA8cD5JdCBhbHNvIGludGVncmF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIDxzdHJvbmc+Q0dtbDwvc3Ryb25nPiBtb2R1bGUgZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Ozwvc3Ryb25nPi48L3A+DQoNCjxoMz5TdXBwb3J0PC9oMz4NCiAgPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCiAgPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdHMgdXNlOjwvcD4NCiAgSWYgeW91IGZpbmQgYW55IGJ1Z3MgcGxlYXNlIGZlZWwgZnJlZSB0byBzdWJtaXQgYSBidWcgcmVwb3J0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvYnVnL2xpc3QvMTM1NyIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+IG9yIGZvciBhbnkgZ29vZCBpZGVhcyBjb25zaWRlciBzdWJtaXRpbmcgYSBmZWF0dXJlIHJlcXVlc3QgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xMzU3IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT47DQogIDxwPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsZXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9wPg0KICA8cD5QbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgZGV2ZWxvcGVycyBkbyBoYXZlIHRoZWlyIGRhaWx5IGpvYnMgd2hpY2ggbWVhbnMgdGhhdCBmZWF0dXJlIHJlcXVlc3RzIGFyZSBjb25zaWRlcmVkIGFuZCBkb25lIGFzIHRpbWUgYWxsb3dzLiBJZiB5b3UgbmVlZCBhIGZlYXR1cmUgcmVhbGx5IGJhZGx5IGNvbnNpZGVyIGNvbnRhY3Rpbmcgb25lIG9mIHRoZSBkZXZlbG9wZXJzIGZvciBhIHNwb25zb3JlZCBkZXZlbG9wbWVudC48L3A+DQoNCiAgPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuPC9wPg0KDQogIDxwPklmIHdhbnQgdG8gaGVscCB0aGUgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29uc2lkZXIgPGEgaHJlZj0iIiBpZD0iZG9uYXRpbmciPmRvbmF0aW5nPC9hPi48L3A+DQoNCg0KICAgIDxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KDQogICAgICA8cD5UaGUgTW9kdWxlIGlzIGN1cnJlbnRseSBiZWluZyBkZXZlbG9wZWQgYnkgPHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPg0KICAgICAgPGJyPg0KICAgICAgV2ViOiA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cuc20tYXJ0LWxhYi5jb20iIHJlbD0iZXh0ZXJuYWwiPnd3dy5zbS1hcnQtbGFiLmNvbTwvYT4NCiAgICAgIDxicj4NCiAgICAgIEVtYWlsOiA8YSBocmVmPSJtYWlsdG86am9tb3JnQHNtLWFydC1sYWIuY29tIj5qb21vcmdAc20tYXJ0LWxhYi5jb208L2E+DQogICAgICA8L3A+DQogICAgICB7aWYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6IiVZIiA9PSAnMjAxNid9eyRjciA9ICcyMDE2J317ZWxzZX17JGNyID0gIjIwMTYgLSB7JHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVZJ30ifXsvaWZ9DQoNCiAgICAgIDxwPkNvcHlyaWdodCAmY29weTsgeyRjcn0gLiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48YnI+PC9wPg0KICAgICAgPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pg0KICAgICAgPHA+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPiBpcyBmcmVlIHNvZnR3YXJlOzxiciAvPiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhcyBwdWJsaXNoZWQgYnkgdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uPC9zdHJvbmc+OzxiciAvPiBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCiAgICAgIDxwPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IDxzdHJvbmc+V0lUSE9VVCBBTlkgV0FSUkFOVFk8L3N0cm9uZz47PGJyIC8+IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiA8c3Ryb25nPk1FUkNIQU5UQUJJTElUWTwvc3Ryb25nPiBvciA8c3Ryb25nPkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFPC9zdHJvbmc+LjwvcD4NCiAgICAgIDxwPlNlZSB0aGVHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjwvcD4NCiAgICAgIDxwPllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07PGJyIC8+IGlmIG5vdCwgd3JpdGUgdG8gdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTwvc3Ryb25nPiBvciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5yZWFkIGl0IG9ubGluZTwvYT4uPC9wPg0KICAgICAgPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+RXJpZHU8L3N0cm9uZz4uPC9zdHJvbmc+PC9wPg0KICAgICAgPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pg0KICAgICAgPGg0PkNvbnRyaWJ1dG9yczwvaDQ+DQogICAgICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+DQogICAgICA8cD48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5tYXR0aG9ybnNieS5jYSIgcmVsPSJleHRlcm5hbCI+TWF0dCBIb21zYnkgKERJR0kzKTwvYT4gLSBzcG9uc29yc2hpcC48L3A+DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.contribute.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCg0KICA8aDM+SG93IENhbiBJIEhlbHA/PC9oMz4NCiAgPHA+SWYgeW91IHdhbnQgdG8gaGVscCB0aGUgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29uc2lkZXIgZG9uYXRpbmcuPC9wPg0KICA8cD5BbGwgaGVscCBpcyBhcHByZWNpYXRlZCwgbm8gY29udHJpYnV0aW9uIGlzIHRvbyBzbWFsbCEgVGhlIG1vcmUgcGVvcGxlIGNvbnRyaWJ1dGUgdGhlIG1vcmUgdGltZSBjYW4gYmUgYWxsb2NhdGVkIHRvIHRoZSBtYWludGVuYW5jZSBhbmQgZGV2ZWxvcG1lbnQgb2YgdGhlIG1vZHVsZS4gVGhpcyBhbHNvIGVucmljaGVzIENNUyBNYWRlIFNpbXBsZS48L3A+DQoNCiAgPGg0PlBheVBhbDwvaDQ+DQogIDxwPllvdSBjYW4gY29udHJpYnV0ZSB3aXRoIGEgb25lIHRpbWUgZG9uYXRpb24gb3IgYSByZWN1cnJlbnQgb25lLCBqdXN0IGNsaWNrIG9uOjxwPg0KICAgIDxkaXYgY2xhc3M9Im1fdG9wXzI1Ij48L2Rpdj4NCiAgPHA+DQogICAgICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9kb25hdGUvP2hvc3RlZF9idXR0b25faWQ9MzZMVFhIMjQ4TDdHTCI+DQogICAgICAgIDxpbWcgc3JjPSJ7JHJvb3RfdXJsfS9tb2R1bGVzL3skbW9kLT5HZXROYW1lKCl9L2ltYWdlcy9wcF9idXR0b24ucG5nIiBhbHQ9IlBheVBhbCBEb25hdGUgQnV0dG9uIiAvPg0KICAgICAgPC9hPg0KICA8L3A+DQogIDxkaXYgY2xhc3M9Im1fdG9wXzI1Ij48L2Rpdj4NCiAgPHA+DQogICAgT3IgdXNlIHRoZSBmb2xsb3dpbmcgUVIgY29kZSBmb3IgdGhlIHNhbWUgUGF5UGFsIGFjY291bnQ6IDwvcD4NCiAgPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pg0KICAgIDxwPjxpbWcgc3JjPSJ7JHJvb3RfdXJsfS9tb2R1bGVzL3skbW9kLT5HZXROYW1lKCl9L2ltYWdlcy9wcF9xcl9jb2RlLnBuZyIgYWx0PSJQYXlQYWwgUVIgQ29kZSIgLz4NCiAgPC9wPg0KICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+DQo8cD5Ob3RlOiB0aGUgcGF5cGFsIGRvbmF0ZSBsaW5rIGhhcyBiZWVuIHVwZGF0ZWQgdG8gbXkgU21BcnQgTGFiIGFjY291bnQuIEkgd2Fzbid0IHVzaW5nIG15IHBlcnNvbmFsIGFjY291bnQgdGhhdCBtdWNoIGFuZCB0aGUgYWNjb3VudCB3YXMgYmVpbmcgbW9yZSBvZiBhbiBoYXNzbGUgdGhhbiBhbiBhc3NldC4uLiBUaGF0J3MgUFAgZm9yJ3lhLi4uPC9wPg0KICA8aDQ+Qml0Y29pbjwvaDQ+DQogIDxwPiBVc2UgdGhlIGZvbGxvd2luZyBidGMgYWRkcmVzczogPC9wPg0KICA8cD48c3BhbiBpZD0iczEiPjE3RzJKRDQxMXNVM3N3Y3ByTmNHTFFDY0hhWkJ5SzE5OE48L3NwYW4+IDxidXR0b24gb25jbGljaz0iY29weVRvQ2xpcGJvYXJkKCcjczEnKSI+Q29weSB0byBDbGlwYm9hcmQ8L2J1dHRvbj48L3A+DQogIDxwPg0KICAgIE9yIHVzZSB0aGUgZm9sbG93aW5nIFFSIGNvZGU6IDxicj4NCiAgICA8aW1nIHNyYz0ieyRyb290X3VybH0vbW9kdWxlcy97JG1vZC0+R2V0TmFtZSgpfS9pbWFnZXMvYnRjX3FyX2NvZGUucG5nIiBhbHQ9IlBheVBhbCBRUiBDb2RlIiAvPg0KICA8L3A+DQoNCiAgPGgzPkNvbnRyaWJ1dGlvbnM8L2gzPg0KICA8cD5PcGVuIFNvdXJjZSBtb2R1bGUgZGV2ZWxvcG1lbnQgZm9yIENNU01TIGlzIHByZXR0eSBtdWNoIGEgdm9sdW50ZWVyIGNvbW1pdG1lbnQuIFRoZSBkZXZlbG9wZXIgY29tbWl0cyB0aGUgdGltZSBoZSBjYW4gc3BhcmUgdG8gdGhlIHByb2plY3RzIGhlIGNvbnNpZGVycyBpbXBvcnRhbnQgdG8gdGhlIGZ1dHVyZSBvZiB0aGUgZ3JlYXRlciBwcm9qZWN0IHRoYXQgQ01TTVMgaXMuIFNvbWV0aW1lcyB3aGF0IG9uZSBiZWxpZXZlcyBpcyBpbXBvcnRhbnQgaXMgbm90IGNvbnZlcmdlbnQgd2l0aCB3aGF0IHRoZSBjb21tdW5pdHkgYmVsaWV2ZXMgdG8gYmUgaW1wb3J0YW50LiBTb21ldGltZXMgaXQncyBhIHdha2V1cCBjYWxsIGFuZCB0aGUgZGV2ZWxvcGVyIGVtYnJhY2VzIHNvbWUgb2YgdGhlIGNvbW11bml0eSdzIHZpc2lvbiwgc29tZXRpbWVzIGJvdGggdmlzaW9ucyBhcmUgbm90IGNvbXBhdGlibGUuIEl0J3MgYSBiYWxhbmNlIGRpZmZpY3VsdCB0byBhY2hpZXZlLCBidXQgYnJpbmdzIG1vcmUgcmVzcG9uc2liaWxpdHkgdG8gdGhlIGRldmVsb3Blci4gQnV0IGFsc28gcmVxdWlyZXMgc29tZSBlbXBhdGh5IGZyb20gdGhlIGNvbW11bml0eS4gQW5kIHRpbWUuLi48L3A+DQogIDxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50LjwvcD4NCiAgPHA+QW5vdGhlciB3YXkgdGhhdCAna2lja3MgdGhlIGNhbicgZm9yd2FyZCB3aGlsZSBtb3RpdmF0aW5nIHRoZSBtb2R1bGUgZGV2ZWxvcGVyIGlzIHRvIHNwb25zb3IgZmVhdHVyZXMgdGhhdCB3ZWIgZGV2ZWxvcGVycyB3b3VsZCBsaWtlIHRvIHNlZSBpbXBsZW1lbnRlZC4gV2ViIGRldmVsb3BlcnMsIG1vcmUgb2Z0ZW4gdGhhdCBub3QsIGtub3cgd2hhdCB0aGUgZmluYWwgY2xpZW50IHdhbnRzIG9yIG5lZWRzIGFuZCBoZWxwIGJyaWRnaW5nIHRoZSBnYXAgYmV0d2VlbiB0aGUgZmluYWwgdXNlciBhbmQgdGhlIG9yaWdpbmFsIGNyZWF0b3Igb2YgdGhlIG1vZHVsZXMuIEtlZXAgaW4gbWluZCB0aGF0IG1vZHVsZXMsIG1vcmUgdGhhbiB0aGUgQ01TTVMgY29yZSwgYXJlIHBhcnRpY3VsYXJseSBhcHQgdG8gY292ZXIgc2l0ZXMgc3BlY2lhbCBuZWVkcywgdGhlIGNvcmUgYmVpbmcgdGhlIHN1cHBvcnQgYXJvdW5kIHdoaWNoIGFsbCB0aGluZ3MgYXJlIHBvc3NpYmxlLiBTbywgaWYgc2VlIHRoZSBuZWVkIGZvciBhIHBhcnRpY3VsYXIgZmVhdHVyZSBpbiBhbiBleGlzdGluZyBtb2R1bGUsIG9yIGEgYmVzcG9rZSBtb2R1bGUgZm9yIGEgc3BlY2lhbCBuZWVkLCBzZWUgaWYgdGhlIGZpbmFsIGN1c3RvbWVyIGNhbiBmaXQgaW4gdGhlIGJ1ZGdldCB0aGUgc3BvbnNvcnNoaXAgb2YgdGhhdCBwcm9qZWN0LiBBc2sgYSBkZXZlbG9wZXIgb3IgdGhlIGFjdHVhbCBtb2R1bGUgZGV2ZWxvcGVyIGlmIGl0cyBhIG1vZHVsZSBmZWF0dXJlIHRoYXQgaXMgcmVxdWVzdGVkLCBmb3IgYW4gZXN0aW1hdGUgZm9yIHRoZSBqb2IgYW5kIHRyeSB0byBtYWtlIGl0IHBvc3NpYmxlLiBTb21ldGltZXMgaXQgbWF5IGJlIGNoZWFwZXIgdGhhbiBpdCBsb29rcywgb3RoZXIgdGltZXMgaXQgbWF5IGJlIHBvc3NpYmxlIHZpYSBzb21lIHNvcnQgb2YgY3Jvd2QgZnVuZGluZy4gV2hlbiBpdCBoYXBwZW5zLCBpdCdzIGEgd2luLXdpbiBzaXR1YXRpb24uIFRoZSBjb21tdW5pdHkgd2lucywgdGhlIHdlYiBkZXZlbG9wZXIgd2lucywgdGhlIGNsaWVudCB3aW5zLCBDTVNNUyB3aW5zIGFuZCB0aGUgbW9kdWxlIGRldmVsb3BlciB3aW5zLjwvcD4NCiAgPHA+QSBkaWZmZXJlbnQgd2F5IHRoYXQgaGVscHMgdG9vOiBmb3VuZCBhIGJ1Zz8gZmlsZSBhIGJ1ZyByZXBvcnQuIEJ1dCBwbGVhc2UsIGJlIGFzIHRob3JvdWdoIGluIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgYnVnLCB0aGUgY2lyY3Vtc3RhbmNlcyBhbmQgZW52aXJvbm1lbnQgd2hlcmUgaXQgaGFwcGVuZWQgYW5kIHRoZSBzdGVwcyB0byByZXByb2R1Y2UgaXQ7IGlmIHRoZSBkZXZlbG9wZXIgY2FuJ3QgcmVwcm9kdWNlIHRoZSBidWcgaXQgd2lsbCBiZSBkaWZmaWN1bHQsIGlmIG5vdCBpbXBvc3NpYmxlLCB0byBmaXggaXQ6IGFzIGZhciBhcyB0aGUgZGV2ZWxvcGVyIGlzIGNvbmNlcm5lZCBpZiBpdCBjYW5ub3QgYmUgcmVwcm9kdWNlZCBpdCBkb2Vzbid0IGV4aXN0LiBCZXR0ZXIgeWV0LCBpZiB5b3Uga25vdyBob3cgdG8gZml4IGl0LCBzdWdnZXN0IHRoZSBwb3NzaWJsZSBmaXguIElmIHZhbGlkLCB0aGUgZGV2ZWxvcGVyIHdpbGwgc3VyZWx5IGluY2x1ZGUgaXQuPC9wPg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.general.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJsb2NrcXVvdGUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZjZmNmYyA7cGFkZGluZzogMXB4IDNweCA4cHggMTZweDsgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjNTc3ZGE0OyI+DQogIDxoND48ZW0+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPjwvZW0+PC9oND4NCiAgPHA+PGVtPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgYW4gYW5jaWVudCBTdW1lcmlhbiBjaXR5IGluIHdoYXQgaXMgbm93IFRlbGwgQWJ1IFNoYWhyYWluLCBEaGkgUWFyIEdvdmVybm9yYXRlLCBJcmFxLjwvZW0+PC9wPg0KICA8cD48ZW0+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPiB3YXMgbG9uZyBjb25zaWRlcmVkIHRoZSBlYXJsaWVzdCBjaXR5IGluIHNvdXRoZXJuIE1lc29wb3RhbWlhLCBhbmQgaXMgc3RpbGwgdG9kYXkgYXJndWVkIHRvIGJlIHRoZSBvbGRlc3QgY2l0eSBpbiB0aGUgd29ybGQuPC9lbT48L3A+DQogIDxwPjxlbT5bLi4uXSBUaGUgRWd5cHRvbG9naXN0IDxzdHJvbmc+RGF2aWQgUm9obDwvc3Ryb25nPiwgaGFzIGNvbmplY3R1cmVkIHRoYXQgPHN0cm9uZz5FcmlkdTwvc3Ryb25nPiwgdG8gdGhlIHNvdXRoIG9mIFVyLCB3YXMgdGhlIG9yaWdpbmFsIDxzdHJvbmc+QmFiZWw8L3N0cm9uZz4gYW5kIHNpdGUgb2YgdGhlIDxzdHJvbmc+VG93ZXIgb2YgQmFiZWw8L3N0cm9uZz4sIHJhdGhlciB0aGFuIHRoZSBsYXRlciBjaXR5IG9mIDxzdHJvbmc+QmFieWxvbjwvc3Ryb25nPiBbLi4uXTwvZW0+PC9wPg0KICA8Y2l0ZT5XaWtpcGVkaWE8L2NpdGU+DQo8L2Jsb2NrcXVvdGU+DQo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1hbmFnZXMgbXVsdGlwbGVzIGxhbmd1YWdlcyBmb3IgdGhlIGZyb250ZW5kIGFuZCBwcm92aWRlcyBuYXZpZ2F0aW9uIHRocm91Z2ggdGhlIGxhbmd1YWdlcy48L3A+DQo8cD5JdHMgYSBmb3JrIG9mIDxzdHJvbmc+QmFiZWw8L3N0cm9uZz4gd2hpY2gsIGJ5IHRoZSB0aW1lIG9mIHRoaXMgd3JpdHRpbmcsIHNlZW1zIHRvIGJlIDxlbT5hYmFuZG9uLXdhcmU8L2VtPi48L3A+DQo8cD5Cb3RoIHRoaXMgbW9kdWxlIGFuZCBCYWJlbCB1c2UgYW4gYXBwcm9hY2ggdG8gbXVsdGlsaW5ndWFsIHNpdGVzIGNhbGxlZCAic2VwYXJhdGUgdHJlZSBicmFuY2hlcyIsIHdoaWNoIGhhcyBiZWVuIGRldmVsb3BwZWQgYnkgb3RoZXIgY21zbXMgZGV2ZWxvcGVycyAobmFtZWx5IE1hcmNvcyBDcnV6IC0gc2VlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP3Q9MTkwOTkjcDk0NzQ5IiB0YXJnZXQ9Il9ibGFuayI+dGhpcyB0b3BpYzwvYT4uPC9wPg0KPHA+RXJpZHUgaGFzIGFsc28gaW50ZWdyYXRlZCBDR21sIGZ1bmN0aW9uYWxpdHkgYW5kIGNhbiBhbHNvIHVzZSBpbmkgZmlsZXMgYXMgdHJhbnNsYXRpb24gc291cmNlcy48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiB0aHJvdWdoIGEgZmV3IGNoYW5nZXMgYW5kIGhhcyBhbiBleHRlbnNpdmUgcm9hZG1hcCBmb3IgZnV0dXJlIHJlbGVhc2VzLiBUaGVyZSBtYXkgYmUgYSBmZXcgbWlub3IgZ2xpdGNoZXMgYnV0IGl0IGhhcyBiZWVuIHVzZWQgaW4gcHJvZHVjdGlvbiBzaXRlcyBmb3IgYSBmZXcgeWVhcnMgYWxyZWFkeS4gSXQgaGFzIHByb3ZlbiB0byBiZSBxdWl0ZSBzdGFibGUgc28gZmFyLjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.how.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkhvdyBEbyBJIFVzZSBJdD88L2gzPg0KICAgIDxoND5UcmVlIGJyYW5jaGVzPC9oND4NCiAgICA8cD5UaGlzIG1vZHVsZSB1c2VzIGFuIGFwcHJvYWNoIHRvIG11bHRpbGluZ3VhbCBzaXRlcyBjYWxsZWQgPGVtPjxzdHJvbmc+InNlcGFyYXRlIHRyZWUgYnJhbmNoZXMiPC9zdHJvbmc+PC9lbT4sIHdoaWNoIGhhcyBiZWVuIGRldmVsb3BwZWQgYnkgb3RoZXIgY21zbXMgZGV2ZWxvcGVycyAobmFtZWx5IDxzdHJvbmc+TWFyY29zIENydXo8L3N0cm9uZz4gLSBzZWUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnL3ZpZXd0b3BpYy5waHA/dD0xOTA5OSNwOTQ3NDkiIHRhcmdldD0iX2JsYW5rIj50aGlzIHRvcGljPC9hPikuPC9wPg0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxwPlNob3VsZCB5b3UgbmVlZCB0byB1c2UgaXQgaW4geW91ciB0ZW1wbGF0ZXMsIHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIDxlbT48c3Ryb25nPiRwYWdlX2xhbmcgdmFyaWFibGU8L3N0cm9uZz48L2VtPi48L3A+DQogICAgPHA+TW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbGFuZ3VhZ2UgY2FuIGFsc28gYmUgcmV0cmlldmVkIHVzaW5nIHRoZSA8ZW0+PHN0cm9uZz4kcGFnZV9sYW5nX2luZm8gb2JqZWN0PC9zdHJvbmc+PC9lbT4gKHdpdGggdGhlIHNhbWUgYXR0cmlidXRlcyBhcyBpbiB0aGUgbWVudSB0ZW1wbGF0ZXMpLjwvcD48L2Rpdj4NCg0KICAgIDxoND5QYXJ0IDE6IHNldHRpbmcgdXAgdGhlIHBhZ2VzPC9oND4NCiAgICA8cD5UbyB1c2UgdGhpcywgeW91IHdpbGwgaGF2ZSB0byBjcmVhdGUgZGlmZmVyZW50IHJvb3QgcGFnZXMgZm9yIGVhY2ggbGFuZ3VhZ2UuIEZvciBleGFtcGxlOjwvcD4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPlNhbXBsZSBTaXRlIFN0cnVjdHVyZTwvbGVnZW5kPg0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPjEuIEVuZ2xpc2gNCiAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPg0KICAgICAgICAgICAgICA8bGk+MS4yLiAybmQgcGFnZTwvbGk+DQogICAgICAgICAgICAgIDxsaT4xLjMuIDNyZCBwYWdlPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgICA8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzDQogICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgIDxsaT4yLjEuIFBhZ2UgMTwvbGk+DQogICAgICAgICAgICAgIDxsaT4yLjIuIFBhZ2UgMjwvbGk+DQogICAgICAgICAgICAgIDxsaT4yLjMuIFBhZ2UgMzwvbGk+DQogICAgICAgICAgICA8L3VsPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgPC9maWVsZHNldD4NCg0KICAgIDxwPjxzdHJvbmc+Um9vdCBsYW5ndWFnZTwvc3Ryb25nPiBwYWdlcyA8c3Ryb25nPigxLiBhbmQgMi4pPC9zdHJvbmc+IHNob3VsZCBiZSA8c3Ryb25nPjxlbT5zZWN0aW9uIGhlYWRlcnM8L2VtPjwvc3Ryb25nPi48L3A+DQogICAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPllvdSBjYW4gbmFtZSB0aGVtIChhbGlhcyBhbmQgYWxsKSBhbnkgd2F5IHlvdSB3YW50LjwvZGl2Pg0KDQogICAgPHA+SW4gb3JkZXIgdG8gZGlzcGxheSBtZW51IGNvcnJlY3RseSAodGhhdCBpcywgbm90IHRvIGRpc3BsYXkgbGFuZ3VhZ2UgaGVhZGVyIHBhZ2VzIGFuZCBwYWdlcyBiZWxvbmdpbmcgdG8gb3RoZXIgbGFuZ3VhZ2VzKSwgYWxsIHlvdSBoYXZlIHRvIGRvIGlzIGFkZCB0aGUgPHN0cm9uZz5zdGFydF9sZXZlbD0nMic8L3N0cm9uZz4gdG8geW91ciBtZW51IHRhZ3M6PC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bGl0ZXJhbH17bWVudSBzdGFydF9sZXZlbD0nMid9ey9saXRlcmFsfTwvcHJlPjwvcD4NCiAgICA8aDQ+UGFydCAyOiBzZXR0aW5nIHVwIHRoZSBsYW5ndWFnZXM8L2g0Pg0KICAgIDxwPk5leHQsIGdvIHRvOjwvcD4NCiAgICAgIDxmaWVsZHNldD4NCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT48c3Ryb25nPjxlbT5Db250ZW50ICZndDsgRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50PC9lbT48L3N0cm9uZz48L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgPC9maWVsZHNldD4NCiAgICA8cD5Gb3IgZWFjaCBsYW5ndWFnZSwgY2xpY2sgPHN0cm9uZz48ZW0+QWRkIExhbmd1YWdlPC9lbT48L3N0cm9uZz4gYW5kIGVudGVyIHRoZSBhcHByb3ByaWF0ZSBpbmZvcm1hdGlvbnMuPHA+DQogICAgPHA+VGhlIDxzdHJvbmc+IlJvb3QgcGFnZSI8L3N0cm9uZz4gc2hvdWxkIGJlIG9uZSBvZiB0aGUgPHN0cm9uZz5zZWN0aW9uIGhlYWRlcnM8L3N0cm9uZz4geW91J3ZlIGNyZWF0ZWQgZm9yIGVhY2ggbGFuZ3VhZ2UgPHN0cm9uZz4oMS5FbmdsaXNoLCAyLkZyYW4mY2NlZGlsO2Fpcyk8L3N0cm9uZz4uPC9wPg0KICAgICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD5Sb290IFBhZ2VzIGFuZCBTZWN0aW9uIEhlYWRlcnM8L2xlZ2VuZD4NCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT48c3Ryb25nPjEuIEVuZ2xpc2g8L3N0cm9uZz4gKHNob3VsZCBiZSBhIFNlY3Rpb24gSGVhZGVyKQ0KICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICA8bGk+Li4uPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgICA8bGk+PHN0cm9uZz4yLiBGcmFuJmNjZWRpbDthaXM8L3N0cm9uZz4gKHNob3VsZCBiZSBhIFNlY3Rpb24gSGVhZGVyKQ0KICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICA8bGk+Li4uPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIDxwPlRoZSA8c3Ryb25nPiJEZWZhdWx0IHBhZ2UiPC9zdHJvbmc+IHNob3VsZCBiZSB0aGUgPHN0cm9uZz5ob21lIHBhZ2U8L3N0cm9uZz4gZm9yIGVhY2ggbGFuZ3VhZ2UuPC9wPg0KICAgIDxwPkFzIG9mIHRoZSBsYW5ndWFnZSBjb2RlLCB5b3UgY291bGQgdXNlIGFueSA1IGNoYXJhY3RlcnMgY29kZSwgYnV0IGluIG9yZGVyIHRvIHByb3ZpZGUgZ29vZCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG1vZHVsZXMsIHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lIGFzIENNU01TIHVzZXMgKHlvdSBtYXkgdXNlIHRoZSBkcm9wIGRvd24gbGlzdCBvbiB0aGUgdG9wIHJpZ2h0IHRvIHBhcnRpYWxseSBmaWxsIHRoZSBmb3JtKS48L3A+DQogICAgPGRpdiBjbGFzcz0id2FybmluZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij48cD5XaGVuIHJlYWR5LCBtYWtlIHN1cmUgeW91IGFjdGl2YXRlIGVhY2ggbGFuZ3VhZ2UuLi48L3A+PC9kaXY+DQoNCiAgICA8aDQ+UGFydCAzOiBMYW5ndWFnZSBtZW51PC9oND4NCiAgICA8cD5UbyBnZXQgYSBsYW5ndWFnZSBtZW51LCB5b3UgbWF5IHVzZSB0aGUgZm9sbG93aW5nIHRhZzo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntsaXRlcmFsfXtFcmlkdSBhY3Rpb249J21lbnUnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+b3IsIHRvIHVzZSBhIHRlbXBsYXRlIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQgb25lOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e0VyaWR1IGFjdGlvbj0nbWVudScgdGVtcGxhdGU9J3RlbXBsYXRlX25hbWUnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+VGhlICJzaG93IiBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gY2hvb3NlIHdoaWNoIGxhbmd1YWdlcyBzaG91bGQgYmUgZGlzcGxheWVkLjwvcD4NCiAgICA8aDQ+UGFydCA0IChvcHRpb25hbCkgOiBDdXN0b20gbGFuZ3VhZ2UgZW50cmllczwvaDQ+DQogICAgPHA+SW4gPHN0cm9uZz50ZW1wbGF0ZXM8L3N0cm9uZz4sIDxzdHJvbmc+bW9kdWxlIHRlbXBsYXRlczwvc3Ryb25nPiwgPHN0cm9uZz5nbG9iYWwgY29udGVudCBibG9ja3MgKEdDQidzKTwvc3Ryb25nPiwgPHN0cm9uZz5jb250ZW50IGJsb2Nrczwvc3Ryb25nPiwgZXRjLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBjb250ZW50IGRlcGVuZGluZyBvbiB0aGUgbGFuZ3VhZ2UuPC9wPg0KICAgIDxwPlRoZSB0cmFkaXRpb25hbCB3YXkgdG8gZG8gdGhpcyB3YXMgdG8gY3JlYXRlIGNvbmRpdGlvbnMgd2l0aCB0aGUgcGFnZV9sYW5nIHZhcmlhYmxlOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9DQogICAge2lmICRwYWdlX2xhbmcgPT0gJ2VuX1VTJ30NCiAgICAgIEVuZ2xpc2ggdGV4dA0KICAgIHtlbHNlaWYgJHBhZ2VfbGFuZyA9PSAnZnJfRlInfQ0KICAgICAgVGV4dGUgZW4gZnJhbiZjY2VkaWw7YWlzDQogICAgey9pZn17L2xpdGVyYWx9PC9wcmU+PC9wPg0KICAgIDxwPldlbGwuLi4geW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2QgYnV0LCB3aXRoIHRoZSBtb2R1bGUsIGFub3RoZXIgbW9yZSBjZW50cmFsaXplZCB3YXkgaXMgcHJvdmlkZWQuPC9wPg0KICAgIDxwPkluIHRoZSBhZG1pbiBwYW5lbCBvZiB0aGlzIG1vZHVsZSwgeW91IHdpbGwgZmluZCBhIGxpbmsgdG8gZWRpdCBlbnRyaWVzIGZvciBlYWNoIGxhbmd1YWdlLjwvcD4NCiAgICA8cD48c3Ryb25nPjxlbT5MYW5ndWFnZSBFbnRyaWVzPC9lbT48L3N0cm9uZz4gYXJlIHN0cmluZ3MgdGhhdCBleGlzdHMgZm9yIGVhY2ggbGFuZ3VhZ2UgYnV0IGhvbGQgZGlmZmVyZW50IHRleHQgKG9yIEhUTUwpLjwvcD4NCiAgICA8cD5XaGF0IHlvdSBjYW4gZG8gaXMgdG8gY3JlYXRlIGEgbmV3IDxzdHJvbmc+PGVtPmxhbmd1YWdlIGVudHJ5PC9lbT48L3N0cm9uZz4gKGZvciBleGFtcGxlOiAid2VsY29tZSB0ZXh0IiwgZW50ZXIgaXRzIGNvbnRlbnQgZm9yIGFsbCBsYW5ndWFnZXMsIGFuZCBzaW1wbHkgY2FsbCB0aGUgZW50cnkgd2hlcmV2ZXIgeW91IG5lZWQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgYWN0aW9uOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e0VyaWR1IHNob3c9J3dlbGNvbWUgdGV4dCd9ey9saXRlcmFsfTwvcHJlPjwvcD4NCiAgICA8cD5TaG91bGQgeW91IGV2ZXIgbmVlZCB0byBlZGl0IHRoZSBzdHJpbmdzIGFuZCBhZGQgbGFuZ3VhZ2VzLCB5b3Ugd2lsbCBmaW5kIHRoaXMgc29sdXRpb24gdG8gYmUgbW9yZSBoYW5keS4gQnV0IGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBvbmUsIGl0IHdpbGwgd29yayBqdXN0IHRoZSBzYW1lLjwvcD4NCiAgICA8cD5Zb3UgY2FuIGFsc28gYXNzaWduIGxhbmd1YWdlIGVudHJpZXMgdG8gc21hcnR5IHZhcmlhYmxlcywgdXNpbmc6PC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bGl0ZXJhbH17RXJpZHUgc2hvdz0nd2VsY29tZSB0ZXh0JyBhc3NpZ249J3dlbGNvbWUnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+b3IsIGlmIHlvdSB3YW50IHRvIGFzc2lnbiBtdWx0aXBsZSBlbnRyaWVzLCBzZXBlcmF0ZSB0aGVtIGJ5IGNvbW1hczo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntsaXRlcmFsfXtFcmlkdSBzaG93PSdlbnRyeTEsZW50cnkyLGVudHJ5JyBhc3NpZ249J3ZhcjEsdmFyMix2YXIzJ317L2xpdGVyYWx9PC9wcmU+PC9wPg0KDQogICAgPGgzPklOSSBGaWxlcyBpbnRlZ3JhdGlvbjwvaDM+DQogICAgPHA+U2luY2UgdmVyc2lvbiAxLjEgRXJpZHUgaGFzIGludGVncmF0ZWQgQ0dtbCBmZWF0dXJlcyBhbmQgaGFzIHRoZSBhYmlsaXR5IHRvIGltcG9ydCBpdHMgaW5pIGZpbGVzLiBJdCdzIGEgZGlmZmVyZW50IGFwcHJvYWNoIGFuZCBvbmUgZG9lc24ndCBwcmVjbHVkZSB0aGUgb3RoZXIuPC9wPg0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPg0KICAgICAgPHA+TW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgU21hcnR5IGFkZG9ucyBFcmlkdSByZWdpc3RlcnMgaXMgYXZhaWxhYmxlIG9uIHRoZSBJTkkgRmlsZXMgdGFiLjwvcD4NCiAgICA8L2Rpdj4NCiAgICA8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCiAgICA8cD5QYWdlIGxhbmd1YWdlIHNob3VsZCBiZSBkZXRlY3RlZCBhbmQgYXNzaWduZWQgdG8gdGhlIHNtYXJ0eSB2YXJpYWJsZXMgYmVmb3JlIHRoZSB0ZW1wbGF0ZSBpcyBwcm9jZXNzZWQgYnkgYW4gZXZlbnQgaGFuZGxlci4gSG93ZXZlciwgaXQgaXMgcG9zc2libGUgdGhhdCBhdCBzb21lIHBvaW50IGluIHRoZSBwYWdlIHRlbXBsYXRlIHRoZSBwYWdlIGxhbmd1YWdlIGlzIGxvc3QgKGVzcGVjaWFsbHkgc2luY2UgdGhlIHBhZ2UgaGVhZCBpcyBwcm9jZXNzZWQgc2VwYXJhdGx5IGZyb20gdGhlIHBhZ2UgYm9keSkuIFNob3VsZCB0aGlzIGhhcHBlbiwgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyB0YWcgdG8gcmVhc3NpZ24gaXQ6PC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bGl0ZXJhbH17RXJpZHUgYWN0aW9uPSdhc3NpZ24nfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+Tm90ZSB0aGF0IHlvdSBtYXkgYWxzbyB1c2U8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntsaXRlcmFsfXtFcmlkdSBhY3Rpb249J2F1dG9fcmVkaXJlY3QnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+YXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIHRlbXBsYXRlIGlmLCBmb3Igc29tZSByZWFzb24sIHJlZGlyZWN0aW9uIGRvZXMgbm90IG9jY3VyIChJIGRvbid0IHNlZSB3aHkgdGhpcyBzaG91bGQgaGFwcGVuIHRob3VnaCkuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.ini.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPk9sZCBDR21sIEludGVncmF0aW9uPC9oMz4NCjxwPg0KICBDR21sIHdhcyBhIHNpbXBsZSBtb2R1bGUgaW50ZW5kZWQgdG8gcHJvdmlkZSBmb3IgYSBxdWljayBhbmQgZWFzeSB3YXkgdG8gbWFuYWdlIHRyYW5zbGF0aW9uIG9mIHNpbXBsZSBzdHJpbmdzLiAgSWRlYWwgZm9yIHVzZSBpbiBmb3JtcyBvciByZXBvcnRzLCBvciBvdGhlciB0ZW1wbGF0ZSBmaWxlcywgaXQgYWxsb3dlZCB5b3UgdG8gYXV0b21hdGljYWxseSBhcHBseSB0aGUgY29ycmVjdCBsYW5ndWFnZSBzdHJpbmcgaW4gdGhlIHByb3BlciBsb2NhdGlvbiBvZiB5b3VyIHRlbXBsYXRlLiBJIHdhcyBpZGVhbGx5IHN1aXRlZCBmb3Igc29sdmluZyBjYXNlcyB3aGVyZSB0aGUgdGV4dCBvdXRwdXQgZG9lcyBub3QgbmVlZCB0byBiZSBtYW5hZ2VkIGJ5IGFuIGVkaXRvciwgYW5kIHdvdWxkIGNoYW5nZSBpbmZyZXF1ZW50bHkuDQo8L3A+DQoNCjxwPkVyaWR1IGhhcyBub3cgaW50ZWdyYXRlZCBpdCdzIGZ1bmN0aW9uYWxpdHkgYW5kIGlzIGNhcGFibGUgb2YgaW1wb3J0aW5nIGRhdGEgZnJvbSBDR21sLiBUaGUgb3JpZ2luYWwgSU5JIGZpbGVzIHdpbGwgYmUgY29waWVkIG9uIGltcG9ydCB0byB0aGUgZm9sbG93aW5nIGZvbGRlcjo8L3A+DQoNCjxwPjxwcmU+PGNvZGU+Jmx0O0NNU01TIGluc3RhbGxhdGlvbiByb290Jmd0Oy9hc3NldHMvRXJpZHU8L2NvZGU+PC9wcmU+PC9wPg0KDQo8cD5JZiB0aGUgaW1wb3J0IHByb2Nlc3MgZmluZHMgbW9yZSB0aGFuIG9uZSBsb2NhdGlvbiBmcm9tIHRoZSBsZWdpdCBDR21sIHBvc3NpYmxlIGxvY2F0aW9ucyBpdCB3aWxsIHRyeSB0byBpbXBvcnQgdGhlbSBhbGwsIGJ1dCBvbiBjb25mbGljdCBpdCB3aWxsIGNvcHkgYW55IGR1cGxpY2F0ZXMgdG8gYSBiYWNrdXAgZm9sZGVyIGluc2lkZSB0aGUgYXNzZXRzIEVyaWR1IG93biBmb2xkZXIuIEFnYWluLCBpbiBjYXNlIG9mIGNvbmZsaWN0cyB0aGUgZmlsZXMgd2lsbCBiZSBudW1iZXJlZCB0byBwcmV2ZW50IGxvc3Mgb2YgZGF0YS48L3A+DQo8cD5UaGUgbG9jYXRpb25zIHdpbGwgYmUgc2Nhbm5lZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOjwvcD4NCjxvbD4NCiAgPGxpPkFueSBsb2NhdGlvbiBzZXQgdW5kZXIgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNjZWNlY2U7Ij4kY29uZmlnWydDR21sX3BhdGgnXTwvY29kZT4gY29uZmlndXJhdGlvbiBrZXk7PC9saT4NCiAgPGxpPjxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjY2VjZWNlOyI+Jmx0O0NNU01TIGluc3RhbGxhdGlvbiByb290Jmd0O2Fzc2V0cy9DR21sPC9jb2RlPiBmb2xkZXIgb24gdGhlIHNpdGUgcm9vdCBsb2NhdGlvbjs8L2xpPg0KICA8bGk+T2xkIDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjY2VjZWNlOyI+Jmx0O0NNU01TIGluc3RhbGxhdGlvbiByb290Jmd0O19DR21sPC9jb2RlPiBmb2xkZXIgb24gdGhlIHNpdGUgcm9vdCBsb2NhdGlvbjs8L2xpPg0KPC9vbD4NCg0KPHA+RmlsZXMgd2lsbCBiZSBjb3BpZWQgYW5kIHRoZW4gdXNlZCBvbiBmaXJzdCBmb3VuZCwgZmlyc3QgdXNlZCBvcmRlci4gVGhlIHJlc3Qgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGJhY2t1cCBmb2xkZXIgYXMgZGVzY3JpYmVkIGFib3ZlLjwvcD4NCg0KPGgzPkZlYXR1cmVzOjwvaDM+DQo8dWw+DQogIDxsaT5TdXBwb3J0cyBrZWVwaW5nIHRyYW5zbGF0aW9ucyBpbiBmaWxlcy4gIFBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIHNtYWxsIHN0cmluZ3MgdGhhdCBkbyBub3QgY2hhbmdlIG9mdGVuLCBhbmQgY2FuIGJlIHRyYWNrZWQgd2l0aCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcy48L2xpPg0KICA8bGk+U3VwcG9ydHMgb3JnYW5pemluZyBsYW5ndWFnZSBmaWxlcyBpbnRvIGRpZmZlcmVudCByZWFsbXMuICBUaGlzIGlzIHVzZWZ1bCBmb3Igb3JnYW5pemluZyB0cmFuc2xhdGlvbnMgZm9yIGRpZmZlcmVudCBmb3Jtcywgb3IgcmVwb3J0cy48L2xpPg0KICA8bGk+VXNlcyB0aGUgY3VycmVudCBsYW5ndWFnZSBmb3IgdGhlIHJlcXVlc3QsIHVzaW5nIENNU01TIHB1Ymxpc2hlZCBBUEknczwvbGk+DQo8L3VsPg0KDQo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+DQoNCjxvbCB0eXBlPSJhIj4NCiAgPGxpPkNyZWF0ZSB5b3VyIHRyYW5zbGF0aW9uKHMpLg0KICAgICA8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBhdCBsZWFzdCB0aGUgZGVmYXVsdCByZWFsbSBmaWxlLCB3aXRoIHRyYW5zbGF0aW9uIG9mIG51bWVyb3VzIHN0cmluZ3MgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy4gIFNlZSBiZWxvdyBmb3IgaW5mb3JtYXRpb24gb24gdGhlIGZvcm1hdCBvZiBsYW5nIGZpbGVzLjwvcD4NCiAgPC9saT4NCiAgPGxpPkNoYW5nZSBoYXJkIGNvZGVkIHN0cmluZ3MgdG8gbW9kdWxlIGNhbGxzIHRoYXQgd2lsbCB1dGlsaXplIGxhbmd1YWdlIHN0cmluZyBrZXlzLiBpLmU6DQogICAgICA8cD48cHJlPjxjb2RlPntsaXRlcmFsfXtJMThOIGtleT0naGVsbG8nfXsvbGl0ZXJhbH08L2NvZGU+PC9wcmU+PC9wPg0KICA8L2xpPg0KICA8bGk+DQogICAgSWYgeW91IGFyZSBtaWdyYXRpbmcgZnJvbSBDR21sOg0KICAgIDx1bD4NCiAgICAgIDxsaT5sb29rIGluIHRoZSBzZXR0aW5ncyB0YWIgZm9yIGFuIGltcG9ydCBidXR0b246IGFsbCB0aGUgaW5pIGZpbGVzIHdpbGwgYmUgY29waWVkIHRvIGEgbmV3IGxvY2F0aW9uLCBhcyBkZXNjcmliZWQgYWJvdmU7PC9saT4NCiAgICAgIDxsaT5yZXBsYWNlIHRoZSBDR21sIHRhZ3MgdXNlZCBpbiB0aGUgdGVtcGxhdGVzIHdpdGggdGhlIGNvcnJlc3BvbmRlbnQgRXJpZHUgdGFncyAoc2VlIENoZWF0IFNoZWV0IG9uIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UpPC9saT4NCiAgICA8L3VsPg0KICA8L2xpPg0KPC9vbD4NCg0KPGgzPlNtYXJ0eSBwbHVnaW5zPC9oMz4NCg0KPHA+VGhpcyBtb2R1bGUgcmVnaXN0ZXJzIGEgZmV3IGFkZGl0aW9uYWwgc21hcnR5IHBsdWdpbnMgdG8gYWlkZSBpbiB0cmFuc2xhdGlvbiwgYW5kIGluIG9yZ2FuaXppbmcgdHJhbnNsYXRpb25zLjwvcD4NCjx1bD4NCiAgIDxsaT48Y29kZT57bGl0ZXJhbH17bDEwbiBrZXk9c3RyaW5nIFtkZmx0PXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddIFtfKj1zdHJpbmddfXsvbGl0ZXJhbH08L2NvZGU+DQogICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHVybiB0aGUgdHJhbnNsYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpbiB0aGUgY3VycmVudCByZWFsbSwgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLCBpZiBvbiBleGlzdHMuPC9wPg0KICAgICAgPHA+QXJndW1lbnRzOjwvcD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxjb2RlPmt8a2V5PXN0cmluZzwvY29kZT4gPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+IC0gVGhlIGxhbmd1YWdlIHN0cmluZyBrZXkuICBOb3RlIGVpdGhlciAmcXVvdDtrJnF1b3Q7IG9yICZxdW90O2tleSZxdW90OyBhcmUgYWNjZXB0YWJsZS48L2xpPg0KCTxsaT48Y29kZT5kZmx0PXN0cmluZzwvY29kZT4gPGVtPihvcHRpb25hbCk8L2VtPiAtIElmIHRoZXJlIGlzIG5vIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgcmV0dXJuIHRoZSBzdHJpbmcgc3BlY2lmaWVkLjwvbGk+DQoJPGxpPjxjb2RlPmFzc2lnbj1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBPcHRpb25hbGx5IGFzc2lnbiB0aGUgb3V0cHV0IG9mIHRoaXMgZnVuY3Rpb24gdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPg0KICAgICAgPC91bD4NCiAgICAgIDxwcmU+PGNvZGU+e2xpdGVyYWx9e2wxMG4gaz1oZWxsbyBkZmx0PSdIZWxsbyd9ey9saXRlcmFsfTwvY29kZT48L3ByZT4NCg0KICAgICAgPGg0PlZhcmlhYmxlIHN1YnN0aXR1dGlvbjwvaDQ+DQoNCiAgICAgIDxwPlRoaXMgcGx1Z2luIGFsc28gc3VwcG9ydHMgc3RyaW5nIHN1YnN0aXR1dGlvbiBieSBwcm92aWRpbmcgb25lIG9yIG1vcmUgdmFyaWFibGVzIHRvIHRoZSB7bGl0ZXJhbH17STE4TiB0YWd9ey9saXRlcmFsfS48L3A+DQogICAgICA8cD5JZiB0aGUgdHJhbnNsYXRpb24gc3RyaW5nIGluIHRoZSBsYW5nIGZpbGUgaXMgb2YgdGhlIGZvcm0gPGNvZGU+c29tZWtleT0iVGhlIGNvbG9yIG9mIHRoZSAjI29iaiBpcyAjI2NvbG9yIjwvY29kZT4gPGVtPihhbG9uZyB3aXRoIGl0J3MgdmFyaW91cyB0cmFuc2xhdGlvbnMpLjwvZW0+ICBUaGVuIGNhbGxpbmcgdGhlIHBsdWdpbiBsaWtlIHRoaXMgPGNvZGU+e2xpdGVyYWx9e0kxOE4ga2V5PXNvbWVrZXkgX29iaj1hcHBsZSBfY29sb3I9cmVkfXsvbGl0ZXJhbH08L2NvZGU+IHdpbGwgcGVyZm9ybSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uPC9wPg0KICAgICAgPHA+VGhlIGVmZmVjdCBjYW4gYmUgY29tYmluZWQgdXNpbmcgdGhlIGNhbGwgdG8gdGhpcyBtb2R1bGUgbXVsdGlwbGUgdGltZXM6PC9wPg0KICAgICAgPHByZT48Y29kZT57bGl0ZXJhbH17STE4TiBrZXk9YXBwbGUgYXNzaWduPW9ian08YnIvPntJMThOIGtleT1yZWQgYXNzaWduPXJlZH08YnIvPntJMThOIGtleT1zb21la2V5IF9vYmo9JG9iaiBfY29sb3I9JHJlZH17L2xpdGVyYWx9PC9jb2RlPjwvcHJlPg0KICAgPC9saT4NCg0KICAgPGxpPjxjb2RlPntsaXRlcmFsfXtJMThOIGtleT1zdHJpbmcgW2Fzc2lnbj1zdHJpbmddfXsvbGl0ZXJhbH08L2NvZGU+DQogICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHVybiB0aGUgdHJhbnNsYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpbiB0aGUgY3VycmVudCByZWFsbSwgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLjwvcD4NCg0KICAgICAgPHA+QXJndW1lbnRzOjwvcD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxjb2RlPmt8a2V5PXN0cmluZzwvY29kZT4gPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+IC0gVGhlIGxhbmd1YWdlIHN0cmluZyBrZXkuICBOb3RlIGVpdGhlciAmcXVvdDtrJnF1b3Q7IG9yICZxdW90O2tleSZxdW90OyBhcmUgYWNjZXB0YWJsZS48L2xpPg0KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gdGhlIG91dHB1dCBvZiB0aGlzIGZ1bmN0aW9uIHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4NCiAgICAgIDwvdWw+DQoNCiAgIDxsaT48Y29kZT57bGl0ZXJhbH17bDEwbl9nZXRhbGwgYXNzaWduPXN0cmluZ317L2xpdGVyYWx9PC9jb2RlPg0KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBnZXQgYWxsIG9mIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2Ugc3RyaW5ncyBvZiB0aGUgY3VycmVudCByZWFsbSBhcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSwgYW5kIGFzc2lnbiB0aGVtIHRvIGEgc21hcnR5IHZhcmlhYmxlLjwvcD4NCiAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGFzc2lnbiBhcmd1bWVudCBpcyByZXF1aXJlZCBmb3IgdGhpcyBwbHVnaW4uICBpLmU6PC9wPg0KICAgICAgPHByZT48Y29kZT57bGl0ZXJhbH17bDEwbl9nZXRhbGwgYXNzaWduPSdsYW5nc3RyaW5ncyd9IC4uLiB7JGxhbmdzdHJpbmdzLmhlbGxvfXsvbGl0ZXJhbH08L2NvZGU+PC9wcmU+DQogICA8L2xpPg0KDQogICA8bGk+PGNvZGU+e2xpdGVyYWx9e2wxMG5fc2V0cmVhbG0gW3JlYWxtPXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddfXsvbGl0ZXJhbH08L2NvZGU+DQogICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSBzdHJpbmcgcmVhbG0gdG8gYSBkaWZmZXJlbnQgcmVhbG0sIGFuZCBvcHRpb25hbGx5IGFzc2lnbiBhbGwgb2YgdGhlIHRyYW5zbGF0ZWQgc3RyaW5ncyB0byBhbiBhc3NvY2lhdGl2ZSBhcnJheS4gaS5lOjwvcD4NCiAgICAgIDxwPkFyZ3VtZW50czo8L3A+DQogICAgICA8dWw+DQoJPGxpPjxjb2RlPnJlYWxtPXN0cmluZzwvY29kZT4gPGVtPihvcHRpb25hbCk8L2VtPiAtIEFuIG9wdGlvbmFsIGFsdGVybmF0aXZlIHJlYWxtIG5hbWUuICBJZiBub25lIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgcmVhbG0gaXMgYXNzdW1lZC48L2xpPg0KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGlvbnMgZm9yIHRoaXMgcmVhbG0gYXMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPg0KICAgICAgPC91bD4NCiAgICAgIDxwcmU+PGNvZGU+e2xpdGVyYWx9e2wxMG5fc2V0cmVhbG0gcmVhbG09J2Zvcm1zdHJpbmdzJyBhc3NpZ249J2Zvcm1zdHJpbmdzJ30gLi4uIHskZm9ybXRyaW5ncy5zdWJtaXR9ey9saXRlcmFsfTwvY29kZT48L3ByZT4NCiAgIDwvbGk+DQoNCiAgIDxsaT48Y29kZT57bGl0ZXJhbH17bDEwbl9vcHRpb25zIHJlYWxtPXN0cmluZyBbc2VsZWN0ZWQ9c3RyaW5nXX17L2xpdGVyYWx9PC9jb2RlPg0KICAgICAgPHA+VGhpcyBwbHVnaW4gaXMgdXNlZnVsIGluIHNlbGVjdCBzdGF0ZW1lbnRzLiAgSXQgd2lsbCBsb2FkIGFsbCBzdHJpbmdzIGZvciB0aGUgc3BlY2lmaWVkIHJlYWxtLCBjb252ZXJ0IHRoZW0gdG8gSFRNTCBvcHRpb24gdGFncywgYW5kIG1hcmsgdGhlIGluZGljYXRlZCBvcHRpb24gYXMgc2VsZWN0ZWQuPC9wPg0KICAgICAgPHA+QXJndW1lbnRzOjwvcD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxjb2RlPnJlYWxtPXN0cmluZzwvY29kZT4gPGVtPihyZXF1aXJlZCk8L2VtPiAtIFRoZSByZWFsbSB0byBsb2FkLjwvbGk+DQogICAgICAgIDxsaT48Y29kZT5zZWxlY3RlZD1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBPcHRpb25hbGx5IHNwZWNpZnkgdGhlIG9wdGlvbiB0aGF0IHNob3VsZCBiZSBzZWxlY3RlZCwgYnkgaXQncyBrZXkuPC9saT4NCiAgICAgIDwvdWw+DQogICAgICA8cHJlPjxjb2RlPntsaXRlcmFsfSZsdDtzZWxlY3QmZ3Q7e2wxMG5fb3B0aW9ucyByZWFsbT1jb3VudHJpZXMgc2VsZWN0ZWQ9Q0F9Jmx0O3NlbGVjdCZndDt7L2xpdGVyYWx9PC9jb2RlPjwvcHJlPg0KICAgPC9saT4NCg0KPC91bD4NCg0KPGgzPkxvY2F0aW9uIGFuZCBuYW1pbmcgb2YgRmlsZXM8L2gzPg0KDQo8cD5FcmlkdSB3aWxsIG9ubHkgdXNlIHRoZSBmaWxlcyBjcmVhdGVkIHVuZGVyOjwvcD4NCjxwPiA8cHJlPjxjb2RlPiZsdDtDTVNNUyBpbnN0YWxsYXRpb24gcm9vdCZndDsvYXNzZXRzL0VyaWR1PC9jb2RlPjwvcHJlPiA8L3A+DQoNCjxwPkFsbCBmaWxlcyBuYW1lcyBtdXN0IGJlIGluIHRoZSBmb3JtYXQgPGNvZGU+bGFuZy48c3Ryb25nPnJlYWxtX25hbWU8L3N0cm9uZz4uaW5pPC9jb2RlPjwvcD4NCjxwPlRoZSBuYW1lIG9mIHRoZSBkZWZhdWx0IHJlYWxtIGlzICZxdW90O2RlZmF1bHQmcXVvdDsgc28sIGJ5IGRlZmF1bHQgdGhpcyBtb2R1bGUgd2lsbCBsb29rIGZvciB0aGUgZGVmYXVsdCByZWFsbSBmaWxlIGluIDxjb2RlPiZsdDtDTVNNUyBpbnN0YWxsYXRpb24gcm9vdCZndDsvYXNzZXRzL0VyaWR1L2xhbmcuPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+LmluaTwvY29kZT48L3A+DQoNCjxoMz5Gb3JtYXQgb2YgRmlsZXM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgdXNlcyBJTkkgZmlsZSBmb3JtYXQgZm9yIHRyYW5zbGF0aW9uLiAgU2VjdGlvbiBlbnRyaWVzIHNlcGFyYXRlIGxhbmd1YWdlcywgYW5kIGluZGl2aWR1YWwgZW50cmllcyBjb250YWluIHRoZSB0cmFuc2xhdGlvbnMuICBBIHNpbXBsZSBsYW5ndWFnZSBmaWxlIGZvciBFbmdsaXNoIGFuZCBGcmVuY2ggbWF5IGxvb2sgc29tZXRoaW5nIGxpa2U6PC9wPg0KPHByZT4NCltlbl9VU10NCmhlbGxvPUhlbGxvDQpieWU9R29vZCBCeWUNCg0KW2ZyX0ZSXQ0KaGVsbG89Qm9uam91cg0KYnllPUF1IFJldm9pcg0KPC9wcmU+DQoNCjxwPk11bHRpIGxpbmUgZW50cmllcyBhcmUgcGVybWlzc2libGUsIGJ1dCBtdXN0IGJlIHF1b3RlZC4gIGkuZTo8L3A+DQo8cHJlPg0KW2VuX1VTXQ0KdGVybXNfb2ZfdXNlPSJUaGlzIGlzIGEgdmVyeSBsb25nIHRleHQgdXNpbmcNCm11bHRpcGxlIGxpbmVzIGRlc2NyaWJpbmcgdGhlIHRlcm1zIG9mIHVzZQ0KZm9yIG15IHdlYnNpdGUuIg0KPC9wcmU+DQoNCjxoMz5EZWZhdWx0IGxhbmd1YWdlLCBhbmQgbWlzc2luZyBsYW5ndWFnZSBzdHJpbmdzPC9oMz4NCjxwPkl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgZGVmYXVsdCBsYW5ndWFnZSBpcyBlbl9VUy4gPGVtPih0aGlzIG1heSBjaGFuZ2UgYXQgYSBsYXRlciBkYXRlKTwvZW0+LiAgU28gaWYgYSBzdHJpbmcgZXhpc3RzIGZvciBlbl9VUywgYnV0IG5vdCBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UsIHRoZW4gdGhlIEVuZ2xpc2ggc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+DQo8cD5UaGUgbW9kdWxlIHdpbGwgbm90IHJldHVybiBhbnkgdmFsdWUgaWYgYSB0cmFuc2xhdGlvbiBmb3IgYSByZXF1ZXN0ZWQga2V5IGRvZXMgbm90IGV4aXN0IGluIGVpdGhlciB0aGUgY3VycmVudCBsYW5ndWFnZSBvciB0aGUgZGVmYXVsdCBsYW5ndWFnZS4gIEhvd2V2ZXIsIGEgZGVidWcgZW50cnkgd2lsbCBiZSBwbGFjZWQgaW50byB0aGUgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNjZWNlY2U7Ij4mbHQ7Q01TTVMgaW5zdGFsbGF0aW9uIHJvb3QmZ3Q7L3RtcC9jYWNoZS9kZWJ1Zy5sb2c8L2NvZGU+IGZpbGUgdG8gYWxsb3cgeW91IHRvIGZpbmQgaW5zdGFuY2VzIHdoZXJlIGEgdHJhbnNsYXRpb24gaXMgdXNlZCwgYnV0IGlzIG5vdCBjdXJyZW50bHkgdHJhbnNsYXRlZC48L3A+DQoNCjxoMz5DR21sIFRhZ3MgUmVwbGFjZW1lbnQgQ2hlYXQgU2hlZXQ8L2gzPg0KDQo8cD5IZXJlIGlzIGEgbGlzdCBvZiB0aGUgcmVwbGFjZW1lbnRzIG5lZWRlZCB0byBiZSBkb25lIG9uIHRoZSB0ZW1wbGF0ZXMgaW4gb3JkZXIgdG8gbW92ZSBmcm9tIENHbWwgdG8gRXJpZHUgZnVuY3Rpb25hbGl0eTo8L3A+DQp7bGl0ZXJhbH0NCjx1bD4NCiAgPGxpPjxiPkNHbWw8L2I+J3MgbW9kdWxlIGRlZmF1bHQgYWN0aW9uOg0KICAgIDxwPg0KICAgICAgPHByZT48Y29kZT57Q0dtbCAuLi59IHsqIHJlcGxhY2Ugd2l0aCAqfSB7STE4TiAuLi59PC9jb2RlPjwvcHJlPjxicj4NCiAgICAgICAgICA8c21hbGw+PGk+Tm90ZTogPGI+STE4TjwvYj4gY2FwaXRhbGl6YXRpb24gaXMgdXNlZCB0byBtaW1pYyBDTVNNUyBNb2R1bGUgbmFtZSBjb252ZW50aW9uIHdhcyBpZiB0aGUgdGFnIHdlcmUgYSBtb2R1bGUgZGVmYXVsdCBhY3Rpb24gY2FsbC5hcyBpdCBvcmlnaW5hbGx5IHdhcyB3aXRoIENHbWwuPC9pPjwvc21hbGw+PGJyPg0KICAgICAgPHNtYWxsPjxpPk5vdGU6IDxiPkkxOE48L2I+IGZyb20gPGI+SW50ZXJuYXRpb25hbGl6YXRpb248L2I+IHNob3J0aGFuZC48L2k+PC9zbWFsbD48YnI+DQogICAgICA8c21hbGw+PGk+Tm90ZTogPGI+RXJpZHU8L2I+IG93biBkZWZhdWx0IGFjdGlvbiBpcyB1c2VkIGZvciBhIGRpZmZlcmVudCBmdW5jdGlvbi48L2k+PC9zbWFsbD4NCiAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5TbWFydHkgcGx1Z2luczoNCiAgICA8cD4NCiAgICAgIDxwcmU+PGNvZGU+e2NnX18gLi4ufSB7KiByZXBsYWNlIHdpdGggKn0ge2wxMG4gLi4ufTwvY29kZT48L3ByZT48YnI+DQogICAgICA8cHJlPjxjb2RlPntjZ21sX2dldGFsbCAuLi59IHsqIHJlcGxhY2Ugd2l0aCAqfSB7bDEwbl9nZXRhbGwgLi4ufTwvY29kZT48L3ByZT48YnI+DQogICAgICA8cHJlPjxjb2RlPntjZ21sX3NldHJlYWxtIC4uLn0geyogcmVwbGFjZSB3aXRoICp9IHtsMTBuX3NldHJlYWxtIC4uLn08L2NvZGU+PC9wcmU+PGJyPg0KICAgICAgPHByZT48Y29kZT57Y2dtbF9vcHRpb25zIC4uLn0geyogcmVwbGFjZSB3aXRoICp9IHtsMTBuX29wdGlvbnMgLi4ufTwvY29kZT48L3ByZT48YnI+DQogICAgICA8c21hbGw+PGk+Tm90ZTogPGI+bDEwbjwvYj4gZnJvbSA8Yj5sb2NhbGl6YXRpb24gc2hvcnRoYW5kPC9iPi48L2k+PC9zbWFsbD4NCiAgICA8L3A+DQogIDwvbGk+DQo8L3VsPg0KICAgIDxwPkFsbCB0aGUgb3JpZ2luYWwgcGFyYW1ldGVycyBhcmUgc3VwcG9ydGVkLiBTZWUgYWJvdmUgcmVmZXJlbmNlcy48L3A+DQoNCiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+DQogICAgICA8cD5UaGUgYm90aCB0aGUgbmV3IFRyYW5zbGF0aW9ucyBDZW50cmUgYW5kIHRoZSBFbnRyaWVzIEVkaXRvciBjYW4gb25seSBlZGl0IHRoZSBkYXRhYmFzZSBkYXRhIG9mIHRoZSBtb2R1bGUuPC9wPg0KICAgICAgPHA+VGhlIGFiaWxpdHkgdG8gZWRpdCB0aGUgaW5pIGZpbGVzIGFuZCBlbnRyaWVzIGlzIGluIHRoZSBUbyBEbyBsaXN0IGFuZCB3aWxsIHByb2JhYmx5IGJlIGluY2x1ZGVkIGluIG9uZSBvZiB0aGUgbmV4dCByZWxlYXNlcy48L3A+DQogICAgPC9kaXY+DQoNCnsvbGl0ZXJhbH0=]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.methods.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkxhbmd1YWdlIHJlZGlyZWN0aW9uIG1ldGhvZHM8L2gzPg0KICAgIDxwPlRoZXJlIGFyZSB0d28gcG9zc2libGUgbWV0aG9kcyB0byB0ZWxsIENNU01TIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuPC9wPg0KICAgIDxwPiBCeSBkZWZhdWx0LCB0aGUgaGlyZXJhcmNoeSBzb2x1dGlvbiBpcyBhY3RpdmF0ZWQsIGJ1dCB5b3UgY2FuIGNoYW5nZSB0aGF0IGluIHRoZSBzZXR0aW5ncyB0YWIuPC9wPg0KICAgIDxoND5NYXJjb3MgQ3J1eidzIGRlZmluaXRpb24gc29sdXRpb248L2g0Pg0KICAgIDxmaWVsZHNldD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxzdHJvbmc+PGVtPlByb3M6PC9lbT48L3N0cm9uZz4gYWxsb3dzIHRoaWdodCBjdXN0b21pemF0aW9uIGFuZCBwYXJ0aWFsIHRyYW5zbGF0aW9uLjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Db25zOjwvZW0+PC9zdHJvbmc+IG5lZWQgdG8gc3BlY2lmeSBsYW5ndWFnZSBhbHRlcm5hdGl2ZXMgZm9yIGVhY2ggcGFnZSwgYW5kIHRvIHVwZGF0ZSBpdCBpZiBhbiBhbGlhcyBjaGFuZ2VzLjwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvZmllbGRzZXQ+IA0KICAgIDxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxwPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bGl0ZXJhbH17Y29udGVudCBibG9jayA9IG90aGVyX2xhbmd1YWdlcyBvbmVsaW5lID0gMSBhc3NpZ24gPSBvdGhlcl9sYW5ndWFnZXMgd3lzaXd5ZyA9IDB9ey9saXRlcmFsfTwvcHJlPjwvcD4NCiAgICA8cD5UaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5OjwvcD4NCiAgICA8ZmllbGRzZXQ+ZW5fVVM9PGVtPnBhZ2UxPC9lbT47ZnJfRlI9PGVtPnBhZ2UxPC9lbT47ZGVfREU9PGVtPnBhZ2UxPC9lbT48L2ZpZWxkc2V0Pg0KICAgIDxwPndoZXJlIDxzdHJvbmc+PGVtPnBhZ2UxPC9lbT48L3N0cm9uZz4sIDxzdHJvbmc+PGVtPnBhZ2UxPC9lbT48L3N0cm9uZz4gYW5kIDxzdHJvbmc+PGVtPnBhZ2UxPC9lbT48L3N0cm9uZz4gYXJlIHRoZSBwYWdlIGFsaWFzZXMuPC9wPg0KICAgIDxkaXYgY2xhc3M9Indhcm5pbmciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+PHA+dGhlIG9yZGVyIGRvZXMgbm90IG1hdHRlciwgYnV0IG5vIHNwYWNlcyBhcmUgYWxsb3dlZDwvcD48L2Rpdj4NCiAgICA8cD5UbyBtYWtlIHN1cmUgdGhlIG1vZHVsZXMgdXNlcyB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIHVudGljayB0aGUgPHN0cm9uZz48ZW0+IlVzZSBoaWVyYXJjaHkgZm9yIHJlZGlyZWN0aW9uIjwvZW0+PC9zdHJvbmc+IG9wdGlvbiBpbiB0aGUgPHN0cm9uZz48ZW0+U2V0dGluZ3M8L2VtPjwvc3Ryb25nPiB0YWIuPC9wPg0KICAgIDxoND5UaGUgaGllcmFyY2h5IHNvbHV0aW9uPC9oND4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Qcm9zOjwvZW0+PC9zdHJvbmc+IGl0J3MgYXV0b21hdGljIC0geW91IGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+PGVtPkNvbnM6PC9lbT48L3N0cm9uZz4gdGhlIHBhZ2Ugc3RydWN0dXJlIG11c3QgYmUgaWRlbnRpY2FsIGZvciBlYWNoIGxhbmd1YWdlLjwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvZmllbGRzZXQ+IA0KICAgIDxwPlRoaXMgc29sdXRpb24gdXNlcyB0aGUgcGFnZSBoaWVyYXJjaHkgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgZXF1aXZhbGVudC48L3A+DQogICAgPHA+SW4gb3VyIGV4YW1wbGUgYWJvdmUsICIyLjMuIFBhZ2UgMyIgd291bGQgYmUgdGhlIGZyZW5jaCBlcXVpdmFsZW50IG9mICIxLjMuIDNyZCBwYWdlIiwgYmVjYXVzZSBpdCBvY2N1cGllcyB0aGUgZXF1aXZhbGVudCBwb3NpdGlvbiBpbiB0aGUgZnJlbmNoIGJyYW5jaC48L3A+DQogICAgPHA+SW4gb3RoZXIgd29yZHMsIHNob3VsZCB0aGUgcGFnZSBiZSBvcmRlcmVkIGRpZmZlcmVudGx5LCBhbGwgd291bGQgYmUgbWVzc2VkIHVwOjwvcD4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPlBhZ2UgSGllcmFyY2h5IERvZXNuJ3QgTWF0Y2g8L2xlZ2VuZD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjEuIEVuZ2xpc2gNCiAgICAgICAgICA8dWw+DQogICAgICAgICAgICA8bGk+MS4xLiAxc3QgcGFnZTwvbGk+DQogICAgICAgICAgICA8bGk+MS4yLiAybmQgcGFnZTwvbGk+DQogICAgICAgICAgICA8bGk+MS4zLiAzcmQgcGFnZTwvbGk+DQogICAgICAgICAgPC91bD4NCiAgICAgICAgPC9saT4NCiAgICAgICAgPGxpPjIuIEZyYW4mY2NlZGlsO2Fpcw0KICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgIDxsaT4yLjEuIFBhZ2UgMTwvbGk+DQogICAgICAgICAgICA8bGk+Mi4yLiBQYWdlIDM8L2xpPg0KICAgICAgICAgICAgPGxpPjIuMy4gUGFnZSAyPC9saT4NCiAgICAgICAgICA8L3VsPg0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIDxwPkhlcmUsICJQYWdlIDIiIG9jY3VwaWVzIHRoZSB0aGlyZCBwb3NpdGlvbiwgc28gaXQgd291bGQgYmUgZGVlbWVkIGVxdWl2YWxlbnQgdG8gdGhlIDNyZCBwYWdlIGluIGVuZ2xpc2guPC9wPiAgICAgICAgDQogICAgPHA+VGhpcyBhbHNvIG1lYW5zIHRoYXQgaWYgYWxsIHBhZ2VzIGRvIG5vdCBleGlzdCBpbiBhbGwgbGFuZ3VhZ2VzLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsLiBGb3IgZXhhbXBsZTo8L3A+DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD5QYWdlIEhpZXJhcmNoeSBXaXRoIGEgTWlzc2luZyBQYWdlPC9sZWdlbmQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT4xLiBFbmdsaXNoDQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPg0KICAgICAgICAgICAgPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPg0KICAgICAgICAgICAgPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaT4yLiBGcmFuJmNjZWRpbDthaXMNCiAgICAgICAgICA8dWw+DQogICAgICAgICAgICA8bGk+Mi4xLiBQYWdlIDI8L2xpPg0KICAgICAgICAgICAgPGxpPjIuMi4gUGFnZSAzPC9saT4NCiAgICAgICAgICA8L3VsPg0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIDxwPkhlcmUsICIxc3QgcGFnZSIgd291bGQgYmUgdGFrZW4gdG8gYmUgZXF1aXZhbGVudCB0byAiUGFnZSAyIiBhbmQgIjNyZCBwYWdlIiB3b3VsZCBiZSBkZWVtZWQgdG8gaGF2ZSBubyB0cmFkdWN0aW9uLCBhbHRob3VnaCBpdCBkb2VzLjwvcD4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.new.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCg0KICA8aDM+V2hhdCdzIG5ldzwvaDM+DQoNCiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+DQogICAgPHA+VHJhbnNsYXRpb24gQ2VudHJlIGhhcyBpdHMgb3duIHBlcm1pc3Npb25zLCBzbyB0aGF0IHRyYW5zbGF0b3JzIGNhbiBiZSBpbiBhIHNlcGFyYXRlIGdyb3VwIHdpdGggdGhlaXIgb3duIHBlcm1pc3Npb25zLjwvcD4NCiAgPC9kaXY+DQoNCiAgPHA+VGhlc2UgYXJlIHNvbWUgb2YgdGhlIG5ldyBmZWF0dXJlcyBvZiB0aGUgbGF0ZXN0IHJlbGVhc2VzOjwvcD4NCg0KICA8dWw+DQogICAgPGxpPkludGVncmF0aW9uIG9mIENHbWwgbW9kdWxlIGZ1bmN0aW9uYWxpdGllczs8L2xpPg0KICAgIDxsaT5UaGUgbGFuZ3VhZ2UgbWVudSB0ZW1wbGF0ZSBzeXN0ZW0gaGFzIGJlZW4gbW92ZWQgdG8gRGVzaWduIE1hbmFnZXI7PC9saT4NCiAgICA8bGk+VGhlcmUgYXJlIG5vdyB0d28gbmV3IGVkaXRvcnM6DQogICAgICA8dWw+DQogICAgICAgIDxsaT5hIGZyb250ZW5kIGRldmVsb3BlcidzIGVkaXRvciB0byBjcmVhdGUgdGhlIGRlZmF1bHQgbGFuZ3VhZ2Uga2V5cyBhbmQgZW50cmllczs8L2xpPg0KICAgICAgICA8bGk+YSB0cmFuc2xhdG9yJ3MgZWRpdG9yIHRvIGFkZCB0aGUgdHJhbnNsYXRpb25zIGZvciBhbGwgb3RoZXIgbGFuZ3VhZ2VzOzwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvbGk+DQogICAgPGxpPlRyYW5zbGF0aW9uIENlbnRyZSBoYXMgaXRzIG93biBwZXJtaXNzaW9ucyB0byBhbGxvdyBsaW1pdGluZyB0cmFuc2xhdG9ycyBhY2Nlc3MgdG8gdGhlIHNpdGU7PC9saT4NCiAgICA8bGk+RXJpZHUgaXMgbm93IGRlcGVuZGVudCBvbiBDTVNNU0V4dCB3aGljaCBwcm92aWRlcyBzb21lIG9mIGl0cyBlZGl0b3JzJyBmdW5jdGlvbmFsaXR5OjwvbGk+DQogIDwvdWw+DQoNCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/help.tab.params.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHA+DQogIEFzIHNlZW4gaW4gdGhlIDxiPlVzYWdlPC9iPiB0YWIgdGhlIG1vc3QgYmFzaWMgdXNhZ2Ugb2YgdGhlIG1vZHVsZSBpcyBieSBjYWxsaW5nIHRoZSA8Yj57bGRlbGltfXskbW9kLT5HZXROYW1lKCl9e3JkZWxpbX08L2I+IHRhZyBpbiBhbnkgb2YgeW91ciBmcm9udGVuZCB0ZW1wbGF0ZXMuIEhvd2V2ZXIgeW91IGNhbiBleHRlbmQgYW5kIGNvbnRyb2wgdGhlIG1vZHVsZSdzIGJlaGF2aW91ciB3aXRoIHBhcmFtZXRlcnMgaW4gdGhlIHRhZy4NCjwvcD4NCg0KPGgzPlBhcmFtZXRlcnM8L2gzPg0KDQogIDxwPlRoaXMgaXMgYSBsaXN0IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgbW9kdWxlIHRhZzo8L3A+DQoNCiAgPHVsPg0KICAgIDxsaT4NCiAgICAgIDxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSdkZWZhdWx0JyAtIFBvc3NpYmxlIGFjdGlvbnM6ICdkZWZhdWx0JyAodG8gdHJhbnNsYXRlKSBvciAnbWVudScuDQogICAgPC9saT4NCiAgICA8bGk+DQogICAgICA8ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3c9JycgLSBGb3IgdGhlIG1lbnUgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggbGFuZ3VhZ2VzIHRvIHNob3cgaW4gdGhlIG1lbnUgKHVzZSBsYW5ndWFnZSBjb2RlIGFuZCBzZXBhcmF0ZSB3aXRoIGEgY29tbWEpLiBGb3IgdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIGhvbGRzIHRoZSBrZXkgdG8gdGhlIHN0cmluZyB0byBiZSB0cmFuc2xhdGVkLg0KICAgIDwvbGk+DQogICAgPGxpPg0KICAgICAgPGVtPihvcHRpb25hbCk8L2VtPiBldmFsPScnIC0gRm9yY2UgdGhlIHN0cmluZyB0byBiZSBwYXJzZWQgYnkgc21hcnR5LiBBbiBhbHRlcm5hdGl2ZSBtZXRob2QgdG8gdXNpbmcgZXZhbCBpbnNpZGUgdGhlIHRlbXBsYXRlczsNCiAgICA8L2xpPg0KICAgIDxsaT4NCiAgICAgIDxlbT4ob3B0aW9uYWwpPC9lbT4gdGVtcGxhdGU9JycgLSBUZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBtZW51Lg0KICAgIDwvbGk+DQogICAgPGxpPg0KICAgICAgPGVtPihvcHRpb25hbCk8L2VtPiBhc3NpZ249JycgLSBJbnN0ZWFkIG9mIGRpc3BsYXlpbmcgdGhlIHJlc3VsdCBpbW1lZGlhdGVseSwgeW91IGNhbiBhc3NpZ24gaXQgdG8gYSBzbWFydHkgdmFyaWFibGUgc3BlY2lmaWVkIHdpdGggdGhlICdhc3NpZ24nIHBhcmFtZXRlci4NCiAgICA8L2xpPg0KICA8L3VsPg0KDQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+DQogICAgICA8cD5Nb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBTbWFydHkgYWRkb25zIEVyaWR1IHJlZ2lzdGVycyBpcyBhdmFpbGFibGUgb24gdGhlIElOSSBGaWxlcyB0YWIuPC9wPg0KICAgIDwvZGl2Pg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQogIDxzY3JpcHQgc3JjPSJ7JHh0LT5HZXRNb2R1bGVVUkxQYXRoKCl9L2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdD4KICAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgdmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgneyRtb2QtPkdldE5hbWUoKX1fYWN0aXZlJyk7CiAgICAgICQoIiNkb25hdGluZyIpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KQogICAgICB7CiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICBfc2V0X2FjdGl2ZV90YWIoJ2NvbnRyaWJ1dGUnKTsKICAgICAgfSk7CgogICAgICBpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpCiAgICAgIHsKICAgICAgICBfc2V0X2FjdGl2ZV90YWIoJ2dlbmVyYWwnKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7CiAgICAgIH0KCiAgICAgICQoJyNwYWdlX3RhYnMgPiBkaXYnKQogICAgICAgIC5lYWNoKGZ1bmN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICAkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkKICAgICAgICAgIHsKICAgICAgICAgICAgQ29va2llcy5zZXQoJ3skbW9kLT5HZXROYW1lKCl9X2FjdGl2ZScsIHRoaXMuaWQpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9KTsKCgogICAgZnVuY3Rpb24gX3NldF9hY3RpdmVfdGFiKHRhYl9uYW1lKQogICAgewogICAgICAkKCcjcGFnZV90YWJzID4gZGl2JykKICAgICAgICAuZWFjaChmdW5jdGlvbigpCiAgICAgICAgewogICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7CiAgICAgICAgfSk7CgogICAgICAkKCcjcGFnZV9jb250ZW50ID4gZGl2JykKICAgICAgICAuZWFjaChmdW5jdGlvbigpCiAgICAgICAgewogICAgICAgICAgJCh0aGlzKS5oaWRlKCk7CiAgICAgICAgfSk7CgogICAgICAkKCcjJyArIHRhYl9uYW1lKS5hZGRDbGFzcygnYWN0aXZlJyk7CiAgICAgICQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7CiAgICAgIENvb2tpZXMuc2V0KCd7JG1vZC0+R2V0TmFtZSgpfV9hY3RpdmUnLCB0YWJfbmFtZSk7CiAgICB9CgogICAgZnVuY3Rpb24gY29weVRvQ2xpcGJvYXJkKGVsZW1lbnQpCiAgICB7CiAgICAgIHZhciAkdGVtcCA9ICQoIjxpbnB1dD4iKTsKICAgICAgJCgiYm9keSIpLmFwcGVuZCgkdGVtcCk7CiAgICAgICR0ZW1wLnZhbCgkKGVsZW1lbnQpLnRleHQoKSkuc2VsZWN0KCk7CiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7CiAgICAgICR0ZW1wLnJlbW92ZSgpOwogICAgfQogIDwvc2NyaXB0PgoKICA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CnsqIFRhYnMgSGVhZGVycyAqfQogIDxkaXYgaWQ9InBhZ2VfdGFicyI+CiAgICA8ZGl2IGlkPSJnZW5lcmFsIj4KICAgICAgV2hhdCBJcyBJdAogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJob3ciPgogICAgICBIb3cgVG8gVXNlIEl0CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9Im1ldGhvZHMiPgogICAgICBNZXRob2RzCiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InBhcmFtcyI+CiAgICAgIFBhcmFtZXRlcnMKICAgIDwvZGl2PgogICAgPGRpdiBpZD0iaW5pIj4KICAgIElOSSBmaWxlcwogIDwvZGl2PgogICAgPGRpdiBpZD0ibmV3Ij4KICAgIFdoYXQncyBOZXcKICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImNvbnRyaWJ1dGUiPgogICAgICBDb250cmlidXRlCiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImFib3V0Ij4KICAgICAgQWJvdXQKICAgIDwvZGl2PgogIDwvZGl2Pgp7KiBUYWJzIEhlYWRlcnMgKn0KCgoKeyogVGFicyBDb250ZW50cyAqfQo8ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPgogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+Cgp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0KeyogV2hhdCBJcyBJdCAqfQogIDxkaXYgaWQ9ImdlbmVyYWxfYyI+CiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6RXJpZHU7aGVscC50YWIuZ2VuZXJhbC50cGwnfQogIDwvZGl2PgogIAp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0KeyogSG93IFRvIFVzZSBJdCAqfQogIDxkaXYgaWQ9Imhvd19jIj4KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpFcmlkdTtoZWxwLnRhYi5ob3cudHBsJ30KICA8L2Rpdj4KICAKeyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CnsqIE1ldGhvZHMgKn0KICA8ZGl2IGlkPSJtZXRob2RzX2MiPgogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2hlbHAudGFiLm1ldGhvZHMudHBsJ30KICA8L2Rpdj4KCnsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7KiBQYXJhbWV0ZXJzICp9CiAgPGRpdiBpZD0icGFyYW1zX2MiPgogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2hlbHAudGFiLnBhcmFtcy50cGwnfQogIDwvZGl2PgoKeyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CnsqIElOSSAoaW50ZWdyYXRpb24gb2YgQ0dtbCBmZWF0dXJlcykgKn0KICA8ZGl2IGlkPSJpbmlfYyI+CiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6RXJpZHU7aGVscC50YWIuaW5pLnRwbCd9CiAgPC9kaXY+Cgp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0KeyogV2hhdCdzIG5ldyAqfQogIDxkaXYgaWQ9Im5ld19jIj4KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpFcmlkdTtoZWxwLnRhYi5uZXcudHBsJ30KICA8L2Rpdj4KCnsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7KiBEb25hdGlvbnMgKn0KICA8ZGl2IGlkPSJjb250cmlidXRlX2MiPgoJCXtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpFcmlkdTtoZWxwLnRhYi5jb250cmlidXRlLnRwbCd9Cgk8L2Rpdj4KCgp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0KeyogQ3JlZGl0cyAqfQogIDxkaXYgaWQ9ImFib3V0X2MiPgogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2hlbHAudGFiLmFib3V0LnRwbCd9CiAgPC9kaXY+Cnsvc3RyaXB9]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/redirect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyIgb25sb2FkPSJkb2N1bWVudC5sb2NhdGlvbi5hc3NpZ24oJ3skcmVkaXJlY3RfdXJsfScpIj48cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGltZyBhbHQ9IlBsZWFzZSB3YWl0Li4uIiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqWTBJaUJvWldsbmFIUTlJalkwSWlCbWFXeHNQU0ozYUdsMFpTSStDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJeklpQnlQU0l3SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUluSWlJSFpoYkhWbGN6MGlNRHN6T3pBN01DSWdaSFZ5UFNJeGN5SWdjbVZ3WldGMFEyOTFiblE5SW1sdVpHVm1hVzVwZEdVaUlHSmxaMmx1UFNJd0lpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RRMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR4TWpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0Rrd0lERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR5TlhNaUlHdGxlVk53YkdsdVpYTTlJakF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnN01DNHlJREF1TWlBd0xqUWdNQzQ0SWlCallXeGpUVzlrWlQwaWMzQnNhVzVsSWlBdlBnb2dJRHd2WTJseVkyeGxQZ29nSUR4amFYSmpiR1VnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTVRNMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR6TnpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RFNE1DQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1TlhNaUlHdGxlVk53YkdsdVpYTTlJakF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnN01DNHlJREF1TWlBd0xqUWdNQzQ0SWlCallXeGpUVzlrWlQwaWMzQnNhVzVsSWlBdlBnb2dJRHd2WTJseVkyeGxQZ29nSUR4amFYSmpiR1VnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTWpJMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzQyTWpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RJM01DQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1TnpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RNeE5TQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1T0RjMWN5SWdhMlY1VTNCc2FXNWxjejBpTUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnaUlHTmhiR05OYjJSbFBTSnpjR3hwYm1VaUlDOCtDaUFnUEM5amFYSmpiR1UrQ2lBZ1BHTnBjbU5zWlNCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNneE9EQWdNVFlnTVRZcElpQmplRDBpTVRZaUlHTjVQU0l6SWlCeVBTSXdJajRLSUNBZ0lEeGhibWx0WVhSbElHRjBkSEpwWW5WMFpVNWhiV1U5SW5JaUlIWmhiSFZsY3owaU1Ec3pPekE3TUNJZ1pIVnlQU0l4Y3lJZ2NtVndaV0YwUTI5MWJuUTlJbWx1WkdWbWFXNXBkR1VpSUdKbFoybHVQU0l3TGpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLUEM5emRtYytDZz09IiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87IiAvPjwvcD48cD57JGRvbWFpbnNfY29va2llc19zZXR9PC9wPjwvYm9keT48L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/templates/redirect_bu.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IG9ubG9hZD0iZG9jdW1lbnQubG9jYXRpb24uYXNzaWduKCd7JHJlZGlyZWN0X3VybH0nKSI+PHA+UGxlYXNlIFdhaXQuLi48L3A+PHA+eyRkb21haW5zX2Nvb2tpZXNfc2V0fTwvcD48L2JvZHk+PC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/templates/settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVE9ETyAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/tab.languages.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkVyaWR1O2FkbWlucGFuZWwudHBsJ30=]]></data>
	</file>
	<file>
	  <filename>/templates/tab.settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPWNoYW5nZXNldHRpbmdzfQ0KCXtmb3JlYWNoICRtb2RwcmVmcyBhcyAkcH0NCgkJeyRwcmVmID0gInByZWZfeyRwLjB9In0NCgkJeyRjdXJyZW50ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgkcC4wKX0NCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHVrLW1hcmdpbiI+DQoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4NCnsqCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXskcC4wfSIgdmFsdWU9ImZhbHNlIj4qfQ0KCQkJCQk8bGFiZWwgZm9yPSJ7JGFjdGlvbmlkfXskcC4wfSI+DQoJCQkJCQk8aW5wdXQNCgkJCQkJCQkJCQl0eXBlPSJjaGVja2JveCINCgkJCQkJCQkJCQlpZD0ieyRwLjB9Ig0KCQkJCQkJCQkJCW5hbWU9InskYWN0aW9uaWR9eyRwLjB9Ig0KCQkJCQkJCQkJCXZhbHVlPSJ0cnVlIg0KCQkJCQkJCQkJCXtpZiAkY3VycmVudH1jaGVja2Vkey9pZn0+DQoJCQkJCQl7JG1vZC0+TGFuZygkcHJlZil9DQoJCQkJCTwvbGFiZWw+DQoJCQk8L3A+DQoJCTwvZGl2Pg0KCXsvZm9yZWFjaH0NCgk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIvPg0KPC9mb3JtPg0KDQp7aWYgJGhhdmVfY2dtbH0NCgl7Zm9ybV9zdGFydCBhY3Rpb249YWRtaW5faW1wb3J0X2NnbWwgaWQ9J2NnbWxfaW1wb3J0X2Zvcm0nfQ0KCTxmaWVsZHNldD4NCiAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdpbXBvcnRfY2dtbCcpfTo8L2xlZ2VuZD4NCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogOTUlOyI+DQogICAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0id2lkdGg6IDk5JTsiPjxwPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5XYXJuaW5nOjwvc3Ryb25nPjwvcD4NCiAgICAgICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9faW1wb3J0X2Zyb21fY2dtbCcpfTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9ZG9faW1wb3J0IiB2YWx1ZT0iZG9faW1wb3J0Ii8+DQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnaW1wb3J0Jyl9Ii8+DQogIDwvZmllbGRzZXQ+DQoJe2Zvcm1fZW5kfQ0Key9pZn0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiQoZG9jdW1lbnQpDQoJCQkJLnJlYWR5KGZ1bmN0aW9uKCkNCgkJCQl7DQoNCgkJCQkJJCgnI2NnbWxfaW1wb3J0X2Zvcm0nKS5zdWJtaXQoIGZ1bmN0aW9uKGV2KXsNCgkJCQkJCWV2LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCQljbXNfY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1faW1wb3J0X2Zyb21fY2dtbCcpfGVzY2FwZTonamF2YXNjcmlwdCd9JykuZG9uZShmdW5jdGlvbigpew0KCQkJCQkJCWV2LmN1cnJlbnRUYXJnZXQuc3VibWl0KCk7DQoJCQkJCQl9KQ0KCQkJCQl9KTsNCg0KCQkJCX0pOw0KPC9zY3JpcHQ+]]></data>
	</file>
</module>
