<?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>NeoDataStorage</name>
	<version>0.2.3</version>
  <mincmsversion>1.6.7</mincmsversion>
	<help><![CDATA[PHN0cm9uZz5Ob3RpY2UhIFRoaXMgaXMgYSBtb2R1bGUtZGV2ZWxvcGVyLW9ubHkgbW9kdWxlLiBJZiB5b3UgYXJlIG5vdCBhIGRldmVsb3Blcgp5b3UnbGwgcHJvYmFibHkganVzdCB3YW50IHRvIHNraXAgdGhlIGdvcnkgZGV0YWlscyBvZiB0aGlzIHBhZ2UgYW5kIHJlbHkgb24gdGhhdAp0aGUgbW9kdWxlIGp1c3QgZG9lcyBpdCdzIHdvcmsuPC9zdHJvbmc+Cjxici8+PGJyLz4KPGgzPlB1cnBvc2Ugb2YgdGhlIG1vZHVsZTwvaDM+ClRoZSBwdXJwb3NlIG9mIHRoaXMgbW9kdWxlIGlzIHRvIHByb3ZpZGUgYSBuaWNlIGFuZCBjbGVhbiB3YXkgZm9yIG1vZHVsZXMKdG8gc3RvcmUgZGF0YSBpbiBhIHRhYmxlLWxpa2UgbWFubmVyIGJ1dCB3aXRob3V0IHRoZSBoYXp6bGUgb2YgY3JlYXRpbmcKc3BlY2lmaWMgdGFibGVzIGZvciBpdHNlbGYgYW5kIG1haW50YWluaW5nIHRoZXNlLgoKPGgzPkJ1dCBiZXdhcmUhPC9oMz4KSXQgc2hvdWxkIGJlIGVtcGhhc2l6ZWQKdGhhdCB0aGlzIG1vZHVsZSBpcyBub3QgaW50ZW5kZWQgZm9yIGV4dHJlbWVseSBkYXRhLWludGVuc2l2ZSBvcGVyYXRpb25zCmFzIGl0IHVzZXMgKGEgbG90KSBtb3JlIGRhdGFiYXNlLWNhbGxzIHRoYW4gY3VzdG9tLXdyaXR0ZW4gZGF0YSBhY2Nlc3MgZG9lcywKYnV0IGZvciBub24taW50ZW5zaXZlIHN0dWZmIGl0IHdpbGwgaG9wZWZ1bGx5IGN1dCBvZmYgc29tZSBvZiB0aGUgdGVkaW91cwoiaG91c2VrZWVwaW5nIiB3aGljaCBJIGdvdCByZWFsbHkgZmVkIHVwIHdpdGggaW4gYWxtb3N0IGV2ZXJ5IG1vZHVsZSBJJ3ZlIGRvbmUuCjxici8+ClNvLCB0aGF0J3MgaXQgZm9yIHRoZSBkaXNjbGFpbWVyLCBub3cgZm9yIHRoZSBBUEkgOi0pCjxici8+Cjxici8+CjxoMz5CYXNpYyB1c2Ugb2YgdGhlIG1vZHVsZTwvaDM+ClVzYWdlIG9mIHRoaXMgbW9kdWxlIGFsd2F5cyBzdGFydHMgb2ZmIHdpdGggZ2V0dGluZyBhbiBhY2Nlc3MgdG8gYW4gaW5zdGFuY2UKb2YgdGhlIG1vZHVsZS4gVGhlIG1vc3QgY29tbW9uIHdheSBvZiBkb2luZyB0aGlzIGlzIGNhbGxpbmcgc29tZXRoaW5nIGxpa2UKPHByZT4KCiRuZHM9JHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCJOZW9EYXRhU3RvcmFnZSIpOwoKPC9wcmU+CllvdSdsbCBwcm9iYWJseSB3YW50IHRvIG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IG9mIHRoaXMgbW9kdWxlLCBidXQgeW91CnNob3VsZCBrbm93IGhvdyB0byBkbyB0aGlzLi4uCjxici8+CkFmdGVyIGFzc2lnbmluZyB0aGUgbW9kdWxlIHRvIGEgdmFyaWFibGUsIHlvdSBjYW4gc3RhcnQgdXNpbmcgaXQgd2l0aCBBUEktZnVuY3Rpb25zCmxpa2U6CjxwcmU+CgokbXlyZWNvcmQ9JG5kcy0+R2V0RW50aXRpZXMoIm15bW9kdWxlbmFtZSIsICJteXRhYmxlaWQiKTsKCjwvcHJlPgpXaGVyZSAibXltb2R1bGVuYW1lIiBpcyB0aGUgdW5pcXVlIGlkZW50aWZ5ZXIgb2YgeW91ciBtb2R1bGUsIGNvdWxkIGJlCnJlcGxhY2VkIHdpdGggJyR0aGlzLT5HZXROYW1lKCknLCBhbmQgIm15dGFibGVpZCIgaXMgYW4gaWRlbnRpZnllciBvZiB0aGUKdGFibGUgb2YgZGF0YSB3aGljaCB5b3Ugd2FudCB0byBhY2Nlc3MgaW4gdGhlIGRhdGFzdG9yYWdlIGZvciB5b3VyIG1vZHVsZS4KVGhpcyBjYW4gYmUgbGVmdCBibGFuayBpZiBvbmx5IG9uZSB0YWJsZSBpcyBuZWVkZWQgZm9yIHRoZSBtb2R1bGUuCjxici8+CkZvciBhIGNvbXBsZXRlIChyZWFkOiBzb210aW1lcyBjb21wbGV0ZSkgbGlzdCBvZiBtZXRob2RzIHNlZSBsaXN0IGJlbG93LgoKPGgzPlRoZSBOZW9Nb2R1bGUtc2lzdGVyPC9oMz4KQW5vdGhlciwgYW5kIGV2ZW4gZWFzaWVyLCB3YXkgdG8gdXNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoaXMgbW9kdWxlCmlzIHRvIGxldCB5b3VyIG1vZHVsZSBkZXNjZW5kIGZyb20gYW5vdGhlciBwcm9qZWN0IG9mIG1pbmUsIHRoZSBOZW9Nb2R1bGUsCndoaWNoIHdyYXBzIGFsbCB0aGUgZnVuY3Rpb25zIG9mIE5lb0RhdGFTdG9yYWdlIGJ1dCByZW1vdmluZyB0aGUgbmVlZCBvZgpjb25zdGFudGx5IHN1cHBseWluZyB0aGUgJG1vZHVsZW5hbWUuIEl0IGFsc28gcHJvdmlkZXMgYSBzdGlsbC1ncm93aW5nIGxpc3Qgb2YKb3RoZXIgaGVscGVyLWZ1bmN0aW9ucyB3aGljaCBoYXMgdG8gZG8gd2l0aCBvdGhlciBzdHVmZiB0aGFuIERhdGFTdG9yYWdlLgo8YnIvPgpGb3IgZnVydGhlciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVzZSB0aGUgTmVvTW9kdWxlLCBwbGVhc2UgaW5zdGFsbCBpdCBhbmQKY2hlY2sgb3V0IGl0J3MgaGVscC1wYWdlLgoKPGgzPkhvdyB0byBnZXQgaGVscDwvaDM+Ckkgd2lsbCByZXBlYXQsIHRoaXMgbW9kdWxlIGlzIGZvciBkZXZlbG9wZXJzIG9ubHkuIElmIHlvdSBjYW5ub3QgcmVhZCBwaHAtc291cmNlIGNvZGUsCnlvdSBzaG91bGQgdXNlIGl0IGZvciBkZXZlbG9wbWVudCBhbnl3YXkuIElmIHlvdSBjYW4sIGFsd2F5cyBjaGVjayBvdXQgdGhlIGNvZGUKZm9yIGhpbnRzIG9uIGhvdyB0byBtYWtlIGl0IHdvcmsuIElmIHlvdSBzdGlsbCBoYXZlIHF1ZXN0aW9ucyBvciBzdWdnZXN0aW9ucyBmb3IKZml4ZXMvaW1wcm92ZW1lbnRzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIGNhdGNoIG1lIChTaWxtYXJpbGxpb24pIGluIHRoZSBmb3J1bSBvZyAjaXJjLgoKCjxoMz5MaXN0IG9mIG1ldGhvZHM8L2gzPgo8cHJlPgovKgogKgogKiBFbnRpdHkgZnVuY3Rpb25zCiAqCiAqLwpmdW5jdGlvbiBBZGRFbnRpdHkoJG1vZHVsZSwgJHRhYmxlLCAkcHJvcHM9YXJyYXkoKSkKZnVuY3Rpb24gRGVsZXRlRW50aXR5KCRpZCkKZnVuY3Rpb24gR2V0RW50aXR5V2l0aFR5cGUoJGlkLCAkb3ZlcnJpZGVwcm9wcz1hcnJheSgpKQpmdW5jdGlvbiBHZXRFbnRpdHkoJGlkLCAkb3ZlcnJpZGVwcm9wcz1hcnJheSgpLCAkd2l0aHR5cGU9ZmFsc2UpCmZ1bmN0aW9uIEdldEVudGl0aWVzKCRtb2R1bGUsICR0YWJsZT0iIiwgJGNyaXRlcmlhPWFycmF5KCkpCmZ1bmN0aW9uIEdldE9uZUVudGl0eSgkbW9kdWxlLCAkdGFibGUsICRjcml0ZXJpYT1hcnJheSgpLCAkZmFpbGlmbXVsdGlwbGU9ZmFsc2UpCmZ1bmN0aW9uIEdldEVudGl0aWVzRnVsbCgkbW9kdWxlLCAkdGFibGU9IiIsICRjcml0ZXJpYT1hcnJheSgpKQpmdW5jdGlvbiBFbnRpdGllc0NvdW50KCRtb2R1bGUsICR0YWJsZT0iIiwgJGNyaXRlcmlhPWFycmF5KCkpCmZ1bmN0aW9uIFNldEVudGl0eVByb3AoJGlkLCRwcm9wbmFtZSwkcHJvcHZhbHVlLCRwcm9wdHlwZT0idW5kZWZpbmVkIikKCmZ1bmN0aW9uIENsZWFyRW50aXR5KCRpZCkKZnVuY3Rpb24gQ2xlYXJNb2R1bGVFbnRpdGllcygkbW9kdWxlKQpmdW5jdGlvbiBDbGVhckVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUpCmZ1bmN0aW9uIENsZWFyRW50aXR5UHJvcHMoJGlkKQpmdW5jdGlvbiBTZXRFbnRpdHlQcm9wcygkaWQsICRwcm9wcywgJGNsZWFyPXRydWUpCmZ1bmN0aW9uIFNldEVudGl0eVByb3BzRnJvbUFycmF5KCRpZCwgJHByb3BzLCAkdmFsdWVzLCAkY2xlYXI9dHJ1ZSwgJGZpbGw9ZmFsc2UpCmZ1bmN0aW9uIFNldEVudGl0eVByb3BzT25Dcml0ZXJpYSgkbW9kdWxlLCR0YWJsZSwgJHByb3BzLCAkY3JpdGVyaWEsICRjcmVhdGU9dHJ1ZSwgJGNsZWFyPWZhbHNlKSAvL0RvZXMgbm90IHdvcmshCmZ1bmN0aW9uIFJlc2V0RW50aXR5UHJvcHMoJGlkLCAkbmV3cHJvcHM9YXJyYXkoKSkKZnVuY3Rpb24gUmVtb3ZlTW9kdWxlRW50aXRpZXMoJG1vZHVsZW5hbWUpCgovKgogKgogKiBTb3J0aW5nIGZ1bmN0aW9ucwogKgogKi8KZnVuY3Rpb24gQ29tcGFyZUVudGl0aWVzKCRlbnRpdHkxLCAkZW50aXR5MiwgJHNvcnRmaWVsZCkKZnVuY3Rpb24gQ29tcGFyZUVudGl0aWVzQ29tcGxleCgkZW50aXR5MSwgJGVudGl0eTIsICRzb3J0ZmllbGRzPWFycmF5KCkpIC8vRG9lcyBub3Qgd29yawpmdW5jdGlvbiBTb3J0RW50aXRpZXMoJGxpc3QsICRzb3J0ZmllbGRzPWFycmF5KCkgb3Igc3RyaW5nKSAvL09ubHkgd29ya3Mgb24gc3RyaW5ncwpmdW5jdGlvbiBNYWtlU2ltcGxlQXJyYXkoJG1vZHVsZSwgJHRhYmxlLCAkZmllbGQpCmZ1bmN0aW9uIE1ha2VBc3NvY0FycmF5KCRtb2R1bGUsICR0YWJsZSwgJGZpZWxkcykKCi8qCiAqCiAqIEZpZWxkc2V0IGZ1bmN0aW9ucwogKgogKi8KZnVuY3Rpb24gQWRkRmllbGRTZXQoJG1vZHVsZSwkbmFtZSwkZmllbGRzKQpmdW5jdGlvbiBHZXRGaWVsZFNldCgkbW9kdWxlLCAkbmFtZSkKZnVuY3Rpb24gRW50aXR5U2V0VW5zZXRQcm9wcygkbW9kdWxlLCRlbnRpdHksJGZpZWxkc2V0LCRmaWxsdmFsdWU9IiIpCgovKgogKgogKiBDb25uZWN0aW9uIGZ1bmN0aW9ucwogKgogKi8KZnVuY3Rpb24gU2V0RW50aXR5Q29ubmVjdGlvbigkaWQxLCAkaWQyLCAkdHlwZT0iIikKZnVuY3Rpb24gQ2xlYXJFbnRpdHlDb25uZWN0aW9ucygkaWQxLCAkaWQyPS0xLCAkdHlwZT0iIikKZnVuY3Rpb24gQ2xlYXJFbnRpdHlDb25uZWN0aW9uKCRpZDEsICRpZDIsICR0eXBlPSIiKQpmdW5jdGlvbiBDaGVja0VudGl0eUNvbm5lY3Rpb24oJGlkMSwkaWQyLCR0eXBlPSIiKQpmdW5jdGlvbiBHZXRFbnRpdHlDb25uZWN0aW9ucygkaWQxPS0xLCAkaWQyPS0xLCAkYm90aHdheXM9dHJ1ZSwgJHR5cGU9IiIpIC8vRG9lcyBub3Qgd29yawoKLyoKICoKICogRXJyb3IgaGFuZGxpbmcKICoKICovCmZ1bmN0aW9uIEVycm9yKCRlcnJvcnRleHQsJHJldHVybnZhbHVlPWZhbHNlLCRwYXJhbXM9YXJyYXkoKSkKZnVuY3Rpb24gR2V0RXJyb3JzKCRubDJicj10cnVlLCRjbGVhcj10cnVlKQpmdW5jdGlvbiBTaG93RXJyb3JzKCRjbGVhcj10cnVlKQpmdW5jdGlvbiBJbkVycm9yKCkgOiBib29sCjwvcHJlPjxoMz5QYXJhbWV0cmU8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0cmV0IGFuZ2l2ZXIgaHZpbGtldCBzcHJvZyBkZXIgc2thbCBicnVnZXMgdGlsIHZpc25pbmcgZm9yIGJlcyZvc2xhc2g7Z2VuZGUuIElra2UgYWxsZSBtb2R1bGVyIHVuZGVyc3Qmb3NsYXNoO3R0ZXIgZWxsZXIgYmVoJm9zbGFzaDt2ZXIgZGV0dGUuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+TGF2ZXQgYWY6IE1vcnRlbiBwb3Vsc2VuICZsdDttb3J0ZW5AcG91bHNlbi5vcmcmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMC4yLjM8YnIgLz48YnIgLz5IaXN0b3JpayBvdmVyICZhZWxpZztuZHJpbmdlcjo8YnIgLz48dWw+CjxsaT4wLjIuMyAtIEFkZGVkIGZpbGwgcGFyYW1ldGVyIHRvIFNldEVudGl0eVByb3BzRnJvbUFycmF5LCBtYWRlIGlzIHBvc3NpYmxlIGZvciBmaWVsZHMgcGFyYW0gdG8gc29ydGluZyBiZSBhbiBhc3NvYyBhcnJheSB0byBzdXBwb3J0IGRpcmVjdGlvbnMgaW4gc29ydGluZzwvbGk+CjxsaT4wLjIuMiAtIEFkZGVkIGEgY3VzdG9tIHJldHVybnZhbHVlIHRvIGNoZWNrZW50aXR5Y29ubmVjdGlvbnMsTWFrZVNpbXBsZUFycmF5PC9saT4KPGxpPjAuMi4xIC0gRml4ZWQgYSB0eXBlIGluIEdldEVudGl0eS1mdW5jdGlvbjwvbGk+CjxsaT4wLjIuMCAtIEZpeGVkIHJlc2V0IGZpbHRlciBidXR0b24sIG1hZGUgZmlsdGVyaW5nIG9uIG1vZHVsZSBiYXNlZCBvbiBhIGRyb3Bkb3duLCBidWdmaXhlczwvbGk+CjxsaT4wLjEuMCAtIEluaXRpYWwgcmVsZWFzZTwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDsKCmlmIChpc3NldCgkcGFyYW1zWyJhcHBseWZpbHRlciJdKSkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJpZGZpbHRlciIsJHBhcmFtc1siaWRmaWx0ZXIiXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoIm1vZHVsZWZpbHRlciIsJHBhcmFtc1sibW9kdWxlZmlsdGVyIl0pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJ0YWJsZWZpbHRlciIsJHBhcmFtc1sidGFibGVmaWx0ZXIiXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoInByb3BmaWx0ZXIiLCRwYXJhbXNbInByb3BmaWx0ZXIiXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoInZhbHVlZmlsdGVyIiwkcGFyYW1zWyJ2YWx1ZWZpbHRlciJdKTsKfQppZiAoaXNzZXQoJHBhcmFtc1sicmVzZXRmaWx0ZXIiXSkpIHsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiaWRmaWx0ZXIiLCIiKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgibW9kdWxlZmlsdGVyIiwiIik7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoInRhYmxlZmlsdGVyIiwiIik7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoInByb3BmaWx0ZXIiLCIiKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgidmFsdWVmaWx0ZXIiLCIiKTsKfQoKCiRkYj0kdGhpcy0+R2V0RGIoKTsKJHNxbD0iU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlIjsKJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCk7CiRyb3dzPWFycmF5KCk7CiR0b3RhbGNvdW50PSRyZXN1bHQtPlJlY29yZENvdW50KCk7CmlmICgkcmVzdWx0ICYmICgkcmVzdWx0LT5SZWNvcmRDb3VudCgpPjApKSB7CgogIHdoaWxlKCRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSkgewogICAgJHByb3BzPSR0aGlzLT5HZXRFbnRpdHkoJHJvd1siZW50aXR5aWQiXSk7CiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoImlkZmlsdGVyIikhPSIiKSB7CiAgICAgIGlmICghZXJlZ2koJHRoaXMtPkdldFByZWZlcmVuY2UoImlkZmlsdGVyIiksJHJvd1siZW50aXR5aWQiXSkpIGNvbnRpbnVlOwogICAgfQogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJtb2R1bGVmaWx0ZXIiKSE9IiIpIHsKICAgICAgaWYgKCFlcmVnaSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgibW9kdWxlZmlsdGVyIiksJHJvd1siZW50aXR5bW9kdWxlIl0pKSBjb250aW51ZTsKICAgIH0KICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFibGVmaWx0ZXIiKSE9IiIpIHsKICAgICAgaWYgKCFlcmVnaSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFibGVmaWx0ZXIiKSwkcm93WyJlbnRpdHl0YWJsZSJdKSkgY29udGludWU7CiAgICB9CgogICAgaWYgKGlzX2FycmF5KCRwcm9wcykpIHsKICAgICAgZm9yZWFjaCAoJHByb3BzIGFzICRwcm9wbmFtZT0+JHByb3B2YWx1ZSkgewogICAgICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgicHJvcGZpbHRlciIpIT0iIikgewogICAgICAgICAgaWYgKCFlcmVnaSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgicHJvcGZpbHRlciIpLCRwcm9wbmFtZSkpIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoInZhbHVlZmlsdGVyIikhPSIiKSB7CiAgICAgICAgICBpZiAoIWVyZWdpKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ2YWx1ZWZpbHRlciIpLCRwcm9wdmFsdWUpKSBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICRvbmVyb3ctPmlkPSRyb3dbImVudGl0eWlkIl07CiAgICAgICAgJG9uZXJvdy0+bW9kdWxlPSRyb3dbImVudGl0eW1vZHVsZSJdOwogICAgICAgICRvbmVyb3ctPnRhYmxlPSRyb3dbImVudGl0eXRhYmxlIl07CiAgICAgICAgJG9uZXJvdy0+cHJvcG5hbWU9JHByb3BuYW1lOwogICAgICAgICRvbmVyb3ctPnByb3B2YWx1ZT0kcHJvcHZhbHVlOwogICAgICAgIGFycmF5X3B1c2goJHJvd3MsICRvbmVyb3cpOwogICAgICB9CiAgICB9CiAgICBpZiAoY291bnQoJHJvd3MpPjUwMCkgewogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oInRvb21hbnlyb3dzIiwkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygidG9vbWFueXJvd3MiKSkpOwogICAgICBicmVhazsKICAgIH0KICB9Cn0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkcm93cyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21vZCcsICR0aGlzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkcm93cykpOwoKCi8qRmlsdGVyKi8KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJmb3Jtc3RhcnQiLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCJkZWZhdWx0YWRtaW4iKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigiZm9ybWVuZCIsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoJGlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigiYXBwbHlmaWx0ZXIiLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsImFwcGx5ZmlsdGVyIiwkdGhpcy0+TGFuZygiYXBwbHlmaWx0ZXIiKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oInJlc2V0ZmlsdGVyIiwkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCJyZXNldGZpbHRlciIsJHRoaXMtPkxhbmcoInJlc2V0ZmlsdGVyIikpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpZGZpbHRlcmlucHV0IiwkdGhpcy0+Q3JlYXRlSW5wdXR0ZXh0KCRpZCwiaWRmaWx0ZXIiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJpZGZpbHRlciIpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigibW9kdWxlZmlsdGVyaW5wdXQiLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwibW9kdWxlZmlsdGVyIiwkdGhpcy0+R2V0TW9kdWxlTGlzdCgpLCAiIiwgJHRoaXMtPkdldFByZWZlcmVuY2UoIm1vZHVsZWZpbHRlciIpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigidGFibGVmaWx0ZXJpbnB1dCIsJHRoaXMtPkNyZWF0ZUlucHV0dGV4dCgkaWQsInRhYmxlZmlsdGVyIiwkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFibGVmaWx0ZXIiKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oInByb3BmaWx0ZXJpbnB1dCIsJHRoaXMtPkNyZWF0ZUlucHV0dGV4dCgkaWQsInByb3BmaWx0ZXIiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJwcm9wZmlsdGVyIikpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ2YWx1ZWZpbHRlcmlucHV0IiwkdGhpcy0+Q3JlYXRlSW5wdXR0ZXh0KCRpZCwidmFsdWVmaWx0ZXIiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ2YWx1ZWZpbHRlciIpKSk7CgovLyR0aGlzLT5TbWFydHlGb3JtU3RhcnQoImRlZmF1bHRhZG1pbiIsYXJyYXkoIm5hbWUiPT4ic3VibWl0ZmlsdGVyIiwidmFsdWUiPT4kdGhpcy0+TGFuZygiYXBwbHlmaWx0ZXIiKSkpOwovLyR0aGlzLT5TbWFydHlGb3JtU3RhcnQoImRlZmF1bHRhZG1pbiIsYXJyYXkoIm5hbWUiPT4icmVzZXRmaWx0ZXIiLCJ2YWx1ZSI9PiR0aGlzLT5MYW5nKCJyZXNldGZpbHRlciIpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3Nob3dkYXRhLnRwbCcpOwoKCj8+]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbImZyaWVuZGx5bmFtZSJdPSJOZW8gRGF0YSBTdG9yYWdlIjsKJGxhbmdbImluc3RhbGxlZCJdPSJOZW8gRGF0YSBTdG9yYWdlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQiOwokbGFuZ1sidW5pbnN0YWxsZWQiXT0iTmVvIERhdGEgU3RvcmFnZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdW5pbnN0YWxsZWQiOwokbGFuZ1sibm9kYXRhIl09Ik5vIGRhdGEiOwoKJGxhbmdbImlkZmlsdGVyIl09IkVudGl0eSBJRCBpcyI7CiRsYW5nWyJtb2R1bGVmaWx0ZXIiXT0iTW9kdWxlIGlzIjsKJGxhbmdbInRhYmxlZmlsdGVyIl09IlRhYmxlbmFtZSBjb250YWlucyI7CiRsYW5nWyJwcm9wZmlsdGVyIl09IlByb3BlcnR5bmFtZSBjb250YWlucyI7CiRsYW5nWyJ2YWx1ZWZpbHRlciJdPSJWYWx1ZSBjb250YWlucyI7CiRsYW5nWyJhcHBseWZpbHRlciJdPSJBcHBseSBmaWx0ZXIiOwokbGFuZ1sicmVzZXRmaWx0ZXIiXT0iUmVzZXQgZmlsdGVyIjsKJGxhbmdbInNob3dmaWx0ZXJzIl09IlNob3cgZmlsdGVycyI7CiRsYW5nWyJmaWx0ZXJzIl09IkZpbHRlcnMiOwokbGFuZ1sicm93c2ZvdW5kIl09InJvd3MgZm91bmQiOwokbGFuZ1sidG9vbWFueXJvd3MiXT0iVG9vIG1hbnkgcm93cyBmb3VuZCwgbmFycm93IGl0IGRvd24gdXNpbmcgZmlsdGVycyI7CgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ05lbyBEYXRhIFN0b3JhZ2UnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTmVvIERhdGEgU3RvcmFnZSBibGV2IGtvcnJla3QgaW5zdGFsbGVyZXQnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdOZW8gRGF0YSBTdG9yYWdlIGJsZXYga29ycmVrdCBhZmluc3RhbGxlcmV0JzsKJGxhbmdbJ25vZGF0YSddID0gJ0luZ2VuIGRhdGEnOwokbGFuZ1snaWRmaWx0ZXInXSA9ICdFbnRpdHkgSUQgZXInOwokbGFuZ1snbW9kdWxlZmlsdGVyJ10gPSAnTW9kdWxldCBlcic7CiRsYW5nWyd0YWJsZWZpbHRlciddID0gJ1RhYmVsbmF2biBpbmRlaG9sZGVyJzsKJGxhbmdbJ3Byb3BmaWx0ZXInXSA9ICdFZ2Vuc2thYm5hdm5ldCBpbmRlaG9sZGVyJzsKJGxhbmdbJ3ZhbHVlZmlsdGVyJ10gPSAnViZhZWxpZztyZGllbiBpbmRlaG9sZGVyJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnUCZhcmluZztmJm9zbGFzaDtyIGZpbHRlcic7CiRsYW5nWydyZXNldGZpbHRlciddID0gJ051bHN0aWwgZmlsdGVyJzsKJGxhbmdbJ3Nob3dmaWx0ZXJzJ10gPSAnVmlzIGZpbHRyZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ3Jvd3Nmb3VuZCddID0gJ3ImYWVsaWc7a2tlciBmdW5kZXQnOwokbGFuZ1sndG9vbWFueXJvd3MnXSA9ICdGb3IgbWFuZ2UgciZhZWxpZztra2VyIGZ1bmRldCwgaW5kc2smYWVsaWc7cnAgZGV0IHZoYS4gZmlsdHJlJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNDQxNzAyMDg5Mjg3Njg0NDUwMC4xMjEzMjUyNjcyLjEyNDc0Mjk0MzEuMTI1Mjk1NjM4OC4yMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDQ5OTE1MjIuMTkuNS51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L3Byb2plY3RzL3NpbXBsZXBpZSc7CiRsYW5nWydxY2EnXSA9ICdQMC0xNzQxNjIwODU4LTEyNTIyNjYwNzk0NzUnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ05lbyBEYXRhIFN0b3JhZ2UgJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ0xlIG1vZHVsZSBOZW8gRGF0YSBTdG9yYWdlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgaW5zdGFsbCZlYWN1dGU7IGF2ZWMgc3VjYyZlZ3JhdmU7cy4nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdMZSBtb2R1bGUgTmVvIERhdGEgU3RvcmFnZSBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsgYXZlYyBzdWNjJmVncmF2ZTtzLic7CiRsYW5nWydub2RhdGEnXSA9ICdBdWN1bmUgZG9ubiZlYWN1dGU7ZSc7CiRsYW5nWydpZGZpbHRlciddID0gJ0wmIzAzOTtpZGVudGlmaWFudCBkJiMwMzk7ZW50aXQmZWFjdXRlOyBlc3QnOwokbGFuZ1snbW9kdWxlZmlsdGVyJ10gPSAnTGUgbW9kdWxlIGVzdCc7CiRsYW5nWyd0YWJsZWZpbHRlciddID0gJ1RhYmxlbmFtZSBjb250aWVudCc7CiRsYW5nWydwcm9wZmlsdGVyJ10gPSAnUHJvcGVydHluYW1lIGNvbnRpZW50JzsKJGxhbmdbJ3ZhbHVlZmlsdGVyJ10gPSAnVmFsdWUgY29udGllbnQnOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdBcHBsaXF1ZXIgbGUgZmlsdHJlJzsKJGxhbmdbJ3Jlc2V0ZmlsdGVyJ10gPSAnUiZlYWN1dGU7aW5pdGlhbGlzZXIgbGUgZmlsdHJlJzsKJGxhbmdbJ3Nob3dmaWx0ZXJzJ10gPSAnQWZmaWNoZXIgbGVzIGZpbHRyZXMnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyZXMnOwokbGFuZ1sncm93c2ZvdW5kJ10gPSAnbGlnbmVzIHRyb3V2JmVhY3V0ZTtlcyc7CiRsYW5nWyd0b29tYW55cm93cyddID0gJ1Ryb3AgZGUgbGlnbmVzIG9udCAmZWFjdXRlO3QmZWFjdXRlOyB0cm91diZlYWN1dGU7ZXMuIExpbWl0ZXotbGVzIGVuIHV0aWxpc2FudCBsZXMgZmlsdHJlcy4nOwokbGFuZ1sncWNhJ10gPSAnUDAtOTAyMjAwNTkyLTEyNjQ0MjQ2MDg1ODEnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ05FTyBEYXRhIFN0b3JhZ2UgJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ05FTyBEYXRhIFN0b3JhZ2UgaGFyIGJsaXR0IGluc3RhbGxlcnQnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdORU8gRGF0YSBTdG9yYWdlIGhhciBibGl0dCBhdmluc3RhbGxlcnQnOwokbGFuZ1snbm9kYXRhJ10gPSAnSW5nZW4gZGF0YSc7CiRsYW5nWydpZGZpbHRlciddID0gJ0VudGl0ZXRzIElEJiMwMzk7ZW4gZXInOwokbGFuZ1snbW9kdWxlZmlsdGVyJ10gPSAnTW9kdWxlbiBlcic7CiRsYW5nWyd0YWJsZWZpbHRlciddID0gJ1RhYmJlbGxuYXZuZXQgaW5uZWhvbGRlcic7CiRsYW5nWydwcm9wZmlsdGVyJ10gPSAnRWdlbnNrYXBzbmF2bmV0IGlubmVob2xkZXInOwokbGFuZ1sndmFsdWVmaWx0ZXInXSA9ICdWZXJkaSBpbm5laG9sZGVyJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnU2wmYXJpbmc7IHAmYXJpbmc7IGZpbHRlcic7CiRsYW5nWydyZXNldGZpbHRlciddID0gJ1RpbGJha2VzdGlsbCBmaWx0ZXInOwokbGFuZ1snc2hvd2ZpbHRlcnMnXSA9ICdWaXMgZmlsdHJlJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmUnOwokbGFuZ1sncm93c2ZvdW5kJ10gPSAncmFkZXIgZnVubmV0JzsKJGxhbmdbJ3Rvb21hbnlyb3dzJ10gPSAnRm9yIG1hbmdlIHJhZGVyIGZ1bm5ldCwgYmVncmVucyBkZXR0ZSB2ZWQgJmFyaW5nOyBiZW55dHRlIGZpbHRyZSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDUxOTAxOTYuMTQ0NC4zNi51dG1jc3I9dGhlbWVzLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2Rvd25sb2FkX3RoZW1lcy5odG1sJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTc5MDUyNjIzMDg0MTEwMTAwLjEyMTA0MjM1NzcuMTI0NzM4Mjg2MC4xMjQ3Mzk0MjE5LjE1NjMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ05FTyBEYXRhIFN0b3JhZ2UgJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ05FTyBEYXRhIFN0b3JhZ2UgbW9kdWxlIGlzIGdlJml1bWw7bnN0YWxsZWVyZCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ05FTyBEYXRhIFN0b3JhZ2UgbW9kdWxlIGlzIHZlcndpamRlcmQnOwokbGFuZ1snbm9kYXRhJ10gPSAnR2VlbiBkYXRhJzsKJGxhbmdbJ2lkZmlsdGVyJ10gPSAnRW50aXR5IElkIGlzJzsKJGxhbmdbJ21vZHVsZWZpbHRlciddID0gJ01vZHVsZSBpcyAnOwokbGFuZ1sndGFibGVmaWx0ZXInXSA9ICdUYWJlbG5hYW0gYmV2YXQnOwokbGFuZ1sncHJvcGZpbHRlciddID0gJ0VpZ2Vuc2NoYXBuYWFtIGJldmF0JzsKJGxhbmdbJ3ZhbHVlZmlsdGVyJ10gPSAnV2FhcmRlIGJldmF0JzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnRmlsdGVyIHRvZXBhc3Nlbic7CiRsYW5nWydyZXNldGZpbHRlciddID0gJ0ZpbHRlciBoZXJzdGVsbGVuJzsKJGxhbmdbJ3Nob3dmaWx0ZXJzJ10gPSAnVG9vbiBmaWx0ZXJzJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0ZXJzICc7CiRsYW5nWydyb3dzZm91bmQnXSA9ICdyZWdlbHMgZ2V2b25kZW4nOwokbGFuZ1sndG9vbWFueXJvd3MnXSA9ICdUZSB2ZWVsIHJlZ2VscyBnZXZvbmRlbiwgcGFzIGVlbiBmaWx0ZXIgdG9lJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzA2NzkyMTcyMzc0MDYxMjAwLjEyNDU3MDMzMjkuMTI0NzQzMTUzNC4xMjQ3NDY1Nzc3LjI1JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI0NTcwMzMyOS4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ05lbyBTdG9jYXJlIERhdGUnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTmVvIFN0b2NhcmUgRGF0ZSBhIGZvc3QgaW5zdGFsYXQgY3Ugc3VjY2VzJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTmVvIFN0b2NhcmUgRGF0ZSBhIGZvc3QgZGV6aW5zdGFsYXQnOwokbGFuZ1snbm9kYXRhJ10gPSAnRmFyYSBkYXRlJzsKJGxhbmdbJ2lkZmlsdGVyJ10gPSAnSUQtdWwgZW50aXRhdGlpIGVzdGUnOwokbGFuZ1snbW9kdWxlZmlsdGVyJ10gPSAnTW9kdWx1bCBlc3RlJzsKJGxhbmdbJ3RhYmxlZmlsdGVyJ10gPSAnTnVtZSB0YWJlbCBjb250aW5lJzsKJGxhbmdbJ3Byb3BmaWx0ZXInXSA9ICdOdW1lIHByb3ByaWV0YXRlIGNvbnRpbmUnOwokbGFuZ1sndmFsdWVmaWx0ZXInXSA9ICdWYWxvYXJlYSBjb250aW5lJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnQXBsaWNhcmUgZmlsdHJ1JzsKJGxhbmdbJ3Jlc2V0ZmlsdGVyJ10gPSAnUmVzZXRhcmUgZmlsdHJ1JzsKJGxhbmdbJ3Nob3dmaWx0ZXJzJ10gPSAnQWZpc2FyZSBmaWx0cmUnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyZSc7CiRsYW5nWydyb3dzZm91bmQnXSA9ICdyYW5kdXJpIGdhc2l0ZSc7CiRsYW5nWyd0b29tYW55cm93cyddID0gJ1ByZWEgbXVsdGUgcmFuZHVyaSBnYXNpdGUsIG1pY3NvcmF0aSBudW1hcnVsIGZvbG9zaW5kIGZpbHRyZWxlJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUyNjAzNzM1MC4xMjUxOTU5MzQzLjEyNTE5ODExOTIuMTI1MTk4NTY4OC41JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjUxOTU5MzQzLjEuMS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtc21hZGVzaW1wbGUnOwokbGFuZ1sncWNhJ10gPSAnUDAtOTAxNjUzNDczLTEyNTE5NTkzNDI3MjknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKICAkZGI9JHRoaXMtPkdldERiKCk7CiAgJGZsZHMgPSAiCgkJCWVudGl0eWlkIEkgS0VZLAoJCQllbnRpdHltb2R1bGUgQyg4MCksCiAgICAgIGVudGl0eXRhYmxlIEMoNDApLAogICAgICBlbnRpdHlleHRyYWtleSBDKDgwKQoJIjsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7Cgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2UiLCRmbGRzLCAkdGFib3B0YXJyYXkpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZV9zZXEiKTsKCiAgJGZsZHMgPSAiCgkJCWVudGl0eWlkIEksCgkJCXByb3BuYW1lIEMoODApLAogICAgICBwcm9wdHlwZSBDKDQwKSwKCQkJcHJvcHZhbHVlIFgKCSI7CgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3Byb3BzIiwkZmxkcywgJHRhYm9wdGFycmF5KTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgJGZsZHMgPSAiCgkJCWVudGl0eWlkMSBJLAoJCQllbnRpdHlpZDIgSSwKICAgICAgdHlwZSBDKDQwKQoJIjsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7Cgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2VfY29ubmVjdGlvbnMiLCRmbGRzLCAkdGFib3B0YXJyYXkpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignYWNjZXNzbmVvZGF0YXN0b3JhZ2UnLCdBY2Nlc3MgdG8gdGhlIE5lb0RhdGFTdG9yYWdlLXBhZ2UnKTsKICAKICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2UiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3NlcSIgKTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3Byb3BzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZV9jb25uZWN0aW9ucyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignYWNjZXNzbmVvZGF0YXN0b3JhZ2UnKTsKJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCj8+]]></data>
	</file>
	<file>
	  <filename>/NeoDataStorage.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICMgTmVvRGF0YVN0b3JhZ2UuIEFuIGdlbmVyYWwgcHVycG9zZSBkYXRhc3RvcmFnZSBtb2R1bGVjbGFzcyBmb3IgQ01TIE1hZGUgU2ltcGxlCiAjIChjKTIwMDkgYnkgTW9ydGVuIFBvdWxzZW4gKG1vcnRlbkBwb3Vsc2VuLm9yZykKICMKICNDTVMgLSBDTVMgTWFkZSBTaW1wbGUKICMoYykyMDA0LTA5IGJ5IFRlZCBLdWxwICh3aXNoeUB1c2Vycy5zZi5uZXQpCiAjVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9jbXNtYWRlc2ltcGxlLnNmLm5ldAogIwogI1RoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiAjCiAjVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogI3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAjKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICMKICNUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICNidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICNHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogI1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAjYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICNGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAjCiAjJElkJAogIwoqLwppZiAoIWZ1bmN0aW9uX2V4aXN0cygiaXNfYXNzb2MiKSkgewogIGZ1bmN0aW9uIGlzX2Fzc29jKCRhcnJheSkgewogICAgcmV0dXJuIChpc19hcnJheSgkYXJyYXkpICYmIDAgIT09IGNvdW50KGFycmF5X2RpZmZfa2V5KCRhcnJheSwgYXJyYXlfa2V5cyhhcnJheV9rZXlzKCRhcnJheSkpKSkpOwogIH0KfQoKY2xhc3MgTmVvRGF0YVN0b3JhZ2UgZXh0ZW5kcyBDTVNNb2R1bGUgewogIHZhciAkX3NvcnRmaWVsZHM7CiAgdmFyICRfZmllbGRzZXRzPWFycmF5KCk7CiAgdmFyICRfZXJyb3JzPSIiOwoKICBmdW5jdGlvbiBHZXROYW1lKCkgewogICAgcmV0dXJuICdOZW9EYXRhU3RvcmFnZSc7CiAgfQoKICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoImZyaWVuZGx5bmFtZSIpOwogIH0KCiAgZnVuY3Rpb24gSGFzQWRtaW4oKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7CiAgICByZXR1cm4gJzAuMi4zJzsKICB9CgogIGZ1bmN0aW9uIEhhc0NhcGFiaWxpdHkoJGNhcGFiaWxpdHksICRwYXJhbXM9YXJyYXkoKSkgewogICAgaWYgKCRjYXBhYmlsaXR5PT0iZGF0YXN0b3JhZ2UiKSByZXR1cm4gdHJ1ZTsKICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIEdldEhlbHAoKSB7CiAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnaGVscC50cGwnKTsKICB9CgogIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsKICAgIHJldHVybiAnTW9ydGVuIHBvdWxzZW4nOwogIH0KCgogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgewogICAgcmV0dXJuICdtb3J0ZW5AcG91bHNlbi5vcmcnOwogIH0KCgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsKICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjaGFuZ2Vsb2cudHBsJyk7CiAgfQoKICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignYWNjZXNzbmVvZGF0YXN0b3JhZ2UnKTsKICB9CgogIC8qCiAgICoKICAgKiBBUEktZnVuY3Rpb25zCiAgICoKICAqLwoKICBmdW5jdGlvbiBBZGRFbnRpdHkoJG1vZHVsZSwgJHRhYmxlLCAkcHJvcHM9YXJyYXkoKSkgewogICAgJGRiPSR0aGlzLT5HZXREYigpOwogICAgJG5ld2lkPSRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2Vfc2VxIik7CgogICAgJHNxbD0iSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZSAoZW50aXR5aWQsZW50aXR5bW9kdWxlLGVudGl0eXRhYmxlKSBWQUxVRVMgKD8sPyw/KSI7CiAgICAkdmFsdWVzPWFycmF5KCRuZXdpZCwkbW9kdWxlLCR0YWJsZSk7CiAgICAkcmVzdWx0PSRkYi0+RXhlY3V0ZSgkc3FsLCR2YWx1ZXMpOwogICAgaWYgKCEkcmVzdWx0KSByZXR1cm4gJHRoaXMtPkVycm9yKCJmdW5jdGlvbiBBZGRFbnRpdHk6IGVycm9yIGFkZGluZyBlbnRpdHkiLGZhbHNlLGFycmF5KCRwcm9wcykpOwoKICAgIGlmICghZW1wdHkoJHByb3BzKSkgewogICAgICAvL2VjaG8gImhlcmUiOwogICAgICAkdGhpcy0+U2V0RW50aXR5UHJvcHMoJG5ld2lkLCAkcHJvcHMsIGZhbHNlKTsKICAgIH0KCiAgICByZXR1cm4gJG5ld2lkOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlRW50aXR5KCRpZCkgewogICAgJHRoaXMtPkNsZWFyRW50aXR5UHJvcHMoJGlkKTsKICAgICR0aGlzLT5DbGVhckVudGl0eUNvbm5lY3Rpb25zKCRpZCk7CiAgICAkZGI9JHRoaXMtPkdldERiKCk7CgogICAgJHNxbD0iREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZSBXSEVSRSBlbnRpdHlpZD0/IjsKICAgICR2YWx1ZXM9YXJyYXkoJGlkKTsKICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7CiAgICBpZiAoISRyZXN1bHQpICR0aGlzLT5FcnJvcigiZnVuY3Rpb24gRGVsZXRlRW50aXR5OiBlcnJvciBkZWxldGluZyBlbnRpdHkiLGZhbHNlLGFycmF5KCJpZCI9PiRpZCkpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBHZXRFbnRpdHlXaXRoVHlwZSgkaWQsICRvdmVycmlkZXByb3BzPWFycmF5KCkpIHsKICAgIHJldHVybiAkdGhpcy0+R2V0RW50aXR5KCRpZCwgJG92ZXJyaWRlcHJvcHMsIHRydWUpOwogIH0KCiAgZnVuY3Rpb24gR2V0RW50aXR5KCRpZCwgJG92ZXJyaWRlcHJvcHM9YXJyYXkoKSwgJGZpbGxmaWVsZHM9YXJyYXkoKSwgJHdpdGh0eXBlPWZhbHNlKSB7CiAgICAkZGI9JHRoaXMtPkdldERiKCk7CgogICAgJHNxbD0iU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3Byb3BzIFdIRVJFIGVudGl0eWlkPT8iOwogICAgJHZhbHVlcz1hcnJheSgkaWQpOwogICAgJGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkc3FsLCR2YWx1ZXMpOwogICAgaWYgKCEkZGJyZXN1bHQgfHwgKCRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKT09MCkpIHsKICAgICAgaWYgKCEkZGJyZXN1bHQpICR0aGlzLT5FcnJvcigiZnVuY3Rpb24gR2V0RW50aXR5OiBlcnJvciBnZXR0aW5nIGVudGl0eSIsZmFsc2UsYXJyYXkoImlkIj0+JGlkKSk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgICRyZXN1bHQ9YXJyYXkoKTsKICAgIHdoaWxlKCRyb3c9JGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgIGlmICgkd2l0aHR5cGUpIHsKICAgICAgICAkcmVzdWx0WyRyb3dbInByb3BuYW1lIl1dPWFycmF5KCJ2YWx1ZSI9PiRyb3dbInByb3B2YWx1ZSJdLCJ0eXBlIj0+JHJvd1sicHJvcHR5cGUiXSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgJHJlc3VsdFskcm93WyJwcm9wbmFtZSJdXT0kcm93WyJwcm9wdmFsdWUiXTsKICAgICAgfQogICAgICBpZiAoaXNzZXQoJG92ZXJyaWRlcHJvcHNbJHJvd1sicHJvcG5hbWUiXV0pKSB7CgogICAgICAgIGlmICgkd2l0aHR5cGUpIHsKICAgICAgICAgIC8vTm93IHRoaXMgaXMganVzdCBiZWF0aWZ1bAogICAgICAgICAgJHJlc3VsdFskcm93WyJwcm9wbmFtZSJdXT0kb3ZlcnJpZGVwcm9wc1skcm93WyJwcm9wbmFtZSJdXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgJHJlc3VsdFskcm93WyJwcm9wbmFtZSJdXT1hcnJheSgidmFsdWUiPT4kb3ZlcnJpZGVwcm9wc1skcm93WyJwcm9wbmFtZSJdXSwidHlwZSI9PiJ1bmtub3duIik7CiAgICAgICAgfQoKICAgICAgfQogICAgfQogICAgJHJlc3VsdFsiaWQiXT0kaWQ7CiAgICAkcmVzdWx0WyJlbnRpdHlpZCJdPSRpZDsKICAgIHJldHVybiAkcmVzdWx0OwogIH0KCiAgZnVuY3Rpb24gR2V0RW50aXRpZXMoJG1vZHVsZSwgJHRhYmxlPSIiLCAkY3JpdGVyaWE9YXJyYXkoKSkgewogICAgJGRiPSR0aGlzLT5HZXREYigpOwogICAgLy9lY2hvICRtb2R1bGU7IGVjaG8gJHRhYmxlO2RpZSgpOwogICAgJHNxbD0iU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlIFdIRVJFIGVudGl0eW1vZHVsZT0/IjsKICAgICR2YWx1ZXM9YXJyYXkoJG1vZHVsZSk7CiAgICBpZiAoJHRhYmxlIT0iIikgewogICAgICAkc3FsLj0iIEFORCBlbnRpdHl0YWJsZT0/IjsKICAgICAgJHZhbHVlcz1hcnJheSgkbW9kdWxlLCR0YWJsZSk7CiAgICB9CiAgICAkZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7CiAgICBpZiAoISRkYnJlc3VsdCB8fCAoJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpPT0wKSkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICAkcmVzdWx0PWFycmF5KCk7CiAgICB3aGlsZSgkcm93PSRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewogICAgICAvL2lmICgkdGFibGU9PSJmYWciKSB7cHJpbnRfcigkY3JpdGVyaWEpO2RpZSgpO30KICAgICAgJGZhaWxlZD1mYWxzZTsKICAgICAgaWYgKCFlbXB0eSgkY3JpdGVyaWEpKSB7CiAgICAgICAgJGVudGl0eT0kdGhpcy0+R2V0RW50aXR5KCRyb3dbImVudGl0eWlkIl0pOwogICAgICAgIC8vcHJpbnRfcigkZW50aXR5KTsKICAgICAgICBmb3JlYWNoKCRjcml0ZXJpYSBhcyAkY3Byb3A9PiRjdmFsdWUpIHsKICAgICAgICAgIGlmICghaXNzZXQoJGVudGl0eVskY3Byb3BdKSB8fCAoaXNzZXQoJGVudGl0eVskY3Byb3BdKSAmJiAkZW50aXR5WyRjcHJvcF0hPSRjdmFsdWUpKSB7CiAgICAgICAgICAgICRmYWlsZWQ9dHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgkZmFpbGVkKSBjb250aW51ZTsgLy9Dcml0ZXJpYSBmYWlsZWQKICAgICAgfQogICAgICAkcm93WyJpZCJdPSRyb3dbImVudGl0eWlkIl07CiAgICAgICRyZXN1bHRbXT0kcm93OwogICAgfQogICAgLy9pZiAoJHRhYmxlPT0iZmFnIikge3ByaW50X3IoJHJlc3VsdCk7ZGllKCk7fQogICAgaWYgKGNvdW50KCRyZXN1bHQpPT0wKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgogIGZ1bmN0aW9uIEdldE9uZUVudGl0eSgkbW9kdWxlLCAkdGFibGUsICRjcml0ZXJpYT1hcnJheSgpLCAkZmFpbGlmbXVsdGlwbGU9ZmFsc2UpIHsKICAgIC8vZWNobyAkbW9kdWxlO2VjaG8gJHRhYmxlOwogICAgLy9wcmludF9yKCRjcml0ZXJpYSk7ZGllKCk7Ly8KICAgICRlbnRpdGllcz0kdGhpcy0+R2V0RW50aXRpZXNGdWxsKCRtb2R1bGUsICR0YWJsZSwgJGNyaXRlcmlhKTsKLy9pZiAoJHRhYmxlPT0iZmFnIikge3ByaW50X3IoJGVudGl0aWVzKTtkaWUoKTt9CiAgICBpZiAoISRlbnRpdGllcykgcmV0dXJuIGZhbHNlOwoKICAgIGlmIChjb3VudCgkZW50aXRpZXMpPjEgJiYgJGZhaWxpZm11bHRpcGxlKSByZXR1cm4gZmFsc2U7CgogICAgZm9yZWFjaCAoJGVudGl0aWVzIGFzICRlbnRpdHkpIHsKICAgICAgcmV0dXJuICRlbnRpdHk7IC8vSG1tLCB0aGlzIGlzIHVnbHkgcmlnaHQ/IGJ1dCB3b3JrcyA6KQogICAgfQoKICB9CgogIGZ1bmN0aW9uIEdldEVudGl0aWVzRnVsbCgkbW9kdWxlLCAkdGFibGU9IiIsICRjcml0ZXJpYT1hcnJheSgpKSB7CiAgICAkc2ltcGxlZW50aXRpZXM9JHRoaXMtPkdldEVudGl0aWVzKCRtb2R1bGUsICR0YWJsZSwgJGNyaXRlcmlhKTsKICAgIC8vaWYgKCR0YWJsZT09ImZhZyIpIHtwcmludF9yKCRzaW1wbGVlbnRpdGllcyk7ZGllKCk7fQogICAgLy9wcmludF9yKCRzaW1wbGVlbnRpdGllcyk7ZGllKCk7CiAgICBpZiAoISRzaW1wbGVlbnRpdGllcyB8fCBlbXB0eSgkc2ltcGxlZW50aXRpZXMpKSByZXR1cm4gZmFsc2U7CgogICAgJGZ1bGxlbnRpdGllcz1hcnJheSgpOwogICAgZm9yZWFjaCAoJHNpbXBsZWVudGl0aWVzIGFzICRzaW1wbGVlbnRpdHkpIHsKICAgICAgJGVudGl0eT0kdGhpcy0+R2V0RW50aXR5KCRzaW1wbGVlbnRpdHlbImVudGl0eWlkIl0pOwogICAgICBpZiAoJGVudGl0eSE9PWZhbHNlKSB7CiAgICAgICAgLy9wcmludF9yKCRlbnRpdHkpO2RpZSgpOwogICAgICAgICRlbnRpdHlbImlkIl09JGVudGl0eVsiZW50aXR5aWQiXTsKICAgICAgICAkZnVsbGVudGl0aWVzW109JGVudGl0eTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICRmdWxsZW50aXRpZXM7CiAgfQoKICBmdW5jdGlvbiBFbnRpdGllc0NvdW50KCRtb2R1bGUsICR0YWJsZT0iIiwgJGNyaXRlcmlhPWFycmF5KCkpIHsKICAgICRlbnRpdGllcz0kdGhpcy0+R2V0RW50aXRpZXMoJG1vZHVsZSwgJHRhYmxlLCAkY3JpdGVyaWEpOwogICAgcmV0dXJuIGNvdW50KCRlbnRpdGllcyk7CiAgfQoKICBmdW5jdGlvbiBTZXRFbnRpdHlQcm9wKCRpZCwkcHJvcG5hbWUsJHByb3B2YWx1ZSwkcHJvcHR5cGU9InVuZGVmaW5lZCIpIHsKICAgIC8vICBlY2hvICRwcm9wbmFtZTsKICAgIC8vJHRoaXMtPkNsZWFyRW50aXR5UHJvcCgkaWQsJHByb3BuYW1lKTsKICAgICRkYj0kdGhpcy0+R2V0RGIoKTsKICAgICRzcWw9IlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3Byb3BzIFNFVCBwcm9wdmFsdWU9Pyxwcm9wdHlwZT0/IFdIRVJFIGVudGl0eWlkPT8gQU5EIHByb3BuYW1lPT8iOwogICAgJHZhbHVlcz1hcnJheSgkcHJvcHZhbHVlLCRwcm9wdHlwZSwkaWQsJHByb3BuYW1lKTsKICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7CiAgICBpZiAoISRyZXN1bHQgfHwgJGRiLT5BZmZlY3RlZF9Sb3dzKCk8MSkgewogICAgICAkc3FsPSJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3Byb3BzIChlbnRpdHlpZCxwcm9wbmFtZSxwcm9wdmFsdWUscHJvcHR5cGUpIFZBTFVFUyAoPyw/LD8sPykiOwogICAgICAkdmFsdWVzPWFycmF5KCRpZCwkcHJvcG5hbWUsJHByb3B2YWx1ZSwkcHJvcHR5cGUpOwogICAgfQogICAgJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCwkdmFsdWVzKTsKICAgIGlmICghJHJlc3VsdCkgcmV0dXJuICR0aGlzLT5FcnJvcigiZnVuY3Rpb24gU2V0RW50aXR5UHJvcDogZXJyb3Igc2V0dGluZyBlbnRpdHktcHJvcCIsZmFsc2UsYXJyYXkoImVudGl0eWlkIj0+JGlkLCJwcm9wdHlwZSI9PiRwcm9wdHlwZSkpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBHZXRFbnRpdHlQcm9wKCRpZCwkcHJvcG5hbWUsICRkZWZhdWx0PWZhbHNlKSB7CiAgICAkZW50aXR5PSR0aGlzLT5HZXRFbnRpdHkoJGlkKTsKICAgIGlmICghJGVudGl0eSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKGlzc2V0KCRlbnRpdHlbInByb3BuYW1lIl0pKSByZXR1cm4gJGVudGl0eVsicHJvcG5hbWUiXTsKICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIENsZWFyRW50aXR5KCRpZCkgewogICAgJHRoaXMtPkNsZWFyRW50aXR5Q29ubmVjdGlvbnMoJGlkLCRpZCk7CiAgICAkdGhpcy0+Q2xlYXJFbnRpdHlQcm9wcygkaWQpOwogICAgJGRiPSR0aGlzLT5HZXREYigpOwogICAgJHNxbD0iREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZSBXSEVSRSBlbnRpdHlpZD0/IjsKICAgICR2YWx1ZXM9YXJyYXkoJGlkKTsKICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7CiAgICBpZiAoISRyZXN1bHQpIHJldHVybiAkdGhpcy0+RXJyb3IoImZ1bmN0aW9uIENsZWFyRW50aXR5OiBlcnJvciBjbGVhcmluZyBlbnRpdHkiLGZhbHNlLGFycmF5KCJpZCI9PiRpZCkpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBDbGVhck1vZHVsZUVudGl0aWVzKCRtb2R1bGUpIHsKCiAgICAkZW50aXRpZXM9JHRoaXMtPkdldEVudGl0aWVzKCRtb2R1bGUpOwoKICAgIGlmICghJGVudGl0aWVzKSByZXR1cm47Ci8vZGllKCk7CiAgICBmb3JlYWNoICgkZW50aXRpZXMgYXMgJGVudGl0eSkgewogICAgICAkdGhpcy0+Q2xlYXJFbnRpdHkoJGVudGl0eVsiZW50aXR5aWQiXSk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBDbGVhckVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUpIHsKICAgICRkYj0kdGhpcy0+R2V0RGIoKTsKICAgICRzcWw9IkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2VfcHJvcHMgV0hFUkUgZW50aXR5aWQ9PyBBTkQgcHJvcG5hbWU9PyI7CiAgICAkdmFsdWVzPWFycmF5KCRpZCwkcHJvcG5hbWUpOwogICAgJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCwkdmFsdWVzKTsKICAgIGlmICghJHJlc3VsdCkgcmV0dXJuICR0aGlzLT5FcnJvcigiZnVuY3Rpb24gQ2xlYXJFbnRpdHlQcm9wOiBlcnJvciBjbGVhcmluZyBlbnRpdHlwcm9wIixmYWxzZSxhcnJheSgiaWQiPT4kaWQsInByb3BuYW1lIj0+JHByb3BuYW1lKSk7CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgogIGZ1bmN0aW9uIENsZWFyRW50aXR5UHJvcHMoJGlkKSB7CiAgICAkZGI9JHRoaXMtPkdldERiKCk7CiAgICAkc3FsPSJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX3Byb3BzIFdIRVJFIGVudGl0eWlkPT8iOwogICAgJHZhbHVlcz1hcnJheSgkaWQpOwogICAgJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCwkdmFsdWVzKTsKICAgIGlmICghJHJlc3VsdCkgJHRoaXMtPkVycm9yKCJmdW5jdGlvbiBDbGVhckVudGl0eVByb3BzOiBlcnJvciBjbGVhcmluZyBlbnRpdHlwcm9wcyIsZmFsc2UsYXJyYXkoImlkIj0+JGlkKSk7CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgogIGZ1bmN0aW9uIFNldEVudGl0eVByb3BzRnJvbUFycmF5KCRpZCwgJHByb3BzLCAkdmFsdWVzLCAkY2xlYXI9dHJ1ZSwgJGZpbGw9ZmFsc2UpIHsKICAgIGlmICghaXNfYXJyYXkoJHByb3BzKSB8fCAhaXNfYXJyYXkoJHZhbHVlcykpIHJldHVybiAkdGhpcy0+RXJyb3IoImZ1bmN0aW9uIFNldEVudGl0eVByb3BzRnJvbUFycmF5OiBcJHByb3BzIGFuZCBcJHZhbHVlcyBtdXN0IGJlIGFuIGFycmF5cyIpOwoKICAgIGZvcmVhY2ggKCRwcm9wcyBhcyAkcHJvcG5hbWUpIHsKICAgICAgaWYgKGlzc2V0KCR2YWx1ZXNbJHByb3BuYW1lXSkpIHsKICAgICAgICAkdmFsdWU9JHZhbHVlc1skcHJvcG5hbWVdOwogICAgICAgIC8vZWNobyAkdmFsdWU7CiAgICAgICAgaWYgKGlzX2FycmF5KCR2YWx1ZSkpIHsKICAgICAgICAgICR0aGlzLT5TZXRFbnRpdHlQcm9wKCRpZCwgJHByb3BuYW1lLCAkdmFsdWVbInZhbHVlIl0sJHZhbHVlWyJ0eXBlIl0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvL2VjaG8gJHByb3BuYW1lLiI9PiIuJHZhbHVlOwogICAgICAgICAgJHRoaXMtPlNldEVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUsICR2YWx1ZSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGlmICgkY2xlYXIpICR0aGlzLT5DbGVhckVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUpOwogICAgICAgIGlmICgkZmlsbCkgJHRoaXMtPlNldEVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUsICIiKTsKICAgICAgfQogICAgfQogICAgLy9kaWUoKTsKICAgIHJldHVybiAkaWQ7CiAgfQoKCiAgZnVuY3Rpb24gU2V0RW50aXR5UHJvcHMoJGlkLCAkcHJvcHMvKiwgJGNsZWFyPXRydWUqLykgewogICAgLy9wcmludF9yKCRwcm9wcyk7ICBlY2hvICJoaTIiOyBkaWUoKTsKICAgIC8vcHJpbnRfcigkcHJvcHMpO2VjaG8iPGJyLz48YnIvPiI7CiAgICAvL2VjaG8gJGlkO2RpZSgpCiAgICBpZiAoIWlzX2FycmF5KCRwcm9wcykgfHwgIWlzX2Fzc29jKCRwcm9wcykpIHJldHVybiAkdGhpcy0+RXJyb3IoImZ1bmN0aW9uIFNldEVudGl0eVByb3BzOiBcJHByb3BzIG11c3QgYmUgYW4gYXNzb2MgYXJyYXkiKTsKICAgIGZvcmVhY2ggKCRwcm9wcyBhcyAkcHJvcG5hbWU9PiRwcm9wdmFsdWUpIHsKICAgICAgLy9pZiAoJGNsZWFyKSAkdGhpcy0+Q2xlYXJFbnRpdHlQcm9wKCRpZCwgJHByb3BuYW1lKTsKICAgICAgaWYgKGlzX2FycmF5KCRwcm9wdmFsdWUpKSB7CiAgICAgICAgLy8gIHByaW50X3IoJHByb3B2YWx1ZSk7ZGllKCk7CiAgICAgICAgJHRoaXMtPlNldEVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUsICRwcm9wdmFsdWVbInZhbHVlIl0sJHByb3B2YWx1ZVsidHlwZSJdKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvL2VjaG8gJHByb3BuYW1lOwogICAgICAgIC8vZWNobyAiaGkyIjsgZGllKCk7CiAgICAgICAgJHRoaXMtPlNldEVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUsICRwcm9wdmFsdWUpOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuICRpZDsKCiAgfQoKICAvL0RvZXMgbm90IHdvcmshCiAgZnVuY3Rpb24gU2V0RW50aXR5UHJvcHNPbkNyaXRlcmlhKCRtb2R1bGUsJHRhYmxlLCAkcHJvcHMsICRjcml0ZXJpYSwgJGNyZWF0ZT10cnVlLCAkY2xlYXI9ZmFsc2UpIHsKICAgIC8qcHJpbnRfcigkcHJvcHMpO2VjaG8iPGJyLz48YnIvPiI7CiAgICBwcmludF9yKCRjcml0ZXJpYSk7ZGllKCk7Ki8KICAgICRlbnRpdGllcz0kdGhpcy0+R2V0RW50aXRpZXMoJG1vZHVsZSwkdGFibGUsICRjcml0ZXJpYSk7CiAgICBpZiAoISRlbnRpdGllcykgewogICAgICBpZiAoJGNyZWF0ZSkgewogICAgICAgIHJldHVybiAkdGhpcy0+QWRkRW50aXR5KCRtb2R1bGUsICR0YWJsZSwgJHByb3BzKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgJGNvdW50PTA7CiAgICAgIGZvcmVhY2goJGVudGl0aWVzIGFzICRlbnRpdHkpIHsKICAgICAgICAvKnByaW50X3IoJHByb3BzKTtlY2hvIjxici8+PGJyLz4iOwogICAgICAgIHByaW50X3IoJGVudGl0eSk7ZGllKCk7Ki8KICAgICAgICAkY291bnQrKzsKICAgICAgICAkdGhpcy0+U2V0RW50aXR5UHJvcHMoJGVudGl0eVsiaWQiXSwkcHJvcHMsJGNsZWFyKTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiAkY291bnQ7CiAgfQoKICBmdW5jdGlvbiBSZXNldEVudGl0eVByb3BzKCRpZCwgJG5ld3Byb3BzPWFycmF5KCkpIHsKICAgICR0aGlzLT5DbGVhckVudGl0eVByb3BzKCRpZCk7CiAgICAkdGhpcy0+U2V0RW50aXR5UHJvcHMoJGlkLCAkbmV3cHJvcHMsIGZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIFJlbW92ZU1vZHVsZUVudGl0aWVzKCRtb2R1bGVuYW1lKSB7CiAgICAkZW50aXRpZXM9JHRoaXMtPkdldEVudGl0aWVzKCRtb2R1bGVuYW1lKTsKICAgIGZvcmVhY2ggKCRlbnRpdGllcyBhcyAkZW50aXR5KSB7CiAgICAgICR0aGlzLT5EZWxldGVFbnRpdHkoJGVudGl0eVsiaWQiXSk7CiAgICB9CiAgfQoKCgoKICBmdW5jdGlvbiBfQ29tcGFyZUVudGl0aWVzKCRlbnRpdHkxLCAkZW50aXR5MiwgJHNvcnRmaWVsZCkgewogICAgJGRpcmVjdGlvbj0iYXNjIjsKICAgIGlmIChpc19hcnJheSgkc29ydGZpZWxkKSkgewogICAgICBmb3JlYWNoKCRzb3J0ZmllbGQgYXMgJGZpZWxkbmFtZT0+JGRpcikgewogICAgICAgICRkaXJlY3Rpb249JGRpcjsKICAgICAgICAkc29ydGZpZWxkPSRmaWVsZG5hbWU7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmICghaXNzZXQoJGVudGl0eTFbJHNvcnRmaWVsZF0pKSByZXR1cm4gMDsKICAgIGlmICghaXNzZXQoJGVudGl0eTJbJHNvcnRmaWVsZF0pKSByZXR1cm4gMDsKICAgIGlmIChpc19udW1lcmljKCRlbnRpdHkxWyRzb3J0ZmllbGRdKSAmJiBpc19udW1lcmljKCRlbnRpdHkyWyRzb3J0ZmllbGRdKSkgewogICAgICBpZiAoJGVudGl0eTFbJHNvcnRmaWVsZF09PSRlbnRpdHkyWyRzb3J0ZmllbGRdKSByZXR1cm4gMDsKICAgICAgaWYgKCRlbnRpdHkxWyRzb3J0ZmllbGRdPCRlbnRpdHkyWyRzb3J0ZmllbGRdKSB7CiAgICAgICAgaWYgKCRkaXJlY3Rpb249PSJhc2MiKSB7CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoJGRpcmVjdGlvbj09ImFzYyIpIHsKICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICB9CgogICAgfSBlbHNlIHsKICAgICAgaWYgKCRkaXJlY3Rpb249PSJhc2MiKSB7CiAgICAgICAgcmV0dXJuIHN0cmNtcCgkZW50aXR5Mlskc29ydGZpZWxkXSwkZW50aXR5MVskc29ydGZpZWxkXSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHN0cmNtcCgkZW50aXR5Mlskc29ydGZpZWxkXSwkZW50aXR5MVskc29ydGZpZWxkXSk7CiAgICAgIH0KCiAgICB9CgogIH0KCiAgLy9Eb2VzIG5vdCB3b3JrCiAgZnVuY3Rpb24gX0NvbXBhcmVFbnRpdGllc0NvbXBsZXgoJGVudGl0eTEsICRlbnRpdHkyLCAkc29ydGZpZWxkcykgewogICAgaWYgKCFpc3NldCgkZW50aXR5MVskc29ydGZpZWxkXSkpIHJldHVybiAwOwogICAgaWYgKCFpc3NldCgkZW50aXR5Mlskc29ydGZpZWxkXSkpIHJldHVybiAwOwogICAgaWYgKGlzX251bWVyaWMoJGVudGl0eTFbJHNvcnRmaWVsZF0pICYmIGlzX251bWVyaWMoJGVudGl0eTJbJHNvcnRmaWVsZF0pKSB7CiAgICAgIGlmICgkZW50aXR5MVskc29ydGZpZWxkXT09JGVudGl0eTJbJHNvcnRmaWVsZF0pIHJldHVybiAwOwogICAgICBpZiAoJGVudGl0eTFbJHNvcnRmaWVsZF08JGVudGl0eTJbJHNvcnRmaWVsZF0pIHJldHVybiAtMTsKICAgICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gc3RyY21wKCRlbnRpdHkxWyRzb3J0ZmllbGRdLCRlbnRpdHkyWyRzb3J0ZmllbGRdKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIF9JbnRlcm5hbENvbXBhcmVFbnRpdGllcygkZW50aXR5MSwgJGVudGl0eTIpIHsKICAgIGlmIChpc19hcnJheSgkdGhpcy0+X3NvcnRmaWVsZHMpKSB7CiAgICAgIGlmIChjb3VudCgkdGhpcy0+X3NvcnRmaWVsZHMpPT0xKSB7CiAgICAgICAgaWYgKGlzX2Fzc29jKCR0aGlzLT5fc29ydGZpZWxkcykpIHsKICAgICAgICAgIHJldHVybiAkdGhpcy0+X0NvbXBhcmVFbnRpdGllcygkZW50aXR5MSwgJGVudGl0eTIsICR0aGlzLT5fc29ydGZpZWxkcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiAkdGhpcy0+X0NvbXBhcmVFbnRpdGllcygkZW50aXR5MSwgJGVudGl0eTIsICR0aGlzLT5fc29ydGZpZWxkc1swXSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAkdGhpcy0+X0NvbXBhcmVFbnRpdGllc0NvbXBsZXgoJGVudGl0eTEsICRlbnRpdHkyLCAkdGhpcy0+X3NvcnRmaWVsZHMpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gJHRoaXMtPl9Db21wYXJlRW50aXRpZXMoJGVudGl0eTEsICRlbnRpdHkyLCAkdGhpcy0+X3NvcnRmaWVsZHMpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gU29ydEVudGl0aWVzKCRsaXN0LCAkc29ydGZpZWxkcykgewogICAgJHRoaXMtPl9zb3J0ZmllbGRzPSRzb3J0ZmllbGRzOwogICAgdXNvcnQoJGxpc3QsIGFycmF5KCR0aGlzLCJfSW50ZXJuYWxDb21wYXJFbnRpdGllcyIpKTsKICAgIHJldHVybiAkbGlzdDsKICB9CgogIGZ1bmN0aW9uIE1ha2VTaW1wbGVBcnJheSgkbW9kdWxlLCAkdGFibGUsJGZpZWxkLCRhc3NvY2lkPXRydWUpIHsKICAgICRlbnRpdGllcz0kdGhpcy0+R2V0RW50aXRpZXNGdWxsKCRtb2R1bGUsJHRhYmxlKTsKICAgIGlmICghJGVudGl0aWVzKSByZXR1cm4gZmFsc2U7CiAgICAkcmVzdWx0PWFycmF5KCk7CgogICAgZm9yZWFjaCAoJGVudGl0aWVzIGFzICRlbnRpdHkpIHsKCiAgICAgIGlmICghaXNzZXQoJGVudGl0eVskZmllbGRdKSkgY29udGludWU7CiAgICAgIGlmICgkYXNzb2NpZCkgewogICAgICAgICRyZXN1bHRbJGVudGl0eVskZmllbGRdXT0kZW50aXR5WyJlbnRpdHlpZCJdOwogICAgICB9IGVsc2UgewogICAgICAgICRyZXN1bHRbXT0kZW50aXR5WyRmaWVsZF07CiAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgoKICBmdW5jdGlvbiBNYWtlQXNzb2NBcnJheSgkbW9kdWxlLCAkdGFibGUsICRmaWVsZHMpIHsKICAgICRlbnRpdGllcz0kdGhpcy0+R2V0RW50aXRpZXNGdWxsKCRtb2R1bGUsJHRhYmxlKTsKICAgIGlmICghJGVudGl0aWVzKSByZXR1cm4gZmFsc2U7CiAgICAkcmVzdWx0PWFycmF5KCk7CgogICAgZm9yZWFjaCAoJGVudGl0aWVzIGFzICRlbnRpdHkpIHsKICAgICAgZm9yZWFjaCAoJGZpZWxkcyBhcyAkaW5kZXg9PiR2YWx1ZSkgewogICAgICAgIGlmICghaXNzZXQoJGVudGl0eVskaW5kZXhdKSB8fCAhaXNzZXQoJGVudGl0eVskdmFsdWVdKSkgY29udGludWU7CgogICAgICAgICRyZXN1bHRbJGVudGl0eVskaW5kZXhdXT0kZW50aXR5WyR2YWx1ZV07CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAkcmVzdWx0OwogIH0KCiAgLyoKICAgKgogICAqIEZpZWxkc2V0IGZ1bmN0aW9ucwogICAqCiAgKi8KICBmdW5jdGlvbiBBZGRGaWVsZFNldCgkbW9kdWxlLCRuYW1lLCRmaWVsZHMpIHsKICAgIGlmICghaXNfYXJyYXkoJGZpZWxkcykpIHJldHVybiAkdGhpcy0+RXJyb3IoImZ1bmN0aW9uIEFkZEZpZWxkU2V0OiBcJGZpZWxkcyBpcyBub3QgYW4gYXJyYXkiLCBmYWxzZSwgYXJyYXkoIm5hbWUiPT4kbmFtZSkpOwogICAgaWYgKGVtcHR5KCRmaWVsZHMpKSByZXR1cm4gJHRoaXMtPkVycm9yKCJmdW5jdGlvbiBBZGRGaWVsZFNldDogXCRmaWVsZHMgaXMgYW4gZW1wdHkgYXJyYXkiLCBmYWxzZSwgYXJyYXkoIm5hbWUiPT4kbmFtZSkpOwogICAgJHRoaXMtPl9maWVsZHNldHNbJG1vZHVsZS4iXyIuJG5hbWVdPSRmaWVsZHM7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZFNldCgkbW9kdWxlLCAkbmFtZSkgewogICAgaWYgKCFpc3NldCgkdGhpcy0+X2ZpZWxkc2V0c1skbW9kdWxlLiJfIi4kbmFtZV0pKSByZXR1cm4gJHRoaXMtPkVycm9yKCJmdW5jdGlvbiBHZXRGaWVsZFNldDogZmllbGRzZXQgaXMgbm90IHByZXNlbnQiLCBmYWxzZSwgYXJyYXkoIm5hbWUiPT4kbmFtZSkpOwogICAgcmV0dXJuICR0aGlzLT5fZmllbGRzZXRzWyRtb2R1bGUuIl8iLiRuYW1lXTsKICB9CgogIGZ1bmN0aW9uIEVudGl0eVNldFVuc2V0UHJvcHMoJG1vZHVsZSwkZW50aXR5LCRmaWVsZHNldCwkZmlsbHZhbHVlPSIiKSB7CiAgICAkZmllbGRzPSR0aGlzLT5HZXRGaWVsZFNldCgkbW9kdWxlLCAkZmllbGRzZXQpOwogICAgaWYgKCEkZmllbGRzKSByZXR1cm4gJGVudGl0eTsKICAgIGZvcmVhY2goJGZpZWxkcyBhcyAkZmllbGQpIHsKICAgICAgaWYgKCFpc3NldCgkZW50aXR5WyIkZmllbGQiXSkpIHsKICAgICAgICAkZW50aXR5WyIkZmllbGQiXT0kZmlsbHZhbHVlOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gJGVudGl0eTsKICB9CgogIC8qCiAgICoKICAgKiBDb25uZWN0aW9uIGZ1bmN0aW9ucwogICAqCiAgKi8KCiAgZnVuY3Rpb24gU2V0RW50aXR5Q29ubmVjdGlvbigkaWQxLCAkaWQyLCAkdHlwZT0iIikgewogICAgaWYgKCR0aGlzLT5DaGVja0VudGl0eUNvbm5lY3Rpb24oJGlkMSwkaWQyLCR0eXBlKSkgcmV0dXJuIHRydWU7CiAgICAkZGI9JHRoaXMtPkdldERiKCk7CiAgICAkc3FsPSJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX2Nvbm5lY3Rpb25zIChlbnRpdHlpZDEsZW50aXR5aWQyLHR5cGUpIFZBTFVFUyAoPyw/LD8pIjsKICAgICR2YWx1ZXM9YXJyYXkoJGlkMSwgJGlkMiwgJHR5cGUpOwogICAgJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCwkdmFsdWVzKTsKICAgIGlmICghJHJlc3VsdCkgJHRoaXMtPkVycm9yKCJmdW5jdGlvbiBTZXRFbnRpdHlDb25uZWN0aW9uOiBlcnJvciBzZXR0aW5nIGVudGl0eSBjb25uZWN0aW9uIixmYWxzZSxhcnJheSgiaWQxIj0+JGlkMSwiaWQyIj0+JGlkMikpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBDbGVhckVudGl0eUNvbm5lY3Rpb25zKCRpZDEsICRpZDI9LTEsICR0eXBlPSIiKSB7CiAgICAkZGI9JHRoaXMtPkdldERiKCk7CiAgICBpZiAoJHR5cGU9PSIiKSB7CiAgICAgICRzcWw9IkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2VfY29ubmVjdGlvbnMgV0hFUkUgZW50aXR5aWQxPT8gT1IgZW50aXR5aWQyPT8iOwogICAgICAkdmFsdWVzPWFycmF5KCRpZDEsICRpZDIpOwogICAgICAkcmVzdWx0PSRkYi0+RXhlY3V0ZSgkc3FsLCR2YWx1ZXMpOwogICAgfSBlbHNlIHsKICAgICAgJHNxbD0iREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZV9jb25uZWN0aW9ucyBXSEVSRSAoZW50aXR5aWQxPT8gQU5EIHR5cGU9PykgT1IgKGVudGl0eWlkMj0/IEFORCB0eXBlPT8pIjsKICAgICAgJHZhbHVlcz1hcnJheSgkaWQxLCAkdHlwZSwgJGlkMiwgJHR5cGUpOwogICAgICAkcmVzdWx0PSRkYi0+RXhlY3V0ZSgkc3FsLCR2YWx1ZXMpOwogICAgfQogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBDbGVhckVudGl0eUNvbm5lY3Rpb24oJGlkMSwgJGlkMiwgJHR5cGU9IiIpIHsKICAgICRkYj0kdGhpcy0+R2V0RGIoKTsKICAgIGlmICgkdHlwZT09IiIpIHsKICAgICAgJHNxbD0iREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZV9jb25uZWN0aW9ucyBXSEVSRSBlbnRpdHlpZDE9PyBBTkQgZW50aXR5aWQyPT8iOwogICAgICAkdmFsdWVzPWFycmF5KCRpZDEsJGlkMik7CiAgICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7CiAgICB9IGVsc2UgewogICAgICAkc3FsPSJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX2Nvbm5lY3Rpb25zIFdIRVJFIGVudGl0eWlkMT0/IEFORCBlbnRpdHlpZDI9PyBBTkQgdHlwZT0/IjsKICAgICAgJHZhbHVlcz1hcnJheSgkaWQxLCRpZDIsJHR5cGUpOwogICAgICAkcmVzdWx0PSRkYi0+RXhlY3V0ZSgkc3FsLCR2YWx1ZXMpOwogICAgfQogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBDaGVja0VudGl0eUNvbm5lY3Rpb24oJGlkMSwkaWQyLCR0eXBlPSIiLCRyZXR1cm52YWx1ZT10cnVlKSB7CiAgICAkZGI9JHRoaXMtPkdldERiKCk7CiAgICAkc3FsPSIiOwogICAgJHZhbHVlcz0iIjsKICAgIGlmICgkdHlwZT09IiIpIHsKICAgICAgJHNxbD0iU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX25lb2RhdGFzdG9yYWdlX2Nvbm5lY3Rpb25zIFdIRVJFIGVudGl0eWlkMT0/IEFORCBlbnRpdHlpZDI9PyI7CiAgICAgICR2YWx1ZXM9YXJyYXkoJGlkMSwkaWQyKTsKICAgIH0gZWxzZSB7CiAgICAgICRzcWw9IlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9uZW9kYXRhc3RvcmFnZV9jb25uZWN0aW9ucyBXSEVSRSBlbnRpdHlpZDE9PyBBTkQgZW50aXR5aWQyPT8gQU5EIHR5cGU9PyI7CiAgICAgICR2YWx1ZXM9YXJyYXkoJGlkMSwkaWQyLCR0eXBlKTsKICAgIH0KICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7CiAgICBpZiAoJHJlc3VsdCAmJiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKT4wKSkgewogICAgICByZXR1cm4gJHJldHVybnZhbHVlOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gR2V0RW50aXR5Q29ubmVjdGlvbnMoJGlkMT0tMSwgJGlkMj0tMSwgJGJvdGh3YXlzPXRydWUsICR0eXBlPSIiKSB7CgogIH0KCiAgLyoKICAgKgogICAqIEVycm9yIGhhbmRsaW5nCiAgICoKICAqLwogIGZ1bmN0aW9uIEVycm9yKCRlcnJvcnRleHQsJHJldHVybnZhbHVlPWZhbHNlLCRwYXJhbXM9YXJyYXkoKSkgewogICAgJHRoaXMtPl9lcnJvcnMuPSRlcnJvcnRleHQ7CiAgICBpZiAoIWVtcHR5KCRwYXJhbXMpICYmIGlzX2FycmF5KCRwYXJhbXMpKSB7CiAgICAgICR0aGlzLT5fZXJyb3JzLj0iICgiOwogICAgICAkZmlyc3Q9dHJ1ZTsgLy9IYW5kbGluZyB0aGUgY29tbWEKICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkcGFyYW09PiR2YWx1ZSkgewogICAgICAgIGlmICgkZmlyc3QpICRmaXJzdD1mYWxzZTsgZWxzZSAkdGhpcy0+X2Vycm9ycy49IiwiOwogICAgICAgICR0aGlzLT5fZXJyb3JzLj0kcGFyYW0uIj0+Ii4kdmFsdWUuIiwiOwogICAgICB9CiAgICAgICR0aGlzLT5fZXJyb3JzLj0iKSI7CiAgICB9CiAgICAkdGhpcy0+X2Vycm9ycy49IlxuIjsKICAgIHJldHVybiAkcmV0dXJudmFsdWU7CiAgfQoKICBmdW5jdGlvbiBHZXRFcnJvcnMoJG5sMmJyPXRydWUsJGNsZWFyPXRydWUpIHsKICAgICRlcnJvcnM9JHRoaXMtPl9lcnJvcnM7CiAgICBpZiAoJG5sMmJyKSB7CiAgICAgICRlcnJvcnM9bmwyYnIoJGVycm9ycyk7CiAgICB9CiAgICBpZiAoJGNsZWFyKSB7CiAgICAgICR0aGlzLT5fZXJyb3JzPSIiOwogICAgfQogICAgcmV0dXJuICRlcnJvcnM7CiAgfQoKICBmdW5jdGlvbiBPdXRwdXRFcnJvcnMoJGNsZWFyPXRydWUpIHsKICAgIGVjaG8gIlxuXG48ZGl2IHN0eWxlPSdib3JkZXI6M3B4IHNvbGlkIHJlZD5cbiI7CiAgICBlY2hvICR0aGlzLT5HZXRFcnJvcnModHJ1ZSwkY2xlYXIpOwogICAgZWNobyAiXG48L2Rpdj5cblxuIjsKICB9CgogIGZ1bmN0aW9uIEluRXJyb3IoKSB7CiAgICByZXR1cm4gKCR0aGlzLT5fZXJyb3JzIT0iIik7CiAgfQoKICBmdW5jdGlvbiBHZXRNb2R1bGVMaXN0KCkgewogICAgJGRiPSR0aGlzLT5HZXREYigpOwogICAgJHNxbD0iU0VMRUNUIGVudGl0eW1vZHVsZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbmVvZGF0YXN0b3JhZ2UiOwogICAgJGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgIGlmICghJGRicmVzdWx0IHx8ICgkZGJyZXN1bHQtPlJlY29yZENvdW50KCk9PTApKSB7CiAgICAgIHJldHVybiBhcnJheSgpOwogICAgfQogICAgJHJlc3VsdD1hcnJheSgiIj0+IiIpOwogICAgd2hpbGUoJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgaWYgKCFpbl9hcnJheSgkcm93WyJlbnRpdHltb2R1bGUiXSwkcmVzdWx0KSkgewogICAgICAgICRyZXN1bHRbJHJvd1siZW50aXR5bW9kdWxlIl1dPSRyb3dbImVudGl0eW1vZHVsZSJdOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gJHJlc3VsdDsKICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+MC4yLjMgLSBBZGRlZCBmaWxsIHBhcmFtZXRlciB0byBTZXRFbnRpdHlQcm9wc0Zyb21BcnJheSwgbWFkZSBpcyBwb3NzaWJsZSBmb3IgZmllbGRzIHBhcmFtIHRvIHNvcnRpbmcgYmUgYW4gYXNzb2MgYXJyYXkgdG8gc3VwcG9ydCBkaXJlY3Rpb25zIGluIHNvcnRpbmc8L2xpPgo8bGk+MC4yLjIgLSBBZGRlZCBhIGN1c3RvbSByZXR1cm52YWx1ZSB0byBjaGVja2VudGl0eWNvbm5lY3Rpb25zLE1ha2VTaW1wbGVBcnJheTwvbGk+CjxsaT4wLjIuMSAtIEZpeGVkIGEgdHlwZSBpbiBHZXRFbnRpdHktZnVuY3Rpb248L2xpPgo8bGk+MC4yLjAgLSBGaXhlZCByZXNldCBmaWx0ZXIgYnV0dG9uLCBtYWRlIGZpbHRlcmluZyBvbiBtb2R1bGUgYmFzZWQgb24gYSBkcm9wZG93biwgYnVnZml4ZXM8L2xpPgo8bGk+MC4xLjAgLSBJbml0aWFsIHJlbGVhc2U8L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0cm9uZz5Ob3RpY2UhIFRoaXMgaXMgYSBtb2R1bGUtZGV2ZWxvcGVyLW9ubHkgbW9kdWxlLiBJZiB5b3UgYXJlIG5vdCBhIGRldmVsb3Blcgp5b3UnbGwgcHJvYmFibHkganVzdCB3YW50IHRvIHNraXAgdGhlIGdvcnkgZGV0YWlscyBvZiB0aGlzIHBhZ2UgYW5kIHJlbHkgb24gdGhhdAp0aGUgbW9kdWxlIGp1c3QgZG9lcyBpdCdzIHdvcmsuPC9zdHJvbmc+Cjxici8+PGJyLz4KPGgzPlB1cnBvc2Ugb2YgdGhlIG1vZHVsZTwvaDM+ClRoZSBwdXJwb3NlIG9mIHRoaXMgbW9kdWxlIGlzIHRvIHByb3ZpZGUgYSBuaWNlIGFuZCBjbGVhbiB3YXkgZm9yIG1vZHVsZXMKdG8gc3RvcmUgZGF0YSBpbiBhIHRhYmxlLWxpa2UgbWFubmVyIGJ1dCB3aXRob3V0IHRoZSBoYXp6bGUgb2YgY3JlYXRpbmcKc3BlY2lmaWMgdGFibGVzIGZvciBpdHNlbGYgYW5kIG1haW50YWluaW5nIHRoZXNlLgoKPGgzPkJ1dCBiZXdhcmUhPC9oMz4KSXQgc2hvdWxkIGJlIGVtcGhhc2l6ZWQKdGhhdCB0aGlzIG1vZHVsZSBpcyBub3QgaW50ZW5kZWQgZm9yIGV4dHJlbWVseSBkYXRhLWludGVuc2l2ZSBvcGVyYXRpb25zCmFzIGl0IHVzZXMgKGEgbG90KSBtb3JlIGRhdGFiYXNlLWNhbGxzIHRoYW4gY3VzdG9tLXdyaXR0ZW4gZGF0YSBhY2Nlc3MgZG9lcywKYnV0IGZvciBub24taW50ZW5zaXZlIHN0dWZmIGl0IHdpbGwgaG9wZWZ1bGx5IGN1dCBvZmYgc29tZSBvZiB0aGUgdGVkaW91cwoiaG91c2VrZWVwaW5nIiB3aGljaCBJIGdvdCByZWFsbHkgZmVkIHVwIHdpdGggaW4gYWxtb3N0IGV2ZXJ5IG1vZHVsZSBJJ3ZlIGRvbmUuCjxici8+ClNvLCB0aGF0J3MgaXQgZm9yIHRoZSBkaXNjbGFpbWVyLCBub3cgZm9yIHRoZSBBUEkgOi0pCjxici8+Cjxici8+CjxoMz5CYXNpYyB1c2Ugb2YgdGhlIG1vZHVsZTwvaDM+ClVzYWdlIG9mIHRoaXMgbW9kdWxlIGFsd2F5cyBzdGFydHMgb2ZmIHdpdGggZ2V0dGluZyBhbiBhY2Nlc3MgdG8gYW4gaW5zdGFuY2UKb2YgdGhlIG1vZHVsZS4gVGhlIG1vc3QgY29tbW9uIHdheSBvZiBkb2luZyB0aGlzIGlzIGNhbGxpbmcgc29tZXRoaW5nIGxpa2UKPHByZT4KCiRuZHM9JHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCJOZW9EYXRhU3RvcmFnZSIpOwoKPC9wcmU+CllvdSdsbCBwcm9iYWJseSB3YW50IHRvIG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IG9mIHRoaXMgbW9kdWxlLCBidXQgeW91CnNob3VsZCBrbm93IGhvdyB0byBkbyB0aGlzLi4uCjxici8+CkFmdGVyIGFzc2lnbmluZyB0aGUgbW9kdWxlIHRvIGEgdmFyaWFibGUsIHlvdSBjYW4gc3RhcnQgdXNpbmcgaXQgd2l0aCBBUEktZnVuY3Rpb25zCmxpa2U6CjxwcmU+CgokbXlyZWNvcmQ9JG5kcy0+R2V0RW50aXRpZXMoIm15bW9kdWxlbmFtZSIsICJteXRhYmxlaWQiKTsKCjwvcHJlPgpXaGVyZSAibXltb2R1bGVuYW1lIiBpcyB0aGUgdW5pcXVlIGlkZW50aWZ5ZXIgb2YgeW91ciBtb2R1bGUsIGNvdWxkIGJlCnJlcGxhY2VkIHdpdGggJyR0aGlzLT5HZXROYW1lKCknLCBhbmQgIm15dGFibGVpZCIgaXMgYW4gaWRlbnRpZnllciBvZiB0aGUKdGFibGUgb2YgZGF0YSB3aGljaCB5b3Ugd2FudCB0byBhY2Nlc3MgaW4gdGhlIGRhdGFzdG9yYWdlIGZvciB5b3VyIG1vZHVsZS4KVGhpcyBjYW4gYmUgbGVmdCBibGFuayBpZiBvbmx5IG9uZSB0YWJsZSBpcyBuZWVkZWQgZm9yIHRoZSBtb2R1bGUuCjxici8+CkZvciBhIGNvbXBsZXRlIChyZWFkOiBzb210aW1lcyBjb21wbGV0ZSkgbGlzdCBvZiBtZXRob2RzIHNlZSBsaXN0IGJlbG93LgoKPGgzPlRoZSBOZW9Nb2R1bGUtc2lzdGVyPC9oMz4KQW5vdGhlciwgYW5kIGV2ZW4gZWFzaWVyLCB3YXkgdG8gdXNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoaXMgbW9kdWxlCmlzIHRvIGxldCB5b3VyIG1vZHVsZSBkZXNjZW5kIGZyb20gYW5vdGhlciBwcm9qZWN0IG9mIG1pbmUsIHRoZSBOZW9Nb2R1bGUsCndoaWNoIHdyYXBzIGFsbCB0aGUgZnVuY3Rpb25zIG9mIE5lb0RhdGFTdG9yYWdlIGJ1dCByZW1vdmluZyB0aGUgbmVlZCBvZgpjb25zdGFudGx5IHN1cHBseWluZyB0aGUgJG1vZHVsZW5hbWUuIEl0IGFsc28gcHJvdmlkZXMgYSBzdGlsbC1ncm93aW5nIGxpc3Qgb2YKb3RoZXIgaGVscGVyLWZ1bmN0aW9ucyB3aGljaCBoYXMgdG8gZG8gd2l0aCBvdGhlciBzdHVmZiB0aGFuIERhdGFTdG9yYWdlLgo8YnIvPgpGb3IgZnVydGhlciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVzZSB0aGUgTmVvTW9kdWxlLCBwbGVhc2UgaW5zdGFsbCBpdCBhbmQKY2hlY2sgb3V0IGl0J3MgaGVscC1wYWdlLgoKPGgzPkhvdyB0byBnZXQgaGVscDwvaDM+Ckkgd2lsbCByZXBlYXQsIHRoaXMgbW9kdWxlIGlzIGZvciBkZXZlbG9wZXJzIG9ubHkuIElmIHlvdSBjYW5ub3QgcmVhZCBwaHAtc291cmNlIGNvZGUsCnlvdSBzaG91bGQgdXNlIGl0IGZvciBkZXZlbG9wbWVudCBhbnl3YXkuIElmIHlvdSBjYW4sIGFsd2F5cyBjaGVjayBvdXQgdGhlIGNvZGUKZm9yIGhpbnRzIG9uIGhvdyB0byBtYWtlIGl0IHdvcmsuIElmIHlvdSBzdGlsbCBoYXZlIHF1ZXN0aW9ucyBvciBzdWdnZXN0aW9ucyBmb3IKZml4ZXMvaW1wcm92ZW1lbnRzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIGNhdGNoIG1lIChTaWxtYXJpbGxpb24pIGluIHRoZSBmb3J1bSBvZyAjaXJjLgoKCjxoMz5MaXN0IG9mIG1ldGhvZHM8L2gzPgo8cHJlPgovKgogKgogKiBFbnRpdHkgZnVuY3Rpb25zCiAqCiAqLwpmdW5jdGlvbiBBZGRFbnRpdHkoJG1vZHVsZSwgJHRhYmxlLCAkcHJvcHM9YXJyYXkoKSkKZnVuY3Rpb24gRGVsZXRlRW50aXR5KCRpZCkKZnVuY3Rpb24gR2V0RW50aXR5V2l0aFR5cGUoJGlkLCAkb3ZlcnJpZGVwcm9wcz1hcnJheSgpKQpmdW5jdGlvbiBHZXRFbnRpdHkoJGlkLCAkb3ZlcnJpZGVwcm9wcz1hcnJheSgpLCAkd2l0aHR5cGU9ZmFsc2UpCmZ1bmN0aW9uIEdldEVudGl0aWVzKCRtb2R1bGUsICR0YWJsZT0iIiwgJGNyaXRlcmlhPWFycmF5KCkpCmZ1bmN0aW9uIEdldE9uZUVudGl0eSgkbW9kdWxlLCAkdGFibGUsICRjcml0ZXJpYT1hcnJheSgpLCAkZmFpbGlmbXVsdGlwbGU9ZmFsc2UpCmZ1bmN0aW9uIEdldEVudGl0aWVzRnVsbCgkbW9kdWxlLCAkdGFibGU9IiIsICRjcml0ZXJpYT1hcnJheSgpKQpmdW5jdGlvbiBFbnRpdGllc0NvdW50KCRtb2R1bGUsICR0YWJsZT0iIiwgJGNyaXRlcmlhPWFycmF5KCkpCmZ1bmN0aW9uIFNldEVudGl0eVByb3AoJGlkLCRwcm9wbmFtZSwkcHJvcHZhbHVlLCRwcm9wdHlwZT0idW5kZWZpbmVkIikKCmZ1bmN0aW9uIENsZWFyRW50aXR5KCRpZCkKZnVuY3Rpb24gQ2xlYXJNb2R1bGVFbnRpdGllcygkbW9kdWxlKQpmdW5jdGlvbiBDbGVhckVudGl0eVByb3AoJGlkLCAkcHJvcG5hbWUpCmZ1bmN0aW9uIENsZWFyRW50aXR5UHJvcHMoJGlkKQpmdW5jdGlvbiBTZXRFbnRpdHlQcm9wcygkaWQsICRwcm9wcywgJGNsZWFyPXRydWUpCmZ1bmN0aW9uIFNldEVudGl0eVByb3BzRnJvbUFycmF5KCRpZCwgJHByb3BzLCAkdmFsdWVzLCAkY2xlYXI9dHJ1ZSwgJGZpbGw9ZmFsc2UpCmZ1bmN0aW9uIFNldEVudGl0eVByb3BzT25Dcml0ZXJpYSgkbW9kdWxlLCR0YWJsZSwgJHByb3BzLCAkY3JpdGVyaWEsICRjcmVhdGU9dHJ1ZSwgJGNsZWFyPWZhbHNlKSAvL0RvZXMgbm90IHdvcmshCmZ1bmN0aW9uIFJlc2V0RW50aXR5UHJvcHMoJGlkLCAkbmV3cHJvcHM9YXJyYXkoKSkKZnVuY3Rpb24gUmVtb3ZlTW9kdWxlRW50aXRpZXMoJG1vZHVsZW5hbWUpCgovKgogKgogKiBTb3J0aW5nIGZ1bmN0aW9ucwogKgogKi8KZnVuY3Rpb24gQ29tcGFyZUVudGl0aWVzKCRlbnRpdHkxLCAkZW50aXR5MiwgJHNvcnRmaWVsZCkKZnVuY3Rpb24gQ29tcGFyZUVudGl0aWVzQ29tcGxleCgkZW50aXR5MSwgJGVudGl0eTIsICRzb3J0ZmllbGRzPWFycmF5KCkpIC8vRG9lcyBub3Qgd29yawpmdW5jdGlvbiBTb3J0RW50aXRpZXMoJGxpc3QsICRzb3J0ZmllbGRzPWFycmF5KCkgb3Igc3RyaW5nKSAvL09ubHkgd29ya3Mgb24gc3RyaW5ncwpmdW5jdGlvbiBNYWtlU2ltcGxlQXJyYXkoJG1vZHVsZSwgJHRhYmxlLCAkZmllbGQpCmZ1bmN0aW9uIE1ha2VBc3NvY0FycmF5KCRtb2R1bGUsICR0YWJsZSwgJGZpZWxkcykKCi8qCiAqCiAqIEZpZWxkc2V0IGZ1bmN0aW9ucwogKgogKi8KZnVuY3Rpb24gQWRkRmllbGRTZXQoJG1vZHVsZSwkbmFtZSwkZmllbGRzKQpmdW5jdGlvbiBHZXRGaWVsZFNldCgkbW9kdWxlLCAkbmFtZSkKZnVuY3Rpb24gRW50aXR5U2V0VW5zZXRQcm9wcygkbW9kdWxlLCRlbnRpdHksJGZpZWxkc2V0LCRmaWxsdmFsdWU9IiIpCgovKgogKgogKiBDb25uZWN0aW9uIGZ1bmN0aW9ucwogKgogKi8KZnVuY3Rpb24gU2V0RW50aXR5Q29ubmVjdGlvbigkaWQxLCAkaWQyLCAkdHlwZT0iIikKZnVuY3Rpb24gQ2xlYXJFbnRpdHlDb25uZWN0aW9ucygkaWQxLCAkaWQyPS0xLCAkdHlwZT0iIikKZnVuY3Rpb24gQ2xlYXJFbnRpdHlDb25uZWN0aW9uKCRpZDEsICRpZDIsICR0eXBlPSIiKQpmdW5jdGlvbiBDaGVja0VudGl0eUNvbm5lY3Rpb24oJGlkMSwkaWQyLCR0eXBlPSIiKQpmdW5jdGlvbiBHZXRFbnRpdHlDb25uZWN0aW9ucygkaWQxPS0xLCAkaWQyPS0xLCAkYm90aHdheXM9dHJ1ZSwgJHR5cGU9IiIpIC8vRG9lcyBub3Qgd29yawoKLyoKICoKICogRXJyb3IgaGFuZGxpbmcKICoKICovCmZ1bmN0aW9uIEVycm9yKCRlcnJvcnRleHQsJHJldHVybnZhbHVlPWZhbHNlLCRwYXJhbXM9YXJyYXkoKSkKZnVuY3Rpb24gR2V0RXJyb3JzKCRubDJicj10cnVlLCRjbGVhcj10cnVlKQpmdW5jdGlvbiBTaG93RXJyb3JzKCRjbGVhcj10cnVlKQpmdW5jdGlvbiBJbkVycm9yKCkgOiBib29sCjwvcHJlPg==]]></data>
	</file>
	<file>
	  <filename>/templates/showdata.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGlucHV0IGlkPSJmaWx0ZXJ0b2dnbGUiIHR5cGU9ImNoZWNrYm94IiB7aWYgJGZpbHRlcnN2aXNpYmxlPT0idHJ1ZSJ9Y2hlY2tlZD0iMSJ7L2lmfSBuYW1lPSJzaG93ZmlsdGVyb3B0aW9ucyIgb25DbGljaz0iaWYgKHRoaXMuY2hlY2tlZCkgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbHRlcicpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBlbHNlIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWx0ZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyAiPgo8bGFiZWwgZm9yPSJmaWx0ZXJ0b2dnbGUiPnskbW9kLT5MYW5nKCJzaG93ZmlsdGVycyIpfTwvbGFiZWw+Cgo8ZGl2IGlkPSJmaWx0ZXIiIHN0eWxlPSJkaXNwbGF5OiBub25lIi8+CnskZm9ybXN0YXJ0fQo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoImZpbHRlcnMiKX08L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoImlkZmlsdGVyIil9PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpZGZpbHRlcmlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCJtb2R1bGVmaWx0ZXIiKX08L3A+CiA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1vZHVsZWZpbHRlcmlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCJ0YWJsZWZpbHRlciIpfTwvcD4KIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGFibGVmaWx0ZXJpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygicHJvcGZpbHRlciIpfTwvcD4KIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvcGZpbHRlcmlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCJ2YWx1ZWZpbHRlciIpfTwvcD4KIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdmFsdWVmaWx0ZXJpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFwcGx5ZmlsdGVyfXskcmVzZXRmaWx0ZXJ9PC9wPjxici8+CjwvZGl2Pgp7JGZvcm1lbmR9CjwvZmllbGRzZXQ+CjwvZGl2PgoKe2lmICRpdGVtY291bnQgPiAwfQo8YnIvPgp7aWYgJHRvb21hbnlyb3dzIT0iIn0KPHN0cm9uZz57JHRvb21hbnlyb3dzfTwvc3Ryb25nPgo8YnIvPgp7L2lmfQoKPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CiAgICAgIDx0aD5JZDwvdGg+CgkJCTx0aD5Nb2R1bGU8L3RoPgoJCQk8dGg+VGFibGU8L3RoPgoJCQk8dGg+UHJvcG5hbWU8L3RoPgogICAgICA8dGg+UHJvcHZhbHVlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0Ke2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249cm93Y2xhc3N9CgkJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4JCQkKCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5tb2R1bGV9PC90ZD4KCQkJPHRkPnskZW50cnktPnRhYmxlfTwvdGQ+CiAgICAgIDx0ZD57JGVudHJ5LT5wcm9wbmFtZX08L3RkPgogICAgICA8dGQ+eyRlbnRyeS0+cHJvcHZhbHVlfHRydW5jYXRlfTwvdGQ+CQkJCgkJPC90cj4Key9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Ke2Vsc2V9CjxoND57JG1vZC0+TGFuZygnbm9kYXRhJyl9PC9oND4Key9pZn0KCg==]]></data>
	</file>
</module>
