<?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>GCharts</name>
	<version>1.2</version>
  <mincmsversion>1.11</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyBmb3IgdGhlIGFkZGl0aW9uIG9mIEdvb2dsZSBDaGFydHMgdG8geW91ciB3ZWJzaXRlLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPlNpbXBseSBwbGFjZSB0aGUgbW9kdWxlIGNhbGwgYmVmb3JlIHlvdXIgY2xvc2luZyBib2R5IHRhZyB3aXRoIHRoZSBJRCBvZiB0aGUgY2hhcnQgeW91IHdhbnQgdG8gZGlzcGxheSA8Y29kZT57R0NoYXJ0cyBnY2hhcnRzX2lkPScxJ308L2NvZGU+LCBkYXRhIGZpZWxkIGFjY2VwdHMgc21hcnR5IHZhcmlhYmxlcy48L3A+CjxwPkZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhcyB0byB3aGF0IHZhbHVlcyBlYWNoIHBhcmFtZXRlciB0YWtlcyBsb29rIGF0IHRoZSBHb29nbGUgQ2hhcnRzIGRvY3VtZW50YXRpb24gPGEgaHJlZj0iaHR0cHM6Ly9nb29nbGUtZGV2ZWxvcGVycy5hcHBzcG90LmNvbS9jaGFydC8iPmh0dHBzOi8vZ29vZ2xlLWRldmVsb3BlcnMuYXBwc3BvdC5jb20vY2hhcnQvPC9hPjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIE1vZHVsZSBGb3JnZQo8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2djaGFydHMvIj5HQ2hhcnRzIFBhZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIG9saXZlcnNlZGRvbiwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTMsIE9saXZlciBTZWRkb24gPGEgaHJlZj0ibWFpbHRvOm9saXZlckB0aHJlZWZvbGQuY28udWsiPiZsdDtvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZ2NoYXJ0c19pZD0iMSIgLSBJRCBvZiB0aGUgY2hhcnQgeW91IHdhbnQgdG8gZGlzcGxheS48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBvbGl2ZXJzZWRkb24gJmx0O29saXZlckB0aHJlZWZvbGQuY28udWsmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4yPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgo8bGk+VmVyc2lvbiAxLjAgOCBKdWx5IDIwMTMuIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAxLjEgMTUgSnVseSAyMDEzLiBNdWx0aXBsZSBidWcgZml4ZXMuPC9saT4KPGxpPlZlcnNpb24gMS4yIDE0IE5vdmVtYmVyIDIwMTMuIEFkZGVkIGNvbHVtbiBjaGFydHMgb3B0aW9uIHBsdXMgbWFueSBidWcgZml4ZXMuPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[This module add Google Charts to your website.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addchart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgkkZGV0YWlscGFnZSA9ICcnOwoKCWlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEdDaGFydHMnKSkKCXsKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgR0NoYXJ0cycpKSk7CgkJcmV0dXJuOwoJfQoKCWlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCgl7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7Cgl9CgovLyBHaXZlIHRoZSBmb3JtIGlkIHRvIHNtYXJ0eQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsJGlkKTsKCgkkZGF0YSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2RhdGEnXSkpCgl7CgkJJGRhdGEgPSAkcGFyYW1zWydkYXRhJ107Cgl9CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgICRzdGF0dXMgPSAncHVibGlzaGVkJzsKICB9CglpZiAoaXNzZXQoJHBhcmFtc1snc3RhdHVzJ10pKQoJewoJCSRzdGF0dXMgPSAkcGFyYW1zWydzdGF0dXMnXTsKCX0KCgkkdXNlZGNhdGVnb3J5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY2F0ZWdvcnknLCAnJyk7CglpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkpCgl7CgkJJHVzZWRjYXRlZ29yeSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107Cgl9CgoJJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCgkkbmFtZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpCgl7CgkgICRuYW1lID0gJHBhcmFtc1snbmFtZSddOwoJfQoKCSRlbGVtZW50ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZWxlbWVudCddKSkKCXsKCSAgJGVsZW1lbnQgPSAkcGFyYW1zWydlbGVtZW50J107Cgl9CgoJJGF4aXNUaXRsZXNQb3NpdGlvbiA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2F4aXNUaXRsZXNQb3NpdGlvbiddKSkKCXsKCSAgJGF4aXNUaXRsZXNQb3NpdGlvbiA9ICRwYXJhbXNbJ2F4aXNUaXRsZXNQb3NpdGlvbiddOwoJfQoKCSRiYWNrZ3JvdW5kQ29sb3IgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydiYWNrZ3JvdW5kQ29sb3InXSkpCgl7CgkgICRiYWNrZ3JvdW5kQ29sb3IgPSAkcGFyYW1zWydiYWNrZ3JvdW5kQ29sb3InXTsKCX0KCgkkY2hhcnRBcmVhID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snY2hhcnRBcmVhJ10pKQoJewoJICAkY2hhcnRBcmVhID0gJHBhcmFtc1snY2hhcnRBcmVhJ107Cgl9CgoJJGNvbG9ycyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbG9ycyddKSkKCXsKCSAgJGNvbG9ycyA9ICRwYXJhbXNbJ2NvbG9ycyddOwoJfQoKCSRjdXJ2ZVR5cGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydjdXJ2ZVR5cGUnXSkpCgl7CgkgICRjdXJ2ZVR5cGUgPSAkcGFyYW1zWydjdXJ2ZVR5cGUnXTsKCX0KCgkkZW5hYmxlSW50ZXJhY3Rpdml0eSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2VuYWJsZUludGVyYWN0aXZpdHknXSkpCgl7CgkgICRlbmFibGVJbnRlcmFjdGl2aXR5ID0gJHBhcmFtc1snZW5hYmxlSW50ZXJhY3Rpdml0eSddOwoJfQoKCSRmb2N1c1RhcmdldCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZvY3VzVGFyZ2V0J10pKQoJewoJICAkZm9jdXNUYXJnZXQgPSAkcGFyYW1zWydmb2N1c1RhcmdldCddOwoJfQoKCSRmb250U2l6ZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZvbnRTaXplJ10pKQoJewoJICAkZm9udFNpemUgPSAkcGFyYW1zWydmb250U2l6ZSddOwoJfQoKCSRmb250TmFtZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZvbnROYW1lJ10pKQoJewoJICAkZm9udE5hbWUgPSAkcGFyYW1zWydmb250TmFtZSddOwoJfQoKCSRoQXhlcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2hBeGVzJ10pKQoJewoJICAkaEF4ZXMgPSAkcGFyYW1zWydoQXhlcyddOwoJfQoKCSRoQXhpcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2hBeGlzJ10pKQoJewoJICAkaEF4aXMgPSAkcGFyYW1zWydoQXhpcyddOwoJfQoKCSRoZWlnaHQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydoZWlnaHQnXSkpCgl7CgkgICRoZWlnaHQgPSAkcGFyYW1zWydoZWlnaHQnXTsKCX0KCgkkaXNIdG1sID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaXNIdG1sJ10pKQoJewoJICAkaXNIdG1sID0gJHBhcmFtc1snaXNIdG1sJ107Cgl9CgoJJGlzU3RhY2tlZCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2lzU3RhY2tlZCddKSkKCXsKCSAgJGlzU3RhY2tlZCA9ICRwYXJhbXNbJ2lzU3RhY2tlZCddOwoJfQoKCSRpczNEID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaXMzRCddKSkKCXsKCSAgJGlzM0QgPSAkcGFyYW1zWydpczNEJ107Cgl9CgoJJGludGVycG9sYXRlZE51bGxzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaW50ZXJwb2xhdGVkTnVsbHMnXSkpCgl7CgkgICRpbnRlcnBvbGF0ZWROdWxscyA9ICRwYXJhbXNbJ2ludGVycG9sYXRlZE51bGxzJ107Cgl9CgoJJGxlZ2VuZCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2xlZ2VuZCddKSkKCXsKCSAgJGxlZ2VuZCA9ICRwYXJhbXNbJ2xlZ2VuZCddOwoJfQoKCSRsaW5lV2lkdGggPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydsaW5lV2lkdGgnXSkpCgl7CgkgICRsaW5lV2lkdGggPSAkcGFyYW1zWydsaW5lV2lkdGgnXTsKCX0KCgkkcG9pbnRTaXplID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncG9pbnRTaXplJ10pKQoJewoJICAkcG9pbnRTaXplID0gJHBhcmFtc1sncG9pbnRTaXplJ107Cgl9CgoJJHBpZVJlc2lkdWVTbGljZUNvbG9yID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlQ29sb3InXSkpCgl7CgkgICRwaWVSZXNpZHVlU2xpY2VDb2xvciA9ICRwYXJhbXNbJ3BpZVJlc2lkdWVTbGljZUNvbG9yJ107Cgl9CgoJJHBpZVJlc2lkdWVTbGljZUxhYmVsID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXSkpCgl7CgkgICRwaWVSZXNpZHVlU2xpY2VMYWJlbCA9ICRwYXJhbXNbJ3BpZVJlc2lkdWVTbGljZUxhYmVsJ107Cgl9CgoJJHBpZVNsaWNlQm9yZGVyQ29sb3IgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVTbGljZUJvcmRlckNvbG9yJ10pKQoJewoJICAkcGllU2xpY2VCb3JkZXJDb2xvciA9ICRwYXJhbXNbJ3BpZVNsaWNlQm9yZGVyQ29sb3InXTsKCX0KCgkkcGllU2xpY2VUZXh0ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllU2xpY2VUZXh0J10pKQoJewoJICAkcGllU2xpY2VUZXh0ID0gJHBhcmFtc1sncGllU2xpY2VUZXh0J107Cgl9CgoJJHBpZVNsaWNlVGV4dFN0eWxlID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncGllU2xpY2VUZXh0U3R5bGUnXSkpCgl7CgkgICRwaWVTbGljZVRleHRTdHlsZSA9ICRwYXJhbXNbJ3BpZVNsaWNlVGV4dFN0eWxlJ107Cgl9CgoJJHJldmVyc2VDYXRlZ29yaWVzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sncmV2ZXJzZUNhdGVnb3JpZXMnXSkpCgl7CgkgICRyZXZlcnNlQ2F0ZWdvcmllcyA9ICRwYXJhbXNbJ3JldmVyc2VDYXRlZ29yaWVzJ107Cgl9CgoJJHNsaWNlcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3NsaWNlcyddKSkKCXsKCSAgJHNsaWNlcyA9ICRwYXJhbXNbJ3NsaWNlcyddOwoJfQoKCSRzZXJpZXMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydzZXJpZXMnXSkpCgl7CgkgICRzZXJpZXMgPSAkcGFyYW1zWydzZXJpZXMnXTsKCX0KCgkkc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJ10pKQoJewoJICAkc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkID0gJHBhcmFtc1snc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJ107Cgl9CgoJJHRoZW1lID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndGhlbWUnXSkpCgl7CgkgICR0aGVtZSA9ICRwYXJhbXNbJ3RoZW1lJ107Cgl9CgoJJHRpdGxlID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndGl0bGUnXSkpCgl7CgkgICR0aXRsZSA9ICRwYXJhbXNbJ3RpdGxlJ107Cgl9CgoJJHRpdGxlUG9zaXRpb24gPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aXRsZVBvc2l0aW9uJ10pKQoJewoJICAkdGl0bGVQb3NpdGlvbiA9ICRwYXJhbXNbJ3RpdGxlUG9zaXRpb24nXTsKCX0KCgkkdGl0bGVUZXh0U3R5bGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aXRsZVRleHRTdHlsZSddKSkKCXsKCSAgJHRpdGxlVGV4dFN0eWxlID0gJHBhcmFtc1sndGl0bGVUZXh0U3R5bGUnXTsKCX0KCgkkdG9vbHRpcCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Rvb2x0aXAnXSkpCgl7CgkgICR0b29sdGlwID0gJHBhcmFtc1sndG9vbHRpcCddOwoJfQoKCSR2QXhlcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZBeGVzJ10pKQoJewoJICAkdkF4ZXMgPSAkcGFyYW1zWyd2QXhlcyddOwoJfQoKCSR2QXhpcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZBeGlzJ10pKQoJewoJICAkdkF4aXMgPSAkcGFyYW1zWyd2QXhpcyddOwoJfQoKCSR3aWR0aCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3dpZHRoJ10pKQoJewoJICAkd2lkdGggPSAkcGFyYW1zWyd3aWR0aCddOwoJfQoKCSRhZ2dyZWdhdGlvblRhcmdldCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2FnZ3JlZ2F0aW9uVGFyZ2V0J10pKQoJewoJICAkYWdncmVnYXRpb25UYXJnZXQgPSAkcGFyYW1zWydhZ2dyZWdhdGlvblRhcmdldCddOwoJfQoKCSRncm91cFdpZHRoID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZ3JvdXBXaWR0aCddKSkKCXsKCSAgJGdyb3VwV2lkdGggPSAkcGFyYW1zWydncm91cFdpZHRoJ107Cgl9CgppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkZXJyb3IgPSBGQUxTRTsKICAgIGlmKCBlbXB0eSgkbmFtZSkgKQogICAgICB7CgkkZXJyb3IgPSAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICAgIH0KICAgIGVsc2UgaWYoIGVtcHR5KCRkYXRhKSApCiAgICAgIHsKCSRlcnJvciA9ICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub2RhdGFnaXZlbicpKTsKICAgICAgfQoKICAgIC8vCiAgICAvLyBkYXRhYmFzZSB3b3JrCiAgICAvLwogICAgaWYoICRlcnJvciAhPT0gRkFMU0UgKQogICAgICB7CgllY2hvICRlcnJvcjsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkY2hhcnRpZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19zZXEiKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHMgKGdjaGFydHNfaWQsIGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfZWxlbWVudF9pZCwgZ2NoYXJ0c19uYW1lLCBnY2hhcnRzX2RhdGEsIGF4aXNUaXRsZXNQb3NpdGlvbiwgYmFja2dyb3VuZENvbG9yLCBjdXJ2ZVR5cGUsIGNoYXJ0QXJlYSwgY29sb3JzLCBlbmFibGVJbnRlcmFjdGl2aXR5LCBmb2N1c1RhcmdldCwgZm9udFNpemUsIGZvbnROYW1lLCBoQXhlcywgaEF4aXMsIGhlaWdodCwgaW50ZXJwb2xhdGVkTnVsbHMsIGlzSHRtbCwgaXNTdGFja2VkLCBpczNELCBsZWdlbmQsIGxpbmVXaWR0aCwgc2xpY2VzLCBwaWVTbGljZUJvcmRlckNvbG9yLCBwaWVTbGljZVRleHQsIHBpZVNsaWNlVGV4dFN0eWxlLCBwb2ludFNpemUsIHJldmVyc2VDYXRlZ29yaWVzLCBzZXJpZXMsIHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCwgcGllUmVzaWR1ZVNsaWNlQ29sb3IsIHBpZVJlc2lkdWVTbGljZUxhYmVsLCB0aGVtZSwgdGl0bGUsIHRpdGxlUG9zaXRpb24sIHRpdGxlVGV4dFN0eWxlLCB0b29sdGlwLCB2QXhlcywgdkF4aXMsIHdpZHRoLCBzdGF0dXMsIGFnZ3JlZ2F0aW9uVGFyZ2V0LCBncm91cFdpZHRoKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjaGFydGlkLCAkdXNlZGNhdGVnb3J5LCAkZWxlbWVudCwgJG5hbWUsICRkYXRhLCAkYXhpc1RpdGxlc1Bvc2l0aW9uLCAkYmFja2dyb3VuZENvbG9yLCAkY3VydmVUeXBlLCAkY2hhcnRBcmVhLCAkY29sb3JzLCAkZW5hYmxlSW50ZXJhY3Rpdml0eSwgJGZvY3VzVGFyZ2V0LCAkZm9udFNpemUsICRmb250TmFtZSwgJGhBeGVzLCAkaEF4aXMsICRoZWlnaHQsICRpbnRlcnBvbGF0ZWROdWxscywgJGlzU3RhY2tlZCwgJGlzSHRtbCwgJGlzM0QsICRsZWdlbmQsICRsaW5lV2lkdGgsICRzbGljZXMsICRwaWVTbGljZUJvcmRlckNvbG9yLCAkcGllU2xpY2VUZXh0LCAkcGllU2xpY2VUZXh0U3R5bGUsICRwb2ludFNpemUsICRyZXZlcnNlQ2F0ZWdvcmllcywgJHNlcmllcywgJHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCwgJHBpZVJlc2lkdWVTbGljZUNvbG9yLCAkcGllUmVzaWR1ZVNsaWNlTGFiZWwsICR0aGVtZSwgJHRpdGxlLCAkdGl0bGVQb3NpdGlvbiwgJHRpdGxlVGV4dFN0eWxlLCAkdG9vbHRpcCwgJHZBeGVzLCAkdkF4aXMsICR3aWR0aCwgJHN0YXR1cywgJGFnZ3JlZ2F0aW9uVGFyZ2V0LCAkZ3JvdXBXaWR0aCkpOwogICAgCglpZiggISRkYnIgKQoJICB7CgkgICAgZWNobyAiREVCVUc6IFNRTCA9ICIuJGRiLT5zcWwuIjxici8+IjsKCSAgICBkaWUoJGRiLT5FcnJvck1zZygpKTsKCSAgfQoKCWlmKCAhJGVycm9yICYmICRzdGF0dXMgPT0gJ3B1Ymxpc2hlZCcgKQoJICB7CgkgICAgLy9VcGRhdGUgc2VhcmNoIGluZGV4CgkgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKCSAgICBpZiAoaXNfb2JqZWN0KCRtb2R1bGUpICkKCSAgICAgIHsKCQkkdGV4dCA9ICcnOwoJICAgIAoJCSR0ZXh0ID0gJGRhdGEuJyAnLiRuYW1lOwoJCSRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjaGFydGlkLCAnY2hhcnQnLCAkdGV4dCk7CgkgICAgICB9CgkgIH0KCQoJaWYoICEkZXJyb3IgKQoJICB7CgkgICAgQCR0aGlzLT5TZW5kRXZlbnQoJ0NoYXJ0QWRkZWQnLCBhcnJheSgnZ2NoYXJ0c19pZCcgPT4gJGNoYXJ0aWQsICdjYXRlZ29yeV9pZCcgPT4gJHVzZWRjYXRlZ29yeSwgJ2djaGFydHNfbmFtZScgPT4gJG5hbWUsICdnY2hhcnRzX2RhdGEnID0+ICRkYXRhLCAnc3RhdHVzJyA9PiAkc3RhdHVzKSk7CgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJYXVkaXQoJGNoYXJ0aWQsICdHQ2hhcnRzOiAnLiRjaGFydGlkLCAnQ2hhcnQgYWRkZWQnKTsKCSAgICAkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdjaGFydGFkZGVkJywgJ2FjdGl2ZV90YWInID0+ICdjaGFydHMnKTsKCSAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCSAgfSAvLyBpZiAhJGVycm9yCiAgICAgIH0gLy8gb3V0ZXIgaWYgISRlcnJvcgogIH0gLy8gc3VibWl0CgoKLy8KLy8gYnVpbGQgdGhlIGZvcm0KLy8gICAgCiRzdGF0dXNkcm9wZG93biA9IGFycmF5KCk7CiRzdGF0dXNkcm9wZG93blskdGhpcy0+TGFuZygnZHJhZnQnKV0gPSAnZHJhZnQnOwokc3RhdHVzZHJvcGRvd25bJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpXSA9ICdwdWJsaXNoZWQnOwogICAgCiAgICAkY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIAogICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICB7CgkJJGNhdGVnb3J5bGlzdFskcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXV0gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107Cgl9Cgokb25jaGFuZ2V0ZXh0PSdvbmNoYW5nZT0iZG9jdW1lbnQnLiRpZC4nbW9kdWxlZm9ybV8xLnN1Ym1pdCgpIiBpZD0iY2hhcnRDYXRlZ29yeSInOwoJI0Rpc3BsYXkgdGVtcGxhdGUKCSRzbWFydHktPmFzc2lnbignY3VycmNhdCcsICcxJyk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGNoYXJ0JywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCSRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVsZW1lbnQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2VsZW1lbnQnLCAkZWxlbWVudCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRhdGEnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwgJGRhdGEsICdkYXRhJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGF4aXNUaXRsZXNQb3NpdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYXhpc1RpdGxlc1Bvc2l0aW9uJywgJGF4aXNUaXRsZXNQb3NpdGlvbiwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGJhY2tncm91bmRDb2xvcicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYmFja2dyb3VuZENvbG9yJywgJGJhY2tncm91bmRDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNoYXJ0QXJlYScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2hhcnRBcmVhJywgJGNoYXJ0QXJlYSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNvbG9ycycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY29sb3JzJywgJGNvbG9ycywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGN1cnZlVHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VydmVUeXBlJywgJGN1cnZlVHlwZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVuYWJsZUludGVyYWN0aXZpdHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2VuYWJsZUludGVyYWN0aXZpdHknLCAkZW5hYmxlSW50ZXJhY3Rpdml0eSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvY3VzVGFyZ2V0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb2N1c1RhcmdldCcsICRmb2N1c1RhcmdldCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvbnRTaXplJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb250U2l6ZScsICRmb250U2l6ZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvbnROYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb250TmFtZScsICRmb250TmFtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhBeGVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoQXhlcycsICRoQXhlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhBeGlzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoQXhpcycsICRoQXhpcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhlaWdodCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaGVpZ2h0JywgJGhlaWdodCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGludGVycG9sYXRlZE51bGxzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpbnRlcnBvbGF0ZWROdWxscycsICRpbnRlcnBvbGF0ZWROdWxscywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzSHRtbCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXNIdG1sJywgJGlzSHRtbCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzU3RhY2tlZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXNTdGFja2VkJywgJGlzU3RhY2tlZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzM0QnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lzM0QnLCAkaXMzRCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxlZ2VuZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGVnZW5kJywgJGxlZ2VuZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxpbmVXaWR0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGluZVdpZHRoJywgJGxpbmVXaWR0aCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNsaWNlcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2xpY2VzJywgJHNsaWNlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlQm9yZGVyQ29sb3InLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BpZVNsaWNlQm9yZGVyQ29sb3InLCAkcGllU2xpY2VCb3JkZXJDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlVGV4dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncGllU2xpY2VUZXh0JywgJHBpZVNsaWNlVGV4dCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlVGV4dFN0eWxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVTbGljZVRleHRTdHlsZScsICRwaWVTbGljZVRleHRTdHlsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBvaW50U2l6ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncG9pbnRTaXplJywgJHBvaW50U2l6ZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHJldmVyc2VDYXRlZ29yaWVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdyZXZlcnNlQ2F0ZWdvcmllcycsICRyZXZlcnNlQ2F0ZWdvcmllcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNlcmllcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2VyaWVzJywgJHNlcmllcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJywgJHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVJlc2lkdWVTbGljZUNvbG9yJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVSZXNpZHVlU2xpY2VDb2xvcicsICRwaWVSZXNpZHVlU2xpY2VDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVJlc2lkdWVTbGljZUxhYmVsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVSZXNpZHVlU2xpY2VMYWJlbCcsICRwaWVSZXNpZHVlU2xpY2VMYWJlbCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRoZW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aGVtZScsICR0aGVtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZScsICR0aXRsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlUG9zaXRpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlUG9zaXRpb24nLCAkdGl0bGVQb3NpdGlvbiwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlVGV4dFN0eWxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZVRleHRTdHlsZScsICR0aXRsZVRleHRTdHlsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRvb2x0aXAnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3Rvb2x0aXAnLCAkdG9vbHRpcCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHZBeGVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0b29sdGlwJywgJHZBeGVzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0dkF4aXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ZBeGlzJywgJHZBeGlzLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0d2lkdGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3dpZHRoJywgJHdpZHRoLCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0YWdncmVnYXRpb25UYXJnZXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2FnZ3JlZ2F0aW9uVGFyZ2V0JywgJGFnZ3JlZ2F0aW9uVGFyZ2V0LCAzMCwgMjU1KSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0Z3JvdXBXaWR0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZ3JvdXBXaWR0aCcsICRncm91cFdpZHRoLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCRpZCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBcHByb3ZlIEdDaGFydHMnKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXN0ZXh0JywgbGFuZygnc3RhdHVzJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdzdGF0dXMnLCAkc3RhdHVzZHJvcGRvd24sIC0xLCAkc3RhdHVzKSk7CiAgfQogZWxzZQogICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc3RhdHVzJywkc3RhdHVzKSk7CiAgIH0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNhdGVnb3J5JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnY2F0ZWdvcnknLCAkY2F0ZWdvcnlsaXN0LCAtMSwgJHVzZWRjYXRlZ29yeSwgJG9uY2hhbmdldGV4dCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKCSRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgoJJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdlbGVtZW50dGV4dCcsICR0aGlzLT5MYW5nKCdlbGVtZW50JykpOwoJJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCAkdGhpcy0+TGFuZygnY2F0ZWdvcnknKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2RhdGF0ZXh0JywgJHRoaXMtPkxhbmcoJ2RhdGEnKSk7CiRzbWFydHktPmFzc2lnbignYXhpc1RpdGxlc1Bvc2l0aW9udGV4dCcsICR0aGlzLT5MYW5nKCdheGlzVGl0bGVzUG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbignYmFja2dyb3VuZENvbG9ydGV4dCcsICR0aGlzLT5MYW5nKCdiYWNrZ3JvdW5kQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbignY2hhcnRBcmVhdGV4dCcsICR0aGlzLT5MYW5nKCdjaGFydEFyZWEnKSk7CiRzbWFydHktPmFzc2lnbignY29sb3JzdGV4dCcsICR0aGlzLT5MYW5nKCdjb2xvcnMnKSk7CiRzbWFydHktPmFzc2lnbignY3VydmVUeXBldGV4dCcsICR0aGlzLT5MYW5nKCdjdXJ2ZVR5cGUnKSk7CiRzbWFydHktPmFzc2lnbignZW5hYmxlSW50ZXJhY3Rpdml0eXRleHQnLCAkdGhpcy0+TGFuZygnZW5hYmxlSW50ZXJhY3Rpdml0eScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb2N1c1RhcmdldHRleHQnLCAkdGhpcy0+TGFuZygnZm9jdXNUYXJnZXQnKSk7CiRzbWFydHktPmFzc2lnbignZm9udFNpemV0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvbnRTaXplJykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvbnROYW1ldGV4dCcsICR0aGlzLT5MYW5nKCdmb250TmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdoQXhlc3RleHQnLCAkdGhpcy0+TGFuZygnaEF4ZXMnKSk7CiRzbWFydHktPmFzc2lnbignaEF4aXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2hBeGlzJykpOwokc21hcnR5LT5hc3NpZ24oJ2hlaWdodHRleHQnLCAkdGhpcy0+TGFuZygnaGVpZ2h0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ludGVycG9sYXRlZE51bGxzdGV4dCcsICR0aGlzLT5MYW5nKCdpbnRlcnBvbGF0ZWROdWxscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpc0h0bWx0ZXh0JywgJHRoaXMtPkxhbmcoJ2lzSHRtbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpc1N0YWNrZWR0ZXh0JywgJHRoaXMtPkxhbmcoJ2lzU3RhY2tlZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpczNEdGV4dCcsICR0aGlzLT5MYW5nKCdpczNEJykpOwokc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZHRleHQnLCAkdGhpcy0+TGFuZygnbGVnZW5kJykpOwokc21hcnR5LT5hc3NpZ24oJ2xpbmVXaWR0aHRleHQnLCAkdGhpcy0+TGFuZygnbGluZVdpZHRoJykpOwokc21hcnR5LT5hc3NpZ24oJ3NsaWNlc3RleHQnLCAkdGhpcy0+TGFuZygnc2xpY2VzJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlQm9yZGVyQ29sb3J0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVNsaWNlQm9yZGVyQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbigncGllU2xpY2VUZXh0dGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZVRleHQnKSk7CiRzbWFydHktPmFzc2lnbigncGllU2xpY2VUZXh0U3R5bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVNsaWNlVGV4dFN0eWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3BvaW50U2l6ZXRleHQnLCAkdGhpcy0+TGFuZygncG9pbnRTaXplJykpOwokc21hcnR5LT5hc3NpZ24oJ3JldmVyc2VDYXRlZ29yaWVzdGV4dCcsICR0aGlzLT5MYW5nKCdyZXZlcnNlQ2F0ZWdvcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZXJpZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3NlcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGR0ZXh0JywgJHRoaXMtPkxhbmcoJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdwaWVSZXNpZHVlU2xpY2VDb2xvcnRleHQnLCAkdGhpcy0+TGFuZygncGllUmVzaWR1ZVNsaWNlQ29sb3InKSk7CiRzbWFydHktPmFzc2lnbigncGllUmVzaWR1ZVNsaWNlTGFiZWx0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVJlc2lkdWVTbGljZUxhYmVsJykpOwokc21hcnR5LT5hc3NpZ24oJ3RoZW1ldGV4dCcsICR0aGlzLT5MYW5nKCd0aGVtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZXRleHQnLCAkdGhpcy0+TGFuZygndGl0bGUnKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVQb3NpdGlvbnRleHQnLCAkdGhpcy0+TGFuZygndGl0bGVQb3NpdGlvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZVRleHRTdHlsZXRleHQnLCAkdGhpcy0+TGFuZygndGl0bGVUZXh0U3R5bGUnKSk7CiRzbWFydHktPmFzc2lnbigndG9vbHRpcHRleHQnLCAkdGhpcy0+TGFuZygndG9vbHRpcCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd2QXhlc3RleHQnLCAkdGhpcy0+TGFuZygndkF4ZXMnKSk7CiRzbWFydHktPmFzc2lnbigndkF4aXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3ZBeGlzJykpOwokc21hcnR5LT5hc3NpZ24oJ3dpZHRodGV4dCcsICR0aGlzLT5MYW5nKCd3aWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdhZ2dyZWdhdGlvblRhcmdldHRleHQnLCAkdGhpcy0+TGFuZygnYWdncmVnYXRpb25UYXJnZXQnKSk7CiRzbWFydHktPmFzc2lnbignZ3JvdXBXaWR0aHRleHQnLCAkdGhpcy0+TGFuZygnZ3JvdXBXaWR0aCcpKTsKCi8vIHRhYiBzdHVmZi4KJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfaGVhZGVycycsJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpKTsKJHNtYXJ0eS0+YXNzaWduKCd0YWJoZWFkZXJfY2hhcnQnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NoYXJ0JywkdGhpcy0+TGFuZygnY2hhcnQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF90YWJfaGVhZGVycycsJHRoaXMtPkVuZFRhYkhlYWRlcnMoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3RhYl9jb250ZW50JywkdGhpcy0+U3RhcnRUYWJDb250ZW50KCkpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3RhYl9jaGFydCcsJHRoaXMtPlN0YXJ0VGFiKCdjaGFydCcsJHBhcmFtcykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF90YWJfY2hhcnQnLCR0aGlzLT5FbmRUYWIoKSk7CiRzbWFydHktPmFzc2lnbignZW5kX3RhYl9jb250ZW50JywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCiRzbWFydHktPmFzc2lnbignd2FybmluZ19wcmV2aWV3JywkdGhpcy0+TGFuZygnd2FybmluZ19wcmV2aWV3JykpOwokY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiRzbWFydHktPmFzc2lnbigncHJldmlld19yZXR1cm5pZCcsCgkJJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxfcmV0dXJuaWQnLC0xKSwKCQkJCQkJICAgICAncHJldmlld19yZXR1cm5pZCcpKTsKewogICR0bXAgPSAkdGhpcy0+TGlzdFRlbXBsYXRlcygpOwogICR0bXAyID0gYXJyYXkoKTsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCiAgICB7CiAgICAgIGlmKCBzdGFydHN3aXRoKCR0bXBbJGldLCdkZXRhaWwnKSApCgl7CgkgICR4ID0gc3Vic3RyKCR0bXBbJGldLDYpOwoJICAkdG1wMlskeF0gPSAkeDsKCX0KICAgIH0KICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWxfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdkZXRhaWxfdGVtcGxhdGUnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsX3BhZ2UnLCR0aGlzLT5MYW5nKCdkZXRhaWxfcGFnZScpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2RldGFpbF90ZW1wbGF0ZXMnLCR0bXAyKTsKICAkc21hcnR5LT5hc3NpZ24oJ2N1cl9kZXRhaWxfdGVtcGxhdGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW50X2RldGFpbF90ZW1wbGF0ZScpKTsKfQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjaGFydC50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLy8vLyBHTE9CQUxTIC8vLy8vCgokZ0NtcyA9IGNtc21zKCk7CiRzbWFydHkgPSAmJGdDbXMtPkdldFNtYXJ0eSgpOwokZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKCiRxdWVyeSA9ICdTRUxFQ1QgZ2NoYXJ0c19pZCwgZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19lbGVtZW50X2lkLCBnY2hhcnRzX25hbWUsIGdjaGFydHNfZGF0YSwgYXhpc1RpdGxlc1Bvc2l0aW9uLCBiYWNrZ3JvdW5kQ29sb3IsIGNoYXJ0QXJlYSwgY3VydmVUeXBlLCBjb2xvcnMsIGVuYWJsZUludGVyYWN0aXZpdHksIGZvY3VzVGFyZ2V0LCBmb250U2l6ZSwgZm9udE5hbWUsIGhBeGVzLCBoQXhpcywgaGVpZ2h0LCBpbnRlcnBvbGF0ZWROdWxscywgaXNIdG1sLCBpc1N0YWNrZWQsIGlzM0QsIGxlZ2VuZCwgbGluZVdpZHRoLCBzbGljZXMsIHBpZVNsaWNlQm9yZGVyQ29sb3IsIHBpZVNsaWNlVGV4dCwgcGllU2xpY2VUZXh0U3R5bGUsIHBvaW50U2l6ZSwgcmV2ZXJzZUNhdGVnb3JpZXMsIHNlcmllcywgc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkLCBwaWVSZXNpZHVlU2xpY2VDb2xvciwgcGllUmVzaWR1ZVNsaWNlTGFiZWwsIHRoZW1lLCB0aXRsZSwgdGl0bGVQb3NpdGlvbiwgdGl0bGVUZXh0U3R5bGUsIHRvb2x0aXAsIHZBeGVzLCB2QXhpcywgd2lkdGgsIHN0YXR1cywgYWdncmVnYXRpb25UYXJnZXQsIGdyb3VwV2lkdGggZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4KICAgJ21vZHVsZV9nY2hhcnRzJzsKCmlmIChpc3NldCgkcGFyYW1zWydnY2hhcnRzX2lkJ10pKQogICB7CiAgICRxdWVyeSAuPSAnIHdoZXJlIGdjaGFydHNfaWQgPSA/JzsKICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snZ2NoYXJ0c19pZCddKSk7CiAgICRtb2RlID0gJ2RldGFpbCc7IC8vIHdlJ3JlIHZpZXdpbmcgYSBzaW5nbGUgcmVjb3JkCiAgIH0KICAgCiRyZWNvcmRzID0gYXJyYXkoKTsKd2hpbGUgKCRyZXN1bHQgIT09IGZhbHNlICYmICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSkKICAgewogICAvLyBjcmVhdGUgYSBuZXcgb2JqZWN0IGZvciBldmVyeSByZWNvcmQgdGhhdCB3ZSByZXRyaWV2ZQogICAkcmVjID0gbmV3IHN0ZENsYXNzKCk7CiAgICRyZWMtPmlkID0gJHJvd1snZ2NoYXJ0c19pZCddOwogICAkcmVjLT5jYXRlZ29yeSA9ICRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfaWQnXTsKICAgJHJlYy0+bmFtZSA9ICRyb3dbJ2djaGFydHNfbmFtZSddOwogICAkcmVjLT5lbGVtZW50ID0gJHJvd1snZ2NoYXJ0c19lbGVtZW50X2lkJ107CiAgICRyZWMtPmRhdGEgPSAkcm93WydnY2hhcnRzX2RhdGEnXTsKICAgJHJlYy0+YmFja2dyb3VuZENvbG9yID0gJHJvd1snYmFja2dyb3VuZENvbG9yJ107CiAgICRyZWMtPmNoYXJ0QXJlYSA9ICRyb3dbJ2NoYXJ0QXJlYSddOwogICAkcmVjLT5jb2xvcnMgPSAkcm93Wydjb2xvcnMnXTsKICAgJHJlYy0+Zm9udFNpemUgPSAkcm93Wydmb250U2l6ZSddOwogICAkcmVjLT5mb250TmFtZSA9ICRyb3dbJ2ZvbnROYW1lJ107CiAgICRyZWMtPmhlaWdodCA9ICRyb3dbJ2hlaWdodCddOwogICAkcmVjLT5sZWdlbmQgPSAkcm93WydsZWdlbmQnXTsKICAgJHJlYy0+cmV2ZXJzZUNhdGVnb3JpZXMgPSAkcm93WydyZXZlcnNlQ2F0ZWdvcmllcyddOwogICAkcmVjLT50aXRsZVRleHRTdHlsZSA9ICRyb3dbJ3RpdGxlVGV4dFN0eWxlJ107CiAgICRyZWMtPnRvb2x0aXAgPSAkcm93Wyd0b29sdGlwJ107CiAgICRyZWMtPndpZHRoID0gJHJvd1snd2lkdGgnXTsKCiAgICRyZWMtPmlzM0QgPSAkcm93WydpczNEJ107CiAgICRyZWMtPnNsaWNlcyA9ICRyb3dbJ3NsaWNlcyddOwogICAkcmVjLT5waWVTbGljZUJvcmRlckNvbG9yID0gJHJvd1sncGllU2xpY2VCb3JkZXJDb2xvciddOwogICAkcmVjLT5waWVTbGljZVRleHQgPSAkcm93WydwaWVTbGljZVRleHQnXTsKICAgJHJlYy0+cGllU2xpY2VUZXh0U3R5bGUgPSAkcm93WydwaWVTbGljZVRleHRTdHlsZSddOwogICAkcmVjLT5zbGljZVZpc2liaWxpdHlUaHJlc2hvbGQgPSAkcm93WydzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnXTsKICAgJHJlYy0+cGllUmVzaWR1ZVNsaWNlQ29sb3IgPSAkcm93WydwaWVSZXNpZHVlU2xpY2VDb2xvciddOwogICAkcmVjLT5waWVSZXNpZHVlU2xpY2VMYWJlbCA9ICRyb3dbJ3BpZVJlc2lkdWVTbGljZUxhYmVsJ107CgogICAkcmVjLT5heGlzVGl0bGVzUG9zaXRpb24gPSAkcm93WydheGlzVGl0bGVzUG9zaXRpb24nXTsKICAgJHJlYy0+ZW5hYmxlSW50ZXJhY3Rpdml0eSA9ICRyb3dbJ2VuYWJsZUludGVyYWN0aXZpdHknXTsKICAgJHJlYy0+Zm9jdXNUYXJnZXQgPSAkcm93Wydmb2N1c1RhcmdldCddOwogICAkcmVjLT5oQXhpcyA9ICRyb3dbJ2hBeGlzJ107CiAgICRyZWMtPmlzSHRtbCA9ICRyb3dbJ2lzSHRtbCddOwogICAkcmVjLT5zZXJpZXMgPSAkcm93WydzZXJpZXMnXTsKICAgJHJlYy0+dGhlbWUgPSAkcm93Wyd0aGVtZSddOwogICAkcmVjLT50aXRsZVBvc2l0aW9uID0gJHJvd1sndGl0bGVQb3NpdGlvbiddOwoKICAgJHJlYy0+dkF4ZXMgPSAkcm93Wyd2QXhlcyddOwogICAkcmVjLT5hZ2dyZWdhdGlvblRhcmdldCA9ICRyb3dbJ2FnZ3JlZ2F0aW9uVGFyZ2V0J107CgogICAkcmVjLT5jdXJ2ZVR5cGUgPSAkcm93WydjdXJ2ZVR5cGUnXTsKICAgJHJlYy0+aW50ZXJwb2xhdGVkTnVsbHMgPSAkcm93WydpbnRlcnBvbGF0ZWROdWxscyddOwogICAkcmVjLT52QXhpcyA9ICRyb3dbJ3ZBeGlzJ107CiAgICRyZWMtPmxpbmVXaWR0aCA9ICRyb3dbJ2xpbmVXaWR0aCddOwogICAkcmVjLT5wb2ludFNpemUgPSAkcm93Wydwb2ludFNpemUnXTsKCiAgICRyZWMtPmlzU3RhY2tlZCA9ICRyb3dbJ2lzU3RhY2tlZCddOwoKICAgJHJlYy0+Z3JvdXBXaWR0aCA9ICRyb3dbJ2dyb3VwV2lkdGgnXTsKCiAgICRyZWMtPnRpdGxlID0gJHJvd1sndGl0bGUnXTsKICAgYXJyYXlfcHVzaCgkcmVjb3JkcywkcmVjKTsKICAgfQoKLy8gRXhwb3NlIHRoZSBsaXN0IHRvIHNtYXJ0eS4KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZWNvcmRzJywkcmVjb3Jkcyk7CgppZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSkpCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSk7CiAgIH0KZWxzZQogICB7CiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kdWxlX21lc3NhZ2UnLCcnKTsKICAgfQoKLy8vLy8gUFJPQ0VTUyBBTkQgRElTUExBWSBURU1QTEFURSAvLy8vLwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdnY2hhcnRzLnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgojCiNUaGUgdGFiIGhlYWRlcnMKIwplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCiAgewogICAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKICB9IGVsc2UgewogICR0YWIgPSAnJzsKIH0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBHQ2hhcnRzJykgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignY2hhcnRzJywkdGhpcy0+TGFuZygnY2hhcnRzJyksICgnY2hhcnRzJyA9PSAkdGFiKT90cnVlOmZhbHNlKTsKICB9CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCiMKI1RoZSBjb250ZW50IG9mIHRoZSB0YWJzCiMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR0NoYXJ0cycpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FwcHJvdmUgR0NoYXJ0cycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignY2hhcnRzJywgJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fY2hhcnRzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.editchart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEdDaGFydHMnKSApIGV4aXQ7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQogIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwogIH0KCiRjaGFydGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjaGFydGlkJ10pKQogIHsKCSRjaGFydGlkID0gJHBhcmFtc1snY2hhcnRpZCddOwogIH0KCiRkYXRhID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkYXRhJ10pKQogIHsKCSRkYXRhID0gJHBhcmFtc1snZGF0YSddOwogIH0KCiRzdGF0dXMgPSAnZHJhZnQnOwppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQXBwcm92ZSBHQ2hhcnRzJykgKQogIHsKICAgICRzdGF0dXMgPSAncHVibGlzaGVkJzsKICB9CmlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpCiAgewoJJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwogIH0KCgkkdXNlZGNhdGVnb3J5ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkpCgl7CgkgICR1c2VkY2F0ZWdvcnkgPSAkcGFyYW1zWydjYXRlZ29yeSddOwoJfQoKCSRuYW1lID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkKCXsKCSAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107Cgl9CgoJJGVsZW1lbnQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydlbGVtZW50J10pKQoJewoJICAkZWxlbWVudCA9ICRwYXJhbXNbJ2VsZW1lbnQnXTsKCX0KCgkkYXhpc1RpdGxlc1Bvc2l0aW9uID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snYXhpc1RpdGxlc1Bvc2l0aW9uJ10pKQoJewoJICAkYXhpc1RpdGxlc1Bvc2l0aW9uID0gJHBhcmFtc1snYXhpc1RpdGxlc1Bvc2l0aW9uJ107Cgl9CgoJJGJhY2tncm91bmRDb2xvciA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2JhY2tncm91bmRDb2xvciddKSkKCXsKCSAgJGJhY2tncm91bmRDb2xvciA9ICRwYXJhbXNbJ2JhY2tncm91bmRDb2xvciddOwoJfQoKCSRjaGFydEFyZWEgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydjaGFydEFyZWEnXSkpCgl7CgkgICRjaGFydEFyZWEgPSAkcGFyYW1zWydjaGFydEFyZWEnXTsKCX0KCgkkY29sb3JzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snY29sb3JzJ10pKQoJewoJICAkY29sb3JzID0gJHBhcmFtc1snY29sb3JzJ107Cgl9CgoJJGN1cnZlVHlwZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2N1cnZlVHlwZSddKSkKCXsKCSAgJGN1cnZlVHlwZSA9ICRwYXJhbXNbJ2N1cnZlVHlwZSddOwoJfQoKCSRlbmFibGVJbnRlcmFjdGl2aXR5ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZW5hYmxlSW50ZXJhY3Rpdml0eSddKSkKCXsKCSAgJGVuYWJsZUludGVyYWN0aXZpdHkgPSAkcGFyYW1zWydlbmFibGVJbnRlcmFjdGl2aXR5J107Cgl9CgoJJGZvY3VzVGFyZ2V0ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZm9jdXNUYXJnZXQnXSkpCgl7CgkgICRmb2N1c1RhcmdldCA9ICRwYXJhbXNbJ2ZvY3VzVGFyZ2V0J107Cgl9CgoJJGZvbnRTaXplID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZm9udFNpemUnXSkpCgl7CgkgICRmb250U2l6ZSA9ICRwYXJhbXNbJ2ZvbnRTaXplJ107Cgl9CgoJJGZvbnROYW1lID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snZm9udE5hbWUnXSkpCgl7CgkgICRmb250TmFtZSA9ICRwYXJhbXNbJ2ZvbnROYW1lJ107Cgl9CgoJJGhBeGVzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaEF4ZXMnXSkpCgl7CgkgICRoQXhlcyA9ICRwYXJhbXNbJ2hBeGVzJ107Cgl9CgoJJGhBeGlzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaEF4aXMnXSkpCgl7CgkgICRoQXhpcyA9ICRwYXJhbXNbJ2hBeGlzJ107Cgl9CgoJJGhlaWdodCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2hlaWdodCddKSkKCXsKCSAgJGhlaWdodCA9ICRwYXJhbXNbJ2hlaWdodCddOwoJfQoKCSRpc0h0bWwgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydpc0h0bWwnXSkpCgl7CgkgICRpc0h0bWwgPSAkcGFyYW1zWydpc0h0bWwnXTsKCX0KCgkkaXNTdGFja2VkID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snaXNTdGFja2VkJ10pKQoJewoJICAkaXNTdGFja2VkID0gJHBhcmFtc1snaXNTdGFja2VkJ107Cgl9CgoJJGlzM0QgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydpczNEJ10pKQoJewoJICAkaXMzRCA9ICRwYXJhbXNbJ2lzM0QnXTsKCX0KCgkkaW50ZXJwb2xhdGVkTnVsbHMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydpbnRlcnBvbGF0ZWROdWxscyddKSkKCXsKCSAgJGludGVycG9sYXRlZE51bGxzID0gJHBhcmFtc1snaW50ZXJwb2xhdGVkTnVsbHMnXTsKCX0KCgkkbGVnZW5kID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snbGVnZW5kJ10pKQoJewoJICAkbGVnZW5kID0gJHBhcmFtc1snbGVnZW5kJ107Cgl9CgoJJGxpbmVXaWR0aCA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2xpbmVXaWR0aCddKSkKCXsKCSAgJGxpbmVXaWR0aCA9ICRwYXJhbXNbJ2xpbmVXaWR0aCddOwoJfQoKCSRwb2ludFNpemUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwb2ludFNpemUnXSkpCgl7CgkgICRwb2ludFNpemUgPSAkcGFyYW1zWydwb2ludFNpemUnXTsKCX0KCgkkcGllUmVzaWR1ZVNsaWNlQ29sb3IgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVSZXNpZHVlU2xpY2VDb2xvciddKSkKCXsKCSAgJHBpZVJlc2lkdWVTbGljZUNvbG9yID0gJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlQ29sb3InXTsKCX0KCgkkcGllUmVzaWR1ZVNsaWNlTGFiZWwgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVSZXNpZHVlU2xpY2VMYWJlbCddKSkKCXsKCSAgJHBpZVJlc2lkdWVTbGljZUxhYmVsID0gJHBhcmFtc1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXTsKCX0KCgkkcGllU2xpY2VCb3JkZXJDb2xvciA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3BpZVNsaWNlQm9yZGVyQ29sb3InXSkpCgl7CgkgICRwaWVTbGljZUJvcmRlckNvbG9yID0gJHBhcmFtc1sncGllU2xpY2VCb3JkZXJDb2xvciddOwoJfQoKCSRwaWVTbGljZVRleHQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVTbGljZVRleHQnXSkpCgl7CgkgICRwaWVTbGljZVRleHQgPSAkcGFyYW1zWydwaWVTbGljZVRleHQnXTsKCX0KCgkkcGllU2xpY2VUZXh0U3R5bGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydwaWVTbGljZVRleHRTdHlsZSddKSkKCXsKCSAgJHBpZVNsaWNlVGV4dFN0eWxlID0gJHBhcmFtc1sncGllU2xpY2VUZXh0U3R5bGUnXTsKCX0KCgkkcmV2ZXJzZUNhdGVnb3JpZXMgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydyZXZlcnNlQ2F0ZWdvcmllcyddKSkKCXsKCSAgJHJldmVyc2VDYXRlZ29yaWVzID0gJHBhcmFtc1sncmV2ZXJzZUNhdGVnb3JpZXMnXTsKCX0KCgkkc2xpY2VzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snc2xpY2VzJ10pKQoJewoJICAkc2xpY2VzID0gJHBhcmFtc1snc2xpY2VzJ107Cgl9CgoJJHNlcmllcyA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3NlcmllcyddKSkKCXsKCSAgJHNlcmllcyA9ICRwYXJhbXNbJ3NlcmllcyddOwoJfQoKCSRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnXSkpCgl7CgkgICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQgPSAkcGFyYW1zWydzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnXTsKCX0KCgkkdGhlbWUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aGVtZSddKSkKCXsKCSAgJHRoZW1lID0gJHBhcmFtc1sndGhlbWUnXTsKCX0KCgkkdGl0bGUgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWyd0aXRsZSddKSkKCXsKCSAgJHRpdGxlID0gJHBhcmFtc1sndGl0bGUnXTsKCX0KCgkkdGl0bGVQb3NpdGlvbiA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3RpdGxlUG9zaXRpb24nXSkpCgl7CgkgICR0aXRsZVBvc2l0aW9uID0gJHBhcmFtc1sndGl0bGVQb3NpdGlvbiddOwoJfQoKCSR0aXRsZVRleHRTdHlsZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3RpdGxlVGV4dFN0eWxlJ10pKQoJewoJICAkdGl0bGVUZXh0U3R5bGUgPSAkcGFyYW1zWyd0aXRsZVRleHRTdHlsZSddOwoJfQoKCSR0b29sdGlwID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndG9vbHRpcCddKSkKCXsKCSAgJHRvb2x0aXAgPSAkcGFyYW1zWyd0b29sdGlwJ107Cgl9CgoJJHZBeGVzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndkF4ZXMnXSkpCgl7CgkgICR2QXhlcyA9ICRwYXJhbXNbJ3ZBeGVzJ107Cgl9CgoJJHZBeGlzID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1sndkF4aXMnXSkpCgl7CgkgICR2QXhpcyA9ICRwYXJhbXNbJ3ZBeGlzJ107Cgl9CgoJJHdpZHRoID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snd2lkdGgnXSkpCgl7CgkgICR3aWR0aCA9ICRwYXJhbXNbJ3dpZHRoJ107Cgl9CgoJJGFnZ3JlZ2F0aW9uVGFyZ2V0ID0gJyc7CglpZiAoaXNzZXQoJHBhcmFtc1snYWdncmVnYXRpb25UYXJnZXQnXSkpCgl7CgkgICRhZ2dyZWdhdGlvblRhcmdldCA9ICRwYXJhbXNbJ2FnZ3JlZ2F0aW9uVGFyZ2V0J107Cgl9CgoJJGdyb3VwV2lkdGggPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydncm91cFdpZHRoJ10pKQoJewoJICAkZ3JvdXBXaWR0aCA9ICRwYXJhbXNbJ2dyb3VwV2lkdGgnXTsKCX0KCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgKQogIHsKICAgICRlcnJvciA9IEZBTFNFOwogICAgaWYoIGVtcHR5KCRuYW1lKSApCiAgICAgIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpOwogICAgICB9CiAgICBlbHNlIGlmKCBlbXB0eSgkZGF0YSkgKQogICAgICB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnbm9kYXRhZ2l2ZW4nKTsKICAgICAgfQoKICAgIGlmKCAhJGVycm9yICkKICAgICAgewoKCS8vIAoJLy8gZGF0YWJhc2Ugd29yawoJLy8KCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzIFNFVCBnY2hhcnRzX2NhdGVnb3J5X2lkID0gPywgZ2NoYXJ0c19lbGVtZW50X2lkID0gPywgZ2NoYXJ0c19uYW1lID0gPywgZ2NoYXJ0c19kYXRhID0gPywgYXhpc1RpdGxlc1Bvc2l0aW9uID0gPywgYmFja2dyb3VuZENvbG9yID0gPywgY3VydmVUeXBlID0gPywgY2hhcnRBcmVhID0gPywgY29sb3JzID0gPywgZW5hYmxlSW50ZXJhY3Rpdml0eSA9ID8sIGZvY3VzVGFyZ2V0ID0gPywgZm9udFNpemUgPSA/LCBmb250TmFtZSA9ID8sIGhBeGVzID0gPywgaEF4aXMgPSA/LCBoZWlnaHQgPSA/LCBpbnRlcnBvbGF0ZWROdWxscyA9ID8sIGlzSHRtbCA9ID8sIGlzU3RhY2tlZCA9ID8sIGlzM0QgPSA/LCBsZWdlbmQgPSA/LCBsaW5lV2lkdGggPSA/LCBzbGljZXMgPSA/LCBwaWVTbGljZUJvcmRlckNvbG9yID0gPywgcGllU2xpY2VUZXh0ID0gPywgcGllU2xpY2VUZXh0U3R5bGUgPSA/LCBwb2ludFNpemUgPSA/LCByZXZlcnNlQ2F0ZWdvcmllcyA9ID8sIHNlcmllcyA9ID8sIHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCA9ID8sIHBpZVJlc2lkdWVTbGljZUNvbG9yID0gPywgcGllUmVzaWR1ZVNsaWNlTGFiZWwgPSA/LCB0aGVtZSA9ID8sIHRpdGxlID0gPywgdGl0bGVQb3NpdGlvbiA9ID8sIHRpdGxlVGV4dFN0eWxlID0gPywgdG9vbHRpcCA9ID8sIHZBeGVzID0gPywgdkF4aXMgPSA/LCB3aWR0aCA9ID8sIGFnZ3JlZ2F0aW9uVGFyZ2V0ID0gPywgZ3JvdXBXaWR0aCA9ID8gV0hFUkUgZ2NoYXJ0c19pZCA9ID8nOwoJICAgCQkJCQoJICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIAoJCQkgYXJyYXkoJHVzZWRjYXRlZ29yeSwgJGVsZW1lbnQsICRuYW1lLCAkZGF0YSwgJGF4aXNUaXRsZXNQb3NpdGlvbiwgJGJhY2tncm91bmRDb2xvciwgJGN1cnZlVHlwZSwgJGNoYXJ0QXJlYSwgJGNvbG9ycywgJGVuYWJsZUludGVyYWN0aXZpdHksICRmb2N1c1RhcmdldCwgJGZvbnRTaXplLCAkZm9udE5hbWUsICRoQXhlcywgJGhBeGlzLCAkaGVpZ2h0LCAkaW50ZXJwb2xhdGVkTnVsbHMsICRpc0h0bWwsICRpc1N0YWNrZWQsICRpczNELCAkbGVnZW5kLCAkbGluZVdpZHRoLCAkc2xpY2VzLCAkcGllU2xpY2VCb3JkZXJDb2xvciwgJHBpZVNsaWNlVGV4dCwgJHBpZVNsaWNlVGV4dFN0eWxlLCAkcG9pbnRTaXplLCAkcmV2ZXJzZUNhdGVnb3JpZXMsICRzZXJpZXMsICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQsICRwaWVSZXNpZHVlU2xpY2VDb2xvciwgJHBpZVJlc2lkdWVTbGljZUxhYmVsLCAkdGhlbWUsICR0aXRsZSwgJHRpdGxlUG9zaXRpb24sICR0aXRsZVRleHRTdHlsZSwgJHRvb2x0aXAsICR2QXhlcywgJHZBeGlzLCAkd2lkdGgsICRhZ2dyZWdhdGlvblRhcmdldCwgJGdyb3VwV2lkdGgsICRjaGFydGlkKSk7CgoJLy9VcGRhdGUgc2VhcmNoIGluZGV4CglpZiggISRlcnJvciApCgkgIHsKCSAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwoJICAgIGlmIChpc19vYmplY3QoJG1vZHVsZSkgKQoJICAgICAgewoJCWlmKCAkc3RhdHVzID09ICdkcmFmdCcgKQoJCSAgewoJCSAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCRjaGFydGlkLCdjaGFydCcpOwoJCSAgfQoJCWVsc2UKCQkgIHsKCQkgICAgJHRleHQgPSAnJzsKCQkgICAgJHRleHQgLj0gJGRhdGEuJyAnLiRuYW1lLicgJy4kbmFtZTsKCQkgICAgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGNoYXJ0aWQsICdjaGFydCcsICR0ZXh0KTsKCQkgIH0KCSAgICAgIH0KCQoJICAgIEAkdGhpcy0+U2VuZEV2ZW50KCdHQ2hhcnRDaGFydEVkaXRlZCcsIGFycmF5KCdnY2hhcnRzX2lkJyA9PiAkY2hhcnRpZCwgJ2djaGFydHNfY2F0ZWdvcnlfaWQnID0+ICR1c2VkY2F0ZWdvcnksICduYW1lJyA9PiAkbmFtZSwgJ2RhdGEnID0+ICRkYXRhLCAnYXhpc1RpdGxlc1Bvc2l0aW9uJyA9PiAkYXhpc1RpdGxlc1Bvc2l0aW9uLCAnYmFja2dyb3VuZENvbG9yJyA9PiAkYmFja2dyb3VuZENvbG9yLCAnY3VydmVUeXBlJyA9PiAkY3VydmVUeXBlLCAnY2hhcnRBcmVhJyA9PiAkY2hhcnRBcmVhLCAnY29sb3JzJyA9PiAkY29sb3JzLCAnZW5hYmxlSW50ZXJhY3Rpdml0eScgPT4gJGVuYWJsZUludGVyYWN0aXZpdHksICdmb2N1c1RhcmdldCcgPT4gJGZvY3VzVGFyZ2V0LCAnZm9udFNpemUnID0+ICRmb250U2l6ZSwgJ2ZvbnROYW1lJyA9PiAkZm9udE5hbWUsICdoQXhlcycgPT4gJGhBeGVzLCAnaEF4aXMnID0+ICRoQXhpcywgJ2hlaWdodCcgPT4gJGhlaWdodCwgJ2ludGVycG9sYXRlZE51bGxzJyA9PiAkaW50ZXJwb2xhdGVkTnVsbHMsICdpc0h0bWwnID0+ICRpc0h0bWwsICdpc1N0YWNrZWQnID0+ICRpc1N0YWNrZWQsICdpczNEJyA9PiAkaXMzRCwgJ2xlZ2VuZCcgPT4gJGxlZ2VuZCwgJ2xpbmVXaWR0aCcgPT4gJGxpbmVXaWR0aCwgJ3NsaWNlcycgPT4gJHNsaWNlcywgJ3BpZVNsaWNlQm9yZGVyQ29sb3InID0+ICRwaWVTbGljZUJvcmRlckNvbG9yLCAncGllU2xpY2VUZXh0JyA9PiAkcGllU2xpY2VUZXh0LCAncGllU2xpY2VUZXh0U3R5bGUnID0+ICRwaWVTbGljZVRleHRTdHlsZSwgJ3BvaW50U2l6ZScgPT4gJHBvaW50U2l6ZSwgJ3JldmVyc2VDYXRlZ29yaWVzJyA9PiAkcmV2ZXJzZUNhdGVnb3JpZXMsICdzZXJpZXMnID0+ICRzZXJpZXMsICdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnID0+ICRzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQsICdwaWVSZXNpZHVlU2xpY2VDb2xvcicgPT4gJHBpZVJlc2lkdWVTbGljZUNvbG9yLCAncGllUmVzaWR1ZVNsaWNlTGFiZWwnID0+ICRwaWVSZXNpZHVlU2xpY2VMYWJlbCwgJ3RoZW1lJyA9PiAkdGhlbWUsICd0aXRsZScgPT4gJHRpdGxlLCAndGl0bGVQb3NpdGlvbicgPT4gJHRpdGxlUG9zaXRpb24sICd0aXRsZVRleHRTdHlsZScgPT4gJHRpdGxlVGV4dFN0eWxlLCAndG9vbHRpcCcgPT4gJHRvb2x0aXAsICd2QXhlcycgPT4gJHZBeGVzLCAndkF4aXMnID0+ICR2QXhpcywgJ3dpZHRoJyA9PiAkd2lkdGgsICdhZ2dyZWdhdGlvblRhcmdldCcgPT4gJGFnZ3JlZ2F0aW9uVGFyZ2V0LCAnZ3JvdXBXaWR0aCcgPT4gJGdyb3VwV2lkdGgsICdzdGF0dXMnID0+ICRzdGF0dXMpKTsKCQkJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCWF1ZGl0KCRjaGFydGlkLCAnR0NoYXJ0czogJy4kY2hhcnRpZCwgJ0NoYXJ0IGVkaXRlZCcpOwoJICB9CgogICAgICB9IC8vIGVsc2UgaWYgbm8gZXJyb3IKCiAgICBpZiggaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSApCiAgICAgIHsKCSRyZXNwb25zZSA9ICc8RWRpdENoYXJ0Pic7CglpZiggJGVycm9yICE9ICcnICkKCSAgewoJICAgICRyZXNwb25zZSAuPSAnPFJlc3BvbnNlPkVycm9yPC9SZXNwb25zZT4nOwoJICAgICRyZXNwb25zZSAuPSAnPERldGFpbHM+PCFbQ0RBVEFbJy4kZXJyb3IuJ11dPjwvRGV0YWlscz4nOwoJICB9CgllbHNlCgkgIHsKCSAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5TdWNjZXNzPC9SZXNwb25zZT4nOwogICAgICAgICAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWycuJHRoaXMtPkxhbmcoJ2NoYXJ0dXBkYXRlZCcpLiddXT48L0RldGFpbHM+JzsKCSAgfQoJJHJlc3BvbnNlIC49ICc8L0VkaXRDaGFydD4nOwoJZWNobyAkcmVzcG9uc2U7CglyZXR1cm47CiAgICAgIH0KCiAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICYmICEkZXJyb3IgKQogICAgICB7CgkvLyByZWRpcmVjdCBvdXQgbyBoZXJlLgoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2hhcnR1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdjaGFydHMnKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJcmV0dXJuOwogICAgICB9CgogICAgaWYoICRlcnJvciApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9yKTsKICAgICAgfQogIH0gLy8gc3VibWl0IG9yIGFwcGx5CmVsc2UKICB7CiAgICAvLyAKICAgIC8vIExvYWQgZGF0YSBmcm9tIGRhdGFiYXNlCiAgICAvLwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzIFdIRVJFIGdjaGFydHNfaWQgPSA/JzsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjaGFydGlkKSk7CiAgICAKICAgIGlmICgkcm93KQogICAgICB7CgkkbmFtZSA9ICRyb3dbJ2djaGFydHNfbmFtZSddOwoJJGVsZW1lbnQgPSAkcm93WydnY2hhcnRzX2VsZW1lbnRfaWQnXTsKCSRkYXRhID0gJHJvd1snZ2NoYXJ0c19kYXRhJ107CiRheGlzVGl0bGVzUG9zaXRpb24gPSAkcm93WydheGlzVGl0bGVzUG9zaXRpb24nXTsKJGJhY2tncm91bmRDb2xvciA9ICRyb3dbJ2JhY2tncm91bmRDb2xvciddOwokY3VydmVUeXBlID0gJHJvd1snY3VydmVUeXBlJ107CiRjaGFydEFyZWEgPSAkcm93WydjaGFydEFyZWEnXTsKJGNvbG9ycyA9ICRyb3dbJ2NvbG9ycyddOwokZW5hYmxlSW50ZXJhY3Rpdml0eSA9ICRyb3dbJ2VuYWJsZUludGVyYWN0aXZpdHknXTsKJGZvY3VzVGFyZ2V0ID0gJHJvd1snZm9jdXNUYXJnZXQnXTsKJGZvbnRTaXplID0gJHJvd1snZm9udFNpemUnXTsKJGZvbnROYW1lID0gJHJvd1snZm9udE5hbWUnXTsKJGhBeGVzID0gJHJvd1snaEF4ZXMnXTsKJGhBeGlzID0gJHJvd1snaEF4aXMnXTsKJGhlaWdodCA9ICRyb3dbJ2hlaWdodCddOwokaW50ZXJwb2xhdGVkTnVsbHMgPSAkcm93WydpbnRlcnBvbGF0ZWROdWxscyddOwokaXNIdG1sID0gJHJvd1snaXNIdG1sJ107CiRpc1N0YWNrZWQgPSAkcm93Wydpc1N0YWNrZWQnXTsKJGlzM0QgPSAkcm93WydpczNEJ107CiRsZWdlbmQgPSAkcm93WydsZWdlbmQnXTsKJGxpbmVXaWR0aCA9ICRyb3dbJ2xpbmVXaWR0aCddOwokc2xpY2VzID0gJHJvd1snc2xpY2VzJ107CiRwaWVTbGljZUJvcmRlckNvbG9yID0gJHJvd1sncGllU2xpY2VCb3JkZXJDb2xvciddOwokcGllU2xpY2VUZXh0ID0gJHJvd1sncGllU2xpY2VUZXh0J107CiRwaWVTbGljZVRleHRTdHlsZSA9ICRyb3dbJ3BpZVNsaWNlVGV4dFN0eWxlJ107CiRwb2ludFNpemUgPSAkcm93Wydwb2ludFNpemUnXTsKJHJldmVyc2VDYXRlZ29yaWVzID0gJHJvd1sncmV2ZXJzZUNhdGVnb3JpZXMnXTsKJHNlcmllcyA9ICRyb3dbJ3NlcmllcyddOwokc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkID0gJHJvd1snc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJ107CiRwaWVSZXNpZHVlU2xpY2VDb2xvciA9ICRyb3dbJ3BpZVJlc2lkdWVTbGljZUNvbG9yJ107CiRwaWVSZXNpZHVlU2xpY2VMYWJlbCA9ICRyb3dbJ3BpZVJlc2lkdWVTbGljZUxhYmVsJ107CiR0aGVtZSA9ICRyb3dbJ3RoZW1lJ107CiR0aXRsZSA9ICRyb3dbJ3RpdGxlJ107CiR0aXRsZVBvc2l0aW9uID0gJHJvd1sndGl0bGVQb3NpdGlvbiddOwokdGl0bGVUZXh0U3R5bGUgPSAkcm93Wyd0aXRsZVRleHRTdHlsZSddOwokdG9vbHRpcCA9ICRyb3dbJ3Rvb2x0aXAnXTsKJHZBeGVzID0gJHJvd1sndkF4ZXMnXTsKJHZBeGlzID0gJHJvd1sndkF4aXMnXTsKJHdpZHRoID0gJHJvd1snd2lkdGgnXTsKJGFnZ3JlZ2F0aW9uVGFyZ2V0ID0gJHJvd1snYWdncmVnYXRpb25UYXJnZXQnXTsKJGdyb3VwV2lkdGggPSAkcm93Wydncm91cFdpZHRoJ107Cgkkc3RhdHVzID0gJHJvd1snc3RhdHVzJ107CgkkdXNlZGNhdGVnb3J5ID0gJHJvd1snZ2NoYXJ0c19jYXRlZ29yeV9pZCddOwogICAgICB9CiAgfQoKJHN0YXR1c2Ryb3Bkb3duID0gYXJyYXkoKTsKJHN0YXR1c2Ryb3Bkb3duWyR0aGlzLT5MYW5nKCdkcmFmdCcpXSA9ICdkcmFmdCc7CiRzdGF0dXNkcm9wZG93blskdGhpcy0+TGFuZygncHVibGlzaGVkJyldID0gJ3B1Ymxpc2hlZCc7CgokY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgT1JERVIgQlkgaGllcmFyY2h5IjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7Cgp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgewoJJGNhdGVnb3J5bGlzdFskcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXV0gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107CiAgfQoKI0Rpc3BsYXkgdGVtcGxhdGUKCSRzbWFydHktPmFzc2lnbignY3VycmNhdCcsICR1c2VkY2F0ZWdvcnkpOwoJJHNtYXJ0eS0+YXNzaWduKCdmb3JtaWQnLCRpZCk7Cgkkc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdGNoYXJ0JywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCSRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVsZW1lbnQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2VsZW1lbnQnLCAkZWxlbWVudCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRhdGEnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwgJGRhdGEsICdkYXRhJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGF4aXNUaXRsZXNQb3NpdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYXhpc1RpdGxlc1Bvc2l0aW9uJywgJGF4aXNUaXRsZXNQb3NpdGlvbiwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGJhY2tncm91bmRDb2xvcicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYmFja2dyb3VuZENvbG9yJywgJGJhY2tncm91bmRDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNoYXJ0QXJlYScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2hhcnRBcmVhJywgJGNoYXJ0QXJlYSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNvbG9ycycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY29sb3JzJywgJGNvbG9ycywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGN1cnZlVHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VydmVUeXBlJywgJGN1cnZlVHlwZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVuYWJsZUludGVyYWN0aXZpdHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2VuYWJsZUludGVyYWN0aXZpdHknLCAkZW5hYmxlSW50ZXJhY3Rpdml0eSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvY3VzVGFyZ2V0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb2N1c1RhcmdldCcsICRmb2N1c1RhcmdldCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvbnRTaXplJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb250U2l6ZScsICRmb250U2l6ZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGZvbnROYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb250TmFtZScsICRmb250TmFtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhBeGVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoQXhlcycsICRoQXhlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhBeGlzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoQXhpcycsICRoQXhpcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhlaWdodCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaGVpZ2h0JywgJGhlaWdodCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGludGVycG9sYXRlZE51bGxzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpbnRlcnBvbGF0ZWROdWxscycsICRpbnRlcnBvbGF0ZWROdWxscywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzSHRtbCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXNIdG1sJywgJGlzSHRtbCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzU3RhY2tlZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXNTdGFja2VkJywgJGlzU3RhY2tlZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGlzM0QnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lzM0QnLCAkaXMzRCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxlZ2VuZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGVnZW5kJywgJGxlZ2VuZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxpbmVXaWR0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGluZVdpZHRoJywgJGxpbmVXaWR0aCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNsaWNlcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2xpY2VzJywgJHNsaWNlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlQm9yZGVyQ29sb3InLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BpZVNsaWNlQm9yZGVyQ29sb3InLCAkcGllU2xpY2VCb3JkZXJDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlVGV4dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncGllU2xpY2VUZXh0JywgJHBpZVNsaWNlVGV4dCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVNsaWNlVGV4dFN0eWxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVTbGljZVRleHRTdHlsZScsICRwaWVTbGljZVRleHRTdHlsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBvaW50U2l6ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncG9pbnRTaXplJywgJHBvaW50U2l6ZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHJldmVyc2VDYXRlZ29yaWVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdyZXZlcnNlQ2F0ZWdvcmllcycsICRyZXZlcnNlQ2F0ZWdvcmllcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNlcmllcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2VyaWVzJywgJHNlcmllcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkJywgJHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVJlc2lkdWVTbGljZUNvbG9yJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVSZXNpZHVlU2xpY2VDb2xvcicsICRwaWVSZXNpZHVlU2xpY2VDb2xvciwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHBpZVJlc2lkdWVTbGljZUxhYmVsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwaWVSZXNpZHVlU2xpY2VMYWJlbCcsICRwaWVSZXNpZHVlU2xpY2VMYWJlbCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRoZW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aGVtZScsICR0aGVtZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZScsICR0aXRsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlUG9zaXRpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlUG9zaXRpb24nLCAkdGl0bGVQb3NpdGlvbiwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRpdGxlVGV4dFN0eWxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZVRleHRTdHlsZScsICR0aXRsZVRleHRTdHlsZSwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRvb2x0aXAnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3Rvb2x0aXAnLCAkdG9vbHRpcCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHZBeGVzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd2QXhlcycsICR2QXhlcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHZBeGlzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd2QXhpcycsICR2QXhpcywgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHdpZHRoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd3aWR0aCcsICR3aWR0aCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGFnZ3JlZ2F0aW9uVGFyZ2V0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhZ2dyZWdhdGlvblRhcmdldCcsICRhZ2dyZWdhdGlvblRhcmdldCwgMzAsIDI1NSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGdyb3VwV2lkdGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2dyb3VwV2lkdGgnLCAkZ3JvdXBXaWR0aCwgMzAsIDI1NSkpOwoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FwcHJvdmUgR0NoYXJ0cycpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCBsYW5nKCdzdGF0dXMnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3N0YXR1cycsICRzdGF0dXNkcm9wZG93biwgLTEsICRzdGF0dXMpKTsKICB9CiBlbHNlCiAgIHsKCSAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc3RhdHVzJywkc3RhdHVzKSk7CiAgIH0KCSRzbWFydHktPmFzc2lnbignaW5wdXRjYXRlZ29yeScsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2NhdGVnb3J5JywgJGNhdGVnb3J5bGlzdCwgLTEsICR1c2VkY2F0ZWdvcnksICdpZD0iY2hhcnRDYXRlZ29yeSInKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjaGFydGlkJywgJGNoYXJ0aWQpKTsKCSRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSkpOwoJJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCSRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKCSRzbWFydHktPmFzc2lnbignZWxlbWVudHRleHQnLCAkdGhpcy0+TGFuZygnZWxlbWVudCcpKTsKCSRzbWFydHktPmFzc2lnbignY2F0ZWdvcnl0ZXh0JywgJHRoaXMtPkxhbmcoJ2NhdGVnb3J5JykpOwoJJHNtYXJ0eS0+YXNzaWduKCdkYXRhdGV4dCcsICR0aGlzLT5MYW5nKCdkYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2F4aXNUaXRsZXNQb3NpdGlvbnRleHQnLCAkdGhpcy0+TGFuZygnYXhpc1RpdGxlc1Bvc2l0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ2JhY2tncm91bmRDb2xvcnRleHQnLCAkdGhpcy0+TGFuZygnYmFja2dyb3VuZENvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ2NoYXJ0QXJlYXRleHQnLCAkdGhpcy0+TGFuZygnY2hhcnRBcmVhJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbG9yc3RleHQnLCAkdGhpcy0+TGFuZygnY29sb3JzJykpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnZlVHlwZXRleHQnLCAkdGhpcy0+TGFuZygnY3VydmVUeXBlJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuYWJsZUludGVyYWN0aXZpdHl0ZXh0JywgJHRoaXMtPkxhbmcoJ2VuYWJsZUludGVyYWN0aXZpdHknKSk7CiRzbWFydHktPmFzc2lnbignZm9jdXNUYXJnZXR0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvY3VzVGFyZ2V0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvbnRTaXpldGV4dCcsICR0aGlzLT5MYW5nKCdmb250U2l6ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb250TmFtZXRleHQnLCAkdGhpcy0+TGFuZygnZm9udE5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaEF4ZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2hBeGVzJykpOwokc21hcnR5LT5hc3NpZ24oJ2hBeGlzdGV4dCcsICR0aGlzLT5MYW5nKCdoQXhpcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdoZWlnaHR0ZXh0JywgJHRoaXMtPkxhbmcoJ2hlaWdodCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnRlcnBvbGF0ZWROdWxsc3RleHQnLCAkdGhpcy0+TGFuZygnaW50ZXJwb2xhdGVkTnVsbHMnKSk7CiRzbWFydHktPmFzc2lnbignaXNIdG1sdGV4dCcsICR0aGlzLT5MYW5nKCdpc0h0bWwnKSk7CiRzbWFydHktPmFzc2lnbignaXNTdGFja2VkdGV4dCcsICR0aGlzLT5MYW5nKCdpc1N0YWNrZWQnKSk7CiRzbWFydHktPmFzc2lnbignaXMzRHRleHQnLCAkdGhpcy0+TGFuZygnaXMzRCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmR0ZXh0JywgJHRoaXMtPkxhbmcoJ2xlZ2VuZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsaW5lV2lkdGh0ZXh0JywgJHRoaXMtPkxhbmcoJ2xpbmVXaWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbGljZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3NsaWNlcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdwaWVTbGljZUJvcmRlckNvbG9ydGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZUJvcmRlckNvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlVGV4dHRleHQnLCAkdGhpcy0+TGFuZygncGllU2xpY2VUZXh0JykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlVGV4dFN0eWxldGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZVRleHRTdHlsZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwb2ludFNpemV0ZXh0JywgJHRoaXMtPkxhbmcoJ3BvaW50U2l6ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXZlcnNlQ2F0ZWdvcmllc3RleHQnLCAkdGhpcy0+TGFuZygncmV2ZXJzZUNhdGVnb3JpZXMnKSk7CiRzbWFydHktPmFzc2lnbignc2VyaWVzdGV4dCcsICR0aGlzLT5MYW5nKCdzZXJpZXMnKSk7CiRzbWFydHktPmFzc2lnbignc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkdGV4dCcsICR0aGlzLT5MYW5nKCdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnKSk7CiRzbWFydHktPmFzc2lnbigncGllUmVzaWR1ZVNsaWNlQ29sb3J0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVJlc2lkdWVTbGljZUNvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVJlc2lkdWVTbGljZUxhYmVsdGV4dCcsICR0aGlzLT5MYW5nKCdwaWVSZXNpZHVlU2xpY2VMYWJlbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aGVtZXRleHQnLCAkdGhpcy0+TGFuZygndGhlbWUnKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3RpdGxlUG9zaXRpb250ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlUG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVUZXh0U3R5bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlVGV4dFN0eWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3Rvb2x0aXB0ZXh0JywgJHRoaXMtPkxhbmcoJ3Rvb2x0aXAnKSk7CiRzbWFydHktPmFzc2lnbigndkF4ZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3ZBeGVzJykpOwokc21hcnR5LT5hc3NpZ24oJ3ZBeGlzdGV4dCcsICR0aGlzLT5MYW5nKCd2QXhpcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd3aWR0aHRleHQnLCAkdGhpcy0+TGFuZygnd2lkdGgnKSk7CiRzbWFydHktPmFzc2lnbignYWdncmVnYXRpb25UYXJnZXR0ZXh0JywgJHRoaXMtPkxhbmcoJ2FnZ3JlZ2F0aW9uVGFyZ2V0JykpOwokc21hcnR5LT5hc3NpZ24oJ2dyb3VwV2lkdGh0ZXh0JywgJHRoaXMtPkxhbmcoJ2dyb3VwV2lkdGgnKSk7CgoKLy8gdGFiIHN0dWZmLgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3RhYl9oZWFkZXJzJywkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYmhlYWRlcl9jaGFydCcsJHRoaXMtPlNldFRhYkhlYWRlcignY2hhcnQnLCR0aGlzLT5MYW5nKCdjaGFydCcpKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX3ByZXZpZXcnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZXZpZXcnLCR0aGlzLT5MYW5nKCdwcmV2aWV3JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2hlYWRlcnMnLCR0aGlzLT5FbmRUYWJIZWFkZXJzKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfZGF0YScsJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfY2hhcnQnLCR0aGlzLT5TdGFydFRhYignY2hhcnQnLCRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2NoYXJ0JywkdGhpcy0+RW5kVGFiKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF90YWJfZGF0YScsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3dhcm5pbmdfcHJldmlldycsJHRoaXMtPkxhbmcoJ3dhcm5pbmdfcHJldmlldycpKTsKJGRhdGFvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwokc21hcnR5LT5hc3NpZ24oJ3ByZXZpZXdfcmV0dXJuaWQnLAoJCSRkYXRhb3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlsX3JldHVybmlkJywtMSksCgkJCQkJCSAgICAgJ3ByZXZpZXdfcmV0dXJuaWQnKSk7CnsKICAkdG1wID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKICAkdG1wMiA9IGFycmF5KCk7CiAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQogICAgewogICAgICBpZiggc3RhcnRzd2l0aCgkdG1wWyRpXSwnZGV0YWlsJykgKQoJewoJICAkeCA9IHN1YnN0cigkdG1wWyRpXSw2KTsKCSAgJHRtcDJbJHhdID0gJHg7Cgl9CiAgICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnZGV0YWlsX3RlbXBsYXRlJykpOwogICRzbWFydHktPmFzc2lnbigncHJvbXB0X2RldGFpbF9wYWdlJywkdGhpcy0+TGFuZygnZGV0YWlsX3BhZ2UnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxfdGVtcGxhdGVzJywkdG1wMik7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJfZGV0YWlsX3RlbXBsYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVudF9kZXRhaWxfdGVtcGxhdGUnKSk7Cn0KCi8vIGFuZCBkaXNwbGF5IHRoZSB0ZW1wbGF0ZS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2hhcnQudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_chartstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdkZWZhdWx0YWRtaW4nKSk7ICAKCQokYWxsY2F0ZWdvcmllcyA9IChpc3NldCgkcGFyYW1zWydhbGxjYXRlZ29yaWVzJ10pPyRwYXJhbXNbJ2FsbGNhdGVnb3JpZXMnXTonbm8nKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXRfbWFzc2RlbGV0ZSddKSApCiAgewogICAgaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdEZWxldGUgR0NoYXJ0cycpKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgR0NoYXJ0cycpKSk7CiAgICAgIH0KICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3NlbCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydzZWwnXSkgJiYKCWNvdW50KCRwYXJhbXNbJ3NlbCddKSA+IDAgKQogICAgICB7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtc1snc2VsJ10gYXMgJGdjaGFydHNfaWQgKQoJICB7CgkgICAgZ2NoYXJ0c19hZG1pbl9vcHM6OmRlbGV0ZV9jaGFydCggJGdjaGFydHNfaWQgKTsKCSAgfQogICAgICB9CiAgfQplbHNlIGlmIChpc3NldCgkcGFyYW1zWydzdWJtaXRfcmVhc3NpZ24nXSkgKQogIHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzZWwnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snc2VsJ10pICYmCgljb3VudCgkcGFyYW1zWydzZWwnXSkgPiAwICkKICAgICAgewoJJHRtcCA9IHN0cl9yZXBlYXQoJz8sJyxjb3VudCgkcGFyYW1zWydzZWwnXSkpOwoJJHRtcCA9IHN1YnN0cigkdG1wLDAsc3RybGVuKCR0bXApLTEpOwoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHMgU0VUIGdjaGFydHNfY2F0ZWdvcnlfaWQgPSA/IFdIRVJFIGdjaGFydHNfaWQgSU4gKCcuJHRtcC4nKSc7CgkkcGFybXMgPSBhcnJheSgkcGFyYW1zWydjYXRlZ29yeSddKTsKCWZvcmVhY2goICRwYXJhbXNbJ3NlbCddICBhcyAkcCApICRwYXJtc1tdID0gJHA7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCRwYXJtcyk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfbm9jaGFydHNzZWxlY3RlZCcpKTsKICAgICAgfQogIH0KCiRjYXRlZ29yeWxpc3QgPSBhcnJheSgpOwokY2F0ZWdvcnlsaXN0WyR0aGlzLT5MYW5nKCdhbGxjYXRlZ29yaWVzJyldID0gJyc7CiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJGN1cmNhdGVnb3J5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NoYXJ0X2NhdGVnb3J5Jyk7CiRwYWdlbGltaXQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2hhcnRfcGFnZWxpbWl0JywyNSk7CiRwYWdlbnVtYmVyID0gMTsKaWYoIGlzc2V0KCAkcGFyYW1zWydwYWdlbnVtYmVyJ10gKSApCiAgewogICAgJHBhZ2VudW1iZXIgPSAkcGFyYW1zWydwYWdlbnVtYmVyJ107CiAgfQokc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyLTEpICogJHBhZ2VsaW1pdDsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjaGFydF9zb3J0YnknLCdnY2hhcnRzX25hbWUgREVTQycpOwokc29ydGxpc3QgPSBhcnJheSgpOwokc29ydGxpc3RbJHRoaXMtPkxhbmcoJ25hbWVfYXNjJyldID0gJ2djaGFydHNfbmFtZSBBU0MnOwokc29ydGxpc3RbJHRoaXMtPkxhbmcoJ25hbWVfZGVzYycpXSA9ICdnY2hhcnRzX25hbWUgREVTQyc7CiRzb3J0bGlzdFskdGhpcy0+TGFuZygnc3RhdHVzX2FzYycpXSA9ICdzdGF0dXMgQVNDJzsKJHNvcnRsaXN0WyR0aGlzLT5MYW5nKCdzdGF0dXNfZGVzYycpXSA9ICdzdGF0dXMgREVTQyc7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jYXRlZ29yeScsJHRoaXMtPkxhbmcoJ2NhdGVnb3J5JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhdGVnb3J5JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2NhdGVnb3J5JywkY2F0ZWdvcnlsaXN0LC0xLCRjdXJjYXRlZ29yeSkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zaG93Y2hpbGRjYXRlZ29yaWVzJywKCQkkdGhpcy0+TGFuZygnc2hvd2NoaWxkY2F0ZWdvcmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxjYXRlZ29yaWVzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2FsbGNhdGVnb3JpZXMnLCd5ZXMnLCRhbGxjYXRlZ29yaWVzKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3NvcnRpbmcnLAoJCSR0aGlzLT5MYW5nKCdwcm9tcHRfc29ydGluZycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0aW5nJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3NvcnRieScsJHNvcnRsaXN0LC0xLCRzb3J0YnkpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcGFnZWxpbWl0JywKCQkkdGhpcy0+TGFuZygncHJvbXB0X3BhZ2VsaW1pdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wYWdlbGltaXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwncGFnZWxpbWl0JywKCQkJCQkgICBhcnJheSgnNSc9PjUsJzI1Jz0+MjUsJzUwJz0+NTAsCgkJCQkJCSAnMTAwJz0+MTAwLCc1MDAnPT41MDAsJzEwMDAnPT4xMDAwLCR0aGlzLT5MYW5nKCd1bmxpbWl0ZWQnKT0+OTk5OTk5OTk5KSwtMSwkcGFnZWxpbWl0KSk7CgkKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCQovL0xvYWQgdGhlIGN1cnJlbnQgY2hhcnRzCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCiRkYnJlc3VsdCA9ICcnOwoKJHF1ZXJ5MSA9ICJTRUxFQ1Qgbi4qLCBuYy5nY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHMgbiBMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgbmMgT04gbi5nY2hhcnRzX2NhdGVnb3J5X2lkID0gbmMuZ2NoYXJ0c19jYXRlZ29yeV9pZCAiOwokcXVlcnkyID0gIlNFTEVDVCBjb3VudChuLmdjaGFydHNfaWQpIEFTIGNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzIG4gTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIG5jIE9OIG4uZ2NoYXJ0c19jYXRlZ29yeV9pZCA9IG5jLmdjaGFydHNfY2F0ZWdvcnlfaWQgIjsKJHBhcm1zID0gYXJyYXkoKTsKaWYgKCRjdXJjYXRlZ29yeSAhPSAnJykKICB7CiAgICAkcXVlcnkxIC49ICIgV0hFUkUgbmMuZ2NoYXJ0c19jYXRlZ29yeV9uYW1lIExJS0UgPyI7CiAgICAkcXVlcnkyIC49ICIgV0hFUkUgbmMuZ2NoYXJ0c19jYXRlZ29yeV9uYW1lIExJS0UgPyI7CiAgICBpZiggJGFsbGNhdGVnb3JpZXMgPT0gJ3llcycgKQogICAgICB7CgkkcGFybXNbXSA9ICRjdXJjYXRlZ29yeS4nJSc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHBhcm1zW10gPSAkY3VyY2F0ZWdvcnk7CiAgICAgIH0KICB9CiRxdWVyeTEgLj0gJyBPUkRFUiBieSAnLiRzb3J0Ynk7Ci8vJHF1ZXJ5MSAuPSAiIExJTUlUICRwYWdlbGltaXQgT0ZGU0VUICRzdGFydGVsZW1lbnQiOwoKLy8gaWYgaXMgZG9uZSB0byBoZWxwIGFkb2RiLgokbnVtcm93cyA9IC0xOwppZiggY291bnQoJHBhcm1zKSApCiAgewogICAgJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCggJHF1ZXJ5MSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCwgJHBhcm1zKTsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnkyLCRwYXJtcyk7CiAgICAkbnVtcm93cyA9ICRyb3dbJ2NvdW50J107CiAgfQplbHNlCiAgewogICAgJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCggJHF1ZXJ5MSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCk7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5Mik7CiAgICAkbnVtcm93cyA9ICRyb3dbJ2NvdW50J107CiAgfQoKJHBhZ2Vjb3VudCA9IChpbnQpKCRudW1yb3dzLyRwYWdlbGltaXQpOwppZiggKCRudW1yb3dzICUgJHBhZ2VsaW1pdCkgIT0gMCApICRwYWdlY291bnQrKzsKLy8gc29tZSBwYWdpbmF0aW9uIHZhcmlhYmxlcyB0byBzbWFydHkuCmlmKCAkcGFnZW51bWJlciA9PSAxICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywnPCcpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2UnLCc8PCcpOwogIH0KZWxzZQogIHsKICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2UnLAoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsCgkJCQkgICAgICAkcmV0dXJuaWQsJzwnLAoJCQkJICAgICAgYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlci0xLAoJCQkJCSAgICAnYWN0aXZlX3RhYic9PidjaGFydHMnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2UnLAoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsCgkJCQkgICAgICAkcmV0dXJuaWQsJzw8JywKCQkJCSAgICAgIGFycmF5KCdwYWdlbnVtYmVyJz0+MSwKCQkJCQkgICAgJ2FjdGl2ZV90YWInPT4nY2hhcnRzJykpKTsKICB9CmlmKCAkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50ICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRwYWdlJywnPicpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZScsJz4+Jyk7CiAgfQplbHNlCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsCgkJICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywKCQkJCSAgICAgICRyZXR1cm5pZCwnPicsCgkJCQkgICAgICBhcnJheSgncGFnZW51bWJlcic9PiRwYWdlbnVtYmVyKzEsCgkJCQkJICAgICdhY3RpdmVfdGFiJz0+J2NoYXJ0cycpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLAoJCQkJICAgICAgJHJldHVybmlkLCc+PicsCgkJCQkgICAgICBhcnJheSgncGFnZW51bWJlcic9PiRwYWdlY291bnQsCgkJCQkJICAgICdhY3RpdmVfdGFiJz0+J2NoYXJ0cycpKSk7CiAgfQokc21hcnR5LT5hc3NpZ24oJ3BhZ2VudW1iZXInLCRwYWdlbnVtYmVyKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRwYWdlY291bnQpOwokc21hcnR5LT5hc3NpZ24oJ29mdGV4dCcsJHRoaXMtPkxhbmcoJ3Byb21wdF9vZicpKTsKCiRyb3djbGFzcyA9ICdyb3cxJzsKCiRhZG1pbnRoZW1lID0mICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXTsKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogIHsKICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgIAogICAgJG9uZXJvdy0+aWQgPSAkcm93WydnY2hhcnRzX2lkJ107CiAgICAkb25lcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGNoYXJ0JywgJHJldHVybmlkLCAkcm93WydnY2hhcnRzX25hbWUnXSwgYXJyYXkoJ2NoYXJ0aWQnPT4kcm93WydnY2hhcnRzX2lkJ10pKTsKICAgICRvbmVyb3ctPmRhdGEgPSAkcm93WydnY2hhcnRzX2RhdGEnXTsKICAgICRvbmVyb3ctPnN0YXR1cyA9ICR0aGlzLT5MYW5nKCRyb3dbJ3N0YXR1cyddKTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBcHByb3ZlIEdDaGFydHMnKSApCiAgICAgIHsKCWlmKCAkcm93WydzdGF0dXMnXSA9PSAncHVibGlzaGVkJyApCgkgIHsKCSAgICAkb25lcm93LT5hcHByb3ZlX2xpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FwcHJvdmVjaGFydCcsCgkJCQkJCSAgICAkcmV0dXJuaWQsCgkJCQkJCSAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCR0aGlzLT5MYW5nKCdyZXZlcnQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdhcHByb3ZlJz0+MCwnY2hhcnRpZCc9PiRyb3dbJ2djaGFydHNfaWQnXSkpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkb25lcm93LT5hcHByb3ZlX2xpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FwcHJvdmVjaGFydCcsCgkJCQkJCSAgICAkcmV0dXJuaWQsCgkJCQkJCSAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywkdGhpcy0+TGFuZygnYXBwcm92ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2FwcHJvdmUnPT4xLCdjaGFydGlkJz0+JHJvd1snZ2NoYXJ0c19pZCddKSk7CgkgIH0KICAgICAgfQogICAgJG9uZXJvdy0+Y2F0ZWdvcnkgPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXTsKCiAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKICAgIAogICAgJG9uZXJvdy0+c2VsZWN0ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdzZWxbXScsJHJvd1snZ2NoYXJ0c19pZCddKTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR0NoYXJ0cycpICkgewogICAgICAkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRjaGFydCcsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NoYXJ0aWQnPT4kcm93WydnY2hhcnRzX2lkJ10pKTsKICAgIH0KICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdEZWxldGUgR0NoYXJ0cycpICkKICAgICAgewoJJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZWNoYXJ0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NoYXJ0aWQnPT4kcm93WydnY2hhcnRzX2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKICAgICAgfQogICAgCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKICAgIAogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoKJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR0NoYXJ0cycpICkgewogICRzbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNoYXJ0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygnYWRkY2hhcnQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkY2hhcnQnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhZGRjaGFydCcpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmb3JtMnN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtMmVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0X3JlYXNzaWduJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfcmVhc3NpZ24nLCR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwokY2F0ZWdvcnlsaXN0ID0gZ2NoYXJ0c19vcHM6OmdldF9jYXRlZ29yeV9saXN0KCk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnlpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjYXRlZ29yeScsJGNhdGVnb3J5bGlzdCkpOwppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRGVsZXRlIEdDaGFydHMnKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfbWFzc2RlbGV0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9tYXNzZGVsZXRlJywkdGhpcy0+TGFuZygnZGVsZXRlX3NlbGVjdGVkJyksCgkJCQkJICAgICAnJywnJywkdGhpcy0+TGFuZygnYXJleW91c3VyZV9kZWxldGVtdWx0aXBsZScpKSk7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdyZWFzc2lnbnRleHQnLCR0aGlzLT5MYW5nKCdyZWFzc2lnbl9jYXRlZ29yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWxlY3R0ZXh0JywkdGhpcy0+TGFuZygnc2VsZWN0JykpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignc3RhdGV0ZXh0JywkdGhpcy0+TGFuZygnc3RhdGUnKSk7CiRzbWFydHktPmFzc2lnbignY2hhcnRpZHRleHQnLCAkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbignZWxlbWVudHRleHQnLCAkdGhpcy0+TGFuZygnZWxlbWVudCcpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5dGV4dCcsICR0aGlzLT5MYW5nKCdjYXRlZ29yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXRhdGV4dCcsICR0aGlzLT5MYW5nKCdkYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2F4aXNUaXRsZXNQb3NpdGlvbnRleHQnLCAkdGhpcy0+TGFuZygnYXhpc1RpdGxlc1Bvc2l0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ2JhY2tncm91bmRDb2xvcnRleHQnLCAkdGhpcy0+TGFuZygnYmFja2dyb3VuZENvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ2NoYXJ0QXJlYXRleHQnLCAkdGhpcy0+TGFuZygnY2hhcnRBcmVhJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbG9yc3RleHQnLCAkdGhpcy0+TGFuZygnY29sb3JzJykpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnZlVHlwZXRleHQnLCAkdGhpcy0+TGFuZygnY3VydmVUeXBlJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuYWJsZUludGVyYWN0aXZpdHl0ZXh0JywgJHRoaXMtPkxhbmcoJ2VuYWJsZUludGVyYWN0aXZpdHknKSk7CiRzbWFydHktPmFzc2lnbignZm9jdXNUYXJnZXR0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZvY3VzVGFyZ2V0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvbnRTaXpldGV4dCcsICR0aGlzLT5MYW5nKCdmb250U2l6ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb250TmFtZXRleHQnLCAkdGhpcy0+TGFuZygnZm9udE5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaEF4ZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2hBeGVzJykpOwokc21hcnR5LT5hc3NpZ24oJ2hBeGlzdGV4dCcsICR0aGlzLT5MYW5nKCdoQXhpcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdoZWlnaHR0ZXh0JywgJHRoaXMtPkxhbmcoJ2hlaWdodCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnRlcnBvbGF0ZWROdWxsc3RleHQnLCAkdGhpcy0+TGFuZygnaW50ZXJwb2xhdGVkTnVsbHMnKSk7CiRzbWFydHktPmFzc2lnbignaXNIdG1sdGV4dCcsICR0aGlzLT5MYW5nKCdpc0h0bWwnKSk7CiRzbWFydHktPmFzc2lnbignaXNTdGFja2VkdGV4dCcsICR0aGlzLT5MYW5nKCdpc1N0YWNrZWQnKSk7CiRzbWFydHktPmFzc2lnbignaXMzRHRleHQnLCAkdGhpcy0+TGFuZygnaXMzRCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmR0ZXh0JywgJHRoaXMtPkxhbmcoJ2xlZ2VuZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsaW5lV2lkdGh0ZXh0JywgJHRoaXMtPkxhbmcoJ2xpbmVXaWR0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbGljZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3NsaWNlcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdwaWVTbGljZUJvcmRlckNvbG9ydGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZUJvcmRlckNvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlVGV4dHRleHQnLCAkdGhpcy0+TGFuZygncGllU2xpY2VUZXh0JykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVNsaWNlVGV4dFN0eWxldGV4dCcsICR0aGlzLT5MYW5nKCdwaWVTbGljZVRleHRTdHlsZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwb2ludFNpemV0ZXh0JywgJHRoaXMtPkxhbmcoJ3BvaW50U2l6ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXZlcnNlQ2F0ZWdvcmllc3RleHQnLCAkdGhpcy0+TGFuZygncmV2ZXJzZUNhdGVnb3JpZXMnKSk7CiRzbWFydHktPmFzc2lnbignc2VyaWVzdGV4dCcsICR0aGlzLT5MYW5nKCdzZXJpZXMnKSk7CiRzbWFydHktPmFzc2lnbignc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkdGV4dCcsICR0aGlzLT5MYW5nKCdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnKSk7CiRzbWFydHktPmFzc2lnbigncGllUmVzaWR1ZVNsaWNlQ29sb3J0ZXh0JywgJHRoaXMtPkxhbmcoJ3BpZVJlc2lkdWVTbGljZUNvbG9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3BpZVJlc2lkdWVTbGljZUxhYmVsdGV4dCcsICR0aGlzLT5MYW5nKCdwaWVSZXNpZHVlU2xpY2VMYWJlbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aGVtZXRleHQnLCAkdGhpcy0+TGFuZygndGhlbWUnKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3RpdGxlUG9zaXRpb250ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlUG9zaXRpb24nKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVUZXh0U3R5bGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RpdGxlVGV4dFN0eWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3Rvb2x0aXB0ZXh0JywgJHRoaXMtPkxhbmcoJ3Rvb2x0aXAnKSk7CiRzbWFydHktPmFzc2lnbigndkF4ZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ3ZBeGVzJykpOwokc21hcnR5LT5hc3NpZ24oJ3ZBeGlzdGV4dCcsICR0aGlzLT5MYW5nKCd2QXhpcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd3aWR0aHRleHQnLCAkdGhpcy0+TGFuZygnd2lkdGgnKSk7CgokZ0NtcyA9IGNtc21zKCk7CiR0aGVtZSA9JiAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ107CiRjb25maWcgPSAkdGhpcy0+R2V0Q29uZmlnKCk7CiR0aGVtZWRpciA9ICRjb25maWdbJ2FkbWluX3VybCddLicvdGhlbWVzLycuJHRoZW1lLT50aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtJzsKCiRzbWFydHktPmFzc2lnbignaWNvbnVybCcsJHRoZW1lZGlyKTsKCiNEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY2hhcnRsaXN0LnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/GCharts.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdDaGFydHMgKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbiAKIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHBhZ2VzCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBHQ2hhcnRzIGV4dGVuZHMgQ01TTW9kdWxlCnsKCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICdHQ2hhcnRzJzsKICB9CgogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKICB9CgogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS4yJzsKICB9CgogIGZ1bmN0aW9uIEdldEhlbHAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogIH0KCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICB7CiAgICByZXR1cm4gJ29saXZlcnNlZGRvbic7CiAgfQoKICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewogICAgcmV0dXJuICdvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrJzsKICB9CgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CgogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdjb250ZW50JzsKICB9CgogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKICB9CgogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBHQ2hhcnRzJyk7CiAgfQoKICBmdW5jdGlvbiBHZXREYXNoYm9hcmRPdXRwdXQoKSAKICB7CgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKCSRyY291bnQgPSAkZGItPkdldE9uZSgnc2VsZWN0IGNvdW50KCopIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzJyk7CgkKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZGFzaF9yZWNvcmRfY291bnQnLCRyY291bnQpOwogIH0KCiAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CiAgICB9CgogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCk7CiAgfQoKICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICIxLjExIjsKICB9CgogIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuMTUiOwogIH0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKCXsKCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZ2NoYXJ0c19pZCcsICcxJywgJHRoaXMtPkxhbmcoJ2hlbHBfZ2NoYXJ0c19pZCcpKTsKCX0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICB7CiAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgIAoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9nY2hhcnRzXC92aWV3XC8oP1A8Z2NoYXJ0c19pZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2RlZmF1bHQnKSk7ICAKCQoJJGdDbXMgPSBjbXNtcygpOwoJJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRyZXR1cm5pZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwoJLy8gVGhlIHByZXZpb3VzIHRocmVlIGxpbmVzIGFyZSB0byBnZXQgYSByZXR1cm5pZDsgbWFueSBtb2R1bGVzLCBsaWtlIE5ld3MsIGhhdmUgYSBkZWZhdWx0CgkvLyBwYWdlIGluIHdoaWNoIHRvIGRpc3BsYXkgZGV0YWlsIHZpZXdzLiBJbiB0aGF0IGNhc2UsIHRoZSBwYWdlX2lkIHdvdWxkIGJlIHVzZWQgZm9yIHJldHVybmlkLgoJCgkvLyBUaGUgbmV4dCB0aHJlZSBsaW5lcyBhcmUgd2hlcmUgd2UgbWFwIHRoZSBVUkwgdG8gb3VyIGRldGFpbCBwYWdlLgoJJHBhcm1zID0gYXJyYXkoJ2FjdGlvbic9PidkZWZhdWx0JywnZ2NoYXJ0c19pZCc9PjEsJ3JldHVybmlkJz0+JHJldHVybmlkKTsKCSRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgndGhpcy9pcy9pbnNhbmVseS9ncmVhdC9zdHVmZicsJHRoaXMtPkdldE5hbWUoKSwkcGFybXMsVFJVRSk7CgljbXNfcm91dGVfbWFuYWdlcjo6cmVnaXN0ZXIoJHJvdXRlKTsKCQogIAogICAvLyBEb24ndCBhbGxvdyBwYXJhbWV0ZXJzIG90aGVyIHRoYW4gdGhlIG9uZXMgeW91J3ZlIGV4cGxpY2l0bHkgZGVmaW5lZAogICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgCiAgIC8vIHN5bnRheCBmb3IgY3JlYXRpbmcgYSBwYXJhbWV0ZXIgaXMgcGFyYW1ldGVyIG5hbWUsIGRlZmF1bHQgdmFsdWUsIGRlc2NyaXB0aW9uCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2djaGFydHNfaWQnLCAtMSwgJHRoaXMtPkxhbmcoJ2hlbHBfZ2NoYXJ0c19pZCcpKTsKCiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdnY2hhcnRzX2lkJyxDTEVBTl9JTlQpOwoKICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbW9kdWxlX21lc3NhZ2UnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX21vZHVsZV9tZXNzYWdlJykpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbW9kdWxlX21lc3NhZ2UnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCduYW1lJywnJywkdGhpcy0+TGFuZygnaGVscF9kZXNjcmlwdGlvbicpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25hbWUnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjb250ZW50JywnJywkdGhpcy0+TGFuZygnaGVscF9leHBsYW5hdGlvbicpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NvbnRlbnQnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdsb2NhdGlvbicsJycsJHRoaXMtPkxhbmcoJ2hlbHBfZXhwbGFuYXRpb24nKSk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsb2NhdGlvbicsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2F1dGhvcicsJycsJHRoaXMtPkxhbmcoJ2hlbHBfYXV0aG9yJykpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYXV0aG9yJyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhbmNlbCcsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRieScsICdkb2N1bWVudF9kYXRlJywgJHRoaXMtPmxhbmcoJ2hlbHBzb3J0YnknKSk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0YnknLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0ZGVzYycsICd0cnVlJywgJHRoaXMtPmxhbmcoJ2hlbHBzb3J0ZGVzYycpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRkZXNjJyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfSG91cicsQ0xFQU5fU1RSSU5HKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlX01pbnV0ZScsQ0xFQU5fU1RSSU5HKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlX1NlY29uZCcsQ0xFQU5fU1RSSU5HKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Bvc3RkYXRlX01vbnRoJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfRGF5JyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfWWVhcicsQ0xFQU5fU1RSSU5HKTsKCiAgCiAgfQoKICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOwogIH0KCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50bmFtZSApOwogIH0KCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgfQoKICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CgoKCWZ1bmN0aW9uIFNlYXJjaFJlc3VsdCgkcmV0dXJuaWQsICRhcnRpY2xlaWQsICRhdHRyID0gJycpIHsKCQkkZG9jdW1lbnRpZCA9ICRwYXJhbXNbJ2djaGFydHNfaWQnXTsNCgkJaWYgKCFlbXB0eSgkY2hhcnRpZCkpICRyZXR1cm5pZCA9ICRjaGFydGlkOw0KCQkkcmVzdWx0ID0gYXJyYXkoKTsNCgkJaWYgKCRhdHRyID09ICdnY2hhcnRzJykgew0KCQkJJGRiICA9IGNtc21zKCktPkdldERiKCk7DQoJCQkkcSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2djaGFydHMgV0hFUkUgZ2NoYXJ0c19pZCA9ID8nOw0KCQkJJHJvdyA9ICRkYi0+R2V0Um93KCRxLCBhcnJheSgkYXJ0aWNsZWlkKSApOw0KCQkJaWYgKCRyb3cpIHsNCgkJCQkkcmVzdWx0WzBdID0gdXRmOF9lbmNvZGUoaHRtbF9lbnRpdHlfZGVjb2RlKCR0aGlzLT5HZXRGcmllbmRseU5hbWUoKSkpOw0KCQkJCSRyZXN1bHRbMV0gPSAkcm93WyduYW1lJ107CgkJCQkkcHJldHR5dXJsID0gJ3VwbG9hZHMvZ2NoYXJ0cy9pZCcuJHJvd1snZ2NoYXJ0c19pZCddLicvJy4kcm93Wydsb2NhdGlvbiddOwoJCQkJJHJlc3VsdFsyXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCdjbnRudDAxJywgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRyb3dbJ25hbWUnXSwgDQoJCQkJICAgICAgIGFycmF5KCdnY2hhcnRzX2lkJyA9PiAkcm93WydnY2hhcnRzX2lkJ10pLA0KCQkJCSAgICAgICAnJywgdHJ1ZSwgdHJ1ZSwgJycsIHRydWUsICRwcmV0dHl1cmwpOw0KCQkJfQ0KCQl9DQoJCXJldHVybiAkcmVzdWx0Ow0KCX0KCgoJZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkgewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBPUkRFUiBCWSBnY2hhcnRzX2lkJzsKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0YpIHsKCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldG5hbWUoKSwgJHJlc3VsdC0+ZmllbGRzWydnY2hhcnRzX2lkJ10sICdnY2hhcnRzJywgJHJlc3VsdC0+ZmllbGRzWydjb250ZW50J10sIE5VTEwpOwoJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gRG9BY3Rpb24gKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybl9pZCA9IC0xKSB7CgkJc3dpdGNoICgkYWN0aW9uKSB7CQoJCQljYXNlICd1cGRhdGV0ZW1wbGF0ZSc6IHsKCQkJCS8vIGNoZWNrIHBlcm1pc3Npb25zIGFnYWluCgkJCQlpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01vZGlmeSBUZW1wbGF0ZXMnKSkgewoJCQkJCWlmIChpc3NldCAoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkgewoJCQkJCQkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9nY2hhcnRzX2xpc3QudHBsJzsKCQkJCQkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkJCQkJCQkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCQkJCQkJCSR0aGlzLT5TZXRUZW1wbGF0ZSggJ2RldGFpbFNhbXBsZScsICR0ZW1wbGF0ZSk7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQkkdGhpcy0+U2V0VGVtcGxhdGUgKCdkZXRhaWxTYW1wbGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CgkJCQkJfQoJICAJCQkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAndGVtcGxhdGV1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsKCSAgCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJCQkJfQoJCQl9CgoJCQlkZWZhdWx0OgoJCQkJcGFyZW50OjpEb0FjdGlvbiggJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkICk7CgkJCQlicmVhazsKCQl9Cgl9CgoKCgp9IC8vZW5kIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPcAAOmemESG9vnGPoTQr0GE+UKC8oLLp+Pt/0WF8v3txOXo7803Lcja+YLLqk+N+ESG+d5IPvvIQeyinoPOremenP75+eeem4HIpf3081CL8Pzx8N7z6UGE9+fo7/nh3tfw5drv5sgmGwymXrDdxlCM9FCM8lGL7f3OU/zNUfvMT/3KRv3KRfzJQ/fIR0aD6kKC7/fHQ0OC7O6im+ygmYPOq+qel4LJpsoqHwCcT0CE+0WE7wCSRtIyJwCQRM0tIgCeUdk4Ldc2KwCXSgCVSACPQwCLP/T4/vT3/vf//1GL60OB6v7////58v+aK/+bLf+ZK06J6//38PfGQePv//+TH++jnP778+jw/f/46Pb//0+N9//y5PbCNP745//69VGL7v3+/9hCOAaYUv/89EKC8ACPSInLqgaXUOrx/fjFO8zd+eXu/txGO/no6e2joA+QSv2YLPDy5souI/D480+K69rx5/348ez59f746O/x5gCQSQOSS/D59QieV0+M9oTPrv3///2ZLITQrEOB6wCJPgOTTASUTvzy8VyS7Prm5fz19tM9MvDAvf+ZLNjx6OXw//bBMffISEeE6vvo59pEOf3uyPzz8kB/6vfKTwmUT8wzKddBNtE7MdBDOtU/NH/Ho8wrIAukXAWMQ885L7TfygCHO/f8+sw1K/HEwUGD9PX3/s48Mu348xKYVgmgWEGA6vnm5+H06gCIPPfDOPbDOvjJSfnj4fD49AebUwqiWgCMQVWO6wCbToPNqdo5Lvj17AecVUaD7eqjnPrHQUOH/YTJp4TPq/+UIIDHpIDIp+abls8vJP7LR//NTPz9/9AvJEOH+91HPf/y5fvIRPfEO/bEPACYS//46eabmP/46v7LStg3LO2hmumblITKqkKD8+ihnOqgneuhnoXRrv3NUvvLTdXw5dXw5tM0KPbDN/rLTPfHROmclemdlvji4fni4NEwJdEwJtU0KdY1Kk+N9kqG6kSC6kGE9eWZlACZTACaTPyYLA2oX//48f+aLP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODc5OTI1RjQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowODc5OTI2MDQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4Nzk5MjVENDQ3RTExRTNCOTY0REY5MjJEREVBREIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4Nzk5MjVFNDQ3RTExRTNCOTY0REY5MjJEREVBREIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAAAAAAAsAAAAACAAIAAACP8Ajz3xR7CgwYMIEz6h0mRLv4cQI0qcSFFaE39e/mncyLGjx49eCPb7SLIkx34iTar8iNLfyCVGjsg0smQlyZYjVSGCkgQKIlU2WaY8AuWSkktQjgT1iPPfkSRKXChJonSlqTm3bs0x9a/p00EuBpmoqtLMm1at3pjpmtLIlxg6XnwxUuGQJUuHKnz8VKpMmVKf2Lr8ZyQDGQRkMiARdqpTp1PgPl4gtGcPoQuCRxoh8Q3BNxJIuoXQpCkEvo82dBkypMtGZsIkUgW45wdJuxsLFtxQ9tFADzFidhh4bYQehwcctCCp4YMTJx8A/o2xQn3Mv15DgAEb0ou4AwLQcjj/QDIDnidP8cL9wyRlnRRM//5Yc+UqHw3vBIiJRyIDXZgw8ojzjxSQcAGJFP8MwEsooeAgCHFaEPAAAQ5kUcU2bLCxjRv/tDALNbO08M84OIjAzw/jEOcHBwEkZyEQEEDgC4fqCDCMAOqMWKIIPzzY1GaypULCi9HIyGEKLKjAAgrx6ZNLLrwYQ1wJnRVQAn/zUEJJEBL8Q44KzTBzwj8TCNFHH0Lc92MGL8SlGDc8bLIJOuqhsII2K4w5wQ644CLca0eYEEMwMZhA3jKLLPIMBf+UE8E0EaTwTwNEnHEGEcN5BZVUSSwHyiijgGLBP7WkIUAatUxaRCGFFIGZV3S87GLPK3QgwU4Ip5wSAjb/wMBFOlzA8E8ysuihhyzIALqLJPVIsgsSAMixyipyjBoJLdXQEsk/3oiSSSaiFPOaM2owYK4agLzDCCqoMOLOP5UkIG8l/4AwAimkjADCa2CgccW/aCyBQSKTTJIIBv9cg8XC2fzDxwaxxLIBH/yuccDFayyhgQe22OKBBv/g0cXIePzDygd11PEBK4JlBMgjU8T8yBKKwNJGG7Ao8tEd5jjiyDl3/BNSQ/3Y0YECSCtgRz9RNB3FQ0xEHXU/v+QRRxx5/NLPFk1QMVAjgcABxz6BNJJQQk6k7QRBCwUEADs=]]></data>
	</file>
	<file>
	  <filename>/images/icon@2x.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQABAAPcAAPbDOOPt/OPt/kSF9USG+OPt/QqhWUSF9ESG99rx5kWE8ESG9kaD60WF8kSG+UWE7/nj4UaD7NA6MNrw5c44LttFOv+THwmfV9lDOAaZUvfEOkOG+vzJRdxGO/rIQtI8MkWF80WE7tdBN/jh4PjFPQidVtU/NQebVAmgWEWE7aPXvtrv5LzS9/746EWE8f724vji4OLy6kWF8fno59nv5O22s/zpt//35NpEOQqiWtQ+M/734/zKRwSTTUaE7drw5gaYUQSUTdM9M/nHQPnGPwWVT/vJRM85LwOSTPvIQwWWT/7MStE7MddBNgaXUffEO/rj4vjFPN5IPd1HPPni4f734gulXQicVf3LSdZANQeaU//349pEOgukXNQ+NPrk4v3LSAukWwieVvzKRtvy59lDOdhCOPji4QSUTvrHQQulXESF9v6THwecVAWWUAebU9ZANkOH/AujW9hCN0OH+wqjWv3KRwynXtxGPPnHP/nj4v3KSAWXUNU/NP+UHwWVTvvJRQmfWPjGPQaXUNvx5+Pt/wymXgqjWwOSSwymXQidVdI8MQeaUt9JPvrHQASTTP7MTNA6L0aE7AynX/2TIPnGPtM9Mtrx5885LkOH/f6TIAmeVwicVP2TIffEOdrv5Q2pYASVTgmhWeBKP9E7MPrIQf7MSwSSTP/NTfbEOQmgWd1HPQieV844Lc03LQORS0aD6v+THv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODc5OTI1QjQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowODc5OTI1QzQ0N0UxMUUzQjk2NERGOTIyRERFQURCMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4Nzk5MjU5NDQ3RTExRTNCOTY0REY5MjJEREVBREIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4Nzk5MjVBNDQ3RTExRTNCOTY0REY5MjJEREVBREIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAAAAAAAsAAAAAEAAQAAACP8A/cQaSLCgwYMIEypcmFAgw4cQIz60EEuWxYsYM2rcyLGjx4wOK34cSbJkR4oDTapcORKlSJYwY8pyKbPmyoI2c5LEqbMnR54+g14EKjQo0aI9j8qCxbSpU6Q7CWp0ShUW1JFKqz696jGrVqZcu0rN+BVs2J9jMZa1enajV1gM4jJoKvSV3bt4MyqNG6Gv37h18QrWm/ZiBEk+fKRYnFhSYMF3CafMmCKE5QeYLYd4DPmV5JcXQ2BWQJo05ouuUqterbJzZIxKSbtwIaP2bAWoV+tufRcREkSvhxa2SLuB8eMNZOTWrVolkkc9egSZHv3RZ43GQYA4wF17g+XMXan/RIPmT5EiSs7/QXM94/YDA+LH5w6euUolbvgMcsJ/EB83hFGkEXwDLGCggfGhRsGCDDKokhNAZCDhhBkA0R5GA6yxAAIEdIjAAmtcdMQREpRoogRHqJSBFm+c4KKLWmhx4UUDIMChAzgS8OFFpDDBxAdAAumjSm+0cYUiJSSpyBVtzGjRhgQ4sMGUDuh40QeWCCGEDlxqaclFAIQp5pgXXVGCGBekmaYYJTgpywJRbkBHHHRsUOVFOnjRhwl88tmHF2COKehFaKIgigGIqoLCBW7euEEcmcRhJwEXmZAFHE2IoGkTcGQRqKBiXnQBCgbkcIgch+RgAApuwinlnHXe/2kRHCLMYQYGuJoxhwifggrARaTW0YUaVqgRRh0GtOoolVZaNAcGZeBQQQVc4FAGBhelosG2GjzBrQYXlRqGFYbcYYgVYeTgZo0d4ljljhZhIG0HHeBBbwU4XBRFFCT06y8JUYQrbCKTgDJJIl2oC9twsmRoY4c6IhCiRWVU0MEUUmQ8RQdcXFQJEUTkMcTIeYAcbg7j3mEuugoLNxlGBBr44QIJWjTvKo2M0sjGFVzkSBoeBC10KWkAa8AhwxbbBbJuvifffAdcVPHFGUuxcccWeZCEEYBw4LURRiQhKqk5yGG2qqwu/PJFDWjH3dsgfBfvvHhMYS++FxnBwRg82P+xhx08jMEBoaMiaviiAYJGnAzZeZfcRc/iwMW01OKArUUc8AAGFkt0jgUYPJRZwiYXBGL6Bay0qbbisshGm20u4GZRprdCmyuvFo1hB+eQoALJEliEbtEJnJh5ZpJMJq7RaKWZ9kClmGq6aROeYq4556YAD/pFK7Z4QhsuviHj6hpVJhpmD2iGpxd8ZuG+CX/mvTcPe4CxR+CDWwREhBkwogUjErIQ+TISgcQs5oCJuZKWuOSFLgnhIlrjmtc4AIiwXQQ/+9kfEJzwH+VlhC9++ctFfLSIIAFpEUzwGdC0loQkBK1oFikPepRAw/OEwk1NkUtczCKLI0TiRCaKhMf/QjayIprMIqeIznSWGB0cluUirVgQJkZ0BAdZZF/9EoQW+xUwi9wFCWAEo12c+JX67MYintjWE9a4xm1dxDVjHKBanmiR8DTHIr4KlRfhSEatmJE1eMzjr/bomj5W5Y93lIUgBykLOHpGjhdhgSQnScmL1OCSmMzkRWzAyU568iIqCKUoR+mmAJjylKi8yAhWycpWXuQFsIylLC9Cg1ra8palRKUuLwKDM5yBCsAEpi8vsoNibuGYxyzmRT4xgWY605kexEgBpknNal4EAtjUAxS2qQdsXmQLNwinOMV5kR/8IAHoTGcCfhDNiwjgnfCM5zW3+YV61hMKerhIFfZZgMxi7rMKF0EnIchAUIISIgHttEg8C8FQeF6ECtiMqEQv0oKKWvSiAU3nJQhxiXQmVBbxDKkAVAmDkprUpCpxpjlX2kw3VfOlBbjIDGZK05qqZAU4zalOc6nLUwolBkANqlB52tMAtMUtC7EAG5bKBk1QghKdkIhUp0rVqlrVIAEBADs=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dDaGFydHMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdCZSBzdXJlIHRvIHNldCAiVXNlIEdDaGFydHMiIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1NvcnJ5LCBpdFwncyBub3QgeW91LCBpdFwncyBtZS4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseT8gWW91XCdyZSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIHN1cGVyIGZpbmUgbW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2FwcHJvdmUnXSA9ICdTZXQgU3RhdHVzIHRvIFwnRW5hYmxlZFwnJzsKJGxhbmdbJ3JldmVydCddID0gJ1NldCBTdGF0dXMgdG8gXCdEaXNhYmxlZFwnJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhdmUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2FkZGNoYXJ0J10gPSAnQWRkIGNoYXJ0JzsKJGxhbmdbJ2NoYXJ0cyddID0gJ0NoYXJ0cyc7CiRsYW5nWydjaGFydCddID0gJ0NoYXJ0JzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2hlZCc7CiRsYW5nWydkcmFmdCddID0gJ0RyYWZ0JzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzZWxlY3QnXSA9ICdTZWxlY3QnOwokbGFuZ1sncmVhc3NpZ25fY2F0ZWdvcnknXSA9ICdSZS1hc3NpZ24gY2F0ZWdvcnknOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIHNlbGVjdGVkJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gbmFtZSBnaXZlbic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgY2hhcnRzPyc7CiRsYW5nWydjaGFydGFkZGVkJ10gPSAnQ2hhcnQgYWRkZWQnOwokbGFuZ1snY2hhcnR1cGRhdGVkJ10gPSAnQ2hhcnQgdXBkYXRlZCc7CiRsYW5nWydpZCddID0gJ0NoYXJ0IElEJzsKJGxhbmdbJ25hbWUnXSA9ICdDaGFydCBUaXRsZSc7CiRsYW5nWydlbGVtZW50J10gPSAnQ29udGFpbmluZyBlbGVtZW50IElEJzsKJGxhbmdbJ2VuYWJsZUludGVyYWN0aXZpdHknXSA9ICdFbmFibGUgaW50ZXJhY3Rpdml0eSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NoYXJ0IGNhdGVnb3J5JzsKJGxhbmdbJ2djaGFydHNfZGF0YSddID0gJ0NoYXJ0IERhdGEnOwokbGFuZ1snYXhpc1RpdGxlc1Bvc2l0aW9uJ10gPSAnQXhpcyB0aXRsZXMgcG9zaXRpb24nOwokbGFuZ1snYmFja2dyb3VuZENvbG9yJ10gPSAnQmFja2dyb3VuZCBDb2xvcic7CiRsYW5nWydjdXJ2ZVR5cGUnXSA9ICdDdXJ2ZSB0eXBlJzsKJGxhbmdbJ2NoYXJ0QXJlYSddID0gJ0NoYXJ0IEFyZWEnOwokbGFuZ1snY29sb3JzJ10gPSAnQ29sb3JzJzsKJGxhbmdbJ2ZvY3VzVGFyZ2V0J10gPSAnRm9udCB0YXJnZXQnOwokbGFuZ1snZm9udFNpemUnXSA9ICdGb250IFNpemUnOwokbGFuZ1snZm9udE5hbWUnXSA9ICdGb250IE5hbWUnOwokbGFuZ1snaEF4ZXMnXSA9ICdoQXhlcyc7CiRsYW5nWydoQXhpcyddID0gJ2hBeGlzJzsKJGxhbmdbJ2hlaWdodCddID0gJ0hlaWdodCc7CiRsYW5nWydpbnRlcnBvbGF0ZWROdWxscyddID0gJ0ludGVycG9sYXRlZCBudWxscyc7CiRsYW5nWydpc1N0YWNrZWQnXSA9ICdJcyBzdGFja2VkJzsKJGxhbmdbJ2lzSHRtbCddID0gJ0lzIEhUTUwnOwokbGFuZ1snaXMzRCddID0gJ0lzIDNEJzsKJGxhbmdbJ2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWydsaW5lV2lkdGgnXSA9ICdMaW5lIHdpZHRoJzsKJGxhbmdbJ3NsaWNlcyddID0gJ1NsaWNlcyc7CiRsYW5nWydwaWVTbGljZUJvcmRlckNvbG9yJ10gPSAnUGllIFNsaWNlIEJvYXJkZXIgQ29sb3InOwokbGFuZ1sncGllU2xpY2VUZXh0J10gPSAnUGllIFNsaWNlIFRleHQnOwokbGFuZ1sncGllU2xpY2VUZXh0U3R5bGUnXSA9ICdQaWUgU2xpY2UgVGV4dCBTdHlsZSc7CiRsYW5nWydwb2ludFNpemUnXSA9ICdQb2ludCBzaXplJzsKJGxhbmdbJ3JldmVyc2VDYXRlZ29yaWVzJ10gPSAnUmV2ZXJzZSBDYXRlZ29yaWVzJzsKJGxhbmdbJ3NsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCddID0gJ1NsaWNlIFZpc2liaWxpdHkgVGhyZXNob2xkJzsKJGxhbmdbJ3BpZVJlc2lkdWVTbGljZUNvbG9yJ10gPSAnUGllIFJlc2lkdWUgU2xpY2UgQ29sb3InOwokbGFuZ1sncGllUmVzaWR1ZVNsaWNlTGFiZWwnXSA9ICdQaWUgUmVzaWR1ZSBTbGljZSBMYWJlbCc7CiRsYW5nWyd0aXRsZVBvc2l0aW9uJ10gPSAnVGl0bGUgcG9zaXRpb24nOwokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7CiRsYW5nWyd0aGVtZSddID0gJ1RoZW1lJzsKJGxhbmdbJ3NlcmllcyddID0gJ1Nlcmllcyc7CiRsYW5nWyd0aXRsZVRleHRTdHlsZSddID0gJ1RpdGxlIFRleHQgU3R5bGUnOwokbGFuZ1sndG9vbHRpcCddID0gJ1Rvb2x0aXAnOwokbGFuZ1sndkF4ZXMnXSA9ICd2QXhlcyc7CiRsYW5nWyd2QXhpcyddID0gJ3ZBeGlzJzsKJGxhbmdbJ3dpZHRoJ10gPSAnV2lkdGgnOwokbGFuZ1snYWdncmVnYXRpb25UYXJnZXQnXSA9ICdBZ2dyZWdhdGlvbiBUYXJnZXQnOwokbGFuZ1snZ3JvdXBXaWR0aCddID0gJ0dyb3VwIFdpZHRoJzsKJGxhbmdbJ2Vycm9yX25vY2hhcnRzc2VsZWN0ZWQnXSA9ICdObyBDaGFydHMgV2VyZSBTZWxlY3RlZCc7CgokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/JzsKJGxhbmdbJ2Rhc2hfcmVjb3JkX2NvdW50J10gPSAnVGhpcyBtb2R1bGUgaGFuZGxlcyAlcyBkb2N1bWVudHMnOwokbGFuZ1snYWxlcnRfbm9fcmVjb3JkcyddID0gJ1RoZXJlIGhhdmUgbm90IGJlZW4gYW55IGRvY3VtZW50cyBhZGRlZCBpbiB0aGUgR0NoYXJ0cyBtb2R1bGUhJzsKJGxhbmdbJ2hlbHBfZ2NoYXJ0c19pZCddID0gJ0ludGVybmFsbHkgaWRlbnRpZmllciBmb3Igc2VsZWN0aW5nIGRvY3VtZW50cyc7CiRsYW5nWydoZWxwX2Rlc2NyaXB0aW9uJ10gPSAnSW50ZXJuYWwgcGFyYW1ldGVyIHVzZWQgdG8gcGFzcyBkZXNjcmlwdGlvbiBpbmZvIHdoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGRvY3VtZW50JzsKJGxhbmdbJ2hlbHBfZXhwbGFuYXRpb24nXSA9ICdJbnRlcm5hbCBwYXJhbWV0ZXIgdXNlZCB0byBwYXNzIGV4cGxhbmF0aW9uIGluZm8gd2hlbiBjcmVhdGluZyBvciBlZGl0aW5nIGEgZG9jdW1lbnQnOwokbGFuZ1snaGVscF9tb2R1bGVfbWVzc2FnZSddID0gJ0ludGVybmFsbHkgdXNlZCBwYXJhbWV0ZXIgZm9yIHBhc3NpbmcgbWVzc2FnZXMgdG8gdXNlcic7CiRsYW5nWydoZWxwX2djaGFydHNfaWQnXSA9ICdJRCBvZiB0aGUgY2hhcnQgeW91IHdhbnQgdG8gZGlzcGxheS4nOwoKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgYWRkIEdvb2dsZSBDaGFydHMgdG8geW91ciB3ZWJzaXRlLic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDEuMCA4IEp1bHkgMjAxMy4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjxsaT5WZXJzaW9uIDEuMSAxNSBKdWx5IDIwMTMuIE11bHRpcGxlIGJ1ZyBmaXhlcy48L2xpPgo8bGk+VmVyc2lvbiAxLjIgMTQgTm92ZW1iZXIgMjAxMy4gQWRkZWQgY29sdW1uIGNoYXJ0cyBvcHRpb24gcGx1cyBtYW55IGJ1ZyBmaXhlcy48L2xpPgo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyBmb3IgdGhlIGFkZGl0aW9uIG9mIEdvb2dsZSBDaGFydHMgdG8geW91ciB3ZWJzaXRlLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPlNpbXBseSBwbGFjZSB0aGUgbW9kdWxlIGNhbGwgYmVmb3JlIHlvdXIgY2xvc2luZyBib2R5IHRhZyB3aXRoIHRoZSBJRCBvZiB0aGUgY2hhcnQgeW91IHdhbnQgdG8gZGlzcGxheSA8Y29kZT57R0NoYXJ0cyBnY2hhcnRzX2lkPVwnMVwnfTwvY29kZT4sIGRhdGEgZmllbGQgYWNjZXB0cyBzbWFydHkgdmFyaWFibGVzLjwvcD4KPHA+Rm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFzIHRvIHdoYXQgdmFsdWVzIGVhY2ggcGFyYW1ldGVyIHRha2VzIGxvb2sgYXQgdGhlIEdvb2dsZSBDaGFydHMgZG9jdW1lbnRhdGlvbiA8YSBocmVmPSJodHRwczovL2dvb2dsZS1kZXZlbG9wZXJzLmFwcHNwb3QuY29tL2NoYXJ0LyI+aHR0cHM6Ly9nb29nbGUtZGV2ZWxvcGVycy5hcHBzcG90LmNvbS9jaGFydC88L2E+PC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgTW9kdWxlIEZvcmdlCjxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZ2NoYXJ0cy8iPkdDaGFydHMgUGFnZTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgb2xpdmVyc2VkZG9uLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMywgT2xpdmVyIFNlZGRvbiA8YSBocmVmPSJtYWlsdG86b2xpdmVyQHRocmVlZm9sZC5jby51ayI+Jmx0O29saXZlckB0aHJlZWZvbGQuY28udWsmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgonOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.gcharts_admin_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKI2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiNidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KI1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiNhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQojCiMkSWQ6IEdDaGFydHMubW9kdWxlLnBocCAyMTE0IDIwMDUtMTEtMDQgMjE6NTE6MTNaIHdpc2h5ICQKCmNsYXNzIGdjaGFydHNfYWRtaW5fb3BzCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZV9jaGFydCgkY2hhcnRpZCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIC8vTm93IHJlbW92ZSB0aGUgY2hhcnQKICAgICRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHMgV0hFUkUgZ2NoYXJ0c19pZCA9ID8iOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNoYXJ0aWQpKTsKCiAgICAvLyBkZWxldGUgYW55IGZpbGVzLi4uCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnOwogICAgJHAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdnY2hhcnRzJywnaWQnLiRjaGFydGlkKTsKICAgIGlmKCBpc19kaXIoJHApICkKICAgICAgewoJcmVjdXJzaXZlX2RlbGV0ZSgkcCk7CiAgICAgIH0KCiAgICBnY2hhcnRzX2FkbWluX29wczo6ZGVsZXRlX3N0YXRpY19yb3V0ZSgkY2hhcnRpZCk7CiAgICAKICAgIC8vVXBkYXRlIHNlYXJjaCBpbmRleAogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR0NoYXJ0cycpOwogICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU2VhcmNoJyk7CiAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkKICAgICAgewoJJG1vZHVsZS0+RGVsZXRlV29yZHMoJG1vZC0+R2V0TmFtZSgpLCAkY2hhcnRpZCwgJ2NoYXJ0Jyk7CiAgICAgIH0KICAgIAogICAgQCRtb2QtPlNlbmRFdmVudCgnR0NoYXJ0c0NoYXJ0RGVsZXRlZCcsIGFycmF5KCdnY2hhcnRzX2lkJyA9PiAkY2hhcnRpZCkpOwoJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCglhdWRpdCgkY2hhcnRpZCwgJ0dDaGFydHM6ICcuJGNoYXJ0aWQsICdDaGFydCBkZWxldGVkJyk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoYW5kbGVfdXBsb2FkKCRpdGVtaWQsJGZpZWxkbmFtZSwmJGVycm9yKQogIHsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSAgCiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQ2hhcnRzJyk7CiAgICAkcCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2djaGFydHMnKTsKICAgIGlmICghaXNfZGlyKCRwKSkgewogICAgICAkcmVzID0gQG1rZGlyKCRwKTsKICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkKCXsKCSAgJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfbWtkaXInLCRwKTsKCSAgcmV0dXJuIEZBTFNFOwoJfQogICAgfQoKICAgICRwID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnZ2NoYXJ0cycsJ2lkJy4kaXRlbWlkKTsKICAgIGlmICghaXNfZGlyKCRwKSkgewogICAgICBpZiggQG1rZGlyKCRwKSA9PT0gRkFMU0UgKQoJewoJICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9ta2RpcicsJHApOwoJICByZXR1cm4gRkFMU0U7Cgl9CiAgICB9CgogICAgaWYoICRfRklMRVNbJGZpZWxkbmFtZV1bJ3NpemUnXSA+ICRjb25maWdbJ21heF91cGxvYWRfc2l6ZSddICkKICAgICAgewoJJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfZmlsZXNpemUnKTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbJGZpZWxkbmFtZV1bJ25hbWUnXSk7CiAgICAkZGVzdCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2djaGFydHMnLCdpZCcuJGl0ZW1pZCwkZmlsZW5hbWUpOwoKICAgIC8vIEdldCB0aGUgZmlsZXMgZXh0ZW5zaW9uCiAgICAkZXh0ID0gc3Vic3RyKHN0cnJjaHIoJGZpbGVuYW1lLCAnLicpLCAxKTsKCiAgICAvLyBjb21wYXJlIGl0IGFnYWluc3QgdGhlICdhbGxvd2VkIGV4dGVudGlvbnMnCiAgICAkZXh0cyA9IGV4cGxvZGUoJywnLCRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfdXBsb2FkX3R5cGVzJywnJykpOwogICAgaWYoICFpbl9hcnJheSggJGV4dCwgJGV4dHMgKSApIAogICAgICB7CgkkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9pbnZhbGlkZmlsZXR5cGUnKTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgIGlmKCBAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRmaWVsZG5hbWVdWyd0bXBfbmFtZSddLCAkZGVzdCkgPT09IEZBTFNFICkKICAgICAgewoJJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfbW92ZWZpbGUnLCRkZXN0KTsKCXJldHVybiBGQUxTRTsKICAgICAgfQoKICAgIHJldHVybiAkZmlsZW5hbWU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBBZG1pbkNyZWF0ZVRlbXBsYXRlTGlzdCggJGlkLCAkcmV0dXJuaWQsICRwcmVmaXgsICRkZWZhdWx0dGVtcGxhdGVwcmVmLCAKCQkJCQkJICAkYWN0aXZlX3RhYiwgJGRlZmF1bHRwcmVmbmFtZSwgJG5hbWUgKQogIHsKICAgIC8vIHdlJ3JlIGdvbm5hIGFsbG93IG11bHRpcGxlIHRlbXBsYXRlcyBoZXJlCiAgICAvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nCiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdHQ2hhcnRzJyk7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAKICAgICRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOwogICAgJHRydWVpbWFnZTEgPSAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywnZGVmYXVsdCcsJycsJycsJ3N5c3RlbWljb24nKTsKICAgICRhbGx0ZW1wbGF0ZXMgPSAkbW9kLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAkcm93YXJyYXkgPSBhcnJheSgpOwogICAgJHJvd2NsYXNzID0gJ3JvdzEnOwogICAgZm9yZWFjaCggJGFsbHRlbXBsYXRlcyBhcyAkb25ldGVtcGxhdGUgKQogICAgICB7CglpZiggIXByZWdfbWF0Y2goIi9eJHByZWZpeC8iLCAkb25ldGVtcGxhdGUgKSApCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoJCgkkdG1wID0gc3Vic3RyKCRvbmV0ZW1wbGF0ZSxzdHJsZW4oJHByZWZpeCkpOwoJJHJvdyA9IG5ldyBTdGRDbGFzcygpOwoJJHJvdy0+bmFtZSA9ICRtb2QtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdG1wLCBhcnJheSgndGVtcGxhdGUnID0+ICR0bXAsCgkJCQkJCSAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAgJ25hbWUnPT4kbmFtZSwKCQkJCQkJICAgJ3ByZWZpeCc9PiRwcmVmaXgsCgkJCQkJCSAgICdtb2RlJz0+J2VkaXQnKSk7Cgkkcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCgkkZGVmYXVsdCA9ICgkbW9kLT5HZXRQcmVmZXJlbmNlKCRkZWZhdWx0cHJlZm5hbWUpID09ICR0bXApID8gdHJ1ZSA6IGZhbHNlOwoJaWYoICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlZmF1bHQgPSAkdHJ1ZWltYWdlMTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVmYXVsdCA9ICRtb2QtPkNyZWF0ZUxpbmsoICRpZCwgJ21ha2VkZWZhdWx0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJICAgICAgJGZhbHNlaW1hZ2UxLAoJCQkJCSAgICAgIGFycmF5KCd0ZW1wbGF0ZSc9PiR0bXAsCgkJCQkJCSAgICAnZGVmYXVsdHByZWZuYW1lJz0+JGRlZmF1bHRwcmVmbmFtZSwKCQkJCQkJICAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYikpOwoJICB9CgoJJHJvdy0+ZWRpdGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJICAgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4KCQkJCQkgICBEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLAoJCQkJCQkJICRtb2QtPkxhbmcgKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkgICBhcnJheSAoJ3RlbXBsYXRlJyA9PiAkdG1wLAoJCQkJCQkgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAncHJlZml4Jz0+JHByZWZpeCwKCQkJCQkJICAnbmFtZSc9PiRuYW1lLAoJCQkJCQkgICdtb2RlJz0+J2VkaXQnKSk7CgkKCSR0bXAgPSAkcHJlZml4LiJkZWZhdWx0IjsKCWlmKCAoJG9uZXRlbXBsYXRlID09ICR0bXApIHx8ICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlbGV0ZWxpbmsgPSAnJm5ic3A7JzsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVsZXRlbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZXRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCQkgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4KCQkJCQkJIERpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJCSAgICAgICAkbW9kLT5MYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkJIGFycmF5ICgndGVtcGxhdGUnID0+ICRvbmV0ZW1wbGF0ZSksCgkJCQkJCSAkbW9kLT5MYW5nICgnYXJleW91c3VyZScpKTsKCSAgfQoJCglhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwogICAgICB9CiAgICAKICAgICRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsKICAgICRzbWFydHktPmFzc2lnbignbmFtZXByb21wdCcsICRtb2QtPkxhbmcoJ3Byb21wdF9uYW1lJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0cHJvbXB0JywgJG1vZC0+TGFuZygncHJvbXB0X2RlZmF1bHQnKSk7CgogICAgJHNtYXJ0eS0+YXNzaWduKCduZXd0ZW1wbGF0ZWxpbmsnLAoJCSAgICAkbW9kLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkgICAgICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkbW9kLT5MYW5nKCdwcm9tcHRfbmV3dGVtcGxhdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJICAgICAgYXJyYXkoJ3ByZWZpeCcgPT4gJHByZWZpeCwKCQkJCQkgICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLAoJCQkJCSAgICAnbmFtZSc9PiRuYW1lLAoJCQkJCSAgICAnbW9kZScgPT4gJ2FkZCcsCgkJCQkJICAgICdkZWZhdWx0dGVtcGxhdGVwcmVmJyA9PiAkZGVmYXVsdHRlbXBsYXRlcHJlZiksCgkJCQkgICAgICAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLgoKCQkgICAgJG1vZC0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJICAgICAgJG1vZC0+TGFuZygncHJvbXB0X25ld3RlbXBsYXRlJyksCgkJCQkgICAgICBhcnJheSgncHJlZml4JyA9PiAkcHJlZml4LAoJCQkJCSAgICAnYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsCgkJCQkJICAgICduYW1lJz0+JG5hbWUsCgkJCQkJICAgICdtb2RlJyA9PiAnYWRkJywKCQkJCQkgICAgJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnID0+ICRkZWZhdWx0dGVtcGxhdGVwcmVmCgkJCQkJICAgICkpKTsKICAgICRzbWFydHktPmFzc2lnbigkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXR0ZW1wbGF0ZXMudHBsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluRWRpdERlZmF1bHRUZW1wbGF0ZUZvcm0KICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEEgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyBhIGZvcm0gZm9yIGVkaXRpbmcgYSBkZWZhdWx0IHRlbXBsYXRlCiAgIGFuZC9vciByZXR1cm5pbmcgaXQgdG8gc3lzdGVtIGRlZmF1bHRzLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQWRtaW5FZGl0RGVmYXVsdFRlbXBsYXRlRm9ybSgkaWQsJHJldHVybmlkLCRwcmVmbmFtZSwkYWN0aXZlX3RhYiwkbmFtZSwKCQkJCQkJICAgICAgJGZpbGVuYW1lLCRpbmZvKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0dDaGFydHMnKTsKICAgICRzbWFydHkgPSBjbXNfdXRpbHM6OmdldF9zbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHRlbXBsYXRlZm9ybV9uYW1lJywkbmFtZSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fbmFtZScsJGluZm8pOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAoJCSAgICAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRkZWZhdWx0dGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsCgkJCQkJICAgYXJyYXkoJ3ByZWZuYW1lJz0+JHByZWZuYW1lLAoJCQkJCQkgJ2FjdGl2ZV90YWInPT4kYWN0aXZlX3RhYiwKCQkJCQkJICdmaWxlbmFtZSc9PiRmaWxlbmFtZSkpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywkbW9kLT5MYW5nKCd0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfdGVtcGxhdGUnLCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwKCQkJCQkJCSAgICRtb2QtPkdldFByZWZlcmVuY2UoJHByZWZuYW1lKSwKCQkJCQkJCSAgICdpbnB1dF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJG1vZC0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXR0b2RlZmF1bHQnLAoJCQkJCQkgICAgICRtb2QtPkxhbmcoJ3Jlc2V0dG9kZWZhdWx0JykpKTsKICAgICRzbWFydHktPmFzc2lnbignZW5kZm9ybScsCgkJICAgICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICBlY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGRlZmF1bHR0ZW1wbGF0ZS50cGwnKTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIENyZWF0ZVBhcmVudERyb3Bkb3duKCRpZCwgJGNhdGlkID0gLTEsICRzZWxlY3RlZHZhbHVlID0gLTEpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0dDaGFydHMnKTsKCiAgICAkbG9uZ25hbWUgPSAnJzsgICAgICAKICAgICRpdGVtc1snKCcuJG1vZC0+TGFuZygnbm9uZScpLicpJ10gPSAnLTEnOwogICAgICAKICAgICRxdWVyeSA9ICJTRUxFQ1QgaGllcmFyY2h5LCBnY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBXSEVSRSBnY2hhcnRzX2NhdGVnb3J5X2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgewoJJGxvbmduYW1lID0gJHJvd1snaGllcmFyY2h5J10gLiAnJSc7CiAgICAgIH0KICAgICAgCiAgICAkcXVlcnkgPSAiU0VMRUNUIGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgaGllcmFyY2h5LCBnY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBXSEVSRSBoaWVyYXJjaHkgbm90IGxpa2UgPyBPUkRFUiBieSBoaWVyYXJjaHkiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxvbmduYW1lKSk7CiAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgIHsKCSRpdGVtc1skcm93WydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXV0gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107CiAgICAgIH0KCiAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdwYXJlbnQnLCAkaXRlbXMsIC0xLCAkc2VsZWN0ZWR2YWx1ZSk7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBVcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJHF1ZXJ5ID0gIlNFTEVDVCBnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgewoJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gIiI7CgkkY3VycmVudF9nY2hhcnRzX2NhdGVnb3J5X25hbWUgPSAiIjsKCSRjb250ZW50X2lkID0gJHJvd1snZ2NoYXJ0c19jYXRlZ29yeV9pZCddOwoJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvd1snZ2NoYXJ0c19jYXRlZ29yeV9pZCddOwoJJGNvdW50ID0gMDsKCSAgCgl3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpCgkgIHsKCSAgICAkcXVlcnkgPSAiU0VMRUNUIGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgV0hFUkUgZ2NoYXJ0c19jYXRlZ29yeV9pZCA9ID8iOwoJICAgICRyb3cyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9wYXJlbnRfaWQpKTsKCSAgICBpZiAoJHJvdzIpCgkgICAgICB7CgkJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3RyX3BhZCgkcm93MlsnZ2NoYXJ0c19jYXRlZ29yeV9pZCddLCA1LCAnMCcsIFNUUl9QQURfTEVGVCkgLiAiLiIgLiAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb247CgkJJGN1cnJlbnRfZ2NoYXJ0c19jYXRlZ29yeV9uYW1lID0gJHJvdzJbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9nY2hhcnRzX2NhdGVnb3J5X25hbWU7CgkJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwoJCSRjb3VudCsrOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkY3VycmVudF9wYXJlbnRfaWQgPSAwOwoJICAgICAgfQoJICB9CgkgIAoJaWYgKHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pID4gMCkKCSAgewoJICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN1YnN0cigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sIDAsIHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pIC0gMSk7CgkgIH0KCSAgCglpZiAoc3RybGVuKCRjdXJyZW50X2djaGFydHNfY2F0ZWdvcnlfbmFtZSkgPiAwKQoJICB7CgkgICAgJGN1cnJlbnRfZ2NoYXJ0c19jYXRlZ29yeV9uYW1lID0gc3Vic3RyKCRjdXJyZW50X2djaGFydHNfY2F0ZWdvcnlfbmFtZSwgMCwgc3RybGVuKCRjdXJyZW50X2djaGFydHNfY2F0ZWdvcnlfbmFtZSkgLSAzKTsKCSAgfQoJICAKCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgU0VUIGhpZXJhcmNoeSA9ID8sIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSA9ID8gV0hFUkUgZ2NoYXJ0c19jYXRlZ29yeV9pZCA9ID8iOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkY3VycmVudF9nY2hhcnRzX2NhdGVnb3J5X25hbWUsICRjb250ZW50X2lkKSk7CiAgICAgIH0KICB9CiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfc3RhdGljX3JvdXRlKCRnY2hhcnRzX2NoYXJ0X2lkKQogIHsKICAgIHJldHVybiBjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywnR0NoYXJ0cycsJGdjaGFydHNfY2hhcnRfaWQpOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.gcharts_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKI2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiNidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KI1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiNhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQojCiMkSWQ6IEdDaGFydHMubW9kdWxlLnBocCAyMTE0IDIwMDUtMTEtMDQgMjE6NTE6MTNaIHdpc2h5ICQKCmZpbmFsIGNsYXNzIGdjaGFydHNfb3BzCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICBwcml2YXRlIHN0YXRpYyAkX2NhdGVnb3JpZXNfbG9hZGVkOwogIHByaXZhdGUgc3RhdGljICRfY2FjaGVkX2NhdGVnb3JpZXM7CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3JpZXMoJGlkLCRwYXJhbXMsJHJldHVybmlkPS0xKQogIHsKICAgICR0bXAgPSBzZWxmOjpnZXRfYWxsX2NhdGVnb3JpZXMoKTsKICAgIGlmKCAhY291bnQoJHRtcCkgKSByZXR1cm47CgogICAgJGNhdGluZm8gPSBhcnJheSgpOwogICAgaWYoICFpc3NldCgkcGFyYW1zWydjYXRlZ29yeSddKSB8fCAkcGFyYW1zWydjYXRlZ29yeSddID09ICcnICkgewogICAgICAkY2F0aW5mbyA9ICR0bXA7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJGNhdGVnb3JpZXMgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snY2F0ZWdvcnknXSk7CiAgICAgIGZvcmVhY2goICRjYXRlZ29yaWVzIGFzICRvbmVjYXQgKSB7CglpZiggc3RycG9zKCRvbmVjYXQsJyonKSAhPT0gRkFMU0UgKSB7CgkgIGZvcmVhY2goICR0bXAgYXMgJHJlYyApIHsKIAkgICAgaWYoIGZubWF0Y2goJG9uZWNhdCwkcmVjWydnY2hhcnRzX2NhdGVnb3J5X25hbWUnXSkgKSB7CgkgICAgICAkY2F0aW5mb1tdID0gJHJlYzsKCSAgICB9CgkgIH0KCX0KCWVsc2UgewoJICBmb3JlYWNoKCAkdG1wIGFzICRyZWMgKSB7CgkgICAgaWYoICRyZWNbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddID09ICRvbmVjYXQgKSB7CgkgICAgICAkY2F0aW5mb1tdID0gJHJlYzsKCSAgICB9CgkgIH0KCX0KICAgICAgfQogICAgfQogICAgdW5zZXQoJHRtcCk7CiAgICBpZiggIWNvdW50KCRjYXRpbmZvKSApIHJldHVybjsKCiAgICAkY2F0X2lkcyA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0aW5mbyk7ICRpKysgKSB7CiAgICAgICRjYXRfaWRzW10gPSAkY2F0aW5mb1skaV1bJ2djaGFydHNfY2F0ZWdvcnlfaWQnXTsKICAgIH0KICAgIHNvcnQoJGNhdF9pZHMpOwogICAgJGNhdF9pZHMgPSBhcnJheV91bmlxdWUoJGNhdF9pZHMpOwoKICAgIC8vIGdldCBjb3VudHMuCiAgICAkZGVwdGggPSAxOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRjb3VudHMgPSBhcnJheSgpOwoKICAgIHsKICAgICAgJHEyID0gJ1NFTEVDVCBnY2hhcnRzX2NhdGVnb3J5X2lkLENPVU5UKGdjaGFydHNfaWQpIEFTIGNudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBXSEVSRSBnY2hhcnRzX2NhdGVnb3J5X2lkIElOICgnOwogICAgICAkcTIgLj0gaW1wbG9kZSgnLCcsJGNhdF9pZHMpLicpJzsKICAgICAgJHEyIC49ICcgQU5EIHN0YXR1cyA9IFwncHVibGlzaGVkXCcgR1JPVVAgQlkgZ2NoYXJ0c19jYXRlZ29yeV9pZCc7CiAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxMik7CiAgICAgIGlmKCBjb3VudCgkdG1wKSApIHsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJICAkY291bnRzWyR0bXBbJGldWydnY2hhcnRzX2NhdGVnb3J5X2lkJ11dID0gJHRtcFskaV1bJ2NudCddOwoJfQogICAgICB9CiAgICB9CgogICAgJHJvd2NvdW50ZXI9MDsKICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICAkZGVwdGggPSAxOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGNhdGluZm8pOyAkaSsrICkgewogICAgICAkcm93ID0mICRjYXRpbmZvWyRpXTsKICAgICAgJHJvd1snaW5kZXgnXSA9ICRyb3djb3VudGVyKys7CiAgICAgICRyb3dbJ2NvdW50J10gPSAoaXNzZXQoJGNvdW50c1skcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ11dKSk/JGNvdW50c1skcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ11dOjA7CiAgICAgICRyb3dbJ3ByZXZkZXB0aCddID0gJGRlcHRoOwogICAgICAkZGVwdGggPSBjb3VudChleHBsb2RlKCcuJywgJHJvd1snaGllcmFyY2h5J10pKTsKICAgICAgJHJvd1snZGVwdGgnXT0kZGVwdGg7CgogICAgICAvLyBjaGFuZ2VzIHNvIHRoYXQgcGFyYW1ldGVycyBzdXBwbGllZCB0byB0aGUgdGFnCiAgICAgIC8vIGdldHMgY2FycmllZCBkb3duIHRocm91Z2ggdGhlIGxpbmtzCiAgICAgIC8vIHNjcmV3IHByZXR0eSB1cmxzCiAgICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAgIHVuc2V0KCRwYXJtc1snYnJvd3NlY2F0J10pOwogICAgICB1bnNldCgkcGFybXNbJ2NhdGVnb3J5J10pOwogICAgICAkcGFybXNbJ2NhdGVnb3J5X2lkJ10gPSAkcm93WydnY2hhcnRzX2NhdGVnb3J5X2lkJ107CgogICAgICAkcGFnZWlkID0gKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgJiYgJHBhcmFtc1snZGV0YWlscGFnZSddIT0nJyk/JHBhcmFtc1snZGV0YWlscGFnZSddOiRyZXR1cm5pZDsKICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR0NoYXJ0cycpOwogICAgICAkcm93Wyd1cmwnXSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcGFnZWlkLCRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddLCRwYXJtcywnJyx0cnVlKTsKICAgICAgJGl0ZW1zW10gPSAkcm93OwogICAgfQogICAgcmV0dXJuICRpdGVtczsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hbGxfY2F0ZWdvcmllcygpCiAgewogICAgaWYoICFzZWxmOjokX2NhdGVnb3JpZXNfbG9hZGVkICkgewogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBoaWVyYXJjaHkiOwogICAgICAkZGJyZXN1bHQgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgIGlmKCAkZGJyZXN1bHQgKSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzID0gJGRicmVzdWx0OwogICAgICBzZWxmOjokX2NhdGVnb3JpZXNfbG9hZGVkID0gVFJVRTsKICAgIH0KICAgIHJldHVybiBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2xpc3QoKQogIHsKICAgIHNlbGY6OmdldF9hbGxfY2F0ZWdvcmllcygpOwogICAgJGNhdGVnb3J5bGlzdCA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKICAgICAgJHJvdyA9IHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXNbJGldOwogICAgICAkY2F0ZWdvcnlsaXN0WyRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfbmFtZSddXSA9ICRyb3dbJ2djaGFydHNfY2F0ZWdvcnlfaWQnXTsKICAgIH0KCiAgICByZXR1cm4gJGNhdGVnb3J5bGlzdDsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9uYW1lc19ieV9pZCgpCiAgewogICAgc2VsZjo6Z2V0X2FsbF9jYXRlZ29yaWVzKCk7CiAgICAkbGlzdCA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKICAgICAgJGxpc3Rbc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllc1skaV1bJ2djaGFydHNfY2F0ZWdvcnlfaWQnXV0gPSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZ2NoYXJ0c19jYXRlZ29yeV9uYW1lJ107CiAgICB9CiAgICByZXR1cm4gJGxpc3Q7CiAgfQoKICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9uYW1lX2Zyb21faWQoJGlkKQogIHsKICAgIHNlbGY6OmdldF9hbGxfY2F0ZWdvcmllcygpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllcyk7ICRpKysgKSB7CiAgICAgIGlmKCAkaWQgPT0gc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllc1skaV1bJ2djaGFydHNfY2F0ZWdvcnlfaWQnXSApIHsKCXJldHVybiBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZ2NoYXJ0c19jYXRlZ29yeV9uYW1lJ107CiAgICAgIH0KICAgIH0KICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbGxfY2hhcnRfZnJvbV9mb3JtcGFyYW1zKGdjaGFydHNfY2hhcnQgJiRnY2hhcnRzLCRwYXJhbXMsJGhhbmRsZV91cGxvYWRzID0gRkFMU0UsJGhhbmRsZV9kZWxldGVzID0gRkFMU0UpCiAgewogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICBjYXNlICdjaGFydGlkJzoKCSRnY2hhcnRzLT5pZCA9ICR2YWx1ZTsKCWJyZWFrOwoKICAgICAgY2FzZSAnbmFtZSc6CiAgICAgIGNhc2UgJ2RhdGEnOgogICAgICBjYXNlICdzdGF0dXMnOgoJJGdjaGFydHMtPiRrZXkgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ2NhdGVnb3J5JzoKCSRsaXN0ID0gc2VsZjo6Z2V0X2NhdGVnb3J5X25hbWVzX2J5X2lkKCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKCSAgaWYoICR2YWx1ZSA9PSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZ2NoYXJ0c19jYXRlZ29yeV9uYW1lJ10gKQoJICAgICRnY2hhcnRzLT5jYXRlZ29yeV9pZCA9IHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXNbJGldWydnY2hhcnRzX2NhdGVnb3J5X2lkJ107Cgl9CglicmVhazsKICAgIH0KCX0KCiAgICByZXR1cm4gJGdjaGFydHM7CiAgfQoKCiAgc3RhdGljIHByaXZhdGUgZnVuY3Rpb24gJmdldF9jaGFydF9mcm9tX3Jvdygkcm93KQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHJvdykgKSByZXR1cm47CiAgICAkY2hhcnQgPSBuZXcgZ2NoYXJ0c19jaGFydDsKICAgIGZvcmVhY2goICRyb3cgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgY2FzZSAnZ2NoYXJ0c19pZCc6CgkkY2hhcnQtPmlkID0gJHZhbHVlOwoJYnJlYWs7CgogICAgICBjYXNlICdnY2hhcnRzX2NhdGVnb3J5X2lkJzoKCSRjaGFydC0+Y2F0ZWdvcnlfaWQgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ2djaGFydHNfbmFtZSc6CgkkY2hhcnQtPm5hbWUgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ2djaGFydHNfZGF0YSc6CgkkY2hhcnQtPmRhdGEgPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGNhc2UgJ3N0YXR1cyc6CgkkY2hhcnQtPnN0YXR1cyA9ICR2YWx1ZTsKCWJyZWFrOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuICRjaGFydDsKICB9CgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gJmdldF9sYXRlc3RfY2hhcnQoJGZvcl9kaXNwbGF5ID0gVFJVRSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgbW4uKiwgbW5jLmdjaGFydHNfY2F0ZWdvcnlfbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0cyBtbiBMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgbW5jIE9OIG1uYy5nY2hhcnRzX2NhdGVnb3J5X2lkID0gbW4uZ2NoYXJ0c19jYXRlZ29yeV9pZCBXSEVSRSBzdGF0dXMgPSAncHVibGlzaGVkJyBBTkQgIjsKICAgICRxdWVyeSAuPSAnT1JERVIgQlkgZ2NoYXJ0c19pZCBERVNDIExJTUlUIDEnOwogICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSk7CgogICAgcmV0dXJuIHNlbGY6OmdldF9jaGFydF9mcm9tX3Jvdygkcm93LCgkZm9yX2Rpc3BsYXkpPydQVUJMSUMnOidBTEwnKTsgICAgCiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiAmZ2V0X2NoYXJ0X2J5X2lkKCRjaGFydF9pZCwkZm9yX2Rpc3BsYXkgPSBUUlVFLCRhbGxvd19leHBpcmVkID0gRkFMU0UpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgbW4uKiwgbW5jLmdjaGFydHNfY2F0ZWdvcnlfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0cyBtbiAKICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgbW5jIE9OIG1uYy5nY2hhcnRzX2NhdGVnb3J5X2lkID0gbW4uZ2NoYXJ0c19jYXRlZ29yeV9pZCAKICAgICAgICAgICAgICBXSEVSRSBzdGF0dXMgPSBcJ3B1Ymxpc2hlZFwnIEFORCBnY2hhcnRzX2lkID0gPyc7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY2hhcnRfaWQpKTsKCiAgICAkcmVzID0gbnVsbDsKICAgIGlmKCAhJHJvdyApIHJldHVybiAkcmVzOwogICAgCiAgICByZXR1cm4gc2VsZjo6Z2V0X2NoYXJ0X2Zyb21fcm93KCRyb3csKCRmb3JfZGlzcGxheSk/J1BVQkxJQyc6J0FMTCcpOyAgICAKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdDaGFydHMgKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbiAKIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHBhZ2VzCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmKCAhY2xhc3NfZXhpc3RzKCdnY2hhcnRzX2FkbWluX29wcycpICkKICB7CiAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIGlmIGNhbGxlZCBmcm9tIHRoZSBpbnN0YWxsZXIKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvbGliL2NsYXNzLmdjaGFydHNfYWRtaW5fb3BzLnBocCc7CiAgICByZXF1aXJlX29uY2UoJGZuKTsKICB9CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRmbGRzID0gIgogICAgIGdjaGFydHNfaWQgSSBLRVksCgkgZ2NoYXJ0c19jYXRlZ29yeV9pZCBJLAoJIGdjaGFydHNfZWxlbWVudF9pZCBDKDI1NSksCgkgZ2NoYXJ0c19jYXRlZ29yeV9uYW1lIEMoMjU1KSwKCSBnY2hhcnRzX25hbWUgQygyNTUpLAoJIGdjaGFydHNfZGF0YSBYLAoJIGF4aXNUaXRsZXNQb3NpdGlvbiBDKDI1NSksCgkgYmFja2dyb3VuZENvbG9yIEMoMjU1KSwKCSBjaGFydEFyZWEgQygyNTUpLAoJIGN1cnZlVHlwZSBDKDI1NSksCgkgY29sb3JzIEMoMjU1KSwKCSBlbmFibGVJbnRlcmFjdGl2aXR5IEMoMjU1KSwKCSBmb2N1c1RhcmdldCBDKDI1NSksCgkgZm9udFNpemUgQygyNTUpLAoJIGZvbnROYW1lIEMoMjU1KSwKCSBoQXhlcyBDKDI1NSksCgkgaEF4aXMgQygyNTUpLAoJIGhlaWdodCBDKDI1NSksCgkgaW50ZXJwb2xhdGVkTnVsbHMgQygyNTUpLAoJIGlzSHRtbCBDKDI1NSksCgkgaXNTdGFja2VkIEMoMjU1KSwKCSBpczNEIEMoMjU1KSwKCSBsZWdlbmQgQygyNTUpLAoJIGxpbmVXaWR0aCBDKDI1NSksCgkgc2xpY2VzIEMoMjU1KSwKCSBwaWVTbGljZUJvcmRlckNvbG9yIEMoMjU1KSwKCSBwaWVTbGljZVRleHQgQygyNTUpLAoJIHBpZVNsaWNlVGV4dFN0eWxlIEMoMjU1KSwKCSBwb2ludFNpemUgQygyNTUpLAoJIHJldmVyc2VDYXRlZ29yaWVzIEMoMjU1KSwKCSBzZXJpZXMgQygyNTUpLAoJIHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCBDKDI1NSksCgkgcGllUmVzaWR1ZVNsaWNlQ29sb3IgQygyNTUpLAoJIHBpZVJlc2lkdWVTbGljZUxhYmVsIEMoMjU1KSwKCSB0aGVtZSBDKDI1NSksCgkgdGl0bGUgQygyNTUpLAoJIHRpdGxlUG9zaXRpb24gQygyNTUpLAoJIHRpdGxlVGV4dFN0eWxlIEMoMjU1KSwKCSB0b29sdGlwIEMoMjU1KSwKCSB2QXhlcyBDKDI1NSksCgkgdkF4aXMgQygyNTUpLAoJIHdpZHRoIEMoMjU1KSwKCSBhZ2dyZWdhdGlvblRhcmdldCBDKDI1NSksCgkgZ3JvdXBXaWR0aCBDKDI1NSksCgkgc3RhdHVzIEMoMjUpCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSggJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nICk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0cyIsCgkJCQkgICAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfc2VxIik7CgokZmxkcyA9ICIKCWdjaGFydHNfY2F0ZWdvcnlfaWQgSSBLRVksCglnY2hhcnRzX2NhdGVnb3J5X25hbWUgQygyNTUpLAoJcGFyZW50X2lkIEksCgloaWVyYXJjaHkgQygyNTUpLAoJY3JlYXRlX2RhdGUgIi5DTVNfQURPREJfRFQuIiwKCW1vZGlmaWVkX2RhdGUgIi5DTVNfQURPREJfRFQuIgoiOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzX3NlcSIpOwoKLy8gY3JlYXRlIGEgcGVybWlzc2lvbgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignVXNlIEdDaGFydHMnLCAnVXNlIEdDaGFydHMnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0FwcHJvdmUgR0NoYXJ0cycsICdBcHByb3ZlIEdDaGFydHMgRm9yIEZyb250ZW5kIERpc3BsYXknKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0RlbGV0ZSBHQ2hhcnRzJywgJ0RlbGV0ZSBHQ2hhcnRzIENoYXJ0cycpOwoKLy8gY3JlYXRlIGEgcHJlZmVyZW5jZQokdGhpcy0+U2V0UHJlZmVyZW5jZSgiYWxsb3dfYWRkIiwgdHJ1ZSk7CgojIFNldHVwIGNhdGVnb3JpZXMKJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIChnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUsIHBhcmVudF9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nKSc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCcxJywgJ1BpZSBDaGFydCcsIC0xKSk7CgokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgKGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicpJzsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJzInLCAnTGluZSBDaGFydCcsIC0xKSk7CgokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXMgKGdjaGFydHNfY2F0ZWdvcnlfaWQsIGdjaGFydHNfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicpJzsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJzMnLCAnQmFyIENoYXJ0JywgLTEpKTsKCiRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2djaGFydHNfY2F0ZWdvcmllcyAoZ2NoYXJ0c19jYXRlZ29yeV9pZCwgZ2NoYXJ0c19jYXRlZ29yeV9uYW1lLCBwYXJlbnRfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyknOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnNCcsICdDb2x1bW4gQ2hhcnQnLCAtMSkpOwoNCiMgU2V0dXAgZGV0YWlsIHRlbXBsYXRlDQokZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLg0KICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidnY2hhcnRzX2xpc3QudHBsJzsNCmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfZGV0YWlsX3RlbXBsYXRlX2NvbnRlbnRzJywkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZGV0YWlsU2FtcGxlJywkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X2RldGFpbF90ZW1wbGF0ZScsJ0RlZmF1bHQnKTsNCn0KCiMgU2V0dXAgcGVybWlzc2lvbnMKJHBlcm1faWQgPSAkZGItPkdldE9uZSgiU0VMRUNUIHBlcm1pc3Npb25faWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4icGVybWlzc2lvbnMgV0hFUkUgcGVybWlzc2lvbl9uYW1lID0gJ01vZGlmeSBHQ2hhcnRzJyIpOwokZ3JvdXBfaWQgPSAkZGItPkdldE9uZSgiU0VMRUNUIGdyb3VwX2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImdyb3VwcyBXSEVSRSBncm91cF9uYW1lID0gJ0FkbWluJyIpOwoKJGNvdW50ID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiZ3JvdXBfcGVybXMgV0hFUkUgZ3JvdXBfaWQgPSA/IEFORCBwZXJtaXNzaW9uX2lkID0gPyIsIGFycmF5KCRncm91cF9pZCwgJHBlcm1faWQpKTsKaWYgKGlzc2V0KCRjb3VudCkgJiYgaW50dmFsKCRjb3VudCkgPT0gMCkKewoJJG5ld19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJncm91cF9wZXJtc19zZXEiKTsKCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gImdyb3VwX3Blcm1zIChncm91cF9wZXJtX2lkLCBncm91cF9pZCwgcGVybWlzc2lvbl9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoIi4kbmV3X2lkLiIsICIuJGdyb3VwX2lkLiIsICIuJHBlcm1faWQuIiwgIi4gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpIC4gIiwgIiAuICRkYi0+REJUaW1lU3RhbXAodGltZSgpKSAuICIpIjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOwp9CgokZ3JvdXBfaWQgPSAkZGItPkdldE9uZSgiU0VMRUNUIGdyb3VwX2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImdyb3VwcyBXSEVSRSBncm91cF9uYW1lID0gJ0VkaXRvciciKTsKCiRjb3VudCA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgY291bnQoKikgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gImdyb3VwX3Blcm1zIFdIRVJFIGdyb3VwX2lkID0gPyBBTkQgcGVybWlzc2lvbl9pZCA9ID8iLCBhcnJheSgkZ3JvdXBfaWQsICRwZXJtX2lkKSk7CmlmIChpc3NldCgkY291bnQpICYmIGludHZhbCgkY291bnQpID09IDApCnsKCSRuZXdfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4iZ3JvdXBfcGVybXNfc2VxIik7CgkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJncm91cF9wZXJtcyAoZ3JvdXBfcGVybV9pZCwgZ3JvdXBfaWQsIHBlcm1pc3Npb25faWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKCIuJG5ld19pZC4iLCAiLiRncm91cF9pZC4iLCAiLiRwZXJtX2lkLiIsICIuICRkYi0+REJUaW1lU3RhbXAodGltZSgpKSAuICIsICIgLiAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkgLiAiKSI7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKfQoKI1NldHVwIGV2ZW50cwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0dDaGFydHNDaGFydEFkZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnR0NoYXJ0c0NoYXJ0RWRpdGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnR0NoYXJ0c0NoYXJ0RGVsZXRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0dDaGFydHNDYXRlZ29yeUFkZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnR0NoYXJ0c0NhdGVnb3J5RWRpdGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnR0NoYXJ0c0NhdGVnb3J5RGVsZXRlZCcpOwoKJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKFRSVUUpOwokdGhpcy0+UmVnaXN0ZXJTbWFydHlQbHVnaW4oJ2djaGFydHMnLCdmdW5jdGlvbicsJ2Z1bmN0aW9uX3BsdWdpbicpOwoKLy8gYW5kIHJvdXRlcy4uLgokcm91dGUgPSBuZXcgQ21zUm91dGUoJy9bZ0ddY2hhcnRzXC8oP1A8Y2hhcnRpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KVwvZCwoP1A8ZGV0YWlsdGVtcGxhdGU+Lio/KSQvJywKCQkgICAgICAkdGhpcy0+R2V0TmFtZSgpKTsKY21zX3JvdXRlX21hbmFnZXI6OmFkZF9zdGF0aWMoJHJvdXRlKTsKJHJvdXRlID0gbmV3IENtc1JvdXRlKCcvW2dHXWNoYXJ0c1wvKD9QPGNoYXJ0aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsJHRoaXMtPkdldE5hbWUoKSk7CmNtc19yb3V0ZV9tYW5hZ2VyOjphZGRfc3RhdGljKCRyb3V0ZSk7CiRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgnL1tnR11jaGFydHNcLyg/UDxjaGFydGlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLCR0aGlzLT5HZXROYW1lKCkpOwpjbXNfcm91dGVfbWFuYWdlcjo6YWRkX3N0YXRpYygkcm91dGUpOwokcm91dGUgPSBuZXcgQ21zUm91dGUoJy9bZ0ddY2hhcnRzXC8oP1A8Y2hhcnRpZD5bMC05XSspJC8nLCR0aGlzLT5HZXROYW1lKCkpOwpjbXNfcm91dGVfbWFuYWdlcjo6YWRkX3N0YXRpYygkcm91dGUpOwoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgCgkgICAgICAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksIAoJICAgICAgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsICR0aGlzLT5HZXRWZXJzaW9uKCkpICk7CgoJICAgICAgCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2NoYXJ0c19zZXEiICk7CiRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nY2hhcnRzX2NhdGVnb3JpZXNfc2VxIiApOwoKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBHQ2hhcnRzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBcHByb3ZlIEdDaGFydHMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0RlbGV0ZSBHQ2hhcnRzJyk7CgovLyBSZW1vdmUgYWxsIHByZWZlcmVuY2VzIGZvciB0aGlzIG1vZHVsZQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gQW5kIGFsbCBUZW1wbGF0ZXMKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CgojU2V0dXAgZXZlbnRzCiR0aGlzLT5SZW1vdmVFdmVudCgnR0NoYXJ0c0NoYXJ0QWRkZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdHQ2hhcnRzQ2hhcnRFZGl0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdHQ2hhcnRzQ2hhcnREZWxldGVkJyk7CgokdGhpcy0+UmVtb3ZlU21hcnR5UGx1Z2luKCk7CgpjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywkdGhpcy0+R2V0TmFtZSgpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdDaGFydHMgKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbiAKIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhZGQgR29vZ2xlIENoYXJ0cyB0byB5b3VyIHBhZ2VzCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKJGRiID0mICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7Cgpzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikgewogIC8vIHdlIGFyZSBub3cgMS4wIGFuZCB3YW50IHRvIHVwZ3JhZGUgdG8gbGF0ZXN0CiBjYXNlICIxLjAiOgogY2FzZSAiMS4xIjoKIGNhc2UgIjEuMiI6CgkkZmllbGRzID0gJwoJCWFnZ3JlZ2F0aW9uVGFyZ2V0IEMoMjU1KSwKCQlncm91cFdpZHRoIEMoMjU1KQoJJzsKCgkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZ2NoYXJ0cycsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZ2NoYXJ0c19jYXRlZ29yaWVzIChnY2hhcnRzX2NhdGVnb3J5X2lkLCBnY2hhcnRzX2NhdGVnb3J5X25hbWUsIHBhcmVudF9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nKSc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnNCcsICdDb2x1bW4gQ2hhcnQnLCAtMSkpOwoKfQoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgCgkgICAgICAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksIAoJICAgICAgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKLy9ub3RlOiBtb2R1bGUgYXBpIGhhbmRsZXMgc2VuZGluZyBnZW5lcmljIGV2ZW50IG9mIG1vZHVsZSB1cGdyYWRlZCBoZXJlCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/chartlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKZnVuY3Rpb24gc2VsZWN0QWxsKCkKewogIGNoZWNrYm94ZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTsKICBmb3IgKGk9MDsgaTxjaGVja2JveGVzLmxlbmd0aCA7IGkrKykKICAgIHsKICAgICAgaWYgKGNoZWNrYm94ZXNbaV0udHlwZSA9PSAiY2hlY2tib3giKSBjaGVja2JveGVzW2ldLmNoZWNrZWQ9IWNoZWNrYm94ZXNbaV0uY2hlY2tlZDsKICAgIH0KfQovL11dPgo8L3NjcmlwdD4Key9saXRlcmFsfQoKCntpZiAkaXRlbWNvdW50ID4gMH0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgp7aWYgaXNzZXQoJGFkZGxpbmspfTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD57L2lmfQo8L2Rpdj4KCntpZiAkcGFnZWNvdW50ID4gMX0KICA8cD4Ke2lmICRwYWdlbnVtYmVyID4gMX0KeyRmaXJzdHBhZ2V9Jm5ic3A7eyRwcmV2cGFnZX0mbmJzcDsKey9pZn0KeyRwYWdlbnVtYmVyfSZuYnNwO3skb2Z0ZXh0fSZuYnNwO3skcGFnZWNvdW50fQp7aWYgJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50fQombmJzcDt7JG5leHRwYWdlfSZuYnNwO3skbGFzdHBhZ2V9CnsvaWZ9CjwvcD4Key9pZn0KCnskZm9ybTJzdGFydH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskY2hhcnRpZHRleHR9PC90aD4KCQkJPHRoPnskbmFtZXRleHR9PC90aD4KCQkJPHRoPnskY2F0ZWdvcnl0ZXh0fTwvdGg+CgkJCTwhLS08dGggY2xhc3M9InBhZ2VpY29uIj57JHN0YXR1c3RleHR9PC90aD4tLT4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+PGEgaHJlZj0iamF2YXNjcmlwdDpzZWxlY3RBbGwoKTsiPnskc2VsZWN0dGV4dH08L2E+PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4KCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4KCQkJPHRkPnskZW50cnktPmNhdGVnb3J5fTwvdGQ+CgkJCTwhLS08dGQ+e2lmIGlzc2V0KCRlbnRyeS0+YXBwcm92ZV9saW5rKX17JGVudHJ5LT5hcHByb3ZlX2xpbmt9ey9pZn08L3RkPi0tPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt8ZGVmYXVsdDonJ308L3RkPgoJCQk8dGQ+e2lmIGlzc2V0KCRlbnRyeS0+ZGVsZXRlbGluayl9eyRlbnRyeS0+ZGVsZXRlbGlua317L2lmfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5zZWxlY3R9PC90ZD4KCQk8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0KCjxkaXYgc3R5bGU9IndpZHRoOiA5NyU7Ij4KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiIHN0eWxlPSJmbG9hdDogbGVmdDsiPgp7aWYgaXNzZXQoJGFkZGxpbmspfTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD57L2lmfQo8L2Rpdj4Ke2lmICRpdGVtY291bnQgPiAwfQogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+CiAgICB7JHJlYXNzaWdudGV4dH06Jm5ic3A7eyRjYXRlZ29yeWlucHV0fXskc3VibWl0X3JlYXNzaWdufXtpZiBpc3NldCgkc3VibWl0X21hc3NkZWxldGUpfTxici8+eyRzdWJtaXRfbWFzc2RlbGV0ZX17L2lmfQogIDwvZGl2Pgp7L2lmfQo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj4KeyRmb3JtMmVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/editchart.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKJChmdW5jdGlvbigpIHsKCmZ1bmN0aW9uIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NuYW1lLCBub2RlKSAgewogICAgaWYoIW5vZGUpIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdOwogICAgdmFyIGEgPSBbXTsKICAgIHZhciByZSA9IG5ldyBSZWdFeHAoJ1xcYicgKyBjbGFzc25hbWUgKyAnXFxiJyk7CiAgICB2YXIgZWxzID0gbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOwogICAgZm9yKHZhciBpPTAsaj1lbHMubGVuZ3RoOyBpPGo7IGkrKykKICAgICAgICBpZihyZS50ZXN0KGVsc1tpXS5jbGFzc05hbWUpKWEucHVzaChlbHNbaV0pOwogICAgcmV0dXJuIGE7Cn0KCXZhciBlbGVtZW50cyA9IG5ldyBBcnJheSgpOwoKCWlmICh7L2xpdGVyYWx9eyRjdXJyY2F0fXtsaXRlcmFsfSA9PSAxKSB7CgkJbGluZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmUnKTsKCQliYXIgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYXInKTsKCQlwaWUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwaWUnKTsKCQljb2wgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjb2wnKTsKCQltaXggPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaXgnKTsKCQltaXgyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWl4MicpOwoJCWZvcihpbCBpbiBsaW5lICl7CiAgICAgCQlsaW5lW2lsXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCX0KCQlmb3IoaWIgaW4gYmFyICl7CiAgICAgCQliYXJbaWJdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJfQoJCWZvcihpYyBpbiBjb2wgKXsKICAgICAJCWNvbFtpY10uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9CgkJZm9yKGltIGluIG1peCApewogICAgIAkJbWl4W2ltXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCX0KCQlmb3IoaW0yIGluIG1peDIgKXsKICAgICAJCW1peDJbaW0yXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCX0KCX1lbHNlIGlmICh7L2xpdGVyYWx9eyRjdXJyY2F0fXtsaXRlcmFsfSA9PSAyKSB7CgkJbGluZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmUnKTsKCQliYXIgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYXInKTsKCQlwaWUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwaWUnKTsKCQljb2wgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjb2wnKTsKCQltaXggPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaXgnKTsKCQltaXgyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWl4MicpOwoJCWZvcihpcCBpbiBwaWUgKXsKICAgICAJCXBpZVtpcF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9CgkJZm9yKGlsIGluIGxpbmUgKXsKICAgICAJCWxpbmVbaWxdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJfQoJCWZvcihpYyBpbiBjb2wgKXsKICAgICAJCWNvbFtpY10uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9Cgl9ZWxzZSBpZiAoey9saXRlcmFsfXskY3VycmNhdH17bGl0ZXJhbH0gPT0gMykgewoJCWxpbmUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsaW5lJyk7CgkJYmFyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFyJyk7CgkJcGllID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGllJyk7CgkJY29sID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY29sJyk7CgkJbWl4ID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWl4Jyk7CgkJbWl4MiA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21peDInKTsKCQlmb3IoaXAgaW4gcGllICl7CiAgICAgCQlwaWVbaXBdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJfQoJCWZvcihpYiBpbiBiYXIgKXsKICAgICAJCWJhcltpYl0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9CgkJZm9yKGljIGluIGNvbCApewogICAgIAkJY29sW2ljXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCX0KCX1lbHNlIGlmICh7L2xpdGVyYWx9eyRjdXJyY2F0fXtsaXRlcmFsfSA9PSA0KSB7CgkJbGluZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmUnKTsKCQliYXIgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYXInKTsKCQlwaWUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwaWUnKTsKCQljb2wgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjb2wnKTsKCQltaXggPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaXgnKTsKCQltaXgyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWl4MicpOwoJCWZvcihpcCBpbiBwaWUgKXsKICAgICAJCXBpZVtpcF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9CgkJZm9yKGliIGluIGJhciApewogICAgIAkJYmFyW2liXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCX0KCQlmb3IoaWwgaW4gbGluZSApewogICAgIAkJbGluZVtpbF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9Cgl9CiAgICAkKCcjY2hhcnRDYXRlZ29yeScpLmNoYW5nZShmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKCQodGhpcykudmFsKCkgPT0gMSkgewoJCQlwaWUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwaWUnKTsKCQkJbGluZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmUnKTsKCQkJYmFyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFyJyk7CgkJCWNvbCA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2NvbCcpOwoJCQltaXggPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaXgnKTsKCQkJbWl4MiA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21peDInKTsKCQkJZm9yKGlwIGluIHBpZSApewogICAgIAkJCXBpZVtpcF0uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCX0KCQkJZm9yKGlsIGluIGxpbmUgKXsKICAgICAJCQlsaW5lW2lsXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQl9CgkJCWZvcihpYiBpbiBiYXIgKXsKICAgICAJCQliYXJbaWJdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCQkJZm9yKGljIGluIGNvbCApewogICAgIAkJCWNvbFtpY10uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJfQoJCQlmb3IoaW0gaW4gbWl4ICl7CiAgICAgCQkJbWl4W2ltXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQl9CgkJCWZvcihpbTIgaW4gbWl4MiApewogICAgIAkJCW1peDJbaW0yXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQl9CgkJfWVsc2UgaWYgKCQodGhpcykudmFsKCkgPT0gMikgewoJCQlwaWUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwaWUnKTsKCQkJbGluZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmUnKTsKCQkJYmFyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFyJyk7CgkJCWNvbCA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2NvbCcpOwoJCQltaXggPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaXgnKTsKCQkJbWl4MiA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21peDInKTsKCQkJZm9yKGlwIGluIHBpZSApewogICAgIAkJCXBpZVtpcF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJfQoJCQlmb3IoaWwgaW4gbGluZSApewogICAgIAkJCWxpbmVbaWxdLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCQl9CgkJCWZvcihpYiBpbiBiYXIgKXsKICAgICAJCQliYXJbaWJdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCQkJZm9yKGljIGluIGNvbCApewogICAgIAkJCWNvbFtpY10uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJfQoJCQlmb3IoaW0gaW4gbWl4ICl7CiAgICAgCQkJbWl4W2ltXS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCQkJfQoJCQlmb3IoaW0yIGluIG1peDIgKXsKICAgICAJCQltaXgyW2ltMl0uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCX0KCQl9ZWxzZSBpZiAoJCh0aGlzKS52YWwoKSA9PSAzKSB7CgkJCXBpZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3BpZScpOwoJCQlsaW5lID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbGluZScpOwoJCQliYXIgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYXInKTsKCQkJY29sID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY29sJyk7CgkJCW1peCA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21peCcpOwoJCQltaXgyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWl4MicpOwoJCQlmb3IoaXAgaW4gcGllICl7CiAgICAgCQkJcGllW2lwXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQl9CgkJCWZvcihpbCBpbiBsaW5lICl7CiAgICAgCQkJbGluZVtpbF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJfQoJCQlmb3IoaWIgaW4gYmFyICl7CiAgICAgCQkJYmFyW2liXS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCQkJfQoJCQlmb3IoaWMgaW4gY29sICl7CiAgICAgCQkJY29sW2ljXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQl9CgkJCWZvcihpbSBpbiBtaXggKXsKICAgICAJCQltaXhbaW1dLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCQl9CgkJCWZvcihpbTIgaW4gbWl4MiApewogICAgIAkJCW1peDJbaW0yXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQl9CgkJfWVsc2UgaWYgKCQodGhpcykudmFsKCkgPT0gNCkgewoJCQlwaWUgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwaWUnKTsKCQkJbGluZSA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmUnKTsKCQkJYmFyID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFyJyk7CgkJCWNvbCA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2NvbCcpOwoJCQltaXggPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaXgnKTsKCQkJbWl4MiA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21peDInKTsKCQkJZm9yKGlwIGluIHBpZSApewogICAgIAkJCXBpZVtpcF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJfQoJCQlmb3IoaWwgaW4gbGluZSApewogICAgIAkJCWxpbmVbaWxdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCQkJZm9yKGliIGluIGJhciApewogICAgIAkJCWJhcltpYl0uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCX0KCQkJZm9yKGljIGluIGNvbCApewogICAgIAkJCWNvbFtpY10uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCX0KCQkJZm9yKGltIGluIG1peCApewogICAgIAkJCW1peFtpbV0uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCX0KCQkJZm9yKGltMiBpbiBtaXgyICl7CiAgICAgCQkJbWl4MltpbTJdLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCQl9CgkJfQogICAgfSk7Cn0pOwovL11dPgo8L3NjcmlwdD4Key9saXRlcmFsfQoKPGRpdiBpZD0iZWRpdGNoYXJ0X3Jlc3VsdCI+PC9kaXY+Cgp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH17aWYgaXNzZXQoJGFwcGx5KX17JGFwcGx5fXsvaWZ9PC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc3RhcnRfdGFiX2hlYWRlcnMpfQp7JHN0YXJ0X3RhYl9oZWFkZXJzfQp7JHRhYmhlYWRlcl9jaGFydH0KeyRlbmRfdGFiX2hlYWRlcnN9Cgp7JHN0YXJ0X3RhYl9jb250ZW50fQp7JHN0YXJ0X3RhYl9jaGFydH0Key9pZn0KPGRpdiBpZD0iZWRpdF9jaGFydCI+Cgo8IS0tR0VORVJJQy0tPgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRjYXRlZ29yeXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0Y2F0ZWdvcnl9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbmFtZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRkYXRhdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRkYXRhfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZWxlbWVudHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZWxlbWVudH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGJhY2tncm91bmRDb2xvcnRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0YmFja2dyb3VuZENvbG9yfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskY2hhcnRBcmVhdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRjaGFydEFyZWF9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjb2xvcnN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGNvbG9yc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZvbnRTaXpldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRmb250U2l6ZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZvbnROYW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRmb250TmFtZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGhlaWdodHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0aGVpZ2h0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbGVnZW5kdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRsZWdlbmR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRyZXZlcnNlQ2F0ZWdvcmllc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cmV2ZXJzZUNhdGVnb3JpZXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZVRleHRTdHlsZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dGl0bGVUZXh0U3R5bGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0b29sdGlwdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXR0b29sdGlwfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd2lkdGh0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHdpZHRofTwvcD4KCTwvZGl2PgoKPCEtLVBJRSBDSEFSVC0tPgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpczNEdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRpczNEfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNsaWNlc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c2xpY2VzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBpZVNsaWNlQm9yZGVyQ29sb3J0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHBpZVNsaWNlQm9yZGVyQ29sb3J9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcGllU2xpY2VUZXh0dGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRwaWVTbGljZVRleHR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgcGllIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcGllU2xpY2VUZXh0U3R5bGV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHBpZVNsaWNlVGV4dFN0eWxlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHBpZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBpZVJlc2lkdWVTbGljZUNvbG9ydGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRwaWVSZXNpZHVlU2xpY2VDb2xvcn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBwaWUiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwaWVSZXNpZHVlU2xpY2VMYWJlbHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cGllUmVzaWR1ZVNsaWNlTGFiZWx9PC9wPgoJPC9kaXY+Cgo8IS0tTUlYRUQgTElORSwgQkFSIEFORCBDT0xVTU4tLT4KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbWl4Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYXhpc1RpdGxlc1Bvc2l0aW9udGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRheGlzVGl0bGVzUG9zaXRpb259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbWl4Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW5hYmxlSW50ZXJhY3Rpdml0eXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZW5hYmxlSW50ZXJhY3Rpdml0eX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBtaXgiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmb2N1c1RhcmdldHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0Zm9jdXNUYXJnZXR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbWl4Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaEF4aXN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGhBeGlzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IG1peCI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGlzSHRtbHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0aXNIdG1sfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IG1peCI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNlcmllc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c2VyaWVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IG1peCI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRoZW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXR0aGVtZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBtaXgiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZVBvc2l0aW9udGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXR0aXRsZVBvc2l0aW9ufTwvcD4KCTwvZGl2PgoKPCEtLU1JWCAyIExJTkUgQU5EIENPTC0tPgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBtaXgyIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdkF4ZXN0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHZBeGVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IG1peDIiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhZ2dyZWdhdGlvblRhcmdldHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0YWdncmVnYXRpb25UYXJnZXR9PC9wPgoJPC9kaXY+Cgo8IS0tTElORSBDSEFSVC0tPgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBsaW5lIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskY3VydmVUeXBldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRjdXJ2ZVR5cGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbGluZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGludGVycG9sYXRlZE51bGxzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRpbnRlcnBvbGF0ZWROdWxsc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBsaW5lIj4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbGluZVdpZHRodGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRsaW5lV2lkdGh9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgbGluZSI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBvaW50U2l6ZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cG9pbnRTaXplfTwvcD4KCTwvZGl2PgoKPCEtLUJBUiBDSEFSVCBBTkQgQ09MVU1OIENIQVJULS0+CgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGJhciI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGlzU3RhY2tlZHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0aXNTdGFja2VkfTwvcD4KCTwvZGl2PgoKPCEtLUNPTFVNTiBDSEFSVC0tPgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBjb2wiPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRncm91cFdpZHRodGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRncm91cFdpZHRofTwvcD4KCTwvZGl2PgoKPC9kaXY+CntpZiBpc3NldCgkZW5kX3RhYl9jaGFydCl9eyRlbmRfdGFiX2NoYXJ0fXsvaWZ9CgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH17aWYgaXNzZXQoJGFwcGx5KX17JGFwcGx5fXsvaWZ9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/gcharts.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtb2R1bGVfbWVzc2FnZSl9PGgyPnskbW9kdWxlX21lc3NhZ2V8ZXNjYXBlfTwvaDI+ey9pZn0Ke2Fzc2lnbiB2YXI9J2NvdW50JyB2YWx1ZT0nMCd9Cntmb3JlYWNoIGZyb209JHJlY29yZHMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPSdjYXRlZ29yeScgdmFsdWU9JGVudHJ5LT5jYXRlZ29yeX0KCXthc3NpZ24gdmFyPSduYW1lJyB2YWx1ZT0kZW50cnktPm5hbWV9Cgl7YXNzaWduIHZhcj0nZWxlbWVudCcgdmFsdWU9JGVudHJ5LT5lbGVtZW50fQoJe2Fzc2lnbiB2YXI9J3RpdGxlJyB2YWx1ZT0kZW50cnktPnRpdGxlfQoJe2Fzc2lnbiB2YXI9J2RhdGEnIHZhbHVlPSRlbnRyeS0+ZGF0YX0KCXthc3NpZ24gdmFyPSdiYWNrZ3JvdW5kQ29sb3InIHZhbHVlPSRlbnRyeS0+YmFja2dyb3VuZENvbG9yfQoJe2Fzc2lnbiB2YXI9J2NoYXJ0QXJlYScgdmFsdWU9JGVudHJ5LT5jaGFydEFyZWF9Cgl7YXNzaWduIHZhcj0nY29sb3JzJyB2YWx1ZT0kZW50cnktPmNvbG9yc30KCXthc3NpZ24gdmFyPSdmb250U2l6ZScgdmFsdWU9JGVudHJ5LT5mb250U2l6ZX0KCXthc3NpZ24gdmFyPSdmb250TmFtZScgdmFsdWU9JGVudHJ5LT5mb250TmFtZX0KCXthc3NpZ24gdmFyPSdoZWlnaHQnIHZhbHVlPSRlbnRyeS0+aGVpZ2h0fQoJe2Fzc2lnbiB2YXI9J2xlZ2VuZCcgdmFsdWU9JGVudHJ5LT5sZWdlbmR9Cgl7YXNzaWduIHZhcj0ncmV2ZXJzZUNhdGVnb3JpZXMnIHZhbHVlPSRlbnRyeS0+cmV2ZXJzZUNhdGVnb3JpZXN9Cgl7YXNzaWduIHZhcj0ndGl0bGVUZXh0U3R5bGUnIHZhbHVlPSRlbnRyeS0+dGl0bGVUZXh0U3R5bGV9Cgl7YXNzaWduIHZhcj0ndG9vbHRpcCcgdmFsdWU9JGVudHJ5LT50b29sdGlwfQoJe2Fzc2lnbiB2YXI9J3dpZHRoJyB2YWx1ZT0kZW50cnktPndpZHRofQoKCXthc3NpZ24gdmFyPSdpczNEJyB2YWx1ZT0kZW50cnktPmlzM0R9Cgl7YXNzaWduIHZhcj0nc2xpY2VzJyB2YWx1ZT0kZW50cnktPnNsaWNlc30KCXthc3NpZ24gdmFyPSdwaWVTbGljZUJvcmRlckNvbG9yJyB2YWx1ZT0kZW50cnktPnBpZVNsaWNlQm9yZGVyQ29sb3J9Cgl7YXNzaWduIHZhcj0ncGllU2xpY2VUZXh0JyB2YWx1ZT0kZW50cnktPnBpZVNsaWNlVGV4dH0KCXthc3NpZ24gdmFyPSdwaWVTbGljZVRleHRTdHlsZScgdmFsdWU9JGVudHJ5LT5waWVTbGljZVRleHRTdHlsZX0KCXthc3NpZ24gdmFyPSdzbGljZVZpc2liaWxpdHlUaHJlc2hvbGQnIHZhbHVlPSRlbnRyeS0+c2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkfQoJe2Fzc2lnbiB2YXI9J3BpZVJlc2lkdWVTbGljZUNvbG9yJyB2YWx1ZT0kZW50cnktPnBpZVJlc2lkdWVTbGljZUNvbG9yfQoJe2Fzc2lnbiB2YXI9J3BpZVJlc2lkdWVTbGljZUxhYmVsJyB2YWx1ZT0kZW50cnktPnBpZVJlc2lkdWVTbGljZUxhYmVsfQoKCXthc3NpZ24gdmFyPSdheGlzVGl0bGVzUG9zaXRpb24nIHZhbHVlPSRlbnRyeS0+YXhpc1RpdGxlc1Bvc2l0aW9ufQoJe2Fzc2lnbiB2YXI9J2VuYWJsZUludGVyYWN0aXZpdHknIHZhbHVlPSRlbnRyeS0+ZW5hYmxlSW50ZXJhY3Rpdml0eX0KCXthc3NpZ24gdmFyPSdmb2N1c1RhcmdldCcgdmFsdWU9JGVudHJ5LT5mb2N1c1RhcmdldH0KCXthc3NpZ24gdmFyPSdoQXhpcycgdmFsdWU9JGVudHJ5LT5oQXhpc30KCXthc3NpZ24gdmFyPSdpc0h0bWwnIHZhbHVlPSRlbnRyeS0+aXNIdG1sfQoJe2Fzc2lnbiB2YXI9J3NlcmllcycgdmFsdWU9JGVudHJ5LT5zZXJpZXN9Cgl7YXNzaWduIHZhcj0ndGhlbWUnIHZhbHVlPSRlbnRyeS0+dGhlbWV9Cgl7YXNzaWduIHZhcj0ndGl0bGVQb3NpdGlvbicgdmFsdWU9JGVudHJ5LT50aXRsZVBvc2l0aW9ufQoKCXthc3NpZ24gdmFyPSd2QXhpcycgdmFsdWU9JGVudHJ5LT52QXhpc30KCXthc3NpZ24gdmFyPSdhZ2dyZWdhdGlvblRhcmdldCcgdmFsdWU9JGVudHJ5LT5hZ2dyZWdhdGlvblRhcmdldH0KCgl7YXNzaWduIHZhcj0nY3VydmVUeXBlJyB2YWx1ZT0kZW50cnktPmN1cnZlVHlwZX0KCXthc3NpZ24gdmFyPSdpbnRlcnBvbGF0ZWROdWxscycgdmFsdWU9JGVudHJ5LT5pbnRlcnBvbGF0ZWROdWxsc30KCXthc3NpZ24gdmFyPSd2QXhpcycgdmFsdWU9JGVudHJ5LT52QXhpc30KCXthc3NpZ24gdmFyPSdsaW5lV2lkdGgnIHZhbHVlPSRlbnRyeS0+bGluZVdpZHRofQoJe2Fzc2lnbiB2YXI9J3BvaW50U2l6ZScgdmFsdWU9JGVudHJ5LT5wb2ludFNpemV9CgoJe2Fzc2lnbiB2YXI9J2lzU3RhY2tlZCcgdmFsdWU9JGVudHJ5LT5pc1N0YWNrZWR9CgoJe2Fzc2lnbiB2YXI9J2dyb3VwV2lkdGgnIHZhbHVlPSRlbnRyeS0+Z3JvdXBXaWR0aH0KCgl7JGNvdW50KysgYXNzaWduPSdqdW5rJ30Key9mb3JlYWNofQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4Ke2xpdGVyYWx9CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgIGdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwogICAgICBnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0KTsKICAgICAgZnVuY3Rpb24gZHJhd0NoYXJ0KCkgewoJLy8gQ3JlYXRlIGFuZCBwb3B1bGF0ZSB0aGUgZGF0YSB0YWJsZS4KCQl2YXIgZGF0YSA9IGdvb2dsZS52aXN1YWxpemF0aW9uLmFycmF5VG9EYXRhVGFibGUoWwoJCXsvbGl0ZXJhbH0KCQl7ZXZhbCB2YXI9JGRhdGF9CgkJe2xpdGVyYWx9CgkJXSk7CgkJdmFyIG9wdGlvbnMgPSB7CgkJey9saXRlcmFsfQoJCQl7aWYgJGJhY2tncm91bmRDb2xvciBuZSAnJ31iYWNrZ3JvdW5kQ29sb3I6IHskYmFja2dyb3VuZENvbG9yfSx7L2lmfQoJCQl7aWYgJGNoYXJ0QXJlYSBuZSAnJ31jaGFydEFyZWE6IHskY2hhcnRBcmVhfSx7L2lmfQoJCQl7aWYgJGNvbG9ycyBuZSAnJ31jb2xvcnM6IHskY29sb3JzfSx7L2lmfQoJCQl7aWYgJGZvbnRTaXplIG5lICcnfWZvbnRTaXplOiB7JGZvbnRTaXplfSx7L2lmfQoJCQl7aWYgJGZvbnROYW1lIG5lICcnfWZvbnROYW1lOiB7JGZvbnROYW1lfSx7L2lmfQoJCQl7aWYgJGhlaWdodCBuZSAnJ31oZWlnaHQ6IHskaGVpZ2h0fSx7L2lmfQoJCQl7aWYgJGxlZ2VuZCBuZSAnJ31sZWdlbmQ6IHskbGVnZW5kfSx7L2lmfQoJCQl7aWYgJHJldmVyc2VDYXRlZ29yaWVzIG5lICcnfXJldmVyc2VDYXRlZ29yaWVzOiB7JHJldmVyc2VDYXRlZ29yaWVzfSx7L2lmfQoJCQl7aWYgJHRpdGxlVGV4dFN0eWxlIG5lICcnfXRpdGxlVGV4dFN0eWxlOiB7JHRpdGxlVGV4dFN0eWxlfSx7L2lmfQoJCQl7aWYgJHRvb2x0aXAgbmUgJyd9dG9vbHRpcDogeyR0b29sdGlwfSx7L2lmfQoJCQl7aWYgJHdpZHRoIG5lICcnfXdpZHRoOiB7JHdpZHRofSx7L2lmfQoJCQl7aWYgJGlzM0QgbmUgJyd9aXMzRDogeyRpczNEfSx7L2lmfQoJCQl7aWYgJHNsaWNlcyBuZSAnJ31zbGljZXM6IHskc2xpY2VzfSx7L2lmfQoJCQl7aWYgJHBpZVNsaWNlQm9yZGVyQ29sb3IgbmUgJyd9cGllU2xpY2VCb3JkZXJDb2xvcjogeyRwaWVTbGljZUJvcmRlckNvbG9yfSx7L2lmfQoJCQl7aWYgJHBpZVNsaWNlVGV4dCBuZSAnJ31waWVTbGljZVRleHQ6IHskcGllU2xpY2VUZXh0fSx7L2lmfQoJCQl7aWYgJHBpZVNsaWNlVGV4dFN0eWxlIG5lICcnfXBpZVNsaWNlVGV4dFN0eWxlOiB7JHBpZVNsaWNlVGV4dFN0eWxlfSx7L2lmfQoJCQl7aWYgJHNsaWNlVmlzaWJpbGl0eVRocmVzaG9sZCBuZSAnJ31zbGljZVZpc2liaWxpdHlUaHJlc2hvbGQ6IHskc2xpY2VWaXNpYmlsaXR5VGhyZXNob2xkfSx7L2lmfQoJCQl7aWYgJHBpZVJlc2lkdWVTbGljZUNvbG9yIG5lICcnfXBpZVJlc2lkdWVTbGljZUNvbG9yOiB7JHBpZVJlc2lkdWVTbGljZUNvbG9yfSx7L2lmfQoJCQl7aWYgJHBpZVJlc2lkdWVTbGljZUxhYmVsIG5lICcnfXBpZVJlc2lkdWVTbGljZUxhYmVsOiB7JHBpZVJlc2lkdWVTbGljZUxhYmVsfSx7L2lmfQoJCQl7aWYgJGF4aXNUaXRsZXNQb3NpdGlvbiBuZSAnJ31heGlzVGl0bGVzUG9zaXRpb246IHskYXhpc1RpdGxlc1Bvc2l0aW9ufSx7L2lmfQoJCQl7aWYgJGVuYWJsZUludGVyYWN0aXZpdHkgbmUgJyd9ZW5hYmxlSW50ZXJhY3Rpdml0eTogeyRlbmFibGVJbnRlcmFjdGl2aXR5fSx7L2lmfQoJCQl7aWYgJGZvY3VzVGFyZ2V0IG5lICcnfWZvY3VzVGFyZ2V0OiB7JGZvY3VzVGFyZ2V0fSx7L2lmfQoJCQl7aWYgJGhBeGlzIG5lICcnfWhBeGlzOiB7JGhBeGlzfSx7L2lmfQoJCQl7aWYgJGlzSHRtbCBuZSAnJ31pc0h0bWw6IHskaXNIdG1sfSx7L2lmfQoJCQl7aWYgJHNlcmllcyBuZSAnJ31zZXJpZXM6IHskc2VyaWVzfSx7L2lmfQoJCQl7aWYgJHRoZW1lIG5lICcnfXRoZW1lOiB7JHRoZW1lfSx7L2lmfQoJCQl7aWYgJHRpdGxlUG9zaXRpb24gbmUgJyd9dGl0bGVQb3NpdGlvbjogeyR0aXRsZVBvc2l0aW9ufSx7L2lmfQoJCQl7aWYgJHZBeGVzIG5lICcnfXZBeGVzOiB7JHZBeGVzfSx7L2lmfQoJCQl7aWYgJGFnZ3JlZ2F0aW9uVGFyZ2V0IG5lICcnfWFnZ3JlZ2F0aW9uVGFyZ2V0OiB7JGFnZ3JlZ2F0aW9uVGFyZ2V0fSx7L2lmfQoJCQl7aWYgJGN1cnZlVHlwZSBuZSAnJ31jdXJ2ZVR5cGU6IHskY3VydmVUeXBlfSx7L2lmfQoJCQl7aWYgJGludGVycG9sYXRlZE51bGxzIG5lICcnfWludGVycG9sYXRlZE51bGxzOiB7JGludGVycG9sYXRlZE51bGxzfSx7L2lmfQoJCQl7aWYgJHZBeGlzIG5lICcnfXZBeGlzOiB7JHZBeGlzfSx7L2lmfQoJCQl7aWYgJGxpbmVXaWR0aCBuZSAnJ31saW5lV2lkdGg6IHskbGluZVdpZHRofSx7L2lmfQoJCQl7aWYgJHBvaW50U2l6ZSBuZSAnJ31wb2ludFNpemU6IHskcG9pbnRTaXplfSx7L2lmfQoJCQl7aWYgJGlzU3RhY2tlZCBuZSAnJ31pc1N0YWNrZWQ6IHskaXNTdGFja2VkfSx7L2lmfQoJCQl7aWYgJGdyb3VwV2lkdGggbmUgJyd9Z3JvdXBXaWR0aDogeyRncm91cFdpZHRofSx7L2lmfQoJCQl7aWYgJHRpdGxlIG5lICcnfXRpdGxlOiAneyR0aXRsZX0ne2Vsc2UgaWYgJG5hbWUgbmUgJyd9dGl0bGU6ICd7JG5hbWV9J3svaWZ9CgkJe2xpdGVyYWx9CgkJfTsKCQkvLyBDcmVhdGUgYW5kIGRyYXcgdGhlIHZpc3VhbGl6YXRpb24uCgkJdmFyIGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLnsvbGl0ZXJhbH17aWYgJGNhdGVnb3J5ID09ICcxJ31QaWVDaGFydHtlbHNlaWYgJGNhdGVnb3J5ID09ICcyJ31MaW5lQ2hhcnR7ZWxzZWlmICRjYXRlZ29yeSA9PSAnMyd9QmFyQ2hhcnR7ZWxzZWlmICRjYXRlZ29yeSA9PSAnNCd9Q29sdW1uQ2hhcnR7L2lmfXtsaXRlcmFsfShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgney9saXRlcmFsfXskZWxlbWVudH17bGl0ZXJhbH0nKSk7CiAgICAgICAgY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCX0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0=]]></data>
	</file>
</module>
