<?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>MCFactory</name>
	<version>3.2.4</version>
  <mincmsversion>1.9</mincmsversion>
	<help><![CDATA[Cgk8aDM+RGVzY3JpcHRpb248L2gzPgoJPHA+VGhpcyBtb2R1bGUgY2FuIGdlbmVyYXRlIG5ldyBtb2R1bGVzIHRvIG1hbmFnZSBjdXN0b20gY29udGVudCB0eXBlcy48L3A+Cgk8aDM+SG93IHRvIHVzZSBpdDwvaDM+Cgk8cD5Gb3IgdGhlIGdlbmVyYWwgaGVscCwgeW91IGNhbiBmaW5kIGl0IHVuZGVyIHRoZSBnZW5lcmF0ZWQgbW9kdWxlIGhlbHAuPC9wPgoJPHA+V2l0aCB0aGUgc3BlY2lmaWMgbW9kdWxlIGxvZ2ljLCB5b3UgY2FuIG5vdyBhZGQgb3Igb3ZlcnJpZGUgc29tZSBtZXRob2RzIGZyb20gdGhlIG9iamVjdCBjbGFzcyBpdHNlbGYuIEZvciBleGFtcGxlLCB5b3UgY291bGQgb3ZlcmlkZSB0aGUgbWV0aG9kICJnZXRUaXRsZSIgdG8gZG8gc29tZXRoaW5nIGVsc2UuPC9wPgoJPHA+U3BlY2lmaWMgbWV0aG9kcyB0aGF0IHlvdSBjb3VsZCBjb25zaWRlciBvdmVycmlkaW5nOjwvcD4KCTx1bD4KCQk8bGk+PHN0cm9uZz5nZXRDb3JlU2x1ZygpPC9zdHJvbmc+IFRoaXMgZ2VuZXJhdGUgdGhlIHVybCBzbHVnIG9mIHRoZSBtb2R1bGUuIEJ5IGRlZmF1bHQgaXQgdGFrZSBpdCBmcm9tIHRpdGxlLjwvbGk+Cgk8L3U+Cgk8cD5Tb21lIHRpcHM8L3A+Cgk8cD5Gb3IgYWxsIGZpZWxkcywgeW91IGNhbiBkZWZpbmUgb3B0aW9ucy4gV3JpdGUgdGhlbSBpbiBhICJjc3MiIHdheS48L3A+Cgk8dWw+CgkJPGxpPjxzdHJvbmc+dGlwczwvc3Ryb25nPiBBZGQgYSB0aXAgaW4gdGhlIGVuZCBvZiB0aGUgZmllbGQuPC9saT4KCTwvdWw+Cgk8aDQ+U2VsZWN0IChEcm9wZG93bik8L2g0PgoJPHVsPgoJCTxsaT48c3Ryb25nPnZhbHVlczwvc3Ryb25nPiBBIGxpc3Qgb2YgdmFsdWVzIGZvciB0aGUgZHJvcGRvd24uIFlvdSBjYW4gdXNlIGtleT0+dmFsdWUgKGV4OiB2YWx1ZXM6b3B0aW9uMSA9PiBPcHRpb24gMSwgb3B0aW9uMiA9PiBPcHRpb24gMikuIFRvIHJldHJpZXZlIHRoZSB2YWx1ZSwgdXNlIGdldE15RmllbGROYW1lVmFsdWUoKTwvbGk+CgkJPGxpPjxzdHJvbmc+ZGVmYXVsdF92YWx1ZTwvc3Ryb25nPiBUaGUgZGVmYXVsdCBzZWxlY3RlZCB2YWx1ZTwvbGk+CgkJPGxpPjxzdHJvbmc+bXVsdGlwbGU8L3N0cm9uZz4gQWxsb3dzIHlvdSB0byBzZWxlY3QgbXVsdGlwbGUgdmFsdWVzLjwvbGk+CgkJPGxpPjxzdHJvbmc+ZXhwYW5kZWQ8L3N0cm9uZz4gU2hvd3MgUmFkaW8gYnV0dG9ucyBvciBjaGVja2JveGVzIGluc3RlYWQgb2Ygc2VsZWN0IGJveC48L2xpPgoJPC91bD4KCTxoND5Nb2R1bGU8L2g0PgoJPHA+Rm9yIHRoZSBmaWVsZCB0eXBlICJtb2R1bGUiLCB0aGUgb3B0aW9uIHNob3VsZCBiZSBmaWxlZCB3aXRoIHRoZSBleGFjdCBtb2R1bGUgbmFtZS4gZXg6IG1vZHVsZV9uYW1lOk15TW9kdWxlLiBZb3UgY2FuIGFsc28gc3BlY2lmeSBpdCB0byBiZSBhIG11bHRpcGxlIGZpbGUgbXVsdGlwbGU6dHJ1ZSBhbmQgeW91IGNhbiByZXBsYWNlIGRyb3Bkb3duIGJ5IGEgcmFkaW8gb3IgY2hlY2tib3ggbGlzdCB1c2luZyB0aGUgcGFyYW0gZXhwYW5kZWQuIEV4OiAibW9kdWxlX25hbWU6TXlNb2R1bGU7bXVsdGlwbGU6dHJ1ZTtleHBhbmRlZDp0cnVlIjwvcD4KCTx1bD4KCQk8bGk+PHN0cm9uZz5tb2R1bGVfbmFtZTwvc3Ryb25nPiBUaGUgbW9kdWxlIG5hbWU8L2xpPgoJCTxsaT48c3Ryb25nPnNlbGVjdG9yPC9zdHJvbmc+IFRoZSBmdW5jdGlvbiB0byBzZWxlY3QgaXRlbXMgKHRha2UgTUNGQ3JpdGVyaWEgZm9yIHBhcmFtKTwvbGk+CgkJPGxpPjxzdHJvbmc+bXVsdGlwbGU8L3N0cm9uZz4gQWxsb3cgbXVsdGlwbGUgc2VsZWN0aW9uID88L2xpPgoJCTxsaT48c3Ryb25nPmV4cGFuZGVkPC9zdHJvbmc+IFNob3cgY2hlY2tib3gvcmFkaW8gYnV0dG9uIGluc3RlYWQgb2Ygc2VsZWN0b3IgPzwvbGk+Cgk8L3VsPgoJPGg0PkRhdGU8L2g0PgoJPHA+Rm9yIHRoZSBmaWVsZCB0eXBlICJkYXRlIiwgeW91IGNhbiBzcGVjaWZ5IHRoZSBzdGFydCB5ZWFyIGFuZCBudW1iZXIgb2YgeWVhcnMuIEV4YW1wbGUgOiAic3RhcnRfeWVhcjoxOTUwO251bWJlcl95ZWFyczo3MCI8L3A+Cgk8aDQ+VGltZTwvaDQ+Cgk8dWw+CgkJPGxpPjxzdHJvbmc+bWlkbmlnaHQ8L3N0cm9uZz4gU2V0IHRoZSB0aW1lIHRvIDA6MDowIGJ5IGRlZmF1bHQ8L2xpPgoJPC91bD4KCTxoND5QYWdlPC9oND4KCTxwPkZvciB0aGUgcGFnZXMsIHlvdSBjYW4gdXNlIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIGZvciBkcm9wZG93biBleGNlcHQgdGhlICJ2YWx1ZXMiLiBZb3UgY2FuIGFsc28gdXNlIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczo8L3A+Cgk8dWw+CgkJPGxpPjxzdHJvbmc+Y2hpbGRyZW5vZjwvc3Ryb25nPiBTaG93IG9ubHkgdGhlIGNoaWxkcmVuJ3Mgb2YgYSBzcGVjaWZpZWQgcGFnZS48L2xpPgoJCTxsaT48c3Ryb25nPnN0YXJ0X3BhZ2U8L3N0cm9uZz4gU2hvdyBvbmx5IHRoZSBkZXNjZW5kYW50cyBvZiBhIHNwZWNpZmllZCBwYWdlLjwvbGk+Cgk8L3VsPgoJPGg0PkRvY3VtZW50czwvaDQ+Cgk8cD5Zb3UgY2FuIHByb3RlY3QgZG9jdW1lbnRzIGRvaW5nICJpbmRpcmVjdCIgZG93bmxvYWRzIHdoaWNoIHdpbGwgYWxsb3cgeW91IHRvIHNldCB1c2VyIHBlcm1pc3Npb25zIG9uIGl0IGZvciBleGFtcGxlLjwvcD4KCTx1bD4KCQk8bGk+PHN0cm9uZz5wcm90ZWN0ZWQ8L3N0cm9uZz4gU3BlY2lmeSB0aGUgYWJzb2x1dGUgcGF0aCB3aGVyZSBkb2N1bWVudHMgaGF2ZSB0byBiZSBzYWZlbHkgc3RvcmVkLiBUaGlzIGZvbGRlciBuZWVkcyB3cml0ZSBhY2Nlc3MuPC9saT4KCTwvdWw+Cgk8aDM+U3VwcG9ydDwvaDM+Cgk8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoJPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+Cgk8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgtMjAxMCwgSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyIDxhIGhyZWY9Im1haWx0bzpqY2NAbW9ycmlzLWNoYXBtYW4uY29tIj4mbHQ7amNjQG1vcnJpcy1jaGFwbWFuLmNvbSZndDs8L2E+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5tb3JyaXMtY2hhcG1hbi5jb20vIj5Nb3JyaXMgJmFtcDsgQ2hhcG1hbiBCZWxnaXVtPC9hPi48L3A+Cgk8cD5Db250cmlidXRvcnM6IEdlcnJ5IFZhbmRlcm1hZXNlbjwvcD4KCTxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhpcyBtb2R1bGUuPC9wPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPk1vZHVsZVh0ZW5kZXIgPSZndDsgMS4xMDwvbGk+PGxpPkNNU0Zvcm1zID0mZ3Q7IDAuMS41PC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgJmx0O2pjY0Btb3JyaXMtY2hhcG1hbi5jb20mZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMy4yLjQ8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KCTxkbD4KCQk8ZHQ+VmVyc2lvbiAwLjAuMSAtIDI5IFNlcHRlbWJlciAyMDA4LjwvZHQ+CgkJPGRkPkluaXRpYWwgUmVsZWFzZS48L2RkPgoJCTxkdD5WZXJzaW9uIDEuMCAtIDIxIE9jdG9iZXIgMjAwOS48L2R0PgoJCTxkZD5GaXJzdCBzdGFibGUgcmVsZWFzZS48L2RkPgoJCTxkdD5WZXJzaW9uIDEuMC4xIC0gMjIgT2N0b2JlciAyMDA5LjwvZHQ+CgkJPGRkPgoJCQk8dWw+CgkJCQk8bGk+Q2xlYW4tdXAgb2YgdGhlIGNvZGUuPC9saT4KCQkJCTxsaT5Nb2RlbHMgb2YgYWxyZWFkeSBpbnN0YWxsZWQgbW9kdWxlcyBhcmUgYXV0by11cGRhdGVkIHdoZW4gYWRkaW5nIG5ldyBjb2x1bW5zLjwvbGk+CgkJCTwvdWw+CgkJPC9kZD4KCTwvZGw+CjxiciAvPg==]]></about>
	<description><![CDATA[A module to generate modules for custom content types.]]></description>
	<requires>
	  <requiredname>ModuleXtender</requiredname>
	  <requiredversion>1.10</requiredversion>
	</requires>
	<requires>
	  <requiredname>CMSForms</requiredname>
	  <requiredversion>0.1.5</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.DS_Store</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAAAAUJ1ZDEAABAAAAAIAAAAEAAAAAIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAQAABlAHNid3NwYmxvYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAGkAbQBhAGcAZQBzYndzcGJsb2IAAACxYnBsaXN0MDDWAQIDBAUGBwgICAgMXFdpbmRvd0JvdW5kc1tTaG93U2lkZWJhcl1TaG93U3RhdHVzQmFyW1Nob3dQYXRoYmFyW1Nob3dUb29sYmFyXFNpZGViYXJXaWR0aF8QGnt7LTEyODEsIDIxOH0sIHs4MzgsIDQ5Mn19CQkJCRDyCBUiLjxIVGF+f4CBggAAAAAAAAEBAAAAAAAAAA0AAAAAAAAAAAAAAAAAAACEAAAABgBzAG0AYQByAHQAeWJ3c3BibG9iAAAAsWJwbGlzdDAw1gECAwQFBgcICAgIDFxXaW5kb3dCb3VuZHNbU2hvd1NpZGViYXJdU2hvd1N0YXR1c0JhcltTaG93UGF0aGJhcltTaG93VG9vbGJhclxTaWRlYmFyV2lkdGhfEBp7ey0xMjgxLCAyMTh9LCB7ODM4LCA0OTJ9fQkJCQkQ8ggVIi48SFRhfn+AgYIAAAAAAAABAQAAAAAAAAANAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAEAsAAABFAAACCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBERTREIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAIAAAAGAAAAAAAAAAAQAAAIAAAAABAAABAAAAAAAAAAABAAAEAAAAAAIAAAgAAAAYAAAAAAAAAAABAAAgAAAAAAEAAEAAAAAAAQAAgAAAAAABAAEAAAAAAAEAAgAAAAAAAQAEAAAAAAABAAgAAAAAAAEAEAAAAAAAAQAgAAAAAAABAEAAAAAAAAEAgAAAAAAAAQEAAAAAAAABAgAAAAAAAAEEAAAAAAAAAQgAAAAAAAABEAAAAAAAAAEgAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCk7Cn0KCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiRjLT5hZGRBc2NlbmRpbmdPcmRlckJ5Q29sdW1uKCdtb2R1bGVfbmFtZScpOwokbW9kdWxlcyA9IE1DRk1vZHVsZTo6ZG9TZWxlY3QoJGMpOwokcm93cyA9IGFycmF5KCk7CgokdG9ra2VuID0gaXNzZXQoJF9SRVFVRVNUWydfc3hfJ10pPydfc3hfPScuJF9SRVFVRVNUWydfc3hfJ106J3NwXz0nLiRfUkVRVUVTVFsnc3BfJ107Cgpmb3JlYWNoICgkbW9kdWxlcyBhcyAkbW9kdWxlKSB7Cgkkcm93c1tdID0gYXJyYXkoCgkJJ3RpdGxlJyA9PiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0JywgJHJldHVybmlkLCAkbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCksIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGUtPmdldElkKCkpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9Iml0ZW1saW5rIicpLAoJCSdtb2R1bGVfZnJpZW5kbHluYW1lJyA9PiAkbW9kdWxlLT5nZXRNb2R1bGVGcmllbmRseU5hbWUoKSwKCQknZGVsZXRlJyA9PiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGUnLCAkcmV0dXJuaWQsICR0aGlzLT5EaXNwbGF5SW1hZ2UoJ2FwcGxpY2F0aW9uX2RlbGV0ZS5wbmcnLCAnRGVsZXRlJyksIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGUtPmdldElkKCkpLCAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1vZHVsZT9cblxuKE5vIGZpbGVzIHdpbGwgYmUgZGVsZXRlZCBidXQgdGhlIG1vZHVsZSB3aWxsIG5vIGxvbmdlciBiZSBlZGl0YWJsZS4pJyksCgkJJ2VkaXQnID0+ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsICR0aGlzLT5EaXNwbGF5SW1hZ2UoJ2FwcGxpY2F0aW9uX2VkaXQucG5nJywgJ0VkaXQnKSwgYXJyYXkoJ21vZHVsZV9pZCcgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpLAoJCSdwdWJsaXNoJyA9PiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdwdWJsaXNoJywgJHJldHVybmlkLCAkdGhpcy0+RGlzcGxheUltYWdlKCd3YW5kLnBuZycsICdQdWJsaXNoJyksIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGUtPmdldElkKCkpKSwKCQkndmlldycgPT4KCQkgIAknPGEgaHJlZj0ibW9kdWxlaW50ZXJmYWNlLnBocD8nLiR0b2trZW4uJyZtb2R1bGU9Jy4kbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCkuJyI+Jy4KCQkJJHRoaXMtPkRpc3BsYXlJbWFnZSgnYXBwbGljYXRpb25faG9tZS5wbmcnLCAnVmlldycpCgkJCS4nPC9hPicsCgkJJ2V4cG9ydCcgPT4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbW9kdWxlX2V4cG9ydCcsICRyZXR1cm5pZCwgJHRoaXMtPkRpc3BsYXlJbWFnZSgnYXBwbGljYXRpb25fZ2V0LnBuZycsICdFeHBvcnQnKSwgYXJyYXkoJ21vZHVsZV9pZCcgPT4gJG1vZHVsZS0+Z2V0SWQoKSwnZGlzYWJsZV90aGVtZScgPT4gJ3RydWUnKSksCgkpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvd3MnLCAkcm93cyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdCcsICcnLCAnQ3JlYXRlIG5ldyBtb2R1bGUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkX2ljb24nLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0JywgJycsICR0aGlzLT5EaXNwbGF5SW1hZ2UoJ2FwcGxpY2F0aW9uX2FkZC5wbmcnLCAkdGhpcy0+TGFuZygndGl0bGVfY3JlYXRlX21vZHVsZScpKSkpOwoKJGZvcm0gPSBuZXcgQ01TRm9ybSgkdGhpcy0+R2V0TmFtZSgpLCAkaWQsICdtb2R1bGVfaW1wb3J0JywkcmV0dXJuaWQpOwokZm9ybS0+c2V0QnV0dG9ucyhhcnJheSgnc3VibWl0JykpOwokZm9ybS0+c2V0TGFiZWwoJ3N1Ym1pdCcsICR0aGlzLT5sYW5nKCdpbXBvcnQnKSk7CiRmb3JtLT5zZXRGaWVsZHNldCgkdGhpcy0+bGFuZygnaW1wb3J0X21vZHVsZScpKTsKJGZvcm0tPmdldEZpZWxkc2V0KCR0aGlzLT5sYW5nKCdpbXBvcnRfbW9kdWxlJykpLT5zZXRXaWRnZXQoJ21vZHVsZV9uYW1lJywgJ3RleHQnLCBhcnJheSgndGlwcycgPT4gJHRoaXMtPmxhbmcoJ2xlYXZlX2VtcHR5JyksICdzaXplJyA9PiA0MCkpOwokZm9ybS0+Z2V0RmllbGRzZXQoJHRoaXMtPmxhbmcoJ2ltcG9ydF9tb2R1bGUnKSktPnNldFdpZGdldCgneG1sZmlsZScsICdmaWxlJyk7CgoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtJywgJGZvcm0pOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RlZmF1bHRhZG1pbi50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2lkJ10pICYmICFlbXB0eSgkcGFyYW1zWydtb2R1bGVfaWQnXSkpIHsKCSRtb2R1bGUgPSBNQ0ZNb2R1bGU6OmdldEJ5SWQoJHBhcmFtc1snbW9kdWxlX2lkJ10pOwoJJG1vZHVsZS0+ZGVsZXRlKCk7Cn0KCnJldHVybiAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTs=]]></data>
	</file>
	<file>
	  <filename>/action.delete_action.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2FjdGlvbl9pZCddKSAmJiAhZW1wdHkoJHBhcmFtc1snbW9kdWxlX2FjdGlvbl9pZCddKSkgewoJJG1vZHVsZV9hY3Rpb24gPSBNQ0ZNb2R1bGVBY3Rpb246OnJldHJpZXZlQnlQaygkcGFyYW1zWydtb2R1bGVfYWN0aW9uX2lkJ10pOwoJJG1vZHVsZV9hY3Rpb24tPmRlbGV0ZSgpOwoJCglyZXR1cm4gJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGVfYWN0aW9uLT5tb2R1bGVfaWQsJ2FjdGl2ZV90YWInID0+ICdhY3Rpb25zJykpOwp9CgpyZXR1cm4gJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdhY3Rpb25zJykpOw==]]></data>
	</file>
	<file>
	  <filename>/action.edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCk7Cn0KCi8qCglNb2R1bGUgRWRpdGlvbgoqLwoKLy8gVGFicwoKJHRhYnMgPSBhcnJheSAoCgknbWFpbicgPT4gZmFsc2UsCi8vCSdmaWVsZHMnID0+IGZhbHNlLAoJJ2FjdGlvbnMnID0+IGZhbHNlLAoJJ2xvZ2ljJyA9PiBmYWxzZSwKCSdvcHRpb25zJyA9PiBmYWxzZQopOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCnsKCSR0YWJzWyRwYXJhbXNbJ2FjdGl2ZV90YWInXV0gPSB0cnVlOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RhYl9oZWFkZXJzJywkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkuCgoJJHRoaXMtPlNldFRhYkhlYWRlcignbWFpbicsJHRoaXMtPkxhbmcoJ21haW4nKSwgJHRhYnNbJ21haW4nXSkuCi8vCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJHRoaXMtPkxhbmcoJ2ZpZWxkcycpLCAkdGFic1snZmllbGRzJ10pLgoJJHRoaXMtPlNldFRhYkhlYWRlcignYWN0aW9ucycsJHRoaXMtPkxhbmcoJ2FjdGlvbnMnKSwgJHRhYnNbJ2FjdGlvbnMnXSkuCgkkdGhpcy0+U2V0VGFiSGVhZGVyKCdsb2dpYycsJHRoaXMtPkxhbmcoJ2xvZ2ljJyksICR0YWJzWydsb2dpYyddKS4KCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnMnLCR0aGlzLT5MYW5nKCdvcHRpb25zJyksICR0YWJzWydvcHRpb25zJ10pLgoJCiR0aGlzLT5FbmRUYWJIZWFkZXJzKCkuJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfbWFpbl90YWInLCR0aGlzLT5TdGFydFRhYignbWFpbicpKTsKLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2ZpZWxkc190YWInLCR0aGlzLT5TdGFydFRhYignZmllbGRzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2FjdGlvbnNfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ2FjdGlvbnMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfbG9naWNfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ2xvZ2ljJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X29wdGlvbnNfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ29wdGlvbnMnKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWInLCR0aGlzLT5FbmRUYWIoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX2Zvb3RlcnMnLCR0aGlzLT5FbmRUYWJDb250ZW50KCkpOwoKLy8gTG9naWMKCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwoJZXhpdDsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9pZCddKSAmJiAhZW1wdHkoJHBhcmFtc1snbW9kdWxlX2lkJ10pKSB7CgkkbW9kdWxlID0gTUNGTW9kdWxlOjpyZXRyaWV2ZUJ5UGsoJHBhcmFtc1snbW9kdWxlX2lkJ10pOwp9IGVsc2UgewoJJG1vZHVsZSA9IG5ldyBNQ0ZNb2R1bGUoKTsKCSRtb2R1bGUtPnNldFBhcmVudE1vZHVsZSgwKTsKfQoKCmlmIChpc3NldCgkcGFyYW1zWydtb3ZlX3VwJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ21vdmVfdXAnXSkpCnsKCWZvcmVhY2goJHBhcmFtc1snbW92ZV91cCddIGFzICRrZXkgPT4gJHZhbHVlKQoJewkKCQkkbW9kdWxlLT5vcmRlckV4dHJhRmllbGRzKCRrZXksICd1cCcpOwkKCQkkbW9kdWxlLT5zYXZlKCk7Cgl9Cn0KCmlmIChpc3NldCgkcGFyYW1zWydtb3ZlX2Rvd24nXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snbW92ZV9kb3duJ10pKQp7Cglmb3JlYWNoKCRwYXJhbXNbJ21vdmVfZG93biddIGFzICRrZXkgPT4gJHZhbHVlKQoJewkKCQkkbW9kdWxlLT5vcmRlckV4dHJhRmllbGRzKCRrZXksICdkb3duJyk7CQoJCSRtb2R1bGUtPnNhdmUoKTsKCX0KfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3B1Ymxpc2gnXSkgfHwgaXNzZXQoJHBhcmFtc1snc2F2ZSddKSApIHsKCSRtb2R1bGUtPnBvcHVsYXRlRnJvbUFycmF5KCRwYXJhbXMpOwoJaWYgKCFpc3NldCgkcGFyYW1zWydzaG93X21vZHVsZSddKSkKCQl7CgkJCS8vdmFyX2R1bXAoJHBhcmFtcyk7CgkJCSRtb2R1bGUtPnNldFNob3dNb2R1bGUoMCk7CgkJfQkKCQlpZiAoIWlzc2V0KCRwYXJhbXNbJ2lzX3VzZXJfbW9kdWxlJ10pKQoJCXsKCQkJLy92YXJfZHVtcCgkcGFyYW1zKTsKCQkJJG1vZHVsZS0+c2V0SXNVc2VyTW9kdWxlKDApOwoJCX0KCS8vIFJFT1JERVIgRklFTERTCglpZihpc3NldCgkcGFyYW1zWydmaWVsZHNfb3JkZXJlZCddKSkKCXsKCQkkc3RyID0gJG1vZHVsZS0+Z2V0U3RydWN0dXJlKCk7CgkJZm9yZWFjaCgkcGFyYW1zWydmaWVsZHNfb3JkZXJlZCddIGFzICR0YWJfa2V5ID0+ICR0YWJzKQoJCXsKCQkJZm9yZWFjaCgkdGFicyBhcyAkZmllbGRzZXRfa2V5ID0+ICRmaWVsZHNfb3JkZXJlZCkKCQkJewoJCQkJaWYoJGZpZWxkc19vcmRlcmVkICE9ICcnKQoJCQkJewoJCQkJCSRzdHItPnJlb3JkZXJGaWVsZHMoJHRhYl9rZXksICRmaWVsZHNldF9rZXksICRmaWVsZHNfb3JkZXJlZCk7CgkJCQl9CgkJCX0KCQl9CgkJJG1vZHVsZS0+c2V0U3RydWN0dXJlKCRzdHIpOwoJfQoJCQoJJG1vZHVsZS0+c2F2ZSgpOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ3B1Ymxpc2gnXSkpCgl7CgkJaWYgKCRtb2R1bGUtPnB1Ymxpc2goKSkKCQl7CgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwoJCQlleGl0OwkKCQl9CQoJCWVsc2UKCQl7CgkJCWVjaG8gJzxoMyBzdHlsZT0iY29sb3I6cmVkIj5Nb2R1bGUgcGF0aCB1bndyaXRhYmxlISBDaGVjayBwZXJtaXNzaW9ucyE8L2gzPic7CgkJfQoJfQoJZWxzZQoJewoJICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9pZCcgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwoJfQp9CgokYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwovLyAkYy0+YWRkKCdwYXJlbnRfbW9kdWxlJywgMCk7CmlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ21vZHVsZV9pZCddKSkgewoJJGMtPmFkZCgnaWQnLCAkbW9kdWxlLT5nZXRJZCgpLCBNQ0ZDcml0ZXJpYTo6Tk9UX0VRVUFMKTsKfQokbW9kdWxlcyA9IE1DRk1vZHVsZTo6ZG9TZWxlY3QoJGMpOwokbW9kdWxlc19zZWxlY3QgPSBhcnJheSgnJyA9PiAwKTsKZm9yZWFjaCAoJG1vZHVsZXMgYXMgJG1vZCkgewoJJG1vZHVsZXNfc2VsZWN0WyRtb2QtPmdldE1vZHVsZUZyaWVuZGx5TmFtZSgpXSA9ICRtb2QtPmdldElkKCk7Cn0KCiRmaWVsZF90eXBlcyA9ICRtb2R1bGUtPmdldEZpZWxkVHlwZXMoKTsKJGZpZWxkX3R5cGVzX3dpdGhfb3B0aW9ucyA9IGFycmF5KCk7CmZvcmVhY2ggKCRmaWVsZF90eXBlcyBhcyAkZmllbGRfdHlwZSkgewoJaWYgKCRmaWVsZF90eXBlWydvcHRpb25zJ10pIHsKCQkkZmllbGRfdHlwZXNfd2l0aF9vcHRpb25zW10gPSAkZmllbGRfdHlwZVsndHlwZSddOwoJfQp9CgokZmlsdGVyX3R5cGVzID0gJG1vZHVsZS0+Z2V0RmlsdGVyVHlwZXMoKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kdWxlX2lkJywgJGlkKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0JywgJHJldHVybmlkLCAncG9zdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9tb2R1bGVfaWQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kdWxlX2lkJywgJG1vZHVsZS0+Z2V0SWQoKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X21vZHVsZV9wYXJlbnQnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdwYXJlbnRfbW9kdWxlJywgJG1vZHVsZXNfc2VsZWN0LCAtMSwgJG1vZHVsZS0+Z2V0UGFyZW50TW9kdWxlKCkpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfYWRtaW5fc2VjdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKAoJJGlkLAoJJ2FkbWluX3NlY3Rpb24nLAoJYXJyYXkoCgkJJ0NvbnRlbnQnID0+ICdjb250ZW50JywKCQknTGF5b3V0JyA9PiAnbGF5b3V0JywKCQknVXNlcnMgJiBHcm91cHMnID0+ICd1c2Vyc2dyb3VwcycsCgkJJ0V4dGVudGlvbnMnID0+ICdleHRlbnNpb25zJywKCQknU2l0ZSBBZG1pbicgPT4gJ3NpdGVhZG1pbicKCSksCgknLTEnLAoJJG1vZHVsZS0+Z2V0QWRtaW5TZWN0aW9uKCkKCSkpOwoKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfbW9kdWxlX2ZyaWVuZGx5bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbW9kdWxlX2ZyaWVuZGx5bmFtZScsICRtb2R1bGUtPmdldE1vZHVsZUZyaWVuZGx5bmFtZSgpLCA1MCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX2xhYmVsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZV9sYWJlbCcsICRtb2R1bGUtPmdldFRpdGxlTGFiZWwoKSwgNTApKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcmVhdGVkX2J5JywgKCRtb2R1bGUtPmdldENyZWF0ZWRCeSgpICE9ICcnKT9jbXNtcygpLT5HZXRVc2VyT3BlcmF0aW9ucygpLT5Mb2FkVXNlckJ5SUQoJG1vZHVsZS0+Z2V0Q3JlYXRlZEJ5KCkpLT51c2VybmFtZTpudWxsKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcmVhdGVkX2F0JywgJG1vZHVsZS0+Z2V0Q3JlYXRlZEF0KCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VwZGF0ZWRfYnknLCAoJG1vZHVsZS0+Z2V0VXBkYXRlZEJ5KCkgIT0gJycpP2Ntc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCktPkxvYWRVc2VyQnlJRCgkbW9kdWxlLT5nZXRVcGRhdGVkQnkoKSktPnVzZXJuYW1lOm51bGwpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VwZGF0ZWRfYXQnLCAkbW9kdWxlLT5nZXRVcGRhdGVkQXQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsdGVycycsICRtb2R1bGUtPmdldEZpbHRlcnMoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kdWxlX2xvZ2ljJywgJHRoaXMtPkNyZWF0ZVN5bnRheEFyZWEoJGlkLCAkbW9kdWxlLT5nZXRNb2R1bGVMb2dpYygpLCAnbW9kdWxlX2xvZ2ljJywgJ3BhZ2ViaWd0ZXh0YXJlYScsICcnLCcnLCAnJywgOTAsIDE1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfc2hvd19tb2R1bGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdzaG93X21vZHVsZScsICcxJywgaXNfbnVsbCgkbW9kdWxlLT5nZXRTaG93TW9kdWxlKCkpPzE6JG1vZHVsZS0+Z2V0U2hvd01vZHVsZSgpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfaXNfdXNlcl9tb2R1bGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpc191c2VyX21vZHVsZScsICcxJywgJG1vZHVsZS0+Z2V0SXNVc2VyTW9kdWxlKCkpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfaXNfcHJvdGVjdGVkJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaXNfcHJvdGVjdGVkJywgJzEnLCAkbW9kdWxlLT5nZXRJc1Byb3RlY3RlZCgpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfZmlsZXNfcGF0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmlsZXNfcGF0aCcsICRtb2R1bGUtPmdldEZpbGVzUGF0aCgpLCA1MCkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwdWJsaXNoX2J1dHRvbicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdwdWJsaXNoJywgJ1B1Ymxpc2gnKSk7IAokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3NhdmUnLCAnU2F2ZScpKTsgCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsX2J1dHRvbicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCAnQ2FuY2VsJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpZWxkX3R5cGVzJywgJGZpZWxkX3R5cGVzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF90eXBlc193aXRoX29wdGlvbnMnLCAkZmllbGRfdHlwZXNfd2l0aF9vcHRpb25zKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfdHlwZXMnLCAkZmlsdGVyX3R5cGVzKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignbW92ZV91cCcsICR0aGlzLT5nZXRJbWFnZSgnYXJyb3dfdXAucG5nJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vdmVfZG93bicsICR0aGlzLT5nZXRJbWFnZSgnYXJyb3dfZG93bi5wbmcnKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlbW92ZV9pY29uJyxjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlZGl0X2ljb24nLGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkX2ljb24nLGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZCcpLCAnJywgJycsICdzeXN0ZW1pY29uJykpOwoKLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VwX2ljb24nLGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS91cC5naWYnLCcnLCAnJywgJycsICdzeXN0ZW1pY29uJykpOwovLyR0aGlzLT5zbWFydHktPmFzc2lnbignZG93bl9pY29uJyxjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZG93bi5naWYnLCAkdGhpcy0+TGFuZygnbW92ZV9kb3duJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSk7CgoKLy8gQWN0aXZlIGZpZWxkIHRhYgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FjdGl2ZV9maWVsZHNfdGFiJywgKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV9maWVsZHNfdGFiJ10pKT8kcGFyYW1zWydhY3RpdmVfZmllbGRzX3RhYiddOicnKTsKCiRmaWVsZHMgPSAkbW9kdWxlLT5nZXRGaWVsZFR5cGVzKCk7CiRzZWxlY3QgPSBhcnJheSgpOwpmb3JlYWNoICgkZmllbGRzIGFzICRmaWVsZCkKewoJJHNlbGVjdFskZmllbGRbJ3R5cGUnXV0gPSAkZmllbGRbJ2xhYmVsJ107Cn0KCi8vIC0tLSBTVFJVQ1RVUkUgLS0tCiR0aGlzLT5zbWFydHktPmFzc2lnbignZXh0cmFfZmllbGRzJywgJG1vZHVsZS0+Z2V0T2xkRXh0cmFGaWVsZHMoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RydWN0dXJlJywgJG1vZHVsZS0+Z2V0U3RydWN0dXJlKCkpOwoKLy8gZWNobyAnPHByZT4nOwovLyB2YXJfZHVtcCgkbW9kdWxlLT5nZXRTdHJ1Y3R1cmUoKSk7Ci8vIGVjaG8gJzwvcHJlPic7CgovLyAtLS0gVEFCIEZPUk0gLS0tCiR0YWJfZm9ybSA9IG5ldyBDTVNGb3JtKCdNQ0ZhY3RvcnknLCAkaWQsICdtYW5hZ2VfdGFicycsJHJldHVybmlkKTsKJHRhYl9mb3JtLT5zZXRCdXR0b25zKGFycmF5KCkpOwokdGFiX2Zvcm0tPnNldFdpZGdldCgnbW9kdWxlX2lkJywgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwokdGFiX2Zvcm0tPnNldFdpZGdldCgnbmFtZScsICd0ZXh0JywgYXJyYXkoJ3NpemUnID0+IDQ1CSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RhYl9mb3JtJywgJHRhYl9mb3JtKTsKCi8vIC0tLSBUQUIgUkVNT1ZFIEZPUk0gLS0tCiR0YWJfcmVtb3ZlX2Zvcm0gPSBuZXcgQ01TRm9ybSgnTUNGYWN0b3J5JywgJGlkLCAnbWFuYWdlX3RhYnMnLCRyZXR1cm5pZCk7CiR0YWJfcmVtb3ZlX2Zvcm0tPnNldEJ1dHRvbnMoYXJyYXkoKSk7CiR0YWJfcmVtb3ZlX2Zvcm0tPnNldFdpZGdldCgnbW9kdWxlX2lkJywgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwokdGFiX3JlbW92ZV9mb3JtLT5zZXRXaWRnZXQoJ3JlbW92ZV90YWInLCAnaGlkZGVuJyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX3JlbW92ZV9mb3JtJywgJHRhYl9yZW1vdmVfZm9ybSk7CgovLyAtLS0gRklFTERTRVQgRk9STSAtLS0KJGZpZWxkc2V0X2Zvcm0gPSBuZXcgQ01TRm9ybSgnTUNGYWN0b3J5JywgJGlkLCAnbWFuYWdlX2ZpZWxkc2V0JywkcmV0dXJuaWQpOwokZmllbGRzZXRfZm9ybS0+c2V0QnV0dG9ucyhhcnJheSgpKTsKJGZpZWxkc2V0X2Zvcm0tPnNldFdpZGdldCgnbW9kdWxlX2lkJywgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwokZmllbGRzZXRfZm9ybS0+c2V0V2lkZ2V0KCd0YWJfa2V5JywgJ2hpZGRlbicpOwokZmllbGRzZXRfZm9ybS0+c2V0V2lkZ2V0KCduYW1lJywgJ3RleHQnLCBhcnJheSgnc2l6ZScgPT4gNDUJKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRzZXRfZm9ybScsICRmaWVsZHNldF9mb3JtKTsKCi8vIC0tLSBSRU1PVkUgRklFTERTRVQgRk9STSAtLS0KJHJlbW92ZV9maWVsZHNldF9mb3JtID0gbmV3IENNU0Zvcm0oJ01DRmFjdG9yeScsICRpZCwgJ21hbmFnZV9maWVsZHNldCcsJHJldHVybmlkKTsKJHJlbW92ZV9maWVsZHNldF9mb3JtLT5zZXRCdXR0b25zKGFycmF5KCkpOwokcmVtb3ZlX2ZpZWxkc2V0X2Zvcm0tPnNldFdpZGdldCgnbW9kdWxlX2lkJywgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwokcmVtb3ZlX2ZpZWxkc2V0X2Zvcm0tPnNldFdpZGdldCgndGFiX2tleScsICdoaWRkZW4nKTsKJHJlbW92ZV9maWVsZHNldF9mb3JtLT5zZXRXaWRnZXQoJ3JlbW92ZV9maWVsZHNldCcsICdoaWRkZW4nKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZW1vdmVfZmllbGRzZXRfZm9ybScsICRyZW1vdmVfZmllbGRzZXRfZm9ybSk7CgovLyAtLS0gQUREL0VESVQgRklFTEQgRk9STSAtLS0KJGFkZF9maWVsZF9mb3JtID0gbmV3IENNU0Zvcm0oJ01DRmFjdG9yeScsICRpZCwgJ21hbmFnZV9maWVsZCcsJHJldHVybmlkKTsKJGFkZF9maWVsZF9mb3JtLT5zZXRCdXR0b25zKGFycmF5KCkpOwokYWRkX2ZpZWxkX2Zvcm0tPnNldFdpZGdldCgnbW9kdWxlX2lkJywgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwokYWRkX2ZpZWxkX2Zvcm0tPnNldFdpZGdldCgndGFiX2tleScsICdoaWRkZW4nKTsKJGFkZF9maWVsZF9mb3JtLT5zZXRXaWRnZXQoJ2ZpZWxkc2V0X2tleScsICdoaWRkZW4nKTsKJGFkZF9maWVsZF9mb3JtLT5zZXRXaWRnZXQoJ2xhYmVsJywgJ3RleHQnLCBhcnJheSgnc2l6ZScgPT4gNDUJKSk7CiRhZGRfZmllbGRfZm9ybS0+c2V0V2lkZ2V0KCduYW1lJywgJ2hpZGRlbicpOwokYWRkX2ZpZWxkX2Zvcm0tPnNldFdpZGdldCgncGxhY2UnLCAnc2VsZWN0JywgYXJyYXkoJ3ZhbHVlcycgPT4gCSRtb2R1bGUtPmdldFN0cnVjdHVyZSgpLT5nZXRGaWVsZHNldHNXaXRoVGFic0ZvclNlbGVjdCgpKSk7CiRhZGRfZmllbGRfZm9ybS0+c2V0V2lkZ2V0KCd0eXBlJywgJ2hpZGRlbicpOwokYWRkX2ZpZWxkX2Zvcm0tPnNldFdpZGdldCgndHlwZV9zZWxlY3QnLCAnc2VsZWN0JywgYXJyYXkoJ3ZhbHVlcycgPT4gCSRzZWxlY3QpKTsKJGFkZF9maWVsZF9mb3JtLT5zZXRXaWRnZXQoJ29wdGlvbnMnLCAndGV4dGFyZWEnLCBhcnJheSgnY29scycgPT4gNDAsICdyb3dzJyA9PiA0LCAnYWRkdGV4dCcgPT4gJ3N0eWxlPSJ3aWR0aDoyNWVtO2hlaWdodDoxMGVtOyInKSk7CiRhZGRfZmllbGRfZm9ybS0+c2V0V2lkZ2V0KCdjb2x1bW4nLCAnY2hlY2tib3gnKTsKJGFkZF9maWVsZF9mb3JtLT5zZXRXaWRnZXQoJ2ZpbHRlcicsICdjaGVja2JveCcpOwokYWRkX2ZpZWxkX2Zvcm0tPnNldFdpZGdldCgnZnJvbnRlbmQnLCAnY2hlY2tib3gnKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRfZmllbGRfZm9ybScsICRhZGRfZmllbGRfZm9ybSk7CgovLyAtLS0gUkVNT1ZFIEZJRUxEIEZPUk0gLS0tCiRyZW1vdmVfZmllbGRfZm9ybSA9IG5ldyBDTVNGb3JtKCdNQ0ZhY3RvcnknLCAkaWQsICdtYW5hZ2VfZmllbGQnLCRyZXR1cm5pZCk7CiRyZW1vdmVfZmllbGRfZm9ybS0+c2V0QnV0dG9ucyhhcnJheSgpKTsKJHJlbW92ZV9maWVsZF9mb3JtLT5zZXRXaWRnZXQoJ21vZHVsZV9pZCcsICdoaWRkZW4nLCBhcnJheSgndmFsdWUnID0+ICRtb2R1bGUtPmdldElkKCkpKTsKJHJlbW92ZV9maWVsZF9mb3JtLT5zZXRXaWRnZXQoJ3RhYl9rZXknLCAnaGlkZGVuJyk7CiRyZW1vdmVfZmllbGRfZm9ybS0+c2V0V2lkZ2V0KCdmaWVsZHNldF9rZXknLCAnaGlkZGVuJyk7CiRyZW1vdmVfZmllbGRfZm9ybS0+c2V0V2lkZ2V0KCdmaWVsZCcsICdoaWRkZW4nKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZW1vdmVfZmllbGRfZm9ybScsICRyZW1vdmVfZmllbGRfZm9ybSk7CgoKLy8gQWN0aW9ucwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZF9hY3Rpb25fdXJsJywgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9pZCddKSk/JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbWFuYWdlX2FjdGlvbicsICRyZXR1cm5pZCwgJycsIGFycmF5KCdtb2R1bGVfaWQnID0+ICRwYXJhbXNbJ21vZHVsZV9pZCddKSwnJyx0cnVlLGZhbHNlKTonRmlyc3Qgc2F2ZSB0aGUgbW9kdWxlIGNvcmUgaW4gb3JkZXIgdG8gYWRkIGFjdGlvbnMnKTsKJGFjdGlvbnMgPSAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2lkJ10pKT9NQ0ZNb2R1bGVBY3Rpb246OmRvU2VsZWN0KGFycmF5KCd3aGVyZScgPT4gYXJyYXkoJ21vZHVsZV9pZCcgPT4gICRwYXJhbXNbJ21vZHVsZV9pZCddKSkpOmFycmF5KCk7CmZvcmVhY2goJGFjdGlvbnMgYXMgJGFjdGlvbikKewogJGFjdGlvbi0+ZWRpdF91cmwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtYW5hZ2VfYWN0aW9uJywgJHJldHVybmlkLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCdtb2R1bGVfYWN0aW9uX2lkJyA9PiAkYWN0aW9uLT5nZXRJZCgpKSk7CgogJGFjdGlvbi0+ZGVsZXRlX3VybCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZV9hY3Rpb24nLCAkcmV0dXJuaWQsIGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCdtb2R1bGVfYWN0aW9uX2lkJyA9PiAkYWN0aW9uLT5nZXRJZCgpKSk7CgoJaWYgKCRhY3Rpb24tPmlzX3B1YmxpYyA9PSAxKQoJewoJCSRhY3Rpb24tPmlzX3B1YmxpY19pY29uID0gY21zbXMoKS0+Z2V0X3ZhcmlhYmxlKCdhZG1pbnRoZW1lJyktPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJycsICcnLCAnJywgJ3N5c3RlbWljb24nKTsKCX0KCWVsc2UKCXsKCQkkYWN0aW9uLT5pc19wdWJsaWNfaWNvbiA9IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCAnJywgJycsICcnLCAnc3lzdGVtaWNvbicpOwoJfQp9CiR0aGlzLT5zbWFydHktPmFzc2lnbignYWN0aW9ucycsICRhY3Rpb25zKTsKCi8vIFRlbXBsYXRlczogUmVzdG9yZQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXNfcmVzdG9yZV91cmwnLCAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2lkJ10pKT8kdGhpcy0+Q3JlYXRlTGluaygkaWQsICd0ZW1wbGF0ZXNfcmVzdG9yZScsICRyZXR1cm5pZCwgJycsIGFycmF5KCdtb2R1bGVfaWQnID0+ICRwYXJhbXNbJ21vZHVsZV9pZCddKSwnJyx0cnVlLGZhbHNlKTonRmlyc3Qgc2F2ZSB0aGUgbW9kdWxlIGNvcmUgaW4gb3JkZXIgdG8gbWFuYWdlIHRlbXBsYXRlcycpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0LnRwbCcpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.manage_action.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja0FjY2VzcygpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoKTsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9hY3Rpb25faWQnXSkgJiYgJHBhcmFtc1snbW9kdWxlX2FjdGlvbl9pZCddICE9ICcnKQp7CgkkYWN0aW9uID0gTUNGTW9kdWxlQWN0aW9uOjpyZXRyaWV2ZUJ5UGsoJHBhcmFtc1snbW9kdWxlX2FjdGlvbl9pZCddKTsKfQoKaWYgKCghaXNzZXQoJGFjdGlvbikpIHx8IGlzX251bGwoJGFjdGlvbikpCnsKCSRhY3Rpb24gPSBuZXcgTUNGTW9kdWxlQWN0aW9uKCk7CgkkYWN0aW9uLT5tb2R1bGVfaWQgPSAkcGFyYW1zWydtb2R1bGVfaWQnXTsKfQoKJGZvcm0gPSBuZXcgQ01TRm9ybSgkdGhpcy0+R2V0TmFtZSgpLCAkaWQsICdtYW5hZ2VfYWN0aW9uJywgJHJldHVybmlkKTsKJGZvcm0tPnNldEJ1dHRvbnMoYXJyYXkoJ3N1Ym1pdCcsJ2FwcGx5JywnY2FuY2VsJykpOwoKaWYgKCRmb3JtLT5pc0NhbmNlbGxlZCgpKQp7CglyZXR1cm4gJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdCcsJHJldHVybmlkLGFycmF5KCdtb2R1bGVfaWQnID0+ICRhY3Rpb24tPm1vZHVsZV9pZCwnYWN0aXZlX3RhYicgPT4gJ2FjdGlvbnMnKSk7Cn0KCiRmb3JtLT5zZXRXaWRnZXQoJ21vZHVsZV9hY3Rpb25faWQnLCAnaGlkZGVuJywgYXJyYXkoJ29iamVjdCcgPT4gJiRhY3Rpb24sICdmaWVsZF9uYW1lJyA9PiAnaWQnLCAnZ2V0X21ldGhvZCcgPT4gJ2dldElkJykpOwokZm9ybS0+c2V0V2lkZ2V0KCdtb2R1bGVfaWQnLCAnaGlkZGVuJywgYXJyYXkoJ29iamVjdCcgPT4gJiRhY3Rpb24pKTsKCiRmb3JtLT5zZXRXaWRnZXQoJ25hbWUnLCAndGV4dCcsIGFycmF5KCdvYmplY3QnID0+ICYkYWN0aW9uLCAndmFsaWRhdG9ycycgPT4gYXJyYXkoJ25vdF9lbXB0eScgPT4gdHJ1ZSkpKTsKJGZvcm0tPnNldFdpZGdldCgnY29kZScsICdjb2RlYXJlYScsIGFycmF5KCdvYmplY3QnID0+ICYkYWN0aW9uKSk7CgokZm9ybS0+c2V0V2lkZ2V0KCdpc19wdWJsaWMnLCAnY2hlY2tib3gnLCBhcnJheSgnb2JqZWN0JyA9PiAmJGFjdGlvbikpOwokZm9ybS0+c2V0V2lkZ2V0KCdoYXZlX3Blcm1pc3Npb24nLCAnY2hlY2tib3gnLCBhcnJheSgnb2JqZWN0JyA9PiAmJGFjdGlvbikpOwoKaWYoJGZvcm0tPmlzUG9zdGVkKCkpCnsKCSRmb3JtLT5wcm9jZXNzKCk7CglpZiAoISRmb3JtLT5oYXNFcnJvcnMoKSkKCXsKCQkkYWN0aW9uLT5zYXZlKCk7CgkJCgkJaWYgKCRmb3JtLT5pc1N1Ym1pdHRlZCgpKQoJCXsKCQkJcmV0dXJuICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXQnLCRyZXR1cm5pZCxhcnJheSgnbW9kdWxlX2lkJyA9PiAkYWN0aW9uLT5tb2R1bGVfaWQsJ2FjdGl2ZV90YWInID0+ICdhY3Rpb25zJykpOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gJHRoaXMtPlJlZGlyZWN0KCRpZCwnbWFuYWdlX2FjdGlvbicsJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX2FjdGlvbl9pZCcgPT4gJGFjdGlvbi0+Z2V0SWQoKSwnYWN0aXZlX3RhYicgPT4gJ2FjdGlvbnMnKSk7CgkJfQoJfQoJCn0KCmVjaG8gJGZvcm0tPnJlbmRlcigpOw==]]></data>
	</file>
	<file>
	  <filename>/action.manage_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgpOwp9CgppZihpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpCnsKCSRtb2R1bGUgPSBNQ0ZNb2R1bGU6OnJldHJpZXZlQnlQaygkcGFyYW1zWydtb2R1bGVfaWQnXSk7CglpZiAoCgkJCSRtb2R1bGUgCgkJCSYmIGlzc2V0KCRwYXJhbXNbJ3RhYl9rZXknXSkgCgkJCSYmICRwYXJhbXNbJ3RhYl9rZXknXSAhPSAnJyAKCQkJJiYgaXNzZXQoJHBhcmFtc1snZmllbGRzZXRfa2V5J10pIAoJCQkmJiAkcGFyYW1zWydmaWVsZHNldF9rZXknXSAhPSAnJwoJCQkpCgl7CgkJJHN0cnVjdHVyZSA9ICRtb2R1bGUtPmdldFN0cnVjdHVyZSgpOwoJCQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2xhYmVsJ10pICYmICRwYXJhbXNbJ2xhYmVsJ10gIT0gJycpCgkJewoJCQkkc3RydWN0dXJlLT5hZGRGaWVsZCgkcGFyYW1zWyd0YWJfa2V5J10sICRwYXJhbXNbJ2ZpZWxkc2V0X2tleSddLCAkcGFyYW1zKTsKCQkJJG1vZHVsZS0+c2V0U3RydWN0dXJlKCRzdHJ1Y3R1cmUpOwkJCQoJCQkkbW9kdWxlLT5zYXZlKCk7CQoJCX0KCQkKCQlpZihpc3NldCgkcGFyYW1zWydmaWVsZCddKSAmJiAkcGFyYW1zWydmaWVsZCddICE9ICcnKQoJCXsKCQkJJHN0cnVjdHVyZS0+cmVtb3ZlRmllbGQoJHBhcmFtc1snZmllbGQnXSk7CgkJCSRtb2R1bGUtPnNldFN0cnVjdHVyZSgkc3RydWN0dXJlKTsJCQkKCQkJJG1vZHVsZS0+c2F2ZSgpOwoJCX0KCQkJCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGUtPmdldElkKCksICdhY3RpdmVfZmllbGRzX3RhYicgPT4gJHBhcmFtc1sndGFiX2tleSddKSk7CgkJCgl9Cn0KdmFyX2R1bXAoJHBhcmFtcyk7CmVjaG8gJ0FuIGVycm9yIG9jY3VycmVkLiBEaWQgeW91IHNhdmUgeW91ciBtb2R1bGUgZmlyc3QgPyBQbGVhc2UgdHJ5IGFnYWluLic7]]></data>
	</file>
	<file>
	  <filename>/action.manage_fieldset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgpOwp9CgppZihpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpCnsKCSRtb2R1bGUgPSBNQ0ZNb2R1bGU6OnJldHJpZXZlQnlQaygkcGFyYW1zWydtb2R1bGVfaWQnXSk7CglpZiAoJG1vZHVsZSkKCXsKCQlpZihpc3NldCgkcGFyYW1zWyd0YWJfa2V5J10pKQoJCXsKCQkJJHN0cnVjdHVyZSA9ICRtb2R1bGUtPmdldFN0cnVjdHVyZSgpOwoJCQoJCQlpZihpc3NldCgkcGFyYW1zWyduYW1lJ10pICYmICRwYXJhbXNbJ25hbWUnXSAhPSAnJykKCQkJewoJCQkJJHN0cnVjdHVyZS0+c2V0RmllbGRzZXQoJHBhcmFtc1sndGFiX2tleSddLCAkcGFyYW1zWyduYW1lJ10pOwoJCQkJJG1vZHVsZS0+c2V0U3RydWN0dXJlKCRzdHJ1Y3R1cmUpOwkJCQoJCQkJJG1vZHVsZS0+c2F2ZSgpOwkJCQoJCQl9CgkJCgkJCWlmKGlzc2V0KCRwYXJhbXNbJ3JlbW92ZV9maWVsZHNldCddKSAmJiAkcGFyYW1zWydyZW1vdmVfZmllbGRzZXQnXSAhPSAnJykKCQkJCXsKCQkJCQkkc3RydWN0dXJlLT5yZW1vdmVGaWVsZHNldCgkcGFyYW1zWyd0YWJfa2V5J10sICRwYXJhbXNbJ3JlbW92ZV9maWVsZHNldCddKTsKCQkJCQkkbW9kdWxlLT5zZXRTdHJ1Y3R1cmUoJHN0cnVjdHVyZSk7CQkJCgkJCQkJJG1vZHVsZS0+c2F2ZSgpOwkJCQoJCQkJfQoJCQkKCQkJCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0JywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX2lkJyA9PiAkbW9kdWxlLT5nZXRJZCgpLCdhY3RpdmVfZmllbGRzX3RhYicgPT4gJHBhcmFtc1sndGFiX2tleSddKSk7CgkJfQkKCX0KfQplY2hvICdBbiBlcnJvciBvY2N1cnJlZC4gRGlkIHlvdSBzYXZlIHlvdXIgbW9kdWxlIGZpcnN0ID8gUGxlYXNlIHRyeSBhZ2Fpbi4nOw==]]></data>
	</file>
	<file>
	  <filename>/action.manage_tabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9pZCddKSAmJiAkcGFyYW1zWydtb2R1bGVfaWQnXSAhPSAnJykKewoJJG1vZHVsZSA9IE1DRk1vZHVsZTo6cmV0cmlldmVCeVBrKCRwYXJhbXNbJ21vZHVsZV9pZCddKTsKCWlmICgkbW9kdWxlKQoJewoJCSRzdHJ1Y3R1cmUgPSAkbW9kdWxlLT5nZXRTdHJ1Y3R1cmUoKTsKCQkKCQlpZigkcGFyYW1zWyduYW1lJ10gJiYgJHBhcmFtc1snbmFtZSddICE9ICcnKQoJCXsKCQkJJHN0cnVjdHVyZS0+c2V0VGFiKCRwYXJhbXNbJ25hbWUnXSk7CgkJCSRtb2R1bGUtPnNldFN0cnVjdHVyZSgkc3RydWN0dXJlKTsJCQkKCQkJJG1vZHVsZS0+c2F2ZSgpOwkJCQoJCX0KCQkKCQlpZigkcGFyYW1zWydyZW1vdmVfdGFiJ10gJiYgJHBhcmFtc1sncmVtb3ZlX3RhYiddICE9ICcnKQoJCXsKCQkJJHN0cnVjdHVyZS0+cmVtb3ZlVGFiKCRwYXJhbXNbJ3JlbW92ZV90YWInXSk7CgkJCSRtb2R1bGUtPnNldFN0cnVjdHVyZSgkc3RydWN0dXJlKTsJCQkKCQkJJG1vZHVsZS0+c2F2ZSgpOwkJCQoJCX0KCQkKCQkKCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9pZCcgPT4gJG1vZHVsZS0+Z2V0SWQoKSkpOwoJfQp9CmVjaG8gJ0FuIGVycm9yIG9jY3VycmVkLiBEaWQgeW91IHNhdmUgeW91ciBtb2R1bGUgZmlyc3QgPyBQbGVhc2UgdHJ5IGFnYWluLic7]]></data>
	</file>
	<file>
	  <filename>/action.module_export.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja0FjY2VzcygpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoKTsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9pZCddKSkKewoJJG1vZHVsZSA9IE1DRk1vZHVsZTo6cmV0cmlldmVCeVBrKCRwYXJhbXNbJ21vZHVsZV9pZCddKTsKCQoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPScxLjAnID8+XG48TW9kdWxlPjwvTW9kdWxlPiI7CgkkeG1sID0gbmV3IFNpbXBsZVhNTEVsZW1lbnQoJHhtbHN0cik7CgkKCS8vIFRFTVBMQVRFUwoJLy8gRmlyc3QsIHdlIGNoZWNrIGlmIHRoZSBtb2R1bGUgaXMgaW5zdGFsbGVkCglpZiAoTUNGVG9vbHM6OklzTW9kdWxlQWN0aXZlKCRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKSkpCgl7CgkJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCkpOwoJCSR0ZW1wbGF0ZXNfbGlzdCA9ICRtb2QtPkxpc3RUZW1wbGF0ZXMoKTsKCQkkdGVtcGxhdGVzICA9IGFycmF5KCk7CgkJZm9yZWFjaCgkdGVtcGxhdGVzX2xpc3QgYXMgJHRlbXBsYXRlKQoJCXsKCQkJJHRlbXBsYXRlX2RhdGEgPSAkbW9kLT5nZXRUZW1wbGF0ZSgkdGVtcGxhdGUpOwoJCQkkdGVtcGxhdGVzW10gPSBhcnJheSgKCQkJCSduYW1lJyA9PiAkdGVtcGxhdGUsCgkJCQknZGF0YScgPT4gJHRlbXBsYXRlX2RhdGEsCgkJCQknaXNfZGVmYXVsdCcgPT4gICRtb2QtPmlzRGVmYXVsdFRlbXBsYXRlKCR0ZW1wbGF0ZSkKCQkJKTsKCQl9CgkJJG1vZHVsZS0+c2V0VGVtcGxhdGVzRGF0YShiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkdGVtcGxhdGVzKSkpOwoJCSRtb2R1bGUtPnNhdmUoKTsKCX0KCQoJLy8gTW9kdWxlCgkKCSR4bWwtPmFkZENoaWxkKCdtb2R1bGVfbmFtZScsICRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKSk7CgkkeG1sLT5hZGRDaGlsZCgnbW9kdWxlX2ZyaWVuZGx5X25hbWUnLCAkbW9kdWxlLT5nZXRNb2R1bGVGcmllbmRseW5hbWUoKSk7CiAgJHhtbC0+YWRkQ2hpbGQoJ21vZHVsZV9jb2RlJywgYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJG1vZHVsZSkpKTsKCgkvLyBBQ1RJT05TCgkkYWN0aW9ucyA9IE1DRk1vZHVsZUFjdGlvbjo6ZG9TZWxlY3QoYXJyYXkoJ3doZXJlJyA9PiBhcnJheSgnbW9kdWxlX2lkJyA9PiAkcGFyYW1zWydtb2R1bGVfaWQnXSkpKTsJCgkkZGF0YXMgPSBhcnJheSgpOwoJZm9yZWFjaCgkYWN0aW9ucyBhcyAkYWN0aW9uKQoJewoJCSRkYXRhc1tdID0gYXJyYXkoCgkJCSduYW1lJyA9PiAkYWN0aW9uLT5uYW1lLAoJCQknY29kZScgPT4gJGFjdGlvbi0+Y29kZSwKCQkJJ2lzX3B1YmxpYycgPT4gJGFjdGlvbi0+aXNfcHVibGljLAoJCQknaGF2ZV9wZXJtaXNzaW9uJyA9PiAkYWN0aW9uLT5oYXZlX3Blcm1pc3Npb24sCgkJCSk7Cgl9CgkkeG1sLT5hZGRDaGlsZCgnbW9kdWxlX2FjdGlvbnMnLCBiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkZGF0YXMpKSk7CgoJJHhtbHN0cmluZyA9ICAkeG1sLT5hc1hNTCgpOwkKCQoJaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CgloZWFkZXIoIkNvbnRlbnQtdHlwZTogdGV4dC94bWwiKTsKCWhlYWRlcignQ29udGVudC1MZW5ndGg6ICcgLiBzdHJsZW4oJHhtbHN0cmluZykpOwoJaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0nIC4kbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCkgLiAnLScgLiAkbW9kdWxlLT5nZXRNb2R1bGVWZXJzaW9uKCkgLiAnLnhtbCcpOwoJZWNobyAkeG1sc3RyaW5nOwoJZXhpdDsKfQ==]]></data>
	</file>
	<file>
	  <filename>/action.module_import.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja0FjY2VzcygpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoKTsKfQoKaWYgKGlzX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skaWQuJ3htbGZpbGUnXVsndG1wX25hbWUnXSkpCnsKCSR4bWxfY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRfRklMRVNbJGlkLid4bWxmaWxlJ11bJ3RtcF9uYW1lJ10pOwoJCgkkeG1sID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKCR4bWxfY29udGVudCk7CgkKCSRtb2R1bGVfbmFtZSA9ICAoc3RyaW5nKSR4bWwtPm1vZHVsZV9uYW1lOwoJJG1vZHVsZV9mcmllbmRseV9uYW1lID0gJG1vZHVsZV9uYW1lOwoJCglmb3JlYWNoKCR4bWwgYXMgJGZpZWxkKQoJewoJICBpZignbW9kdWxlX2ZyaWVuZGx5X25hbWUnID09ICRmaWVsZC0+Z2V0TmFtZSgpKQoJICB7CgkgICAgJG1vZHVsZV9mcmllbmRseV9uYW1lID0gKHN0cmluZykkeG1sLT5tb2R1bGVfZnJpZW5kbHlfbmFtZTsKCSAgfQoJfQoJCglpZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX25hbWUnXSkgJiYgJHBhcmFtc1snbW9kdWxlX25hbWUnXSAhPSAnJykKCXsKCQkkbW9kdWxlX2ZyaWVuZGx5X25hbWUgPSAkcGFyYW1zWydtb2R1bGVfbmFtZSddOwoJCSRtb2R1bGVfbmFtZSA9IG51bGw7Cgl9CgkKCSRtb2R1bGUgPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCR4bWwtPm1vZHVsZV9jb2RlKSk7CgoJJG1vZHVsZS0+c2V0SWQobnVsbCk7CgkkbW9kdWxlLT5zZXRNb2R1bGVOYW1lKCRtb2R1bGVfbmFtZSk7CgkkbW9kdWxlLT5zZXRNb2R1bGVGcmllbmRseU5hbWUoJG1vZHVsZV9mcmllbmRseV9uYW1lKTsKCSRtb2R1bGUtPnNhdmUoKTsKCQoJaWYoaXNzZXQoJHhtbC0+bW9kdWxlX2FjdGlvbnMpKQoJewoJCSRhY3Rpb25zID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkeG1sLT5tb2R1bGVfYWN0aW9ucykpOwoJCWlmIChpc19hcnJheSgkYWN0aW9ucykpCgkJewoJCQlmb3JlYWNoKCRhY3Rpb25zIGFzICRhY3Rpb24pCgkJCXsKCQkJCSRuZXdfYWN0aW9uID0gIG5ldyBNQ0ZNb2R1bGVBY3Rpb24oKTsKCQkJCSRuZXdfYWN0aW9uLT5tb2R1bGVfaWQgPSAkbW9kdWxlLT5nZXRJZCgpOwoJCQkJJG5ld19hY3Rpb24tPm5hbWUgPSAkYWN0aW9uWyduYW1lJ107CgkJCQkkbmV3X2FjdGlvbi0+Y29kZSA9ICRhY3Rpb25bJ2NvZGUnXTsKCQkJCSRuZXdfYWN0aW9uLT5pc19wdWJsaWMgPSAkYWN0aW9uWydpc19wdWJsaWMnXTsKCQkJCSRuZXdfYWN0aW9uLT5oYXZlX3Blcm1pc3Npb24gPSAkYWN0aW9uWydoYXZlX3Blcm1pc3Npb24nXTsKCQkJCSRuZXdfYWN0aW9uLT5zYXZlKCk7CgkJCX0KCQl9Cgl9CQp9CgoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7]]></data>
	</file>
	<file>
	  <filename>/action.publish.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2lkJ10pICYmICFlbXB0eSgkcGFyYW1zWydtb2R1bGVfaWQnXSkpIAp7CgkkbW9kdWxlID0gTUNGTW9kdWxlOjpyZXRyaWV2ZUJ5UGsoJHBhcmFtc1snbW9kdWxlX2lkJ10pOwoJaWYoaXNfb2JqZWN0KCRtb2R1bGUpKQoJewkJCgkJJG1vZHVsZS0+Zm9yY2VVcGRhdGUoKTsKCQlpZiAoJG1vZHVsZS0+cHVibGlzaCgpKQoJCXsKCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7CgkJfQkJCgkJZWxzZQoJCXsKCQkJZWNobyAnPGgzIHN0eWxlPSJjb2xvcjpyZWQiPk1vZHVsZSBwYXRoIHVud3JpdGFibGUhIENoZWNrIHBlcm1pc3Npb25zITwvaDM+JzsKCQl9Cgl9Cn0KZWNobyAnPHA+JyAuICR0aGlzLT5sYW5nKCdlcnJvcl9vY2N1cmVkX3B1Ymxpc2hpbmcnKSAuICc8L3A+Jzsg]]></data>
	</file>
	<file>
	  <filename>/action.templates_restore.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja0FjY2VzcygpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoKTsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9pZCddKSAmJiAkcGFyYW1zWydtb2R1bGVfaWQnXSAhPSAnJykKewoJJG1vZHVsZSA9IE1DRk1vZHVsZTo6cmV0cmlldmVCeVBrKCRwYXJhbXNbJ21vZHVsZV9pZCddKTsKfQoKLy8gVEVNUExBVEVTCi8vIEZpcnN0LCB3ZSBjaGVjayBpZiB0aGUgbW9kdWxlIGlzIGluc3RhbGxlZAppZiAoTUNGVG9vbHM6OklzTW9kdWxlQWN0aXZlKCRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKSkpCnsKCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpKTsKCSR0ZW1wbGF0ZXMgPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCRtb2R1bGUtPmdldFRlbXBsYXRlc0RhdGEoKSkpOwoJCglmb3JlYWNoKCR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlKQoJewoJCSRtb2QtPnNldFRlbXBsYXRlKCR0ZW1wbGF0ZVsnbmFtZSddLCAkdGVtcGxhdGVbJ2RhdGEnXSk7CgkJaWYoJHRlbXBsYXRlWydpc19kZWZhdWx0J10gIT09IGZhbHNlKQoJCXsKCQkJCSRtb2QtPkFkZERlZmF1bHRUZW1wbGF0ZSgkdGVtcGxhdGVbJ2lzX2RlZmF1bHQnXSwgJHRlbXBsYXRlWyduYW1lJ10pOwoJCX0KCX0KfQoKcmV0dXJuICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXQnLCRyZXR1cm5pZCxhcnJheSgnbW9kdWxlX2lkJyA9PiAkcGFyYW1zWydtb2R1bGVfaWQnXSkpOw==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/.DS_Store</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAAAAUJ1ZDEAACAAAAAIAAAAIAAAABAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAACkAAAABAAAQAABpAGMAYQB0AGkAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AHcAYQBuAGQALgBwAG4AZ0lsb2NibG9iAAAAEAAAAEYAAASI////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAACALAAAARQAAEAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQREU0RCAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAACAAAABgAAAAAAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAgAACAAAACgAAAAAAQAAMAAAAAAAAAAAAQAAQAAAAAABAACAAAAAAAEAAQAAAAAAAQACAAAAAAABAAQAAAAAAAEACAAAAAAAAQAQAAAAAAABACAAAAAAAAEAQAAAAAAAAQCAAAAAAAABAQAAAAAAAAECAAAAAAAAAQQAAAAAAAABCAAAAAAAAAEQAAAAAAAAASAAAAAAAAABQAAAAAAAAAB4////////AAAAAAAUAGEAcABwAGwAaQBjAGEAdABpAG8AbgBfAGwAaQBuAGsALgBwAG4AZ0lsb2NibG9iAAAAEAAAAEYAAAHo////////AAAAAAATAGEAcABwAGwAaQBjAGEAdABpAG8AbgBfAG8AcwB4AC4AcABuAGdJbG9jYmxvYgAAABAAAAFSAAAB6P///////wAAAAAAHABhAHAAcABsAGkAYwBhAHQAaQBvAG4AXwBvAHMAeABfAHQAZQByAG0AaQBuAGEAbAAuAHAAbgBnSWxvY2Jsb2IAAAAQAAAAzAAAAej///////8AAAAAABMAYQBwAHAAbABpAGMAYQB0AGkAbwBuAF8AcAB1AHQALgBwAG4AZ0lsb2NibG9iAAAAEAAAAdgAAAHo////////AAAAAAAaAGEAcABwAGwAaQBjAGEAdABpAG8AbgBfAHMAaQBkAGUAXwBiAG8AeABlAHMALgBwAG4AZ0lsb2NibG9iAAAAEAAAAEYAAAJY////////AAAAAAAdAGEAcABwAGwAaQBjAGEAdABpAG8AbgBfAHMAaQBkAGUAXwBjAG8AbgB0AHIAYQBjAHQALgBwAG4AZ0lsb2NibG9iAAAAEAAAAMwAAAJY////////AAAAAAAbAGEAcABwAGwAaQBjAGEAdABpAG8AbgBfAHMAaQBkAGUAXwBlAHgAcABhAG4AZAAuAHAAbgBnSWxvY2Jsb2IAAAAQAAABUgAAAlj///////8AAAAAABkAYQBwAHAAbABpAGMAYQB0AGkAbwBuAF8AcwBpAGQAZQBfAGwAaQBzAHQALgBwAG4AZ0lsb2NibG9iAAAAEAAAAdgAAAJY////////AAAAAAAZAGEAcABwAGwAaQBjAGEAdABpAG8AbgBfAHMAaQBkAGUAXwB0AHIAZQBlAC4AcABuAGdJbG9jYmxvYgAAABAAAABGAAACyP///////wAAAAAAFQBhAHAAcABsAGkAYwBhAHQAaQBvAG4AXwBzAHAAbABpAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/images/application.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFiSURBVBgZpcEhbpRRGIXh99x7IU0asGBJWEIdCLaAqcFiCArFCkjA0KRJF0EF26kkFbVVdEj6/985zJ0wBjfp8ygJD6G3n358fP3m5NvtJscJYBObchEHx6QKJ6SKsnn6eLm7urr5/PP76cU4eXVy/ujouD074hDHd5s6By7GZknb3P7mUH+WNLZGKnx595JDvf96zTQSM92vRYA4lMEEO5RNraHWUDH3FV48f0K5mAYJk5pQQpqIgixaE1JDKtRDd2OsYfJaTKNcTA2IBIIesMAOPdDUGYJSqGYml5lGHHYkSGhAJBBIkAoWREAT3Z3JLqZhF3uS2EloQCQ8xLBxoAEWO7aZxros7EgISIIkwlZCY6s1OlAJTWFal5VppMzUgbAlQcIkiT0DXSI2U2ymYZs9AWJL4n+df3pncsI0bn5dX344W05dhctUFbapZcE2ToiLVHBMbGymS7aUhIdoPNBf7Jjw/gQ77u4AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_add.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH9SURBVDjLpZM9aFRREIW/ue9FF2IULDQuaYIGtTBRWGFJAgqSUsEmjZVgo4mFWBiwVVjBHwjGwsbCShExIAghoEUMARGNGFJYhIC7isXGRbORvJ0Zi/dWY5fFCwOnuHz3nDsz4u78z5HTlx6NDB4v3KjWvd0dMMPNUFPcHHPDVTF3XBU1Y/uWZHVxsXzl6e3hibgwUBhvy7WH3bmWHm5fres4MBHXEw/16s+Wra8lHgBiV+f6mX0tA86VlkkBbgCsNxQH3Bw1MBwzR83Qhqflxro63Z0dqGkKIOuCBEHc8SC4OGJCCIJIQESRyIksEDfS+9bIAE1SAFwEBCIHEzBzIocgEbGAiqMhdWxqWQTL5kAE3P8BiYCrYwIuQBAii1JAM0JTpAxJxQaQxUJsxvTbSV7NP6e2ukLSSFjT/cBJ4kaS/HEggLsjIvgG0Is3T3hfnuLYwFG6dvbwcuEZcx+nKY7mbwbPskSAZC4k00GEIMLk64ccPtCHBqVvzxAqCcVD/QAjwcz+Rsg+M4gQbahv37/QJts4dfAiAJdP3Gfvrl6AXFxeWn58/k4ybKqYGqqKmaFJgplh7lRrKyxUZpmvzDA29IDS1Fly0VaAX7KZbSyO5q91de+42t87SE/nET59fcfshxk+L9VuyWbXuTiaLwEXgA7gB3Bv7m5l7Dd8kw6XoJxL0wAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_cascade.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGeSURBVDjLjZLdKwRRGIf3X1wXuNAikiKfWXaVLO1SIjYlG9LYaGKxNSXWx1rnwoUo+Zhdu2vkRsp32ePCvH5nYoaGNaeemjkz5/ee85zX5W6VS4bjuc3uhSzzz4NohnlnT1nHzAlrnz5mbZEj1jJ5yHwRxsS/ROT6jiu4lEuF12+YE5pHd1O2AFHZKXVDSWYL8EcvxKQjaga27AG+ubTxUUllMlOJq9fB1Us+sAJieR5azPJ+Oc0DC2e8N3rCmyYOOFxocOGxAiTVCBhTtMJ08pYXY1i55nChwUXeDGgM7xsBovJ/dErnHC40uNDMAGynr35kj3VJKn98eQOcPzwLCib3gqcCf3l9e8QiDS6sgK8HuBCTWnxHvRtT8joqEfqC0BeEYxJ6g9AXhL4g9AXBBaF4gxUgqUZAKJYjnNMRcPFuBsCFESAqOwUurPvEdsbhQkNfkNMBFz+b4tPFnwt0gS7Qjfeq4MYvARBWbHyFiOEJrNkD4MLxEdxtsj0ALmS4MATVDm5TdTBBlf3rVNGjUHl3nMp8y1TqjYkrFMgf+hUje+AiV2IAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_delete.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH0SURBVBgZpcFPaM9xHMfx5/vz/Ywfv6ZwGC1mtRsXtRvFQSmlKK3JkRJymAul5EJcrFZrcnO0QpELDgrlKJcd5M9PtpHawew39v2+3y/7rlZuLI+HSeJ/2OGhO2d27+2/PtNWUwIiUAQejkKEArkTEnLHI1i3qpybmJg8f+/GwGju39U/0tFopq4GK9Gca/sIMJrbpVJ75gcrNV8qsSjLxZVjfazUiWstalkKaguVI0AhPCAQEcIj8Ep4JVzBgoveTZ14OLWMRM2SYRJKhkxYGCkZZgkzxwpRRCJXohaVU8seTi0BMgODQhAGEaIQJCvIBm7CU1ALD2pZIZaYgUQCZAYGZiAXYSADklFEQS3CqeUIZ5mZsUQiATIjspEjmHp4k+mHY7Q/vaWjq5sdq/cAB8lVWbLEDAMkYWaIRRIJmH50i9lX4+w8cpzVvduZf/OYNc+f8mRfx9kkD2oFYICZYYAByYxkRuvuMH17DtF49wy7fZS17+/T27MBmYZyRLDMAGORGX9amGrR2NQLB86xLF/eTBG2LU9+aI2fGi4Hwp3wwN2JCLwsiQhCYqCxnvbrRzQfnObX/BfawOz3Ai+YMkn8zYvB7surOpsXt2ysck6fmf1W8fFr4eVPXTJJ/IuXg1svzM1MnSzcerzQpGBs/+Pq6m9gRhRi/EsJnAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_double.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGnSURBVDjLnZOxilNBGIW/mXt3CZsYQQtjJYqPkE4L8Q20WARbmxWEFQvBXrByQdDKF3CL1QcQH8DOKmVIkWIFbdybTe7M/x+Lm+zeFELcAz/DwJnD4eOf8OD5p4d37w2f/qrUwR25k3PG5cgMl5AZ5k5/O81Ho+mHo7e7RyxVDu8M97c63TjosIk61cz2gfOAWVKc/T5hU50mxfa9lInXj29vHPDkzYT1ADkAi2x8/jq6fpy7N37+8eJfPHqX+zx7/1397VSNRtOXJRIAMcB4tnOr19thcHWjMt1qZu9KcwMghEBVi+o/eZSW81nARXiUOaXzgBYPuTCH7I65Y1nNyKlN3BxcwtwoLTUNItDmoRhQECWRECIhGKEQhUfK3Pg8G+V0PPm2d5Du5zpxZXDtrA0BCoEkCkEMBWUAC8Ji09TNG8NqXnz8IUnK7sruSmaqzTQ30yIlndZJszrpZJ4kSY9efVnfqjaP9hmBECNFEQkxEIuVP1O2A9Z4LB8Xy3OlrbbfbD1gOp4c7h2k3VwnzAx3Jy0WzY90Q6ZmK93xBsNh0JL8RfUXD1Ut4VHY1QEAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJRSURBVBgZpcHda81xHMDx9+d3fudYzuYw2RaZ5yTWolEiuZpCSjGJFEktUUr8A6ZxQZGHmDtqdrGUXHgoeZqSp1F2bLFWjtkOB8PZzvmd7+djv5XaBRfL6yVmxv+QjQeu7l25uuZYJmtxM0AVU8Wpw9RQU8w51AxzDqfKhFjwq6Mjdbj1RN0Zv2ZFzaloUdwrL2Is4r+y7hRwxs8G5mUzPxmrwcA8hvnmjIZtcxmr3Y09hHwzJZQvOAwwNZyCYqgaThVXMFzBCD7fJfv8MpHiKvaV3ePV2f07fMwIiSeIGeYJJoao4HmCiIeIQzPXifY+paJqO4lZi/nWPZ/krabjvlNHyANMBAQiBiqgakQMCunbxHJviM9bQeZdBzHJUzKhguLJlQnf1BghAmZ4gImAgAjk++8jP56QmL2GXG8zsfFCz8skA1mQXKbaU3X8ISIgQsgDcun7FL7cJjFnLUMfLyLRr0SLS4hbhiup5Szd19rpFYKAESKICCERoS95neyHmyTmbmAodQ4vGpAfmEn6YTtTahv4ODiRkGdOCUUAAUSE/uQNfqTaKFu4jvynJiIxIzcwg/SjF1RsOk9R+QJMlZCvqvwhQFdbM4XvrynIVHpfn2ZSWYyhzHS+PUtSueUC0cQ0QmpGyE9197TUnwzq1DnUKbXSxOb6S7xtPkjngzbGVVbzvS/FjaGt9DU8xlRRJdTCMDEzRjuyZ1FwaFe9j+d4eecaPd1dPxNTSlfWHm1v5y/EzBitblXp4JLZ5f6yBbOwaK5tsD+9c33jq/f8w2+mRSjOllPhkAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_error.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIiSURBVBgZpcE7SJZhFMDx/3neV/u8ZlhoVxAkESoyJYoa3BojDCFc25psaS8CWxoEhxAagiCpHCpqaa3AyiIISwjTtHIou3wX/b73nFOPIEG0SL+fuDv/Q04Mjp052ttz6WvR69wBM9wMNcXNMTdcFXPHVVEzGqsrhamphXPjl/tH0p4jPcNVubrQkmM96gpFHQZG0mLFQ/FrnvUqVTzwW+rqXBxoZ71OD80Spe5GVM4UB9wcNTAcM0fN0MzRzFE3yuq0tTagpkQBdyIJQhAIQQgJJCKkIZAmKf7zBeV3Q1RJidqqlMgyJQpqShQAEUGCkAQhJIIECF5ieW6c+uZ9VD7dJ60ORKZGFNycVSJEAQgihCAkiVD88IDa5i4at3ZRmHsI+RkiMyUKZsoaEQERogBofoFv7+7RsLkJ/XGHLZ2n+P72Bm4ZZkYUskqFVSKICJGIEH15c5Pm9uOwPMnEtevUN5X4MfOI77OPySoZUXA1ogQQQEQQoPB5Ei0s0bCpiK3MgBuaf0pb71nmn1yhimWiYGasESAA4sris6s07dqPFV/hVqK7rwMrfySXm6ZxxyG6aiaI5MTg2FjLzm39poqpoars2fCUkwdztO6uQfMTuJd5fnuK7r5OJNkINcd4NHphpdpLB8Td+dvE8OH5vQPXtyfhPZ4tAc4fgaSmg8XXL5m+e/5Wyj9kK+Xc5Ghfyc1xM9wMN8PNcTPcHMxw99ZfSC4lgw+6sSMAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_form.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFlSURBVBgZpcGxTpNhGIbh+20+DUkTRhkcNLBIOmG6+Q+egg4cgWExhDi5sDm5SErCoB4BDB4KjnVTBpooCTKUOvx9n4d+ISQOQNL0usI2i4hX7w7fNi/7H88n7tqAhCVSiWVk4Uxk40xSYvlhezkcnr7/9mnzoPRf9PcfLHU7K0vMo3s5yX3goExadybnY+b1r3WHmeI0u68fM6/twQlVsYVtTGUwEMH342Pu8nxjg1RSFWwyk63BL2583XlK1TQNtxmPx2iaVCWVyObz9hMIgwPZ3EcSSlEVyyhFBFjMGML0ej0uLv5i858ATABSUhUpkRJzLZgxDH8Mucuz9XUkUZVp25KZ7Hz5zY3B1gpV0zTc5uzsD9N2SlWcQhJ7bx4BppLEfTKFJaoiCcmACMBcW11dYzQaAQFhgsCGCIMD2VTl9OfJ0YfDdlOZKEVmIolsWyQhGytxGllYQqI6YiZss4gOC7oC3Q3wOtNMt7AAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_form_add.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHiSURBVDjLpZPNaxNBGMb33/DWoxcPngr+B4pQggdL8WNbaxQbGtugkESE0IZEkiYhpC2GtJQatKW5pFYl2yrKCrZVrMYo2jbHfJElm/1IPJXHmdklbZGURBd+PPO++84zM+/ucAC4/4GzjC2PTKXzuvvZPlxPCcldOBd/4v7Cd9ybz8Exl8V4fAd3H3+GfeYjbLEtuOLvdTqPGXhT+YNopoxusUfeHTADuvK/YA28BTNwJffQbDa75obvtWHgfPILjUYDOkOHrutsLIpiWxqkhvcKpgFpmKqq6J/IttBITAvbPZqm4ZrnlWFAu11XFCh1glI3VTnRgL6/8vCFYUA/Va0mQ5Zlpgy5RrRGcoYeIht5wsCDVcPAkfgKSZJQNaFjqSr9de54KozxmauwhvrAPzoPi3PMMLDPfkKlUjnWAxofPcLzD0vwrAxiLTeNL0UB4fU7uBw+g96RU0FuNLaNUqlEKJtqcNRgKHAB6W8RpH9EWRzcuInwxi1q8JuzRTdRKBQJBRQJhRbFll50n8XLXOJYI1ez09QA9C4s3w6J7M8a9r/BoHcd1ycypMtrrFH97jTO2XoQEIbgE3g22ZfhD3fQyY0jhZOXgqcxJQyzlanSmPWg02tLiv0ElW7bVD/N/wGu4yJFlYuLaQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_form_delete.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHvSURBVBgZpcG/S9RxHMfx5+fuq10d/SJKQ+rUaLoWw60bIoIgaKhBpDksDBFbCooQiqAlURCp/gIjHIQWa4h+QDRYtFhDqOEdSqCSelbfe79f+UUEg35Jj0eQxP8Ip7sGLxaONt+eLSsrAe7IHXNDLlyOzHAJmWHubKuOl8bGipeH7rT0R81HmvuqMtlUTYaNyC6VrQ/oj8qxUuXZRTZqOVaKFZFMXDtTx0Z19E6SiCRHEiIhEBACb0ZH+Z3DTU2YG4kICTOjrXeCNfc760kUCgV+ZXFxEa8YicjccIm7HTkIAgVc4k/cHTcnEcmFmxMCyFkhCCKfzzM/P4fEOgEQAXA3EpG74W6IVYEVgrH3Y/xkdBh7PURl+hPp3bUc2nwMOEVUiWPMjM57M6zpbashUSgUSEwNDzBXfMXBs+1sasiz/G6E7PMnPD5e1RHJHHen59weQCTcnfXGH/bQ3HqBzMen8OwmW7bvoCGXY/SDuiJ3x12AEwCxqrHxAKVSCQh8L02QqW2Ak5dYE3XvJe2hPiqOTz64MRi3uBlujpnh7lgc4+64REtmJ+W3j8gOt/NteZoysPAljaUpBUn8zYvWuu7qrdmr+3ZVoig1xcLnChMzaYu/6nqQxL942br/ytJs6XzaQs7SKgoGToxUbv0ALswWDRrf9Y0AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_form_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJcSURBVDjLpZPvS1NRGMfvv9Db6FUvIpDqLwj6AZER1EhBkvTFTALNlWJrkwKRoWKGjZltaUmuYmsIq7SEtrSt1qakzh/TtunSdq9j8253u3fL1vh27t2KNAqsAx+ecw7n+z0PzzkPBYD6HyjZZVNNpzXINz0OQP2IYPwI1YMFXOmfQ+O9WTT0eVFvmMQl/Qcobo+jVueG2uDkRZ1koLEEc9qRNWwXRddYTjIQb/4XqjtGIRmojX6k0+ltI2+15Q1UA4sQBAG8BA+e56W5w+H4jQmbDgsPy+C3ajDVdwzT3UUVlFiwZDKJshbvT1JkLQp+HQJtBWNXIuF9DqTCiHstcN04vkaJ1U5wHLgEgUsUIrfJQKCHwM43Y2P1KZjRDqRnBvEt5MTM/eoMJT4Vy8YRj8elKBFnSWTJHovoEhHPXkMu7UQ6WIt1z0X4BuRw6+XwaGV7qIbeacRiMUQLiPNYNCZl4LF1g51RIZdxQQhUIrNSjuS8GqH+06i73psvoqJnApFIZFMNxPXrwXYw48qCuAKZT2fBzTZhyXASjM+JkkZL3qBO5wHDMIS1QmTge2fE/MtGkvYbZJbl+LJyDgmSSUB/Al85WjpzpsGcN6jVvkc4TBPCoAnuoR7MDasx/aILn92lEJbLsT51Ff67p7C6OAmaFs/RkNWb8KMXTBduOqSfVdVmh7n9KJAMYcFQArt6J97eKcZw8yHUqPQk7SfkZhOIRsQkGWztrpbzRdkNlw4b7ltwaw7DXLUrNaLaf+CP3bh1o/Tgjkxr5d6sra04+6rzyNgz5b7df2vn7z39IYTVO0xbAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_form_magnify.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH2SURBVBgZpcE/SJRxHMfx9+/uuT8qlgR6mvTHqyGwKMWpbmhvskFa2spFRJxaGlprKBQcKmhqcWloaQ2ixcFaDhUKLDDJSFHvT+fzfD/ffJC2Go5er+Du/I8wPrs4Vbk+9nC74V3ugIRLmAyXIxduhtxxM0ziWD6ur6xs3Hv1eGIhGrs2Np8rdmVKRdrRVW/YPLAQNWLPNLZrtKsZe4ZDkZtz/+Yg7Zqe+0IqchfujpNycCAEPiwv8y+jIyOYjFSEO2bG5Nw6fzyfOUuqUqnwN7VaDSVGKjIZcufp9BkIDh6QO0ecd9UNtvaa1FoFCrmI4x3i6lABmUhFLkcmQgAXhxyCMzw8zNuP69TVxeWhE0S5LFu7B+zst1j6XEMyUhnJkIzEDJMhGUpEtVrlR7NIudTJTiuwuWckIctgXzfbzYAkUlESx5gZM8++88fcZIlUrXlAPp8jaSXIoZU4xShL4hFJnJCK3IQkntzpA5yUJFKdhRwHsREbJHJSHqBRr+MSqUgSkgMiAM6RcvkcvzZj9ptGd0eeljlRJrC5HeM/1zifXSMVxmcXF0unTk7IDJkwMyRhcUwuH9Hf18PoxdPIYbfWwrZWqPR+Y/fT++Tr6tLt4O604/WDG3f7B/of9Q5d6VldetMI7k67Xk5duDVQvvRCSjp+A5XMMGcdZp9aAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_get.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHXSURBVBgZpcE/S5VhGMfx7+8+T2VI0SDVKvYSrKE/0FsIwgZpCFqiISSiIcoigkIosWyrOR16AU2NETSGZUQoiNYgBJ1znufcz3VdeUvOIX4+igj2QhemFq6fPT/+ZLMXwxGAO+GOuREeeDhhhkcQZpg7h/fn7tLS2u23Tyfmq/Ez43P7hobTsSF2Y7jbszlgvurlSL3NP+xWP0diSxUWPJo8wW5dfbxCUUU4xaA1AggPzMEJ3ANzx9rA2sDCGVgwevwQ5kZREUGhJBRBJBEK5CIlISUkQ52g44mqDQpvjaIyN4oEhASCToAL3INOQFKHSmAKLDmFm1NU4cE2CSJIQEggkCAscMHsp4d4G9w4eY/C3SiSu7FDEkgUCUgSqhIzH+7SH3TpNr+ZfjdF4e4Uqc2ZbRKSKCSBhHnL/fc3yblhbGSM0aNj1LnLlVeT5NxQpDCn6AACJCFAwPOPM/zcXKeuG+p2QN02HNh/kNWNFX6lBYrk7uwQkIAk0ZG4dfoOry++YXn1G02uaXLN8vdlZi+/ZCRfoqjWfqwsXnuWJ9wMN8fMcHcsZ9wdj6B/pKbfNmTLbKxvMD37hS2LbFFE8D/nHpyKpsnkOjMYZD6/+Cr+UUSwF38B/pkb32XiUiUAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_go.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIMSURBVBgZpcHNi05xGMfhz/07hzTDiKZmEmLYeM3iKTKUiFhY2EhZ2NjIBgsWYoUoSWr+B7NhY6GkJBRhYSMvJYRSFDPPi3N+9/01Z2Jvcl0mif9h+46PH92yrXXpe0f9EhCBIvBwFCIUyJ2QkDsewcDsuv3y5adTN67sHytbo61rs+b0p6E5zER/u+PXgLGyUyt1vk8yU91aiSmlXJw/uJKZOnzxPY1SChpVdgQohAcEIkJ4BJ6FZ+EKKhfLh+fh4TRKJBqWDJNQMmTCwkjJMEuYOVaIIhJlFo3ITiN5OI0EmBmWjCIZqTAsQZFgVlFw/tZuTt/cjIqaRnjQSAoxzYxGApIZKRlFYRQGKcGvXLF4cBXHxjdS5R4RTqOMcP4yM6ZJnLy+DSlTRabKmUULVrJqeCMTvTZ7x0ZYoKs0ylzXTDPDAEmYGTkqdq45hCvwcALx+cdH1i0eZbLq8qx7iPXnDswv5UGjAMQUM5Do5QpX8P7bG+rI5Kipvebnrwk2LNnKZN3h8bsH38qI4C8DjClm9HKP7JmhgaXkcFzBlx8fWDh3mOcfH/L47Qs6Tsv2HR8fH1qyaH+4Ex64OxHBz8Ej9KqKKip6uWLF4Go2jezi6YdH3H/1hGXdE7fvXD6zxyTxL9aeS+3W0u19917f/VQFOz5f0CummCT+xchZa3sUfd3wka8X9I4/fgON+TR7PCxMcAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_home.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI/SURBVBgZpcFdaI1xHMDx7/Oc/3ms8xiZxLxcGIXF3cnN5KWUXIrc4EZcSC5QKC+1xjLKW5ELLzfIS8iNS0qUtxqllkYstllsNufsPKc9z+/3s/9q5Vb7fAIzYyKCDXvv7F6xutg2ULHYDFDFVBEVTA01xURQM0wEUWVKlA53dHQffHBm80VXbCpeyNfE4cwa/kc8XJELwEVXSS2sDJT5l8uGaeptYSRLSRLlw6LjZLmYfyWphYxyJsaJLQsZlyZ/eHejhXx9HaVywuyGOqJPR1m//wb5mlrG7TjZhReaKd5IJgyXB3l/ax+hM4ZKVWoa1vLr+1em18/lYetWvnb18OVHCU9U8ELM8IIw4OP9Q4RRQClR6tccYMmqbcxZuYdvnZ0UptTy5Nx2CnmHp5ngOVHBC4FqdYhUI+avP8a0GXNIK7+Z19iE2RGeXj5Mlma4KMRTUTxnaowJApbvvMnjR/eZNbeB022tDA4OEccxzc3N3L5X5EDLaVDGqApeqCqMC4KAVAM0HSGfj2hsbCQIAjAjF9fhchDmGKOqeC5LU7xXvS94/e0Nn8odLO1fRm1cS6FQYFJ+Eu0Dbykt7+H8szYWTl3MpuJGsjTDcyaKd/PldZJKwkDvENcuXyWnjr6ffVSrVa5cuoosqPK5/zntSTubihsxVTynqngt606RiVDuL2NqiAiqiqemOOeYPG0yURThqRme6/7SdXfX2XSziqCiiAiqiqQpqoqaYSqYGGqKqaKKd5dRgZkxESET9BfqVjgB6mRiLwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_key.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIwSURBVDjLpZLNS1RhFIef897rNDSoUEFFIhpCi1okzKKyRSFBFC3aCFERRQTSItrUHxBFbQoEkYJaBdoQ7kqQwm1BREjmF2JWFuKgNTozzr3zntNiRmthC+nAb3fOc37nQ8yM/wk5ff3Z1cNH0vcWCpYyA1QxVbx6TA01xbxHzTDv8arUJeL86Ojszf77Hd1hui3dVZNMue3JDTVO5Qu+C+gOC7G5wsLyhq0XY3MAoXnj9tmWDQMu352hAjAFICp7DDA1vIJiqBpeFV+2ikyJvNG8oxavvgKgegVxgphhTjAxRAXnBBGHiEecJ/rwiLA4RW6xHS1vBsCtkhwgIogTAie4QBAHgYOaIKA8liGV/MLOtguszL2k0UYqdabVPxBZAzmpdA8CIRAoTvQTrAxRvydNfmaAILmLc81vGLi2+0yoVQdUHQBghgNMBA2FcvY9W1tP4gsjJLc1sOK/0Xh0H1Kc7wnLcbzmQAAzQ0Swv0BBqoF48TMuyCIuT6IuCysFln+UgtB85QoBVIpEWF1slP1EbvghkojRchGnP8HVYnHEx74pxscXroSq+meEqhBhafIFudHnbGk9iEWDiF9ibDCiplQiEOHp/Am6em/1hrPTM5nOB3GHeo96xXuPqtLZ1Mf+9mNE2R7CsJ7h1yV6xw4wl9iLGUSJTZnqvmxdfe0//rY0d8fy46fsXdehpccXW86vlxf+61W/T2df5X4NNRUW8sWJifkbl55MZtbL+w0EmEFfv0ZNiwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_lightning.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIiSURBVBgZpcHfa81hHMDx9/l+n82x0zadyBabMFtKSS03XGxXUlMspqxcufGrcOMPQHHhR1v8B26Wxi7ccOlKLUlqTJvQ0H5gv8737DzP5/OxJ5RcyPJ6OTPjf7juCwOn93a0X/tSsoIZoIqpIiqYGmqKiaBmmAiiSl21XxwZmbg4eKPntmvf095XlS8k6/OsRGGxJH3AbVfylpS+LLBSmbeEZc7EuNLbwkqduPqOyJkpUSUIBoT5Z5Q/9mMSMFE0KCaKeI9Rg990mc3NWxEVIocZUS7JkVNB5p6wqmY9adU6zAfMB6SSkX19hTX0UFVoINIgRE5UiBJAwhSV6UfUbugizA6T5HchMkP52yhp4zFcQxdiSqSiRM7U+EFYmnpIdW0LkKLZZ3BLzH54zOotZ8g3HUINUk2JVIXIqQpRKI1S/nSfuqZ9WMggbQTvMXXownsWR26hPsOSOvJtR1BVIhe8J1oYv0l1/TaymVdoUKprWkAd9Q2dZDMvEF9h7uNzirsvka5aQ/CByJkoUb7YSShPQ5KQSyt8HR+irrGDUP5GpTRNUr+T5u7ruNomkjTFVImcqhIVNvbyi4YFZl/fpTT5kvL8JMUd56hvPczv1IzITbx9N3Dypu9REVQUEaF3Yz9ta4s8fZMw9Pks2XCKySBqiqmiSjTAMjd4o+cocJSfxu9t369e7mQzcv7gqbEHB/k7xx/Uy4R6OdB6fOwl/+A7Obk497M21x8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_link.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJPSURBVDjLpZPta1JhGMaFPvZ/CH3rL1BqICLzg0EMKmSwmZXWskPhSwQJ2yQzVEYyaRI1ikkOCqISJDU/9IZRKyqn9SWYuBedb+d4ju7quZ/jBvvYuuGC+1z3dX7nOc9zjgaA5n+ksbiWHKGnlbbvcRneR0yLJXge/MC1+99wNfEVwsIXXIl/wuX5IqbufoBz7h288UKb7uOA6SeVQfRVFf+qqXBuwAH05IPobDALDvAuruIgNTGbUQGehz+50VP6kJjEnoK2qKApymh0ethsiajVu1hb7+BPrYVfa02eH59ODwFsw6jkwQByv89BXVlBR1JB210FW20J600GaoiobnR53nrzhQqg3abqM4BCEKYeA4kM1KHVMFCLVtRRUG/J2GhKPH/mxnMVQEfFATs7HLAL6jFJffWVdkHNIYjq1PVnKkC493kPQGp3u3iZTiMUCiGRSCAYDGK1XEZtcwu3hx7NxoUwdDrdYc1U7KMKYJJkGQssEIlEUK1WUalUkMvl+PV8PI5SqcS9QqHAvdHR0VuaS3Pv947mdTYLn8+H4soKZgMBmM1m2Gw2RKNReDwe3pMXYDOCCILQ0Dijb/cA4XAYMzMzHCBJEoxGIzKZDIrFIvL5PFKpFPdoRgC/3y/Sv7B07s4b/mWZJ/ywn3dywEnrRRw7PgKDwQCLxcJFPXknTl/gALvdXt/3Zx1hxZb4nW1SPZlMbi4vLyMWi8HlcsHtdvOePJpRhrL7AFqt9pBerz9qMpl+T05Oth0Oh8jUGxsbszKNsL5JHs0oQ9m/1aYTg/t8sGkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_osx.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF5SURBVDjLpZMxa5RBEIafvdu7RPCMhYLBxCoiaqO/IHZWNvkBooh1WrHUwk4s0sTGQrsQwf9gK1gpQoJoY++d5Ludd2YtvlwuaWLODAyzsPu88zLMplorp4n85t3W5vLS4sPc6/VqgMKxIiRRJEoRxYzx2NpajFKMvaaxH993X+flpcXHl169SAv3P/Gge42Nm2//2TUlOH/ubO/p85eXc879dHF1lfmrXe50bgNwfeXKsQJfd37S7XZw95TNxa+7a8Aa94BxKXz+sgOA5JgJuWNyJEfe1m+7gUvkGsGtGyv/NcDt9x8uZCkA2GvGM8Fn5ueIGmR3B2Cu3z/yoNbaJpWI9uwR1NreAXgEuZhmAicJEO5kk2YGD5qFTx1EjRODk4gIsu0LuMeJwSMCxexgIIfhduPSsQI1gjwajYZN0wx+D/8QEfsC00kfdjMxVKn0cwcPV1p/8mx9MFh4BJ1BcU23T0JmyA1JuBlyx2WEO2Y2jPCP6bTf+S96U2WlbWXHPgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_osx_terminal.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGfSURBVDjLpVOxSgNBEJ297B2iiUmToKABCxEVKyGVoJ+QLp1RxE4sRAQL26RVsLHRQouAkMoq/yD5Ads0ErDIQe5udu+c2eTCGU4MuPCYmbvZN292d0QURfCfJZ9eXh9WV5aPpW3bUQigQg0YKFBKQcAgP0AE38eRDcgShp6HX/3PS0mbT5dumyJ/+A5HmQ24337+s6oQAIXFrN28e1yXUjqifHYO9uYHXIgyFGR2JukL83OACoVEreDg6ppYRSosyzKYjhlrO3sgozCETCYD/X7/R1LahmRcLBYhny+ApVQ4kdVut6HRaMx8A0iHbGmtgS7AoFarQaVSgWq1amLHcSb/kqCDMzbAAGSAynxgtFot6Ha70Ol0TMK07GRb3Db6PkiWEVer1+smgeM4kdf0GZgHRAWVGiuIZSUPMFkxLWYFih6WxHELcdVpklgBx0mfLTIBP09mY4LRK0uvGCMm4T2+IgLXdQekIFcqlVKTfyNh6/ueJ3u93s3W7v4J8eYCzUNEw4SjYeIelUbja/KRrlxT1VBzDg68ofsm/jvO35HitdVS/1ysAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_put.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHbSURBVDjLpZM/a1RBFEfPnfciq4uChLgrWChaihBYbAxqBD+AgrGwVBDRxipgH1AMEQJpbawU9SvYCRaiEmOaBUkRDRYBwf3zZt691+K9DWuXxYELwzCce37MXHF3/mfJtYcv789d7jzZ7XvTHTDDzVBT3Bxzw1Uxd1wVNePIgdTb3NxefLuysJZ3LnRWpxrN0GpM1LjZ6+sqsJb3k4f+7p+J1QfJA0Du6izdOjMx4M7jLSqAGwCxVBxwc9TAcMwcNUNLr8qNqM6p9mHUtAJQv4IEQdzxILg4YkIIgkhARJHMySyQl9V9K2vAiBQAFwGBzMEEzJzMIUhGLqDiaKiMTa2OYPU/EAH3f0Ai4OqYgAsQhMyyCjCKMNpUDKk2YyDLhcV3t0mxJMZEGiZe3HyDWWUQypT2DEYAkbp9Ha0YJi6dnGf+9BUG/QKAMpV1hDpLBvhYlHGjYlBQlAVREw1psPlzA68N8pEKgNQ16r78folvP9aZOXiMYRmJGpk52uLB87ukvAXcIN/+vvXq3rO0YKqYGqqKmaEpYX6WeGKDQ9MFRRoSNbLza4fe7ymOl9dfA8h+pvHq8sUv7en2uRgT3W7388en67N71vsd5/OPZj+kYUqfVr7OjZ//BRjUGmnYsJxdAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_side_boxes.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFwSURBVBgZpcG9apNhHMbh3/ORWiztpLSrQ86gmw6egkuXjE7i5CQ0OAZxUSj0DCxiB8/A07BDBXEoKEoGbaP45n/f9im+SwhCyXUl26wiPXjy9vG9+7svpjNv2ICEJUKBZWThCGTjCEJia627ODk5e/ru5d5h3b27ezBY38jb61zHxsUsDoDDOuucZ9NzrutX50yz//rUy4zffPT/PHz+3peotmjGR6f0JqMhven5b2JuYm7C4k+YOzubhIImY9PbvrXJoloqdZCpNzJra5Wbg0qjedDUUND7+v0ni0qGnAo1QSQTWTQK0VTLNJPRkGVKAiVwAnKiqNBIQVOloBkfndKbjIb0Us1UCRkyoMQVSTR53nX0dm5vsSgDKWdKyaScyIUr825OUx2i9+XbDxbllGgElJSwRGOJpkqimYyGLFNSoin8UwqNbJp69unz8aNX3Z4iUIiIQBLRdYyefUA2VuAwsrCERHPMpWSbVWRW9Bcyl/ydiZeC0gAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_side_contract.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG1SURBVBgZpcG/S9RxHMfx5+dz3+LKsKxBC4KQXIvArYb+BQmuIYgGoaBJiAoiLCqwxUGwkBr7gaGOTu5NZhBkBRU3NEV2Q3d69/m+X+/6DEJcNoiPR3B3diKMjM1ePXN2+OFay3vcAQmXMBkuRy7cDLnjZphE7+7UXF39dmNhsjZdDJ8entpV7Yn9Vbajp9myKWC6aCWPrbVfbNd68sgfhZtz6UKHQBYIBCKRO3O3uHhylBOHT9G39yBFLPjb6ESdLLqLTSbj5etnZOutNlYa7s5WTEZW4E7mwMzSI340vlM/Xqe30ktZGjjg/EOlkUWTkT1ZekzFIscODfJ0cYZqZQ8YSI7jdJOJrHA5E/P32V/tY2hgiNKNA/v6WP34gXang7sIBLpJRhYl4+a52zSbLd58WmH5/TJzi/NstDew0pCcrUgii2VKZNdq12n8bPD5y1ee333Byru3BA8EAu5OtzKVZNFNbLp3+QGDA4Nk7Y1EJyXcRQiBbi6RRUlsKioF41fGyVI7IRP/I3eyMDI2O9t/9EhNZsiEmSEJSwlJyB2X4ebIhUtIZK8WJmvng7uzE5Ed+g22TgZNyTAeRAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_side_expand.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHXSURBVBgZpcG/S1VxHMfh1/me41USwpa0XwTpUNToECTR4D/g0G1oiKChCAchChqiKYzCIbGWtlpuhBBBS7TY0FoUSZOVSIo/Crz3eu895/N511cQDWoQnyeRxE4kQyOVqwNn+u+u1NUpAe7IHXNDLlyOzHAJmWHu7C7ltenpuRuTY+WJrP9U/4O2js7Q3cF2dNbq9gCYyOq5Qn2lynat5Qr8kcnElfMpkCCJWqvK919feT3zinsnH/E/l0a/EQXJ+ZciL4juv7vD/M9V5pfqzC1WmZlfJTI3ooDEBiEgQYJWMyf6svCZ0bfXydoDpVLGrraMyAsjCuaG2CQ5RVFwsOMwF56fpau9CyRuvRymLU3JSoHIzYmCXCRsIbDCaDabDPSd5sjeXnoP9NGwOuXxQUppSuRuRJm7sUESLiEXa40GUx+n6NnTw+LKEqomvLj2BnfWuTtRKPKcrSTRauUsLC9wc/A27z99oLbc4PHlpyQhIaSsK/KCKMgcsUlyrDBmf8xybN9xjnaf4MlwBZKENATSJCGSO1Hm7kRCRHJRFAWNepNo/OJD/pKmRC4RJUMjlUr3of1lN8PNMTPcHctz3B2XkBsy4XLkjjvRs8mx8rlEEjsR2KHf89sagbhDhaEAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_side_list.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGQSURBVBgZpcG9alRhFIbR5/tRA0Fbbe0tp4tFsHFKLSaNjSIGJlapDIq12BgIxJRaCGIK8QaUNN6BmEJBLNIGCcko55z9bs8WpxlECLNWcnfmkW6uv7l/dXnw9HDii+6AhEuYDJcjF26G3HEzTOLC2fZkf//gwdtnK9t1sDTYOrOwmC8ucBqLJxPbArbrpPU8OTzmtH62ngkPX33xf3n0+qv/z90n771HdRdhvAcjfaBpGobDIVOHx7+wzrHOMReNOZcvncdkhIo7YWeZ3jVm1VJJyUjFKcrUzgnqjFBNRhjvwfUf72jbltFoxFTJkFOhJrDkWBZBJkJ1OWFnmd4NZpUESuAJyImiQpCMUCUjLL2Ae+klTdOwurrKVKqZKiGHDCjxhyRC7dqW8PEOvdvMyvRypgDmTk5O6NqOUN1EuLIJa+eec3R0xMbGBlM5JYKAkhIuEVwiVEmET+v01phVUiIU/iqFIHdCPfj2fXe82a7IDJkwMyRhbcutx5+ROy7DzZELl5AIu/SSuzOPzJx+AwKoFtIrwFHLAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_side_tree.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF1SURBVBgZpcGxalRBFMfh35yZGwK72mrrO2yxoIXFvIBNGksrsbISFGuxMRDIGwhiCtttrq9hCgWxSLtVsor3nvN3RwxcggTCfl+SxC7So+cfnz14uHi73mgmAREoAg9HIUKB3AkJueMR3N4bLk5Pz158endwXBb3F0fd/szu7HMTs4uNHwHHZTPINutzburnIKN5+f6r/ufVh2+6zpM3n7VFkYJmtVrRdR21VqbW57/wUfgoXMFvF/fu3sLDaQoSTdd11Fq5quRCSk7KIodRRtHE6DTFw7nU9z1NrZVL2cBSpiTwJNyCJjxoTCGa5XJJU2tlKicwA8uQS2IvZ5oIp7EIZ6rve6ZSMYpBNigZLPNXRNCUcRiYqrUyZWyZkQGXsCSacRhpTB5M9X3PlKWEpQQpkc3IKdEogqZEBM18PqfWylU5JZrMPznThERTzr7/OHl6OByEO+GBuxMR+DDw+PUXQkLhyEUoUAQRNCdsJUnswtjRH6iT+f+z/UsKAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_split.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGaSURBVBgZpcG9alRRGIXh99vnKIGgrbaCl5BOC2/BJgi2NmIlFoK9oI1CIJ39kInxhxReh1VKCZmfQkiVTOLs863l7GAau5DnCdtcRzx+ufPi4aON98cLr9uAhCVSiWVk4Uxk40xS4vbNenpwMH395cPmdr/xYGPrxtp6ubPGVayfLnIL2O4X1WVxfMJVnVUXVnqnefv0Plf17N0hTW+LZjkkBiyTAmEkkxI5mBxMWizT3Lt7i1TS9Ng0UYKwcQkcJhSUEkQUIpLoTKdCP5hGQ9L0qaQpgCMgoDMoQDKdoURHH5BhsohGKZpimdFoxGQyYXdnh9nREXvjMbPphO97u8ynE/a/7jKbT/ix/5nf8zmj0QgpufDq0083g+RB8iC5Zrpmepnp80z/qdVny+rFsvrkvLp58uabV+iHWrkQQQC2iQjMik1hpRQ6IG1KmGaoA03vFE0HmJUIsGkigksCuggs0Vii6SVxKYBgJYL/dfzTdTSyafrpr8Px8491U5koRWYiiawVScjGSpxGFpaQaMashG2uo3BNfwFx+DLsFQ4W2wAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_tile_horizontal.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFCSURBVDjLpVOxSgNBFJxcrkmC+AV+gP5BwEKwtLESW0mZD7CyEyViJVhbG7DURvEXBAsDKgpGxIjIecnF29t9byyyAZu9wkz12HnMm3m7WyGJWRC3Dq7aq83FTpKzMcwyqFNYVczHNrvpDc5XmktrXz9siAJpksCKYK5qs9u7t+3T/fXjysn1q9TrtWhqhCSUAAkMR2PUGzWoAkqCBJST+qF3r4ft5Wo8toyy77En/zQpoSRSk/kaEH+mCoxyiQAARxcvDGHv7DnIbe1ekiQiUQ0uyIkEucJaAEAkUiLgwpzNvUDhyqa4sLiZcFHplBJxN41QNsWWOXDegTFFsMnkJixujI9QlOUMR1DxDopC/hVhentx//Gp2+rkG2IdksEHnDioE4goqOxv7uQLUjiIE6Sf76AI/NPpAkBl1t8YYUb8Ao9lHyy2IyRjAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_tile_vertical.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF+SURBVDjLnZOxalRBFIa/e3djWGyE1GJhlcogRLCwshPrgI2NjaCktZZUCVaB5A1s8gI2PkMKGwu3CIIgKGuuu5ts7pzzH4t7k5tZSVw8MDPMmcPHnP+fKSKCFzsfXz1+uLp9PIubEoSEJJI3q0nIHFMw4IRPn7+/fv/26R5AH+DR+upub2lQrixBRBBARDsARRABiub8zth2gQ4wTVFO6hMioi2CIJDIcueg8cxL2ugDuAWbT26zaLx8d0QGMPcriyMAuhb6vYI6pRxQVeMrAUUBUFAUULS56sfo4rwESNfcIIO1azLPb3A0/Hq4/+HW/V+n4Arkjlwkc9yFyfHkuMRyTJHpMAOsP7i31lsesHKjs+qy8vMu/K7qtQwwPlNZzSZIlz2Pv/cBUjCdtzElsfXs7sI2brz5kotodr2I3cuMRsRkOcBd/1a/m/CzuXdw/HO0mIWtj5NqlAO+DYcHz7dmG26GJ8dSan5fXSNv7JMbYSJZDcHBBfi8r/+NP5dvHwJcdb23AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_view_columns.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF/SURBVDjLpZN/S8JgEMd9i1JURPSDIoIkS1FQI4iQgihStExrhGmydGObyZyyYRaybBRFQb/8vxcgBIF92275ApoHx7jjns/37p49LgCuQdzlXmEXd8RON1L4QPjM9NwbQtkXBE+eEWCe4D9+hC99j+XDO3j3b+FJ3CCcvu5a5wgQLXV6ceUT/3Xv3mWPAJayE5/fboAA4dw7nNjspmoDQqevlDAMA+12G61WC1/fP1BVFfV6HbIsUyyKIgRBAMdxVD8drf0BzIU5scl12QZY27ZM13VSbzQapFir1VCtViFJEsUsy6JQKCCfz1P9xFrFBlhX5cTGVyUb4D96oESz2SR1RVFIsVKpoFwuo1gsUpzNZsEwDDKZDNWPhQUb4D0wHHUwHCjZgKVEmxKaptHc/ZmtL8/zNLMVp1IpJJNJxGIxqh/yn9sAT1x31IHbx6L/FtiF3Sv6s+a2NMxE65jaUMwtX9CixiIiRkM8RoKc2XbRVGZhnrGcJcDAr3FQwC803UMOARws7QAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/application_view_detail.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHSSURBVDjLpZPbSxtREMbzL4pSpYj1VilUmmpQSCKCSLAgihFTo9Eg0TRZY5LdxJgbKYo+2AstLRbU1nfxrlmTdLPJ55nZ+OCjyYGPYQ8zv/PN7DkmAKZGZGoakN5OKSeqPfAPtk9Ca8ew+g4xvPIHQ94DWJZ/Y3DxJ94v/ID54zf0z32BbXFPpToGODZOKrPpUzxX5pmdCgPo5HrUN7kNBtjW/qKe1TORMwDW1SPeeJ0ucMzlcshms0gmkyhqVSQSCVzmdSiKAlmWEQ6HOa/TkakBxMBolUQyFRRIpQruijp/3xR0XN/ruMiXcXar4fRG4/yOsaQBoGmzpa08x0wmg1QqhVgsxoBoNMoQSZIQCATg9/s5r300YQDoV9HS9Cr+l6vspFRzQgBVOCE3j06uVJ3zX47EDIBl6RdvdG9ec6Se4/E4QqEQA4LBIO5FSz6fD16vFx6Ph/PabLIBMM9/541ypYpyzQWpqD2VKiB54YJEq2VowwC8m/tqTFU+50i9RyIR7pUK6WSKbrcbLpcLTqeT85ot6wagf3a/rnvQNCjh8S1Ib6Z3+Wb1fviMLkcWr8bTYsqbPKg2u4JWawQvhsPCdkicLEHUkCQGNPwaGwU8AG9RQVkc+5PeAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_view_gallery.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG9SURBVBgZpcG/S9RxHMfx5/f8fPXyrMyOhGgoWrLJ4m6Ii2hrCyRwiKa2fg06aKNjLRVHQkNEtOnQUNReg5RLBJHUEhe4iEiUnj8+3/f7lR/j/gDz8cgksRfZyNjMrfMXa/dX2qpIgDtyx9yQC5cjM1xCZpg7B7rj2sLC4uTLB6PTodaoNfNypTRYZjcqa21rAtOhHVVqr6yyW+tRJbYFmRi71M9u3X3aIgmSk8zPz/Oi5yg9eZnBrpOYZxQOheDaoSec7W/xe2uAua+naTQamBtJQKKj6H3Ot83v7IunGOoap6xjRIe3v67yc+MdR0pLZFlG4oWRBHOjoy9b50Q50Nf9heg3iXEIbZ3h8+ow75cv4JvGxP6PJG5OEuSiozbQQ54fpxIOYtrgjy2xaa8Rb3BEXM/JWldI3I0kuBtJvV6nTp3E3emQRIcqQodF4u4koYiRarWKxA7xjwSSSCQQYA5ZBuU8o4gFSZA5yfVXyyTPLldZ/TRK0js8w725KZLJc1PkE3fY8egxcmfH7eYH/Y+R8RltIyz+aM3eeBhH3Qw3x8xwdyxG3B2XkBsy4XLkjjvJLNsySexFiT36C4QDM7+0SJboAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_view_icons.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFuSURBVDjLpZPdS8JgFIf9F6UoieiDogKllUNhM4IIKYhCRAqlIkqKmYVGERZFUZB9kBgJ9uH9dARdeDfn6T3ndbJFN7kfPDDGe55zONvrAgCXE1zuacW7nK3UQ3ufIO8yku8gbZchuFWCwOYriBsv4E8UYCr+DMLqI/hi9yAnbutYR4JwumJEcyr8FyFybZAAO3fC2NIVkEBOfkAnGVm44AJp541eFItFAjOU0QhMvBAhms2m/Uz4rCVgC+tEMDB3ygW47b+CBSaGYdjA9M+ecAF+qt9dzU5YDCmRwMLv0jiB6Zs54gJx3T62dVTq1hI0Gg2bwCNnuEBYe2qPbB0TC6zout4G0x1Ic8Fk7IELBC+Bh83F4bM5DRZal9glprjAF83zreXvOCzlrxKBUVUVqtUqPddqNdA0vie3XwHzLigTKzf0Z40uXsJw+BwG53Nsy8e0KE8oC73SIfQED9jY+6yzAqwGUUjg+DY6FfwA5i1AjZKvAWgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_view_list.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFrSURBVDjLpZO/SmNREMZ/uVxFCGy7L+AjpAgoIUW4hZjCCDZCbCQgVlY+gaDNLghibbmy2EgQTCOp8gaWYmFrpbE4Z+azuPe6UVE2ZGBgzoHz/Zk5U5HELFFZ2/uzu9ysHT2OVZUAd+SOuSEXLkdmuITMMHd+zIfn29uH/YtfGydpbal2PLdQTX4uTEVcfR7bMXCSjoOS8ePT1NJfghKAVCYONhenBtg+vCcHkAOwcwOnTRiNRkjCzHD3TwmQZRnmlgNQTOG0mSPX6/V3TJNTmqw9FgAl0tY1nGUwHA4xM2KMbyom1Uii0+ng5oUFz1HPshy50Wh8yTp59tJCWaxfwt9VMRgMiDG+y48Kut3uWz/SGAKQP5ZEq9X6lrmMGGJhofCyclGhvyb6/T4hBEIIxBgJIXyaQq/XQ6WC8vJqHSCh3W7/1z/wQlH6cHd/vvM7bLgZbv86biWzhNyQFXvhTsF5DlCZdRsTZoxXOgYqlSAcLRcAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/application_view_tile.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFjSURBVDjLpZPdS8JgFMb9FyUpieiDwoKklUNhUwIJKYhCRFrah1FSzDRaFGFRFHbRF0mSkJX3QTddeKfz9J7z5mbtIpoPPLww9vzOw9leBwA4OrHDOaWOL2jVWnDnDeRt5vQLSJvPENgog3/9CcS1EviSRZhMPICwdAfe+A3Iyasa5ggQyVb1WP4d/msheqkTACfbsWf+Agggp1/BjoZnzzhA2qrQg3DBNErQPIZRy0XTqMHIyTeALawFSJV+AhLFKJ3NZpOCuYoJ6A8fcwBu+68Guq5bGvRNH3EAfqrfwoktY7jdjUaD3ukNHXCAuPpomYhBUFyGMfhZHjWMcsv7HCAo9wYgVVKMyhTOiHTiVAp+rBgAlz/LARPxW0sDqtnWoF6vWxp0iRkO8Maubf0HTp8Krbugji0W6M8amTuHocgpDMzk2ZYPaVHuoAY90h50B3Ks9i6brALLoFUCdHwbOwV8AQoMLgCS+2NeAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_xp.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE8SURBVDjLpVM9SwNREJzTpx4JaGMn/oJrRMtU/g2xsLD1F/gDbK0lpaAgNmJnI1YWasBOELs0QgQDfsQ4Mxb3vEvgipwuLAsLszszb19iG/+JsHf6dDU3g9WXdzdtABIsAQZowjJkwSRkwyQoYX52+PYx8F0w0FrPFqfuuwP0P1W5ZW2hi9vXpViXsXOyieOtw+b1zUMr2T16tGnYBizYhqR8a2QjquxRkAjJsIhgGhsrg4q9CYDpmGWMerZ//oxgC1mW/clAnl0gIE6UqvXbLlIqJTYaDeibCBRrAX97ACAKwXIt4KgHEhEUGdQBlgOE4Khd0sTAMQZkzoDkxMBiAI1g5gzSNK39jJYQJKHT6SBN00KGpDFGVfJ6vR5kIyQetg8uh9tiH+IIMNb8hPOzNV2cuATAX+3kv9/5B7T5iPkmloFJAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/application_xp_terminal.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGNSURBVDjLpVM9SwNBEJ297J1FQBtzjQj2dgppYiP4A1KZRoiFrYWt9rHyH6QUPBDTCimtLNSAnSB26YKg4EdMdsd5611cjwsIWRhmZ3f2zZuPVcxMsyx9fPF0NRfS2vM7lx2WtcQiJHvDRvZMluXMGNHstJH7+Wj09jHkOy1+tc3VxeC+P6TXT1sYZX2hT7cvS6lepv3zHUp2T8vXNw81dXT2yGwEGeERSbSVCC5qysYa+3vm9sJGmLFojceXJ9uklCqUIAic5G3IytahAAhqqVSiwWDwx6nogW9XKhWphaGAvC50Oh1qtVr/7oAdCwBQwjB00mg0qFqtUr1ed3YURZM7X7TWTqM2Gm3CASRJEur1etTtdp1DnrafFtJGMbVNGSBas9l0DrAzR6x8DdwASUB0RqNNGS2/gH7EInvCwMhkZTnlnX0GsP09tJER0BgMoAEAa1rETDIQvBkjBZeHMIjjuNB5Ggg0/oZWPGrHGwd7Fp9F2CAlgHKqf0aYXb6Y2mzE8d/IfrXVrN/5G81p6oa2mIEUAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/arrow_down.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAENSURBVDjLpZM/SwNREMTnxBRpFYmctaKCfwrBSCrRLuL3iEW6+EEUG8XvIVjYWNgJdhFjIXamv3s7u/ssrtO7hFy2fcOPmd03SYwR88xi1cPgpRdjjDB1mBquju+TMt1CFcDd0V7q4GilAwpnd2A0qCvcHRSdHUBqAYgOyaUGIBQAc4fkNSJIIGgGj4ZQx4EEAY3waPUiSC5FhLoOQkbQCJvioPQfnN2ctpuNJugKNUWYsMR/gO71yYPk8tRaboGmoCvS1RQ7/c1sq7f+OBUQcjkPGb9+xmOoF6ckCQb9pmj3rz6pKtPB5e5rmq7tmxk+hqO34e1or0yXTGrj9sXGs1Ib73efh1WaZN46/wI8JLfHaN24FwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/arrow_up.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEGSURBVDjLpZM/LwRRFMXPspmEaGc1shHRaiXsJ5GIRixbCr6SikxIlqgJM5UohIiGdofovHf/PZVmYwZvTntPfjnn3txWCAFNNFE33L/ZKXYv+1dRgL3r7bu0PbucJp3e4GLjtsrXGq9wkA8SU7tPk87i/MwCzAyP5QNeytcnJl46XMuoNoGKDoVlTkQhJpAgmJqcBjnqkqPTXxN8qz9cD6vdHtQMxXOBt49y5XjzLB/3tau6kWewKiwoRu8jZFvn+U++GgCBlWFBQY4qr1ANcAQxgQaFjwH4TwYrQ5skYBOYKbzjiASOwCrNd2BBwZ4jAcowGJgkAuAZ2dEJhAUqij//wn/1BesSumImTttSAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/wand.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHMSURBVDjLlZLBSyJhGMa/UxTUIWJ0ZVmlwxLLEiEhurCoKeqCOtZN7J4ZRZdd9rSG6NFbSOegDp5aqWWI3UGm6KBUxsq2LLj+CzV9jDOH8NlvJtqLjuXhBy/z8Xvel4chAMhTKGfOMeVsbqXf2wBp3s5Yf5hno8rp24YxS9PTVHq18mTAgzj3k4mCIs0cqZeLUCTHJ1q13VKRSz0v4PRNVr1KQfu9Aa31BZ2LKKg42aHfJ8ZNA9i5L9hWUZFeQ73kof3N42SPR6OyjFZ1FZ36AuQfo5CPyc7gDiRHttNYwsl+Apqmodvt4uJrCur1GmSB/GI4TAOo9JKjVasQi8VQr9ehqiqazSaqu1Fofz5C/kYow9M3gJVkp+JUJZFIIJ1Oo1gsolwu42hngcmfdfmecS4fki3TC3ieN2SPx4NAIIB4PA7lPIo70YY7YQJyhdhNS3yU3W43/H4/LBaLvnWbbbxnvGNyQz4gmb4ByWQShULBkH0+HziOg/6die+ZKOjzzQEZYXzoCYhEIsjn8z3yI0wKmf7KwWAQuVwOLpcLXq+3Rx4EyWQyaLfbcDqdCIVCQ8n/A2q1GkqlklHYMLIREA6HN/WzrVbr0LLOP1AMs7UPAa92AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/jquery/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/jquery/smoothness/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBkdW1teSBpbmRleC5odG1sIC0tPgo=]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsVL/nh8JDDfAkCjImpn5HvbfDpwIVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVhtqiwTEKTLXTgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAP0lEQVQ4je3PMQrAMABC0a/3v2zX0mCXNkOgc6C4PARd5DqPGKCU8luS8SbAQhiCQRgJE56kZTfbbP9RSvnkBsWcEAZRWcgqAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_glass_65_ffffff_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANklEQVQ4jWN48uTJfyYGBgaGUWKUGCWGLfHt2zcoi5GREYNgYmJCZiG42IiB98woMUqMEtgIAMdjCdyg+eEBAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANUlEQVQ4je3LMQoAIBADwb38/6t5wFXaWAiCtUiaYZvF9hBACOFbuntVVe11B0CSjjeE8BwThQIJ8dhEl0YAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAPklEQVQ4je3PMQqAMABD0Z/c/7aCIAXjJIhD10LJ8vgZw30eMUApZV/GhZNgSTjoLYElY/hNMJ/S6gullCkPiCIPCr4NiEwAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAALElEQVQYlWN49OjRfyYGBgaGIUT8//8fSqBx0Yh///4RL8vAwAAVQ2MNOwIAl6g6KkOJwk8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-icons_2e83ff_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-icons_222222_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-icons_454545_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEVERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkQfbf86AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMM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]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-icons_888888_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEWMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMioyMiozJxoFPAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMM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]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBkdW1teSBpbmRleC5odG1sIC0tPgo=]]></data>
	</file>
	<file>
	  <filename>/jquery/smoothness/jquery-ui-1.8.4.custom.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1RoZW1pbmcvQVBJCiAqLwoKLyogTGF5b3V0IGhlbHBlcnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS1oZWxwZXItaGlkZGVuIHsgZGlzcGxheTogbm9uZTsgfQoudWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtOTk5OTk5OTlweDsgfQoudWktaGVscGVyLXJlc2V0IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDA7IG91dGxpbmU6IDA7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMDAlOyBsaXN0LXN0eWxlOiBub25lOyB9Ci51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXIgeyBjb250ZW50OiAiLiI7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDA7IGNsZWFyOiBib3RoOyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KLnVpLWhlbHBlci1jbGVhcmZpeCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQovKiByZXF1aXJlZCBjb21tZW50IGZvciBjbGVhcmZpeCB0byB3b3JrIGluIE9wZXJhIFwqLwoqIGh0bWwgLnVpLWhlbHBlci1jbGVhcmZpeCB7IGhlaWdodDoxJTsgfQoudWktaGVscGVyLWNsZWFyZml4IHsgZGlzcGxheTpibG9jazsgfQovKiBlbmQgY2xlYXJmaXggKi8KLnVpLWhlbHBlci16Zml4IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgdG9wOiAwOyBsZWZ0OiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDA7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTApOyB9CgoKLyogSW50ZXJhY3Rpb24gQ3VlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXN0YXRlLWRpc2FibGVkIHsgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7IH0KCgovKiBJY29ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIHN0YXRlcyBhbmQgaW1hZ2VzICovCi51aS1pY29uIHsgZGlzcGxheTogYmxvY2s7IHRleHQtaW5kZW50OiAtOTk5OTlweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfQoKCi8qIE1pc2MgdmlzdWFscwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIE92ZXJsYXlzICovCi51aS13aWRnZXQtb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CgoKLyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1RoZW1pbmcvQVBJCiAqCiAqIFRvIHZpZXcgYW5kIG1vZGlmeSB0aGlzIHRoZW1lLCB2aXNpdCBodHRwOi8vanF1ZXJ5dWkuY29tL3RoZW1lcm9sbGVyLz9mZkRlZmF1bHQ9VmVyZGFuYSxBcmlhbCxzYW5zLXNlcmlmJmZ3RGVmYXVsdD1ub3JtYWwmZnNEZWZhdWx0PTEuMWVtJmNvcm5lclJhZGl1cz00cHgmYmdDb2xvckhlYWRlcj1jY2NjY2MmYmdUZXh0dXJlSGVhZGVyPTAzX2hpZ2hsaWdodF9zb2Z0LnBuZyZiZ0ltZ09wYWNpdHlIZWFkZXI9NzUmYm9yZGVyQ29sb3JIZWFkZXI9YWFhYWFhJmZjSGVhZGVyPTIyMjIyMiZpY29uQ29sb3JIZWFkZXI9MjIyMjIyJmJnQ29sb3JDb250ZW50PWZmZmZmZiZiZ1RleHR1cmVDb250ZW50PTAxX2ZsYXQucG5nJmJnSW1nT3BhY2l0eUNvbnRlbnQ9NzUmYm9yZGVyQ29sb3JDb250ZW50PWFhYWFhYSZmY0NvbnRlbnQ9MjIyMjIyJmljb25Db2xvckNvbnRlbnQ9MjIyMjIyJmJnQ29sb3JEZWZhdWx0PWU2ZTZlNiZiZ1RleHR1cmVEZWZhdWx0PTAyX2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlEZWZhdWx0PTc1JmJvcmRlckNvbG9yRGVmYXVsdD1kM2QzZDMmZmNEZWZhdWx0PTU1NTU1NSZpY29uQ29sb3JEZWZhdWx0PTg4ODg4OCZiZ0NvbG9ySG92ZXI9ZGFkYWRhJmJnVGV4dHVyZUhvdmVyPTAyX2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlIb3Zlcj03NSZib3JkZXJDb2xvckhvdmVyPTk5OTk5OSZmY0hvdmVyPTIxMjEyMSZpY29uQ29sb3JIb3Zlcj00NTQ1NDUmYmdDb2xvckFjdGl2ZT1mZmZmZmYmYmdUZXh0dXJlQWN0aXZlPTAyX2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlBY3RpdmU9NjUmYm9yZGVyQ29sb3JBY3RpdmU9YWFhYWFhJmZjQWN0aXZlPTIxMjEyMSZpY29uQ29sb3JBY3RpdmU9NDU0NTQ1JmJnQ29sb3JIaWdobGlnaHQ9ZmJmOWVlJmJnVGV4dHVyZUhpZ2hsaWdodD0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5SGlnaGxpZ2h0PTU1JmJvcmRlckNvbG9ySGlnaGxpZ2h0PWZjZWZhMSZmY0hpZ2hsaWdodD0zNjM2MzYmaWNvbkNvbG9ySGlnaGxpZ2h0PTJlODNmZiZiZ0NvbG9yRXJyb3I9ZmVmMWVjJmJnVGV4dHVyZUVycm9yPTAyX2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlFcnJvcj05NSZib3JkZXJDb2xvckVycm9yPWNkMGEwYSZmY0Vycm9yPWNkMGEwYSZpY29uQ29sb3JFcnJvcj1jZDBhMGEmYmdDb2xvck92ZXJsYXk9YWFhYWFhJmJnVGV4dHVyZU92ZXJsYXk9MDFfZmxhdC5wbmcmYmdJbWdPcGFjaXR5T3ZlcmxheT0wJm9wYWNpdHlPdmVybGF5PTMwJmJnQ29sb3JTaGFkb3c9YWFhYWFhJmJnVGV4dHVyZVNoYWRvdz0wMV9mbGF0LnBuZyZiZ0ltZ09wYWNpdHlTaGFkb3c9MCZvcGFjaXR5U2hhZG93PTMwJnRoaWNrbmVzc1NoYWRvdz04cHgmb2Zmc2V0VG9wU2hhZG93PS04cHgmb2Zmc2V0TGVmdFNoYWRvdz0tOHB4JmNvcm5lclJhZGl1c1NoYWRvdz04cHgKICovCgoKLyogQ29tcG9uZW50IGNvbnRhaW5lcnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS13aWRnZXQgeyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxzYW5zLXNlcmlmOyBmb250LXNpemU6IDEuMWVtOyB9Ci51aS13aWRnZXQgLnVpLXdpZGdldCB7IGZvbnQtc2l6ZTogMWVtOyB9Ci51aS13aWRnZXQgaW5wdXQsIC51aS13aWRnZXQgc2VsZWN0LCAudWktd2lkZ2V0IHRleHRhcmVhLCAudWktd2lkZ2V0IGJ1dHRvbiB7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMWVtOyB9Ci51aS13aWRnZXQtY29udGVudCB7IGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWE7IGJhY2tncm91bmQ6ICNmZmZmZmYgdXJsKGltYWdlcy91aS1iZ19mbGF0Xzc1X2ZmZmZmZl80MHgxMDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBjb2xvcjogIzIyMjIyMjsgfQoudWktd2lkZ2V0LWNvbnRlbnQgYSB7IGNvbG9yOiAjMjIyMjIyOyB9Ci51aS13aWRnZXQtaGVhZGVyIHsgYm9yZGVyOiAxcHggc29saWQgI2FhYWFhYTsgYmFja2dyb3VuZDogI2NjY2NjYyB1cmwoaW1hZ2VzL3VpLWJnX2hpZ2hsaWdodC1zb2Z0Xzc1X2NjY2NjY18xeDEwMC5wbmcpIDUwJSA1MCUgcmVwZWF0LXg7IGNvbG9yOiAjMjIyMjIyOyBmb250LXdlaWdodDogYm9sZDsgfQoudWktd2lkZ2V0LWhlYWRlciBhIHsgY29sb3I6ICMyMjIyMjI7IH0KCi8qIEludGVyYWN0aW9uIHN0YXRlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQgeyBib3JkZXI6IDFweCBzb2xpZCAjZDNkM2QzOyBiYWNrZ3JvdW5kOiAjZTZlNmU2IHVybChpbWFnZXMvdWktYmdfZ2xhc3NfNzVfZTZlNmU2XzF4NDAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6ICM1NTU1NTU7IH0KLnVpLXN0YXRlLWRlZmF1bHQgYSwgLnVpLXN0YXRlLWRlZmF1bHQgYTpsaW5rLCAudWktc3RhdGUtZGVmYXVsdCBhOnZpc2l0ZWQgeyBjb2xvcjogIzU1NTU1NTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cyB7IGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7IGJhY2tncm91bmQ6ICNkYWRhZGEgdXJsKGltYWdlcy91aS1iZ19nbGFzc183NV9kYWRhZGFfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBmb250LXdlaWdodDogbm9ybWFsOyBjb2xvcjogIzIxMjEyMTsgfQoudWktc3RhdGUtaG92ZXIgYSwgLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIgeyBjb2xvcjogIzIxMjEyMTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci51aS1zdGF0ZS1hY3RpdmUsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtYWN0aXZlIHsgYm9yZGVyOiAxcHggc29saWQgI2FhYWFhYTsgYmFja2dyb3VuZDogI2ZmZmZmZiB1cmwoaW1hZ2VzL3VpLWJnX2dsYXNzXzY1X2ZmZmZmZl8xeDQwMC5wbmcpIDUwJSA1MCUgcmVwZWF0LXg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGNvbG9yOiAjMjEyMTIxOyB9Ci51aS1zdGF0ZS1hY3RpdmUgYSwgLnVpLXN0YXRlLWFjdGl2ZSBhOmxpbmssIC51aS1zdGF0ZS1hY3RpdmUgYTp2aXNpdGVkIHsgY29sb3I6ICMyMTIxMjE7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktd2lkZ2V0IDphY3RpdmUgeyBvdXRsaW5lOiBub25lOyB9CgovKiBJbnRlcmFjdGlvbiBDdWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktc3RhdGUtaGlnaGxpZ2h0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCAge2JvcmRlcjogMXB4IHNvbGlkICNmY2VmYTE7IGJhY2tncm91bmQ6ICNmYmY5ZWUgdXJsKGltYWdlcy91aS1iZ19nbGFzc181NV9mYmY5ZWVfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBjb2xvcjogIzM2MzYzNjsgfQoudWktc3RhdGUtaGlnaGxpZ2h0IGEsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhIHsgY29sb3I6ICMzNjM2MzY7IH0KLnVpLXN0YXRlLWVycm9yLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3Ige2JvcmRlcjogMXB4IHNvbGlkICNjZDBhMGE7IGJhY2tncm91bmQ6ICNmZWYxZWMgdXJsKGltYWdlcy91aS1iZ19nbGFzc185NV9mZWYxZWNfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBjb2xvcjogI2NkMGEwYTsgfQoudWktc3RhdGUtZXJyb3IgYSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciBhLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYSB7IGNvbG9yOiAjY2QwYTBhOyB9Ci51aS1zdGF0ZS1lcnJvci10ZXh0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLXRleHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvci10ZXh0IHsgY29sb3I6ICNjZDBhMGE7IH0KLnVpLXByaW9yaXR5LXByaW1hcnksIC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXByaW1hcnkgeyBmb250LXdlaWdodDogYm9sZDsgfQoudWktcHJpb3JpdHktc2Vjb25kYXJ5LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXNlY29uZGFyeSwgIC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1zZWNvbmRhcnkgeyBvcGFjaXR5OiAuNzsgZmlsdGVyOkFscGhhKE9wYWNpdHk9NzApOyBmb250LXdlaWdodDogbm9ybWFsOyB9Ci51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVkIHsgb3BhY2l0eTogLjM1OyBmaWx0ZXI6QWxwaGEoT3BhY2l0eT0zNSk7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH0KCi8qIEljb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogc3RhdGVzIGFuZCBpbWFnZXMgKi8KLnVpLWljb24geyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZyk7IH0KLnVpLXdpZGdldC1jb250ZW50IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZyk7IH0KLnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfMjIyMjIyXzI1NngyNDAucG5nKTsgfQoudWktc3RhdGUtZGVmYXVsdCAudWktaWNvbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfODg4ODg4XzI1NngyNDAucG5nKTsgfQoudWktc3RhdGUtaG92ZXIgLnVpLWljb24sIC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc180NTQ1NDVfMjU2eDI0MC5wbmcpOyB9Ci51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfNDU0NTQ1XzI1NngyNDAucG5nKTsgfQoudWktc3RhdGUtaGlnaGxpZ2h0IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzJlODNmZl8yNTZ4MjQwLnBuZyk7IH0KLnVpLXN0YXRlLWVycm9yIC51aS1pY29uLCAudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc19jZDBhMGFfMjU2eDI0MC5wbmcpOyB9CgovKiBwb3NpdGlvbmluZyAqLwoudWktaWNvbi1jYXJhdC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0KLnVpLWljb24tY2FyYXQtMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggMDsgfQoudWktaWNvbi1jYXJhdC0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggMDsgfQoudWktaWNvbi1jYXJhdC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAwOyB9Ci51aS1pY29uLWNhcmF0LTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IDA7IH0KLnVpLWljb24tY2FyYXQtMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggMDsgfQoudWktaWNvbi10cmlhbmdsZS0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2cHg7IH0KLnVpLWljb24tYXJyb3ctMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTItbmUtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMi1zZS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMzJweDsgfQoudWktaWNvbi1hcnJvd3N0b3AtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93c3RvcC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3dzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMzJweDsgfQoudWktaWNvbi1hcnJvd3N0b3AtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTItbmUtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTItc2UtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybi0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybi0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybi0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybi0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JlZnJlc2gtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmVmcmVzaC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNjRweDsgfQoudWktaWNvbi1hcnJvdy00IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsgfQoudWktaWNvbi1hcnJvdy00LWRpYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtODBweDsgfQoudWktaWNvbi1leHRsaW5rIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTgwcHg7IH0KLnVpLWljb24tbmV3d2luIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTgwcHg7IH0KLnVpLWljb24tcmVmcmVzaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC04MHB4OyB9Ci51aS1pY29uLXNodWZmbGUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtODBweDsgfQoudWktaWNvbi10cmFuc2Zlci1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtODBweDsgfQoudWktaWNvbi10cmFuc2ZlcnRoaWNrLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtODBweDsgfQoudWktaWNvbi1mb2xkZXItY29sbGFwc2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtOTZweDsgfQoudWktaWNvbi1mb2xkZXItb3BlbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05NnB4OyB9Ci51aS1pY29uLWRvY3VtZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTk2cHg7IH0KLnVpLWljb24tZG9jdW1lbnQtYiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC05NnB4OyB9Ci51aS1pY29uLW5vdGUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtOTZweDsgfQoudWktaWNvbi1tYWlsLWNsb3NlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC05NnB4OyB9Ci51aS1pY29uLW1haWwtb3BlbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC05NnB4OyB9Ci51aS1pY29uLXN1aXRjYXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC05NnB4OyB9Ci51aS1pY29uLWNvbW1lbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTk2cHg7IH0KLnVpLWljb24tcGVyc29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC05NnB4OyB9Ci51aS1pY29uLXByaW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC05NnB4OyB9Ci51aS1pY29uLXRyYXNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC05NnB4OyB9Ci51aS1pY29uLWxvY2tlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtOTZweDsgfQoudWktaWNvbi11bmxvY2tlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtOTZweDsgfQoudWktaWNvbi1ib29rbWFyayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtOTZweDsgfQoudWktaWNvbi10YWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTk2cHg7IH0KLnVpLWljb24taG9tZSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTExMnB4OyB9Ci51aS1pY29uLWZsYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTEycHg7IH0KLnVpLWljb24tY2FsZW5kYXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTEycHg7IH0KLnVpLWljb24tY2FydCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMTJweDsgfQoudWktaWNvbi1wZW5jaWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTEycHg7IH0KLnVpLWljb24tY2xvY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTEycHg7IH0KLnVpLWljb24tZGlzayB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMTJweDsgfQoudWktaWNvbi1jYWxjdWxhdG9yIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMTJweDsgfQoudWktaWNvbi16b29taW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTExMnB4OyB9Ci51aS1pY29uLXpvb21vdXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTExMnB4OyB9Ci51aS1pY29uLXNlYXJjaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTEycHg7IH0KLnVpLWljb24td3JlbmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMTJweDsgfQoudWktaWNvbi1nZWFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xMTJweDsgfQoudWktaWNvbi1oZWFydCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTEycHg7IH0KLnVpLWljb24tc3RhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTEycHg7IH0KLnVpLWljb24tbGluayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMTEycHg7IH0KLnVpLWljb24tY2FuY2VsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTI4cHg7IH0KLnVpLWljb24tcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMjhweDsgfQoudWktaWNvbi1wbHVzdGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTI4cHg7IH0KLnVpLWljb24tbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTI4cHg7IH0KLnVpLWljb24tbWludXN0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMjhweDsgfQoudWktaWNvbi1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMjhweDsgfQoudWktaWNvbi1jbG9zZXRoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTEyOHB4OyB9Ci51aS1pY29uLWtleSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTI4cHg7IH0KLnVpLWljb24tbGlnaHRidWxiIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMjhweDsgfQoudWktaWNvbi1zY2lzc29ycyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTI4cHg7IH0KLnVpLWljb24tY2xpcGJvYXJkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMjhweDsgfQoudWktaWNvbi1jb3B5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMjhweDsgfQoudWktaWNvbi1jb250YWN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xMjhweDsgfQoudWktaWNvbi1pbWFnZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTI4cHg7IH0KLnVpLWljb24tdmlkZW8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTEyOHB4OyB9Ci51aS1pY29uLXNjcmlwdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMTI4cHg7IH0KLnVpLWljb24tYWxlcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNDRweDsgfQoudWktaWNvbi1pbmZvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE0NHB4OyB9Ci51aS1pY29uLW5vdGljZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNDRweDsgfQoudWktaWNvbi1oZWxwIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE0NHB4OyB9Ci51aS1pY29uLWNoZWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE0NHB4OyB9Ci51aS1pY29uLWJ1bGxldCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNDRweDsgfQoudWktaWNvbi1yYWRpby1vZmYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTQ0cHg7IH0KLnVpLWljb24tcmFkaW8tb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE0NHB4OyB9Ci51aS1pY29uLXBpbi13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNDRweDsgfQoudWktaWNvbi1waW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTQ0cHg7IH0KLnVpLWljb24tcGxheSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2MHB4OyB9Ci51aS1pY29uLXBhdXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2MHB4OyB9Ci51aS1pY29uLXNlZWstbmV4dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNjBweDsgfQoudWktaWNvbi1zZWVrLXByZXYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTYwcHg7IH0KLnVpLWljb24tc2Vlay1lbmQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTYwcHg7IH0KLnVpLWljb24tc2Vlay1zdGFydCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQovKiB1aS1pY29uLXNlZWstZmlyc3QgaXMgZGVwcmVjYXRlZCwgdXNlIHVpLWljb24tc2Vlay1zdGFydCBpbnN0ZWFkICovCi51aS1pY29uLXNlZWstZmlyc3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHg7IH0KLnVpLWljb24tc3RvcCB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNjBweDsgfQoudWktaWNvbi1lamVjdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTYwcHg7IH0KLnVpLWljb24tdm9sdW1lLW9mZiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTYwcHg7IH0KLnVpLWljb24tdm9sdW1lLW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNjBweDsgfQoudWktaWNvbi1wb3dlciB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE3NnB4OyB9Ci51aS1pY29uLXNpZ25hbC1kaWFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE3NnB4OyB9Ci51aS1pY29uLXNpZ25hbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNzZweDsgfQoudWktaWNvbi1iYXR0ZXJ5LTAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTc2cHg7IH0KLnVpLWljb24tYmF0dGVyeS0xIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE3NnB4OyB9Ci51aS1pY29uLWJhdHRlcnktMiB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNzZweDsgfQoudWktaWNvbi1iYXR0ZXJ5LTMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTc2cHg7IH0KLnVpLWljb24tY2lyY2xlLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS10cmlhbmdsZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1hcnJvdy1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtYXJyb3ctcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWFycm93LXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1hcnJvdy1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtem9vbWluIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtem9vbW91dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWNoZWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGVzbWFsbC1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjA4cHg7IH0KLnVpLWljb24tY2lyY2xlc21hbGwtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjA4cHg7IH0KLnVpLWljb24tY2lyY2xlc21hbGwtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjA4cHg7IH0KLnVpLWljb24tc3F1YXJlc21hbGwtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMDhweDsgfQoudWktaWNvbi1zcXVhcmVzbWFsbC1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMDhweDsgfQoudWktaWNvbi1zcXVhcmVzbWFsbC1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMDhweDsgfQoudWktaWNvbi1ncmlwLWRvdHRlZC12ZXJ0aWNhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIyNHB4OyB9Ci51aS1pY29uLWdyaXAtZG90dGVkLWhvcml6b250YWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcC1zb2xpZC12ZXJ0aWNhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMjRweDsgfQoudWktaWNvbi1ncmlwLXNvbGlkLWhvcml6b250YWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcHNtYWxsLWRpYWdvbmFsLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIyNHB4OyB9Ci51aS1pY29uLWdyaXAtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjI0cHg7IH0KCgovKiBNaXNjIHZpc3VhbHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKiBDb3JuZXIgcmFkaXVzICovCi51aS1jb3JuZXItdGwgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItdHIgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItYmwgeyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItYnIgeyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItdG9wIHsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLWJvdHRvbSB7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci1yaWdodCB7ICAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItbGVmdCB7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci1hbGwgeyAtbW96LWJvcmRlci1yYWRpdXM6IDRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7IGJvcmRlci1yYWRpdXM6IDRweDsgfQoKLyogT3ZlcmxheXMgKi8KLnVpLXdpZGdldC1vdmVybGF5IHsgYmFja2dyb3VuZDogI2FhYWFhYSB1cmwoaW1hZ2VzL3VpLWJnX2ZsYXRfMF9hYWFhYWFfNDB4MTAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgb3BhY2l0eTogLjMwO2ZpbHRlcjpBbHBoYShPcGFjaXR5PTMwKTsgfQoudWktd2lkZ2V0LXNoYWRvdyB7IG1hcmdpbjogLThweCAwIDAgLThweDsgcGFkZGluZzogOHB4OyBiYWNrZ3JvdW5kOiAjYWFhYWFhIHVybChpbWFnZXMvdWktYmdfZmxhdF8wX2FhYWFhYV80MHgxMDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBvcGFjaXR5OiAuMzA7ZmlsdGVyOkFscGhhKE9wYWNpdHk9MzApOyAtbW96LWJvcmRlci1yYWRpdXM6IDhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlci1yYWRpdXM6IDhweDsgfS8qCiAqIGpRdWVyeSBVSSBSZXNpemFibGUgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1Jlc2l6YWJsZSN0aGVtaW5nCiAqLwoudWktcmVzaXphYmxlIHsgcG9zaXRpb246IHJlbGF0aXZlO30KLnVpLXJlc2l6YWJsZS1oYW5kbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7Zm9udC1zaXplOiAwLjFweDt6LWluZGV4OiA5OTk5OTsgZGlzcGxheTogYmxvY2s7fQoudWktcmVzaXphYmxlLWRpc2FibGVkIC51aS1yZXNpemFibGUtaGFuZGxlLCAudWktcmVzaXphYmxlLWF1dG9oaWRlIC51aS1yZXNpemFibGUtaGFuZGxlIHsgZGlzcGxheTogbm9uZTsgfQoudWktcmVzaXphYmxlLW4geyBjdXJzb3I6IG4tcmVzaXplOyBoZWlnaHQ6IDdweDsgd2lkdGg6IDEwMCU7IHRvcDogLTVweDsgbGVmdDogMDsgfQoudWktcmVzaXphYmxlLXMgeyBjdXJzb3I6IHMtcmVzaXplOyBoZWlnaHQ6IDdweDsgd2lkdGg6IDEwMCU7IGJvdHRvbTogLTVweDsgbGVmdDogMDsgfQoudWktcmVzaXphYmxlLWUgeyBjdXJzb3I6IGUtcmVzaXplOyB3aWR0aDogN3B4OyByaWdodDogLTVweDsgdG9wOiAwOyBoZWlnaHQ6IDEwMCU7IH0KLnVpLXJlc2l6YWJsZS13IHsgY3Vyc29yOiB3LXJlc2l6ZTsgd2lkdGg6IDdweDsgbGVmdDogLTVweDsgdG9wOiAwOyBoZWlnaHQ6IDEwMCU7IH0KLnVpLXJlc2l6YWJsZS1zZSB7IGN1cnNvcjogc2UtcmVzaXplOyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyByaWdodDogMXB4OyBib3R0b206IDFweDsgfQoudWktcmVzaXphYmxlLXN3IHsgY3Vyc29yOiBzdy1yZXNpemU7IHdpZHRoOiA5cHg7IGhlaWdodDogOXB4OyBsZWZ0OiAtNXB4OyBib3R0b206IC01cHg7IH0KLnVpLXJlc2l6YWJsZS1udyB7IGN1cnNvcjogbnctcmVzaXplOyB3aWR0aDogOXB4OyBoZWlnaHQ6IDlweDsgbGVmdDogLTVweDsgdG9wOiAtNXB4OyB9Ci51aS1yZXNpemFibGUtbmUgeyBjdXJzb3I6IG5lLXJlc2l6ZTsgd2lkdGg6IDlweDsgaGVpZ2h0OiA5cHg7IHJpZ2h0OiAtNXB4OyB0b3A6IC01cHg7fS8qCiAqIGpRdWVyeSBVSSBTZWxlY3RhYmxlIEBWRVJTSU9OCiAqCiAqIENvcHlyaWdodCAyMDEwLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9TZWxlY3RhYmxlI3RoZW1pbmcKICovCi51aS1zZWxlY3RhYmxlLWhlbHBlciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTAwOyBib3JkZXI6MXB4IGRvdHRlZCBibGFjazsgfQovKgogKiBqUXVlcnkgVUkgQWNjb3JkaW9uIEBWRVJTSU9OCiAqCiAqIENvcHlyaWdodCAyMDEwLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9BY2NvcmRpb24jdGhlbWluZwogKi8KLyogSUUvV2luIC0gRml4IGFuaW1hdGlvbiBidWcgLSAjNDYxNSAqLwoudWktYWNjb3JkaW9uIHsgd2lkdGg6IDEwMCU7IH0KLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlciB7IGN1cnNvcjogcG9pbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAxcHg7IHpvb206IDE7IH0KLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWxpLWZpeCB7IGRpc3BsYXk6IGlubGluZTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSB7IGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIGEgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxZW07IHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIC43ZW07IH0KLnVpLWFjY29yZGlvbi1pY29ucyAudWktYWNjb3JkaW9uLWhlYWRlciBhIHsgcGFkZGluZy1sZWZ0OiAyLjJlbTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIC51aS1pY29uIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAuNWVtOyB0b3A6IDUwJTsgbWFyZ2luLXRvcDogLThweDsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudCB7IHBhZGRpbmc6IDFlbSAyLjJlbTsgYm9yZGVyLXRvcDogMDsgbWFyZ2luLXRvcDogLTJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDFweDsgbWFyZ2luLWJvdHRvbTogMnB4OyBvdmVyZmxvdzogYXV0bzsgZGlzcGxheTogbm9uZTsgem9vbTogMTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfS8qCiAqIGpRdWVyeSBVSSBBdXRvY29tcGxldGUgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0F1dG9jb21wbGV0ZSN0aGVtaW5nCiAqLwoudWktYXV0b2NvbXBsZXRlIHsgcG9zaXRpb246IGFic29sdXRlOyBjdXJzb3I6IGRlZmF1bHQ7IH0JCgovKiB3b3JrYXJvdW5kcyAqLwoqIGh0bWwgLnVpLWF1dG9jb21wbGV0ZSB7IHdpZHRoOjFweDsgfSAvKiB3aXRob3V0IHRoaXMsIHRoZSBtZW51IGV4cGFuZHMgdG8gMTAwJSBpbiBJRTYgKi8KCi8qCiAqIGpRdWVyeSBVSSBNZW51IEBWRVJTSU9OCiAqCiAqIENvcHlyaWdodCAyMDEwLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9NZW51I3RoZW1pbmcKICovCi51aS1tZW51IHsKCWxpc3Qtc3R5bGU6bm9uZTsKCXBhZGRpbmc6IDJweDsKCW1hcmdpbjogMDsKCWRpc3BsYXk6YmxvY2s7CglmbG9hdDogbGVmdDsKfQoudWktbWVudSAudWktbWVudSB7CgltYXJnaW4tdG9wOiAtM3B4Owp9Ci51aS1tZW51IC51aS1tZW51LWl0ZW0gewoJbWFyZ2luOjA7CglwYWRkaW5nOiAwOwoJem9vbTogMTsKCWZsb2F0OiBsZWZ0OwoJY2xlYXI6IGxlZnQ7Cgl3aWR0aDogMTAwJTsKfQoudWktbWVudSAudWktbWVudS1pdGVtIGEgewoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7CglkaXNwbGF5OmJsb2NrOwoJcGFkZGluZzouMmVtIC40ZW07CglsaW5lLWhlaWdodDoxLjU7Cgl6b29tOjE7Cn0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSBhLnVpLXN0YXRlLWhvdmVyLAoudWktbWVudSAudWktbWVudS1pdGVtIGEudWktc3RhdGUtYWN0aXZlIHsKCWZvbnQtd2VpZ2h0OiBub3JtYWw7CgltYXJnaW46IC0xcHg7Cn0KLyoKICogalF1ZXJ5IFVJIEJ1dHRvbiBAVkVSU0lPTgogKgogKiBDb3B5cmlnaHQgMjAxMCwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvQnV0dG9uI3RoZW1pbmcKICovCi51aS1idXR0b24geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMDsgbWFyZ2luLXJpZ2h0OiAuMWVtOyB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHpvb206IDE7IG92ZXJmbG93OiB2aXNpYmxlOyB9IC8qIHRoZSBvdmVyZmxvdyBwcm9wZXJ0eSByZW1vdmVzIGV4dHJhIHdpZHRoIGluIElFICovCi51aS1idXR0b24taWNvbi1vbmx5IHsgd2lkdGg6IDIuMmVtOyB9IC8qIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGljb24sIGEgd2lkdGggbmVlZHMgdG8gYmUgc2V0IGhlcmUgKi8KYnV0dG9uLnVpLWJ1dHRvbi1pY29uLW9ubHkgeyB3aWR0aDogMi40ZW07IH0gLyogYnV0dG9uIGVsZW1lbnRzIHNlZW0gdG8gbmVlZCBhIGxpdHRsZSBtb3JlIHdpZHRoICovCi51aS1idXR0b24taWNvbnMtb25seSB7IHdpZHRoOiAzLjRlbTsgfSAKYnV0dG9uLnVpLWJ1dHRvbi1pY29ucy1vbmx5IHsgd2lkdGg6IDMuN2VtOyB9IAoKLypidXR0b24gdGV4dCBlbGVtZW50ICovCi51aS1idXR0b24gLnVpLWJ1dHRvbi10ZXh0IHsgZGlzcGxheTogYmxvY2s7IGxpbmUtaGVpZ2h0OiAxLjQ7ICB9Ci51aS1idXR0b24tdGV4dC1vbmx5IC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40ZW0gMWVtOyB9Ci51aS1idXR0b24taWNvbi1vbmx5IC51aS1idXR0b24tdGV4dCwgLnVpLWJ1dHRvbi1pY29ucy1vbmx5IC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40ZW07IHRleHQtaW5kZW50OiAtOTk5OTk5OXB4OyB9Ci51aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgLnVpLWJ1dHRvbi10ZXh0LCAudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi10ZXh0IHsgcGFkZGluZzogLjRlbSAxZW0gLjRlbSAyLjFlbTsgfQoudWktYnV0dG9uLXRleHQtaWNvbi1zZWNvbmRhcnkgLnVpLWJ1dHRvbi10ZXh0LCAudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi10ZXh0IHsgcGFkZGluZzogLjRlbSAyLjFlbSAuNGVtIDFlbTsgfQoudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi10ZXh0IHsgcGFkZGluZy1sZWZ0OiAyLjFlbTsgcGFkZGluZy1yaWdodDogMi4xZW07IH0KLyogbm8gaWNvbiBzdXBwb3J0IGZvciBpbnB1dCBlbGVtZW50cywgcHJvdmlkZSBwYWRkaW5nIGJ5IGRlZmF1bHQgKi8KaW5wdXQudWktYnV0dG9uIHsgcGFkZGluZzogLjRlbSAxZW07IH0KCi8qYnV0dG9uIGljb24gZWxlbWVudChzKSAqLwoudWktYnV0dG9uLWljb24tb25seSAudWktaWNvbiwgLnVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFyeSAudWktaWNvbiwgLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1pY29uLCAudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWljb24sIC51aS1idXR0b24taWNvbnMtb25seSAudWktaWNvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC04cHg7IH0KLnVpLWJ1dHRvbi1pY29uLW9ubHkgLnVpLWljb24geyBsZWZ0OiA1MCU7IG1hcmdpbi1sZWZ0OiAtOHB4OyB9Ci51aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgLnVpLWJ1dHRvbi1pY29uLXByaW1hcnksIC51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLWljb24tcHJpbWFyeSwgLnVpLWJ1dHRvbi1pY29ucy1vbmx5IC51aS1idXR0b24taWNvbi1wcmltYXJ5IHsgbGVmdDogLjVlbTsgfQoudWktYnV0dG9uLXRleHQtaWNvbi1zZWNvbmRhcnkgLnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24taWNvbi1zZWNvbmRhcnksIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHsgcmlnaHQ6IC41ZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24taWNvbi1zZWNvbmRhcnksIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHsgcmlnaHQ6IC41ZW07IH0KCi8qYnV0dG9uIHNldHMqLwoudWktYnV0dG9uc2V0IHsgbWFyZ2luLXJpZ2h0OiA3cHg7IH0KLnVpLWJ1dHRvbnNldCAudWktYnV0dG9uIHsgbWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogLS4zZW07IH0KCi8qIHdvcmthcm91bmRzICovCmJ1dHRvbi51aS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIgeyBib3JkZXI6IDA7IHBhZGRpbmc6IDA7IH0gLyogcmVzZXQgZXh0cmEgcGFkZGluZyBpbiBGaXJlZm94ICovCi8qCiAqIGpRdWVyeSBVSSBEaWFsb2cgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0RpYWxvZyN0aGVtaW5nCiAqLwoudWktZGlhbG9nIHsgcG9zaXRpb246IGFic29sdXRlOyBwYWRkaW5nOiAuMmVtOyB3aWR0aDogMzAwcHg7IG92ZXJmbG93OiBoaWRkZW47IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyIHsgcGFkZGluZzogLjVlbSAxZW0gLjNlbTsgcG9zaXRpb246IHJlbGF0aXZlOyAgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGUgeyBmbG9hdDogbGVmdDsgbWFyZ2luOiAuMWVtIDE2cHggLjJlbSAwOyB9IAoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAuM2VtOyB0b3A6IDUwJTsgd2lkdGg6IDE5cHg7IG1hcmdpbjogLTEwcHggMCAwIDA7IHBhZGRpbmc6IDFweDsgaGVpZ2h0OiAxOHB4OyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSBzcGFuIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMXB4OyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpob3ZlciwgLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlOmZvY3VzIHsgcGFkZGluZzogMDsgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyOiAwOyBwYWRkaW5nOiAuNWVtIDFlbTsgYmFja2dyb3VuZDogbm9uZTsgb3ZlcmZsb3c6IGF1dG87IHpvb206IDE7IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgeyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItd2lkdGg6IDFweCAwIDAgMDsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgbWFyZ2luOiAuNWVtIDAgMCAwOyBwYWRkaW5nOiAuM2VtIDFlbSAuNWVtIC40ZW07IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgLnVpLWRpYWxvZy1idXR0b25zZXQgeyBmbG9hdDogcmlnaHQ7IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgYnV0dG9uIHsgbWFyZ2luOiAuNWVtIC40ZW0gLjVlbSAwOyBjdXJzb3I6IHBvaW50ZXI7IH0KLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLXNlIHsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgcmlnaHQ6IDNweDsgYm90dG9tOiAzcHg7IH0KLnVpLWRyYWdnYWJsZSAudWktZGlhbG9nLXRpdGxlYmFyIHsgY3Vyc29yOiBtb3ZlOyB9Ci8qCiAqIGpRdWVyeSBVSSBTbGlkZXIgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NsaWRlciN0aGVtaW5nCiAqLwoudWktc2xpZGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiBsZWZ0OyB9Ci51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDI7IHdpZHRoOiAxLjJlbTsgaGVpZ2h0OiAxLjJlbTsgY3Vyc29yOiBkZWZhdWx0OyB9Ci51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTsgZm9udC1zaXplOiAuN2VtOyBkaXNwbGF5OiBibG9jazsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0KCi51aS1zbGlkZXItaG9yaXpvbnRhbCB7IGhlaWdodDogLjhlbTsgfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUgeyB0b3A6IC0uM2VtOyBtYXJnaW4tbGVmdDogLS42ZW07IH0KLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UgeyB0b3A6IDA7IGhlaWdodDogMTAwJTsgfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW4geyBsZWZ0OiAwOyB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heCB7IHJpZ2h0OiAwOyB9CgoudWktc2xpZGVyLXZlcnRpY2FsIHsgd2lkdGg6IC44ZW07IGhlaWdodDogMTAwcHg7IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZSB7IGxlZnQ6IC0uM2VtOyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLWJvdHRvbTogLS42ZW07IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlIHsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbiB7IGJvdHRvbTogMDsgfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHsgdG9wOiAwOyB9LyoKICogalF1ZXJ5IFVJIFRhYnMgQFZFUlNJT04KICoKICogQ29weXJpZ2h0IDIwMTAsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1RhYnMjdGhlbWluZwogKi8KLnVpLXRhYnMgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IC4yZW07IHpvb206IDE7IH0gLyogcG9zaXRpb246IHJlbGF0aXZlIHByZXZlbnRzIElFIHNjcm9sbCBidWcgKGVsZW1lbnQgd2l0aCBwb3NpdGlvbjogcmVsYXRpdmUgaW5zaWRlIGNvbnRhaW5lciB3aXRoIG92ZXJmbG93OiBhdXRvIGFwcGVhciBhcyAiZml4ZWQiKSAqLwoudWktdGFicyAudWktdGFicy1uYXYgeyBtYXJnaW46IDA7IHBhZGRpbmc6IC4yZW0gLjJlbSAwOyB9Ci51aS10YWJzIC51aS10YWJzLW5hdiBsaSB7IGxpc3Qtc3R5bGU6IG5vbmU7IGZsb2F0OiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMXB4OyBtYXJnaW46IDAgLjJlbSAxcHggMDsgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci51aS10YWJzIC51aS10YWJzLW5hdiBsaSBhIHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IC41ZW0gMWVtOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtc2VsZWN0ZWQgeyBtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLWJvdHRvbTogMXB4OyB9Ci51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS10YWJzLXNlbGVjdGVkIGEsIC51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS1zdGF0ZS1kaXNhYmxlZCBhLCAudWktdGFicyAudWktdGFicy1uYXYgbGkudWktc3RhdGUtcHJvY2Vzc2luZyBhIHsgY3Vyc29yOiB0ZXh0OyB9Ci51aS10YWJzIC51aS10YWJzLW5hdiBsaSBhLCAudWktdGFicy51aS10YWJzLWNvbGxhcHNpYmxlIC51aS10YWJzLW5hdiBsaS51aS10YWJzLXNlbGVjdGVkIGEgeyBjdXJzb3I6IHBvaW50ZXI7IH0gLyogZmlyc3Qgc2VsZWN0b3IgaW4gZ3JvdXAgc2VlbXMgb2Jzb2xldGUsIGJ1dCByZXF1aXJlZCB0byBvdmVyY29tZSBidWcgaW4gT3BlcmEgYXBwbHlpbmcgY3Vyc29yOiB0ZXh0IG92ZXJhbGwgaWYgZGVmaW5lZCBlbHNld2hlcmUuLi4gKi8KLnVpLXRhYnMgLnVpLXRhYnMtcGFuZWwgeyBkaXNwbGF5OiBibG9jazsgYm9yZGVyLXdpZHRoOiAwOyBwYWRkaW5nOiAxZW0gMS40ZW07IGJhY2tncm91bmQ6IG5vbmU7IH0KLnVpLXRhYnMgLnVpLXRhYnMtaGlkZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQovKgogKiBqUXVlcnkgVUkgRGF0ZXBpY2tlciBAVkVSU0lPTgogKgogKiBDb3B5cmlnaHQgMjAxMCwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRGF0ZXBpY2tlciN0aGVtaW5nCiAqLwoudWktZGF0ZXBpY2tlciB7IHdpZHRoOiAxN2VtOyBwYWRkaW5nOiAuMmVtIC4yZW0gMDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZzouMmVtIDA7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiwgLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDJweDsgd2lkdGg6IDEuOGVtOyBoZWlnaHQ6IDEuOGVtOyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIsIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIgeyB0b3A6IDFweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHsgbGVmdDoycHg7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7IHJpZ2h0OjJweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIHsgbGVmdDoxcHg7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7IHJpZ2h0OjFweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgbWFyZ2luLWxlZnQ6IC04cHg7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtOHB4OyAgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZSB7IG1hcmdpbjogMCAyLjNlbTsgbGluZS1oZWlnaHQ6IDEuOGVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHsgZm9udC1zaXplOjFlbTsgbWFyZ2luOjFweCAwOyB9Ci51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLXllYXIge3dpZHRoOiAxMDAlO30KLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsIAoudWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHsgd2lkdGg6IDQ5JTt9Ci51aS1kYXRlcGlja2VyIHRhYmxlIHt3aWR0aDogMTAwJTsgZm9udC1zaXplOiAuOWVtOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtYXJnaW46MCAwIC40ZW07IH0KLnVpLWRhdGVwaWNrZXIgdGggeyBwYWRkaW5nOiAuN2VtIC4zZW07IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJvcmRlcjogMDsgIH0KLnVpLWRhdGVwaWNrZXIgdGQgeyBib3JkZXI6IDA7IHBhZGRpbmc6IDFweDsgfQoudWktZGF0ZXBpY2tlciB0ZCBzcGFuLCAudWktZGF0ZXBpY2tlciB0ZCBhIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IC4yZW07IHRleHQtYWxpZ246IHJpZ2h0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IG1hcmdpbjogLjdlbSAwIDAgMDsgcGFkZGluZzowIC4yZW07IGJvcmRlci1sZWZ0OiAwOyBib3JkZXItcmlnaHQ6IDA7IGJvcmRlci1ib3R0b206IDA7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24geyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogLjVlbSAuMmVtIC40ZW07IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZzogLjJlbSAuNmVtIC4zZW0gLjZlbTsgd2lkdGg6YXV0bzsgb3ZlcmZsb3c6dmlzaWJsZTsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQgeyBmbG9hdDpsZWZ0OyB9CgovKiB3aXRoIG11bHRpcGxlIGNhbGVuZGFycyAqLwoudWktZGF0ZXBpY2tlci51aS1kYXRlcGlja2VyLW11bHRpIHsgd2lkdGg6YXV0bzsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB7IGZsb2F0OmxlZnQ7IH0KLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAgdGFibGUgeyB3aWR0aDo5NSU7IG1hcmdpbjowIGF1dG8gLjRlbTsgfQoudWktZGF0ZXBpY2tlci1tdWx0aS0yIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6NTAlOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpLTMgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDozMy4zJTsgfQoudWktZGF0ZXBpY2tlci1tdWx0aS00IC51aS1kYXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6MjUlOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLWxlZnQtd2lkdGg6MDsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLWxlZnQtd2lkdGg6MDsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsgY2xlYXI6bGVmdDsgfQoudWktZGF0ZXBpY2tlci1yb3ctYnJlYWsgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyB9CgovKiBSVEwgc3VwcG9ydCAqLwoudWktZGF0ZXBpY2tlci1ydGwgeyBkaXJlY3Rpb246IHJ0bDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7IHJpZ2h0OiAycHg7IGxlZnQ6IGF1dG87IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQgeyBsZWZ0OiAycHg7IHJpZ2h0OiBhdXRvOyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2OmhvdmVyIHsgcmlnaHQ6IDFweDsgbGVmdDogYXV0bzsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7IGxlZnQ6IDFweDsgcmlnaHQ6IGF1dG87IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgeyBjbGVhcjpyaWdodDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24geyBmbG9hdDogbGVmdDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHsgZmxvYXQ6cmlnaHQ7IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgZmxvYXQ6cmlnaHQ7IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOjA7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7IGJvcmRlci1yaWdodC13aWR0aDowOyBib3JkZXItbGVmdC13aWR0aDoxcHg7IH0KCi8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBmcm9tIGRhdGVwaWNrZXIgMS41LjMgKi8KLnVpLWRhdGVwaWNrZXItY292ZXIgewogICAgZGlzcGxheTogbm9uZTsgLypzb3JyeSBmb3IgSUU1Ki8KICAgIGRpc3BsYXkvKiovOiBibG9jazsgLypzb3JyeSBmb3IgSUU1Ki8KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyptdXN0IGhhdmUqLwogICAgei1pbmRleDogLTE7IC8qbXVzdCBoYXZlKi8KICAgIGZpbHRlcjogbWFzaygpOyAvKm11c3QgaGF2ZSovCiAgICB0b3A6IC00cHg7IC8qbXVzdCBoYXZlKi8KICAgIGxlZnQ6IC00cHg7IC8qbXVzdCBoYXZlKi8KICAgIHdpZHRoOiAyMDBweDsgLyptdXN0IGhhdmUqLwogICAgaGVpZ2h0OiAyMDBweDsgLyptdXN0IGhhdmUqLwp9LyoKICogalF1ZXJ5IFVJIFByb2dyZXNzYmFyIEBWRVJTSU9OCiAqCiAqIENvcHlyaWdodCAyMDEwLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9Qcm9ncmVzc2JhciN0aGVtaW5nCiAqLwoudWktcHJvZ3Jlc3NiYXIgeyBoZWlnaHQ6MmVtOyB0ZXh0LWFsaWduOiBsZWZ0OyB9Ci51aS1wcm9ncmVzc2JhciAudWktcHJvZ3Jlc3NiYXItdmFsdWUge21hcmdpbjogLTFweDsgaGVpZ2h0OjEwMCU7IH0=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmcgPSBhcnJheSgKJ2luc3RhbGxlZCcgPT4nTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLicsCid1cGdyYWRlZCcgPT4nTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJywKJ3VuaW5zdGFsbGVkJyA9PidNb2R1bGUgdW5pbnN0YWxsZWQuJywKCidhZG1pbmRlc2NyaXB0aW9uJyA9PidBIG1vZHVsZSB0byBnZW5lcmF0ZSBtb2R1bGVzIGZvciBjdXN0b20gY29udGVudCB0eXBlcy4nLAonaW5zdGFsbHBvc3RtZXNzYWdlJyA9PidNJmFtcDtDIEZhY3Rvcnkgd2FzIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQuIFlvdSBjYW4gYWNjZXNzIGl0IGFuZCBnZW5lcmF0ZSBuZXcgbW9kdWxlcyB0aHJvdWdoIHRoZSBFeHRlbnNpb25zIG1lbnUuJywKJ3VuaW5zdGFsbHByZW1lc3NhZ2UnID0+J0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgTUMgRmFjdG9yeT8gVGhpcyB3aWxsIGFsc28gcmVtb3ZlIGFsbCBzZXR0aW5ncyBmb3IgZ2VuZXJhdGVkIG1vZHVsZXMuJywKJ3VuaW5zdGFsbHBvc3RtZXNzYWdlJyA9PidNJmFtcDtDIEZhY3Rvcnkgd2FzIHN1Y2Nlc3NmdWxseSB1bmluc3RhbGxlZC4gWW91IGNhbiByZWluc3RhbGwgaXQgYXQgYW55IHRpbWUuJywKJ2Vycm9yX29jY3VyZWRfcHVibGlzaGluZycgPT4nQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBwdWJsaWNhdGlvbiBvZiB0aGUgbW9kdWxlJywKCidlZGl0JyA9PidFZGl0JywKJ2RlbGV0ZScgPT4nRGVsZXRlJywKJ21vdmVfdXAnID0+J01vdmUgdXAnLAonbW92ZV9kb3duJyA9PidNb3ZlIGRvd24nLAoKJ2ltcG9ydCcgPT4gJ0ltcG9ydCcsCidpbXBvcnRfbW9kdWxlJyA9PiAnSW1wb3J0IG1vZHVsZScsCidmb3JtX21vZHVsZV9uYW1lJyA9PiAnTW9kdWxlIG5hbWUnLAonbGVhdmVfZW1wdHknID0+ICdZb3UgY2FuIGxlYXZlIHRoaXMgZW1wdHknLAonZm9ybV94bWxmaWxlJyA9PiAnTW9kdWxlIFhNTCBGaWxlJywKCidmb3JtX25hbWUnID0+ICdOYW1lJywKJ2Zvcm1fY29kZScgPT4gJ0NvZGUnLAonZm9ybV9pc19wdWJsaWMnID0+ICdJcyBhIHB1YmxpYyBhY3Rpb24nLAonZm9ybV9oYXZlX3Blcm1pc3Npb24nID0+ICdIYXZlIGEgc3BlY2lmaWMgcGVybWlzc2lvbicsCgonZm9ybV9sYWJlbCcgPT4gJ0xhYmVsJywKJ2Zvcm1fdHlwZScgPT4gJ1R5cGUnLAonZm9ybV90eXBlX3NlbGVjdCcgPT4gJ1R5cGUnLAonZm9ybV9wbGFjZScgPT4gJ1BsYWNlJywKJ2Zvcm1fb3B0aW9ucycgPT4gJ09wdGlvbnMnLAonZm9ybV9jb2x1bW4nID0+ICdTaG93IGluIGNvbHVtbicsCidmb3JtX2ZpbHRlcicgPT4gJ0ZpbHRlcicsCidmb3JtX2Zyb250ZW5kJyA9PiAnVXNhYmxlIGluIGZyb250ZW5kJywKCidtYWluJyA9PiAnTWFpbicsCidmaWVsZHMnID0+ICdGaWVsZHMnLAonYWN0aW9ucycgPT4gJ0FjdGlvbnMnLAonbG9naWMnID0+ICdDdXN0b20gbG9naWMnLAonb3B0aW9ucycgPT4gJ09wdGlvbnMnLAoKJ2hlbHAnID0+JwoJPGgzPkRlc2NyaXB0aW9uPC9oMz4KCTxwPlRoaXMgbW9kdWxlIGNhbiBnZW5lcmF0ZSBuZXcgbW9kdWxlcyB0byBtYW5hZ2UgY3VzdG9tIGNvbnRlbnQgdHlwZXMuPC9wPgoJPGgzPkhvdyB0byB1c2UgaXQ8L2gzPgoJPHA+Rm9yIHRoZSBnZW5lcmFsIGhlbHAsIHlvdSBjYW4gZmluZCBpdCB1bmRlciB0aGUgZ2VuZXJhdGVkIG1vZHVsZSBoZWxwLjwvcD4KCTxwPldpdGggdGhlIHNwZWNpZmljIG1vZHVsZSBsb2dpYywgeW91IGNhbiBub3cgYWRkIG9yIG92ZXJyaWRlIHNvbWUgbWV0aG9kcyBmcm9tIHRoZSBvYmplY3QgY2xhc3MgaXRzZWxmLiBGb3IgZXhhbXBsZSwgeW91IGNvdWxkIG92ZXJpZGUgdGhlIG1ldGhvZCAiZ2V0VGl0bGUiIHRvIGRvIHNvbWV0aGluZyBlbHNlLjwvcD4KCTxwPlNwZWNpZmljIG1ldGhvZHMgdGhhdCB5b3UgY291bGQgY29uc2lkZXIgb3ZlcnJpZGluZzo8L3A+Cgk8dWw+CgkJPGxpPjxzdHJvbmc+Z2V0Q29yZVNsdWcoKTwvc3Ryb25nPiBUaGlzIGdlbmVyYXRlIHRoZSB1cmwgc2x1ZyBvZiB0aGUgbW9kdWxlLiBCeSBkZWZhdWx0IGl0IHRha2UgaXQgZnJvbSB0aXRsZS48L2xpPgoJPC91PgoJPHA+U29tZSB0aXBzPC9wPgoJPHA+Rm9yIGFsbCBmaWVsZHMsIHlvdSBjYW4gZGVmaW5lIG9wdGlvbnMuIFdyaXRlIHRoZW0gaW4gYSAiY3NzIiB3YXkuPC9wPgoJPHVsPgoJCTxsaT48c3Ryb25nPnRpcHM8L3N0cm9uZz4gQWRkIGEgdGlwIGluIHRoZSBlbmQgb2YgdGhlIGZpZWxkLjwvbGk+Cgk8L3VsPgoJPGg0PlNlbGVjdCAoRHJvcGRvd24pPC9oND4KCTx1bD4KCQk8bGk+PHN0cm9uZz52YWx1ZXM8L3N0cm9uZz4gQSBsaXN0IG9mIHZhbHVlcyBmb3IgdGhlIGRyb3Bkb3duLiBZb3UgY2FuIHVzZSBrZXk9PnZhbHVlIChleDogdmFsdWVzOm9wdGlvbjEgPT4gT3B0aW9uIDEsIG9wdGlvbjIgPT4gT3B0aW9uIDIpLiBUbyByZXRyaWV2ZSB0aGUgdmFsdWUsIHVzZSBnZXRNeUZpZWxkTmFtZVZhbHVlKCk8L2xpPgoJCTxsaT48c3Ryb25nPmRlZmF1bHRfdmFsdWU8L3N0cm9uZz4gVGhlIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWU8L2xpPgoJCTxsaT48c3Ryb25nPm11bHRpcGxlPC9zdHJvbmc+IEFsbG93cyB5b3UgdG8gc2VsZWN0IG11bHRpcGxlIHZhbHVlcy48L2xpPgoJCTxsaT48c3Ryb25nPmV4cGFuZGVkPC9zdHJvbmc+IFNob3dzIFJhZGlvIGJ1dHRvbnMgb3IgY2hlY2tib3hlcyBpbnN0ZWFkIG9mIHNlbGVjdCBib3guPC9saT4KCTwvdWw+Cgk8aDQ+TW9kdWxlPC9oND4KCTxwPkZvciB0aGUgZmllbGQgdHlwZSAibW9kdWxlIiwgdGhlIG9wdGlvbiBzaG91bGQgYmUgZmlsZWQgd2l0aCB0aGUgZXhhY3QgbW9kdWxlIG5hbWUuIGV4OiBtb2R1bGVfbmFtZTpNeU1vZHVsZS4gWW91IGNhbiBhbHNvIHNwZWNpZnkgaXQgdG8gYmUgYSBtdWx0aXBsZSBmaWxlIG11bHRpcGxlOnRydWUgYW5kIHlvdSBjYW4gcmVwbGFjZSBkcm9wZG93biBieSBhIHJhZGlvIG9yIGNoZWNrYm94IGxpc3QgdXNpbmcgdGhlIHBhcmFtIGV4cGFuZGVkLiBFeDogIm1vZHVsZV9uYW1lOk15TW9kdWxlO211bHRpcGxlOnRydWU7ZXhwYW5kZWQ6dHJ1ZSI8L3A+Cgk8dWw+CgkJPGxpPjxzdHJvbmc+bW9kdWxlX25hbWU8L3N0cm9uZz4gVGhlIG1vZHVsZSBuYW1lPC9saT4KCQk8bGk+PHN0cm9uZz5zZWxlY3Rvcjwvc3Ryb25nPiBUaGUgZnVuY3Rpb24gdG8gc2VsZWN0IGl0ZW1zICh0YWtlIE1DRkNyaXRlcmlhIGZvciBwYXJhbSk8L2xpPgoJCTxsaT48c3Ryb25nPm11bHRpcGxlPC9zdHJvbmc+IEFsbG93IG11bHRpcGxlIHNlbGVjdGlvbiA/PC9saT4KCQk8bGk+PHN0cm9uZz5leHBhbmRlZDwvc3Ryb25nPiBTaG93IGNoZWNrYm94L3JhZGlvIGJ1dHRvbiBpbnN0ZWFkIG9mIHNlbGVjdG9yID88L2xpPgoJPC91bD4KCTxoND5EYXRlPC9oND4KCTxwPkZvciB0aGUgZmllbGQgdHlwZSAiZGF0ZSIsIHlvdSBjYW4gc3BlY2lmeSB0aGUgc3RhcnQgeWVhciBhbmQgbnVtYmVyIG9mIHllYXJzLiBFeGFtcGxlIDogInN0YXJ0X3llYXI6MTk1MDtudW1iZXJfeWVhcnM6NzAiPC9wPgoJPGg0PlRpbWU8L2g0PgoJPHVsPgoJCTxsaT48c3Ryb25nPm1pZG5pZ2h0PC9zdHJvbmc+IFNldCB0aGUgdGltZSB0byAwOjA6MCBieSBkZWZhdWx0PC9saT4KCTwvdWw+Cgk8aDQ+UGFnZTwvaDQ+Cgk8cD5Gb3IgdGhlIHBhZ2VzLCB5b3UgY2FuIHVzZSB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhcyBmb3IgZHJvcGRvd24gZXhjZXB0IHRoZSAidmFsdWVzIi4gWW91IGNhbiBhbHNvIHVzZSB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6PC9wPgoJPHVsPgoJCTxsaT48c3Ryb25nPmNoaWxkcmVub2Y8L3N0cm9uZz4gU2hvdyBvbmx5IHRoZSBjaGlsZHJlblwncyBvZiBhIHNwZWNpZmllZCBwYWdlLjwvbGk+CgkJPGxpPjxzdHJvbmc+c3RhcnRfcGFnZTwvc3Ryb25nPiBTaG93IG9ubHkgdGhlIGRlc2NlbmRhbnRzIG9mIGEgc3BlY2lmaWVkIHBhZ2UuPC9saT4KCTwvdWw+Cgk8aDQ+RG9jdW1lbnRzPC9oND4KCTxwPllvdSBjYW4gcHJvdGVjdCBkb2N1bWVudHMgZG9pbmcgImluZGlyZWN0IiBkb3dubG9hZHMgd2hpY2ggd2lsbCBhbGxvdyB5b3UgdG8gc2V0IHVzZXIgcGVybWlzc2lvbnMgb24gaXQgZm9yIGV4YW1wbGUuPC9wPgoJPHVsPgoJCTxsaT48c3Ryb25nPnByb3RlY3RlZDwvc3Ryb25nPiBTcGVjaWZ5IHRoZSBhYnNvbHV0ZSBwYXRoIHdoZXJlIGRvY3VtZW50cyBoYXZlIHRvIGJlIHNhZmVseSBzdG9yZWQuIFRoaXMgZm9sZGVyIG5lZWRzIHdyaXRlIGFjY2Vzcy48L2xpPgoJPC91bD4KCTxoMz5TdXBwb3J0PC9oMz4KCTxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgk8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KCTxwPkNvcHlyaWdodCAmY29weTsgMjAwOC0yMDEwLCBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgPGEgaHJlZj0ibWFpbHRvOmpjY0Btb3JyaXMtY2hhcG1hbi5jb20iPiZsdDtqY2NAbW9ycmlzLWNoYXBtYW4uY29tJmd0OzwvYT4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lm1vcnJpcy1jaGFwbWFuLmNvbS8iPk1vcnJpcyAmYW1wOyBDaGFwbWFuIEJlbGdpdW08L2E+LjwvcD4KCTxwPkNvbnRyaWJ1dG9yczogR2VycnkgVmFuZGVybWFlc2VuPC9wPgoJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGlzIG1vZHVsZS48L3A+CicsCgonY2hhbmdlbG9nJyA9PicKCTxkbD4KCQk8ZHQ+VmVyc2lvbiAwLjAuMSAtIDI5IFNlcHRlbWJlciAyMDA4LjwvZHQ+CgkJPGRkPkluaXRpYWwgUmVsZWFzZS48L2RkPgoJCTxkdD5WZXJzaW9uIDEuMCAtIDIxIE9jdG9iZXIgMjAwOS48L2R0PgoJCTxkZD5GaXJzdCBzdGFibGUgcmVsZWFzZS48L2RkPgoJCTxkdD5WZXJzaW9uIDEuMC4xIC0gMjIgT2N0b2JlciAyMDA5LjwvZHQ+CgkJPGRkPgoJCQk8dWw+CgkJCQk8bGk+Q2xlYW4tdXAgb2YgdGhlIGNvZGUuPC9saT4KCQkJCTxsaT5Nb2RlbHMgb2YgYWxyZWFkeSBpbnN0YWxsZWQgbW9kdWxlcyBhcmUgYXV0by11cGRhdGVkIHdoZW4gYWRkaW5nIG5ldyBjb2x1bW5zLjwvbGk+CgkJCTwvdWw+CgkJPC9kZD4KCTwvZGw+CicpOwoK]]></data>
	</file>
	<file>
	  <filename>/libraries/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/libraries/bennu/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/libraries/bennu/CHANGELOG.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Tm8gY2hhbmdlbG9nIHlldCwgc29ycnku]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/COPYRIGHT.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QmVubnUgLSBBbiBvYmplY3Qtb3JpZW50ZWQgaUNhbGVuZGFyIChSRkMyNDQ1KSBpbXBsZW1lbnRhdGlvbiBpbiBQSFANCmh0dHA6Ly9iZW5udS5zb3VyY2Vmb3JnZS5uZXQNCg0KQmVubnUgaXMgY29weXJpZ2h0IChDKSAyMDA1IGJ5IElvYW5uaXMgUGFwYWlvYW5ub3UgKHBqQHVvbS5ncikuDQoNClRoZSBmdWxsIHRleHQgb2YgdGhlIExHTFAgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiBMSUNFTlNFLnR4dA0KDQpUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQptb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQpMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCnZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KDQpUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQ0KTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0KTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0bzoNClRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCjUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vcg0KQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBDQo=]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/libraries/bennu/lib/bennu.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gJElkOiBiZW5udS5pbmMucGhwLHYgMS4zIDIwMDUvMDcvMjEgMjI6MzE6NDQgZGVmYWNlciBFeHAgJA0KDQppZighZGVmaW5lZCgnX0JFTk5VX1ZFUlNJT04nKSkgew0KICAgIGRlZmluZSgnX0JFTk5VX1ZFUlNJT04nLCAnMC4xJyk7DQogICAgaW5jbHVkZSgnaUNhbGVuZGFyX3JmYzI0NDUucGhwJyk7DQogICAgaW5jbHVkZSgnaUNhbGVuZGFyX2NvbXBvbmVudHMucGhwJyk7DQogICAgaW5jbHVkZSgnaUNhbGVuZGFyX3Byb3BlcnRpZXMucGhwJyk7DQogICAgaW5jbHVkZSgnaUNhbGVuZGFyX3BhcmFtZXRlcnMucGhwJyk7DQp9DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/lib/iCalendar_components.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gJElkOiBpQ2FsZW5kYXJfY29tcG9uZW50cy5waHAsdiAxLjggMjAwNS8wNy8yMSAyMjozMTo0NCBkZWZhY2VyIEV4cCAkDQoNCmNsYXNzIGlDYWxlbmRhcl9jb21wb25lbnQgew0KICAgIHZhciAkbmFtZSAgICAgICAgICAgICA9IE5VTEw7DQogICAgdmFyICRwcm9wZXJ0aWVzICAgICAgID0gTlVMTDsNCiAgICB2YXIgJGNvbXBvbmVudHMgICAgICAgPSBOVUxMOw0KICAgIHZhciAkdmFsaWRfcHJvcGVydGllcyA9IE5VTEw7DQogICAgdmFyICR2YWxpZF9jb21wb25lbnRzID0gTlVMTDsNCg0KICAgIGZ1bmN0aW9uIGlDYWxlbmRhcl9jb21wb25lbnQoKSB7DQogICAgICAgICR0aGlzLT5jb25zdHJ1Y3QoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgYXJyYXkNCiAgICAgICAgaWYoZW1wdHkoJHRoaXMtPmNvbXBvbmVudHMpKSB7DQogICAgICAgICAgICAkdGhpcy0+Y29tcG9uZW50cyA9IGFycmF5KCk7DQogICAgICAgICAgICBmb3JlYWNoKCR0aGlzLT52YWxpZF9jb21wb25lbnRzIGFzICRuYW1lKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmNvbXBvbmVudHNbJG5hbWVdID0gYXJyYXkoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGdldF9uYW1lKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPm5hbWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gYWRkX3Byb3BlcnR5KCRuYW1lLCAkdmFsdWUgPSBOVUxMLCAkcGFyYW1ldGVycyA9IE5VTEwpIHsNCg0KICAgICAgICAvLyBVcHBlcmNhc2UgZmlyc3Qgb2YgYWxsDQogICAgICAgICRuYW1lID0gc3RydG91cHBlcigkbmFtZSk7DQoNCiAgICAgICAgLy8gQXJlIHdlIHRyeWluZyB0byBhZGQgYSB2YWxpZCBwcm9wZXJ0eT8NCiAgICAgICAgJHhuYW1lID0gZmFsc2U7DQogICAgICAgIGlmKCFpc3NldCgkdGhpcy0+dmFsaWRfcHJvcGVydGllc1skbmFtZV0pKSB7DQogICAgICAgICAgICAvLyBJZiBub3QsIGlzIGl0IGFuIHgtbmFtZSBhcyBwZXIgUkZDIDI0NDU/DQogICAgICAgICAgICBpZighcmZjMjQ0NV9pc194bmFtZSgkbmFtZSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGFuIHhuYW1lLCBhbGwgY29tcG9uZW50cyBhcmUgc3VwcG9zZWQgdG8gYWxsb3cgdGhpcyBwcm9wZXJ0eQ0KICAgICAgICAgICAgJHhuYW1lID0gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIENyZWF0ZSBhIHByb3BlcnR5IG9iamVjdCBvZiB0aGUgY29ycmVjdCBjbGFzcw0KICAgICAgICBpZigkeG5hbWUpIHsNCiAgICAgICAgICAgICRwcm9wZXJ0eSA9IG5ldyBpQ2FsZW5kYXJfcHJvcGVydHlfeDsNCiAgICAgICAgICAgICRwcm9wZXJ0eS0+c2V0X25hbWUoJG5hbWUpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJGNsYXNzbmFtZSA9ICdpQ2FsZW5kYXJfcHJvcGVydHlfJy5zdHJ0b2xvd2VyKHN0cl9yZXBsYWNlKCctJywgJ18nLCAkbmFtZSkpOw0KICAgICAgICAgICAgJHByb3BlcnR5ID0gbmV3ICRjbGFzc25hbWU7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBJZiAkdmFsdWUgaXMgTlVMTCwgdGhlbiB0aGlzIHByb3BlcnR5IG11c3QgZGVmaW5lIGEgZGVmYXVsdCB2YWx1ZS4NCiAgICAgICAgaWYoJHZhbHVlID09PSBOVUxMKSB7DQogICAgICAgICAgICAkdmFsdWUgPSAkcHJvcGVydHktPmRlZmF1bHRfdmFsdWUoKTsNCiAgICAgICAgICAgIGlmKCR2YWx1ZSA9PT0gTlVMTCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFNldCB0aGlzIHByb3BlcnR5J3MgcGFyZW50IGNvbXBvbmVudCB0byBvdXJzZWx2ZXMsIGJlY2F1c2Ugc29tZQ0KICAgICAgICAvLyBwcm9wZXJ0aWVzIGJlaGF2ZSBkaWZmZXJlbnRseSBhY2NvcmRpbmcgdG8gd2hhdCBjb21wb25lbnQgdGhleSBhcHBseSB0by4NCiAgICAgICAgJHByb3BlcnR5LT5zZXRfcGFyZW50X2NvbXBvbmVudCgkdGhpcy0+bmFtZSk7DQoNCiAgICAgICAgLy8gU2V0IHBhcmFtZXRlcnMgYmVmb3JlIHZhbHVlOyB0aGlzIGhlbHBzIHdpdGggc29tZSBwcm9wZXJ0aWVzIHdoaWNoDQogICAgICAgIC8vIGFjY2VwdCBhIFZBTFVFIHBhcmFtZXRlciwgYW5kIHRodXMgY2hhbmdlIHRoZWlyIGRlZmF1bHQgdmFsdWUgdHlwZS4NCg0KICAgICAgICAvLyBUaGUgcGFyYW1ldGVycyBtdXN0IGJlIHZhbGlkIGFjY29yZGluZyB0byBwcm9wZXJ0eSBzcGVjaWZpY2F0aW9ucw0KICAgICAgICBpZighZW1wdHkoJHBhcmFtZXRlcnMpKSB7DQogICAgICAgICAgICBmb3JlYWNoKCRwYXJhbWV0ZXJzIGFzICRwYXJhbW5hbWUgPT4gJHBhcmFtdmFsdWUpIHsNCiAgICAgICAgICAgICAgICBpZighJHByb3BlcnR5LT5zZXRfcGFyYW1ldGVyKCRwYXJhbW5hbWUsICRwYXJhbXZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBTb21lIHBhcmFtZXRlcnMgaW50ZXJhY3QgYW1vbmcgdGhlbXNlbHZlcyAoZS5nLiBFTkNPRElORyBhbmQgVkFMVUUpDQogICAgICAgICAgICAvLyBzbyBtYWtlIHN1cmUgdGhhdCBhZnRlciB0aGUgZHVzdCBzZXR0bGVzLCB0aGVzZSBpbnZhcmlhbnRzIGhvbGQgdHJ1ZQ0KICAgICAgICAgICAgaWYoISRwcm9wZXJ0eS0+aW52YXJpYW50X2hvbGRzKCkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLyAkdmFsdWUgTVVTVCBiZSB2YWxpZCBhY2NvcmRpbmcgdG8gdGhlIHByb3BlcnR5IGRhdGEgdHlwZQ0KICAgICAgICBpZighJHByb3BlcnR5LT5zZXRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gSWYgdGhpcyBwcm9wZXJ0eSBpcyByZXN0cmljdGVkIHRvIG9ubHkgb25jZSwgYmxpbmRseSBvdmVyd3JpdGUgdmFsdWUNCiAgICAgICAgaWYoISR4bmFtZSAmJiAkdGhpcy0+dmFsaWRfcHJvcGVydGllc1skbmFtZV0gJiBSRkMyNDQ1X09OQ0UpIHsNCiAgICAgICAgICAgICR0aGlzLT5wcm9wZXJ0aWVzWyRuYW1lXSA9IGFycmF5KCRwcm9wZXJ0eSk7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBPdGhlcndpc2UgYWRkIGl0IHRvIHRoZSBpbnN0YW5jZSBhcnJheSBmb3IgdGhpcyBwcm9wZXJ0eQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICR0aGlzLT5wcm9wZXJ0aWVzWyRuYW1lXVtdID0gJHByb3BlcnR5Ow0KICAgICAgICB9DQoNCiAgICAgICAgLy8gRmluYWxseTogYWZ0ZXIgYWxsIHRoZXNlLCBkb2VzIHRoZSBjb21wb25lbnQgaW52YXJpYW50IGhvbGQ/DQogICAgICAgIGlmKCEkdGhpcy0+aW52YXJpYW50X2hvbGRzKCkpIHsNCiAgICAgICAgICAgIC8vIElmIG5vdCwgY29tcGxldGVseSB1bmRvIHRoZSBwcm9wZXJ0eSBhZGRpdGlvbg0KICAgICAgICAgICAgYXJyYXlfcG9wKCR0aGlzLT5wcm9wZXJ0aWVzWyRuYW1lXSk7DQogICAgICAgICAgICBpZihlbXB0eSgkdGhpcy0+cHJvcGVydGllc1skbmFtZV0pKSB7DQogICAgICAgICAgICAgICAgdW5zZXQoJHRoaXMtPnByb3BlcnRpZXNbJG5hbWVdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgDQogICAgICAgIA0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGFkZF9jb21wb25lbnQoJGNvbXBvbmVudCkgew0KDQogICAgICAgIC8vIFdpdGggdGhlIGRldGFpbGVkIGludGVyZmFjZSwgeW91IGNhbiBhZGQgb25seSBjb21wb25lbnRzIHdpdGggdGhpcyBmdW5jdGlvbg0KICAgICAgICBpZighaXNfb2JqZWN0KCRjb21wb25lbnQpIHx8ICFpc19zdWJjbGFzc19vZigkY29tcG9uZW50LCAnaUNhbGVuZGFyX2NvbXBvbmVudCcpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICAkbmFtZSA9ICRjb21wb25lbnQtPmdldF9uYW1lKCk7DQoNCiAgICAgICAgLy8gT25seSB2YWxpZCBjb21wb25lbnRzIGFzIHNwZWNpZmllZCBieSB0aGlzIGNvbXBvbmVudCBhcmUgYWxsb3dlZA0KICAgICAgICBpZighaW5fYXJyYXkoJG5hbWUsICR0aGlzLT52YWxpZF9jb21wb25lbnRzKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gQWRkIGl0DQogICAgICAgICR0aGlzLT5jb21wb25lbnRzWyRuYW1lXVtdID0gJGNvbXBvbmVudDsNCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBnZXRfcHJvcGVydHlfbGlzdCgkbmFtZSkgew0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGludmFyaWFudF9ob2xkcygpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWQoKSB7DQogICAgICAgIC8vIElmIHdlIGhhdmUgYW55IGNoaWxkIGNvbXBvbmVudHMsIGNoZWNrIHRoYXQgdGhleSBhcmUgYWxsIHZhbGlkDQogICAgICAgIGlmKCFlbXB0eSgkdGhpcy0+Y29tcG9uZW50cykpIHsNCiAgICAgICAgICAgIGZvcmVhY2goJHRoaXMtPmNvbXBvbmVudHMgYXMgJGNvbXBvbmVudCA9PiAkaW5zdGFuY2VzKSB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkaW5zdGFuY2VzIGFzICRudW1iZXIgPT4gJGluc3RhbmNlKSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCEkaW5zdGFuY2UtPmlzX3ZhbGlkKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEZpbmFsbHksIGNoZWNrIHRoZSB2YWxpZCBwcm9wZXJ0eSBsaXN0IGZvciBhbnkgbWFuZGF0b3J5IHByb3BlcnRpZXMNCiAgICAgICAgLy8gdGhhdCBoYXZlIG5vdCBiZWVuIHNldCBhbmQgZG8gbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlDQogICAgICAgIGZvcmVhY2goJHRoaXMtPnZhbGlkX3Byb3BlcnRpZXMgYXMgJHByb3BlcnR5ID0+ICRwcm9wZGF0YSkgew0KICAgICAgICAgICAgaWYoKCRwcm9wZGF0YSAmIFJGQzI0NDVfUkVRVUlSRUQpICYmIGVtcHR5KCR0aGlzLT5wcm9wZXJ0aWVzWyRwcm9wZXJ0eV0pKSB7DQogICAgICAgICAgICAgICAgJGNsYXNzbmFtZSA9ICdpQ2FsZW5kYXJfcHJvcGVydHlfJy5zdHJ0b2xvd2VyKHN0cl9yZXBsYWNlKCctJywgJ18nLCAkcHJvcGVydHkpKTsNCiAgICAgICAgICAgICAgICAkb2JqZWN0ICAgID0gbmV3ICRjbGFzc25hbWU7DQogICAgICAgICAgICAgICAgaWYoJG9iamVjdC0+ZGVmYXVsdF92YWx1ZSgpID09PSBOVUxMKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdW5zZXQoJG9iamVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQogICAgDQogICAgZnVuY3Rpb24gc2VyaWFsaXplKCkgew0KICAgICAgICAvLyBDaGVjayBmb3IgdmFsaWRpdHkgb2YgdGhlIG9iamVjdA0KICAgICAgICBpZighJHRoaXMtPmlzX3ZhbGlkKCkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIE1heWJlIHRoZSBvYmplY3QgaXMgdmFsaWQsIGJ1dCB0aGVyZSBhcmUgc29tZSByZXF1aXJlZCBwcm9wZXJ0aWVzIHRoYXQNCiAgICAgICAgLy8gaGF2ZSBub3QgYmVlbiBnaXZlbiBleHBsaWNpdCB2YWx1ZXMuIEluIHRoYXQgY2FzZSwgc2V0IHRoZW0gdG8gZGVmYXVsdHMuDQogICAgICAgIGZvcmVhY2goJHRoaXMtPnZhbGlkX3Byb3BlcnRpZXMgYXMgJHByb3BlcnR5ID0+ICRwcm9wZGF0YSkgew0KICAgICAgICAgICAgaWYoKCRwcm9wZGF0YSAmIFJGQzI0NDVfUkVRVUlSRUQpICYmIGVtcHR5KCR0aGlzLT5wcm9wZXJ0aWVzWyRwcm9wZXJ0eV0pKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmFkZF9wcm9wZXJ0eSgkcHJvcGVydHkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU3RhcnQgdGFnDQogICAgICAgICRzdHJpbmcgPSByZmMyNDQ1X2ZvbGQoJ0JFR0lOOicuJHRoaXMtPm5hbWUpIC4gUkZDMjQ0NV9DUkxGOw0KDQogICAgICAgIC8vIExpc3Qgb2YgcHJvcGVydGllcw0KICAgICAgICBpZighZW1wdHkoJHRoaXMtPnByb3BlcnRpZXMpKSB7DQogICAgICAgICAgICBmb3JlYWNoKCR0aGlzLT5wcm9wZXJ0aWVzIGFzICRuYW1lID0+ICRwcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkcHJvcGVydGllcyBhcyAkcHJvcGVydHkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHN0cmluZyAuPSAkcHJvcGVydHktPnNlcmlhbGl6ZSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIExpc3Qgb2YgY29tcG9uZW50cw0KICAgICAgICBpZighZW1wdHkoJHRoaXMtPmNvbXBvbmVudHMpKSB7DQogICAgICAgICAgICBmb3JlYWNoKCR0aGlzLT5jb21wb25lbnRzIGFzICRuYW1lID0+ICRjb21wb25lbnRzKSB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkY29tcG9uZW50cyBhcyAkY29tcG9uZW50KSB7DQogICAgICAgICAgICAgICAgICAgICRzdHJpbmcgLj0gJGNvbXBvbmVudC0+c2VyaWFsaXplKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8gRW5kIHRhZw0KICAgICAgICAkc3RyaW5nIC49IHJmYzI0NDVfZm9sZCgnRU5EOicuJHRoaXMtPm5hbWUpIC4gUkZDMjQ0NV9DUkxGOw0KDQogICAgICAgIHJldHVybiAkc3RyaW5nOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXIgZXh0ZW5kcyBpQ2FsZW5kYXJfY29tcG9uZW50IHsNCiAgICB2YXIgJG5hbWUgPSAnVkNBTEVOREFSJzsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3Byb3BlcnRpZXMgPSBhcnJheSgNCiAgICAgICAgICAgICdDQUxTQ0FMRScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdNRVRIT0QnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdQUk9ESUQnICAgICAgPT4gUkZDMjQ0NV9SRVFVSVJFRCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdWRVJTSU9OJyAgICAgPT4gUkZDMjQ0NV9SRVFVSVJFRCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTCANCiAgICAgICAgKTsNCg0KICAgICAgICAkdGhpcy0+dmFsaWRfY29tcG9uZW50cyA9IGFycmF5KA0KICAgICAgICAgICAgJ1ZFVkVOVCcNCiAgICAgICAgICAgIC8vIFRPRE86IGFkZCBzdXBwb3J0IGZvciB0aGUgb3RoZXIgY29tcG9uZW50IHR5cGVzDQogICAgICAgICAgICAvLywgJ1ZUT0RPJywgJ1ZKT1VSTkFMJywgJ1ZGUkVFQlVTWScsICdWVElNRVpPTkUnLCAnVkFMQVJNJw0KICAgICAgICApOw0KICAgICAgICBwYXJlbnQ6OmNvbnN0cnVjdCgpOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfZXZlbnQgZXh0ZW5kcyBpQ2FsZW5kYXJfY29tcG9uZW50IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICA9ICdWRVZFTlQnOw0KICAgIHZhciAkcHJvcGVydGllczsNCiAgICANCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+dmFsaWRfY29tcG9uZW50cyA9IGFycmF5KCdWQUxBUk0nKTsNCg0KICAgICAgICAkdGhpcy0+dmFsaWRfcHJvcGVydGllcyA9IGFycmF5KA0KICAgICAgICAgICAgJ0NMQVNTJyAgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0NSRUFURUQnICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0RFU0NSSVBUSU9OJyAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgLy8gU3RhbmRhcmQgYW1iaWd1b3VzIGhlcmU6IGluIDQuNi4xIGl0IHNheXMgdGhhdCBEVFNUQU1QIGluIG9wdGlvbmFsLA0KICAgICAgICAgICAgLy8gd2hpbGUgaW4gNC44LjcuMiBpdCBzYXlzIGl0J3MgUkVRVUlSRUQuIEdvIHdpdGggUkVRVUlSRUQuDQogICAgICAgICAgICAnRFRTVEFNUCcgICAgICAgID0+IFJGQzI0NDVfUkVRVUlSRUQgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAvLyBTdGFuZGFyZCBhbWJpZ3VvdXMgaGVyZTogaW4gNC42LjEgaXQgc2F5cyB0aGF0IERUU1RBUlQgaW4gb3B0aW9uYWwsDQogICAgICAgICAgICAvLyB3aGlsZSBpbiA0LjguMi40IGl0IHNheXMgaXQncyBSRVFVSVJFRC4gR28gd2l0aCBSRVFVSVJFRC4NCiAgICAgICAgICAgICdEVFNUQVJUJyAgICAgICAgPT4gUkZDMjQ0NV9SRVFVSVJFRCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdHRU8nICAgICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdMQVNULU1PRElGSUVEJyAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdMT0NBVElPTicgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdPUkdBTklaRVInICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdQUklPUklUWScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdTRVFVRU5DRScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdTVEFUVVMnICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdTVU1NQVJZJyAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdUUkFOU1AnICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIC8vIFN0YW5kYXJkIGFtYmlndW91cyBoZXJlOiBpbiA0LjYuMSBpdCBzYXlzIHRoYXQgVUlEIGluIG9wdGlvbmFsLA0KICAgICAgICAgICAgLy8gd2hpbGUgaW4gNC44LjQuNyBpdCBzYXlzIGl0J3MgUkVRVUlSRUQuIEdvIHdpdGggUkVRVUlSRUQuDQogICAgICAgICAgICAnVUlEJyAgICAgICAgICAgID0+IFJGQzI0NDVfUkVRVUlSRUQgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnVVJMJyAgICAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnUkVDVVJSRU5DRS1JRCcgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnRFRFTkQnICAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnRFVSQVRJT04nICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnQVRUQUNIJyAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnQVRURU5ERUUnICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnQ0FURUdPUklFUycgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnQ09NTUVOVCcgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnQ09OVEFDVCcgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnRVhEQVRFJyAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnRVhSVUxFJyAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnUkVRVUVTVC1TVEFUVVMnID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnUkVMQVRFRC1UTycgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnUkVTT1VSQ0VTJyAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnUkRBVEUnICAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICAnUlJVTEUnICAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FICAgID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCg0KICAgICAgICBwYXJlbnQ6OmNvbnN0cnVjdCgpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGludmFyaWFudF9ob2xkcygpIHsNCiAgICAgICAgLy8gRFRFTkQgYW5kIERVUkFUSU9OIG11c3Qgbm90IGFwcGVhciB0b2dldGhlcg0KICAgICAgICBpZihpc3NldCgkdGhpcy0+cHJvcGVydGllc1snRFRFTkQnXSkgJiYgaXNzZXQoJHRoaXMtPnByb3BlcnRpZXNbJ0RVUkFUSU9OJ10pKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgaWYoaXNzZXQoJHRoaXMtPnByb3BlcnRpZXNbJ0RURU5EJ10pICYmIGlzc2V0KCR0aGlzLT5wcm9wZXJ0aWVzWydEVFNUQVJUJ10pKSB7DQogICAgICAgICAgICAvLyBEVEVORCBtdXN0IGJlIGxhdGVyIHRoYW4gRFRTVEFSVA0KICAgICAgICAgICAgLy8gVGhlIHN0YW5kYXJkIGlzIG5vdCBjbGVhciBvbiBob3cgdG8gaGFuZGUgZGlmZmVyZW50IHZhbHVlIHR5cGVzIHRob3VnaA0KICAgICAgICAgICAgLy8gVE9ETzogaGFuZGxlIHRoaXMgY29ycmVjdGx5IGV2ZW4gaWYgdGhlIHZhbHVlIHR5cGVzIGFyZSBkaWZmZXJlbnQNCiAgICAgICAgICAgIGlmKCR0aGlzLT5wcm9wZXJ0aWVzWydEVEVORCddWzBdLT52YWx1ZSA8PSAkdGhpcy0+cHJvcGVydGllc1snRFRTVEFSVCddWzBdLT52YWx1ZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gRFRFTkQgYW5kIERUU1RBUlQgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlIHR5cGUNCiAgICAgICAgICAgIGlmKCR0aGlzLT5wcm9wZXJ0aWVzWydEVEVORCddWzBdLT52YWxfdHlwZSAhPSAkdGhpcy0+cHJvcGVydGllc1snRFRTVEFSVCddWzBdLT52YWxfdHlwZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfdG9kbyBleHRlbmRzIGlDYWxlbmRhcl9jb21wb25lbnQgew0KICAgIHZhciAkbmFtZSAgICAgICA9ICdWVE9ETyc7DQogICAgdmFyICRwcm9wZXJ0aWVzOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KDQogICAgICAgICR0aGlzLT5wcm9wZXJ0aWVzID0gYXJyYXkoDQogICAgICAgICAgICAnY2xhc3MnICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnY29tcGxldGVkJyAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnY3JlYXRlZCcgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnZGVzY3JpcHRpb24nID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnZHRzdGFtcCcgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnZHRzdGFydCcgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnZ2VvJyAgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnbGFzdC1tb2RpZmllZCcgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdsb2NhdGlvbicgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdvcmdhbml6ZXInICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdwZXJjZW50JyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdwcmlvcml0eScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdyZWN1cmlkJyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdzZXF1ZW5jZScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdzdGF0dXMnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdzdW1tYXJ5JyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICd1aWQnICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICd1cmwnICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdkdWUnICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdkdXJhdGlvbicgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdhdHRhY2gnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdhdHRlbmRlZScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdjYXRlZ29yaWVzJyAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdjb21tZW50JyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdjb250YWN0JyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdleGRhdGUnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdleHJ1bGUnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdyc3RhdHVzJyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdyZWxhdGVkJyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdyZXNvdXJjZXMnICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdyZGF0ZScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICdycnVsZScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCwNCiAgICAgICAgICAgICd4cHJvcCcgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KDQogICAgICAgIHBhcmVudDo6Y29uc3RydWN0KCk7DQogICAgICAgIC8vIFRPRE86DQogICAgICAgIC8vIGVpdGhlciAnZHVlJyBvciAnZHVyYXRpb24nIG1heSBhcHBlYXIgaW4gIGEgJ2V2ZW50cHJvcCcsIGJ1dCAnZHVlJw0KICAgICAgICAvLyBhbmQgJ2R1cmF0aW9uJyBNVVNUIE5PVCBvY2N1ciBpbiB0aGUgc2FtZSAnZXZlbnRwcm9wJw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX2pvdXJuYWwgZXh0ZW5kcyBpQ2FsZW5kYXJfY29tcG9uZW50IHsNCiAgICAvLyBUT0RPOiBpbXBsZW1lbnQNCn0NCg0KY2xhc3MgaUNhbGVuZGFyX2ZyZWVidXN5IGV4dGVuZHMgaUNhbGVuZGFyX2NvbXBvbmVudCB7DQogICAgLy8gVE9ETzogaW1wbGVtZW50DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9hbGFybSBleHRlbmRzIGlDYWxlbmRhcl9jb21wb25lbnQgew0KICAgIC8vIFRPRE86IGltcGxlbWVudA0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfdGltZXpvbmUgZXh0ZW5kcyBpQ2FsZW5kYXJfY29tcG9uZW50IHsNCiAgICB2YXIgJG5hbWUgICAgICAgPSAnVlRJTUVaT05FJzsNCiAgICB2YXIgJHByb3BlcnRpZXM7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQoNCiAgICAgICAgJHRoaXMtPnByb3BlcnRpZXMgPSBhcnJheSgNCiAgICAgICAgICAgICd0emlkJyAgICAgICAgPT4gUkZDMjQ0NV9SRVFVSVJFRCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdsYXN0LW1vZGlmaWVkJyAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ3R6dXJsJyAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgLy8gVE9ETzogdGhlIG5leHQgdHdvIGFyZSBjb21wb25lbnRzIG9mIHRoZWlyIG93biENCiAgICAgICAgICAgICdzdGFuZGFyZGMnICAgPT4gUkZDMjQ0NV9SRVFVSVJFRCwNCiAgICAgICAgICAgICdkYXlsaWdodGMnICAgPT4gUkZDMjQ0NV9SRVFVSVJFRCwNCiAgICAgICAgICAgICd4LXByb3AnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgICAgICANCiAgICAgICAgcGFyZW50Ojpjb25zdHJ1Y3QoKTsNCiAgICB9DQoNCn0NCg0KLy8gUkVNSU5ERVI6IERURU5EIG11c3QgYmUgbGF0ZXIgdGhhbiBEVFNUQVJUIGZvciBhbGwgY29tcG9uZW50cyB3aGljaCBzdXBwb3J0IGJvdGgNCi8vIFJFTUlOREVSOiBEVUUgbXVzdCBiZSBsYXRlciB0aGFuIERUU1RBUlQgZm9yIGFsbCBjb21wb25lbnRzIHdoaWNoIHN1cHBvcnQgYm90aA0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/lib/iCalendar_parameters.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gJElkOiBpQ2FsZW5kYXJfcGFyYW1ldGVycy5waHAsdiAxLjcgMjAwNS8wNy8yMSAyMzoxNzoyMSBkZWZhY2VyIEV4cCAkDQoNCmNsYXNzIGlDYWxlbmRhcl9wYXJhbWV0ZXIgew0KICAgIGZ1bmN0aW9uIG11bHRpcGxlX3ZhbHVlc19hbGxvd2VkKCRwYXJhbWV0ZXIpIHsNCiAgICAgICAgc3dpdGNoKCRwYXJhbWV0ZXIpIHsNCiAgICAgICAgICAgIGNhc2UgJ0RFTEVHQVRFRC1GUk9NJzoNCiAgICAgICAgICAgIGNhc2UgJ0RFTEVHQVRFRC1UTyc6DQogICAgICAgICAgICBjYXNlICdNRU1CRVInOg0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmdW5jdGlvbiBkZWZhdWx0X3ZhbHVlKCRwYXJhbWV0ZXIpIHsNCiAgICAgICAgc3dpdGNoKCRwYXJhbWV0ZXIpIHsNCiAgICAgICAgICAgIGNhc2UgJ0NVVFlQRSc6ICAgcmV0dXJuICdJTkRJVklEVUFMJzsNCiAgICAgICAgICAgIGNhc2UgJ0ZCVFlQRSc6ICAgcmV0dXJuICdCVVNZJzsNCiAgICAgICAgICAgIGNhc2UgJ1BBUlRTVEFUJzogcmV0dXJuICdORUVEUy1BQ1RJT04nOw0KICAgICAgICAgICAgY2FzZSAnUkVMQVRFRCc6ICByZXR1cm4gJ1NUQVJUJzsNCiAgICAgICAgICAgIGNhc2UgJ1JFTFRZUEUnOiAgcmV0dXJuICdQQVJFTlQnOw0KICAgICAgICAgICAgY2FzZSAnUk9MRSc6ICAgICByZXR1cm4gJ1JFUS1QQVJUSUNJUEFOVCc7DQogICAgICAgICAgICBjYXNlICdSU1ZQJzogICAgIHJldHVybiAnRkFMU0UnOw0KICAgICAgICAgICAgZGVmYXVsdDogICAgICAgICByZXR1cm4gTlVMTDsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3ZhbHVlKCYkcGFyZW50X3Byb3BlcnR5LCAkcGFyYW1ldGVyLCAkdmFsdWUpIHsNCiAgICAgICAgc3dpdGNoKCRwYXJhbWV0ZXIpIHsNCiAgICAgICAgICAgIC8vIFRoZXNlIG11c3QgYWxsIGJlIGEgVVJJDQogICAgICAgICAgICBjYXNlICdBTFRSRVAnOg0KICAgICAgICAgICAgY2FzZSAnRElSJzoNCiAgICAgICAgICAgICAgICByZXR1cm4gcmZjMjQ0NV9pc192YWxpZF92YWx1ZSgkdmFsdWUsIFJGQzI0NDVfVFlQRV9VUkkpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIC8vIFRoZXNlIG11c3QgYmUgQ0FMLUFERFJFU1MsIHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gVVJJDQogICAgICAgICAgICBjYXNlICdERUxFR0FURUQtRlJPTSc6DQogICAgICAgICAgICBjYXNlICdERUxFR0FURUQtVE8nOg0KICAgICAgICAgICAgY2FzZSAnTUVNQkVSJzoNCiAgICAgICAgICAgIGNhc2UgJ1NFTlQtQlknOg0KICAgICAgICAgICAgICAgIHJldHVybiByZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSwgUkZDMjQ0NV9UWVBFX0NBTF9BRERSRVNTKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGV4dHVhbCBwYXJhbWV0ZXJzLCBzbyB0aGUgTVVTVCBOT1QgY29udGFpbiBkb3VibGUgcXVvdGVzDQogICAgICAgICAgICBjYXNlICdDTic6DQogICAgICAgICAgICAgICAgcmV0dXJuIChzdHJwb3MoJHZhbHVlLCAnIicpID09PSBmYWxzZSk7DQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgLy8gVGhlc2UgaGF2ZSBlbnVtZXJhdGVkIGxlZ2FsIHZhbHVlcw0KICAgICAgICAgICAgY2FzZSAnQ1VUWVBFJzoNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuICgkdmFsdWUgPT0gJ0lORElWSURVQUwnIHx8ICR2YWx1ZSA9PSAnR1JPVVAnIHx8ICR2YWx1ZSA9PSAnUkVTT1VSQ0UnIHx8ICR2YWx1ZSA9PSAnUk9PTScgfHwgJHZhbHVlID09ICdVTktOT1dOJyB8fCByZmMyNDQ1X2lzX3huYW1lKCR2YWx1ZSkpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ0VOQ09ESU5HJzoNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuICgkdmFsdWUgPT0gJzhCSVQnIHx8ICR2YWx1ZSA9PSAnQkFTRTY0JyB8fCByZmMyNDQ1X2lzX3huYW1lKCR2YWx1ZSkpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ0ZCVFlQRSc6DQogICAgICAgICAgICAgICAgJHZhbHVlID0gc3RydG91cHBlcigkdmFsdWUpOw0KICAgICAgICAgICAgICAgIHJldHVybiAoJHZhbHVlID09ICdGUkVFJyB8fCAkdmFsdWUgPT0gJ0JVU1knIHx8ICR2YWx1ZSA9PSAnQlVTWS1VTkFWQUlMQUJMRScgfHwgJHZhbHVlID09ICdCVVNZLVRFTlRBVElWRScgfHwgcmZjMjQ0NV9pc194bmFtZSgkdmFsdWUpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBjYXNlICdGTVRUWVBFJzoNCiAgICAgICAgICAgICAgICAkZm10dHlwZXMgPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICdURVhUJyAgICAgICAgPT4gYXJyYXkoJ1BMQUlOJywgJ1JJQ0hURVhUJywgJ0VOUklDSEVEJywgJ1RBQi1TRVBBUkFURUQtVkFMVUVTJywgJ0hUTUwnLCAnU0dNTCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdWTkQuTEFURVgtWicsICdWTkQuRk1JLkZMRVhTVE9SJyksDQogICAgICAgICAgICAgICAgICAgICAgICAnTVVMVElQQVJUJyAgID0+IGFycmF5KCdNSVhFRCcsICdBTFRFUk5BVElWRScsICdESUdFU1QnLCAnUEFSQUxMRUwnLCAnQVBQTEVET1VCTEUnLCAnSEVBREVSLVNFVCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGT1JNLURBVEEnLCAnUkVMQVRFRCcsICdSRVBPUlQnLCAnVk9JQ0UtTUVTU0FHRScsICdTSUdORUQnLCAnRU5DUllQVEVEJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JZVEVSQU5HRVMnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdNRVNTQUdFJyAgICAgPT4gYXJyYXkoJ1JGQzgyMicsICdQQVJUSUFMJywgJ0VYVEVSTkFMLUJPRFknLCAnTkVXUycsICdIVFRQJyksDQogICAgICAgICAgICAgICAgICAgICAgICAnQVBQTElDQVRJT04nID0+IGFycmF5KCdPQ1RFVC1TVFJFQU0nLCAnUE9TVFNDUklQVCcsICdPREEnLCAnQVRPTUlDTUFJTCcsICdBTkRSRVctSU5TRVQnLCAnU0xBVEUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV0lUQScsICdERUMtRFgnLCAnRENBLVJGVCcsICdBQ1RJVkVNRVNTQUdFJywgJ1JURicsICdBUFBMRUZJTEUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTUFDLUJJTkhFWDQwJywgJ05FV1MtTUVTU0FHRS1JRCcsICdORVdTLVRSQU5TTUlTU0lPTicsICdXT1JEUEVSRkVDVDUuMScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQREYnLCAnWklQJywgJ01BQ1dSSVRFSUknLCAnTVNXT1JEJywgJ1JFTU9URS1QUklOVElORycsICdNQVRIRU1BVElDQScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDWUJFUkNBU0gnLCAnQ09NTU9OR1JPVU5EJywgJ0lHRVMnLCAnUklTQ09TJywgJ0VTSE9QJywgJ1g0MDAtQlAnLCAnU0dNTCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDQUxTLTE4NDAnLCAnUEdQLUVOQ1JZUFRFRCcsICdQR1AtU0lHTkFUVVJFJywgJ1BHUC1LRVlTJywgJ1ZORC5GUkFNRU1BS0VSJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZORC5NSUYnLCAnVk5ELk1TLUVYQ0VMJywgJ1ZORC5NUy1QT1dFUlBPSU5UJywgJ1ZORC5NUy1QUk9KRUNUJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZORC5NUy1XT1JLUycsICdWTkQuTVMtVE5FRicsICdWTkQuU1ZEJywgJ1ZORC5NVVNJQy1OSUZGJywgJ1ZORC5NUy1BUlRHQUxSWScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdWTkQuVFJVRURPQycsICdWTkQuS09BTicsICdWTkQuU1RSRUVULVNUUkVBTScsICdWTkQuRkRGJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NFVC1QQVlNRU5ULUlOSVRJQVRJT04nLCAnU0VULVBBWU1FTlQnLCAnU0VULVJFR0lTVFJBVElPTi1JTklUSUFUSU9OJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NFVC1SRUdJU1RSQVRJT04nLCAnVk5ELlNFRU1BSUwnLCAnVk5ELkJVU0lORVNTT0JKRUNUUycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdWTkQuTUVSSURJQU4tU0xJTkdTSE9UJywgJ1ZORC5YQVJBJywgJ1NHTUwtT1BFTi1DQVRBTE9HJywgJ1ZORC5SQVBJRCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdWTkQuRU5MSVZFTicsICdWTkQuSkFQQU5ORVQtUkVHSVNUUkFUSU9OLVdBS0VVUCcsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVk5ELkpBUEFOTkVULVZFUklGSUNBVElPTi1XQUtFVVAnLCAnVk5ELkpBUEFOTkVULVBBWU1FTlQtV0FLRVVQJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZORC5KQVBBTk5FVC1ESVJFQ1RPUlktU0VSVklDRScsICdWTkQuSU5URVJUUlVTVC5ESUdJQk9YJywgJ1ZORC5JTlRFUlRSVVNULk5OQ1AnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdJTUFHRScgICAgICAgPT4gYXJyYXkoJ0pQRUcnLCAnR0lGJywgJ0lFRicsICdHM0ZBWCcsICdUSUZGJywgJ0NHTScsICdOQVBMUFMnLCAnVk5ELkRXRycsICdWTkQuU1ZGJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZORC5EWEYnLCAnUE5HJywgJ1ZORC5GUFgnLCAnVk5ELk5FVC1GUFgnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdBVURJTycgICAgICAgPT4gYXJyYXkoJ0JBU0lDJywgJzMyS0FEUENNJywgJ1ZORC5RQ0VMUCcpLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ1ZJREVPJyAgICAgICA9PiBhcnJheSgnTVBFRycsICdRVUlDS1RJTUUnLCAnVk5ELlZJVk8nLCAnVk5ELk1PVE9ST0xBLlZJREVPJywgJ1ZORC5NT1RPUk9MQS5WSURFT1AnKQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgJHZhbHVlID0gc3RydG91cHBlcigkdmFsdWUpOw0KICAgICAgICAgICAgICAgIGlmKHJmYzI0NDVfaXNfeG5hbWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgQGxpc3QoJHR5cGUsICRzdWJ0eXBlKSA9IGV4cGxvZGUoJy8nLCAkdmFsdWUpOw0KICAgICAgICAgICAgICAgIGlmKGVtcHR5KCR0eXBlKSB8fCBlbXB0eSgkc3VidHlwZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZighaXNzZXQoJGZtdHR5cGVzWyR0eXBlXSkgfHwgIWluX2FycmF5KCRzdWJ0eXBlLCAkZm10dHlwZXNbJHR5cGVdKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ0xBTkdVQUdFJzoNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogICAgICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnLScsICR2YWx1ZSk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkcGFydHMgYXMgJHBhcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoZW1wdHkoJHBhcnQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYoc3Ryc3BuKCRwYXJ0LCAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5JykgIT0gc3RybGVuKCRwYXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ1BBUlRTVEFUJzoNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogICAgICAgICAgICAgICAgc3dpdGNoKCRwYXJlbnRfcHJvcGVydHktPnBhcmVudF9jb21wb25lbnQpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnVkVWRU5UJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoJHZhbHVlID09ICdORUVEUy1BQ1RJT04nIHx8ICR2YWx1ZSA9PSAnQUNDRVBURUQnIHx8ICR2YWx1ZSA9PSAnREVDTElORUQnIHx8ICR2YWx1ZSA9PSAnVEVOVEFUSVZFJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAkdmFsdWUgPT0gJ0RFTEVHQVRFRCcgfHwgcmZjMjQ0NV9pc194bmFtZSgkdmFsdWUpKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ZUT0RPJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoJHZhbHVlID09ICdORUVEUy1BQ1RJT04nIHx8ICR2YWx1ZSA9PSAnQUNDRVBURUQnIHx8ICR2YWx1ZSA9PSAnREVDTElORUQnIHx8ICR2YWx1ZSA9PSAnVEVOVEFUSVZFJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAkdmFsdWUgPT0gJ0RFTEVHQVRFRCcgfHwgJHZhbHVlID09ICdDT01QTEVURUQnIHx8ICR2YWx1ZSA9PSAnSU4tUFJPQ0VTUycgfHwgcmZjMjQ0NV9pc194bmFtZSgkdmFsdWUpKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ZKT1VSTkFMJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoJHZhbHVlID09ICdORUVEUy1BQ1RJT04nIHx8ICR2YWx1ZSA9PSAnQUNDRVBURUQnIHx8ICR2YWx1ZSA9PSAnREVDTElORUQnIHx8IHJmYzI0NDVfaXNfeG5hbWUoJHZhbHVlKSk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgY2FzZSAnUkFOR0UnOg0KICAgICAgICAgICAgICAgICR2YWx1ZSA9IHN0cnRvdXBwZXIoJHZhbHVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKCR2YWx1ZSA9PSAnVEhJU0FORFBSSU9SJyB8fCAkdmFsdWUgPT0gJ1RISVNBTkRGVVRVUkUnKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBjYXNlICdSRUxBVEVEJzoNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuICgkdmFsdWUgPT0gJ1NUQVJUJyB8fCAkdmFsdWUgPT0gJ0VORCcpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ1JFTFRZUEUnOg0KICAgICAgICAgICAgICAgICR2YWx1ZSA9IHN0cnRvdXBwZXIoJHZhbHVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKCR2YWx1ZSA9PSAnUEFSRU5UJyB8fCAkdmFsdWUgPT0gJ0NISUxEJyB8fCAkdmFsdWUgPT0gJ1NJQkxJTkcnIHx8IHJmYzI0NDVfaXNfeG5hbWUoJHZhbHVlKSk7DQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgY2FzZSAnUk9MRSc6DQogICAgICAgICAgICAgICAgJHZhbHVlID0gc3RydG91cHBlcigkdmFsdWUpOw0KICAgICAgICAgICAgICAgIHJldHVybiAoJHZhbHVlID09ICdDSEFJUicgfHwgJHZhbHVlID09ICdSRVEtUEFSVElDSVBBTlQnIHx8ICR2YWx1ZSA9PSAnT1BULVBBUlRJQ0lQQU5UJyB8fCAkdmFsdWUgPT0gJ05PTi1QQVJUSUNJUEFOVCcgfHwgcmZjMjQ0NV9pc194bmFtZSgkdmFsdWUpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBjYXNlICdSU1ZQJzoNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuICgkdmFsdWUgPT0gJ1RSVUUnIHx8ICR2YWx1ZSA9PSAnRkFMU0UnKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBjYXNlICdUWklEJzoNCiAgICAgICAgICAgICAgICBpZihlbXB0eSgkdmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIChzdHJjc3BuKCR2YWx1ZSwgJyI7OiwnKSA9PSBzdHJsZW4oJHZhbHVlKSk7DQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgY2FzZSAnVkFMVUUnOg0KICAgICAgICAgICAgICAgICR2YWx1ZSA9IHN0cnRvdXBwZXIoJHZhbHVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKCR2YWx1ZSA9PSAnQklOQVJZJyAgICB8fCAkdmFsdWUgPT0gJ0JPT0xFQU4nICAgIHx8ICR2YWx1ZSA9PSAnQ0FMLUFERFJFU1MnIHx8ICR2YWx1ZSA9PSAnREFURScgICAgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9PSAnREFURS1USU1FJyB8fCAkdmFsdWUgPT0gJ0RVUkFUSU9OJyAgIHx8ICR2YWx1ZSA9PSAnRkxPQVQnICAgICAgIHx8ICR2YWx1ZSA9PSAnSU5URUdFUicgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9PSAnUEVSSU9EJyAgICB8fCAkdmFsdWUgPT0gJ1JFQ1VSJyAgICAgIHx8ICR2YWx1ZSA9PSAnVEVYVCcgICAgICAgIHx8ICR2YWx1ZSA9PSAnVElNRScgICAgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9PSAnVVJJJyAgICAgICB8fCAkdmFsdWUgPT0gJ1VUQy1PRkZTRVQnIHx8IHJmYzI0NDVfaXNfeG5hbWUoJHZhbHVlKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGRvX3ZhbHVlX2Zvcm1hdHRpbmcoJHBhcmFtZXRlciwgJHZhbHVlKSB7DQogICAgICAgIHN3aXRjaCgkcGFyYW1ldGVyKSB7DQogICAgICAgICAgICAvLyBQYXJhbWV0ZXJzIG9mIHR5cGUgQ0FMLUFERFJFU1Mgb3IgVVJJIE1VU1QgYmUgZG91YmxlLXF1b3RlZA0KICAgICAgICAgICAgY2FzZSAnQUxUUkVQJzoNCiAgICAgICAgICAgIGNhc2UgJ0RJUic6DQogICAgICAgICAgICBjYXNlICdERUxFR0FURUQtRlJPTSc6DQogICAgICAgICAgICBjYXNlICdERUxFR0FURUQtVE8nOg0KICAgICAgICAgICAgY2FzZSAnTUVNQkVSJzoNCiAgICAgICAgICAgIGNhc2UgJ1NFTlQtQlknOg0KICAgICAgICAgICAgICAgIHJldHVybiAnIicuJHZhbHVlLiciJzsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAvLyBUZXh0dWFsIHBhcmFtZXRlciB0eXBlcyBtdXN0IGJlIGRvdWJsZSBxdW90ZWQgaWYgdGhleSBjb250YWluIENPTE9OLCBTRU1JQ09MT04NCiAgICAgICAgICAgIC8vIG9yIENPTU1BLiBRdW90aW5nIGFsd2F5cyBzb3VuZHMgZWFzaWVyIGFuZCBzdGFuZGFyZHMtY29uZm9ybWFudCB0aG91Z2guDQogICAgICAgICAgICBjYXNlICdDTic6DQogICAgICAgICAgICAgICAgcmV0dXJuICciJy4kdmFsdWUuJyInOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIC8vIFBhcmFtZXRlcnMgd2l0aCBlbnVtZXJhdGVkIGxlZ2FsIHZhbHVlcywganVzdCBtYWtlIHRoZW0gYWxsIGNhcHMNCiAgICAgICAgICAgIGNhc2UgJ0NVVFlQRSc6DQogICAgICAgICAgICBjYXNlICdFTkNPRElORyc6DQogICAgICAgICAgICBjYXNlICdGQlRZUEUnOg0KICAgICAgICAgICAgY2FzZSAnRk1UVFlQRSc6DQogICAgICAgICAgICBjYXNlICdMQU5HVUFHRSc6DQogICAgICAgICAgICBjYXNlICdQQVJUU1RBVCc6DQogICAgICAgICAgICBjYXNlICdSQU5HRSc6DQogICAgICAgICAgICBjYXNlICdSRUxBVEVEJzoNCiAgICAgICAgICAgIGNhc2UgJ1JFTFRZUEUnOg0KICAgICAgICAgICAgY2FzZSAnUk9MRSc6DQogICAgICAgICAgICBjYXNlICdSU1ZQJzoNCiAgICAgICAgICAgIGNhc2UgJ1ZBTFVFJzoNCiAgICAgICAgICAgICAgICByZXR1cm4gc3RydG91cHBlcigkdmFsdWUpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIC8vIFBhcmFtZXRlcnMgd2Ugc2hvdWxkbid0IGJlIG1lc3Npbmcgd2l0aA0KICAgICAgICAgICAgY2FzZSAnVFpJRCc6DQogICAgICAgICAgICAgICAgcmV0dXJuICR2YWx1ZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gdW5kb192YWx1ZV9mb3JtYXR0aW5nKCRwYXJhbWV0ZXIsICR2YWx1ZSkgew0KICAgIH0NCg0KfQ0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/lib/iCalendar_properties.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gJElkOiBpQ2FsZW5kYXJfcHJvcGVydGllcy5waHAsdiAxLjEzIDIwMDUvMDcvMjEgMjI6NDI6MTMgZGVmYWNlciBFeHAgJA0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KICAgIC8vIFByb3BlcnRpZXMgY2FuIGhhdmUgcGFyYW1ldGVycywgYnV0IGNhbm5vdCBoYXZlIG90aGVyIHByb3BlcnRpZXMgb3IgY29tcG9uZW50cw0KDQogICAgdmFyICRwYXJlbnRfY29tcG9uZW50ID0gTlVMTDsNCiAgICB2YXIgJHZhbHVlICAgICAgICAgICAgPSBOVUxMOw0KICAgIHZhciAkcGFyYW1ldGVycyAgICAgICA9IE5VTEw7DQogICAgdmFyICR2YWxpZF9wYXJhbWV0ZXJzID0gTlVMTDsNCg0KICAgIC8vIFRoZXNlIGFyZSBjb21tb24gZm9yIDk1JSBvZiBwcm9wZXJ0aWVzLCBzbyBkZWZpbmUgdGhlbSBoZXJlIGFuZCBvdmVycmlkZSBhcyBuZWNlc3NhcnkNCiAgICB2YXIgJHZhbF9tdWx0aSAgICAgICAgPSBmYWxzZTsNCiAgICB2YXIgJHZhbF9kZWZhdWx0ICAgICAgPSBOVUxMOw0KDQogICAgZnVuY3Rpb24gaUNhbGVuZGFyX3Byb3BlcnR5KCkgew0KICAgICAgICAkdGhpcy0+Y29uc3RydWN0KCk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+cGFyYW1ldGVycyA9IGFycmF5KCk7DQogICAgfQ0KDQogICAgLy8gSWYgc29tZSBwcm9wZXJ0eSBuZWVkcyBleHRyYSBjYXJlIHdpdGggaXRzIHBhcmFtZXRlcnMsIG92ZXJyaWRlIHRoaXMNCiAgICAvLyBJTVBPUlRBTlQ6IHRoZSBwYXJhbWV0ZXIgbmFtZSBNVVNUIEJFIENBUElUQUxJWkVEIQ0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3BhcmFtZXRlcigkcGFyYW1ldGVyLCAkdmFsdWUpIHsNCg0KICAgICAgICBpZihpc19hcnJheSgkdmFsdWUpKSB7DQogICAgICAgICAgICBpZighaUNhbGVuZGFyX3BhcmFtZXRlcjo6bXVsdGlwbGVfdmFsdWVzX2FsbG93ZWQoJHBhcmFtZXRlcikpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmb3JlYWNoKCR2YWx1ZSBhcyAkaXRlbSkgew0KICAgICAgICAgICAgICAgIGlmKCFpQ2FsZW5kYXJfcGFyYW1ldGVyOjppc192YWxpZF92YWx1ZSgkdGhpcywgJHBhcmFtZXRlciwgJGl0ZW0pKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBpQ2FsZW5kYXJfcGFyYW1ldGVyOjppc192YWxpZF92YWx1ZSgkdGhpcywgJHBhcmFtZXRlciwgJHZhbHVlKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpbnZhcmlhbnRfaG9sZHMoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCg0KICAgIC8vIElmIHNvbWUgcHJvcGVydHkgaXMgdmVyeSBwaWNreSBhYm91dCBpdHMgdmFsdWVzLCBpdCBzaG91bGQgZG8gdGhlIHdvcmsgaXRzZWxmDQogICAgLy8gT25seSBkYXRhIHR5cGUgdmFsaWRhdGlvbiBpcyBkb25lIGhlcmUNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoaXNfYXJyYXkoJHZhbHVlKSkgew0KICAgICAgICAgICAgaWYoISR0aGlzLT52YWxfbXVsdGkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNoKCR2YWx1ZSBhcyAkb25ldmFsKSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCFyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCRvbmV2YWwsICR0aGlzLT52YWxfdHlwZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSwgJHRoaXMtPnZhbF90eXBlKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBkZWZhdWx0X3ZhbHVlKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPnZhbF9kZWZhdWx0Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHNldF9wYXJlbnRfY29tcG9uZW50KCRjb21wb25lbnRuYW1lKSB7DQogICAgICAgIGlmKGNsYXNzX2V4aXN0cygnaUNhbGVuZGFyXycuc3RydG9sb3dlcihzdWJzdHIoJGNvbXBvbmVudG5hbWUsIDEpKSkpIHsNCiAgICAgICAgICAgICR0aGlzLT5wYXJlbnRfY29tcG9uZW50ID0gc3RydG91cHBlcigkY29tcG9uZW50bmFtZSk7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzZXRfdmFsdWUoJHZhbHVlKSB7DQogICAgICAgIGlmKCR0aGlzLT5pc192YWxpZF92YWx1ZSgkdmFsdWUpKSB7DQogICAgICAgICAgICAvLyBUaGlzIHRyYW5zcGFyZW50bHkgZm9ybWF0cyBhbnkgdmFsdWUgdHlwZSBhY2NvcmRpbmcgdG8gdGhlIGlDYWxlbmRhciBzcGVjcw0KICAgICAgICAgICAgaWYoaXNfYXJyYXkoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIGZvcmVhY2goJHZhbHVlIGFzICRrZXkgPT4gJGl0ZW0pIHsNCiAgICAgICAgICAgICAgICAgICAgJHZhbHVlWyRrZXldID0gcmZjMjQ0NV9kb192YWx1ZV9mb3JtYXR0aW5nKCRpdGVtLCAkdGhpcy0+dmFsX3R5cGUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkdGhpcy0+dmFsdWUgPSBpbXBsb2RlKCcsJywgJHZhbHVlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICR0aGlzLT52YWx1ZSA9IHJmYzI0NDVfZG9fdmFsdWVfZm9ybWF0dGluZygkdmFsdWUsICR0aGlzLT52YWxfdHlwZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBnZXRfdmFsdWUoKSB7DQogICAgICAgIC8vIEZpcnN0IG9mIGFsbCwgYXNzdW1lIHRoYXQgd2UgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMNCiAgICAgICAgJHZhbGFycmF5ID0gZXhwbG9kZSgnXFwsJywgJHRoaXMtPnZhbHVlKTsNCg0KICAgICAgICAvLyBVbmRvIHRyYW5zcGFyZW50IGZvcm1hdHRpbmcNCiAgICAgICAgJHJlcGxhY2VfZnVuY3Rpb24gPSBjcmVhdGVfZnVuY3Rpb24oJyRhJywgJ3JldHVybiByZmMyNDQ1X3VuZG9fdmFsdWVfZm9ybWF0dGluZygkYSwgJy4kdGhpcy0+dmFsX3R5cGUuJyk7Jyk7DQogICAgICAgICR2YWxhcnJheSA9IGFycmF5X21hcCgkcmVwbGFjZV9mdW5jdGlvbiwgJHZhbGFycmF5KTsNCg0KICAgICAgICAvLyBOb3csIGlmIHRoaXMgcHJvcGVydHkgY2Fubm90IGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBkb24ndCByZXR1cm4gYXMgYW4gYXJyYXkNCiAgICAgICAgaWYoISR0aGlzLT52YWxfbXVsdGkpIHsNCiAgICAgICAgICAgIHJldHVybiAkdmFsYXJyYXlbMF07DQogICAgICAgIH0NCg0KICAgICAgICAvLyBPdGhlcndpc2UgcmV0dXJuIGFuIGFycmF5IGV2ZW4gaWYgaXQgaGFzIG9uZSBlbGVtZW50LCBmb3IgdW5pZm9ybWl0eQ0KICAgICAgICByZXR1cm4gJHZhbGFycmF5Ow0KDQogICAgfQ0KDQogICAgZnVuY3Rpb24gc2V0X3BhcmFtZXRlcigkbmFtZSwgJHZhbHVlKSB7DQoNCiAgICAgICAgLy8gVXBwZXJjYXNlDQogICAgICAgICRuYW1lID0gc3RydG91cHBlcigkbmFtZSk7DQoNCiAgICAgICAgLy8gQXJlIHdlIHRyeWluZyB0byBhZGQgYSB2YWxpZCBwYXJhbWV0ZXI/DQogICAgICAgICR4bmFtZSA9IGZhbHNlOw0KICAgICAgICBpZighaXNzZXQoJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnNbJG5hbWVdKSkgew0KICAgICAgICAgICAgLy8gSWYgbm90LCBpcyBpdCBhbiB4LW5hbWUgYXMgcGVyIFJGQyAyNDQ1Pw0KICAgICAgICAgICAgaWYoIXJmYzI0NDVfaXNfeG5hbWUoJG5hbWUpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTm8gbW9yZSBjaGVja3MgLS0gYWxsIGNvbXBvbmVudHMgYXJlIHN1cHBvc2VkIHRvIGFsbG93IHgtbmFtZSBwYXJhbWV0ZXJzDQogICAgICAgICAgICAkeG5hbWUgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoISR0aGlzLT5pc192YWxpZF9wYXJhbWV0ZXIoJG5hbWUsICR2YWx1ZSkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmKGlzX2FycmF5KCR2YWx1ZSkpIHsNCiAgICAgICAgICAgIGZvcmVhY2goJHZhbHVlIGFzICRrZXkgPT4gJGVsZW1lbnQpIHsNCiAgICAgICAgICAgICAgICAkdmFsdWVbJGtleV0gPSBpQ2FsZW5kYXJfcGFyYW1ldGVyOjpkb192YWx1ZV9mb3JtYXR0aW5nKCRuYW1lLCAkZWxlbWVudCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAkdmFsdWUgPSBpQ2FsZW5kYXJfcGFyYW1ldGVyOjpkb192YWx1ZV9mb3JtYXR0aW5nKCRuYW1lLCAkdmFsdWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcnNbJG5hbWVdID0gJHZhbHVlOw0KDQogICAgICAgIC8vIFNwZWNpYWwgY2FzZTogaWYgd2UganVzdCBjaGFuZ2VkIHRoZSBWQUxVRSBwYXJhbWV0ZXIsIHJlZmxlY3QgdGhpcw0KICAgICAgICAvLyBpbiB0aGUgb2JqZWN0J3Mgc3RhdHVzIHNvIHRoYXQgaXQgb25seSBhY2NlcHRzIGNvcnJlY3QgdHlwZSB2YWx1ZXMNCiAgICAgICAgaWYoJG5hbWUgPT0gJ1ZBTFVFJykgew0KICAgICAgICAgICAgLy8gVE9ETzogd2hhdCBpZiB0aGlzIGludmFsaWRhdGVzIGFuIGFscmVhZHktc2V0IHZhbHVlPw0KICAgICAgICAgICAgJHRoaXMtPnZhbF90eXBlID0gY29uc3RhbnQoJ1JGQzI0NDVfVFlQRV8nLnN0cl9yZXBsYWNlKCctJywgJ18nLCAkdmFsdWUpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KDQogICAgfQ0KDQogICAgZnVuY3Rpb24gZ2V0X3BhcmFtZXRlcigkbmFtZSkgew0KDQogICAgICAgIC8vIFVwcGVyY2FzZQ0KICAgICAgICAkbmFtZSA9IHN0cnRvdXBwZXIoJG5hbWUpOw0KDQogICAgICAgIGlmKGlzc2V0KCR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXSkpIHsNCiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgZG91YmxlIHF1b3RlcyBpbiB0aGUgdmFsdWUsIGludmlzaWJseSBzdHJpcCB0aGVtDQogICAgICAgICAgICBpZihpc19hcnJheSgkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0pKSB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0gYXMgJGtleSA9PiAkdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoc3Vic3RyKCR2YWx1ZSwgMCwgMSkgPT0gJyInKSB7DQogICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXVska2V5XSA9IHN1YnN0cigkdmFsdWUsIDEsIHN0cmxlbigkdmFsdWUpIC0gMik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYoc3Vic3RyKCR0aGlzLT5wYXJhbWV0ZXJzWyRuYW1lXSwgMCwgMSkgPT0gJyInKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJzdHIoJHRoaXMtPnBhcmFtZXRlcnNbJG5hbWVdLCAxLCBzdHJsZW4oJHRoaXMtPnBhcmFtZXRlcnNbJG5hbWVdKSAtIDIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBOVUxMOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZSgpIHsNCiAgICAgICAgJHN0cmluZyA9ICR0aGlzLT5uYW1lOw0KDQogICAgICAgIGlmKCFlbXB0eSgkdGhpcy0+cGFyYW1ldGVycykpIHsNCiAgICAgICAgICAgIGZvcmVhY2goJHRoaXMtPnBhcmFtZXRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7DQogICAgICAgICAgICAgICAgJHN0cmluZyAuPSAnOycuJG5hbWUuJz0nOw0KICAgICAgICAgICAgICAgIGlmKGlzX2FycmF5KCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHN0cmluZyAuPSBpbXBsb2RlKCcsJywgJHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRzdHJpbmcgLj0gJHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICRzdHJpbmcgLj0gJzonLiR0aGlzLT52YWx1ZTsNCg0KICAgICAgICByZXR1cm4gcmZjMjQ0NV9mb2xkKCRzdHJpbmcpIC4gUkZDMjQ0NV9DUkxGOw0KICAgIH0NCn0NCg0KLy8gNC43IENhbGVuZGFyIFByb3BlcnRpZXMNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9jYWxzY2FsZSBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0NBTFNDQUxFJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgLy8gVGhpcyBpcyBjYXNlLXNlbnNpdGl2ZQ0KICAgICAgICByZXR1cm4gKCR2YWx1ZSA9PT0gJ0dSRUdPUklBTicpOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X21ldGhvZCBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ01FVEhPRCc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9URVhUOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWRfdmFsdWUoJHZhbHVlKSB7DQogICAgICAgIC8vIFRoaXMgaXMgY2FzZS1zZW5zaXRpdmUNCiAgICAgICAgLy8gTWV0aG9kcyBmcm9tIFJGQyAyNDQ2DQogICAgICAgICRtZXRob2RzID09IGFycmF5KCdQVUJMSVNIJywgJ1JFUVVFU1QnLCAnUkVQTFknLCAnQUREJywgJ0NBTkNFTCcsICdSRUZSRVNIJywgJ0NPVU5URVInLCAnREVDTElORUNPVU5URVInKTsNCiAgICAgICAgcmV0dXJuIGluX2FycmF5KCR2YWx1ZSwgJG1ldGhvZHMpOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X3Byb2RpZCBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1BST0RJRCc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9URVhUOw0KICAgIHZhciAkdmFsX2RlZmF1bHQgPSBOVUxMOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsX2RlZmF1bHQgPSAnLS8vSm9obiBQYXBhaW9hbm5vdS9OT05TR01MIEJlbm51ICcuX0JFTk5VX1ZFUlNJT04uJy8vRU4nOw0KDQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV92ZXJzaW9uIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnVkVSU0lPTic7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9URVhUOw0KICAgIHZhciAkdmFsX2RlZmF1bHQgPSAnMi4wJzsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSkgew0KICAgICAgICByZXR1cm4oJHZhbHVlID09PSAnMi4wJyB8fCAkdmFsdWUgPT09IDIuMCk7DQogICAgfQ0KDQp9DQoNCi8vIDQuOC4xIERlc2NyaXB0aXZlIENvbXBvbmVudCBQcm9wZXJ0aWVzDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfYXR0YWNoIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnQVRUQUNIJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1VSSTsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdGTVRUWVBFJyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdFTkNPRElORycgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdWQUxVRScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGludmFyaWFudF9ob2xkcygpIHsNCiAgICAgICAgaWYoaXNzZXQoJHRoaXMtPnBhcmFtZXRlcnNbJ0VOQ09ESU5HJ10pICYmICFpc3NldCgkdGhpcy0+cGFyYW1ldGVyc1snVkFMVUUnXSkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBpZihpc3NldCgkdGhpcy0+cGFyYW1ldGVyc1snVkFMVUUnXSkgJiYgIWlzc2V0KCR0aGlzLT5wYXJhbWV0ZXJzWydFTkNPRElORyddKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWRfcGFyYW1ldGVyKCRwYXJhbWV0ZXIsICR2YWx1ZSkgew0KDQogICAgICAgICRwYXJhbWV0ZXIgPSBzdHJ0b3VwcGVyKCRwYXJhbWV0ZXIpOw0KDQogICAgICAgIGlmKCFwYXJlbnQ6OmlzX3ZhbGlkX3BhcmFtZXRlcigkcGFyYW1ldGVyLCAkdmFsdWUpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBpZigkcGFyYW1ldGVyID09PSAnRU5DT0RJTkcnICYmIHN0cnRvdXBwZXIoJHZhbHVlKSAhPSAnQkFTRTY0Jykgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoJHBhcmFtZXRlciA9PT0gJ1ZBTFVFJyAmJiBzdHJ0b3VwcGVyKCR2YWx1ZSkgIT0gJ0JJTkFSWScpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X2NhdGVnb3JpZXMgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdDQVRFR09SSUVTJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQogICAgdmFyICR2YWxfbXVsdGkgICA9IHRydWU7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnTEFOR1VBR0UnICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9jbGFzcyBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0NMQVNTJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQogICAgdmFyICR2YWxfZGVmYXVsdCA9ICdQVUJMSUMnOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWRfdmFsdWUoJHZhbHVlKSB7DQogICAgICAgIC8vIElmIHRoaXMgaXMgbm90IGFuIHhuYW1lLCBpdCBpcyBjYXNlLXNlbnNpdGl2ZQ0KICAgICAgICByZXR1cm4gKCR2YWx1ZSA9PT0gJ1BVQkxJQycgfHwgJHZhbHVlID09PSAnUFJJVkFURScgfHwgJHZhbHVlID09PSAnQ09ORklERU5USUFMJyB8fCByZmMyNDQ1X2lzX3huYW1lKHN0cnRvdXBwZXIoJHZhbHVlKSkpOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X2NvbW1lbnQgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdDT01NRU5UJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnQUxUUkVQJyAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnTEFOR1VBR0UnICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9kZXNjcmlwdGlvbiBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0RFU0NSSVBUSU9OJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnQUxUUkVQJyAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnTEFOR1VBR0UnICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9nZW8gZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdHRU8nOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfVEVYVDsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdBTFRSRVAnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdMQU5HVUFHRScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSkgew0KICAgICAgICAvLyBUaGlzIE1VU1QgYmUgdHdvIGZsb2F0cyBzZXBhcmF0ZWQgYnkgYSBzZW1pY29sb24NCiAgICAgICAgaWYoIWlzX3N0cmluZygkdmFsdWUpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICAkZmxvYXRzID0gZXhwbG9kZSgnOycsICR2YWx1ZSk7DQogICAgICAgIGlmKGNvdW50KCRmbG9hdHMpICE9IDIpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiByZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCRmbG9hdHNbMF0sIFJGQzI0NDVfVFlQRV9GTE9BVCkgJiYgcmZjMjQ0NV9pc192YWxpZF92YWx1ZSgkZmxvYXRzWzFdLCBSRkMyNDQ1X1RZUEVfRkxPQVQpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHNldF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgLy8gTXVzdCBvdmVycmlkZSB0aGlzLCBvdGhlcndpc2UgdGhlIHNlbWljb2xvbiBzZXBhcmF0aW5nDQogICAgICAgIC8vIHRoZSB0d28gZmxvYXRzIHdvdWxkIGdldCBhdXRvLXF1b3RlZCwgd2hpY2ggaXMgaWxsZWdhbA0KICAgICAgICBpZigkdGhpcy0+aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgJHRoaXMtPnZhbHVlID0gJHZhbHVlOw0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KDQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9sb2NhdGlvbiBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0xPQ0FUSU9OJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnQUxUUkVQJyAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnTEFOR1VBR0UnICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9wZXJjZW50X2NvbXBsZXRlIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnUEVSQ0VOVC1DT01QTEVURSc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9JTlRFR0VSOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWRfdmFsdWUoJHZhbHVlKSB7DQogICAgICAgIC8vIE9ubHkgaW50ZWdlcnMgYmV0d2VlbiAwIGFuZCAxMDAgaW5jbHVzaXZlIGFsbG93ZWQNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgICR2YWx1ZSA9IGludHZhbCgkdmFsdWUpOw0KICAgICAgICByZXR1cm4gKCR2YWx1ZSA+PSAwICYmICR2YWx1ZSA8PSAxMDApOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfcHJpb3JpdHkgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdQUklPUklUWSc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9JTlRFR0VSOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWRfdmFsdWUoJHZhbHVlKSB7DQogICAgICAgIC8vIE9ubHkgaW50ZWdlcnMgYmV0d2VlbiAwIGFuZCA5IGluY2x1c2l2ZSBhbGxvd2VkICAgICAgICANCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgJHZhbHVlID0gaW50dmFsKCR2YWx1ZSk7DQogICAgICAgIHJldHVybiAoJHZhbHVlID49IDAgJiYgJHZhbHVlIDw9IDkpOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X3Jlc291cmNlcyBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1JFU09VUkNFUyc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9URVhUOw0KICAgIHZhciAkdmFsX211bHRpICAgPSB0cnVlOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgJ0FMVFJFUCcgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0xBTkdVQUdFJyAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfc3RhdHVzIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnU1RBVFVTJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgLy8gVGhpcyBpcyBjYXNlLXNlbnNpdGl2ZQ0KICAgICAgICBzd2l0Y2ggKCR0aGlzLT5wYXJlbnRfY29tcG9uZW50KSB7DQogICAgICAgICAgICBjYXNlICdWRVZFTlQnOg0KICAgICAgICAgICAgICAgICRhbGxvd2VkID0gYXJyYXkoJ1RFTlRBVElWRScsICdDT05GSVJNRUQnLCAnQ0FOQ0VMTEVEJyk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ1ZUT0RPJzoNCiAgICAgICAgICAgICAgICAkYWxsb3dlZCA9IGFycmF5KCdORUVEUy1BQ1RJT04nLCAnQ09NUExFVEVEJywgJ0lOLVBST0NFU1MnLCAnQ0FOQ0VMTEVEJyk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ1ZKT1VSTkFMJzoNCiAgICAgICAgICAgICAgICAkYWxsb3dlZCA9IGFycmF5KCdEUkFGVCcsICdGSU5BTCcsICdDQU5DRUxMRUQnKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBpbl9hcnJheSgkdmFsdWUsICRhbGxvd2VkKTsNCg0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfc3VtbWFyeSBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1NVTU1BUlknOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfVEVYVDsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdBTFRSRVAnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdMQU5HVUFHRScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCn0NCg0KLy8gNC44LjIgRGF0ZSBhbmQgVGltZSBDb21wb25lbnQgUHJvcGVydGllcw0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfY29tcGxldGVkIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnQ09NUExFVEVEJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0RBVEVfVElNRTsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSkgew0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF92YWx1ZSgkdmFsdWUpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgLy8gVGltZSBNVVNUIGJlIGluIFVUQyBmb3JtYXQNCiAgICAgICAgcmV0dXJuKHN1YnN0cigkdmFsdWUsIC0xKSA9PSAnWicpOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X2R0ZW5kIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnRFRFTkQnOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfREFURV9USU1FOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgJ1ZBTFVFJyAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ1RaSUQnICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaXNfdmFsaWRfdmFsdWUoJHZhbHVlKSB7DQogICAgICAgIGlmKCFwYXJlbnQ6OmlzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIElmIHByZXNlbnQgaW4gYSBGUkVFQlVTWSBjb21wb25lbnQsIG11c3QgYmUgaW4gVVRDIGZvcm1hdA0KICAgICAgICBpZigkdGhpcy0+cGFyZW50X2NvbXBvbmVudCA9PSAnVkZSRUVCVVNZJyAmJiBzdWJzdHIoJHZhbHVlLCAtMSkgIT0gJ1onKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCg0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3BhcmFtZXRlcigkcGFyYW1ldGVyLCAkdmFsdWUpIHsNCg0KICAgICAgICAkcGFyYW1ldGVyID0gc3RydG91cHBlcigkcGFyYW1ldGVyKTsNCg0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF9wYXJhbWV0ZXIoJHBhcmFtZXRlciwgJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlmKCRwYXJhbWV0ZXIgPT0gJ1ZBTFVFJyAmJiAhKCR2YWx1ZSA9PSAnREFURScgfHwgJHZhbHVlID09ICdEQVRFLVRJTUUnKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfZHVlIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnRFVFJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0RBVEVfVElNRTsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdWQUxVRScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdUWklEJyAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSkgew0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF92YWx1ZSgkdmFsdWUpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBJZiBwcmVzZW50IGluIGEgRlJFRUJVU1kgY29tcG9uZW50LCBtdXN0IGJlIGluIFVUQyBmb3JtYXQNCiAgICAgICAgaWYoJHRoaXMtPnBhcmVudF9jb21wb25lbnQgPT0gJ1ZGUkVFQlVTWScgJiYgc3Vic3RyKCR2YWx1ZSwgLTEpICE9ICdaJykgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQoNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF9wYXJhbWV0ZXIoJHBhcmFtZXRlciwgJHZhbHVlKSB7DQoNCiAgICAgICAgJHBhcmFtZXRlciA9IHN0cnRvdXBwZXIoJHBhcmFtZXRlcik7DQoNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfcGFyYW1ldGVyKCRwYXJhbWV0ZXIsICR2YWx1ZSkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBpZigkcGFyYW1ldGVyID09ICdWQUxVRScgJiYgISgkdmFsdWUgPT0gJ0RBVEUnIHx8ICR2YWx1ZSA9PSAnREFURS1USU1FJykpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X2R0c3RhcnQgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdEVFNUQVJUJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0RBVEVfVElNRTsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdWQUxVRScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdUWklEJyAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIC8vIFRPRE86IHVuaW1wbGVtZW50ZWQgc3R1ZmYgd2hlbiBwYXJlbnQgaXMgYSBWVElNRVpPTkUgY29tcG9uZW50DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gSWYgcHJlc2VudCBpbiBhIEZSRUVCVVNZIGNvbXBvbmVudCwgbXVzdCBiZSBpbiBVVEMgZm9ybWF0DQogICAgICAgIGlmKCR0aGlzLT5wYXJlbnRfY29tcG9uZW50ID09ICdWRlJFRUJVU1knICYmIHN1YnN0cigkdmFsdWUsIC0xKSAhPSAnWicpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3BhcmFtZXRlcigkcGFyYW1ldGVyLCAkdmFsdWUpIHsNCg0KICAgICAgICAkcGFyYW1ldGVyID0gc3RydG91cHBlcigkcGFyYW1ldGVyKTsNCg0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF9wYXJhbWV0ZXIoJHBhcmFtZXRlciwgJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlmKCRwYXJhbWV0ZXIgPT0gJ1ZBTFVFJyAmJiAhKCR2YWx1ZSA9PSAnREFURScgfHwgJHZhbHVlID09ICdEQVRFLVRJTUUnKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfZHVyYXRpb24gZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdEVVJBVElPTic7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9EVVJBVElPTjsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSkgew0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF92YWx1ZSgkdmFsdWUpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBWYWx1ZSBtdXN0IGJlIHBvc2l0aXZlDQogICAgICAgIHJldHVybiAoJHZhbHVlezB9ICE9ICctJyk7DQogICAgfQ0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfZnJlZWJ1c3kgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdGUkVFQlVTWSc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9QRVJJT0Q7DQogICAgdmFyICR2YWxfbXVsdGkgICA9IHRydWU7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnRkJUWVBFJyAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgJHBvcyA9IHN0cnBvcygkdmFsdWUsICcvJyk7IC8vIFdlIGtub3cgdGhlcmUncyBvbmx5IG9uZSAvIGluIHRoZXJlDQogICAgICAgIGlmKCR2YWx1ZXskcG9zIC0gMX0gIT0gJ1onKSB7DQogICAgICAgICAgICAvLyBTdGFydCB0aW1lIE1VU1QgYmUgaW4gVVRDDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgaWYoJHZhbHVleyRwb3MgKyAxfSAhPSAnUCcgJiYgJHN1YnN0cigkdmFsdWUsIC0xKSAhPSAnWicpIHsNCiAgICAgICAgICAgIC8vIElmIHRoZSBzZWNvbmQgcGFydCBpcyBub3QgYSBwZXJpb2QsIGl0IE1VU1QgYmUgaW4gVVRDDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQoNCiAgICAvLyBUT0RPOiB0aGVzZSBwcm9wZXJ0aWVzIFNIT1VMRCBiZSBzaG9ydGVkIGluIGFzY2VuZGluZyBvcmRlciAoYnkgc3RhcnQgdGltZSBhbmQgZW5kIHRpbWUgYXMgdGllYnJlYWspDQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV90cmFuc3AgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdUUkFOU1AnOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfVEVYVDsNCiAgICB2YXIgJHZhbF9kZWZhdWx0ID0gJ09QQVFVRSc7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgcmV0dXJuICgkdmFsdWUgPT09ICdUUkFOU1BBUkVOVCcgfHwgJHZhbHVlID09PSAnT1BBUVVFJyk7DQogICAgfQ0KfQ0KDQovLyBUT0RPOiA0LjguMyB0aW1lem9uZSBjb21wb25lbnQgcHJvcGVydGllcw0KDQoNCi8vIDQuOC40IFJlbGF0aW9uc2hpcCBDb21wb25lbnQgUHJvcGVydGllcw0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9hdHRlbmRlZSBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0FUVEVOREVFJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0NBTF9BRERSRVNTOw0KDQogICAgLy8gVE9ETzogTVVTVCBOT1QgYmUgc3BlY2lmaWVkIHdoZW4gdGhlIGNhbGVuZGFyIG9iamVjdCBoYXMgTUVUSE9EPVBVQkxJU0gNCiAgICAvLyBUT0RPOiBzdGFuZGFyZCBoYXMgbG90cyBvZiBkZXRhaWwgaGVyZSwgbWFrZSB0cmlwbGUgc3VyZSB0aGF0IHdlIGV2ZW50dWFsbHkgY29uZm9ybQ0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgJ0xBTkdVQUdFJyAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0NOJyAgICAgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ1JPTEUnICAgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ1BBUlRTVEFUJyAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ1JTVlAnICAgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0NVVFlQRScgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ01FTUJFUicgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0RFTEVHQVRFRC1UTycgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0RFTEVHQVRFRC1GUk9NJyA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ1NFTlQtQlknICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgJ0RJUicgICAgICAgICAgICA9PiBSRkMyNDQ1X09QVElPTkFMIHwgUkZDMjQ0NV9PTkNFLA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSAgICA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gc2V0X3BhcmVudF9jb21wb25lbnQoJGNvbXBvbmVudG5hbWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6c2V0X3BhcmVudF9jb21wb25lbnQoJGNvbXBvbmVudG5hbWUpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBpZigkdGhpcy0+cGFyZW50X2NvbXBvbmVudCA9PSAnVkZSRUVCVVNZJyB8fCAkdGhpcy0+cGFyZW50X2NvbXBvbmVudCA9PSAnVkFMQVJNJykgew0KICAgICAgICAgICAgLy8gTW9zdCBwYXJhbWV0ZXJzIGJlY29tZSBpbnZhbGlkIGluIHRoaXMgY2FzZSwgdGhlIGZ1bGwgYWxsb3dlZCBzZXQgaXMgbm93Og0KICAgICAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICAgICAnTEFOR1VBR0UnICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSAgICA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICAgICApOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfY29udGFjdCBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0NPTlRBQ1QnOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfVEVYVDsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdBTFRSRVAnICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdMQU5HVUFHRScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCn0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X29yZ2FuaXplciBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ09SR0FOSVpFUic7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9DQUxfQUREUkVTUzsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdDTicgICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdESVInICAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdTRU5ULUJZJyAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdMQU5HVUFHRScgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIC8vIFRPRE86DQovKiAgICANCiAgIENvbmZvcm1hbmNlOiBUaGlzIHByb3BlcnR5IE1VU1QgYmUgc3BlY2lmaWVkIGluIGFuIGlDYWxlbmRhciBvYmplY3QNCiAgIHRoYXQgc3BlY2lmaWVzIGEgZ3JvdXAgc2NoZWR1bGVkIGNhbGVuZGFyIGVudGl0eS4gVGhpcyBwcm9wZXJ0eSBNVVNUDQogICBiZSBzcGVjaWZpZWQgaW4gYW4gaUNhbGVuZGFyIG9iamVjdCB0aGF0IHNwZWNpZmllcyB0aGUgcHVibGljYXRpb24gb2YNCiAgIGEgY2FsZW5kYXIgdXNlcidzIGJ1c3kgdGltZS4gVGhpcyBwcm9wZXJ0eSBNVVNUIE5PVCBiZSBzcGVjaWZpZWQgaW4NCiAgIGFuIGlDYWxlbmRhciBvYmplY3QgdGhhdCBzcGVjaWZpZXMgb25seSBhIHRpbWUgem9uZSBkZWZpbml0aW9uIG9yDQogICB0aGF0IGRlZmluZXMgY2FsZW5kYXIgZW50aXRpZXMgdGhhdCBhcmUgbm90IGdyb3VwIHNjaGVkdWxlZCBlbnRpdGllcywNCiAgIGJ1dCBhcmUgZW50aXRpZXMgb25seSBvbiBhIHNpbmdsZSB1c2VyJ3MgY2FsZW5kYXIuDQoqLw0KDQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9yZWN1cnJlbmNlX2lkIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIC8vIFRPRE86IGNhbiBvbmx5IGJlIHNwZWNpZmllZCB3aGVuIGRlZmluaW5nIHJlY3VycmluZyBjb21wb25lbnRzIGluIHRoZSBjYWxlbmRhcg0KLyoNCiAgIENvbmZvcm1hbmNlOiBUaGlzIHByb3BlcnR5IGNhbiBiZSBzcGVjaWZpZWQgaW4gYW4gaUNhbGVuZGFyIG9iamVjdA0KICAgY29udGFpbmluZyBhIHJlY3VycmluZyBjYWxlbmRhciBjb21wb25lbnQuDQoNCiAgIERlc2NyaXB0aW9uOiBUaGUgZnVsbCByYW5nZSBvZiBjYWxlbmRhciBjb21wb25lbnRzIHNwZWNpZmllZCBieSBhDQogICByZWN1cnJlbmNlIHNldCBpcyByZWZlcmVuY2VkIGJ5IHJlZmVycmluZyB0byBqdXN0IHRoZSAiVUlEIiBwcm9wZXJ0eQ0KICAgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgY2FsZW5kYXIgY29tcG9uZW50LiBUaGUgIlJFQ1VSUkVOQ0UtSUQiDQogICBwcm9wZXJ0eSBhbGxvd3MgdGhlIHJlZmVyZW5jZSB0byBhbiBpbmRpdmlkdWFsIGluc3RhbmNlIHdpdGhpbiB0aGUNCiAgIHJlY3VycmVuY2Ugc2V0Lg0KKi8NCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnUkVDVVJSRU5DRS1JRCc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9EQVRFX1RJTUU7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnUkFOR0UnICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnVFpJRCcgICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICAnVkFMVUUnICAgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF9wYXJhbWV0ZXIoJHBhcmFtZXRlciwgJHZhbHVlKSB7DQoNCiAgICAgICAgJHBhcmFtZXRlciA9IHN0cnRvdXBwZXIoJHBhcmFtZXRlcik7DQoNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfcGFyYW1ldGVyKCRwYXJhbWV0ZXIsICR2YWx1ZSkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBpZigkcGFyYW1ldGVyID09ICdWQUxVRScgJiYgISgkdmFsdWUgPT0gJ0RBVEUnIHx8ICR2YWx1ZSA9PSAnREFURS1USU1FJykpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfcmVsYXRlZF90byBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1JFTEFURUQtVE8nOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfVEVYVDsNCg0KICAgIC8vIFRPRE86IHRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IG11c3QgcmVmZXJlbmNlIGFub3RoZXIgY29tcG9uZW50J3MgVUlEDQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnUkVMVFlQRScgICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV91cmwgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdVUkwnOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfVVJJOw0KDQogICAgZnVuY3Rpb24gY29uc3RydWN0KCkgew0KICAgICAgICAkdGhpcy0+dmFsaWRfcGFyYW1ldGVycyA9IGFycmF5KA0KICAgICAgICAgICAgUkZDMjQ0NV9YTkFNRSA9PiBSRkMyNDQ1X09QVElPTkFMDQogICAgICAgICk7DQogICAgfQ0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfdWlkIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnVUlEJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCg0KICAgICAgICAvLyBUaGUgZXhjZXB0aW9uIHRvIHRoZSBydWxlOiB0aGlzIGlzIG5vdCBhIHN0YXRpYyB2YWx1ZSwgc28gd2UNCiAgICAgICAgLy8gZ2VuZXJhdGUgaXQgb24tdGhlLWZseSBoZXJlLiBHdWFyYW50ZWVkIHRvIGJlIGRpZmZlcmVudCBmb3INCiAgICAgICAgLy8gZWFjaCBpbnN0YW5jZSBvZiB0aGlzIHByb3BlcnR5LCB0b28uIE5pY2UuDQogICAgICAgICR0aGlzLT52YWxfZGVmYXVsdCA9IHJmYzI0NDVfZ3VpZCgpOw0KICAgIH0NCn0NCg0KLy8gNC44LjUgUmVjdXJyZW5jZSBDb21wb25lbnQgUHJvcGVydGllcw0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfZXhkYXRlIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnRVhEQVRFJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0RBVEVfVElNRTsNCiAgICB2YXIgJHZhbF9tdWx0aSAgID0gdHJ1ZTsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdUWklEJyAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdWQUxVRScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3BhcmFtZXRlcigkcGFyYW1ldGVyLCAkdmFsdWUpIHsNCg0KICAgICAgICAkcGFyYW1ldGVyID0gc3RydG91cHBlcigkcGFyYW1ldGVyKTsNCg0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF9wYXJhbWV0ZXIoJHBhcmFtZXRlciwgJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlmKCRwYXJhbWV0ZXIgPT0gJ1ZBTFVFJyAmJiAhKCR2YWx1ZSA9PSAnREFURScgfHwgJHZhbHVlID09ICdEQVRFLVRJTUUnKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9leHJ1bGUgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdFWFJVTEUnOw0KICAgIHZhciAkdmFsX3R5cGUgICAgPSBSRkMyNDQ1X1RZUEVfUkVDVVI7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9yZGF0ZSBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1JEQVRFJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0RBVEVfVElNRTsNCiAgICB2YXIgJHZhbF9tdWx0aSAgID0gdHJ1ZTsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdUWklEJyAgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgICdWQUxVRScgICAgICAgPT4gUkZDMjQ0NV9PUFRJT05BTCB8IFJGQzI0NDVfT05DRSwNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGlzX3ZhbGlkX3BhcmFtZXRlcigkcGFyYW1ldGVyLCAkdmFsdWUpIHsNCg0KICAgICAgICAkcGFyYW1ldGVyID0gc3RydG91cHBlcigkcGFyYW1ldGVyKTsNCg0KICAgICAgICBpZighcGFyZW50Ojppc192YWxpZF9wYXJhbWV0ZXIoJHBhcmFtZXRlciwgJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlmKCRwYXJhbWV0ZXIgPT0gJ1ZBTFVFJyAmJiAhKCR2YWx1ZSA9PSAnREFURScgfHwgJHZhbHVlID09ICdEQVRFLVRJTUUnIHx8ICR2YWx1ZSA9PSAnUEVSSU9EJykpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCg0KfQ0KDQpjbGFzcyBpQ2FsZW5kYXJfcHJvcGVydHlfcnJ1bGUgZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9ICdSUlVMRSc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9SRUNVUjsNCg0KICAgIGZ1bmN0aW9uIGNvbnN0cnVjdCgpIHsNCiAgICAgICAgJHRoaXMtPnZhbGlkX3BhcmFtZXRlcnMgPSBhcnJheSgNCiAgICAgICAgICAgIFJGQzI0NDVfWE5BTUUgPT4gUkZDMjQ0NV9PUFRJT05BTA0KICAgICAgICApOw0KICAgIH0NCn0NCg0KLy8gVE9ETzogNC44LjYgQWxhcm0gQ29tcG9uZW50IFByb3BlcnRpZXMNCg0KLy8gNC44LjcgQ2hhbmdlIE1hbmFnZW1lbnQgQ29tcG9uZW50IFByb3BlcnRpZXMNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9jcmVhdGVkIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnQ1JFQVRFRCc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9EQVRFX1RJTUU7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIC8vIFRpbWUgTVVTVCBiZSBpbiBVVEMgZm9ybWF0DQogICAgICAgIHJldHVybihzdWJzdHIoJHZhbHVlLCAtMSkgPT0gJ1onKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9kdHN0YW1wIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnRFRTVEFNUCc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9EQVRFX1RJTUU7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIC8vIFRpbWUgTVVTVCBiZSBpbiBVVEMgZm9ybWF0DQogICAgICAgIHJldHVybihzdWJzdHIoJHZhbHVlLCAtMSkgPT0gJ1onKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9sYXN0X21vZGlmaWVkIGV4dGVuZHMgaUNhbGVuZGFyX3Byb3BlcnR5IHsNCg0KICAgIHZhciAkbmFtZSAgICAgICAgPSAnTEFTVC1NT0RJRklFRCc7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IFJGQzI0NDVfVFlQRV9EQVRFX1RJTUU7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIC8vIFRpbWUgTVVTVCBiZSBpbiBVVEMgZm9ybWF0DQogICAgICAgIHJldHVybihzdWJzdHIoJHZhbHVlLCAtMSkgPT0gJ1onKTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9zZXF1ZW5jZSBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1NFUVVFTkNFJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX0lOVEVHRVI7DQogICAgdmFyICR2YWxfZGVmYXVsdCA9IDA7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIXBhcmVudDo6aXNfdmFsaWRfdmFsdWUoJHZhbHVlKSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgICR2YWx1ZSA9IGludHZhbCgkdmFsdWUpOw0KICAgICAgICByZXR1cm4gKCR2YWx1ZSA+PSAwKTsNCiAgICB9DQp9DQoNCi8vIDQuOC44IE1pc2NlbGxhbmVvdXMgQ29tcG9uZW50IFByb3BlcnRpZXMNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KY2xhc3MgaUNhbGVuZGFyX3Byb3BlcnR5X3ggZXh0ZW5kcyBpQ2FsZW5kYXJfcHJvcGVydHkgew0KDQogICAgdmFyICRuYW1lICAgICAgICA9IFJGQzI0NDVfWE5BTUU7DQogICAgdmFyICR2YWxfdHlwZSAgICA9IE5VTEw7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnTEFOR1VBR0UnICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzZXRfbmFtZSgkbmFtZSkgew0KDQogICAgICAgICRuYW1lID0gc3RydG91cHBlcigkbmFtZSk7DQoNCiAgICAgICAgaWYocmZjMjQ0NV9pc194bmFtZSgkbmFtZSkpIHsNCiAgICAgICAgICAgICR0aGlzLT5uYW1lID0gJG5hbWU7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQp9DQoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9yZXF1ZXN0X3N0YXR1cyBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICAvLyBJTVBPUlRBTlQgTk9URTogVGhpcyBwcm9wZXJ0eSB2YWx1ZSBpbmNsdWRlcyBURVhUIGZpZWxkcw0KICAgIC8vIHNlcGFyYXRlZCBieSBzZW1pY29sb25zLiBVbmZvcnR1bmF0ZWx5LCBhdXRvLXZhbHVlLWZvcm1hdHRpbmcNCiAgICAvLyBjYW5ub3QgYmUgdXNlZCBpbiB0aGlzIGNhc2UuIEFzIGFuIGV4Y2VwdGlvbiwgdGhlIHZhbHVlIHBhc3NlZA0KICAgIC8vIHRvIHRoaXMgcHJvcGVydHkgTVVTVCBiZSBhbHJlYWR5IGVzY2FwZWQuDQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ1JFUVVFU1QtU1RBVFVTJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICAnTEFOR1VBR0UnICAgID0+IFJGQzI0NDVfT1BUSU9OQUwgfCBSRkMyNDQ1X09OQ0UsDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpc192YWxpZF92YWx1ZSgkdmFsdWUpIHsNCiAgICAgICAgaWYoIWlzX3N0cmluZygkdmFsdWUpIHx8IGVtcHR5KCR2YWx1ZSkpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgICRsZW4gICA9IHN0cmxlbigkdmFsdWUpOw0KICAgICAgICAkcGFydHMgPSBhcnJheSgpOw0KICAgICAgICAkZnJvbSAgPSAwOw0KICAgICAgICAkZXNjY2ggPSBmYWxzZTsNCg0KICAgICAgICBmb3IoJGkgPSAwOyAkaSA8ICRsZW47ICsrJGkpIHsNCiAgICAgICAgICAgIGlmKCR2YWx1ZXskaX0gPT0gJzsnICYmICEkZXNjY2gpIHsNCiAgICAgICAgICAgICAgICAvLyBUb2tlbiBjb21wbGV0ZWQNCiAgICAgICAgICAgICAgICAkcGFydHNbXSA9IHN1YnN0cigkdmFsdWUsICRmcm9tLCAkaSAtICRmcm9tKTsNCiAgICAgICAgICAgICAgICAkZnJvbSA9ICRpICsgMTsNCiAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRlc2NjaCA9ICgkdmFsdWV7JGl9ID09ICdcXCcpOw0KICAgICAgICB9DQogICAgICAgIC8vIEFkZCBvbmUgbGFzdCB0b2tlbiB3aXRoIHRoZSByZW1haW5pbmcgdGV4dDsgaWYgdGhlIHZhbHVlDQogICAgICAgIC8vIGVuZGVkIHdpdGggYSAnOycgaXQgd2FzIGlsbGVnYWwsIHNvIGNoZWNrIHRoYXQgdGhpcyB0b2tlbg0KICAgICAgICAvLyBpcyBub3QgdGhlIGVtcHR5IHN0cmluZy4NCiAgICAgICAgJHBhcnRzW10gPSBzdWJzdHIoJHZhbHVlLCAkZnJvbSk7DQoNCiAgICAgICAgJGNvdW50ID0gY291bnQoJHBhcnRzKTsNCg0KICAgICAgICAvLyBNYXkgaGF2ZSAyIG9yIDMgdG9rZW5zIChsYXN0IG9uZSBpcyBvcHRpb25hbCkNCiAgICAgICAgaWYoJGNvdW50ICE9IDIgJiYgJGNvdW50ICE9IDMpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFJFTUVNQkVSOiBpZiBBTlkgcGFydCBpcyBlbXB0eSwgd2UgaGF2ZSBhbiBpbGxlZ2FsIHZhbHVlDQoNCiAgICAgICAgLy8gRmlyc3QgdG9rZW4gbXVzdCBiZSBoaWVyYXJjaGljYWwgbnVtZXJpYyBzdGF0dXMgKDMgbGV2ZWxzIG1heCkNCiAgICAgICAgaWYoc3RybGVuKCRwYXJ0c1swXSkgPT0gMCkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoJHBhcnRzWzBdezB9IDwgJzEnIHx8ICRwYXJ0c1swXXswfSA+ICc0Jykgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgJGxlbiA9IHN0cmxlbigkcGFydHNbMF0pOw0KDQogICAgICAgIC8vIE1heCAzIGxldmVscywgYW5kIGNhbid0IGVuZCB3aXRoIGEgcGVyaW9kDQogICAgICAgIGlmKCRsZW4gPiA1IHx8ICRwYXJ0c1swXXskbGVuIC0gMX0gPT0gJy4nKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBmb3IoJGkgPSAxOyAkaSA8ICRsZW47ICsrJGkpIHsNCiAgICAgICAgICAgIGlmKCgkaSAmIDEpID09IDEgJiYgJHBhcnRzWzBdeyRpfSAhPSAnLicpIHsNCiAgICAgICAgICAgICAgICAvLyBFdmVuLWluZGV4ZWQgY2hhcnMgbXVzdCBiZSBwZXJpb2RzDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZigoJGkgJiAxKSA9PSAwICYmICgkcGFydHNbMF17JGl9IDwgJzAnIHx8ICRwYXJ0c1swXXskaX0gPiAnOScpKSB7DQogICAgICAgICAgICAgICAgLy8gT2RkLWluZGV4ZWQgY2hhcnMgbXVzdCBiZSBudW1iZXJzDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU2Vjb25kIGFuZCB0aGlyZCB0b2tlbnMgbXVzdCBiZSBURVhULCBhbmQgYWxyZWFkeSBlc2NhcGVkLCBzbw0KICAgICAgICAvLyB0aGV5IGFyZSBub3QgYWxsb3dlZCB0byBoYXZlIFVORVNDQVBFRCBzZW1pY29sb25zLCBjb21tYXMsIHNsYXNoZXMsDQogICAgICAgIC8vIG9yIGFueSBuZXdsaW5lcyBhdCBhbGwNCg0KICAgICAgICBmb3IoJGkgPSAxOyAkaSA8ICRjb3VudDsgKyskaSkgew0KICAgICAgICAgICAgaWYoc3RycG9zKCRwYXJ0c1skaV0sICJcbiIpICE9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGxlbiA9IHN0cmxlbigkcGFydHNbJGldKTsNCiAgICAgICAgICAgIGlmKCRsZW4gPT0gMCkgew0KICAgICAgICAgICAgICAgIC8vIENhbm5vdCBiZSBlbXB0eQ0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHBhcnRzWyRpXSAuPSAnIyc7IC8vIFRoaXMgZ3VhcmQgdG9rZW4gc2F2ZXMgc29tZSBjb25kaXRpb25hbHMgaW4gdGhlIGxvb3ANCg0KICAgICAgICAgICAgZm9yKCRqID0gMDsgJGogPCAkbGVuOyArKyRqKSB7DQogICAgICAgICAgICAgICAgJHRoaXNjaGFyID0gJHBhcnRzWyRpXXskan07DQogICAgICAgICAgICAgICAgJG5leHRjaGFyID0gJHBhcnRzWyRpXXskaiArIDF9Ow0KICAgICAgICAgICAgICAgIGlmKCR0aGlzY2hhciA9PSAnXFwnKSB7DQogICAgICAgICAgICAgICAgICAgIC8vIE5leHQgY2hhciBtdXN0IG5vdyBiZSBvbmUgb2YgIjssXG5OIg0KICAgICAgICAgICAgICAgICAgICBpZigkbmV4dGNoYXIgIT0gJzsnICYmICRuZXh0Y2hhciAhPSAnLCcgJiYgJG5leHRjaGFyICE9ICdcXCcgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgJG5leHRjaGFyICE9ICduJyAmJiAkbmV4dGNoYXIgIT0gJ04nKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAvLyBPSywgdGhpcyBlc2NhcGVkIHNlcXVlbmNlIGlzIGNvcnJlY3QsIGJ5cGFzcyBuZXh0IGNoYXINCiAgICAgICAgICAgICAgICAgICAgKyskajsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmKCR0aGlzY2hhciA9PSAnOycgfHwgJHRoaXNjaGFyID09ICcsJyB8fCAkdGhpc2NoYXIgPT0gJ1xcJykgew0KICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdhc24ndCBlc2NhcGVkIGFzIGl0IHNob3VsZA0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gc2V0X3ZhbHVlKCR2YWx1ZSkgew0KICAgICAgICAvLyBNdXN0IG92ZXJyaWRlIHRoaXMsIG90aGVyd2lzZSB0aGUgdmFsdWUgd291bGQgYmUgcXVvdGVkIGFnYWluDQogICAgICAgIGlmKCR0aGlzLT5pc192YWxpZF92YWx1ZSgkdmFsdWUpKSB7DQogICAgICAgICAgICAkdGhpcy0+dmFsdWUgPSAkdmFsdWU7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQoNCn0NCg0KDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLyoNCmNsYXNzIGlDYWxlbmRhcl9wcm9wZXJ0eV9jbGFzcyBleHRlbmRzIGlDYWxlbmRhcl9wcm9wZXJ0eSB7DQoNCiAgICB2YXIgJG5hbWUgICAgICAgID0gJ0NMQVNTJzsNCiAgICB2YXIgJHZhbF90eXBlICAgID0gUkZDMjQ0NV9UWVBFX1RFWFQ7DQoNCiAgICBmdW5jdGlvbiBjb25zdHJ1Y3QoKSB7DQogICAgICAgICR0aGlzLT52YWxpZF9wYXJhbWV0ZXJzID0gYXJyYXkoDQogICAgICAgICAgICBSRkMyNDQ1X1hOQU1FID0+IFJGQzI0NDVfT1BUSU9OQUwNCiAgICAgICAgKTsNCiAgICB9DQp9DQoqLw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/lib/iCalendar_rfc2445.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gJElkOiBpQ2FsZW5kYXJfcmZjMjQ0NS5waHAsdiAxLjcgMjAwNS8wNy8yMSAyMzoyMzo0OCBkZWZhY2VyIEV4cCAkDQoNCi8qDQoNCiAgIEFsbCBuYW1lcyBvZiBwcm9wZXJ0aWVzLCBwcm9wZXJ0eSBwYXJhbWV0ZXJzLCBlbnVtZXJhdGVkIHByb3BlcnR5DQogICB2YWx1ZXMgYW5kIHByb3BlcnR5IHBhcmFtZXRlciB2YWx1ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUuIEhvd2V2ZXIsDQogICBhbGwgb3RoZXIgcHJvcGVydHkgdmFsdWVzIGFyZSBjYXNlLXNlbnNpdGl2ZSwgdW5sZXNzIG90aGVyd2lzZQ0KICAgc3RhdGVkLg0KDQoqLw0KDQpkZWZpbmUoJ1JGQzI0NDVfQ1JMRicsICAgICAgICAgICAgICAgIlxyXG4iKTsNCmRlZmluZSgnUkZDMjQ0NV9XU1AnLCAgICAgICAgICAgICAgICAiXHQgIik7DQpkZWZpbmUoJ1JGQzI0NDVfV0VFS0RBWVMnLCAgICAgICAgICAgJ01PLFRVLFdFLFRILEZSLFNBLFNVJyk7DQpkZWZpbmUoJ1JGQzI0NDVfRk9MREVEX0xJTkVfTEVOR1RIJywgNzUpOw0KDQpkZWZpbmUoJ1JGQzI0NDVfUkVRVUlSRUQnLCAweDAxKTsNCmRlZmluZSgnUkZDMjQ0NV9PUFRJT05BTCcsIDB4MDIpOw0KZGVmaW5lKCdSRkMyNDQ1X09OQ0UnLCAgICAgMHgwNCk7DQoNCmRlZmluZSgnUkZDMjQ0NV9QUk9QX0ZMQUdTJywgICAgICAgMCk7DQpkZWZpbmUoJ1JGQzI0NDVfUFJPUF9UWVBFJywgICAgICAgIDEpOw0KZGVmaW5lKCdSRkMyNDQ1X1BST1BfREVGQVVMVCcsICAgICAyKTsNCg0KZGVmaW5lKCdSRkMyNDQ1X1hOQU1FJywgJ1gtJyk7DQoNCmRlZmluZSgnUkZDMjQ0NV9UWVBFX0JJTkFSWScsICAgICAgIDApOw0KZGVmaW5lKCdSRkMyNDQ1X1RZUEVfQk9PTEVBTicsICAgICAgMSk7DQpkZWZpbmUoJ1JGQzI0NDVfVFlQRV9DQUxfQUREUkVTUycsICAyKTsNCmRlZmluZSgnUkZDMjQ0NV9UWVBFX0RBVEUnLCAgICAgICAgIDMpOw0KZGVmaW5lKCdSRkMyNDQ1X1RZUEVfREFURV9USU1FJywgICAgNCk7DQpkZWZpbmUoJ1JGQzI0NDVfVFlQRV9EVVJBVElPTicsICAgICA1KTsNCmRlZmluZSgnUkZDMjQ0NV9UWVBFX0ZMT0FUJywgICAgICAgIDYpOw0KZGVmaW5lKCdSRkMyNDQ1X1RZUEVfSU5URUdFUicsICAgICAgNyk7DQpkZWZpbmUoJ1JGQzI0NDVfVFlQRV9QRVJJT0QnLCAgICAgICA4KTsNCmRlZmluZSgnUkZDMjQ0NV9UWVBFX1JFQ1VSJywgICAgICAgIDkpOw0KZGVmaW5lKCdSRkMyNDQ1X1RZUEVfVEVYVCcsICAgICAgICAxMCk7DQpkZWZpbmUoJ1JGQzI0NDVfVFlQRV9USU1FJywgICAgICAgIDExKTsNCmRlZmluZSgnUkZDMjQ0NV9UWVBFX1VSSScsICAgICAgICAgMTIpOyAvLyBDQUxfQUREUkVTUyA9PT0gVVJJDQpkZWZpbmUoJ1JGQzI0NDVfVFlQRV9VVENfT0ZGU0VUJywgIDEzKTsNCg0KDQpmdW5jdGlvbiByZmMyNDQ1X2ZvbGQoJHN0cmluZykgew0KICAgIGlmKHN0cmxlbigkc3RyaW5nKSA8PSBSRkMyNDQ1X0ZPTERFRF9MSU5FX0xFTkdUSCkgew0KICAgICAgICByZXR1cm4gJHN0cmluZzsNCiAgICB9DQoNCiAgICAkcmV0dmFsID0gJyc7DQoNCiAgICB3aGlsZShzdHJsZW4oJHN0cmluZykgPiBSRkMyNDQ1X0ZPTERFRF9MSU5FX0xFTkdUSCkgew0KICAgICAgICAkcmV0dmFsIC49IHN1YnN0cigkc3RyaW5nLCAwLCBSRkMyNDQ1X0ZPTERFRF9MSU5FX0xFTkdUSCAtIDEpIC4gUkZDMjQ0NV9DUkxGIC4gJyAnOw0KICAgICAgICAkc3RyaW5nICA9IHN1YnN0cigkc3RyaW5nLCBSRkMyNDQ1X0ZPTERFRF9MSU5FX0xFTkdUSCAtIDEpOw0KICAgIH0NCg0KICAgICRyZXR2YWwgLj0gJHN0cmluZzsNCiAgICANCiAgICByZXR1cm4gJHJldHZhbDsNCg0KfQ0KDQpmdW5jdGlvbiByZmMyNDQ1X3VuZm9sZCgkc3RyaW5nKSB7DQogICAgZm9yKCRpID0gMDsgJGkgPCBzdHJsZW4oUkZDMjQ0NV9XU1ApOyArKyRpKSB7DQogICAgICAgICRzdHJpbmcgPSBzdHJfcmVwbGFjZShSRkMyNDQ1X0NSTEYuc3Vic3RyKFJGQzI0NDVfV1NQLCAkaSwgMSksICcnLCAkc3RyaW5nKTsNCiAgICB9DQoNCiAgICByZXR1cm4gJHN0cmluZzsNCn0NCg0KZnVuY3Rpb24gcmZjMjQ0NV9pc194bmFtZSgkbmFtZSkgew0KDQogICAgLy8gSWYgaXQncyBsZXNzIHRoYW4gMyBjaGFycywgaXQgY2Fubm90IGJlIGxlZ2FsDQogICAgaWYoc3RybGVuKCRuYW1lKSA8IDMpIHsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCg0KICAgIC8vIElmIGl0IGNvbnRhaW5zIGFuIGlsbGVnYWwgY2hhciBhbnl3aGVyZSwgcmVqZWN0IGl0DQogICAgaWYoc3Ryc3BuKCRuYW1lLCAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5LScpICE9IHN0cmxlbigkbmFtZSkpIHsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCg0KICAgIC8vIFRvIGJlIGxlZ2FsLCBpdCBtdXN0IHN0aWxsIHN0YXJ0IHdpdGggIlgtIg0KICAgIHJldHVybiBzdWJzdHIoJG5hbWUsIDAsIDIpID09PSAnWC0nOw0KfQ0KDQpmdW5jdGlvbiByZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCR2YWx1ZSwgJHR5cGUpIHsNCg0KICAgIC8vIFRoaXMgYnJhbmNoIHNob3VsZCBvbmx5IGJlIHRha2VuIHdpdGggeG5hbWUgdmFsdWVzDQogICAgaWYoJHR5cGUgPT09IE5VTEwpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgc3dpdGNoKCR0eXBlKSB7DQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0NBTF9BRERSRVNTOg0KICAgICAgICBjYXNlIFJGQzI0NDVfVFlQRV9VUkk6DQogICAgICAgICAgICBpZighaXNfc3RyaW5nKCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICR2YWxpZF9zY2hlbWVzID0gYXJyYXkoJ2Z0cCcsICdodHRwJywgJ2xkYXAnLCAnZ29waGVyJywgJ21haWx0bycsICduZXdzJywgJ25udHAnLCAndGVsbmV0JywgJ3dhaXMnLCAnZmlsZScsICdwcm9zcGVybycpOw0KDQogICAgICAgICAgICAkcG9zID0gc3RycG9zKCR2YWx1ZSwgJzonKTsNCiAgICAgICAgICAgIGlmKCEkcG9zKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgICAgICRzY2hlbWUgPSBzdHJ0b2xvd2VyKHN1YnN0cigkdmFsdWUsIDAsICRwb3MpKTsNCiAgICAgICAgICAgICRyZW1haW4gPSBzdWJzdHIoJHZhbHVlLCAkcG9zICsgMSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmKCFpbl9hcnJheSgkc2NoZW1lLCAkdmFsaWRfc2NoZW1lcykpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAgICAgaWYoJHNjaGVtZSA9PT0gJ21haWx0bycpIHsNCiAgICAgICAgICAgICAgICAkcmVnZXhwID0gJ15bYS16QS1aMC05XStbX2EtekEtWjAtOVwtXSooXC5bX2EtejAtOVwtXSspKkAoKFswLTlhLXpBLVpcLV0rXC4pK1thLXpBLVpdWzAtOWEtekEtWlwtXSt8KFswLTldezEsM31cLil7M31bMC05XXsxLDN9KSQnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgJHJlZ2V4cCA9ICdeLy8oLisoOi4qKT9AKT8oKFswLTlhLXpBLVpcLV0rXC4pK1thLXpBLVpdWzAtOWEtekEtWlwtXSt8KFswLTldezEsM31cLil7M31bMC05XXsxLDN9KSg6WzAtOV17MSw1fSk/KC8uKik/JCc7DQogICAgICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAgICAgcmV0dXJuIGVyZWcoJHJlZ2V4cCwgJHJlbWFpbik7DQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0JJTkFSWToNCiAgICAgICAgICAgIGlmKCFpc19zdHJpbmcoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGxlbiA9IHN0cmxlbigkdmFsdWUpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZigkbGVuICUgNCAhPSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmb3IoJGkgPSAwOyAkaSA8ICRsZW47ICsrJGkpIHsNCiAgICAgICAgICAgICAgICAkY2ggPSAkdmFsdWV7JGl9Ow0KICAgICAgICAgICAgICAgIGlmKCEoJGNoID49ICdhJyAmJiAkY2ggPD0gJ3onIHx8ICRjaCA+PSAnQScgJiYgJGNoIDw9ICdaJyB8fCAkY2ggPj0gJzAnICYmICRjaCA8PSAnOScgfHwgJGNoID09ICctJyB8fCAkY2ggPT0gJysnKSkgew0KICAgICAgICAgICAgICAgICAgICBpZigkY2ggPT0gJz0nICYmICRsZW4gLSAkaSA8PSAyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0JPT0xFQU46DQogICAgICAgICAgICBpZihpc19ib29sKCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKGlzX3N0cmluZygkdmFsdWUpKSB7DQogICAgICAgICAgICAgICAgJHZhbHVlID0gc3RydG91cHBlcigkdmFsdWUpOw0KICAgICAgICAgICAgICAgIHJldHVybiAoJHZhbHVlID09ICdUUlVFJyB8fCAkdmFsdWUgPT0gJ0ZBTFNFJyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0RBVEU6DQogICAgICAgICAgICBpZihpc19pbnQoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIGlmKCR2YWx1ZSA8IDApIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkdmFsdWUgPSAiJHZhbHVlIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYoIWlzX3N0cmluZygkdmFsdWUpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZihzdHJsZW4oJHZhbHVlKSAhPSA4KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkeSA9IGludHZhbChzdWJzdHIoJHZhbHVlLCAwLCA0KSk7DQogICAgICAgICAgICAkbSA9IGludHZhbChzdWJzdHIoJHZhbHVlLCA0LCAyKSk7DQogICAgICAgICAgICAkZCA9IGludHZhbChzdWJzdHIoJHZhbHVlLCA2LCAyKSk7DQoNCiAgICAgICAgICAgIHJldHVybiBjaGVja2RhdGUoJG0sICRkLCAkeSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0RBVEVfVElNRToNCiAgICAgICAgICAgIGlmKCFpc19zdHJpbmcoJHZhbHVlKSB8fCBzdHJsZW4oJHZhbHVlKSA8IDE1KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4oJHZhbHVlezh9ID09ICdUJyAmJiANCiAgICAgICAgICAgICAgICAgICByZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKHN1YnN0cigkdmFsdWUsIDAsIDgpLCBSRkMyNDQ1X1RZUEVfREFURSkgJiYNCiAgICAgICAgICAgICAgICAgICByZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKHN1YnN0cigkdmFsdWUsIDkpLCBSRkMyNDQ1X1RZUEVfVElNRSkpOw0KICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlIFJGQzI0NDVfVFlQRV9EVVJBVElPTjoNCiAgICAgICAgICAgIGlmKCFpc19zdHJpbmcoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGxlbiA9IHN0cmxlbigkdmFsdWUpOw0KDQogICAgICAgICAgICBpZigkbGVuIDwgMykgew0KICAgICAgICAgICAgICAgIC8vIE1pbmltdW0gY29uZm9ybWFudCBsZW5ndGg6ICJQMVciDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZigkdmFsdWV7MH0gPT0gJysnIHx8ICR2YWx1ZXswfSA9PSAnLScpIHsNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdWJzdHIoJHZhbHVlLCAxKTsNCiAgICAgICAgICAgICAgICAtLSRsZW47IC8vIERvbid0IGZvcmdldCB0byB1cGRhdGUgdGhpcyENCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYoJHZhbHVlezB9ICE9ICdQJykgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gT0ssIG5vdyBicmVhayBpdCB1cA0KICAgICAgICAgICAgJG51bSA9ICcnOw0KICAgICAgICAgICAgJGFsbG93ZWQgPSAnV0RUJzsNCg0KICAgICAgICAgICAgZm9yKCRpID0gMTsgJGkgPCAkbGVuOyArKyRpKSB7DQogICAgICAgICAgICAgICAgJGNoID0gJHZhbHVleyRpfTsNCiAgICAgICAgICAgICAgICBpZigkY2ggPj0gJzAnICYmICRjaCA8PSAnOScpIHsNCiAgICAgICAgICAgICAgICAgICAgJG51bSAuPSAkY2g7DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihzdHJwb3MoJGFsbG93ZWQsICRjaCkgPT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgIC8vIE5vbi1udW1lcmljIGNoYXJhY3RlciB3aGljaCBzaG91bGRuJ3QgYmUgaGVyZQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmKCRudW0gPT09ICcnICYmICRjaCAhPSAnVCcpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3dlZCBub24tbnVtZXJpYyBjaGFyYWN0ZXIsIGJ1dCBubyBkaWdpdHMgY2FtZSBiZWZvcmUgaXQNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIE9LLCAkY2ggbm93IGhvbGRzIGEgY2hhcmFjdGVyIHdoaWNoIHRlbGxzIHVzIHdoYXQgJG51bSBpcw0KICAgICAgICAgICAgICAgIHN3aXRjaCgkY2gpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnVyc6DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBkdXJhdGlvbiBpbiB3ZWVrcyBpcyBzcGVjaWZpZWQsIHRoaXMgbXVzdCBlbmQgdGhlIHN0cmluZw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgkaSA9PSAkbGVuIC0gMSk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0QnOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGF5cyBzcGVjaWZpZWQsIG5vdyBpZiBhbnl0aGluZyBjb21lcyBhZnRlciBpdCBtdXN0IGJlIGEgJ1QnDQogICAgICAgICAgICAgICAgICAgICAgICAkYWxsb3dlZCA9ICdUJzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnVCc6DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyB0byBzcGVjaWZ5IHRpbWUsIEggTSBTIGFyZSBub3cgdmFsaWQgZGVsaW1pdGVycw0KICAgICAgICAgICAgICAgICAgICAgICAgJGFsbG93ZWQgPSAnSE1TJzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnSCc6DQogICAgICAgICAgICAgICAgICAgICAgICAkYWxsb3dlZCA9ICdNJzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTSc6DQogICAgICAgICAgICAgICAgICAgICAgICAkYWxsb3dlZCA9ICdTJzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnUyc6DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCRpID09ICRsZW4gLSAxKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gSWYgd2UgJ3JlIGdvaW5nIHRvIGNvbnRpbnVlLCByZXNldCAkbnVtDQogICAgICAgICAgICAgICAgJG51bSA9ICcnOw0KDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vICRudW0gaXMga2VwdCBmb3IgdGhpcyByZWFzb246IGlmIHdlICdyZSBoZXJlLCB3ZSByYW4gb3V0IG9mIGNoYXJzDQogICAgICAgICAgICAvLyB0aGVyZWZvcmUgJG51bSBtdXN0IGJlIGVtcHR5IGZvciB0aGUgcGVyaW9kIHRvIGJlIGxlZ2FsDQogICAgICAgICAgICByZXR1cm4gKCRudW0gPT09ICcnICYmICRjaCAhPSAnVCcpOw0KDQogICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgY2FzZSBSRkMyNDQ1X1RZUEVfRkxPQVQ6DQogICAgICAgICAgICBpZihpc19mbG9hdCgkdmFsdWUpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZighaXNfc3RyaW5nKCR2YWx1ZSkgfHwgJHZhbHVlID09PSAnJykgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGRvdCA9IGZhbHNlOw0KICAgICAgICAgICAgJGludCA9IGZhbHNlOw0KICAgICAgICAgICAgJGxlbiA9IHN0cmxlbigkdmFsdWUpOw0KICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCAkbGVuOyArKyRpKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoKCR2YWx1ZXskaX0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnLSc6IGNhc2UgJysnOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBzaWduIGNhbiBvbmx5IGJlIHNlZW4gYXQgcG9zaXRpb24gMCBhbmQgY2Fubm90IGJlIHRoZSBvbmx5IGNoYXINCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRpICE9IDAgfHwgJGxlbiA9PSAxKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnLic6DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHNlY29uZCBkb3QgaXMgYW4gZXJyb3INCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYWQgYXQgbGVhc3Qgb25lIGludCBiZWZvcmUgdGhlIGRvdA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGRvdCB8fCAhJGludCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRkb3QgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWFrZSBhbHNvIHN1cmUgdGhhdCB0aGUgZmxvYXQgZG9lc24ndCBlbmQgd2l0aCBhIGRvdA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGkgPT0gJGxlbiAtIDEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICRpbnQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFueSBvdGhlciBjaGFyIGlzIGEgbm8tbm8NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0lOVEVHRVI6DQogICAgICAgICAgICBpZihpc19pbnQoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYoIWlzX3N0cmluZygkdmFsdWUpIHx8ICR2YWx1ZSA9PT0gJycpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmKCR2YWx1ZXswfSA9PSAnKycgfHwgJHZhbHVlezB9ID09ICctJykgew0KICAgICAgICAgICAgICAgIGlmKHN0cmxlbigkdmFsdWUpID09IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdWJzdHIoJHZhbHVlLCAxKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYoc3Ryc3BuKCR2YWx1ZSwgJzAxMjM0NTY3ODknKSAhPSBzdHJsZW4oJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuICgkdmFsdWUgPj0gLTIxNDc0ODM2NDggJiYgJHZhbHVlIDw9IDIxNDc0ODM2NDcpOw0KICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlIFJGQzI0NDVfVFlQRV9QRVJJT0Q6DQogICAgICAgICAgICBpZighaXNfc3RyaW5nKCR2YWx1ZSkgfHwgZW1wdHkoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnLycsICR2YWx1ZSk7DQogICAgICAgICAgICBpZihjb3VudCgkcGFydHMpICE9IDIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmKCFyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCRwYXJ0c1swXSwgUkZDMjQ0NV9UWVBFX0RBVEVfVElNRSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFR3byBsZWdhbCBjYXNlcyBmb3IgdGhlIHNlY29uZCBwYXJ0Og0KICAgICAgICAgICAgaWYocmZjMjQ0NV9pc192YWxpZF92YWx1ZSgkcGFydHNbMV0sIFJGQzI0NDVfVFlQRV9EQVRFX1RJTUUpKSB7DQogICAgICAgICAgICAgICAgLy8gSXQgaGFzIHRvIGJlIGFmdGVyIHRoZSBzdGFydCB0aW1lLCBzbw0KICAgICAgICAgICAgICAgIHJldHVybiAoJHBhcnRzWzFdID4gJHBhcnRzWzBdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYocmZjMjQ0NV9pc192YWxpZF92YWx1ZSgkcGFydHNbMV0sIFJGQzI0NDVfVFlQRV9EVVJBVElPTikpIHsNCiAgICAgICAgICAgICAgICAvLyBUaGUgcGVyaW9kIE1VU1QgTk9UIGJlIG5lZ2F0aXZlDQogICAgICAgICAgICAgICAgcmV0dXJuICgkcGFydHNbMV17MH0gIT0gJy0nKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gSXQgc2VlbXMgdG8gYmUgaWxsZWdhbA0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlIFJGQzI0NDVfVFlQRV9SRUNVUjoNCiAgICAgICAgICAgIGlmKCFpc19zdHJpbmcoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnOycsIHN0cnRvdXBwZXIoJHZhbHVlKSk7DQoNCiAgICAgICAgICAgIC8vIEZpcnN0IG9mIGFsbCwgd2UgbmVlZCBhdCBsZWFzdCBhIEZSRVEgYW5kIGEgVU5USUwgb3IgQ09VTlQgcGFydCwgc28uLi4NCiAgICAgICAgICAgIGlmKGNvdW50KCRwYXJ0cykgPCAyKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBMZXQncyBnZXQgdGhhdCBpbnRvIGEgbW9yZSBlYXNpbHkgY29tcHJlaGVuc2libGUgZm9ybWF0DQogICAgICAgICAgICAkdmFycyA9IGFycmF5KCk7DQogICAgICAgICAgICBmb3JlYWNoKCRwYXJ0cyBhcyAkcGFydCkgew0KDQogICAgICAgICAgICAgICAgJHBpZWNlcyA9IGV4cGxvZGUoJz0nLCAkcGFydCk7DQogICAgICAgICAgICAgICAgLy8gVGhlcmUgbXVzdCBiZSBleGFjdGx5IDIgcGllY2VzLCBlLmcuIEZSRVE9V0VFS0xZDQogICAgICAgICAgICAgICAgaWYoY291bnQoJHBpZWNlcykgIT0gMikgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gSXQncyBpbGxlZ2FsIGZvciBhIHZhcmlhYmxlIHRvIGFwcGVhciB0d2ljZQ0KICAgICAgICAgICAgICAgIGlmKGlzc2V0KCR2YXJzWyRwaWVjZXNbMF1dKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gU291bmRzIGdvb2QNCiAgICAgICAgICAgICAgICAkdmFyc1skcGllY2VzWzBdXSA9ICRwaWVjZXNbMV07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIE9LLi4uIG5vdyB0byB0ZXN0IGV2ZXJ5dGhpbmcgZWxzZQ0KDQogICAgICAgICAgICAvLyBGUkVRIG11c3QgYmUgdGhlIGZpcnN0IHRoaW5nIGFwcGVhcmluZw0KICAgICAgICAgICAgcmVzZXQoJHZhcnMpOw0KICAgICAgICAgICAgaWYoa2V5KCR2YXJzKSAhPSAnRlJFUScpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEl0J3MgaWxsZWdhbCB0byBoYXZlIGJvdGggVU5USUwgYW5kIENPVU5UIGFwcGVhcg0KICAgICAgICAgICAgaWYoaXNzZXQoJHZhcnNbJ1VOVElMJ10pICYmIGlzc2V0KCR2YXJzWydDT1VOVCddKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlOiBCWVdFRUtOTyBpcyBvbmx5IHZhbGlkIGZvciBGUkVRPVlFQVJMWQ0KICAgICAgICAgICAgaWYoaXNzZXQoJHZhcnNbJ0JZV0VFS05PJ10pICYmICR2YXJzWydGUkVRJ10gIT0gJ1lFQVJMWScpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFNwZWNpYWwgY2FzZTogQllTRVRQT1MgaXMgb25seSB2YWxpZCBpZiBhbm90aGVyIEJZIG9wdGlvbiBpcyBzcGVjaWZpZWQNCiAgICAgICAgICAgIGlmKGlzc2V0KCR2YXJzWydCWVNFVFBPUyddKSkgew0KICAgICAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoJ0JZU0VDT05EJywgJ0JZTUlOVVRFJywgJ0JZSE9VUicsICdCWURBWScsICdCWU1PTlRIREFZJywgJ0JZWUVBUkRBWScsICdCWVdFRUtOTycsICdCWU1PTlRIJyk7DQogICAgICAgICAgICAgICAgJGRlZmluZWQgPSBhcnJheV9rZXlzKCR2YXJzKTsNCiAgICAgICAgICAgICAgICAkY29tbW9uICA9IGFycmF5X2ludGVyc2VjdCgkb3B0aW9ucywgJGRlZmluZWQpOw0KICAgICAgICAgICAgICAgIGlmKGVtcHR5KCRjb21tb24pKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIE9LLCBub3cgc2ltcGx5IGNoZWNrIGlmIGVhY2ggZWxlbWVudCBoYXMgYSB2YWxpZCB2YWx1ZSwNCiAgICAgICAgICAgIC8vIHVuc2V0dGluZyB0aGVtIG9uIHRoZSB3YXkuIElmIGF0IHRoZSBlbmQgdGhlIGFycmF5IHN0aWxsDQogICAgICAgICAgICAvLyBoYXMgc29tZSBlbGVtZW50cywgdGhleSBhcmUgaWxsZWdhbC4NCg0KICAgICAgICAgICAgaWYoJHZhcnNbJ0ZSRVEnXSAhPSAnU0VDT05ETFknICYmICR2YXJzWydGUkVRJ10gIT0gJ01JTlVURUxZJyAmJiAkdmFyc1snRlJFUSddICE9ICdIT1VSTFknICYmIA0KICAgICAgICAgICAgICAgJHZhcnNbJ0ZSRVEnXSAhPSAnREFJTFknICAgICYmICR2YXJzWydGUkVRJ10gIT0gJ1dFRUtMWScgJiYNCiAgICAgICAgICAgICAgICR2YXJzWydGUkVRJ10gIT0gJ01PTlRITFknICAmJiAkdmFyc1snRlJFUSddICE9ICdZRUFSTFknKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdW5zZXQoJHZhcnNbJ0ZSRVEnXSk7DQoNCiAgICAgICAgICAgIC8vIFNldCB0aGlzLCB3ZSBtYXkgbmVlZCBpdCBsYXRlcg0KICAgICAgICAgICAgJHdlZWtkYXlzID0gZXhwbG9kZSgnLCcsIFJGQzI0NDVfV0VFS0RBWVMpOw0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snVU5USUwnXSkpIHsNCiAgICAgICAgICAgICAgICBpZihyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCR2YXJzWydVTlRJTCddLCBSRkMyNDQ1X1RZUEVfREFURV9USU1FKSkgew0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdGltZSBNVVNUIGJlIGluIFVUQyBmb3JtYXQNCiAgICAgICAgICAgICAgICAgICAgaWYoIShzdWJzdHIoJHZhcnNbJ1VOVElMJ10sIC0xKSA9PSAnWicpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZighcmZjMjQ0NV9pc192YWxpZF92YWx1ZSgkdmFyc1snVU5USUwnXSwgUkZDMjQ0NV9UWVBFX0RBVEVfVElNRSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydVTlRJTCddKTsNCg0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQ09VTlQnXSkpIHsNCiAgICAgICAgICAgICAgICBpZihlbXB0eSgkdmFyc1snQ09VTlQnXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBhbHNvIGNhdGNoZXMgdGhlIHN0cmluZyAnMCcsIHdoaWNoIG1ha2VzIG5vIHNlbnNlDQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYoc3Ryc3BuKCR2YXJzWydDT1VOVCddLCAnMDEyMzQ1Njc4OScpICE9IHN0cmxlbigkdmFyc1snQ09VTlQnXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydDT1VOVCddKTsNCg0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snSU5URVJWQUwnXSkpIHsNCiAgICAgICAgICAgICAgICBpZihlbXB0eSgkdmFyc1snSU5URVJWQUwnXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBhbHNvIGNhdGNoZXMgdGhlIHN0cmluZyAnMCcsIHdoaWNoIG1ha2VzIG5vIHNlbnNlDQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYoc3Ryc3BuKCR2YXJzWydJTlRFUlZBTCddLCAnMDEyMzQ1Njc4OScpICE9IHN0cmxlbigkdmFyc1snSU5URVJWQUwnXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydJTlRFUlZBTCddKTsNCg0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllTRUNPTkQnXSkpIHsNCiAgICAgICAgICAgICAgICBpZigkdmFyc1snQllTRUNPTkQnXSA9PSAnJykgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIENvbW1hIGFsc28gYWxsb3dlZA0KICAgICAgICAgICAgICAgIGlmKHN0cnNwbigkdmFyc1snQllTRUNPTkQnXSwgJzAxMjM0NTY3ODksJykgIT0gc3RybGVuKCR2YXJzWydCWVNFQ09ORCddKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRzZWNzID0gZXhwbG9kZSgnLCcsICR2YXJzWydCWVNFQ09ORCddKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoKCRzZWNzIGFzICRzZWMpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoJHNlYyA9PSAnJyB8fCAkc2VjIDwgMCB8fCAkc2VjID4gNTkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydCWVNFQ09ORCddKTsNCg0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllNSU5VVEUnXSkpIHsNCiAgICAgICAgICAgICAgICBpZigkdmFyc1snQllNSU5VVEUnXSA9PSAnJykgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIENvbW1hIGFsc28gYWxsb3dlZA0KICAgICAgICAgICAgICAgIGlmKHN0cnNwbigkdmFyc1snQllNSU5VVEUnXSwgJzAxMjM0NTY3ODksJykgIT0gc3RybGVuKCR2YXJzWydCWU1JTlVURSddKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRtaW5zID0gZXhwbG9kZSgnLCcsICR2YXJzWydCWU1JTlVURSddKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoKCRtaW5zIGFzICRtaW4pIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoJG1pbiA9PSAnJyB8fCAkbWluIDwgMCB8fCAkbWluID4gNTkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydCWU1JTlVURSddKTsNCg0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllIT1VSJ10pKSB7DQogICAgICAgICAgICAgICAgaWYoJHZhcnNbJ0JZSE9VUiddID09ICcnKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy8gQ29tbWEgYWxzbyBhbGxvd2VkDQogICAgICAgICAgICAgICAgaWYoc3Ryc3BuKCR2YXJzWydCWUhPVVInXSwgJzAxMjM0NTY3ODksJykgIT0gc3RybGVuKCR2YXJzWydCWUhPVVInXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkaG91cnMgPSBleHBsb2RlKCcsJywgJHZhcnNbJ0JZSE9VUiddKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoKCRob3VycyBhcyAkaG91cikgew0KICAgICAgICAgICAgICAgICAgICBpZigkaG91ciA9PSAnJyB8fCAkaG91ciA8IDAgfHwgJGhvdXIgPiAyMykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdW5zZXQoJHZhcnNbJ0JZSE9VUiddKTsNCiAgICAgICAgICAgIA0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllEQVknXSkpIHsNCiAgICAgICAgICAgICAgICBpZihlbXB0eSgkdmFyc1snQllEQVknXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIEZpcnN0IG9mZiwgc3BsaXQgdXAgYWxsIHZhbHVlcyB3ZSBtYXkgaGF2ZQ0KICAgICAgICAgICAgICAgICRkYXlzID0gZXhwbG9kZSgnLCcsICR2YXJzWydCWURBWSddKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBmb3JlYWNoKCRkYXlzIGFzICRkYXkpIHsNCiAgICAgICAgICAgICAgICAgICAgJGRheXBhcnQgPSBzdWJzdHIoJGRheSwgLTIpOw0KICAgICAgICAgICAgICAgICAgICBpZighaW5fYXJyYXkoJGRheXBhcnQsICR3ZWVrZGF5cykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmKHN0cmxlbigkZGF5KSA+IDIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRpbnRwYXJ0ID0gc3Vic3RyKCRkYXksIDAsIHN0cmxlbigkZGF5KSAtIDIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoIXJmYzI0NDVfaXNfdmFsaWRfdmFsdWUoJGludHBhcnQsIFJGQzI0NDVfVFlQRV9JTlRFR0VSKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGludHZhbCgkaW50cGFydCkgPT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydCWURBWSddKTsNCg0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllNT05USERBWSddKSkgew0KICAgICAgICAgICAgICAgIGlmKGVtcHR5KCR2YXJzWydCWU1PTlRIREFZJ10pKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJG1kYXlzID0gZXhwbG9kZSgnLCcsICR2YXJzWydCWU1PTlRIREFZJ10pOw0KICAgICAgICAgICAgICAgIGZvcmVhY2goJG1kYXlzIGFzICRtZGF5KSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCFyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCRtZGF5LCBSRkMyNDQ1X1RZUEVfSU5URUdFUikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkbWRheSA9IGFicyhpbnR2YWwoJG1kYXkpKTsNCiAgICAgICAgICAgICAgICAgICAgaWYoJG1kYXkgPT0gMCB8fCAkbWRheSA+IDMxKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB1bnNldCgkdmFyc1snQllNT05USERBWSddKTsNCg0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllZRUFSREFZJ10pKSB7DQogICAgICAgICAgICAgICAgaWYoZW1wdHkoJHZhcnNbJ0JZWUVBUkRBWSddKSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICR5ZGF5cyA9IGV4cGxvZGUoJywnLCAkdmFyc1snQllZRUFSREFZJ10pOw0KICAgICAgICAgICAgICAgIGZvcmVhY2goJHlkYXlzIGFzICR5ZGF5KSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCFyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCR5ZGF5LCBSRkMyNDQ1X1RZUEVfSU5URUdFUikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkeWRheSA9IGFicyhpbnR2YWwoJHlkYXkpKTsNCiAgICAgICAgICAgICAgICAgICAgaWYoJHlkYXkgPT0gMCB8fCAkeWRheSA+IDM2Nikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdW5zZXQoJHZhcnNbJ0JZWUVBUkRBWSddKTsNCg0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllXRUVLTk8nXSkpIHsNCiAgICAgICAgICAgICAgICBpZihlbXB0eSgkdmFyc1snQllXRUVLTk8nXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkd2Vla25vcyA9IGV4cGxvZGUoJywnLCAkdmFyc1snQllXRUVLTk8nXSk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkd2Vla25vcyBhcyAkd2Vla25vKSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCFyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCR3ZWVrbm8sIFJGQzI0NDVfVFlQRV9JTlRFR0VSKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICR3ZWVrbm8gPSBhYnMoaW50dmFsKCR3ZWVrbm8pKTsNCiAgICAgICAgICAgICAgICAgICAgaWYoJHdlZWtubyA9PSAwIHx8ICR3ZWVrbm8gPiA1Mykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdW5zZXQoJHZhcnNbJ0JZV0VFS05PJ10pOw0KDQoNCiAgICAgICAgICAgIGlmKGlzc2V0KCR2YXJzWydCWU1PTlRIJ10pKSB7DQogICAgICAgICAgICAgICAgaWYoZW1wdHkoJHZhcnNbJ0JZTU9OVEgnXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyBDb21tYSBhbHNvIGFsbG93ZWQNCiAgICAgICAgICAgICAgICBpZihzdHJzcG4oJHZhcnNbJ0JZTU9OVEgnXSwgJzAxMjM0NTY3ODksJykgIT0gc3RybGVuKCR2YXJzWydCWU1PTlRIJ10pKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJG1vbnRocyA9IGV4cGxvZGUoJywnLCAkdmFyc1snQllNT05USCddKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoKCRtb250aHMgYXMgJG1vbnRoKSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCRtb250aCA9PSAnJyB8fCAkbW9udGggPCAxIHx8ICRtb250aCA+IDEyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB1bnNldCgkdmFyc1snQllNT05USCddKTsNCg0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snQllTRVRQT1MnXSkpIHsNCiAgICAgICAgICAgICAgICBpZihlbXB0eSgkdmFyc1snQllTRVRQT1MnXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkc2V0cyA9IGV4cGxvZGUoJywnLCAkdmFyc1snQllTRVRQT1MnXSk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkc2V0cyBhcyAkc2V0KSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCFyZmMyNDQ1X2lzX3ZhbGlkX3ZhbHVlKCRzZXQsIFJGQzI0NDVfVFlQRV9JTlRFR0VSKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICRzZXQgPSBhYnMoaW50dmFsKCRzZXQpKTsNCiAgICAgICAgICAgICAgICAgICAgaWYoJHNldCA9PSAwIHx8ICRzZXQgPiAzNjYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHVuc2V0KCR2YXJzWydCWVNFVFBPUyddKTsNCg0KDQogICAgICAgICAgICBpZihpc3NldCgkdmFyc1snV0tTVCddKSkgew0KICAgICAgICAgICAgICAgIGlmKCFpbl9hcnJheSgkdmFyc1snV0tTVCddLCAkd2Vla2RheXMpKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB1bnNldCgkdmFyc1snV0tTVCddKTsNCg0KDQogICAgICAgICAgICAvLyBBbnkgcmVtYWluaW5nIHZhcnMgbXVzdCBiZSB4LW5hbWVzDQogICAgICAgICAgICBpZihlbXB0eSgkdmFycykpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZm9yZWFjaCgkdmFycyBhcyAkbmFtZSA9PiAkdmFyKSB7DQogICAgICAgICAgICAgICAgaWYoIXJmYzI0NDVfaXNfeG5hbWUoJG5hbWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEF0IGxhc3QsIGFsbCBpcyBPSyENCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KDQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX1RFWFQ6DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSBSRkMyNDQ1X1RZUEVfVElNRToNCiAgICAgICAgICAgIGlmKGlzX2ludCgkdmFsdWUpKSB7DQogICAgICAgICAgICAgICAgaWYoJHZhbHVlIDwgMCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICR2YWx1ZSA9ICIkdmFsdWUiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZighaXNfc3RyaW5nKCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmKHN0cmxlbigkdmFsdWUpID09IDcpIHsNCiAgICAgICAgICAgICAgICBpZihzdHJ0b3VwcGVyKHN1YnN0cigkdmFsdWUsIC0xKSkgIT0gJ1onKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJHZhbHVlID0gc3Vic3RyKCR2YWx1ZSwgMCwgNik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZihzdHJsZW4oJHZhbHVlKSAhPSA2KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkaCA9IGludHZhbChzdWJzdHIoJHZhbHVlLCAwLCAyKSk7DQogICAgICAgICAgICAkbSA9IGludHZhbChzdWJzdHIoJHZhbHVlLCAyLCAyKSk7DQogICAgICAgICAgICAkcyA9IGludHZhbChzdWJzdHIoJHZhbHVlLCA0LCAyKSk7DQoNCiAgICAgICAgICAgIHJldHVybiAoJGggPD0gMjMgJiYgJG0gPD0gNTkgJiYgJHMgPD0gNjApOw0KICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlIFJGQzI0NDVfVFlQRV9VVENfT0ZGU0VUOg0KICAgICAgICAgICAgaWYoaXNfaW50KCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICBpZigkdmFsdWUgPj0gMCkgew0KICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSAiKyR2YWx1ZSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSAiJHZhbHVlIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmKCFpc19zdHJpbmcoJHZhbHVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYoc3RybGVuKCR2YWx1ZSkgPT0gNykgew0KICAgICAgICAgICAgICAgICRzID0gaW50dmFsKHN1YnN0cigkdmFsdWUsIDUsIDIpKTsNCiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdWJzdHIoJHZhbHVlLCAwLCA1KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKHN0cmxlbigkdmFsdWUpICE9IDUgfHwgJHZhbHVlID09ICItMDAwMCIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmKCR2YWx1ZXswfSAhPSAnKycgJiYgJHZhbHVlezB9ICE9ICctJykgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGggPSBpbnR2YWwoc3Vic3RyKCR2YWx1ZSwgMSwgMikpOw0KICAgICAgICAgICAgJG0gPSBpbnR2YWwoc3Vic3RyKCR2YWx1ZSwgMywgMikpOw0KDQogICAgICAgICAgICByZXR1cm4gKCRoIDw9IDIzICYmICRtIDw9IDU5ICYmICRzIDw9IDU5KTsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgYXNzZXJ0aW9uDQogICAgdHJpZ2dlcl9lcnJvcignYmFkIGNvZGUgcGF0aCcsIEVfVVNFUl9XQVJOSU5HKTsNCiAgICB2YXJfZHVtcCgkdHlwZSk7DQogICAgcmV0dXJuIGZhbHNlOw0KfQ0KDQpmdW5jdGlvbiByZmMyNDQ1X2RvX3ZhbHVlX2Zvcm1hdHRpbmcoJHZhbHVlLCAkdHlwZSkgew0KICAgIC8vIE5vdGU6IHRoaXMgZG9lcyBub3Qgb25seSBkbyBmb3JtYXR0aW5nOyBpdCBhbHNvIGRvZXMgY29udmVyc2lvbiB0byBzdHJpbmchDQogICAgc3dpdGNoKCR0eXBlKSB7DQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX0NBTF9BRERSRVNTOg0KICAgICAgICBjYXNlIFJGQzI0NDVfVFlQRV9VUkk6DQogICAgICAgICAgICAvLyBFbmNsb3NlIGluIGRvdWJsZSBxdW90ZXMNCiAgICAgICAgICAgICR2YWx1ZSA9ICciJy4kdmFsdWUuJyInOw0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBSRkMyNDQ1X1RZUEVfVEVYVDoNCiAgICAgICAgICAgIC8vIEVzY2FwZSBlbnRpdGllcw0KICAgICAgICAgICAgJHZhbHVlID0gc3RydHIoJHZhbHVlLCBhcnJheSgiXG4iID0+ICdcXG4nLCAnXFwnID0+ICdcXFxcJywgJywnID0+ICdcXCwnLCAnOycgPT4gJ1xcOycpKTsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybiAkdmFsdWU7DQp9DQoNCmZ1bmN0aW9uIHJmYzI0NDVfdW5kb192YWx1ZV9mb3JtYXR0aW5nKCR2YWx1ZSwgJHR5cGUpIHsNCiAgICBzd2l0Y2goJHR5cGUpIHsNCiAgICAgICAgY2FzZSBSRkMyNDQ1X1RZUEVfQ0FMX0FERFJFU1M6DQogICAgICAgIGNhc2UgUkZDMjQ0NV9UWVBFX1VSSToNCiAgICAgICAgICAgIC8vIFRyaW0gYmVnaW5uaW5nIGFuZCBlbmQgZG91YmxlIHF1b3RlDQogICAgICAgICAgICAkdmFsdWUgPSBzdWJzdHIoJHZhbHVlLCAxLCBzdHJsZW4oJHZhbHVlKSAtIDIpOw0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBSRkMyNDQ1X1RZUEVfVEVYVDoNCiAgICAgICAgICAgIC8vIFVuZXNjYXBlIGVudGl0aWVzDQogICAgICAgICAgICAkdmFsdWUgPSBzdHJ0cigkdmFsdWUsIGFycmF5KCdcXG4nID0+ICJcbiIsICdcXE4nID0+ICJcbiIsICdcXFxcJyA9PiAnXFwnLCAnXFwsJyA9PiAnLCcsICdcXDsnID0+ICc7JykpOw0KICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuICR2YWx1ZTsNCn0NCg0KLy8gVGhpcyBpcyBjaGVhdGluZzogR1VJRHMgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggUkZDIDI0NDUNCg0KZnVuY3Rpb24gcmZjMjQ0NV9ndWlkKCkgew0KICAgIC8vIEltcGxlbWVudGVkIGFzIHBlciB0aGUgTmV0d29yayBXb3JraW5nIEdyb3VwIGRyYWZ0IG9uIFVVSURzIGFuZCBHVUlEcw0KDQogICAgLy8gVGhlc2UgdHdvIG9jdGV0cyBnZXQgc3BlY2lhbCB0cmVhdG1lbnQNCiAgICAkdGltZV9oaV9hbmRfdmVyc2lvbiAgICAgICA9IHNwcmludGYoJyUwMngnLCAoMSA8PCA2KSArIG10X3JhbmQoMCwgMTUpKTsgLy8gMDEwMCBwbHVzIDQgcmFuZG9tIGJpdHMNCiAgICAkY2xvY2tfc2VxX2hpX2FuZF9yZXNlcnZlZCA9IHNwcmludGYoJyUwMngnLCAoMSA8PCA3KSArIG10X3JhbmQoMCwgNjMpKTsgLy8gMTAgcGx1cyA2IHJhbmRvbSBiaXRzDQoNCiAgICAvLyBOZWVkIGFub3RoZXIgMTQgcmFuZG9tIG9jdGVjdHMNCiAgICAkcG9vbCA9ICcnOw0KICAgIGZvcigkaSA9IDA7ICRpIDwgNzsgKyskaSkgew0KICAgICAgICAkcG9vbCAuPSBzcHJpbnRmKCclMDR4JywgbXRfcmFuZCgwLCA2NTUzNSkpOw0KICAgIH0NCg0KICAgIC8vIHRpbWVfbG93ID0gNCBvY3RldHMNCiAgICAkcmFuZG9tICA9IHN1YnN0cigkcG9vbCwgMCwgOCkuJy0nOw0KDQogICAgLy8gdGltZV9taWQgPSAyIG9jdGV0cw0KICAgICRyYW5kb20gLj0gc3Vic3RyKCRwb29sLCA4LCA0KS4nLSc7DQoNCiAgICAvLyB0aW1lX2hpZ2hfYW5kX3ZlcnNpb24gPSAyIG9jdGV0cw0KICAgICRyYW5kb20gLj0gJHRpbWVfaGlfYW5kX3ZlcnNpb24uc3Vic3RyKCRwb29sLCAxMiwgMikuJy0nOw0KDQogICAgLy8gY2xvY2tfc2VxX2hpZ2hfYW5kX3Jlc2VydmVkID0gMSBvY3RldA0KICAgICRyYW5kb20gLj0gJGNsb2NrX3NlcV9oaV9hbmRfcmVzZXJ2ZWQ7DQoNCiAgICAvLyBjbG9ja19zZXFfbG93ID0gMSBvY3RldA0KICAgICRyYW5kb20gLj0gc3Vic3RyKCRwb29sLCAxMywgMikuJy0nOw0KDQogICAgLy8gbm9kZSA9IDYgb2N0ZXRzDQogICAgJHJhbmRvbSAuPSBzdWJzdHIoJHBvb2wsIDE0LCAxMik7DQoNCiAgICByZXR1cm4gJHJhbmRvbTsNCn0NCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/LICENSE.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CQkgIEdOVSBMRVNTRVIgR0VORVJBTCBQVUJMSUMgTElDRU5TRQ0KCQkgICAgICAgVmVyc2lvbiAyLjEsIEZlYnJ1YXJ5IDE5OTkNCg0KIENvcHlyaWdodCAoQykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCiAgICAgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0ENCiBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMNCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4NCg0KW1RoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2VkIHZlcnNpb24gb2YgdGhlIExlc3NlciBHUEwuICBJdCBhbHNvIGNvdW50cw0KIGFzIHRoZSBzdWNjZXNzb3Igb2YgdGhlIEdOVSBMaWJyYXJ5IFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIsIGhlbmNlDQogdGhlIHZlcnNpb24gbnVtYmVyIDIuMS5dDQoNCgkJCSAgICBQcmVhbWJsZQ0KDQogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXINCmZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljDQpMaWNlbnNlcyBhcmUgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlDQpmcmVlIHNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuDQoNCiAgVGhpcyBsaWNlbnNlLCB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFwcGxpZXMgdG8gc29tZQ0Kc3BlY2lhbGx5IGRlc2lnbmF0ZWQgc29mdHdhcmUgcGFja2FnZXMtLXR5cGljYWxseSBsaWJyYXJpZXMtLW9mIHRoZQ0KRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGFuZCBvdGhlciBhdXRob3JzIHdobyBkZWNpZGUgdG8gdXNlIGl0LiAgWW91DQpjYW4gdXNlIGl0IHRvbywgYnV0IHdlIHN1Z2dlc3QgeW91IGZpcnN0IHRoaW5rIGNhcmVmdWxseSBhYm91dCB3aGV0aGVyDQp0aGlzIGxpY2Vuc2Ugb3IgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgdGhlIGJldHRlcg0Kc3RyYXRlZ3kgdG8gdXNlIGluIGFueSBwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkIG9uIHRoZSBleHBsYW5hdGlvbnMgYmVsb3cuDQoNCiAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20gb2YgdXNlLA0Kbm90IHByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdA0KeW91IGhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZQ0KZm9yIHRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCk7IHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldA0KaXQgaWYgeW91IHdhbnQgaXQ7IHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCB1c2UgcGllY2VzIG9mDQppdCBpbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGFyZSBpbmZvcm1lZCB0aGF0IHlvdSBjYW4gZG8NCnRoZXNlIHRoaW5ncy4NCg0KICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQgZm9yYmlkDQpkaXN0cmlidXRvcnMgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVyIHRoZXNlDQpyaWdodHMuICBUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3INCnlvdSBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIGxpYnJhcnkgb3IgaWYgeW91IG1vZGlmeSBpdC4NCg0KICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJyYXJ5LCB3aGV0aGVyIGdyYXRpcw0Kb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBnaXZlIHRoZSByZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQgd2UgZ2F2ZQ0KeW91LiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlIHNvdXJjZQ0KY29kZS4gIElmIHlvdSBsaW5rIG90aGVyIGNvZGUgd2l0aCB0aGUgbGlicmFyeSwgeW91IG11c3QgcHJvdmlkZQ0KY29tcGxldGUgb2JqZWN0IGZpbGVzIHRvIHRoZSByZWNpcGllbnRzLCBzbyB0aGF0IHRoZXkgY2FuIHJlbGluayB0aGVtDQp3aXRoIHRoZSBsaWJyYXJ5IGFmdGVyIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZw0KaXQuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpciByaWdodHMuDQoNCiAgV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkgd2UgY29weXJpZ2h0IHRoZQ0KbGlicmFyeSwgYW5kICgyKSB3ZSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlLCB3aGljaCBnaXZlcyB5b3UgbGVnYWwNCnBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBsaWJyYXJ5Lg0KDQogIFRvIHByb3RlY3QgZWFjaCBkaXN0cmlidXRvciwgd2Ugd2FudCB0byBtYWtlIGl0IHZlcnkgY2xlYXIgdGhhdA0KdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoZSBmcmVlIGxpYnJhcnkuICBBbHNvLCBpZiB0aGUgbGlicmFyeSBpcw0KbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHRoZSByZWNpcGllbnRzIHNob3VsZCBrbm93DQp0aGF0IHdoYXQgdGhleSBoYXZlIGlzIG5vdCB0aGUgb3JpZ2luYWwgdmVyc2lvbiwgc28gdGhhdCB0aGUgb3JpZ2luYWwNCmF1dGhvcidzIHJlcHV0YXRpb24gd2lsbCBub3QgYmUgYWZmZWN0ZWQgYnkgcHJvYmxlbXMgdGhhdCBtaWdodCBiZQ0KaW50cm9kdWNlZCBieSBvdGhlcnMuDQoMDQogIEZpbmFsbHksIHNvZnR3YXJlIHBhdGVudHMgcG9zZSBhIGNvbnN0YW50IHRocmVhdCB0byB0aGUgZXhpc3RlbmNlIG9mDQphbnkgZnJlZSBwcm9ncmFtLiAgV2Ugd2lzaCB0byBtYWtlIHN1cmUgdGhhdCBhIGNvbXBhbnkgY2Fubm90DQplZmZlY3RpdmVseSByZXN0cmljdCB0aGUgdXNlcnMgb2YgYSBmcmVlIHByb2dyYW0gYnkgb2J0YWluaW5nIGENCnJlc3RyaWN0aXZlIGxpY2Vuc2UgZnJvbSBhIHBhdGVudCBob2xkZXIuICBUaGVyZWZvcmUsIHdlIGluc2lzdCB0aGF0DQphbnkgcGF0ZW50IGxpY2Vuc2Ugb2J0YWluZWQgZm9yIGEgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBtdXN0IGJlDQpjb25zaXN0ZW50IHdpdGggdGhlIGZ1bGwgZnJlZWRvbSBvZiB1c2Ugc3BlY2lmaWVkIGluIHRoaXMgbGljZW5zZS4NCg0KICBNb3N0IEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5nIHNvbWUgbGlicmFyaWVzLCBpcyBjb3ZlcmVkIGJ5IHRoZQ0Kb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGlzIGxpY2Vuc2UsIHRoZSBHTlUgTGVzc2VyDQpHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhcHBsaWVzIHRvIGNlcnRhaW4gZGVzaWduYXRlZCBsaWJyYXJpZXMsIGFuZA0KaXMgcXVpdGUgZGlmZmVyZW50IGZyb20gdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBXZSB1c2UNCnRoaXMgbGljZW5zZSBmb3IgY2VydGFpbiBsaWJyYXJpZXMgaW4gb3JkZXIgdG8gcGVybWl0IGxpbmtpbmcgdGhvc2UNCmxpYnJhcmllcyBpbnRvIG5vbi1mcmVlIHByb2dyYW1zLg0KDQogIFdoZW4gYSBwcm9ncmFtIGlzIGxpbmtlZCB3aXRoIGEgbGlicmFyeSwgd2hldGhlciBzdGF0aWNhbGx5IG9yIHVzaW5nDQphIHNoYXJlZCBsaWJyYXJ5LCB0aGUgY29tYmluYXRpb24gb2YgdGhlIHR3byBpcyBsZWdhbGx5IHNwZWFraW5nIGENCmNvbWJpbmVkIHdvcmssIGEgZGVyaXZhdGl2ZSBvZiB0aGUgb3JpZ2luYWwgbGlicmFyeS4gIFRoZSBvcmRpbmFyeQ0KR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB0aGVyZWZvcmUgcGVybWl0cyBzdWNoIGxpbmtpbmcgb25seSBpZiB0aGUNCmVudGlyZSBjb21iaW5hdGlvbiBmaXRzIGl0cyBjcml0ZXJpYSBvZiBmcmVlZG9tLiAgVGhlIExlc3NlciBHZW5lcmFsDQpQdWJsaWMgTGljZW5zZSBwZXJtaXRzIG1vcmUgbGF4IGNyaXRlcmlhIGZvciBsaW5raW5nIG90aGVyIGNvZGUgd2l0aA0KdGhlIGxpYnJhcnkuDQoNCiAgV2UgY2FsbCB0aGlzIGxpY2Vuc2UgdGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYmVjYXVzZSBpdA0KZG9lcyBMZXNzIHRvIHByb3RlY3QgdGhlIHVzZXIncyBmcmVlZG9tIHRoYW4gdGhlIG9yZGluYXJ5IEdlbmVyYWwNClB1YmxpYyBMaWNlbnNlLiAgSXQgYWxzbyBwcm92aWRlcyBvdGhlciBmcmVlIHNvZnR3YXJlIGRldmVsb3BlcnMgTGVzcw0Kb2YgYW4gYWR2YW50YWdlIG92ZXIgY29tcGV0aW5nIG5vbi1mcmVlIHByb2dyYW1zLiAgVGhlc2UgZGlzYWR2YW50YWdlcw0KYXJlIHRoZSByZWFzb24gd2UgdXNlIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtYW55DQpsaWJyYXJpZXMuICBIb3dldmVyLCB0aGUgTGVzc2VyIGxpY2Vuc2UgcHJvdmlkZXMgYWR2YW50YWdlcyBpbiBjZXJ0YWluDQpzcGVjaWFsIGNpcmN1bXN0YW5jZXMuDQoNCiAgRm9yIGV4YW1wbGUsIG9uIHJhcmUgb2NjYXNpb25zLCB0aGVyZSBtYXkgYmUgYSBzcGVjaWFsIG5lZWQgdG8NCmVuY291cmFnZSB0aGUgd2lkZXN0IHBvc3NpYmxlIHVzZSBvZiBhIGNlcnRhaW4gbGlicmFyeSwgc28gdGhhdCBpdCBiZWNvbWVzDQphIGRlLWZhY3RvIHN0YW5kYXJkLiAgVG8gYWNoaWV2ZSB0aGlzLCBub24tZnJlZSBwcm9ncmFtcyBtdXN0IGJlDQphbGxvd2VkIHRvIHVzZSB0aGUgbGlicmFyeS4gIEEgbW9yZSBmcmVxdWVudCBjYXNlIGlzIHRoYXQgYSBmcmVlDQpsaWJyYXJ5IGRvZXMgdGhlIHNhbWUgam9iIGFzIHdpZGVseSB1c2VkIG5vbi1mcmVlIGxpYnJhcmllcy4gIEluIHRoaXMNCmNhc2UsIHRoZXJlIGlzIGxpdHRsZSB0byBnYWluIGJ5IGxpbWl0aW5nIHRoZSBmcmVlIGxpYnJhcnkgdG8gZnJlZQ0Kc29mdHdhcmUgb25seSwgc28gd2UgdXNlIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4NCg0KICBJbiBvdGhlciBjYXNlcywgcGVybWlzc2lvbiB0byB1c2UgYSBwYXJ0aWN1bGFyIGxpYnJhcnkgaW4gbm9uLWZyZWUNCnByb2dyYW1zIGVuYWJsZXMgYSBncmVhdGVyIG51bWJlciBvZiBwZW9wbGUgdG8gdXNlIGEgbGFyZ2UgYm9keSBvZg0KZnJlZSBzb2Z0d2FyZS4gIEZvciBleGFtcGxlLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgR05VIEMgTGlicmFyeSBpbg0Kbm9uLWZyZWUgcHJvZ3JhbXMgZW5hYmxlcyBtYW55IG1vcmUgcGVvcGxlIHRvIHVzZSB0aGUgd2hvbGUgR05VDQpvcGVyYXRpbmcgc3lzdGVtLCBhcyB3ZWxsIGFzIGl0cyB2YXJpYW50LCB0aGUgR05VL0xpbnV4IG9wZXJhdGluZw0Kc3lzdGVtLg0KDQogIEFsdGhvdWdoIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBMZXNzIHByb3RlY3RpdmUgb2YgdGhlDQp1c2VycycgZnJlZWRvbSwgaXQgZG9lcyBlbnN1cmUgdGhhdCB0aGUgdXNlciBvZiBhIHByb2dyYW0gdGhhdCBpcw0KbGlua2VkIHdpdGggdGhlIExpYnJhcnkgaGFzIHRoZSBmcmVlZG9tIGFuZCB0aGUgd2hlcmV3aXRoYWwgdG8gcnVuDQp0aGF0IHByb2dyYW0gdXNpbmcgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBMaWJyYXJ5Lg0KDQogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kDQptb2RpZmljYXRpb24gZm9sbG93LiAgUGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGENCiJ3b3JrIGJhc2VkIG9uIHRoZSBsaWJyYXJ5IiBhbmQgYSAid29yayB0aGF0IHVzZXMgdGhlIGxpYnJhcnkiLiAgVGhlDQpmb3JtZXIgY29udGFpbnMgY29kZSBkZXJpdmVkIGZyb20gdGhlIGxpYnJhcnksIHdoZXJlYXMgdGhlIGxhdHRlciBtdXN0DQpiZSBjb21iaW5lZCB3aXRoIHRoZSBsaWJyYXJ5IGluIG9yZGVyIHRvIHJ1bi4NCgwNCgkJICBHTlUgTEVTU0VSIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UNCiAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTg0KDQogIDAuIFRoaXMgTGljZW5zZSBBZ3JlZW1lbnQgYXBwbGllcyB0byBhbnkgc29mdHdhcmUgbGlicmFyeSBvciBvdGhlcg0KcHJvZ3JhbSB3aGljaCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgb3INCm90aGVyIGF1dGhvcml6ZWQgcGFydHkgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YNCnRoaXMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKGFsc28gY2FsbGVkICJ0aGlzIExpY2Vuc2UiKS4NCkVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLg0KDQogIEEgImxpYnJhcnkiIG1lYW5zIGEgY29sbGVjdGlvbiBvZiBzb2Z0d2FyZSBmdW5jdGlvbnMgYW5kL29yIGRhdGENCnByZXBhcmVkIHNvIGFzIHRvIGJlIGNvbnZlbmllbnRseSBsaW5rZWQgd2l0aCBhcHBsaWNhdGlvbiBwcm9ncmFtcw0KKHdoaWNoIHVzZSBzb21lIG9mIHRob3NlIGZ1bmN0aW9ucyBhbmQgZGF0YSkgdG8gZm9ybSBleGVjdXRhYmxlcy4NCg0KICBUaGUgIkxpYnJhcnkiLCBiZWxvdywgcmVmZXJzIHRvIGFueSBzdWNoIHNvZnR3YXJlIGxpYnJhcnkgb3Igd29yaw0Kd2hpY2ggaGFzIGJlZW4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlc2UgdGVybXMuICBBICJ3b3JrIGJhc2VkIG9uIHRoZQ0KTGlicmFyeSIgbWVhbnMgZWl0aGVyIHRoZSBMaWJyYXJ5IG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXINCmNvcHlyaWdodCBsYXc6IHRoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgTGlicmFyeSBvciBhDQpwb3J0aW9uIG9mIGl0LCBlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkDQpzdHJhaWdodGZvcndhcmRseSBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0aW9uIGlzDQppbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4gdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKQ0KDQogICJTb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yDQptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhIGxpYnJhcnksIGNvbXBsZXRlIHNvdXJjZSBjb2RlIG1lYW5zDQphbGwgdGhlIHNvdXJjZSBjb2RlIGZvciBhbGwgbW9kdWxlcyBpdCBjb250YWlucywgcGx1cyBhbnkgYXNzb2NpYXRlZA0KaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0byBjb250cm9sIGNvbXBpbGF0aW9uDQphbmQgaW5zdGFsbGF0aW9uIG9mIHRoZSBsaWJyYXJ5Lg0KDQogIEFjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90DQpjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mDQpydW5uaW5nIGEgcHJvZ3JhbSB1c2luZyB0aGUgTGlicmFyeSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIG91dHB1dCBmcm9tDQpzdWNoIGEgcHJvZ3JhbSBpcyBjb3ZlcmVkIG9ubHkgaWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkDQpvbiB0aGUgTGlicmFyeSAoaW5kZXBlbmRlbnQgb2YgdGhlIHVzZSBvZiB0aGUgTGlicmFyeSBpbiBhIHRvb2wgZm9yDQp3cml0aW5nIGl0KS4gIFdoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgTGlicmFyeSBkb2VzDQphbmQgd2hhdCB0aGUgcHJvZ3JhbSB0aGF0IHVzZXMgdGhlIExpYnJhcnkgZG9lcy4NCiAgDQogIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIExpYnJhcnkncw0KY29tcGxldGUgc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQNCnlvdSBjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuDQphcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdA0KYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkNCndhcnJhbnR5OyBhbmQgZGlzdHJpYnV0ZSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggdGhlDQpMaWJyYXJ5Lg0KDQogIFlvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksDQphbmQgeW91IG1heSBhdCB5b3VyIG9wdGlvbiBvZmZlciB3YXJyYW50eSBwcm90ZWN0aW9uIGluIGV4Y2hhbmdlIGZvciBhDQpmZWUuDQoMDQogIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIExpYnJhcnkgb3IgYW55IHBvcnRpb24NCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBhbmQgY29weSBhbmQNCmRpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQ0KYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoNCg0KICAgIGEpIFRoZSBtb2RpZmllZCB3b3JrIG11c3QgaXRzZWxmIGJlIGEgc29mdHdhcmUgbGlicmFyeS4NCg0KICAgIGIpIFlvdSBtdXN0IGNhdXNlIHRoZSBmaWxlcyBtb2RpZmllZCB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcw0KICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuDQoNCiAgICBjKSBZb3UgbXVzdCBjYXVzZSB0aGUgd2hvbGUgb2YgdGhlIHdvcmsgdG8gYmUgbGljZW5zZWQgYXQgbm8NCiAgICBjaGFyZ2UgdG8gYWxsIHRoaXJkIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4NCg0KICAgIGQpIElmIGEgZmFjaWxpdHkgaW4gdGhlIG1vZGlmaWVkIExpYnJhcnkgcmVmZXJzIHRvIGEgZnVuY3Rpb24gb3IgYQ0KICAgIHRhYmxlIG9mIGRhdGEgdG8gYmUgc3VwcGxpZWQgYnkgYW4gYXBwbGljYXRpb24gcHJvZ3JhbSB0aGF0IHVzZXMNCiAgICB0aGUgZmFjaWxpdHksIG90aGVyIHRoYW4gYXMgYW4gYXJndW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2lsaXR5DQogICAgaXMgaW52b2tlZCwgdGhlbiB5b3UgbXVzdCBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQgdG8gZW5zdXJlIHRoYXQsDQogICAgaW4gdGhlIGV2ZW50IGFuIGFwcGxpY2F0aW9uIGRvZXMgbm90IHN1cHBseSBzdWNoIGZ1bmN0aW9uIG9yDQogICAgdGFibGUsIHRoZSBmYWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5kIHBlcmZvcm1zIHdoYXRldmVyIHBhcnQgb2YNCiAgICBpdHMgcHVycG9zZSByZW1haW5zIG1lYW5pbmdmdWwuDQoNCiAgICAoRm9yIGV4YW1wbGUsIGEgZnVuY3Rpb24gaW4gYSBsaWJyYXJ5IHRvIGNvbXB1dGUgc3F1YXJlIHJvb3RzIGhhcw0KICAgIGEgcHVycG9zZSB0aGF0IGlzIGVudGlyZWx5IHdlbGwtZGVmaW5lZCBpbmRlcGVuZGVudCBvZiB0aGUNCiAgICBhcHBsaWNhdGlvbi4gIFRoZXJlZm9yZSwgU3Vic2VjdGlvbiAyZCByZXF1aXJlcyB0aGF0IGFueQ0KICAgIGFwcGxpY2F0aW9uLXN1cHBsaWVkIGZ1bmN0aW9uIG9yIHRhYmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlvbiBtdXN0DQogICAgYmUgb3B0aW9uYWw6IGlmIHRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgaXQsIHRoZSBzcXVhcmUNCiAgICByb290IGZ1bmN0aW9uIG11c3Qgc3RpbGwgY29tcHV0ZSBzcXVhcmUgcm9vdHMuKQ0KDQpUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmDQppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBMaWJyYXJ5LA0KYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluDQp0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlDQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UNCmRpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZA0Kb24gdGhlIExpYnJhcnksIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mDQp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQ0KZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlDQppdC4NCg0KVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0DQp5b3VyIHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8NCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcg0KY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgTGlicmFyeS4NCg0KSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgTGlicmFyeQ0Kd2l0aCB0aGUgTGlicmFyeSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkpIG9uIGEgdm9sdW1lIG9mDQphIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRlcg0KdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4NCg0KICAzLiBZb3UgbWF5IG9wdCB0byBhcHBseSB0aGUgdGVybXMgb2YgdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYw0KTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZSB0byBhIGdpdmVuIGNvcHkgb2YgdGhlIExpYnJhcnkuICBUbyBkbw0KdGhpcywgeW91IG11c3QgYWx0ZXIgYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlLCBzbw0KdGhhdCB0aGV5IHJlZmVyIHRvIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLA0KaW5zdGVhZCBvZiB0byB0aGlzIExpY2Vuc2UuICAoSWYgYSBuZXdlciB2ZXJzaW9uIHRoYW4gdmVyc2lvbiAyIG9mIHRoZQ0Kb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBjYW4gc3BlY2lmeQ0KdGhhdCB2ZXJzaW9uIGluc3RlYWQgaWYgeW91IHdpc2guKSAgRG8gbm90IG1ha2UgYW55IG90aGVyIGNoYW5nZSBpbg0KdGhlc2Ugbm90aWNlcy4NCgwNCiAgT25jZSB0aGlzIGNoYW5nZSBpcyBtYWRlIGluIGEgZ2l2ZW4gY29weSwgaXQgaXMgaXJyZXZlcnNpYmxlIGZvcg0KdGhhdCBjb3B5LCBzbyB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBhbGwNCnN1YnNlcXVlbnQgY29waWVzIGFuZCBkZXJpdmF0aXZlIHdvcmtzIG1hZGUgZnJvbSB0aGF0IGNvcHkuDQoNCiAgVGhpcyBvcHRpb24gaXMgdXNlZnVsIHdoZW4geW91IHdpc2ggdG8gY29weSBwYXJ0IG9mIHRoZSBjb2RlIG9mDQp0aGUgTGlicmFyeSBpbnRvIGEgcHJvZ3JhbSB0aGF0IGlzIG5vdCBhIGxpYnJhcnkuDQoNCiAgNC4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhIHBvcnRpb24gb3INCmRlcml2YXRpdmUgb2YgaXQsIHVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtDQp1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhY2NvbXBhbnkNCml0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSwgd2hpY2gNCm11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYQ0KbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLg0KDQogIElmIGRpc3RyaWJ1dGlvbiBvZiBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5DQpmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50IGFjY2VzcyB0byBjb3B5IHRoZQ0Kc291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50IHRvDQpkaXN0cmlidXRlIHRoZSBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhpcmQgcGFydGllcyBhcmUgbm90DQpjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLg0KDQogIDUuIEEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUgb2YgYW55IHBvcnRpb24gb2YgdGhlDQpMaWJyYXJ5LCBidXQgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIHRoZSBMaWJyYXJ5IGJ5IGJlaW5nIGNvbXBpbGVkIG9yDQpsaW5rZWQgd2l0aCBpdCwgaXMgY2FsbGVkIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5Ii4gIFN1Y2ggYQ0Kd29yaywgaW4gaXNvbGF0aW9uLCBpcyBub3QgYSBkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnksIGFuZA0KdGhlcmVmb3JlIGZhbGxzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4NCg0KICBIb3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5DQpjcmVhdGVzIGFuIGV4ZWN1dGFibGUgdGhhdCBpcyBhIGRlcml2YXRpdmUgb2YgdGhlIExpYnJhcnkgKGJlY2F1c2UgaXQNCmNvbnRhaW5zIHBvcnRpb25zIG9mIHRoZSBMaWJyYXJ5KSwgcmF0aGVyIHRoYW4gYSAid29yayB0aGF0IHVzZXMgdGhlDQpsaWJyYXJ5Ii4gIFRoZSBleGVjdXRhYmxlIGlzIHRoZXJlZm9yZSBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZS4NClNlY3Rpb24gNiBzdGF0ZXMgdGVybXMgZm9yIGRpc3RyaWJ1dGlvbiBvZiBzdWNoIGV4ZWN1dGFibGVzLg0KDQogIFdoZW4gYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlDQp0aGF0IGlzIHBhcnQgb2YgdGhlIExpYnJhcnksIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgbWF5IGJlIGENCmRlcml2YXRpdmUgd29yayBvZiB0aGUgTGlicmFyeSBldmVuIHRob3VnaCB0aGUgc291cmNlIGNvZGUgaXMgbm90Lg0KV2hldGhlciB0aGlzIGlzIHRydWUgaXMgZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4gYmUNCmxpbmtlZCB3aXRob3V0IHRoZSBMaWJyYXJ5LCBvciBpZiB0aGUgd29yayBpcyBpdHNlbGYgYSBsaWJyYXJ5LiAgVGhlDQp0aHJlc2hvbGQgZm9yIHRoaXMgdG8gYmUgdHJ1ZSBpcyBub3QgcHJlY2lzZWx5IGRlZmluZWQgYnkgbGF3Lg0KDQogIElmIHN1Y2ggYW4gb2JqZWN0IGZpbGUgdXNlcyBvbmx5IG51bWVyaWNhbCBwYXJhbWV0ZXJzLCBkYXRhDQpzdHJ1Y3R1cmUgbGF5b3V0cyBhbmQgYWNjZXNzb3JzLCBhbmQgc21hbGwgbWFjcm9zIGFuZCBzbWFsbCBpbmxpbmUNCmZ1bmN0aW9ucyAodGVuIGxpbmVzIG9yIGxlc3MgaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBvYmplY3QNCmZpbGUgaXMgdW5yZXN0cmljdGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgbGVnYWxseSBhIGRlcml2YXRpdmUNCndvcmsuICAoRXhlY3V0YWJsZXMgY29udGFpbmluZyB0aGlzIG9iamVjdCBjb2RlIHBsdXMgcG9ydGlvbnMgb2YgdGhlDQpMaWJyYXJ5IHdpbGwgc3RpbGwgZmFsbCB1bmRlciBTZWN0aW9uIDYuKQ0KDQogIE90aGVyd2lzZSwgaWYgdGhlIHdvcmsgaXMgYSBkZXJpdmF0aXZlIG9mIHRoZSBMaWJyYXJ5LCB5b3UgbWF5DQpkaXN0cmlidXRlIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gNi4NCkFueSBleGVjdXRhYmxlcyBjb250YWluaW5nIHRoYXQgd29yayBhbHNvIGZhbGwgdW5kZXIgU2VjdGlvbiA2LA0Kd2hldGhlciBvciBub3QgdGhleSBhcmUgbGlua2VkIGRpcmVjdGx5IHdpdGggdGhlIExpYnJhcnkgaXRzZWxmLg0KDA0KICA2LiBBcyBhbiBleGNlcHRpb24gdG8gdGhlIFNlY3Rpb25zIGFib3ZlLCB5b3UgbWF5IGFsc28gY29tYmluZSBvcg0KbGluayBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgd2l0aCB0aGUgTGlicmFyeSB0byBwcm9kdWNlIGENCndvcmsgY29udGFpbmluZyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSwgYW5kIGRpc3RyaWJ1dGUgdGhhdCB3b3JrDQp1bmRlciB0ZXJtcyBvZiB5b3VyIGNob2ljZSwgcHJvdmlkZWQgdGhhdCB0aGUgdGVybXMgcGVybWl0DQptb2RpZmljYXRpb24gb2YgdGhlIHdvcmsgZm9yIHRoZSBjdXN0b21lcidzIG93biB1c2UgYW5kIHJldmVyc2UNCmVuZ2luZWVyaW5nIGZvciBkZWJ1Z2dpbmcgc3VjaCBtb2RpZmljYXRpb25zLg0KDQogIFlvdSBtdXN0IGdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIGVhY2ggY29weSBvZiB0aGUgd29yayB0aGF0IHRoZQ0KTGlicmFyeSBpcyB1c2VkIGluIGl0IGFuZCB0aGF0IHRoZSBMaWJyYXJ5IGFuZCBpdHMgdXNlIGFyZSBjb3ZlcmVkIGJ5DQp0aGlzIExpY2Vuc2UuICBZb3UgbXVzdCBzdXBwbHkgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmIHRoZSB3b3JrDQpkdXJpbmcgZXhlY3V0aW9uIGRpc3BsYXlzIGNvcHlyaWdodCBub3RpY2VzLCB5b3UgbXVzdCBpbmNsdWRlIHRoZQ0KY29weXJpZ2h0IG5vdGljZSBmb3IgdGhlIExpYnJhcnkgYW1vbmcgdGhlbSwgYXMgd2VsbCBhcyBhIHJlZmVyZW5jZQ0KZGlyZWN0aW5nIHRoZSB1c2VyIHRvIHRoZSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIEFsc28sIHlvdSBtdXN0IGRvIG9uZQ0Kb2YgdGhlc2UgdGhpbmdzOg0KDQogICAgYSkgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcNCiAgICBtYWNoaW5lLXJlYWRhYmxlIHNvdXJjZSBjb2RlIGZvciB0aGUgTGlicmFyeSBpbmNsdWRpbmcgd2hhdGV2ZXINCiAgICBjaGFuZ2VzIHdlcmUgdXNlZCBpbiB0aGUgd29yayAod2hpY2ggbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlcg0KICAgIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUpOyBhbmQsIGlmIHRoZSB3b3JrIGlzIGFuIGV4ZWN1dGFibGUgbGlua2VkDQogICAgd2l0aCB0aGUgTGlicmFyeSwgd2l0aCB0aGUgY29tcGxldGUgbWFjaGluZS1yZWFkYWJsZSAid29yayB0aGF0DQogICAgdXNlcyB0aGUgTGlicmFyeSIsIGFzIG9iamVjdCBjb2RlIGFuZC9vciBzb3VyY2UgY29kZSwgc28gdGhhdCB0aGUNCiAgICB1c2VyIGNhbiBtb2RpZnkgdGhlIExpYnJhcnkgYW5kIHRoZW4gcmVsaW5rIHRvIHByb2R1Y2UgYSBtb2RpZmllZA0KICAgIGV4ZWN1dGFibGUgY29udGFpbmluZyB0aGUgbW9kaWZpZWQgTGlicmFyeS4gIChJdCBpcyB1bmRlcnN0b29kDQogICAgdGhhdCB0aGUgdXNlciB3aG8gY2hhbmdlcyB0aGUgY29udGVudHMgb2YgZGVmaW5pdGlvbnMgZmlsZXMgaW4gdGhlDQogICAgTGlicmFyeSB3aWxsIG5vdCBuZWNlc3NhcmlseSBiZSBhYmxlIHRvIHJlY29tcGlsZSB0aGUgYXBwbGljYXRpb24NCiAgICB0byB1c2UgdGhlIG1vZGlmaWVkIGRlZmluaXRpb25zLikNCg0KICAgIGIpIFVzZSBhIHN1aXRhYmxlIHNoYXJlZCBsaWJyYXJ5IG1lY2hhbmlzbSBmb3IgbGlua2luZyB3aXRoIHRoZQ0KICAgIExpYnJhcnkuICBBIHN1aXRhYmxlIG1lY2hhbmlzbSBpcyBvbmUgdGhhdCAoMSkgdXNlcyBhdCBydW4gdGltZSBhDQogICAgY29weSBvZiB0aGUgbGlicmFyeSBhbHJlYWR5IHByZXNlbnQgb24gdGhlIHVzZXIncyBjb21wdXRlciBzeXN0ZW0sDQogICAgcmF0aGVyIHRoYW4gY29weWluZyBsaWJyYXJ5IGZ1bmN0aW9ucyBpbnRvIHRoZSBleGVjdXRhYmxlLCBhbmQgKDIpDQogICAgd2lsbCBvcGVyYXRlIHByb3Blcmx5IHdpdGggYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCBpZg0KICAgIHRoZSB1c2VyIGluc3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUgbW9kaWZpZWQgdmVyc2lvbiBpcw0KICAgIGludGVyZmFjZS1jb21wYXRpYmxlIHdpdGggdGhlIHZlcnNpb24gdGhhdCB0aGUgd29yayB3YXMgbWFkZSB3aXRoLg0KDQogICAgYykgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQNCiAgICBsZWFzdCB0aHJlZSB5ZWFycywgdG8gZ2l2ZSB0aGUgc2FtZSB1c2VyIHRoZSBtYXRlcmlhbHMNCiAgICBzcGVjaWZpZWQgaW4gU3Vic2VjdGlvbiA2YSwgYWJvdmUsIGZvciBhIGNoYXJnZSBubyBtb3JlDQogICAgdGhhbiB0aGUgY29zdCBvZiBwZXJmb3JtaW5nIHRoaXMgZGlzdHJpYnV0aW9uLg0KDQogICAgZCkgSWYgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIHRvIGNvcHkNCiAgICBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29weSB0aGUgYWJvdmUNCiAgICBzcGVjaWZpZWQgbWF0ZXJpYWxzIGZyb20gdGhlIHNhbWUgcGxhY2UuDQoNCiAgICBlKSBWZXJpZnkgdGhhdCB0aGUgdXNlciBoYXMgYWxyZWFkeSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlc2UNCiAgICBtYXRlcmlhbHMgb3IgdGhhdCB5b3UgaGF2ZSBhbHJlYWR5IHNlbnQgdGhpcyB1c2VyIGEgY29weS4NCg0KICBGb3IgYW4gZXhlY3V0YWJsZSwgdGhlIHJlcXVpcmVkIGZvcm0gb2YgdGhlICJ3b3JrIHRoYXQgdXNlcyB0aGUNCkxpYnJhcnkiIG11c3QgaW5jbHVkZSBhbnkgZGF0YSBhbmQgdXRpbGl0eSBwcm9ncmFtcyBuZWVkZWQgZm9yDQpyZXByb2R1Y2luZyB0aGUgZXhlY3V0YWJsZSBmcm9tIGl0LiAgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwNCnRoZSBtYXRlcmlhbHMgdG8gYmUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IGlzDQpub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkgZm9ybSkgd2l0aCB0aGUgbWFqb3INCmNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gb24NCndoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudCBpdHNlbGYgYWNjb21wYW5pZXMNCnRoZSBleGVjdXRhYmxlLg0KDQogIEl0IG1heSBoYXBwZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRpY3RzIHRoZSBsaWNlbnNlDQpyZXN0cmljdGlvbnMgb2Ygb3RoZXIgcHJvcHJpZXRhcnkgbGlicmFyaWVzIHRoYXQgZG8gbm90IG5vcm1hbGx5DQphY2NvbXBhbnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uICBTdWNoIGEgY29udHJhZGljdGlvbiBtZWFucyB5b3UgY2Fubm90DQp1c2UgYm90aCB0aGVtIGFuZCB0aGUgTGlicmFyeSB0b2dldGhlciBpbiBhbiBleGVjdXRhYmxlIHRoYXQgeW91DQpkaXN0cmlidXRlLg0KDA0KICA3LiBZb3UgbWF5IHBsYWNlIGxpYnJhcnkgZmFjaWxpdGllcyB0aGF0IGFyZSBhIHdvcmsgYmFzZWQgb24gdGhlDQpMaWJyYXJ5IHNpZGUtYnktc2lkZSBpbiBhIHNpbmdsZSBsaWJyYXJ5IHRvZ2V0aGVyIHdpdGggb3RoZXIgbGlicmFyeQ0KZmFjaWxpdGllcyBub3QgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHN1Y2ggYSBjb21iaW5lZA0KbGlicmFyeSwgcHJvdmlkZWQgdGhhdCB0aGUgc2VwYXJhdGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGJhc2VkIG9uDQp0aGUgTGlicmFyeSBhbmQgb2YgdGhlIG90aGVyIGxpYnJhcnkgZmFjaWxpdGllcyBpcyBvdGhlcndpc2UNCnBlcm1pdHRlZCwgYW5kIHByb3ZpZGVkIHRoYXQgeW91IGRvIHRoZXNlIHR3byB0aGluZ3M6DQoNCiAgICBhKSBBY2NvbXBhbnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2YgdGhlIHNhbWUgd29yaw0KICAgIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCB1bmNvbWJpbmVkIHdpdGggYW55IG90aGVyIGxpYnJhcnkNCiAgICBmYWNpbGl0aWVzLiAgVGhpcyBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUNCiAgICBTZWN0aW9ucyBhYm92ZS4NCg0KICAgIGIpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIHRoZSBjb21iaW5lZCBsaWJyYXJ5IG9mIHRoZSBmYWN0DQogICAgdGhhdCBwYXJ0IG9mIGl0IGlzIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwgYW5kIGV4cGxhaW5pbmcNCiAgICB3aGVyZSB0byBmaW5kIHRoZSBhY2NvbXBhbnlpbmcgdW5jb21iaW5lZCBmb3JtIG9mIHRoZSBzYW1lIHdvcmsuDQoNCiAgOC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yIGRpc3RyaWJ1dGUNCnRoZSBMaWJyYXJ5IGV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55DQphdHRlbXB0IG90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3INCmRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91cg0KcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4gIEhvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLA0Kb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlciB0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcw0KdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2ggcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLg0KDQogIDkuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdA0Kc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3INCmRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQ0KcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQ0KbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlDQpMaWJyYXJ5KSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZA0KYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZw0KdGhlIExpYnJhcnkgb3Igd29ya3MgYmFzZWQgb24gaXQuDQoNCiAgMTAuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUNCkxpYnJhcnkpLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlDQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlLCBsaW5rIHdpdGggb3IgbW9kaWZ5IHRoZSBMaWJyYXJ5DQpzdWJqZWN0IHRvIHRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyDQpyZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uDQpZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3aXRoDQp0aGlzIExpY2Vuc2UuDQoMDQogIDExLiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50DQppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLA0KY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcg0Kb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdA0KZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QNCmRpc3RyaWJ1dGUgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMNCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UNCm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQNCmxpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24gb2YgdGhlIExpYnJhcnkgYnkNCmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbg0KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bw0KcmVmcmFpbiBlbnRpcmVseSBmcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeS4NCg0KSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFueQ0KcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvIGFwcGx5LA0KYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIgY2lyY3Vtc3RhbmNlcy4NCg0KSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQ0KcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkNCnN1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUNCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtIHdoaWNoIGlzDQppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUNCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQNCnRocm91Z2ggdGhhdCBzeXN0ZW0gaW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0DQpzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nDQp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QNCmltcG9zZSB0aGF0IGNob2ljZS4NCg0KVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvDQpiZSBhIGNvbnNlcXVlbmNlIG9mIHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4NCg0KICAxMi4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBMaWJyYXJ5IGlzIHJlc3RyaWN0ZWQgaW4NCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQ0Kb3JpZ2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBMaWJyYXJ5IHVuZGVyIHRoaXMgTGljZW5zZSBtYXkgYWRkDQphbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nIHRob3NlIGNvdW50cmllcywNCnNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nIGNvdW50cmllcyBub3QgdGh1cw0KZXhjbHVkZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMgdGhlIGxpbWl0YXRpb24gYXMgaWYNCndyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLg0KDQogIDEzLiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldw0KdmVyc2lvbnMgb2YgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLg0KU3VjaCBuZXcgdmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLA0KYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLg0KDQpFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZSBMaWJyYXJ5DQpzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQNCiJhbnkgbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQNCmNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgTGlicmFyeSBkb2VzIG5vdCBzcGVjaWZ5IGENCmxpY2Vuc2UgdmVyc2lvbiBudW1iZXIsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KDA0KICAxNC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIExpYnJhcnkgaW50byBvdGhlciBmcmVlDQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgaW5jb21wYXRpYmxlIHdpdGggdGhlc2UsDQp3cml0ZSB0byB0aGUgYXV0aG9yIHRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcw0KY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd3JpdGUgdG8gdGhlIEZyZWUNClNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcyBtYWtlIGV4Y2VwdGlvbnMgZm9yIHRoaXMuICBPdXINCmRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMgb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMNCm9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0d2FyZSBhbmQgb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nDQphbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5Lg0KDQoJCQkgICAgTk8gV0FSUkFOVFkNCg0KICAxNS4gQkVDQVVTRSBUSEUgTElCUkFSWSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8NCldBUlJBTlRZIEZPUiBUSEUgTElCUkFSWSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuDQpFWENFUFQgV0hFTiBPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORC9PUg0KT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBMSUJSQVJZICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCktJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUNCkxJQlJBUlkgSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIExJQlJBUlkgUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FDQpUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uDQoNCiAgMTYuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4NCldSSVRJTkcgV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNQVkgTU9ESUZZDQpBTkQvT1IgUkVESVNUUklCVVRFIFRIRSBMSUJSQVJZIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVQ0KRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUg0KQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUNCkxJQlJBUlkgKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRiBEQVRBIE9SIERBVEEgQkVJTkcNClJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBDQpGQUlMVVJFIE9GIFRIRSBMSUJSQVJZIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIgU09GVFdBUkUpLCBFVkVOIElGDQpTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQpEQU1BR0VTLg0KDQoJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TDQoMDQogICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBMaWJyYXJpZXMNCg0KICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBsaWJyYXJ5LCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0DQpwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgd2UgcmVjb21tZW5kIG1ha2luZyBpdCBmcmVlIHNvZnR3YXJlIHRoYXQNCmV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZS4gIFlvdSBjYW4gZG8gc28gYnkgcGVybWl0dGluZw0KcmVkaXN0cmlidXRpb24gdW5kZXIgdGhlc2UgdGVybXMgKG9yLCBhbHRlcm5hdGl2ZWx5LCB1bmRlciB0aGUgdGVybXMgb2YgdGhlDQpvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlKS4NCg0KICBUbyBhcHBseSB0aGVzZSB0ZXJtcywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgbGlicmFyeS4gIEl0IGlzDQpzYWZlc3QgdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQ0KY29udmV5IHRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBlYWNoIGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdGhlDQoiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLg0KDQogICAgPG9uZSBsaW5lIHRvIGdpdmUgdGhlIGxpYnJhcnkncyBuYW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLj4NCiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPg0KDQogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCiAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCiAgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCg0KICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUNCiAgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KDQogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0KICAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiAgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQ0KDQpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4NCg0KWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXINCnNjaG9vbCwgaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIGxpYnJhcnksIGlmDQpuZWNlc3NhcnkuICBIZXJlIGlzIGEgc2FtcGxlOyBhbHRlciB0aGUgbmFtZXM6DQoNCiAgWW95b2R5bmUsIEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbiB0aGUNCiAgbGlicmFyeSBgRnJvYicgKGEgbGlicmFyeSBmb3IgdHdlYWtpbmcga25vYnMpIHdyaXR0ZW4gYnkgSmFtZXMgUmFuZG9tIEhhY2tlci4NCg0KICA8c2lnbmF0dXJlIG9mIFR5IENvb24+LCAxIEFwcmlsIDE5OTANCiAgVHkgQ29vbiwgUHJlc2lkZW50IG9mIFZpY2UNCg0KVGhhdCdzIGFsbCB0aGVyZSBpcyB0byBpdCENCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/README.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QmVubnUgLSBBbiBvYmplY3Qtb3JpZW50ZWQgaUNhbGVuZGFyIChSRkMyNDQ1KSBpbXBsZW1lbnRhdGlvbiBpbiBQSFANCmh0dHA6Ly9iZW5udS5zb3VyY2Vmb3JnZS5uZXQNCg0KQmVubnUgaXMgY29weXJpZ2h0IChDKSAyMDA1IGJ5IElvYW5uaXMgUGFwYWlvYW5ub3UgKHBqQHVvbS5ncikuDQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgVEFCTEUgT0YgQ09OVEVOVFMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCjEuIEFib3V0IEJlbm51DQogICAgMS4xLiBXaGF0IGlzIEJlbm51Pw0KICAgIDEuMi4gV2hhdCBpcyBpQ2FsZW5kYXI/DQogICAgMS4zLiBCZW5udSBsaWNlbnNlDQoNCjIuIFVzaW5nIEJlbm51DQogICAgMi4xLiBJbnRlZ3JhdGluZyBCZW5udSBpbiB5b3VyIGFwcGxpY2F0aW9uDQogICAgMi4yLiBVc2FnZSBleGFtcGxlcw0KDQozLiBCdWdzIGFuZCBsaW1pdGF0aW9ucw0KICAgIDMuMS4gS25vd24gbGltaXRhdGlvbnMNCg0KNC4gQ29udGFjdCBpbmZvcm1hdGlvbg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KMS4gQWJvdXQgQmVubnUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCjEuMS4gV2hhdCBpcyBCZW5udT8NCg0KICAgIEJlbm51IGlzIGEgc29mdHdhcmUgbGlicmFyeSB3cml0dGVuIGluIFBIUCB0aGF0IGltcGxlbWVudHMgdGhlIA0KICAgIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIElFVEYgaUNhbGVuZGFyIDIuMCBzcGVjaWZpY2F0aW9uIChSRkMgMjQ0NSkuIA0KICAgIEl0cyBwdXJwb3NlIGlzIHRvIGVuYWJsZSBhcHBsaWNhdGlvbnMgd2hpY2ggaGF2ZSBhbiBpbnRlcmVzdCBpbiANCiAgICB0aGlzIGZvcm1hdCAoZS5nLiBjYWxlbmRhcmluZywgc2NoZWR1bGVyIGFuZCBvcmdhbml6ZXIgcHJvZ3JhbXMpIA0KICAgIHRvIHN1cHBvcnQgaUNhbGVuZGFyIGluIGFuIGVhc3ksIHBvd2VyZnVsLCBhbmQgZXh0ZW5zaWJsZSB3YXkuDQoNCiAgICBJbiBvdGhlciB3b3JkcywgQmVubnUgZXhpc3RzIHNvIHRoYXQgZGV2ZWxvcGVycyB3b3JraW5nIG9uIHN1Y2ggDQogICAgYXBwbGljYXRpb25zIGRvbid0IGhhdmUgdG8gd2FzdGUgcGFpbmZ1bCBob3VycyBnb2luZyB0aHJvdWdoIHRoZSANCiAgICBzdGFuZGFyZCBhbmQgd3JpdGluZyB0aGUgY29kZSB0byBpbXBsZW1lbnQgaXQuIEluc3RlYWQsIHRoZXkgY2FuIA0KICAgIGluY2x1ZGUgdGhpcyBsaWJyYXJ5IGluIHRoZWlyIGFwcGxpY2F0aW9uIGFuZCBnZXQgdG8gdGhlIGZ1biBwYXJ0IA0KICAgIGFscmVhZHk6IGNvZGluZyBUSEVJUiBwcm9ncmFtLg0KDQoxLjIuIFdoYXQgaXMgaUNhbGVuZGFyPw0KDQogICAgVGhlIGlDYWxlbmRhciBzcGVjaWZpY2F0aW9uIGlzIGEgcmVzdWx0IG9mIHRoZSB3b3JrIG9mIHRoZSBJRVRGIA0KICAgIChJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlKSwgQ2FsZW5kYXJpbmcgYW5kIFNjaGVkdWxpbmcgDQogICAgV29ya2luZyBHcm91cC4gSXQgd2FzIGF1dGhvcmVkIGJ5IEZyYW5rIERhd3NvbiBvZiBMb3R1cyANCiAgICBEZXZlbG9wbWVudCBDb3Jwb3JhdGlvbiBhbmQgRGVyaWsgU3RlbmVyc29uIG9mIE1pY3Jvc29mdCANCiAgICBDb3Jwb3JhdGlvbi4gaUNhbGVuZGFyIGlzIGhlYXZpbHkgYmFzZWQgb24gdGhlIGVhcmxpZXIgdkNhbGVuZGFyIA0KICAgIGluZHVzdHJ5IHNwZWNpZmljYXRpb24gYnkgdGhlIEludGVybmV0IE1haWwgQ29uc29ydGl1bSAoSU1DKSwgDQogICAgd2hpY2ggaXQgZXh0ZW5kcyBhbmQgc2Vla3MgdG8gcmVwbGFjZS4NCiAgICANCiAgICBJbiBwcmFjdGljYWwgdGVybXMsIGlDYWxlbmRhciBpcyB0aGUgbnVtYmVyIG9uZSBmb3JtYXQgdXNlZCB0b2RheSANCiAgICBieSBjYWxlbmRhcmluZyBhbmQgc2NoZWR1bGVyIGFwcGxpY2F0aW9ucyB0byBpbXBvcnQgYW5kIGV4cG9ydCANCiAgICBkYXRhLiBBcHBsaWNhdGlvbnMgd2hpY2ggcHJvdmlkZSBzdXBwb3J0IGZvciBpQ2FsZW5kYXIgaW5jbHVkZToNCiAgICANCiAgICAqIE1pY3Jvc29mdCBPdXRsb29rDQogICAgKiBBcHBsZSBpQ2FsDQogICAgKiBNb3ppbGxhIENhbGVuZGFyIChhbmQgTW96aWxsYSBTdW5iaXJkKQ0KICAgICogTXVsYmVycnkNCiAgICAqIEtvcmdhbml6ZXINCiAgICAqIFhpbWlhbiBFdm9sdXRpb24NCg0KICAgIEVmZmVjdGl2ZWx5LCB0aGlzIG1lYW5zIHRoYXQgaUNhbGVuZGFyIGlzIGFraW4gdG8gYSAiY29tbW9uIA0KICAgIGxhbmd1YWdlIiB3aGljaCBhbGwgdGhlc2UgYXBwbGljYXRpb25zIHNwZWFrLiBJZiB5b3UgYXJlIHdyaXRpbmcgDQogICAgYW4gYXBwbGljYXRpb24gd2hpY2ggaW5jbHVkZXMgc2NoZWR1bGluZyBvciBjYWxlbmRhcmluZyBlbGVtZW50cywgDQogICAgYW5kIHlvdSB3YW50IGl0IHRvIGJlIGFibGUgdG8gc3luY2hyb25pemUgd2l0aCBvdGhlciBzdWNoIA0KICAgIHByb2dyYW1zLCB5b3UgbmVlZCB0byBzdXBwb3J0IGlDYWxlbmRhci4gQmVubnUgaXMgYW4gZWFzeSB3YXkgdG8gDQogICAgZG8gZXhhY3RseSB0aGF0LCBhcyBsb25nIGFzIHlvdSBhcmUgY29kaW5nIGluIFBIUC4NCg0KMS4zLiBCZW5udSBsaWNlbnNlDQoNCiAgICBCZW5udSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIA0KICAgIChMR1BMKS4gSW4gc2hvcnQsIHRoaXMgbWVhbnMgdGhhdDoNCiAgICANCiAgICAqIFlvdSBhcmUgYWxsb3dlZCB0byBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvdXJjZSBjb2RlIG9mIA0KICAgICAgQmVubnUNCiAgICAqIFlvdSBhcmUgYWxsb3dlZCB0byB1c2UgQmVubnUgb3IgYW55IG1vZGlmaWVkIHZlcnNpb24gb2YgaXQgaW4gYSANCiAgICAgIGNvbW1lcmNpYWwgYXBwbGljYXRpb24NCiAgICAqIFlvdSBkbyBub3QgaGF2ZSB0byBwYXkgYW55IGZlZXMgdG8gdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUNCiAgICAgIEJlbm51DQogICAgKiBZb3UgY2FuIGNoYXJnZSBvdGhlcnMgZm9yIGRpc3RyaWJ1dGluZyBCZW5udSBvciBkZXJpdmVkIHZlcnNpb25zDQogICAgKiBIb3dldmVyLCBpbiBBTEwgT0YgVEhFIEFCT1ZFIENBU0VTLCB5b3UgTVVTVCBwcm92aWRlIHRoZSBzb3VyY2UgDQogICAgICBjb2RlIGZvciBCZW5udSAob3IgYW55IG1vZGlmaWVkIHZlcnNpb24geW91IG1heSBoYXZlIHByb2R1Y2VkKSwgDQogICAgICBhbmQgdGhhdCBzb3VyY2UgY29kZSBNVVNUIGJlIHByb3ZpZGVkIHVuZGVyIHRoZSBHTlUgR1BMIC1vci0gdGhlIA0KICAgICAgR05VIExHUEwgbGljZW5zZS4gRnVydGhlcm1vcmUsIHlvdSBNVVNUIGluY2x1ZGUgdGhlIG9yaWdpbmFsIA0KICAgICAgY29weXJpZ2h0IG5vdGljZXMgYW5kIGNyZWRpdHMgdGhhdCB5b3UgcmVjZWl2ZWQgdGhlIHNvdXJjZSBjb2RlIA0KICAgICAgd2l0aCB3aGVuIHlvdSBkaXN0cmlidXRlIGl0IElOVEFDVC4NCiAgICAqIEluIGFueSBjYXNlLCB0aGUgY29weXJpZ2h0IHRvIEJlbm51IGlzIHJldGFpbmVkIGJ5IG1lLCANCiAgICAgIElvYW5uaXMgUGFwYWlvYW5ub3UuDQoNCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICAjIyAgRElTQ0xBSU1FUiAgIyMNCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICANCiAgICBQbGVhc2UgYmUgYWR2aXNlZCB0aGF0IHRoZSBhYm92ZSBpcyBhIHZlcnkgc2hvcnQgYW5kIHRvIHRoZSBwb2ludCANCiAgICBleHBsYW5hdGlvbiBvZiB0aGUgR05VIExHUEwgdGVybXMsIGFzIEkgdW5kZXJzdGFuZCBpdCwgYW5kIGl0IGlzIA0KICAgIG9ubHkgbXkgcGVyc29uYWwgb3Bpbmlvbi4gSVQgSVMgTk9UIFRIRSBBQ1RVQUwgTElDRU5TRSBVTkRFUiBXSElDSCANCiAgICBCRU5OVSBJUyBSRUxFQVNFRC4gSXQgaXMgU1RST05HTFkgUkVDT01NRU5ERUQgdGhhdCB5b3UgcmVhZCB0aGUgDQogICAgZnVsbCB0ZXh0IG9mIHRoZSBMR1BMIGluIG9yZGVyIHRvIGF2b2lkIGFueSBtaXN1bmRlcnN0YW5kaW5ncyANCiAgICB3aGljaCBtYXkgYmUgY2F1c2VkIGJ5IHJlYWRpbmcgbXkgaW50ZXJwcmV0YXRpb24gb2YgaXQuIFlvdSBjYW4gDQogICAgZmluZCB0aGUgZnVsbCB0ZXh0IG9mIHRoZSBMR1BMIGluIHRoZSBmaWxlIExJQ0VOU0UuVFhULCB3aGljaCB5b3UgDQogICAgbXVzdCBoYXZlIHJlY2VpdmVkIGFzIHBhcnQgb2YgdGhlIEJlbm51IGRpc3RyaWJ1dGlvbi4gSWYgeW91IGhhdmUgDQogICAgbm90IHJlY2VpdmVkIHN1Y2ggYSBmaWxlLCBwbGVhc2UgZW1haWwgbWUgbWVudGlvbmluZyB3aGVyZSB5b3UgDQogICAgb2J0YWluZWQgeW91ciBjb3B5IG9mIEJlbm51Lg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KMi4gVXNpbmcgQmVubnUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCjIuMS4gSW50ZWdyYXRpbmcgQmVubnUgaW4geW91ciBhcHBsaWNhdGlvbg0KDQogICAgVG8gaW5jbHVkZSBCZW5udSBpbiB5b3VyIGFwcGxpY2F0aW9uLCB5b3Ugb25seSBuZWVkIHRvIGluY2x1ZGUgb25lIA0KICAgIFBIUCBmaWxlLCBsaWtlIHRoaXM6DQogICAgDQogICAgPD9waHANCiAgICAgICBpbmNsdWRlKCRwYXRoX3RvX2Jlbm51LicvbGlicmFyeS9saWIvYmVubnUuaW5jLnBocCcpOw0KICAgICAgIA0KICAgICAgIC8vIHRoZSByZXN0IG9mIHlvdXIgY29kZSBnb2VzIGhlcmUNCiAgICA/Pg0KDQoyLjIuIFVzYWdlIGV4YW1wbGVzDQoNCiAgICBQbGVhc2UgbG9vayBhdCB0aGUgL2V4YW1wbGVzLyBkaXJlY3RvcnkgZm9yIHJlYWR5LXRvLXJ1biBleGFtcGxlcyANCiAgICBpbGx1c3RyYXRpbmcgaG93IEJlbm51IGlzIHRvIGJlIHVzZWQuIFRoaXMgc2VjdGlvbiB3aWxsIGJlIA0KICAgIHJldmlzaXRlZCBhbmQgcHJvcGVybHkgd3JpdHRlbiB3aGVuIHRoZSBzb3VyY2UgY29kZSByZWFjaGVzIGFuIA0KICAgIGFjY2VwdGFibGUgbGV2ZWwgb2YgZmVhdHVyZXMgYW5kIG1ldHVyaXR5IChubywgSSBkb24ndCBrbm93IHdoZW4gDQogICAgdGhhdCB3aWxsIGJlKS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjMuIEJ1Z3MgYW5kIGxpbWl0YXRpb25zDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQozLjEuIEtub3duIGxpbWl0YXRpb25zDQoNCiAgICAqIExBTkdVQUdFIHByb3BlcnR5IHBhcmFtZXRlcnMgYXJlbid0IHNlbWFudGljYWxseSBjaGVja2VkLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KNC4gQ29udGFjdCBpbmZvcm1hdGlvbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIFlvdSBjYW4gY29udGFjdCBtZSBhdCB0aGUgZW1haWwgYWRkcmVzcyBwakB1b20uZ3IgZm9yIGFueSANCiAgICBzdWdnZXN0aW9ucywgaWRlYXMsIG9yIGJ1ZyByZXBvcnRzIHJlZ2FyZGluZyBCZW5udS4NCiAgICANCiAgICBBdCBzb21lIHBvaW50IHRoZXJlIHdpbGwgYWxzbyBiZSBhIHNpdGUgd2hpY2ggeW91IGNhbiB1c2UgdG8gZG8gDQogICAgYW55dGhpbmcgcmVsYXRlZCB0byBCZW5udSwgYnV0IHNhZGx5IG5vdCB0b2RheS4gSWYgeW91IHdhbnQgdG8gDQogICAgdm9sdW50ZWVyIGFuZCBnaXZlIGEgaGFuZCwgSSAnbGwgYmUgaGFwcHkgdG8gY29sbGFib3JhdGUuDQo=]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/tests/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/libraries/bennu/tests/leftovers.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoNCmlmKHVuZm9sZChmb2xkKCR0ZXN0KSkgPT09ICR0ZXN0KSB7DQogICAgJHRlc3QgPSAnKjEyMzQ1Njc4OSoxMjM0NTY3ODkqMTIzNDU2Nzg5KjEyMzQ1Njc4OSoxMjM0NTY3ODkqMTIzNDU2Nzg5KjEyMzQ1Njc4OSoxMjM0NTY3ODkqMTIzNDU2Nzg5KjEyMzQ1Njc4OSoxMjM0NTY3ODkqMTIzNDU2Nzg5KjEyMzQ1Njc4OSoxMjM0NTY3ODkqMTIzNDU2Nzg5KjEyMzQ1Njc4OSc7DQogICAgZWNobyAncGFzcyEnOw0KfQ0KKi8NCg0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/libraries/bennu/TODO.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQoqIFRha2UgYSBsb29rIGF0IGFsbCB0aG9zZSB0ZXh0IHZhbHVlcy4gQ29udHJvbCBjaGFycyBzaG91bGRuJ3QgYmUgYWxsb3dlZC4=]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/libraries/classes/MCFCalendar.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIE1DRkNhbGVuZGFyIAp7CiAgIHZhciAkc3RhcnRfZGF0ZTsKICAgdmFyICRlbmRfZGF0ZTsKICAgdmFyICRmaXJzdF9kYXk7CiAgIHZhciAkbGFzdF9kYXk7CiAgIHZhciAkY2FsZW5kYXJfdGFibGUgPSBhcnJheSgpOwogICB2YXIgJGV2ZW50cyA9IGFycmF5KCk7CiAgIAogICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHRpbWVzdGFtcCA9IG51bGwpCiAgIHsKICAgICBpZihpc19udWxsKCR0aW1lc3RhbXApKSAkdGltZXN0YW1wID0gdGltZSgpOwogICAgICAkdGhpcy0+c3RhcnRfZGF0ZSA9IHNlbGY6OmdldEZpcnN0RGF5VGFibGUoJHRpbWVzdGFtcCk7CiAgICAgICR0aGlzLT5lbmRfZGF0ZSA9IHNlbGY6OmdldExhc3REYXlUYWJsZSgkdGltZXN0YW1wKTsgICAKICAgICAgJHRoaXMtPmZpcnN0X2RheSA9IG1rdGltZSgwLDAsMCxkYXRlKCduJywgJHRpbWVzdGFtcCksIDEsIGRhdGUoJ3knLCAkdGltZXN0YW1wKSk7CiAgICAgICR0aGlzLT5sYXN0X2RheSA9IG1rdGltZSgwLDAsMCxkYXRlKCduJywgJHRpbWVzdGFtcCksIGRhdGUoJ3QnLCAkdGltZXN0YW1wKSwgZGF0ZSgneScsICR0aW1lc3RhbXApKTsKICAgfQogICAKICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NFdmVudHMoJGV2ZW50cyA9IGFycmF5KCkpCiAgIHsKICAgICAgZm9yZWFjaCAoJGV2ZW50cyBhcyAkZXZlbnQpCiAgICAgIHsKICAgICAgICAgJHN0YXJ0ID0gc3RydG90aW1lKCRldmVudC0+Z2V0c3RhcnRkYXRlKCkpOwogICAgICAgICAkZW5kID0gc3RydG90aW1lKCRldmVudC0+Z2V0ZW5kZGF0ZSgpKTsKICAgICAgICAgCiAgICAgICAgIGlmICgkc3RhcnQgPD0gJGVuZCkKICAgICAgICAgewogICAgICAgICAgd2hpbGUoJHN0YXJ0IDw9ICRlbmQpCiAgICAgICAgICB7CiAgICAgICAgICAgICAkdGhpcy0+ZXZlbnRzWyRzdGFydF1bXSA9ICRldmVudDsKICAgICAgICAgICAgICRzdGFydCA9IHN0cnRvdGltZSgnICsgMSBEQVknLCAkc3RhcnQpOyAvLyAzNjAwKjI0OwogICAgICAgICAgfSAgCiAgICAgICAgIH0gICAgICAgICAKICAgICAgfQogICB9CiAgIAogICBwdWJsaWMgZnVuY3Rpb24gcHJvY2Vzc0NhbGVuZGFyKCkKICAgewogICAgICAkZGF0ZSA9ICR0aGlzLT5zdGFydF9kYXRlOwogICAgICAkd2Vla19uYnIgPSAwOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CiAgICAgICR0aGlzLT5jYWxlbmRhcl90YWJsZSA9IGFycmF5KCk7IC8vIFJlc2V0IHRoZSB0YWJsZQogICAgICAKICAgICAgd2hpbGUgKCRkYXRlIDw9ICR0aGlzLT5lbmRfZGF0ZSkKICAgICAgeyAgIAogICAgICAgICAkdGhpcy0+Y2FsZW5kYXJfdGFibGVbJHdlZWtfbmJyXVtdID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRlJyA9PiAkZGF0ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdteXNxbF9kYXRlJyA9PiBkYXRlKCdZL20vZCcsICRkYXRlKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0JyA9PiBkYXRlKCdsIGQvTS9ZJywkZGF0ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudHMnID0+IChpc3NldCgkdGhpcy0+ZXZlbnRzWyRkYXRlXSkpPyR0aGlzLT5ldmVudHNbJGRhdGVdOmFycmF5KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50JyA9PiAoKCRkYXRlID49ICR0aGlzLT5maXJzdF9kYXkpICYmICgkZGF0ZSA8PSAkdGhpcy0+bGFzdF9kYXkpKSwKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJJ3RvZGF5JyA9PiAoJGRhdGUgPT0gbWt0aW1lKDAsIDAsIDAsICR0b2RheVsnbW9uJ10sICR0b2RheVsnbWRheSddLCAkdG9kYXlbJ3llYXInXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgIAogICAgICAgICBpZiAoZGF0ZSgnTicsICRkYXRlKSA9PSA3KQogICAgICAgICB7CiAgICAgICAgICAgICR3ZWVrX25icisrOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAkZGF0ZSA9IHN0cnRvdGltZSgnICsgMSBEQVknLCAkZGF0ZSk7IC8vIDM2MDAqMjQ7CiAgICAgIH0KICAgfQogICAKICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRUaW1lc3RhbXBGcm9tTW9udGhZZWFyKCRtb250aCwgJHllYXIpCiAgIHsKICAgICAgcmV0dXJuIG1rdGltZSgwLDAsMCwkbW9udGgsIDEsICR5ZWFyKTsKICAgfQogICAKICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXROZXh0TW9udGhUaW1lc3RhbXAoJHRpbWVzdGFtcCkKICAgeyAgICAgIAogICAgICAgICByZXR1cm4gc3RydG90aW1lKCcrIDEgTU9OVEgnLCAkdGltZXN0YW1wKTsKICAgfQogICAKICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRQcmV2aW91c01vbnRoVGltZXN0YW1wKCR0aW1lc3RhbXApCiAgIHsgIAogICAgICAgICByZXR1cm4gc3RydG90aW1lKCctIDEgTU9OVEgnLCAkdGltZXN0YW1wKTsKICAgfQogICAKICAgLyoqCiAgICogIEJ1aWxkIGEgbW9udGggdGFibGUgZm9yIHRoZSBjdXJyZW50IGRhdGUgbW9udGgKICAgKi8KICAgCiAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0Rmlyc3REYXlUYWJsZSgkdGltZXN0YW1wKQogICB7CiAgICAgICAgICRmaXJzdF9kYXkgPSBta3RpbWUoMCwwLDAsZGF0ZSgnbicsICR0aW1lc3RhbXApLCAxLCBkYXRlKCd5JywgJHRpbWVzdGFtcCkpOwogICAgICAKICAgICAgaWYgKGRhdGUoJ04nLCAkZmlyc3RfZGF5KSA+IDEpCiAgICAgIHsKICAgICAgICAgcmV0dXJuICRmaXJzdF9kYXkgLSAoMzYwMCoyNCooZGF0ZSgnTicsJGZpcnN0X2RheSktMSkpOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICByZXR1cm4gJGZpcnN0X2RheTsKICAgICAgfQogICB9CiAgIAogICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldExhc3REYXlUYWJsZSgkdGltZXN0YW1wKQogICB7CiAgICAgICRsYXN0X2RheSA9IG1rdGltZSgwLDAsMCxkYXRlKCduJywgJHRpbWVzdGFtcCksIGRhdGUoJ3QnLCAkdGltZXN0YW1wKSwgZGF0ZSgneScsICR0aW1lc3RhbXApKTsKICAgICAgCiAgICAgIGlmIChkYXRlKCdOJywgJGxhc3RfZGF5KSA8IDcpCiAgICAgIHsKICAgICAgICAgcmV0dXJuICRsYXN0X2RheSArICgzNjAwKjI0Kig3LWRhdGUoJ04nLCRsYXN0X2RheSkpKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAgcmV0dXJuICRsYXN0X2RheTsKICAgICAgfQogICB9CiAgIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2hlY2tDb21wYXRpYmlsaXR5KCRjbGFzcykKICB7Cgkkb2JqZWN0ID0gbmV3ICRjbGFzczsKCWlmIChtZXRob2RfZXhpc3RzKCRvYmplY3QsICdnZXRTdGFydERhdGUnKSAmJiBtZXRob2RfZXhpc3RzKCRvYmplY3QsICdnZXRFbmREYXRlJykpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CglyZXR1cm4gZmFsc2U7CiAgfSAgCgogIC8qcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjaGVja2lDYWxDb21wYXRpYmlsaXR5KCRjbGFzcykKICB7Cgkkb2JqZWN0ID0gbmV3ICRjbGFzczsKCWlmIChtZXRob2RfZXhpc3RzKCRvYmplY3QsICdnZXRTdW1tYXJ5JykgJiYgbWV0aG9kX2V4aXN0cygkb2JqZWN0LCAnZ2V0RGVzY3JpcHRpb24nKSkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKICB9Ki8KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkaUNhbExpYnJhcmllcygpCiAgewoJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pIC4gJy8uLi9iZW5udS9saWIvYmVubnUuaW5jLnBocCc7CiAgfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFCriteria.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIE1DRkNyaXRlcmlhIHsKCgl2YXIgJG9yZGVyX2J5ID0gYXJyYXkoKTsKCXZhciAkY29uZGl0aW9ucyA9IGFycmF5KCk7Cgl2YXIgJGZpbHRlcnMgPSBhcnJheSgpOwoJdmFyICRncm91cF9ieSA9IGFycmF5KCk7Cgl2YXIgJHNlbGVjdGVkX2NvbHVtbnMgPSBhcnJheSgpOwoJCgl2YXIgJGxpbWl0OwoJdmFyICRvZmZzZXQ7CgkKCXZhciAkdmFsdWVzID0gYXJyYXkoKTsKCQoJLy8gQ09OU1QKCQogIC8qKiBDb21wYXJpc29uIHR5cGUuICovCiAgY29uc3QgRVFVQUwgPSAiPSI7CiAgY29uc3QgTk9UX0VRVUFMID0gIjw+IjsKICBjb25zdCBBTFRfTk9UX0VRVUFMID0gIiE9IjsKICBjb25zdCBHUkVBVEVSX1RIQU4gPSAiPiI7CiAgY29uc3QgTEVTU19USEFOID0gIjwiOwogIGNvbnN0IEdSRUFURVJfRVFVQUwgPSAiPj0iOwogIGNvbnN0IExFU1NfRVFVQUwgPSAiPD0iOwogIGNvbnN0IExJS0UgPSAiIExJS0UgIjsKICBjb25zdCBNVUxUSUxJS0UgPSAiIE1VTFRJTElLRSAiOwogIGNvbnN0IE1VTFRJTk9UTElLRSA9ICIgTVVMVElOT1RMSUtFICI7CiAgY29uc3QgTk9UX0xJS0UgPSAiIE5PVCBMSUtFICI7CiAgY29uc3QgVVBDT01JTkcgPSAiIFVQQ09NSU5HICI7CiAgY29uc3QgUEFTVCA9ICIgUEFTVCAiOwoKICAvKiogUG9zdGdyZVNRTCBjb21wYXJpc29uIHR5cGUgKi8KICBjb25zdCBJTElLRSA9ICIgSUxJS0UgIjsKCiAgLyoqIFBvc3RncmVTUUwgY29tcGFyaXNvbiB0eXBlICovCiAgY29uc3QgTk9UX0lMSUtFID0gIiBOT1QgSUxJS0UgIjsKCiAgLyoqIENvbXBhcmlzb24gdHlwZS4gKi8KICBjb25zdCBDVVNUT00gPSAiQ1VTVE9NIjsKCiAgLyoqIENvbXBhcmlzb24gdHlwZS4gKi8KICBjb25zdCBESVNUSU5DVCA9ICJESVNUSU5DVCAiOwoKICAvKiogQ29tcGFyaXNvbiB0eXBlLiAqLwogIGNvbnN0IElOID0gIiBJTiAiOwoKICAvKiogQ29tcGFyaXNvbiB0eXBlLiAqLwogIGNvbnN0IE5PVF9JTiA9ICIgTk9UIElOICI7CgogIC8qKiBDb21wYXJpc29uIHR5cGUuICovCiAgY29uc3QgQUxMID0gIkFMTCAiOwoKICAvKiogQ29tcGFyaXNvbiB0eXBlLiAqLwogIGNvbnN0IEpPSU4gPSAiSk9JTiI7CgogIC8qKiBCaW5hcnkgbWF0aCBvcGVyYXRvcjogQU5EICovCiAgY29uc3QgQklOQVJZX0FORCA9ICImIjsKCiAgLyoqIEJpbmFyeSBtYXRoIG9wZXJhdG9yOiBPUiAqLwogIGNvbnN0IEJJTkFSWV9PUiA9ICJ8IjsKCiAgLyoqICJPcmRlciBieSIgcXVhbGlmaWVyIC0gYXNjZW5kaW5nICovCiAgY29uc3QgQVNDID0gIkFTQyI7CgogIC8qKiAiT3JkZXIgYnkiIHF1YWxpZmllciAtIGRlc2NlbmRpbmcgKi8KICBjb25zdCBERVNDID0gIkRFU0MiOwoKICAvKiogIklTIE5VTEwiIG51bGwgY29tcGFyaXNvbiAqLwogIGNvbnN0IElTTlVMTCA9ICIgSVMgTlVMTCAiOwoKICAvKiogIklTIE5PVCBOVUxMIiBudWxsIGNvbXBhcmlzb24gKi8KICBjb25zdCBJU05PVE5VTEwgPSAiIElTIE5PVCBOVUxMICI7CgogIGNvbnN0IElTTk9URU1QVFkgPSAnIElTIE5PVCBFTVBUWSAnOwogIGNvbnN0IElTRU1QVFkgPSAnIElTIEVNUFRZICc7CgogIC8qKiAiQ1VSUkVOVF9EQVRFIiBBTlNJIFNRTCBmdW5jdGlvbiAqLwogIGNvbnN0IENVUlJFTlRfREFURSA9ICJDVVJSRU5UX0RBVEUiOwoKICAvKiogIkNVUlJFTlRfVElNRSIgQU5TSSBTUUwgZnVuY3Rpb24gKi8KICBjb25zdCBDVVJSRU5UX1RJTUUgPSAiQ1VSUkVOVF9USU1FIjsKCiAgLyoqICJDVVJSRU5UX1RJTUVTVEFNUCIgQU5TSSBTUUwgZnVuY3Rpb24gKi8KICBjb25zdCBDVVJSRU5UX1RJTUVTVEFNUCA9ICJDVVJSRU5UX1RJTUVTVEFNUCI7CgogIC8qKiAiTEVGVCBKT0lOIiBTUUwgc3RhdGVtZW50ICovCiAgY29uc3QgTEVGVF9KT0lOID0gIkxFRlQgSk9JTiI7CgogIC8qKiAiUklHSFQgSk9JTiIgU1FMIHN0YXRlbWVudCAqLwogIGNvbnN0IFJJR0hUX0pPSU4gPSAiUklHSFQgSk9JTiI7CgogIC8qKiAiSU5ORVIgSk9JTiIgU1FMIHN0YXRlbWVudCAqLwogIGNvbnN0IElOTkVSX0pPSU4gPSAiSU5ORVIgSk9JTiI7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKCXsKCSAgcmV0dXJuICR0aGlzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBhZGRBc2NlbmRpbmdPcmRlckJ5Q29sdW1uKCRjb2x1bW4pCgl7CgkJJHRoaXMtPm9yZGVyX2J5W10gPSBhcnJheSAoJ2NvbHVtbicgPT4gJGNvbHVtbiwgJ29yZGVyJyA9PiBzZWxmOjpBU0MpOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gYWRkRGVzY2VuZGluZ09yZGVyQnlDb2x1bW4oJGNvbHVtbikKCXsKCQkkdGhpcy0+b3JkZXJfYnlbXSA9IGFycmF5ICgnY29sdW1uJyA9PiAkY29sdW1uLCAnb3JkZXInID0+IHNlbGY6OkRFU0MpOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gYWRkU2VsZWN0Q29sdW1uKCRjb2x1bW5fbmFtZSkKCXsKCQkkdGhpcy0+c2VsZWN0ZWRfY29sdW1uc1tdID0gJGNvbHVtbl9uYW1lOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gYWRkR3JvdXBCeUNvbHVtbigkY29sdW1uX25hbWUpCgl7CgkJJHRoaXMtPmdyb3VwX2J5W10gPSAkY29sdW1uX25hbWU7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBhZGQoJGNvbHVtbiwgJHZhbHVlLCAkY29uZGl0aW9uID0gc2VsZjo6RVFVQUwpCgl7CgkJaWYgKCRjb25kaXRpb24gPT0gc2VsZjo6SU4pIHsKCQkJaWYgKGVtcHR5KCR2YWx1ZSkpIHsKCQkJCSRjb2x1bW4gPSAxOwoJCQkJJHZhbHVlID0gLTE7CgkJCQkkY29uZGl0aW9uID0gc2VsZjo6RVFVQUw7CgkJCX0KCQl9CgkJJHRoaXMtPmNvbmRpdGlvbnNbXSA9IGFycmF5ICgnY29sdW1uJyA9PiAkY29sdW1uLCAndmFsdWUnID0+ICR2YWx1ZSwgJ2NvbmRpdGlvbicgPT4gJGNvbmRpdGlvbik7Cgl9CgkKCQoJcHVibGljIGZ1bmN0aW9uIHNldExpbWl0KCRsaW1pdCkKCXsKCQkkdGhpcy0+bGltaXQgPSAkbGltaXQ7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBzZXRPZmZzZXQoJG9mZnNldCkgewoJCSR0aGlzLT5vZmZzZXQgPSAkb2Zmc2V0OwoJfQoJCgkvLyBSRVFVRVNUIEJVSUxESU5HCgkKCQoJcHVibGljICBmdW5jdGlvbiBidWlsZENvbmRpdGlvbnMoJHRhYmxlX25hbWUpCgl7CgkJLyogRklYTUU6IFByb2NlZWQgd2l0aCBhbGwgdGhlIHBvc3NpYmxlIGNvbmRpdGlvbnMgKi8KCQkKCQkkcXVlcnkgPSBudWxsOwoJCS8vIFdIRVJFCgkJCgkJaWYgKGNvdW50KCR0aGlzLT5jb25kaXRpb25zKSA+MCkKCQl7CgkJCSRxdWVyeSAuPSAnIFdIRVJFICc7CgkJCQoJCQkkZmlyc3QgPSB0cnVlOwoJCQkKCQkJZm9yZWFjaCAoJHRoaXMtPmNvbmRpdGlvbnMgYXMgJGNvbmRpdGlvbikKCQkJewoJCQkJJHF1ZXJ5IC49ICgkZmlyc3QpPyAnJzonIEFORCAnOwoKICAgICAgICBzd2l0Y2ggKCRjb25kaXRpb25bJ2NvbmRpdGlvbiddKSB7CiAgICAgICAgCWNhc2UgJyBJTiAnOgoJCQkJCQkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwogICAgICAgIAkJZm9yZWFjaCAoJGNvbmRpdGlvblsndmFsdWUnXSBhcyAmJHZhbHVlKSB7CiAgICAgICAgCQkJLy8gJHZhbHVlID0gIiciIC4gbXlzcWxpX3JlYWxfZXNjYXBlX3N0cmluZygkdmFsdWUpIC4gIiciOwogICAgICAgIAkJCSR2YWx1ZSA9ICRkYi0+cXN0cigkdmFsdWUpOwogICAgICAgIAkJfQogICAgICAgIAkJdW5zZXQoJHZhbHVlKTsKICAgICAgICAJCSRxdWVyeSAuPSAgJGNvbmRpdGlvblsnY29sdW1uJ10gLiAnIElOICgnIC4gaW1wbG9kZSgnLCcsICRjb25kaXRpb25bJ3ZhbHVlJ10pIC4gJyknOwogICAgICAgIAkJYnJlYWs7CgkJCWNhc2UgJyBNVUxUSUxJS0UgJzoKCQkJCSRxdWVyeSAuPSAnICgnOwoJCQkJCSRxdWVyeSAuPSAkY29uZGl0aW9uWydjb2x1bW4nXSAuICcgTElLRSA/JzsKCQkJCQkkdGhpcy0+dmFsdWVzW10gPSAkY29uZGl0aW9uWyd2YWx1ZSddOwoJCQkJCSRxdWVyeSAuPSAnIE9SICc7CgkJCQkJJHF1ZXJ5IC49ICRjb25kaXRpb25bJ2NvbHVtbiddIC4gJyBMSUtFID8nOwoJCQkJCSR0aGlzLT52YWx1ZXNbXSA9ICRjb25kaXRpb25bJ3ZhbHVlJ10gLiAnfHx8JSc7CgkJCQkJJHF1ZXJ5IC49ICcgT1IgJzsKCQkJCQkkcXVlcnkgLj0gJGNvbmRpdGlvblsnY29sdW1uJ10gLiAnIExJS0UgPyc7CgkJCQkJJHRoaXMtPnZhbHVlc1tdID0gJyV8fHwnIC4gJGNvbmRpdGlvblsndmFsdWUnXTsKCQkJCQkkcXVlcnkgLj0gJyBPUiAnOwoJCQkJCSRxdWVyeSAuPSAkY29uZGl0aW9uWydjb2x1bW4nXSAuICcgTElLRSA/JzsKCQkJCQkkdGhpcy0+dmFsdWVzW10gPSAnJXx8fCcgLiAkY29uZGl0aW9uWyd2YWx1ZSddIC4gJ3x8fCUnOwoJCQkJJHF1ZXJ5IC49ICcpICc7CgkJCQlicmVhazsJCQkKCQkJY2FzZSAnIE1VTFRJTk9UTElLRSAnOgoJCQkJJHF1ZXJ5IC49ICcoJy4kY29uZGl0aW9uWydjb2x1bW4nXSAuJyBpcyBudWxsIE9SICgnOwoJCQkJCSRxdWVyeSAuPSAkY29uZGl0aW9uWydjb2x1bW4nXSAuICcgTk9UIExJS0UgPyc7CgkJCQkJJHRoaXMtPnZhbHVlc1tdID0gJGNvbmRpdGlvblsndmFsdWUnXTsKCQkJCQkkcXVlcnkgLj0gJyBBTkQgJzsKCQkJCQkkcXVlcnkgLj0gJGNvbmRpdGlvblsnY29sdW1uJ10gLiAnIE5PVCBMSUtFID8nOwoJCQkJCSR0aGlzLT52YWx1ZXNbXSA9ICRjb25kaXRpb25bJ3ZhbHVlJ10gLiAnfHx8JSc7CgkJCQkJJHF1ZXJ5IC49ICcgQU5EICc7CgkJCQkJJHF1ZXJ5IC49ICRjb25kaXRpb25bJ2NvbHVtbiddIC4gJyBOT1QgTElLRSA/JzsKCQkJCQkkdGhpcy0+dmFsdWVzW10gPSAnJXx8fCcgLiAkY29uZGl0aW9uWyd2YWx1ZSddOwoJCQkJCSRxdWVyeSAuPSAnIEFORCAnOwoJCQkJCSRxdWVyeSAuPSAkY29uZGl0aW9uWydjb2x1bW4nXSAuICcgTk9UIExJS0UgPyc7CgkJCQkJJHRoaXMtPnZhbHVlc1tdID0gJyV8fHwnIC4gJGNvbmRpdGlvblsndmFsdWUnXSAuICd8fHwlJzsKCQkJCSRxdWVyeSAuPSAnKSkgJzsKCQkJCWJyZWFrOwoJCQljYXNlICcgSVMgRU1QVFkgJzoKCQkJCSRxdWVyeSAuPSAgJygnIC4gJGNvbmRpdGlvblsnY29sdW1uJ10gLiAnIElTIE5VTEwgT1IgJyAuICRjb25kaXRpb25bJ2NvbHVtbiddIC4gJyA9ID8gKSc7CgkJCQkkdGhpcy0+dmFsdWVzW10gPSAnJzsKCQkJCWJyZWFrOwoJCQljYXNlICcgSVMgTk9UIEVNUFRZICc6CgkJCQkkcXVlcnkgLj0gICcoJyAuICRjb25kaXRpb25bJ2NvbHVtbiddIC4gJyBJUyBOT1QgTlVMTCBBTkQgJyAuICRjb25kaXRpb25bJ2NvbHVtbiddIC4gJyAhPSA/ICknIDsKCQkJCSR0aGlzLT52YWx1ZXNbXSA9ICcnOwoJCQkJYnJlYWs7CgkJCWNhc2UgJyBJUyBOVUxMICc6CgkJCWNhc2UgJyBJUyBOT1QgTlVMTCAnOgoJCQkJJHF1ZXJ5IC49ICAkY29uZGl0aW9uWydjb2x1bW4nXSAuICRjb25kaXRpb25bJ2NvbmRpdGlvbiddOwoJCQkJYnJlYWs7CgkJCQkKCQkJY2FzZSAnIFVQQ09NSU5HICc6CgkJCQkkcXVlcnkgLj0gJGNvbmRpdGlvblsnY29sdW1uJ10gLiAnID49IE5PVygpJzsKCQkJCWJyZWFrOwkJCQoJCQljYXNlICcgUEFTVCAnOgoJCQkJJHF1ZXJ5IC49ICRjb25kaXRpb25bJ2NvbHVtbiddIC4gJyA8IE5PVygpJzsKCQkJCWJyZWFrOwogICAgICBkZWZhdWx0OgogICAgICAgICRxdWVyeSAuPSAgJGNvbmRpdGlvblsnY29sdW1uJ10gLiAnICcgLiAkY29uZGl0aW9uWydjb25kaXRpb24nXSAuICcgPyc7CiAgICAgICAgJHRoaXMtPnZhbHVlc1tdID0gJGNvbmRpdGlvblsndmFsdWUnXTsKICAgICAgfQogICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgJGZpcnN0ID0gZmFsc2U7IAoJCQl9CgkJCQoJCQkKCQl9CgkJCgkJCS8vIEdST1VQIEJZCgogIAkJaWYoY291bnQoJHRoaXMtPmdyb3VwX2J5KSA+IDApCiAgCQl7CiAgCQkJJHF1ZXJ5IC49ICcgR1JPVVAgQlkgJyAuIGltcGxvZGUgKCcsICcsICR0aGlzLT5ncm91cF9ieSk7CiAgCQl9CiAgICAKCQkvLyBPUkRFUiBCWQoJCQoJCWlmIChjb3VudCgkdGhpcy0+b3JkZXJfYnkpID4gMCkKCQl7CgkJICAkcXVlcnkgLj0gJyBPUkRFUiBCWSAnOwoJCSAgCgkJICAkZmlyc3QgPSB0cnVlOwoJCSAgCgkJICBmb3JlYWNoICgkdGhpcy0+b3JkZXJfYnkgYXMgJG9yZGVyX2J5KSAKCQkgIHsKCQkgIAkkcXVlcnkgLj0gKCRmaXJzdCk/ICcnOicgLCc7CgkJICAJCgkJICAgICRxdWVyeSAuPSAgJG9yZGVyX2J5Wydjb2x1bW4nXSAuICcgJyAuICRvcmRlcl9ieVsnb3JkZXInXTsKCQkgICAgCQkgICAgCgkJICAgICRmaXJzdCA9IGZhbHNlOwkJICAJCgkJICB9CgkJfQoJCQoJCgkJJG9mZnNldCA9ICR0aGlzLT5vZmZzZXQgPyAkdGhpcy0+b2Zmc2V0IDogMDsKCQkkbGltaXQgPSAkdGhpcy0+bGltaXQgPyAkdGhpcy0+bGltaXQgOiBQSFBfSU5UX01BWDsKCQkkcXVlcnkgLj0gJyBMSU1JVCAnIC4kb2Zmc2V0LicsJy4kbGltaXQ7CgkJcmV0dXJuICRxdWVyeTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGJ1aWxkUXVlcnkoJHRhYmxlX25hbWUsICRjb2x1bW5fd2l0aF9kYiA9IGZhbHNlKQoJewoJCSRxdWVyeSA9ICdTRUxFQ1QgJzsKCQkKCQlpZiAoY291bnQoJHRoaXMtPnNlbGVjdGVkX2NvbHVtbnMpID4gMCkKCQl7CgkJCWZvcmVhY2ggKCR0aGlzLT5zZWxlY3RlZF9jb2x1bW5zIGFzICRjb2x1bW4pIAoJCQl7CgkJCQkkcXVlcnkgLj0gJGNvbHVtbiAuICcgJzsKCQkJfQoJCX0KCQllbHNlIAoJCXsKCQkgIGlmKCRjb2x1bW5fd2l0aF9kYikKCQkgIHsKCQkgICAkcXVlcnkgLj0gJyAnIC4gJHRhYmxlX25hbWUgLiAnLiogJzsgCgkJICB9CgkJICBlbHNlCgkJICB7CQkgICAKICAJCQkkcXVlcnkgLj0gJyAqICc7IAoJCSAgfQoJCX0KCQkKCQkkcXVlcnkgLj0gJ0ZST00gJyAuICR0YWJsZV9uYW1lOwoJCQkJCgkJJHF1ZXJ5IC49ICR0aGlzLT5idWlsZENvbmRpdGlvbnMoJHRhYmxlX25hbWUpOwoJCXJldHVybiAkcXVlcnk7CQkKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0VmFsdWVzKCkgewoJCXJldHVybiAkdGhpcy0+dmFsdWVzOwoJfQoKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFListView.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIE1DRkxpc3RWaWV3IHsKCglwcm90ZWN0ZWQgJG1vZHVsZTsKCXByb3RlY3RlZCAkdmlldzsKCXByb3RlY3RlZCAkdGl0bGVGaWx0ZXI7Cglwcm90ZWN0ZWQgJGNhdGVnb3J5RmlsdGVycyA9IGFycmF5KCk7Cglwcm90ZWN0ZWQgJHBhZ2VGaWx0ZXJzID0gYXJyYXkoKTsKCXByb3RlY3RlZCAkbW9kdWxlRmlsdGVycyA9IGFycmF5KCk7Cglwcm90ZWN0ZWQgJG9yZGVyQnkgPSAnb3JkZXJfYnknOwoJcHJvdGVjdGVkICRjdXN0b21PcmRlciA9IGZhbHNlOwoJcHJvdGVjdGVkICRwYWdlID0gMTsKCXByb3RlY3RlZCAkaXRlbXNQZXJQYWdlID0gMjA7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2R1bGUsICRwYXJhbXMpIHsKCQkkdGhpcy0+bW9kdWxlID0gJG1vZHVsZTsKCQlpZiAoaXNzZXQoJHBhcmFtc1sndmlldyddKSAmJiAkcGFyYW1zWyd2aWV3J10pIHsKCQkJJHRoaXMtPnZpZXcgPSAkcGFyYW1zWyd2aWV3J107CgkJCSR0aGlzLT50aXRsZUZpbHRlciA9IGlzc2V0KCRfU0VTU0lPTlsndmlld3MnXVskdGhpcy0+dmlld11bJ3RpdGxlRmlsdGVyJ10pID8gJF9TRVNTSU9OWyd2aWV3cyddWyR0aGlzLT52aWV3XVsndGl0bGVGaWx0ZXInXSA6IG51bGw7CgkJCSR0aGlzLT5jYXRlZ29yeUZpbHRlcnMgPSBpc3NldCgkX1NFU1NJT05bJ3ZpZXdzJ11bJHRoaXMtPnZpZXddWydjYXRlZ29yeUZpbHRlcnMnXSkgPyAkX1NFU1NJT05bJ3ZpZXdzJ11bJHRoaXMtPnZpZXddWydjYXRlZ29yeUZpbHRlcnMnXSA6IGFycmF5KCk7CgkJCSR0aGlzLT5wYWdlRmlsdGVycyA9IGlzc2V0KCRfU0VTU0lPTlsndmlld3MnXVskdGhpcy0+dmlld11bJ3BhZ2VGaWx0ZXJzJ10pID8gJF9TRVNTSU9OWyd2aWV3cyddWyR0aGlzLT52aWV3XVsncGFnZUZpbHRlcnMnXSA6IGFycmF5KCk7CgkJCSR0aGlzLT5tb2R1bGVGaWx0ZXJzID0gaXNzZXQoJF9TRVNTSU9OWyd2aWV3cyddWyR0aGlzLT52aWV3XVsnbW9kdWxlRmlsdGVycyddKSA/ICRfU0VTU0lPTlsndmlld3MnXVskdGhpcy0+dmlld11bJ21vZHVsZUZpbHRlcnMnXSA6IGFycmF5KCk7CQkKCQkJJHRoaXMtPnBhZ2UgPSBpc3NldCgkX1NFU1NJT05bJ3ZpZXdzJ11bJHRoaXMtPnZpZXddWydwYWdlJ10pID8gJF9TRVNTSU9OWyd2aWV3cyddWyR0aGlzLT52aWV3XVsncGFnZSddIDogMTsKIAkJfSBlbHNlIHsKCQkJJHRoaXMtPnZpZXcgPSB1bmlxaWQoKTsKCQl9CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3BhZ2UnXSkpIHsKCQkgICAgJHRoaXMtPnNldFBhZ2UoJHBhcmFtc1sncGFnZSddKTsKCQl9CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2NsZWFyX2ZpbHRlcnMnXSkpIHsKCQkJJHRoaXMtPnZpZXcgPSB1bmlxaWQoKTsKCQkJJHRoaXMtPnNldFRpdGxlRmlsdGVyKG51bGwpOwoJCQkkdGhpcy0+c2V0Q2F0ZWdvcnlGaWx0ZXJzKGFycmF5KCkpOwoJCQkkdGhpcy0+c2V0UGFnZUZpbHRlcnMoYXJyYXkoKSk7CgkJCSR0aGlzLT5zZXRNb2R1bGVGaWx0ZXJzKGFycmF5KCkpOwkJCQoJCQkkdGhpcy0+c2V0UGFnZSgxKTsKCQl9IGVsc2UgewoJCQlpZiAoaXNzZXQoJHBhcmFtc1sndGl0bGVGaWx0ZXInXSkpIHsKCQkJCSR0aGlzLT5zZXRUaXRsZUZpbHRlcigkcGFyYW1zWyd0aXRsZUZpbHRlciddKTsKCQkJfQoJCQlpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlGaWx0ZXJzJ10pKSB7CgkJCQkkdGhpcy0+c2V0Q2F0ZWdvcnlGaWx0ZXJzKCRwYXJhbXNbJ2NhdGVnb3J5RmlsdGVycyddKTsKCQkJfQoJCQlpZiAoaXNzZXQoJHBhcmFtc1sncGFnZUZpbHRlcnMnXSkpIHsKCQkJCQkJCSR0aGlzLT5zZXRQYWdlRmlsdGVycygkcGFyYW1zWydwYWdlRmlsdGVycyddKTsKCQkJfQoJCQlpZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlRmlsdGVycyddKSkgewoJCQkJJHRoaXMtPnNldE1vZHVsZUZpbHRlcnMoJHBhcmFtc1snbW9kdWxlRmlsdGVycyddKTsKCQkJfQoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0VmlldygpIHsKCQlyZXR1cm4gJHRoaXMtPnZpZXc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFRpdGxlRmlsdGVyKCkgewoJCXJldHVybiAkdGhpcy0+dGl0bGVGaWx0ZXI7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldFRpdGxlRmlsdGVyKCRmaWx0ZXIpIHsKCQkkY2xlYW4gPSB0cmltKCRmaWx0ZXIpOwoJCSR0aGlzLT50aXRsZUZpbHRlciA9ICRjbGVhbjsKCQkkX1NFU1NJT05bJ3ZpZXdzJ11bJHRoaXMtPnZpZXddWyd0aXRsZUZpbHRlciddID0gJGNsZWFuOwoJCSR0aGlzLT5jdXN0b21PcmRlciA9ICgkdGhpcy0+b3JkZXJCeSAhPSAnb3JkZXJfYnknKSB8fCAhZW1wdHkoJHRoaXMtPnRpdGxlRmlsdGVyKSB8fCBjb3VudCgkdGhpcy0+Y2F0ZWdvcnlGaWx0ZXJzKSB8fCBjb3VudCgkdGhpcy0+cGFnZUZpbHRlcnMpIHx8IGNvdW50KCR0aGlzLT5tb2R1bGVGaWx0ZXJzKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0Q2F0ZWdvcnlGaWx0ZXJzKCkgewoJCXJldHVybiAkdGhpcy0+Y2F0ZWdvcnlGaWx0ZXJzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRDYXRlZ29yeUZpbHRlcnMoJGZpbHRlcnMpIHsKCQkkY2xlYW4gPSBhcnJheSgpOwoJCWZvcmVhY2ggKCRmaWx0ZXJzIGFzICRmaWx0ZXIpIHsKCQkJaWYgKCFlbXB0eSgkZmlsdGVyKSkgewoJCQkJJGNsZWFuW10gPSAkZmlsdGVyOwoJCQl9CgkJfQoJCSR0aGlzLT5jYXRlZ29yeUZpbHRlcnMgPSAkY2xlYW47CgkJJF9TRVNTSU9OWyd2aWV3cyddWyR0aGlzLT52aWV3XVsnY2F0ZWdvcnlGaWx0ZXJzJ10gPSAkY2xlYW47CgkJJHRoaXMtPmN1c3RvbU9yZGVyID0gKCR0aGlzLT5vcmRlckJ5ICE9ICdvcmRlcl9ieScpIHx8ICFlbXB0eSgkdGhpcy0+dGl0bGVGaWx0ZXIpIHx8IGNvdW50KCR0aGlzLT5jYXRlZ29yeUZpbHRlcnMpIHx8IGNvdW50KCR0aGlzLT5wYWdlRmlsdGVycykgfHwgY291bnQoJHRoaXMtPm1vZHVsZUZpbHRlcnMpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRQYWdlRmlsdGVycygpIHsKCQlyZXR1cm4gJHRoaXMtPnBhZ2VGaWx0ZXJzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRQYWdlRmlsdGVycygkZmlsdGVycykgewoJCSRjbGVhbiA9IGFycmF5KCk7CgkJZm9yZWFjaCAoJGZpbHRlcnMgYXMgJGZpbHRlcikgewoJCQlpZiAoIWVtcHR5KCRmaWx0ZXIpKSB7CgkJCQkkY2xlYW5bXSA9ICRmaWx0ZXI7CgkJCX0KCQl9CgkJJHRoaXMtPnBhZ2VGaWx0ZXJzID0gJGNsZWFuOwoJCSRfU0VTU0lPTlsndmlld3MnXVskdGhpcy0+dmlld11bJ3BhZ2VGaWx0ZXJzJ10gPSAkY2xlYW47CgkJJHRoaXMtPmN1c3RvbU9yZGVyID0gKCR0aGlzLT5vcmRlckJ5ICE9ICdvcmRlcl9ieScpIHx8ICFlbXB0eSgkdGhpcy0+dGl0bGVGaWx0ZXIpIHx8IGNvdW50KCR0aGlzLT5jYXRlZ29yeUZpbHRlcnMpIHx8IGNvdW50KCR0aGlzLT5wYWdlRmlsdGVycykgfHwgY291bnQoJHRoaXMtPm1vZHVsZUZpbHRlcnMpOwoJfQkKCQoJcHVibGljIGZ1bmN0aW9uIGdldE1vZHVsZUZpbHRlcnMoKSB7CgkJcmV0dXJuICR0aGlzLT5tb2R1bGVGaWx0ZXJzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRNb2R1bGVGaWx0ZXJzKCRmaWx0ZXJzKSB7CgkJJGNvbmRpdGlvbnMgPSBhcnJheSgpOwoJCWZvcmVhY2goJGZpbHRlcnMgYXMgJGZpZWxkID0+ICRmaWx0ZXIpCgkJewoJCQlpZiAoIWVtcHR5KCRmaWx0ZXIpKSAKCQkJewoJCQkJJGNvbmRpdGlvbnNbJGZpZWxkXSA9ICRmaWx0ZXI7CgkJCX0KCQl9CgkJJHRoaXMtPm1vZHVsZUZpbHRlcnMgPSAkY29uZGl0aW9uczsKCQkkX1NFU1NJT05bJ3ZpZXdzJ11bJHRoaXMtPnZpZXddWydtb2R1bGVGaWx0ZXJzJ10gPSAkY29uZGl0aW9uczsKCQkkdGhpcy0+Y3VzdG9tT3JkZXIgPSAoJHRoaXMtPm9yZGVyQnkgIT0gJ29yZGVyX2J5JykgfHwgIWVtcHR5KCR0aGlzLT50aXRsZUZpbHRlcikgfHwgY291bnQoJHRoaXMtPmNhdGVnb3J5RmlsdGVycykgfHwgY291bnQoJHRoaXMtPnBhZ2VGaWx0ZXJzKSB8fCBjb3VudCgkdGhpcy0+bW9kdWxlRmlsdGVycyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldE9yZGVyQnkoJHZhbHVlKSB7CgkJJHRoaXMtPm9yZGVyQnkgPSBzdHJ0b2xvd2VyKCR2YWx1ZSk7CgkJJHRoaXMtPmN1c3RvbU9yZGVyID0gKCFpbl9hcnJheSgkdGhpcy0+b3JkZXJCeSwgYXJyYXkoJ29yZGVyX2J5JywgJ29yZGVyX2J5IGFzYycpKSkgfHwgIWVtcHR5KCR0aGlzLT50aXRsZUZpbHRlcikgfHwgY291bnQoJHRoaXMtPmNhdGVnb3J5RmlsdGVycykgfHwgY291bnQoJHRoaXMtPnBhZ2VGaWx0ZXJzKSB8fCBjb3VudCgkdGhpcy0+bW9kdWxlRmlsdGVycyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldEl0ZW1zUGVyUGFnZSgkdmFsdWUpIHsKCQkkdGhpcy0+aXRlbXNQZXJQYWdlID0gJHZhbHVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc0N1c3RvbU9yZGVyKCkgewoJCXJldHVybiAkdGhpcy0+Y3VzdG9tT3JkZXI7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldEl0ZW1zUGVyUGFnZSgpIHsKCQlyZXR1cm4gJHRoaXMtPml0ZW1zUGVyUGFnZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFnZSgpIHsKCQlyZXR1cm4gJHRoaXMtPnBhZ2U7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldFBhZ2UoJHBhZ2UpIHsKCQkkdGhpcy0+cGFnZSA9ICRwYWdlOwoJCSRfU0VTU0lPTlsndmlld3MnXVskdGhpcy0+dmlld11bJ3BhZ2UnXSA9ICRwYWdlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRDcml0ZXJpYSgpIHsKCQkkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwoJCWlmICghZW1wdHkoJHRoaXMtPnRpdGxlRmlsdGVyKSkgewoJCQkkYy0+YWRkKCd0aXRsZScsICclJyAuICR0aGlzLT50aXRsZUZpbHRlciAuICclJywgTUNGQ3JpdGVyaWE6OkxJS0UpOwoJCX0KCQlpZiAoY291bnQoJHRoaXMtPmNhdGVnb3J5RmlsdGVycykpIHsKCQkJJGMtPmFkZCgnaWQnLCBNWF9SZWxhdGlvbkxpbms6OmdldFJlbGF0ZWRJdGVtc0lkcygkdGhpcy0+bW9kdWxlLCAkdGhpcy0+Y2F0ZWdvcnlGaWx0ZXJzLCAnb3B0aW9ucycsICdBTkQnKSwgTUNGQ3JpdGVyaWE6OklOKTsKCQl9CgkJaWYgKGNvdW50KCR0aGlzLT5wYWdlRmlsdGVycykpIHsKCQkJJGMtPmFkZCgnaWQnLCBNWF9SZWxhdGlvbkxpbms6OmdldFJlbGF0ZWRJdGVtc0lkcygkdGhpcy0+bW9kdWxlLCAkdGhpcy0+cGFnZUZpbHRlcnMsICdwYWdlcycsICdBTkQnKSwgTUNGQ3JpdGVyaWE6OklOKTsKCQl9CgkJaWYgKGNvdW50KCR0aGlzLT5tb2R1bGVGaWx0ZXJzKSkgewoJCQljbXNfdXRpbHM6OmdldF9tb2R1bGUoJHRoaXMtPm1vZHVsZSktPmJ1aWxkRmlsdGVyc0NyaXRlcmlhKCRjLCAkdGhpcy0+bW9kdWxlRmlsdGVycyk7CgkJfQoJCXJldHVybiAkYzsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0SXRlbXMoKSB7CgkJJHRvdGFsUGFnZXMgPSAkdGhpcy0+Z2V0VG90YWxQYWdlcygpOwoJCWlmICgkdGhpcy0+cGFnZSA+ICR0b3RhbFBhZ2VzKSB7CgkJCSR0aGlzLT5zZXRQYWdlKCR0b3RhbFBhZ2VzKTsKCQl9CgkJJGMgPSAkdGhpcy0+Z2V0Q3JpdGVyaWEoKTsKCQlpZiAocHJlZ19tYXRjaCgnLyhcdyspKD86IChhc2N8ZGVzYykpPy9pJywgJHRoaXMtPm9yZGVyQnksICRtYXRjaGVzKSkgewoJCQkkY29sdW1uID0gJG1hdGNoZXNbMV07CgkJCSRvcmRlciA9IGlzc2V0KCRtYXRjaGVzWzJdKSA/IHN0cnRvbG93ZXIoJG1hdGNoZXNbMl0pIDogJ2FzYyc7CgkJCWlmICgkb3JkZXIgPT0gJ2Rlc2MnKSB7CgkJCQkkYy0+YWRkRGVzY2VuZGluZ09yZGVyQnlDb2x1bW4oJGNvbHVtbik7CgkJCX0gZWxzZSB7CgkJCQkkYy0+YWRkQXNjZW5kaW5nT3JkZXJCeUNvbHVtbigkY29sdW1uKTsKCQkJfQoJCX0KCQkkYy0+c2V0T2Zmc2V0KCgkdGhpcy0+cGFnZSAtIDEpICogJHRoaXMtPml0ZW1zUGVyUGFnZSk7CgkJJGMtPnNldExpbWl0KCR0aGlzLT5pdGVtc1BlclBhZ2UpOwoJCXJldHVybiBjYWxsX3VzZXJfZnVuYyhhcnJheSgkdGhpcy0+bW9kdWxlIC4gJ09iamVjdCcsICdkb1NlbGVjdCcpLCAkYyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFRvdGFsSXRlbXMoKSB7CgkJJGMgPSAkdGhpcy0+Z2V0Q3JpdGVyaWEoKTsKCQlyZXR1cm4gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJHRoaXMtPm1vZHVsZSAuICdPYmplY3QnLCAnZG9Db3VudCcpLCAkYyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFRvdGFsUGFnZXMoKSB7CgkJaWYgKCR0aGlzLT5pdGVtc1BlclBhZ2UgIT0gMCkKCQl7CgkJCXJldHVybiBtYXgoMSwgY2VpbCgkdGhpcy0+Z2V0VG90YWxJdGVtcygpIC8gJHRoaXMtPml0ZW1zUGVyUGFnZSkpOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9Cgp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFModule.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBNQ0ZNb2R1bGUgQ2xhc3MKICogCiAqIFRoaXMgY2xhc3MgaGFuZGxlIGFsbCB0aGUgbWFuaXB1bGF0aW9ucyBvbiB0aGUgTSZDIEZhY3RvcnkgTW9kdWxlIG9iamVjdAogKiAKICogTk9URTogSXQgc2hvdWxkIGJlIHNwbGl0IGluIHR3byBjbGFzc2VzIGJ1dCBmb3IgY29udmVuaWVuY2UsIEl0IHdvbid0LgogKgogKiBGSVhNRTogQ2hlY2sgdGhlIHNlY3VyaXR5IHByb2Nlc3NlcyAhCiAqIAogKi8KCmNsYXNzIE1DRk1vZHVsZSB7CgoJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgkvLyBDTEFTUyBQUk9QRVJUSUVTIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCXByb3RlY3RlZCAkaWQ7Cglwcm90ZWN0ZWQgJG1vZHVsZV9uYW1lOwoJcHJvdGVjdGVkICRtb2R1bGVfZnJpZW5kbHluYW1lOwoJcHJvdGVjdGVkICRtb2R1bGVfdmVyc2lvbiA9IDE7Cglwcm90ZWN0ZWQgJHRpdGxlX2xhYmVsOwoJcHJvdGVjdGVkICRjcmVhdGVkX2F0OwoJcHJvdGVjdGVkICRjcmVhdGVkX2J5OwoJcHJvdGVjdGVkICR1cGRhdGVkX2F0OwoJcHJvdGVjdGVkICR1cGRhdGVkX2J5OwoJcHJvdGVjdGVkICRleHRyYV9maWVsZHMgPSBhcnJheSgpOwoJLy8gcHJvdGVjdGVkICRzdHJ1Y3R1cmUgPSBhcnJheSgpOwoJcHJvdGVjdGVkICRzdHJ1Y3R1cmU7IC8vIE5ldyBzdHJ1Y3R1cmUgb2YgZXh0cmEgZmllbGRzCglwcm90ZWN0ZWQgJGRlbGV0ZV9maWVsZHMgPSBhcnJheSgpOwoJcHJvdGVjdGVkICRmaWx0ZXJzID0gYXJyYXkoKTsKCXByb3RlY3RlZCAkcGFyZW50X21vZHVsZTsKCXByb3RlY3RlZCAkc2hvd19tb2R1bGU7CQoJcHJvdGVjdGVkICRhZG1pbl9zZWN0aW9uOwoJcHJvdGVjdGVkICRpc191c2VyX21vZHVsZTsKCXByb3RlY3RlZCAkaXNfcHJvdGVjdGVkOwoJcHJvdGVjdGVkICRmaWxlc19wYXRoOwoJcHJvdGVjdGVkICRtb2R1bGVfbG9naWM7Cglwcm90ZWN0ZWQgJHRlbXBsYXRlc19kYXRhOwoKCXByb3RlY3RlZCAkaXNfbW9kaWZpZWQgPSBmYWxzZTsKCglwcm90ZWN0ZWQgJHB1Ymxpc2hpbmdfc3RhdHVzID0gdHJ1ZTsgLy8gV2Ugd2lsbCBhc3N1bWUgdGhhdCBwdWJsaXNoaW5nIHdlbnQgd2VsbCB1bnRpbCBmdXJ0aGVyIG5vdGljZXMKCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoJLy8gQ0xBU1MgTUVUSE9EUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgkvLyBHRVRURVIgRlVOQ1RJT05TCgoJcHVibGljIGZ1bmN0aW9uIGdldElkKCkgewoJCXJldHVybiAkdGhpcy0+aWQ7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldE1vZHVsZU5hbWUoKSB7CgkJaWYgKGVtcHR5KCR0aGlzLT5tb2R1bGVfbmFtZSkpCgkJewoJCQkkdmFsdWUgPSBwcmVnX3JlcGxhY2UoJy9cVy8nLCAnICcsICR0aGlzLT5tb2R1bGVfZnJpZW5kbHluYW1lKTsKCQkJJHZhbHVlID0gdWN3b3JkcyhzdHJ0b2xvd2VyKCR2YWx1ZSkpOwoJCQkkdmFsdWUgPSBwcmVnX3JlcGxhY2UoJy9ccy8nLCAnJywgJHZhbHVlKTsKCQkJJHRoaXMtPnNldCgnbW9kdWxlX25hbWUnLCBzZWxmOjpjaGVja01vZHVsZU5hbWVBdmFpbGFiaWxpdHkoJHZhbHVlKSk7CQoJCX0KCQlyZXR1cm4gJHRoaXMtPm1vZHVsZV9uYW1lOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpCgl7CgkJcmV0dXJuICR0aGlzLT5nZXRNb2R1bGVOYW1lKCk7Cgl9CgoJcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gY2hlY2tNb2R1bGVOYW1lQXZhaWxhYmlsaXR5KCRtb2R1bGVfbmFtZSwgJGl0ZXJhdG9yID0gMCkKCXsKCQkkbW9kdWxlID0gJG1vZHVsZV9uYW1lOwoJCWlmICgkaXRlcmF0b3IgPiAwKQoJCXsKCQkJJG1vZHVsZSAuPSAkaXRlcmF0b3I7CgkJfQoJCQoJCWlmIChjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZSkpCgkJewoJCQkkaXRlcmF0b3IrKzsKCQkJcmV0dXJuIHNlbGY6OmNoZWNrTW9kdWxlTmFtZUF2YWlsYWJpbGl0eSgkbW9kdWxlX25hbWUsJGl0ZXJhdG9yKTsKCQl9CgkJZWxzZQoJCXsKCQkJcmV0dXJuICRtb2R1bGU7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRNb2R1bGVGcmllbmRseW5hbWUoKSB7CgkJcmV0dXJuICR0aGlzLT5tb2R1bGVfZnJpZW5kbHluYW1lOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRNb2R1bGVWZXJzaW9uKCkgewoJCXJldHVybiAkdGhpcy0+bW9kdWxlX3ZlcnNpb247Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFRpdGxlTGFiZWwoKSB7CgkJcmV0dXJuICghZW1wdHkoJHRoaXMtPnRpdGxlX2xhYmVsKSk/JHRoaXMtPnRpdGxlX2xhYmVsOidUaXRsZSc7Cgl9CgoKCXB1YmxpYyBmdW5jdGlvbiBnZXRDcmVhdGVkQXQoKSB7CgkJcmV0dXJuICR0aGlzLT5jcmVhdGVkX2F0OwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRDcmVhdGVkQnkoKSB7CgkJcmV0dXJuICR0aGlzLT5jcmVhdGVkX2J5OwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRVcGRhdGVkQXQoKSB7CgkJcmV0dXJuICR0aGlzLT51cGRhdGVkX2F0OwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRVcGRhdGVkQnkoKSB7CgkJcmV0dXJuICR0aGlzLT51cGRhdGVkX2J5OwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRFeHRyYUZpZWxkcygpIHsKCQlyZXR1cm4gJHRoaXMtPmV4dHJhX2ZpZWxkczsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0T2xkRXh0cmFGaWVsZHMoKSB7CgkJcmV0dXJuICR0aGlzLT5nZXRTdHJ1Y3R1cmUoKS0+Z2V0T2xkU3RydWN0dXJlKCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFN0cnVjdHVyZSgpIHsKCQlpZighaXNfb2JqZWN0KCR0aGlzLT5zdHJ1Y3R1cmUpKQoJCXsKCQkJJHRoaXMtPnN0cnVjdHVyZSA9IG5ldyBNQ0ZNb2R1bGVTdHJ1Y3R1cmUoJHRoaXMtPmV4dHJhX2ZpZWxkcyk7CgkJfQoJCXJldHVybiAkdGhpcy0+c3RydWN0dXJlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXREZWxldGVGaWVsZHMoKSB7CgkJcmV0dXJuICR0aGlzLT5kZWxldGVfZmllbGRzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRGaWx0ZXJzKCkgewoJCXNvcnQoJHRoaXMtPmZpbHRlcnMpOwoJCXJldHVybiAkdGhpcy0+ZmlsdGVyczsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyZW50TW9kdWxlKCkgewoJCXJldHVybiAkdGhpcy0+cGFyZW50X21vZHVsZTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldENoaWxkTW9kdWxlcygpCgl7CgkJJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKCQkkYy0+YWRkKCdwYXJlbnRfbW9kdWxlJywgJHRoaXMtPmdldElkKCkpOwoJCXJldHVybiBzZWxmOjpkb1NlbGVjdCgkYyk7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXRTaG93TW9kdWxlKCkgewoJCQlyZXR1cm4gJHRoaXMtPnNob3dfbW9kdWxlOwoJCX0gCgkKCWZ1bmN0aW9uIGdldElzVXNlck1vZHVsZSgpIHsKCQkJcmV0dXJuICR0aGlzLT5pc191c2VyX21vZHVsZTsKCQl9CgkJCglmdW5jdGlvbiBnZXRJc1Byb3RlY3RlZCgpIHsKCQkJcmV0dXJuICR0aGlzLT5pc19wcm90ZWN0ZWQ7CgkJfQoJCQoJZnVuY3Rpb24gZ2V0RmlsZXNQYXRoKCkgewoJCS8vIENvdWxkIGhhdmUgZGVmYXVsdCBwYXRoIGJ1dCBkYW5nZXJvdXMgaWYgdXNlciBkbyBub3QgbW9kaWZ5IGl0IHdoZW4gbW92aW5nIHRoZSB3ZWJzaXRlLi4uCgkJcmV0dXJuICR0aGlzLT5maWxlc19wYXRoOyAvLyBFbXB0eSBwYXRoIG1lYW5zICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwoJCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0TW9kdWxlTG9naWMoKSB7CgkJcmV0dXJuICR0aGlzLT5tb2R1bGVfbG9naWM7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXRUZW1wbGF0ZXNEYXRhKCkgewoJCXJldHVybiAkdGhpcy0+dGVtcGxhdGVzX2RhdGE7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXRBZG1pblNlY3Rpb24oKSB7CgkJcmV0dXJuICR0aGlzLT5hZG1pbl9zZWN0aW9uOwoJfQoKCS8vIFNFVFRFUiBGVU5DVElPTlMKCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0KCRuYW1lLCAkdmFsdWUpIHsKCQlpZiAoJHRoaXMtPiRuYW1lICE9PSAkdmFsdWUpIHsKCQkJJHRoaXMtPiRuYW1lID0gJHZhbHVlOwoJCQkkdGhpcy0+aXNfbW9kaWZpZWQgPSB0cnVlOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gc2V0SWQoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgnaWQnLCAkdmFsdWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRNb2R1bGVOYW1lKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ21vZHVsZV9uYW1lJywgJHZhbHVlKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2V0TW9kdWxlRnJpZW5kbHluYW1lKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ21vZHVsZV9mcmllbmRseW5hbWUnLCAkdmFsdWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRNb2R1bGVWZXJzaW9uKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ21vZHVsZV92ZXJzaW9uJywgJHZhbHVlKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIHNldFRpdGxlTGFiZWwoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgndGl0bGVfbGFiZWwnLCAkdmFsdWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRDcmVhdGVkQXQoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgnY3JlYXRlZF9hdCcsICR2YWx1ZSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldENyZWF0ZWRCeSgkdmFsdWUpIHsKCQkkdGhpcy0+c2V0KCdjcmVhdGVkX2J5JywgJHZhbHVlKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2V0VXBkYXRlZEF0KCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ3VwZGF0ZWRfYXQnLCAkdmFsdWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRVcGRhdGVkQnkoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgndXBkYXRlZF9ieScsICR2YWx1ZSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldFNob3dNb2R1bGUoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgnc2hvd19tb2R1bGUnLCAkdmFsdWUpOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gc2V0SXNVc2VyTW9kdWxlKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ2lzX3VzZXJfbW9kdWxlJywgJHZhbHVlKTsKCX0JCgkKCXB1YmxpYyBmdW5jdGlvbiBzZXRJc1Byb3RlY3RlZCgkdmFsdWUpIHsKCQkkdGhpcy0+c2V0KCdpc19wcm90ZWN0ZWQnLCAkdmFsdWUpOwoJfQkKCQoJcHVibGljIGZ1bmN0aW9uIHNldEZpbGVzUGF0aCgkdmFsdWUpIHsKCQkkdGhpcy0+c2V0KCdmaWxlc19wYXRoJywgJHZhbHVlKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2V0TW9kdWxlTG9naWMoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgnbW9kdWxlX2xvZ2ljJywgJHZhbHVlKTsKCX0KCQkKCXB1YmxpYyBmdW5jdGlvbiBzZXRUZW1wbGF0ZXNEYXRhKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ3RlbXBsYXRlc19kYXRhJywgJHZhbHVlKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIHNldEFkbWluU2VjdGlvbigkdmFsdWUpIHsKCQkkdGhpcy0+c2V0KCdhZG1pbl9zZWN0aW9uJywgJHZhbHVlKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIHNldEV4dHJhRmllbGRzKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXRFeHRyYU9sZEZpZWxkcygkdmFsdWUpOwoJfQkKCQoJcHVibGljIGZ1bmN0aW9uIHNldFN0cnVjdHVyZSgkdmFsdWUpIHsKCQlpZiAoZW1wdHkoJHZhbHVlKSkKCQl7CQkJCgkJCSRzdHJ1Y3R1cmUgPSBuZXcgTUNGTW9kdWxlU3RydWN0dXJlKCR0aGlzLT5leHRyYV9maWVsZHMpOwoJCQkkdmFsdWUgPSAkc3RydWN0dXJlOwoJCX0KCQkKCQlpZihpc19vYmplY3QoJHZhbHVlKSkKCQl7CgkJCSR0aGlzLT5zZXQoJ3N0cnVjdHVyZScsICR2YWx1ZSk7CQoJCX0KCQllbHNlaWYoaXNfYXJyYXkoJHZhbHVlKSkKCQl7CgkJCSRzdHJ1Y3R1cmUgPSBuZXcgTUNGTW9kdWxlU3RydWN0dXJlKCR2YWx1ZSk7CgkJCSR0aGlzLT5zZXQoJ3N0cnVjdHVyZScsICRzdHJ1Y3R1cmUpOwoJCX0KCQllbHNlCgkJewoJCQkkc3RydWN0dXJlID0gbmV3IE1DRk1vZHVsZVN0cnVjdHVyZSh1bnNlcmlhbGl6ZSgkdmFsdWUpKTsKCQkJJHRoaXMtPnNldCgnc3RydWN0dXJlJywgJHN0cnVjdHVyZSk7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gc2V0RXh0cmFPbGRGaWVsZHMoJHZhbHVlKSB7CgkgIAoJICAvLyBERVBSRUNBVEVEIFNFRSBNT0RVTEUgU1RSVUNUVVJFIElOU1RFQUQgISEhCgkJJGJsYWNrbGlzdCA9IGFycmF5KCdpZCcsICdwYXJlbnRfaWQnLCAndGl0bGUnLCAnY3JlYXRlZF9hdCcsICdjcmVhdGVkX2J5JywgJ3VwZGF0ZWRfYXQnLCAndXBkYXRlZF9ieScsICdvcmRlcl9ieScsICdwYXJlbnQnLCAncGFyZW50X21vZHVsZScsICdwdWJsaXNoZWQnLCAnb3JkZXInLCAnb3JkZXJfYnknLCAnZnJvbScsICdzZWxlY3QnLCAnaW4nLCAnZGF0ZScsICdmdWxsX3RleHRfc2VhcmNoJywnY29yZV9zbHVnJywnY29yZXNsdWcnLCd1c2VyX2lkJywgJ2Z1bmN0aW9uJywgJ2J5aWQnLCdqc29uJywnYXNhcnJheScsJ3NlYXJjaHN0cmluZycsICdncm91cCcsICdieScsICdzZW5kX2ltbWVkaWF0ZV91cGRhdGUnKTsKCQkkZmlsdGVyID0gYXJyYXkoKTsKCQlpZiAoaXNfYXJyYXkoJHZhbHVlKSkgewoJCQlmb3JlYWNoICgkdmFsdWUgYXMgJGZpZWxkKSB7CgkJCQkvLyBSZXNlcnZlIG1jZmlfIGZvciBpbnRlcm5hbCB1c2Ugb25seQoJCQkJJGZpZWxkWyduYW1lJ10gPSBzdHJfcmVwbGFjZSgnbWNmaV8nLCAnbWNmXycsICRmaWVsZFsnbmFtZSddKTsKCQkJCS8vIEdldCBsYWJlbCBmcm9tIG5hbWUgaWYgdW5kZWZpbmVkCgkJCQlpZiAoKCRmaWVsZFsnbGFiZWwnXSkgPT0gJycpIHsgJGZpZWxkWydsYWJlbCddID0gJGZpZWxkWyduYW1lJ107fQoJCQkJCgkJCQlpZihwcmVnX21hdGNoKCIvW0EtWl0vIiwgJGZpZWxkWyduYW1lJ10pPT09MCkgewoJCQkJCSRmaWVsZFsndXBwZXJjYXNlX25hbWUnXSA9ICRmaWVsZFsnbmFtZSddOwoJCQkJfQkJCQkKCQkJCQoJCQkJJGZpZWxkWyduYW1lJ10gPSBwcmVnX3JlcGxhY2UoJy9cVy8nLCAnJywgc3RydG9sb3dlcigkZmllbGRbJ25hbWUnXSkpOwoJCQkJCgkJCQlpZiAoIWVtcHR5KCRmaWVsZFsnbmFtZSddKSkgewoJCQkJCWlmICghaW5fYXJyYXkoJGZpZWxkWyduYW1lJ10sICRibGFja2xpc3QpKQoJCQkJCXsJCQkJCQoJCQkJCQkkZmlsdGVyW10gPSAkZmllbGQ7CQoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQkkZmllbGRbJ25hbWUnXSA9ICdtY2ZfJy4kZmllbGRbJ25hbWUnXTsKCQkJCQkJCSRmaWx0ZXJbXSA9ICRmaWVsZDsJCgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCSR0aGlzLT5zZXQoJ2V4dHJhX2ZpZWxkcycsICRmaWx0ZXIpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBvcmRlckV4dHJhRmllbGRzKCRpZCwgJGRpcmVjdGlvbikKCXsKCQkkZmllbGRzID0gJHRoaXMtPmdldE9sZEV4dHJhRmllbGRzKCk7CgkJaWYgKCRkaXJlY3Rpb24gPT0gJ3VwJykKCQl7CQoJCQkkaWQxID0gJGlkOwoJCQkkaWQyID0gJGlkLTE7CQkJCgkJfQoJCQoJCWlmICgkZGlyZWN0aW9uID09ICdkb3duJykKCQl7CQoJCQkkaWQxID0gJGlkOwoJCQkkaWQyID0gJGlkKzE7CQkJCgkJfQoJCQoJCWlmIChpc3NldCgkZmllbGRzWyRpZDFdKSAmJiBpc3NldCgkZmllbGRzWyRpZDJdKSkKCQl7CgkJCSRmaWVsZDEgPSAkZmllbGRzWyRpZDFdOwoJCQkkZmllbGQyID0gJGZpZWxkc1skaWQyXTsKCQkJJGZpZWxkc1skaWQxXSA9ICRmaWVsZDI7CgkJCSRmaWVsZHNbJGlkMl0gPSAkZmllbGQxOwkJCQoJCX0KCQkkdGhpcy0+c2V0KCdleHRyYV9maWVsZHMnLCRmaWVsZHMpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXREZWxldGVGaWVsZHMoJHZhbHVlKSB7CgkJJHRoaXMtPnNldCgnZGVsZXRlX2ZpZWxkcycsICR2YWx1ZSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldEZpbHRlcnMoJHZhbHVlKSB7CgkJaWYgKGlzX2FycmF5KCR2YWx1ZSkpIHsKCQkJZm9yZWFjaCAoJHZhbHVlIGFzICYkZmlsdGVyKSB7CgkJCQkkZmlsdGVyWyduYW1lJ10gPSBwcmVnX3JlcGxhY2UoJy9cVy8nLCAnJywgJGZpbHRlclsnbmFtZSddKTsKCQkJCSRmaWx0ZXJbJ2ZpZWxkJ10gPSBwcmVnX3JlcGxhY2UoJy9cVy8nLCAnJywgJGZpbHRlclsnZmllbGQnXSk7CgkJCX0KCQl9CgkJJHRoaXMtPnNldCgnZmlsdGVycycsICR2YWx1ZSk7Cgl9CgkJCglwdWJsaWMgZnVuY3Rpb24gc2V0UGFyZW50TW9kdWxlKCR2YWx1ZSkgewoJCSR0aGlzLT5zZXQoJ3BhcmVudF9tb2R1bGUnLCAkdmFsdWUpOwoJCWlmICgkdmFsdWUgPiAwKQoJCXsKCQkJaWYgKGlzX2FycmF5KCR0aGlzLT5maWx0ZXJzKSkKCQkJewoJCQkJJGV4aXN0cyA9IGZhbHNlOwoJCQkJZm9yZWFjaCgkdGhpcy0+ZmlsdGVycyBhcyAkZmlsdGVyKQoJCQkJewoJCQkJCWlmICgkZmlsdGVyWyduYW1lJ10gPT0gJ3BhcmVudF9pdGVtJykKCQkJCQl7CgkJCQkJCSRleGlzdHMgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJCWlmKCRleGlzdHMgPT0gZmFsc2UpCgkJCQl7CgkJCQkJJHRoaXMtPmZpbHRlcnNbXSA9IGFycmF5KCduYW1lJyA9PiAncGFyZW50X2l0ZW0nLCAnZmllbGQnID0+ICdwYXJlbnRfaXRlbScsICd0eXBlJyA9PiAnZXF1YWwnKTsKCQkJCX0KCQkJfQoJCX0KCX0KCgkvLyBPVEhFUiBGVU5DVElPTlMKCglwdWJsaWMgZnVuY3Rpb24gZ2V0RmllbGRUeXBlcygpIHsKCQlyZXR1cm4gYXJyYXkoCgkJCSd0ZXh0JyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAndGV4dCcsCgkJCQknbGFiZWwnID0+ICdUZXh0IGZpZWxkJywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0MoMjU1KScsCgkJCQknZm9ybV90eXBlJyA9PiAndGV4dCcsCgkJCQknb3B0aW9ucycgPT4gdHJ1ZQoJCQkpLAoJCQkndGV4dGFyZWEnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICd0ZXh0YXJlYScsCgkJCQknbGFiZWwnID0+ICdUZXh0IGFyZWEnLAoJCQkJJ2NvbHVtbl90eXBlJyA9PiAnWCcsCgkJCQknZm9ybV90eXBlJyA9PiAndGV4dGFyZWEnLAoJCQkJJ29wdGlvbnMnID0+IHRydWUKCQkJKSwKCQkJJ3RleHRhcmVhX3BsYWluJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAndGV4dGFyZWFfcGxhaW4nLAoJCQkJJ2xhYmVsJyA9PiAnVGV4dCBhcmVhIChubyBXWVNJV1lHKScsCgkJCQknY29sdW1uX3R5cGUnID0+ICdYJywKCQkJCSdmb3JtX3R5cGUnID0+ICd0ZXh0YXJlYV9wbGFpbicsCgkJCQknb3B0aW9ucycgPT4gdHJ1ZQoJCQkpLAoJCQkndGV4dGFyZWFfY29kZScgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ3RleHRhcmVhX2NvZGUnLAoJCQkJJ2xhYmVsJyA9PiAnVGV4dCBhcmVhIChjb2RlKScsCgkJCQknY29sdW1uX3R5cGUnID0+ICdYJywKCQkJCSdmb3JtX3R5cGUnID0+ICd0ZXh0YXJlYV9jb2RlJywKCQkJCSdvcHRpb25zJyA9PiB0cnVlCgkJCSksCgkJCSdzZWxlY3QnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdzZWxlY3QnLAoJCQkJJ2xhYmVsJyA9PiAnU2VsZWN0IChEcm9wZG93biknLAoJCQkJJ2NvbHVtbl90eXBlJyA9PiAnQygyNTUpJywKCQkJCSdmb3JtX3R5cGUnID0+ICdzZWxlY3QnLAoJCQkJJ29wdGlvbnMnID0+IHRydWUsCgkJCQknb3B0aW9uc19kZWZhdWx0JyA9PiAndmFsdWVzOm9wdGlvbjE9Pk9wdGlvbiAxLG9wdGlvbjI9Pk9wdGlvbjI7JwoJCQkpLAoJCQknY2hlY2tib3gnID0+IGFycmF5KAoJCQkgICd0eXBlJyA9PiAnY2hlY2tib3gnLAoJCQkgICdsYWJlbCcgPT4gJ0NoZWNrYm94JywKCQkJICAnY29sdW1uX3R5cGUnID0+ICdJJywKCQkJICAnZm9ybV90eXBlJyA9PiAnY2hlY2tib3gnLAoJCQkgICdvcHRpb25zJyA9PiB0cnVlLAoJCQkgICdvcHRpb25zX2RlZmF1bHQnID0+ICd0ZXh0Ok15IGNoZWNrYm94IHRleHQ7JwoJCQkpLAoJCQknZGF0ZScgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ2RhdGUnLAoJCQkJJ2xhYmVsJyA9PiAnRGF0ZScsCgkJCQknY29sdW1uX3R5cGUnID0+ICdEJywKCQkJCSdmb3JtX3R5cGUnID0+ICd0ZXh0JywKCQkJCSdvcHRpb25zJyA9PiB0cnVlLAoJCQkJJ29wdGlvbnNfZGVmYXVsdCcgPT4gJ3N0YXJ0X3llYXI6MjAwOTsnCgkJCSksCgkJCSd0aW1lJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAndGltZScsCgkJCQknbGFiZWwnID0+ICdUaW1lJywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ1QnLAoJCQkJJ2Zvcm1fdHlwZScgPT4gJ3RleHQnLAoJCQkJJ29wdGlvbnMnID0+IHRydWUKCQkJKSwKCQkJJ2RvY3VtZW50JyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnZG9jdW1lbnQnLAoJCQkJJ2xhYmVsJyA9PiAnRG9jdW1lbnQnLAoJCQkJJ2NvbHVtbl90eXBlJyA9PiAnQygyNTUpJywKCQkJCSdmb3JtX3R5cGUnID0+ICdmaWxlJywKCQkJCSdvcHRpb25zJyA9PiB0cnVlCgkJCSksCgkJCSdpbWFnZScgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ2ltYWdlJywKCQkJCSdsYWJlbCcgPT4gJ0ltYWdlJywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0MoMjU1KScsCgkJCQknZm9ybV90eXBlJyA9PiAnZmlsZScsCgkJCQknb3B0aW9ucycgPT4gdHJ1ZSwKCQkJCSdvcHRpb25zX2RlZmF1bHQnID0+ICdzaXplOjE1MHgxNTA7JwoJCQkpLAoJCQknY291bnRyeScgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ2NvdW50cnknLAoJCQkJJ2xhYmVsJyA9PiAnQ291bnRyeScsCgkJCQknY29sdW1uX3R5cGUnID0+ICdDKDI1NSknLAoJCQkJJ2Zvcm1fdHlwZScgPT4gJ3NlbGVjdCcsCgkJCQknb3B0aW9ucycgPT4gdHJ1ZSwKCQkJCSdvcHRpb25zX2RlZmF1bHQnID0+ICcnCgkJCSksCgkJCSdoaWRkZW5fdGV4dCcgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ2hpZGRlbl90ZXh0JywKCQkJCSdsYWJlbCcgPT4gJ0hpZGRlbiB0ZXh0JywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0MoMjU1KScsCgkJCQknZm9ybV90eXBlJyA9PiAnbm9uZScsCgkJCQknb3B0aW9ucycgPT4gZmFsc2UKCQkJKSwJCQkKCQkJJ3N0YXRpYycgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ3N0YXRpYycsCgkJCQknbGFiZWwnID0+ICdTdGF0aWMgdmFsdWUnLAoJCQkJJ2NvbHVtbl90eXBlJyA9PiAnQygyNTUpJywKCQkJCSdmb3JtX3R5cGUnID0+ICdzdGF0aWMnLAoJCQkJJ29wdGlvbnMnID0+IGZhbHNlCgkJCSksCgkJCSdtb2R1bGUnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdtb2R1bGUnLAoJCQkJJ2xhYmVsJyA9PiAnTW9kdWxlJywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0MoMjU1KScsCgkJCQknZm9ybV90eXBlJyA9PiAnbW9kdWxlJywKCQkJCSdvcHRpb25zJyA9PiB0cnVlLAoJCQkJJ29wdGlvbnNfZGVmYXVsdCcgPT4gJ21vZHVsZV9uYW1lOk15TW9kdWxlTmFtZTsnCgkJCSksCQkJCgkJCSdwYWdlJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAncGFnZScsCgkJCQknbGFiZWwnID0+ICdQYWdlJywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0MoMjU1KScsCgkJCQknZm9ybV90eXBlJyA9PiAncGFnZScsCgkJCQknb3B0aW9ucycgPT4gdHJ1ZQoJCQkpLAkJCgkJCSd1c2VyJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAndXNlcicsCgkJCQknbGFiZWwnID0+ICdDTVMgVXNlcicsCgkJCQknY29sdW1uX3R5cGUnID0+ICdDKDI1NSknLAoJCQkJJ2Zvcm1fdHlwZScgPT4gJ3VzZXInLAoJCQkJJ29wdGlvbnMnID0+IHRydWUKCQkJKSwKCQkJJ2dyb3VwJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnZ3JvdXAnLAoJCQkJJ2xhYmVsJyA9PiAnQ01TIEdyb3VwJywKCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0MoMjU1KScsCgkJCQknZm9ybV90eXBlJyA9PiAnZ3JvdXAnLAoJCQkJJ29wdGlvbnMnID0+IHRydWUKCQkJKSwKCQkJCgkJCQkvLyAndXNlcicgPT4gYXJyYXkoIC8vIFRoaXMgaXMgb25seSBhbiBPbi9PZmYgb3B0aW9uICEKCQkJCS8vIAkJCQkndHlwZScgPT4gJ3VzZXInLAoJCQkJLy8gCQkJCSdsYWJlbCcgPT4gJ1VzZXInLAoJCQkJLy8gCQkJCSdjb2x1bW5fdHlwZScgPT4gJ0knLAoJCQkJLy8gCQkJCSdmb3JtX3R5cGUnID0+ICd1c2VyJywKCQkJCS8vIAkJCQknb3B0aW9ucycgPT4gZmFsc2UKCQkJCS8vIAkJCSksCgkJKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0RmlsdGVyVHlwZXMoKSB7CgkJcmV0dXJuIGFycmF5KAoJCQknZXF1YWwnID0+IGFycmF5KAoJCQkJCQkJJ3R5cGUnID0+ICdlcXVhbCcsCgkJCQkJCQknbGFiZWwnID0+ICdFcXVhbCcsCgkJCQkJCQknY3JpdGVyaWEnID0+ICdFUVVBTCcKCQkJCQkJKSwKCQkJJ25vdF9lcXVhbCcgPT4gYXJyYXkoCgkJCQkJJ3R5cGUnID0+ICdub3RfZXF1YWwnLAoJCQkJCSdsYWJlbCcgPT4gJ05vdCBlcXVhbCcsCgkJCQkJJ2NyaXRlcmlhJyA9PiAnTk9UX0VRVUFMJwoJCQkJCSksCgkJCSdsaWtlJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnbGlrZScsCgkJCQknbGFiZWwnID0+ICdMaWtlICh3aXRob3V0IHdpbGRjYXJkICUpJywKCQkJCSdjcml0ZXJpYScgPT4gJ0xJS0UnCgkJCSksCgkJCSdsaWtlX3dpbGQnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdsaWtlX3dpbGQnLAoJCQkJJ2xhYmVsJyA9PiAnTGlrZSAod2l0aCB3aWxkY2FyZCAlKScsCgkJCQknY3JpdGVyaWEnID0+ICdMSUtFJwoJCQkpLAoJCQknbXVsdGlsaWtlX3dpbGQnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdtdWx0aWxpa2Vfd2lsZCcsCgkJCQknbGFiZWwnID0+ICdMaXN0IE11bHRpcGxlIExpa2UnLAoJCQkJJ2NyaXRlcmlhJyA9PiAnTVVMVElMSUtFJwoJCQkpLAkJCQoJCQknbXVsdGlub3RsaWtlX3dpbGQnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdtdWx0aW5vdGxpa2Vfd2lsZCcsCgkJCQknbGFiZWwnID0+ICdMaXN0IE11bHRpcGxlIE5vdCBMaWtlJywKCQkJCSdjcml0ZXJpYScgPT4gJ01VTFRJTk9UTElLRScKCQkJKSwJCQkKCQkJJ2luJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnaW4nLAoJCQkJJ2xhYmVsJyA9PiAnSW4gbGlzdCAoc2VwYXJhdGVkIHdpdGggIiwiKScsCgkJCQknY3JpdGVyaWEnID0+ICdJTicKCQkJKSwJCQkKCQkJJ2xlc3MnID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdsZXNzJywKCQkJCSdsYWJlbCcgPT4gJ0xlc3MgdGhhbicsCgkJCQknY3JpdGVyaWEnID0+ICdMRVNTX1RIQU4nCgkJCSksCgkJCSdsZXNzX2VxdWFsJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnbGVzc19lcXVhbCcsCgkJCQknbGFiZWwnID0+ICdFcXVhbCBvciBsZXNzIHRoYW4nLAoJCQkJJ2NyaXRlcmlhJyA9PiAnTEVTU19FUVVBTCcKCQkJKSwKCQkJJ2dyZWF0ZXInID0+IGFycmF5KAoJCQkJJ3R5cGUnID0+ICdncmVhdGVyJywKCQkJCSdsYWJlbCcgPT4gJ0dyZWF0ZXIgdGhhbicsCgkJCQknY3JpdGVyaWEnID0+ICdHUkVBVEVSX1RIQU4nCgkJCSksCgkJCSdncmVhdGVyX2VxdWFsJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnZ3JlYXRlcl9lcXVhbCcsCgkJCQknbGFiZWwnID0+ICdFcXVhbCBvciBncmVhdGVyIHRoYW4nLAoJCQkJJ2NyaXRlcmlhJyA9PiAnR1JFQVRFUl9FUVVBTCcKCQkJKSwKCQkJJ25vdF9lbXB0eScgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ25vdF9lbXB0eScsCgkJCQknbGFiZWwnID0+ICdOb3QgZW1wdHknLAoJCQkJJ2NyaXRlcmlhJyA9PiAnSVNOT1RFTVBUWScKCQkJKSwKCQkJJ2VtcHR5JyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAnZW1wdHknLAoJCQkJJ2xhYmVsJyA9PiAnRW1wdHknLAoJCQkJJ2NyaXRlcmlhJyA9PiAnSVNFTVBUWScKCQkJKSwKCQkJJ3VwY29taW5nJyA9PiBhcnJheSgKCQkJCSd0eXBlJyA9PiAndXBjb21pbmcnLAoJCQkJJ2xhYmVsJyA9PiAnVXBjb21pbmcgZGF0ZScsCgkJCQknY3JpdGVyaWEnID0+ICdVUENPTUlORycKCQkJKSwJCQoJCQkncGFzdCcgPT4gYXJyYXkoCgkJCQkndHlwZScgPT4gJ3Bhc3QnLAoJCQkJJ2xhYmVsJyA9PiAnUGFzdCBkYXRlJywKCQkJCSdjcml0ZXJpYScgPT4gJ1BBU1QnCgkJCSkKCQkpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBwb3B1bGF0ZUZyb21BcnJheShhcnJheSAkcGFyYW1zKSB7CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2lkJ10pKSB7CgkJCSR0aGlzLT5zZXRJZCgkcGFyYW1zWydpZCddKTsKCQl9CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9uYW1lJ10pKSB7CgkJCSR0aGlzLT5zZXRNb2R1bGVOYW1lKCRwYXJhbXNbJ21vZHVsZV9uYW1lJ10pOwoJCX0KCQlpZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2ZyaWVuZGx5bmFtZSddKSkgewoJCQkkdGhpcy0+c2V0TW9kdWxlRnJpZW5kbHluYW1lKCRwYXJhbXNbJ21vZHVsZV9mcmllbmRseW5hbWUnXSk7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfdmVyc2lvbiddKSkgewoJCQkkdGhpcy0+c2V0TW9kdWxlVmVyc2lvbigkcGFyYW1zWydtb2R1bGVfdmVyc2lvbiddKTsKCQl9CQkKCQlpZiAoaXNzZXQoJHBhcmFtc1sndGl0bGVfbGFiZWwnXSkpIHsKCQkJJHRoaXMtPnNldFRpdGxlTGFiZWwoJHBhcmFtc1sndGl0bGVfbGFiZWwnXSk7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWydjcmVhdGVkX2J5J10pKSB7CgkJCSR0aGlzLT5zZXRDcmVhdGVkQnkoJHBhcmFtc1snY3JlYXRlZF9ieSddKTsKCQl9CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2NyZWF0ZWRfYXQnXSkpIHsKCQkJJHRoaXMtPnNldENyZWF0ZWRBdCgkcGFyYW1zWydjcmVhdGVkX2F0J10pOwoJCX0KCQlpZiAoaXNzZXQoJHBhcmFtc1sndXBkYXRlZF9ieSddKSkgewoJCQkkdGhpcy0+c2V0VXBkYXRlZEJ5KCRwYXJhbXNbJ3VwZGF0ZWRfYnknXSk7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWyd1cGRhdGVkX2F0J10pKSB7CgkJCSR0aGlzLT5zZXRVcGRhdGVkQXQoJHBhcmFtc1sndXBkYXRlZF9hdCddKTsKCQl9CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2V4dHJhX2ZpZWxkcyddKSkgewoJCQkkdGhpcy0+c2V0RXh0cmFGaWVsZHMoJHBhcmFtc1snZXh0cmFfZmllbGRzJ10pOwoJCX0gZWxzZSB7CgkJCSR0aGlzLT5zZXRFeHRyYUZpZWxkcyhhcnJheSgpKTsKCQl9CQoJCWlmIChpc3NldCgkcGFyYW1zWydzdHJ1Y3R1cmUnXSkpIHsKCQkJJHRoaXMtPnNldFN0cnVjdHVyZSgkcGFyYW1zWydzdHJ1Y3R1cmUnXSk7CgkJfSBlbHNlIHsKCQkJLy8kdGhpcy0+c2V0U3RydWN0dXJlKGFycmF5KCkpOwoJCX0KCQlpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlX2ZpZWxkcyddKSkgewoJCQkkdGhpcy0+c2V0RGVsZXRlRmllbGRzKCRwYXJhbXNbJ2RlbGV0ZV9maWVsZHMnXSk7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWydmaWx0ZXJzJ10pKSB7CgkJCSR0aGlzLT5zZXRGaWx0ZXJzKCRwYXJhbXNbJ2ZpbHRlcnMnXSk7CgkJfSBlbHNlIHsKCQkJJHRoaXMtPnNldEZpbHRlcnMoYXJyYXkoKSk7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWydwYXJlbnRfbW9kdWxlJ10pKSB7CgkJCSR0aGlzLT5zZXRQYXJlbnRNb2R1bGUoJHBhcmFtc1sncGFyZW50X21vZHVsZSddKTsKCQl9CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3Nob3dfbW9kdWxlJ10pKSB7CgkJCSR0aGlzLT5zZXRTaG93TW9kdWxlKCRwYXJhbXNbJ3Nob3dfbW9kdWxlJ10pOwoJCX0JCQoJCWlmIChpc3NldCgkcGFyYW1zWydpc191c2VyX21vZHVsZSddKSkgewoJCQkkdGhpcy0+c2V0SXNVc2VyTW9kdWxlKCRwYXJhbXNbJ2lzX3VzZXJfbW9kdWxlJ10pOwoJCX0JCQoJCWlmIChpc3NldCgkcGFyYW1zWydpc19wcm90ZWN0ZWQnXSkpIHsKCQkJJHRoaXMtPnNldElzUHJvdGVjdGVkKCRwYXJhbXNbJ2lzX3Byb3RlY3RlZCddKTsKCQl9CQkKCQlpZiAoaXNzZXQoJHBhcmFtc1snZmlsZXNfcGF0aCddKSkgewoJCQkkdGhpcy0+c2V0RmlsZXNQYXRoKCRwYXJhbXNbJ2ZpbGVzX3BhdGgnXSk7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfbG9naWMnXSkpIHsKCQkJJHRoaXMtPnNldE1vZHVsZUxvZ2ljKCRwYXJhbXNbJ21vZHVsZV9sb2dpYyddKTsKCQl9CQkKCQlpZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVzX2RhdGEnXSkpIHsKCQkJJHRoaXMtPnNldFRlbXBsYXRlc0RhdGEoJHBhcmFtc1sndGVtcGxhdGVzX2RhdGEnXSk7CgkJfQkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2FkbWluX3NlY3Rpb24nXSkpIHsKCQkJJHRoaXMtPnNldEFkbWluU2VjdGlvbigkcGFyYW1zWydhZG1pbl9zZWN0aW9uJ10pOwoJCX0KCX0KCgkvLyBEQVRBQkFTRSBGVU5DVElPTlMKCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEJ5SWQoJGlkKSB7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXMKCQkJV0hFUkUgaWQgPSA/JzsKCQkkdmFsdWVzID0gYXJyYXkoJGlkKTsKCQkkcmVzdWx0ID0gc2VsZjo6cXVlcnkoJHNxbCwgJHZhbHVlcyk7CgkJaWYgKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJG1vZHVsZSA9IG5ldyBzZWxmKCk7CgkJCSRtb2R1bGUtPnBvcHVsYXRlRnJvbUFycmF5KCRyb3cpOwoJCQlyZXR1cm4gJG1vZHVsZTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcXVlcnkoJHNxbCwgJHZhbHVlcyA9IGFycmF5KCkpIHsKCQkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwoJCXJldHVybiAkZGItPmV4ZWN1dGUoJHNxbCwgJHZhbHVlcyk7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkb1NlbGVjdChNQ0ZDcml0ZXJpYSAkYykgewoJCSRkYiA9IGNtc191dGlsczo6Z2V0X2RiKCk7CgkJJHF1ZXJ5ID0gJGMtPmJ1aWxkUXVlcnkoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXMnKTsKCQkkcmVzdWx0ID0gJGRiLT5leGVjdXRlKCRxdWVyeSwgJGMtPnZhbHVlcyk7CgkJJG1vZHVsZXMgPSBhcnJheSgpOwoJCXdoaWxlICgkcmVzdWx0ICYmICgkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkpIHsKCQkJJG1vZHVsZSA9IG5ldyBzZWxmKCk7CgkJCSRyb3dbJ2V4dHJhX2ZpZWxkcyddID0gdW5zZXJpYWxpemUoJHJvd1snZXh0cmFfZmllbGRzJ10pOwoJCQkkcm93WydzdHJ1Y3R1cmUnXSA9IHVuc2VyaWFsaXplKCRyb3dbJ3N0cnVjdHVyZSddKTsKCQkJJHJvd1snZmlsdGVycyddID0gdW5zZXJpYWxpemUoJHJvd1snZmlsdGVycyddKTsKCQkJJG1vZHVsZS0+cG9wdWxhdGVGcm9tQXJyYXkoJHJvdyk7CgkJCSRtb2R1bGUtPmlzX21vZGlmaWVkID0gZmFsc2U7CgkJICAgICRtb2R1bGVzW10gPSAkbW9kdWxlOwoJCX0KCQlyZXR1cm4gJG1vZHVsZXM7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkb1NlbGVjdE9uZShNQ0ZDcml0ZXJpYSAkYykgewoJCSRjLT5zZXRMaW1pdCgxKTsKCQkkcmVzdWx0ID0gc2VsZjo6ZG9TZWxlY3QoJGMpOwoJCWlmIChjb3VudCgkcmVzdWx0KSA+IDApIHsKCQkJcmV0dXJuICRyZXN1bHRbMF07CgkJfSBlbHNlIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJldHJpZXZlQnlQaygkcGspIHsKCQkkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwoJCSRjLT5hZGQoJ2lkJywgJHBrKTsKCQlyZXR1cm4gc2VsZjo6ZG9TZWxlY3RPbmUoJGMpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBmb3JjZVVwZGF0ZSgpCgl7CgkJJHRoaXMtPmlzX21vZGlmaWVkID0gdHJ1ZTsKCQkkdGhpcy0+c2F2ZSgpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzYXZlKCkgewoJCWlmIChlbXB0eSgkdGhpcy0+aWQpKSB7CgkJCXJldHVybiAkdGhpcy0+aW5zZXJ0KCk7CgkJfSBlbHNlIHsKCQkJcmV0dXJuICR0aGlzLT51cGRhdGUoKTsKCQl9Cgl9CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIGluc2VydCgpIHsKCQkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwoJCSR0aGlzLT5zZXRJZCgkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzX3NlcScpKTsKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcwoJCQlTRVQgaWQgPSA/LAoJCQkJbW9kdWxlX25hbWUgPSA/LAoJCQkJbW9kdWxlX2ZyaWVuZGx5bmFtZSA9ID8sCgkJCQltb2R1bGVfdmVyc2lvbiA9IDEsCgkJCQl0aXRsZV9sYWJlbCA9ID8sCgkJCQljcmVhdGVkX2J5ID0gPywKCQkJCWNyZWF0ZWRfYXQgPSBOT1coKSwKCQkJCXVwZGF0ZWRfYnkgPSA/LAoJCQkJdXBkYXRlZF9hdCA9IE5PVygpLAoJCQkJZXh0cmFfZmllbGRzID0gPywKCQkJCXN0cnVjdHVyZSA9ID8sCgkJCQlmaWx0ZXJzID0gPywKCQkJCXBhcmVudF9tb2R1bGUgPSA/LAoJCQkJc2hvd19tb2R1bGUgPSA/LAoJCQkJaXNfdXNlcl9tb2R1bGUgPSA/LAoJCQkJaXNfcHJvdGVjdGVkID0gPywKCQkJCWZpbGVzX3BhdGggPSA/LAoJCQkJbW9kdWxlX2xvZ2ljID0gPywKCQkJCXRlbXBsYXRlc19kYXRhID0gPywKCQkJCWFkbWluX3NlY3Rpb24gPSA/CgkJCQknOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KAoJCQkkdGhpcy0+Z2V0SWQoKSwKCQkJJHRoaXMtPmdldE1vZHVsZU5hbWUoKSwKCQkJJHRoaXMtPmdldE1vZHVsZUZyaWVuZGx5bmFtZSgpLAoJCQkkdGhpcy0+Z2V0VGl0bGVMYWJlbCgpLAoJCQlnZXRfdXNlcmlkKCksCgkJCWdldF91c2VyaWQoKSwKCQkJc2VyaWFsaXplKCR0aGlzLT5nZXRTdHJ1Y3R1cmUoKS0+Z2V0T2xkU3RydWN0dXJlKCkpLAoJCQlzZXJpYWxpemUoJHRoaXMtPmdldFN0cnVjdHVyZSgpLT5nZXRTdHJ1Y3R1cmUoKSksCgkJCXNlcmlhbGl6ZSgkdGhpcy0+Z2V0RmlsdGVycygpKSwKCQkJJHRoaXMtPmdldFBhcmVudE1vZHVsZSgpLAoJCQkkdGhpcy0+Z2V0U2hvd01vZHVsZSgpLAoJCQkkdGhpcy0+Z2V0SXNVc2VyTW9kdWxlKCksCgkJCSR0aGlzLT5nZXRJc1Byb3RlY3RlZCgpLAoJCQkkdGhpcy0+Z2V0RmlsZXNQYXRoKCksCgkJCSR0aGlzLT5nZXRNb2R1bGVMb2dpYygpLAoJCQkkdGhpcy0+Z2V0VGVtcGxhdGVzRGF0YSgpLAoJCQkkdGhpcy0+Z2V0QWRtaW5TZWN0aW9uKCkKCQkpKTsKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgTEFTVF9JTlNFUlRfSUQoKSBBUyBpZCcpOwoJCSRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOwoJCSR0aGlzLT5zZXRJZCgkcm93WydpZCddKTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gdXBkYXRlKCkgewoJCSRkYiA9IGNtc191dGlsczo6Z2V0X2RiKCk7CgkJJHRoaXMtPnNldE1vZHVsZVZlcnNpb24oJHRoaXMtPmdldE1vZHVsZVZlcnNpb24oKSArIDEpOwoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcwoJCQlTRVQgbW9kdWxlX25hbWUgPSA/LAoJCQkJbW9kdWxlX2ZyaWVuZGx5bmFtZSA9ID8sCgkJCQltb2R1bGVfdmVyc2lvbiA9ID8sCgkJCQl0aXRsZV9sYWJlbCA9ID8sCgkJCQl1cGRhdGVkX2J5ID0gPywKCQkJCXVwZGF0ZWRfYXQgPSBOT1coKSwKCQkJCWV4dHJhX2ZpZWxkcyA9ID8sCgkJCQlzdHJ1Y3R1cmUgPSA/LAoJCQkJZmlsdGVycyA9ID8sCgkJCQlwYXJlbnRfbW9kdWxlID0gPywKCQkJCXNob3dfbW9kdWxlID0gPywKCQkJCWlzX3VzZXJfbW9kdWxlID0gPywKCQkJCWlzX3Byb3RlY3RlZCA9ID8sCgkJCQlmaWxlc19wYXRoID0gPywKCQkJCW1vZHVsZV9sb2dpYyA9ID8sCgkJCQl0ZW1wbGF0ZXNfZGF0YSA9ID8sCgkJCQlhZG1pbl9zZWN0aW9uID0gPwoJCQlXSEVSRSBpZCA9ID8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KAoJCQkkdGhpcy0+Z2V0TW9kdWxlTmFtZSgpLAoJCQkkdGhpcy0+Z2V0TW9kdWxlRnJpZW5kbHluYW1lKCksCgkJCSR0aGlzLT5nZXRNb2R1bGVWZXJzaW9uKCksCgkJCSR0aGlzLT5nZXRUaXRsZUxhYmVsKCksCgkJCWdldF91c2VyaWQoKSwKCQkJc2VyaWFsaXplKCR0aGlzLT5nZXRTdHJ1Y3R1cmUoKS0+Z2V0T2xkU3RydWN0dXJlKCkpLAoJCQlzZXJpYWxpemUoJHRoaXMtPmdldFN0cnVjdHVyZSgpLT5nZXRTdHJ1Y3R1cmUoKSksCgkJCXNlcmlhbGl6ZSgkdGhpcy0+Z2V0RmlsdGVycygpKSwKCQkJJHRoaXMtPmdldFBhcmVudE1vZHVsZSgpLAoJCQkkdGhpcy0+Z2V0U2hvd01vZHVsZSgpLAoJCQkkdGhpcy0+Z2V0SXNVc2VyTW9kdWxlKCksCgkJCSR0aGlzLT5nZXRJc1Byb3RlY3RlZCgpLAoJCQkkdGhpcy0+Z2V0RmlsZXNQYXRoKCksCgkJCSR0aGlzLT5nZXRNb2R1bGVMb2dpYygpLAoJCQkkdGhpcy0+Z2V0VGVtcGxhdGVzRGF0YSgpLAoJCQkkdGhpcy0+Z2V0QWRtaW5TZWN0aW9uKCksCgkJCSR0aGlzLT5nZXRJZCgpCgkJKSk7CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgpIHsKCQlpZiAoJHRoaXMtPmdldElkKCkpIHsKCQkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXMgV0hFUkUgaWQgPSA/JzsKCQkJJHRoaXMtPnF1ZXJ5KCRxdWVyeSwgYXJyYXkoJHRoaXMtPmdldElkKCkpKTsKCQkJCgkJCS8vIEVyYXNlIGFjdGlvbnMKCQkJJGFjdGlvbnMgPSBNQ0ZNb2R1bGVBY3Rpb246OmRvU2VsZWN0KGFycmF5KCd3aGVyZScgPT4gYXJyYXkoJ21vZHVsZV9pZCcgPT4gJHRoaXMtPmdldElkKCkpKSk7CgkJCWZvcmVhY2goJGFjdGlvbnMgYXMgJGFjdGlvbikKCQkJewoJCQkJJGFjdGlvbi0+ZGVsZXRlKCk7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHB1Ymxpc2hGaWxlKCRkZXN0aW5hdGlvbiwgJHNvdXJjZSA9IG51bGwsICRleHRyYV9hc3NpZ25zID0gYXJyYXkoKSkgewoJCWlmIChpc19udWxsKCRzb3VyY2UpKSB7CgkJCSRzb3VyY2UgPSAkZGVzdGluYXRpb24gLiAnLnRwbCc7CgkJfQoJCSR0cGwgPSBuZXcgTUNGVGVtcGxhdGUoJHRoaXMtPmdldE1vZHVsZU5hbWUoKSwgJHNvdXJjZSwgJGRlc3RpbmF0aW9uKTsKCQkkdHBsLT5hc3NpZ24oJ21vZHVsZScsICR0aGlzKTsKCQkkdHBsLT5hc3NpZ24oJ3RhYmxlX25hbWUnLCBzdHJ0b2xvd2VyKCR0aGlzLT5nZXRNb2R1bGVOYW1lKCkpKTsKCQkKCQlmb3JlYWNoKCRleHRyYV9hc3NpZ25zIGFzICRrZXkgPT4gJHZhbHVlKQoJCXsKCQkJJHRwbC0+YXNzaWduKCRrZXksJHZhbHVlKTsKCQl9CgkJCQkKCQlpZiAoJHRoaXMtPmdldFBhcmVudE1vZHVsZSgpKQoJCXsKCQkJJHRwbC0+YXNzaWduKCdoYXNfYWRtaW4nLCdmYWxzZScpOwoJCX0KCQllbHNlaWYgKCFpc19udWxsKCR0aGlzLT5nZXRTaG93TW9kdWxlKCkpICYmICR0aGlzLT5nZXRTaG93TW9kdWxlKCkgPT0gMCkKCQl7CgkJCSR0cGwtPmFzc2lnbignaGFzX2FkbWluJywnZmFsc2UnKTsKCQl9CgkJZWxzZQoJCXsKCQkJJHRwbC0+YXNzaWduKCdoYXNfYWRtaW4nLCd0cnVlJyk7CgkJfQoJCQoJCSR0cGwtPmFzc2lnbignYWRtaW5fc2VjdGlvbicsICgkdGhpcy0+Z2V0QWRtaW5TZWN0aW9uKCkgIT0gJycpPyR0aGlzLT5nZXRBZG1pblNlY3Rpb24oKTonY29udGVudCcpOwoJCSR0cGwtPmFzc2lnbigncGFyZW50X21vZHVsZScsICR0aGlzLT5nZXRQYXJlbnRNb2R1bGUoKSA/IE1DRk1vZHVsZTo6cmV0cmlldmVCeVBrKCR0aGlzLT5nZXRQYXJlbnRNb2R1bGUoKSkgOiBmYWxzZSk7CgkJJHRwbC0+YXNzaWduKCdjaGlsZF9tb2R1bGVzJywgJHRoaXMtPmdldENoaWxkTW9kdWxlcygpKTsKCQkkdHBsLT5hc3NpZ24oJ2lzX3Byb3RlY3RlZCcsICR0aGlzLT5nZXRJc1Byb3RlY3RlZCgpKTsKCQkkdHBsLT5hc3NpZ24oJ2ZpbGVzX3BhdGgnLCAkdGhpcy0+Z2V0RmlsZXNQYXRoKCkpOwoJCSR0cGwtPmFzc2lnbignbWNmYWN0b3J5dmVyc2lvbicsIGNtc191dGlsczo6Z2V0X21vZHVsZSgnTUNGYWN0b3J5JyktPmdldFZlcnNpb24oKSk7CgkJJHRwbC0+YXNzaWduKCd0aXRsZV9sYWJlbCcsICR0aGlzLT5nZXRUaXRsZUxhYmVsKCkpOwoJCSR0cGwtPmFzc2lnbignc3RydWN0dXJlJywgJHRoaXMtPmdldFN0cnVjdHVyZSgpKTsKCQkkZXh0cmFfZmllbGRzID0gJHRoaXMtPmdldE9sZEV4dHJhRmllbGRzKCk7CgkJJGZpZWxkVHlwZXMgPSAkdGhpcy0+Z2V0RmllbGRUeXBlcygpOwoJCQoJCSR0cGwtPmFzc2lnbignZmlyc3RfdGFiX2ZpZWxkc2V0JywgJHRoaXMtPmdldFN0cnVjdHVyZSgpLT5nZXRGaXJzdFRhYkZpZWxkc2V0KCkpOwoJCQoJCS8vIFRPRE8gOiBSRUZBQ1RPUklTRSBUSEFUIEZPUiBTVFJVQ1RVUkUJCQoJCWZvcmVhY2ggKCRleHRyYV9maWVsZHMgYXMgJiRmaWVsZCkgewoJCQkkd29yZHMgPSBleHBsb2RlKCdfJywgJGZpZWxkWyduYW1lJ10pOwoJCQlmb3JlYWNoICgkd29yZHMgYXMgJiR3b3JkKSB7CgkJCQkkd29yZCA9IHVjZmlyc3QoJHdvcmQpOwoJCQl9CgkJCXVuc2V0KCR3b3JkKTsKCQkJJGZpZWxkWydwbGFjZSddID0gJHRoaXMtPmdldFN0cnVjdHVyZSgpLT5maW5kRmllbGQoJGZpZWxkWyduYW1lJ10pOwoJCQkkZmllbGRbJ2NhbWVsY2FzZSddID0gaW1wbG9kZSgnJywgJHdvcmRzKTsKCQkJJGZpZWxkWydmcmllbmRseW5hbWUnXSA9IGltcGxvZGUoJyAnLCAkd29yZHMpOwoJCQkkZmllbGRbJ2xhYmVsJ10gPSBhZGRzbGFzaGVzKCgkZmllbGRbJ2xhYmVsJ10pKTsKCQkJJGZpZWxkWydjb2x1bW5fdHlwZSddID0gJGZpZWxkVHlwZXNbJGZpZWxkWyd0eXBlJ11dWydjb2x1bW5fdHlwZSddOwoJCQkkZmllbGRbJ2Zvcm1fdHlwZSddID0gJGZpZWxkVHlwZXNbJGZpZWxkWyd0eXBlJ11dWydmb3JtX3R5cGUnXTsKCQkKCQkJaWYoaXNzZXQoJGZpZWxkWydvcHRpb25zJ10pKQoJCQl7CgkJCQlpZigoc3RycG9zKCRmaWVsZFsnb3B0aW9ucyddLCc7JykgIT09IGZhbHNlKSB8fCAoc3RycG9zKCRmaWVsZFsnb3B0aW9ucyddLCc6JykgIT09IGZhbHNlKSkKCQkJCXsKCQkJCQkkb3B0aW9ucyA9IGV4cGxvZGUoJzsnLCRmaWVsZFsnb3B0aW9ucyddKTsKCQkJCQlmb3JlYWNoKCRvcHRpb25zIGFzICRvcHRpb24pCgkJCQkJewoJCQkJCQkkdmFsID0gZXhwbG9kZSgnOicsJG9wdGlvbik7CgkJCQkJCWlmIChjb3VudCgkdmFsKSA+IDEpCSRmaWVsZFsnZm9wdGlvbnMnXVskdmFsWzBdXSA9ICR2YWxbMV07CgkJCQkJCXVuc2V0KCR2YWwpOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkvLyBNZWFucyB3ZSBhcmUgb2xkIHNjaG9vbCA/IAoJCQkJCSRmaWVsZFsnZm9wdGlvbnMnXVsndmFsdWVzJ10gPSAkZmllbGRbJ29wdGlvbnMnXTsKCQkJCX0KCQkJfQoJCQkKCQkJaWYgKCRmaWVsZFsndHlwZSddID09ICdzZWxlY3QnKSB7CQkJCQoJCQkJJHZhbHVlcyA9IGV4cGxvZGUoJywnLCAkZmllbGRbJ2ZvcHRpb25zJ11bJ3ZhbHVlcyddKTsKCQkJCWZvcmVhY2ggKCR2YWx1ZXMgYXMgJiR2YWx1ZSkgewoJCQkJCWlmKHN0cnBvcygkdmFsdWUsJz0+JykgPT09IGZhbHNlKQoJCQkJCXsJCQkJCQoJCQkJCQkkdmFsdWUgPSAiJyIudHJpbSgkdmFsdWUpLiInID0+ICciLnRyaW0oJHZhbHVlKS4iJyI7CQoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQlsaXN0KCRrZXksJG52YWx1ZSkgPSBleHBsb2RlKCc9PicsJHZhbHVlKTsKCQkJCQkJJHZhbHVlID0gIiciLnRyaW0oJGtleSkuIicgPT4gJyIudHJpbSgkbnZhbHVlKS4iJyI7CgkJCQkJfSAKCQkJCX0KCQkJCXVuc2V0KCR2YWx1ZSk7CgkJCQkkZmllbGRbJ3NlbGVjdF9vcHRpb25zJ10gPSAnYXJyYXkoJyAuIGltcGxvZGUoJywgJywgJHZhbHVlcykgLiAnKSc7CgkJCX0KCQkJaWYgKCRmaWVsZFsndHlwZSddID09ICdjb3VudHJ5JykgewoJCQkJaWYgKCRmaWVsZFsnZm9wdGlvbnMnXVsnb3B0aW9ucyddKSB7CgkJCQkJJHdoaXRlbGlzdCA9IGV4cGxvZGUoJywnLCAkZmllbGRbJ2ZvcHRpb25zJ11bJ29wdGlvbnMnXSk7CgkJCQl9CgkJCQllbHNlaWYgKCRmaWVsZFsnZm9wdGlvbnMnXVsndmFsdWVzJ10pIHsKCQkJCQkkd2hpdGVsaXN0ID0gZXhwbG9kZSgnLCcsICRmaWVsZFsnZm9wdGlvbnMnXVsndmFsdWVzJ10pOwoJCQkJfSBlbHNlIHsKCQkJCQkkd2hpdGVsaXN0ID0gYXJyYXlfa2V5cyhNQ0ZhY3Rvcnk6OiRjb3VudHJpZXMpOwoJCQkJfQoJCQkJJHZhbHVlcyA9IGFycmF5KCk7CgkJCQkkY291bnRyaWVzID0gTUNGYWN0b3J5OjokY291bnRyaWVzOwoJCQkJYXNvcnQoJGNvdW50cmllcyk7CgkJCQlmb3JlYWNoICgkY291bnRyaWVzIGFzICRjb2RlID0+ICRjb3VudHJ5KSB7CgkJCQkJJGNvdW50cnkgPSBhZGRzbGFzaGVzKCRjb3VudHJ5KTsKCQkJCQlpZiAoaW5fYXJyYXkoJGNvZGUsICR3aGl0ZWxpc3QpKSB7CgkJCQkJCSR2YWx1ZXNbXSA9ICInIi50cmltKCRjb2RlKS4iJyA9PiAnIi50cmltKCRjb3VudHJ5KS4iJyI7CgkJCQkJfQoJCQkJfQoJCQkJJGZpZWxkWydzZWxlY3Rfb3B0aW9ucyddID0gJ2FycmF5KCcgLiBpbXBsb2RlKCcsICcsICR2YWx1ZXMpIC4gJyknOwoJCQl9CgkJCWlmICgkZmllbGRbJ3R5cGUnXSA9PSAnZGF0ZScpIHsKCQkJCWlmKChzdHJwb3MoJGZpZWxkWydvcHRpb25zJ10sJzsnKSAhPT0gZmFsc2UpKQoJCQkJewkJCQkJCgkJCQkJJG9wdGlvbnMgPSBleHBsb2RlKCc7JywkZmllbGRbJ29wdGlvbnMnXSk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CQkJCQkKCQkJCQkkb3B0aW9ucyA9IGV4cGxvZGUoJ3wnLCRmaWVsZFsnb3B0aW9ucyddKTsKCQkJCX0KCQkJCSR2YWwgPSBhcnJheSgpOwoJCQkJZm9yZWFjaCAoJG9wdGlvbnMgYXMgJG9wdGlvbikKCQkJCXsKCQkJCQkkdiA9IGV4cGxvZGUoJzonLCRvcHRpb24pOwoJCQkJCWlmIChjb3VudCgkdikgPT0gMikJJHZhbFskdlswXV0gPSAkdlsxXTsKCQkJCX0KCQkJCSRmaWVsZFsnZGF0ZV9vcHRpb25zJ10gPSAkdmFsOwoJCQl9CgkJCWlmICgkZmllbGRbJ3R5cGUnXSA9PSAnaW1hZ2UnKSB7CgkJCQlpZihpc3NldCgkZmllbGRbJ2ZvcHRpb25zJ11bJ3NpemUnXSkpCgkJCQl7CQkJCQkKCQkJCQlsaXN0KCRmaWVsZFsnaW1hZ2Vfd2lkdGgnXSwgJGZpZWxkWydpbWFnZV9oZWlnaHQnXSkgPSBleHBsb2RlKCd4JywgJGZpZWxkWydmb3B0aW9ucyddWydzaXplJ10pOwoJCQkJfQoJCQkJZWxzZQoJCQkJewkJCQkJCgkJCQkJbGlzdCgkZmllbGRbJ2ltYWdlX3dpZHRoJ10sICRmaWVsZFsnaW1hZ2VfaGVpZ2h0J10pID0gZXhwbG9kZSgneCcsICRmaWVsZFsnb3B0aW9ucyddKTsKCQkJCX0KCQkJfQoJCQlpZiAoJGZpZWxkWyd0eXBlJ10gPT0gJ21vZHVsZScpCgkJCXsKCQkJCS8vJGZpZWxkWydtb2R1bGVfb3B0aW9ucyddID0gJGZpZWxkWydmb3B0aW9ucyddOwoJCQkJaWYgKCFpc3NldCgkZmllbGRbJ2ZvcHRpb25zJ11bJ21vZHVsZV9uYW1lJ10pKSRmaWVsZFsnZm9wdGlvbnMnXVsnbW9kdWxlX25hbWUnXSA9ICRmaWVsZFsnZm9wdGlvbnMnXVsndmFsdWVzJ107CgkJCQkvLyRmaWVsZFsnZm9wdGlvbnMnXVsnbW9kdWxlX25hbWUnXSA9IGlzc2V0KCRmaWVsZFsnZm9wdGlvbnMnXVsnbW9kdWxlX25hbWUnXSk/JGZpZWxkWydmb3B0aW9ucyddWydtb2R1bGVfbmFtZSddOiRmaWVsZFsnZm9wdGlvbnMnXVsndmFsdWVzJ107CgkJCX0KCQl9CgkJdW5zZXQoJGZpZWxkKTsKCQkkdHBsLT5hc3NpZ24oJ2V4dHJhX2ZpZWxkcycsICRleHRyYV9maWVsZHMpOwoJCWlmICgkdGhpcy0+Z2V0SXNVc2VyTW9kdWxlKCkpCgkJewoJCQkkdHBsLT5hc3NpZ24oJ2lzX3VzZXJfbW9kdWxlJywgMSk7CgkJfQoJCSR0cGwtPmFzc2lnbignbWNmYWN0b3J5X3ZlcnNpb24nLCBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01DRmFjdG9yeScpLT5HZXRWZXJzaW9uKCkpOwoJCSRmaWx0ZXJzID0gJHRoaXMtPmdldEZpbHRlcnMoKTsKCQkkZmlsdGVyVHlwZXMgPSAkdGhpcy0+Z2V0RmlsdGVyVHlwZXMoKTsKCQlmb3JlYWNoICgkZmlsdGVycyBhcyAmJGZpbHRlcikgewoJCQkkZmlsdGVyWydjcml0ZXJpYSddID0gJGZpbHRlclR5cGVzWyRmaWx0ZXJbJ3R5cGUnXV1bJ2NyaXRlcmlhJ107CgkJfQoJCXVuc2V0KCRmaWx0ZXIpOwoJCSR0cGwtPmFzc2lnbignZmlsdGVycycsICRmaWx0ZXJzKTsKCQkKCQlpZigkdHBsLT5zYXZlKCkgPT09IGZhbHNlKQoJCXsKCQkJJHRoaXMtPnB1Ymxpc2hpbmdfc3RhdHVzID0gZmFsc2U7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb3B5RmlsZSgkc291cmNlKQoJewoJCSRjb25maWcgPSBjbXNfdXRpbHM6OmdldF9jb25maWcoKTsKCQkkc291cmNlX2RpciA9ICRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9tb2R1bGVzL01DRmFjdG9yeS9zbWFydHkvdGVtcGxhdGVzJzsKCQkkZGVzdGluYXRpb25fZGlyID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10gLiAnL21vZHVsZXMvJyAuICR0aGlzLT5nZXRNb2R1bGVOYW1lKCk7CgkJaWYoQGNvcHkoJHNvdXJjZV9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHNvdXJjZSwgJGRlc3RpbmF0aW9uX2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkc291cmNlKSA9PT0gZmFsc2UpCgkJewkJCQoJCQkkdGhpcy0+cHVibGlzaGluZ19zdGF0dXMgPSBmYWxzZTsKCQl9CgkJLy8kdGhpcy0+Y21zQ29uZmlnWydyb290X3BhdGgnXSAuICcvbW9kdWxlcy8nIC4gJHRoaXMtPm1vZHVsZSAuICcvJyAuICR0aGlzLT5kZXN0aW5hdGlvbiwgJGNvbnRlbnRzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBwdWJsaXNoKCkgewoJCSRjb25maWcgPSBjbXNfdXRpbHM6OmdldF9jb25maWcoKTsKCQlAbWtkaXIoJGNvbmZpZ1sncm9vdF9wYXRoJ10gLiAnL21vZHVsZXMvJyAuICR0aGlzLT5nZXRNb2R1bGVOYW1lKCkpOwoJCUBta2RpcigkY29uZmlnWydyb290X3BhdGgnXSAuICcvbW9kdWxlcy8nIC4gJHRoaXMtPmdldE1vZHVsZU5hbWUoKSAuICcvY2xhc3NlcycpOwoJCUBta2RpcigkY29uZmlnWydyb290X3BhdGgnXSAuICcvbW9kdWxlcy8nIC4gJHRoaXMtPmdldE1vZHVsZU5hbWUoKSAuICcvbGFuZycpOwoJCUBta2RpcigkY29uZmlnWydyb290X3BhdGgnXSAuICcvbW9kdWxlcy8nIC4gJHRoaXMtPmdldE1vZHVsZU5hbWUoKSAuICcvdGVtcGxhdGVzJyk7CgkJQG1rZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9tb2R1bGVzLycgLiAkdGhpcy0+Z2V0TW9kdWxlTmFtZSgpIC4gJy9pbWFnZXMnKTsKCQlAbWtkaXIoJGNvbmZpZ1sncm9vdF9wYXRoJ10gLiAnL21vZHVsZXMvJyAuICR0aGlzLT5nZXRNb2R1bGVOYW1lKCkgLiAnL3JzcycpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnY2xhc3Nlcy8nLiAkdGhpcy0+Z2V0TW9kdWxlTmFtZSgpIC4gJ09iamVjdEJhc2UuY2xhc3MucGhwJywgJ2NsYXNzZXMvTUNGTW9kdWxlT2JqZWN0QmFzZS5jbGFzcy5waHAudHBsJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdjbGFzc2VzLycuICR0aGlzLT5nZXRNb2R1bGVOYW1lKCkgLiAnT2JqZWN0LmNsYXNzLnBocCcsICdjbGFzc2VzL01DRk1vZHVsZU9iamVjdC5jbGFzcy5waHAudHBsJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdjbGFzc2VzLycuICR0aGlzLT5nZXRNb2R1bGVOYW1lKCkgLiAnVmlld3MuY2xhc3MucGhwJywgJ2NsYXNzZXMvTUNGTW9kdWxlVmlld3MuY2xhc3MucGhwLnRwbCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnbGFuZy9lbl9VUy5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9kZWZhdWx0YWRtaW4uaXRlbXMudHBsJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCd0ZW1wbGF0ZXMvZGVmYXVsdGFkbWluLnRlbXBsYXRlcy50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9hZG1pbi50ZW1wbGF0ZXMudHBsJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCd0ZW1wbGF0ZXMvYWRtaW4udGVtcGxhdGVfZWRpdC50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9kZWZhdWx0YWRtaW4ub3B0aW9ucy50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9lZGl0LnRwbCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL2VkaXR0ZW1wbGF0ZS50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9lcnJvci50cGwnKTsKCQkKLy8JCSR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL3RlbXBsYXRlLmRldGFpbHMudHBsJyk7Ci8vCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy90ZW1wbGF0ZS5saXN0LnRwbCcpOwoJCS8vICR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL3RlbXBsYXRlLnBhZ2luYXRlZC50cGwnKTsKCQkvLyAkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy90ZW1wbGF0ZS5zZWFyY2gudHBsJyk7CgkJLy8gJHRoaXMtPnB1Ymxpc2hGaWxlKCd0ZW1wbGF0ZXMvdGVtcGxhdGUuY2FsZW5kYXIudHBsJyk7CgkJCgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCd0ZW1wbGF0ZXMvZnJvbnRlbmQuZGVmYXVsdC50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9mcm9udGVuZC5kZXRhaWwudHBsJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCd0ZW1wbGF0ZXMvZnJvbnRlbmQuc2VhcmNoLnRwbCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL2Zyb250ZW5kLmNhbGVuZGFyLnRwbCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL2Zyb250ZW5kLnBhZ2luYXRlZC50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9mcm9udGVuZC50YWdjbG91ZC50cGwnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3RlbXBsYXRlcy9mcm9udGVuZC5yc3MudHBsJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCd0ZW1wbGF0ZXMvZnJvbnRlbmQuZGlyZWN0X2VtYWlsLnRwbCcpOwoJCQoJCSR0aGlzLT5wdWJsaXNoRmlsZSgncnNzL3Jzcy5jc3MnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ3Jzcy9zdHlsZS54c2wnKTsKCQkKCQlpZiAoJHRoaXMtPmdldElzVXNlck1vZHVsZSgpKQoJCXsKCQkJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLnVzZXJfZm9ybS5waHAnKTsKCQkJCSR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL2Zyb250ZW5kLnVzZXJfZm9ybS50cGwnKTsKCQkJCSR0aGlzLT5wdWJsaXNoRmlsZSgndGVtcGxhdGVzL2Zyb250ZW5kLnVzZXJfZm9ybV9zdWNjZXNzLnRwbCcpOwoJCX0KCQkKCQkkdGhpcy0+Y29weUZpbGUoJ2ltYWdlcy9pY29uLmdpZicpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmNhbGVuZGFyLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmRlZmF1bHQucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uZGVmYXVsdGFkbWluLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmRlbGV0ZS5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi5tb3ZldXAucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24ubW92ZWRvd24ucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uZGV0YWlsLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmV4cG9ydC5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi5leHBvcnRfZGF0LnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmV4cG9ydF9kYi5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi5pbXBvcnRfZGIucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uZWRpdC5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi50ZW1wbGF0ZV9lZGl0LnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLnRlbXBsYXRlX2RlbGV0ZS5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi5lZGl0dGVtcGxhdGUucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uZGVsZXRldGVtcGxhdGUucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uZ2V0dXJsLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLnB1Ymxpc2gucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24ucnNzLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLnNlYXJjaC5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi50ZW1wbGF0ZS5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi5jb3VudC5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi51cmxfZm9yLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmxpbmtfdG8ucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uYXNzaWdudGl0bGVzLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnaW5kZXguaHRtbCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnZnVuY3Rpb24uZGVmYXVsdGFkbWluLml0ZW1zLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnZnVuY3Rpb24uZGVmYXVsdGFkbWluLnRlbXBsYXRlcy5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2Z1bmN0aW9uLmRlZmF1bHRhZG1pbi5vcHRpb25zLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnZnVuY3Rpb24uZGVmYXVsdGFkbWluLmhlbHAucGhwJyk7CgkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24udXBkYXRlT2JqZWN0cy5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi50YWdjbG91ZC5waHAnKTsKCQkkdGhpcy0+cHVibGlzaEZpbGUoJ2FjdGlvbi5pY2FsLnBocCcpOwoJCSR0aGlzLT5wdWJsaXNoRmlsZSgnYWN0aW9uLmRvd25sb2FkLnBocCcpOwoJCQoJCS8vIEFjdGlvbnMKCQkkYWN0aW9ucyA9IE1DRk1vZHVsZUFjdGlvbjo6ZG9TZWxlY3QoYXJyYXkoJ3doZXJlJyA9PiBhcnJheSgnbW9kdWxlX2lkJyA9PiAkdGhpcy0+aWQpKSk7CgkJZm9yZWFjaCgkYWN0aW9ucyBhcyAkYWN0aW9uKQoJCXsKCQkJJHRoaXMtPnB1Ymxpc2hGaWxlKCdhY3Rpb24uJy4kYWN0aW9uLT5uYW1lLicucGhwJywgJ2FjdGlvbi5tb2R1bGVfYWN0aW9uLnBocC50cGwnLCBhcnJheSgnYWN0aW9uX29iaicgPT4gJGFjdGlvbikpOwoJCX0KCQkKCQkKCQkkdGhpcy0+cHVibGlzaEZpbGUoJHRoaXMtPmdldE1vZHVsZU5hbWUoKSAuICcubW9kdWxlLnBocCcsICdNQ0ZNb2R1bGUubW9kdWxlLnBocC50cGwnKTsKCQlpZiAoY21zX3V0aWxzOjpnZXRfbW9kdWxlKCR0aGlzLT5nZXRNb2R1bGVOYW1lKCkpKSB7CgkJCSRkYiA9IGNtc191dGlsczo6Z2V0X2RiKCk7CgkJCWZvcmVhY2ggKCR0aGlzLT5nZXREZWxldGVGaWVsZHMoKSBhcyAkZmllbGQpIHsKCQkJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIHN0cnRvbG93ZXIoJHRoaXMtPmdldE1vZHVsZU5hbWUoKSksICRmaWVsZCk7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCX0KCQkJJGZpZWxkVHlwZXMgPSAkdGhpcy0+Z2V0RmllbGRUeXBlcygpOwoJCQkKCQkJLy8gdmFyX2R1bXAoJHRoaXMtPmdldE9sZEV4dHJhRmllbGRzKCkpOwoJCQkKCQkJZm9yZWFjaCAoJHRoaXMtPmdldE9sZEV4dHJhRmllbGRzKCkgYXMgJGZpZWxkKSB7CgkJCQkKCQkJCWlmIChpc3NldCgkZmllbGRbJ25ldyddKSBvciAoJGRiLT5leGVjdXRlKCdTRUxFQ1QgQ09VTlQoJy4kZmllbGRbJ25hbWUnXS4nKSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV8nLnN0cnRvbG93ZXIoJHRoaXMtPmdldE1vZHVsZU5hbWUoKSkpID09PSBmYWxzZSkpIHsKCQkJCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiBzdHJ0b2xvd2VyKCR0aGlzLT5nZXRNb2R1bGVOYW1lKCkpLCAkZmllbGRbJ25hbWUnXSAuICcgJyAuICRmaWVsZFR5cGVzWyRmaWVsZFsndHlwZSddXVsnY29sdW1uX3R5cGUnXSk7CgkJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkJfQoJCQkJCgkJCQkvLyBGaXggdXBwZXJjYXNlIG5hbWVzCgkJCQlpZihpc3NldCgkZmllbGRbJ3VwcGVyY2FzZV9uYW1lJ10pKQoJCQkJewoJCQkJCWlmKCRkYi0+ZXhlY3V0ZSgnU0VMRUNUIENPVU5UKCcuJGZpZWxkWyd1cHBlcmNhc2VfbmFtZSddLicpIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlXycuc3RydG9sb3dlcigkdGhpcy0+Z2V0TW9kdWxlTmFtZSgpKSkgIT09IGZhbHNlKQoJCQkJCXsJCQkJCQkKCQkJCQkJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkJCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5SZW5hbWVDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gc3RydG9sb3dlcigkdGhpcy0+Z2V0TW9kdWxlTmFtZSgpKSwgJGZpZWxkWyd1cHBlcmNhc2VfbmFtZSddLCAkZmllbGRbJ25hbWUnXSk7CQkJCQkJCQoJCQkJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQl9CgkJfQoJCWlmICgkdGhpcy0+cHVibGlzaGluZ19zdGF0dXMgPT09IGZhbHNlKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0JCgkJcmV0dXJuIHRydWU7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFModuleAction.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBNQ0ZNb2R1bGVBY3Rpb24gQ2xhc3MKICogCiAqIFRoaXMgY2xhc3MgaGFuZGxlIGFsbCB0aGUgbWFuaXB1bGF0aW9ucyBvbiB0aGUgTSZDIEZhY3RvcnkgTW9kdWxlIGFjdGlvbiBvYmplY3QKICogCiAqLwoKY2xhc3MgTUNGTW9kdWxlQWN0aW9uIC8vZXh0ZW5kcwlDbXNPYmplY3QgCnsKCQoJcHJvdGVjdGVkICRpZDsJCglwcm90ZWN0ZWQgJGlzX21vZGlmaWVkOwkKCXByb3RlY3RlZCAkdmFycyA9IGFycmF5KCk7CgkKCXByb3RlY3RlZCBzdGF0aWMgJGZpZWxkcyA9IGFycmF5KAoJJ25hbWUnLAoJJ21vZHVsZV9pZCcsCgknY29kZScsCQoJJ2lzX3B1YmxpYycsCgknaGF2ZV9wZXJtaXNzaW9uJwoJKTsKCQoJCgkvLyBUT0RPOiBUaHJvdyBhIHdhcm5pbmcgZXJyb3Igd2hlbiB1c2VyIHRyeSB0byB1c2UgdGhhdAoJcHVibGljIHN0YXRpYyAkZm9yYmlkZW5fbmFtZXMgPSBhcnJheSgKCQknYXNzaWdudGl0bGVzJywnY291bnQnLCdkZWZhdWx0JywnZGVmYXVsdGFkbWluJywnZGVsZXRlJywnZGVsZXRldGVtcGxhdGUnLCdkZXRhaWwnLCdlZGl0JywnZWRpdHRlbXBsYXRlJywKCQknZXhwb3J0JywnZ2V0dXJsJywnaWNhbCcsJ2NhbGVuZGFyJywnbGlua190bycsJ21vdmVkb3duJywnbW92ZXVwJywncHVibGlzaCcsJ3JzcycsJ3NlYXJjaCcsJ3RhZ2Nsb3VkJywKCQkndGVtcGxhdGUnLCd0ZW1wbGF0ZV9kZWxldGUnLCd0ZW1wbGF0ZV9lZGl0JywndXBkYXRlT2JqZWN0cycsJ3VybF9mb3InLCd1c2VyX2Zvcm0nLCd1c2VyJywnZmlsZScsJ2ltZycKCSk7CgkKCWNvbnN0IERCX05BTUUgPSAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVfYWN0aW9ucyc7Cgljb25zdCBEQl9JVEVNID0gJ21vZHVsZV9hY3Rpb24nOwoJCQoJcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKQoJewoJCXRyeQoJCXsKCQkJcmV0dXJuIChzdHJpbmcpCSR0aGlzLT5uYW1lOwoJCX0KCQljYXRjaChFeGNlcHRpb24gJGUpCgkJewoJCQlwcmludCgkZSk7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX19zZXQoJHZhciwgJHZhbCl7CiAgICAgICR0aGlzLT52YXJzWyR2YXJdID0gJHZhbDsKCQkJJHRoaXMtPmlzX21vZGlmaWVkID0gdHJ1ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgkdmFyKXsKCQkkbWV0aG9kID0gJ2dldF8nLiR2YXI7CgkJaWYobWV0aG9kX2V4aXN0cygkdGhpcywgJG1ldGhvZCkpCgkJewoJCQlyZXR1cm4gJHRoaXMtPiRtZXRob2QoKTsKCQl9CiAgICBlbHNlaWYgKGFycmF5X2tleV9leGlzdHMoJHZhciwgJHRoaXMtPnZhcnMpKQoJCXsKICAgICAgcmV0dXJuICR0aGlzLT52YXJzWyR2YXJdOwogICAgfSAKCQllbHNlCgkJewogICAgCS8vcmV0dXJuIG51bGw7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oIlByb3BlcnR5ICR2YXIgZG9lcyBub3QgZXhpc3QiKTsKICAgIH0KICB9CgoJcHVibGljIGZ1bmN0aW9uIF9fY2xvbmUoKQoJewoJCSR0aGlzLT5pZCA9IG51bGw7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXRJZCgpCgl7CgkJcmV0dXJuICR0aGlzLT5pZDsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGNoZWNrTmFtZSgpCgl7CgkJaWYgKGluX2FycmF5KCR0aGlzLT5uYW1lLCBzZWxmOjokZm9yYmlkZW5fbmFtZXMpKSB7CgkJCQlyZXR1cm4gZmFsc2U7IC8vIE1lYW5pbmcgeW91IENBTidUIHVzZSB0aGlzIG5hbWUKCQl9CgkJCgkJJGN1cnJlbnRzID0gc2VsZjo6ZG9TZWxlY3QoYXJyYXkoJ3doZXJlJyA9PiBhcnJheSgnbmFtZScgPT4gJHRoaXMtPm5hbWUsICdtb2R1bGVfaWQnID0+ICR0aGlzLT5tb2R1bGVfaWQpKSk7CgkJaWYgKGNvdW50KCRjdXJyZW50cykgPiAxKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlaWYoY291bnQoJGN1cnJlbnRzKSA8IDEpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZQoJCXsKCQkJaWYgKCRjdXJyZW50c1swXS0+Z2V0SWQoKSA9PSAkdGhpcy0+Z2V0SWQoKSkKCQkJewoJCQkJcmV0dXJuIHRydWU7IC8vIE5vIGR1cGxpY2F0ZSwgYnV0IGl0J3MgdGhlIHNhbWUKCQkJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCXJldHVybiBmYWxzZTsgLy8gU2hvdWxkbid0IGhhcHBlbi4gSW4gY2FzZSBvZiwgcmV0dXJuIGZhbHNlICEKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGNsZWFudXBOYW1lKCkKCXsKCQkkdGhpcy0+bmFtZSA9IHByZWdfcmVwbGFjZSgnL1xXLycsICcnLCBzdHJ0b2xvd2VyKCR0aGlzLT5uYW1lKSk7CgkJaWYgKCEkdGhpcy0+Y2hlY2tOYW1lKCkpCgkJewoJCQkvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBjaGFuZ2UgdGhlIG5hbWUKCQkJJG5hbWUgPSAkdGhpcy0+bmFtZTsKCQkJJGkgPSAxOwoJCQkkdGhpcy0+bmFtZSA9ICRuYW1lLiRpOwoJCQl3aGlsZSghJHRoaXMtPmNoZWNrTmFtZSgpKQoJCQl7CgkJCQkkaSsrOwoJCQkJJHRoaXMtPm5hbWUgPSAkbmFtZS4kaTsKCQkJfQoJCX0KCQlyZXR1cm4gJHRoaXMtPm5hbWU7Cgl9CgkKCS8vIERBVEFCQVNFIFNQRUNJRklDCgkvLy0tLS0tLS0tLS0tLS0tLS0tLQoJCQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZUJ5UGsoJGlkKQogIHsKICAJcmV0dXJuIHNlbGY6OmRvU2VsZWN0T25lKGFycmF5KCd3aGVyZScgPT4gYXJyYXkoJ2lkJyA9PiAkaWQpKSk7ICAgIAogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkb1NlbGVjdE9uZSgkcGFyYW1zID0gYXJyYXkoKSkKICB7CiAgCSRpdGVtcyA9IHNlbGY6OmRvU2VsZWN0KCRwYXJhbXMpOwogIAlpZiAoJGl0ZW1zKQogIAl7CiAgCQlyZXR1cm4gJGl0ZW1zWzBdOwogIAl9CiAgCWVsc2UgCiAgCXsKICAJCXJldHVybiBudWxsOwogIAl9ICAJCiAJfQoJCQoJcHVibGljIGZ1bmN0aW9uIHBvcHVsYXRlKCRyb3cpCgl7CgkJaWYgKGlzc2V0KCRyb3dbc2VsZjo6REJfSVRFTS4nX19pZCddKSkKCQl7CgkJCSR0aGlzLT5pZCA9ICRyb3dbc2VsZjo6REJfSVRFTS4nX19pZCddOwoJCX0JCQoJCQoJCWZvcmVhY2ggKHNlbGY6OiRmaWVsZHMgYXMgJGZpZWxkKQoJCXsKCQkJaWYgKGlzc2V0KCRyb3dbc2VsZjo6REJfSVRFTS4nX18nLiRmaWVsZF0pKQoJCQl7CgkJCQkkdGhpcy0+JGZpZWxkID0gJHJvd1tzZWxmOjpEQl9JVEVNLidfXycuJGZpZWxkXTsKCQkJfQoJCX0JCgl9CgkKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VuZXJhdGVTZWxlY3RMaXN0KCkKCXsKCQkkZmllbGRzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJ2lkJywnY3JlYXRlZF9hdCcsJ3VwZGF0ZWRfYXQnKSwgc2VsZjo6JGZpZWxkcyk7CgkJJGxpc3QgPSBhcnJheSgpOwoJCWZvcmVhY2ggKCRmaWVsZHMgYXMgJGZpZWxkKQoJCXsKCQkJJGxpc3RbXSA9IHNlbGY6OkRCX0lURU0gLiAnLicuJGZpZWxkLicgYXMgJy4gc2VsZjo6Z2V0Um93TmFtZSgkZmllbGQpOwoJCX0KCQlyZXR1cm4gaW1wbG9kZSgnICwgJywkbGlzdCk7Cgl9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0Um93TmFtZSgkbmFtZSkKCXsKCQlyZXR1cm4gc2VsZjo6REJfSVRFTSAuICdfXycgLiAkbmFtZTsKCX0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZG9TZWxlY3QoJHBhcmFtcyA9IGFycmF5KCkpCiAgewogICAgLy8gJGluc3RhbmNlID0gbmV3IHNlbGYoKTsKICAgIC8vICAgICAkZGIgPSYgJGluc3RhbmNlLT5HZXREYigpOwoJCSRkYiA9IGNtc191dGlsczo6Z2V0X2RiKCk7CgkJCiAgICAkcXVlcnkgPSAnU0VMRUNUIAoJCScuc2VsZjo6REJfSVRFTS4nLiosCgkJJy5zZWxmOjpnZW5lcmF0ZVNlbGVjdExpc3QoKSAuICcKCQlGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiBzZWxmOjpEQl9OQU1FIC4gJyBBUyAnIC4gc2VsZjo6REJfSVRFTTsKCiAgICAkdmFsdWVzID0gYXJyYXkoKTsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snd2hlcmUnXSkpCiAgICB7CgogICAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCAoJHBhcmFtc1snd2hlcmUnXSBhcyAkZmllbGQgPT4gJHZhbHVlKSAKICAgICAgewogICAgICAgICRmaWVsZHNbXSA9IHNlbGY6OkRCX0lURU0uJy4nLiRmaWVsZCAuICcgPSAgPyc7CiAgICAgICAgJHZhbHVlc1tdID0gJHZhbHVlOwogICAgICB9CgogICAgICAkcXVlcnkgLj0gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCAkZmllbGRzKTsKICAgIH0gCgogICAgaWYoaXNzZXQoJHBhcmFtc1snb3JkZXJfYnknXSkpCiAgICB7CiAgICAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgJyAuIGltcGxvZGUoJywgJyAsICRwYXJhbXNbJ29yZGVyX2J5J10pOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkcXVlcnkgLj0gJyBPUkRFUiBCWSAnLnNlbGY6OkRCX0lURU0uJy5jcmVhdGVkX2F0JzsKICAgIH0KCiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkdmFsdWVzKTsKICAgICRpdGVtcyA9IGFycmF5KCk7CgogICBpZiAoJGRicmVzdWx0ICYmICRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDApCiAgICB7CiAgICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgewkKICAgICAgICAkaXRlbSA9IG5ldyBNQ0ZNb2R1bGVBY3Rpb24oKTsKICAgICAgICAkaXRlbS0+cG9wdWxhdGUoJHJvdyk7CiAgICAgICAgJGl0ZW1zW10gPSAkaXRlbTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICAkaXRlbXM7ICAgCiAgfQogIAoJCglwdWJsaWMgZnVuY3Rpb24gc2F2ZSgpIHsKCQlpZiAoJHRoaXMtPmdldElkKCkpIAoJCXsKCQkJaWYgKCR0aGlzLT5pc19tb2RpZmllZCkKCQkJewkJCQoJCQkJcmV0dXJuICR0aGlzLT51cGRhdGUoKTsJCgkJCX0KCQl9IAoJCWVsc2UKCQl7CgkJCXJldHVybiAkdGhpcy0+aW5zZXJ0KCk7CgkJfQoJCQoJCXJldHVybiBmYWxzZTsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0KCkgewoJCS8vIENsZWFudXAgbmFtZQoJCSR0aGlzLT5jbGVhbnVwTmFtZSgpOwoJCS8vCiAgICAvLyRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwoJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4gc2VsZjo6REJfTkFNRSAuICcgU0VUIGNyZWF0ZWRfYXQgPSBOT1coKSwJdXBkYXRlZF9hdCA9IE5PVygpICc7CgkJJHZhbHVlcyA9IGFycmF5KCk7CQkJCQoJCWZvcmVhY2goc2VsZjo6JGZpZWxkcyBhcyAkZmllbGQpCgkJewoJCQkkcXVlcnkgLj0gJywgJyAuICRmaWVsZCAuICcgPSA/JzsKCQkJJHZhbHVlc1tdID0gJHRoaXMtPiRmaWVsZDsKCQl9CgkJCQkJCQkJCQkJCQkJCQkKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkdmFsdWVzKTsKCQlpZiAoJHJlc3VsdCA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTsKCQkkdGhpcy0+aWQgPSAkZGItPkluc2VydF9JRCgpOwoJCS8vY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9qZWN0cycpLT5TZW5kRXZlbnQoJ0NvbnRlbnRFZGl0UG9zdCcsIGFycmF5KCkpOwoJCXJldHVybiB0cnVlOwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiB1cGRhdGUoKSB7CiAgICAvLyRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuIHNlbGY6OkRCX05BTUUgLiAnCVNFVCB1cGRhdGVkX2F0ID0gTk9XKCknOwkJCQoJCSR2YWx1ZXMgPSBhcnJheSgpOwkJCQkKCQlmb3JlYWNoKHNlbGY6OiRmaWVsZHMgYXMgJGZpZWxkKQoJCXsKCQkJJHF1ZXJ5IC49ICcsICcgLiAkZmllbGQgLiAnID0gPyc7CgkJCSR2YWx1ZXNbXSA9ICR0aGlzLT4kZmllbGQ7CgkJfQkKCQkkcXVlcnkgLj0gJyBXSEVSRSBpZCA9ID8nOwoJCSR2YWx1ZXNbXSA9ICR0aGlzLT5nZXRJZCgpOwoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkdmFsdWVzKTsKCQlpZiAoJHJlc3VsdCA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTsKCQkvL2Ntc191dGlsczo6Z2V0X21vZHVsZSgnUHJvamVjdHMnKS0+U2VuZEV2ZW50KCdDb250ZW50RWRpdFBvc3QnLGFycmF5KCkpOwoJCXJldHVybiB0cnVlOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCkgewoJCWlmICgkdGhpcy0+Z2V0SWQoKSkgewogICAgCS8vICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkJJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKCQkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLnNlbGY6OkRCX05BTUUgLiAnIFdIRVJFIGlkID0gPyc7CgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+Z2V0SWQoKSkpOwoJCQlpZigkcmVzdWx0ICE9PSBmYWxzZSkKCQkJewoJCQkJcmV0dXJuIHRydWU7CgkJCX0gCgkJfQoJCXJldHVybiBmYWxzZTsKCX0KCQoJCgkKfQ==]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFModuleStructure.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBNQ0ZNb2R1bGVTdHJ1Y3R1cmUgQ2xhc3MKICogCiAqIFRoaXMgY2xhc3MgaGFuZGxlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvZiB0aGUgZmllbGRzIGluc2lkZSBhIG1vZHVsZQogKiAgKgogKiBGSVhNRTogQ2hlY2sgdGhlIHNlY3VyaXR5IHByb2Nlc3NlcyAhCiAqIAogKi8KCmNsYXNzIE1DRk1vZHVsZVN0cnVjdHVyZSB7CgoJcHJvdGVjdGVkICRzdHJ1Y3R1cmU7IC8vIFN0b3JlZCBzdHJ1Y3R1cmUJCglwcm90ZWN0ZWQgc3RhdGljICR2ZXJzaW9uID0gMTsgLy8gQ3VycmVudCB2ZXJzaW9uIG9mIHRoaXMgY2xhc3MKCQoJcHVibGljIHN0YXRpYyAkYmxhY2tsaXN0ID0gYXJyYXkoJ2lkJywgJ3BhcmVudF9pZCcsICd0aXRsZScsICdjcmVhdGVkX2F0JywgJ2NyZWF0ZWRfYnknLCAndXBkYXRlZF9hdCcsICd1cGRhdGVkX2J5JywgJ29yZGVyX2J5JywgJ3BhcmVudCcsICdwYXJlbnRfbW9kdWxlJywgJ3B1Ymxpc2hlZCcsICdvcmRlcicsICdvcmRlcl9ieScsICdmcm9tJywgJ3NlbGVjdCcsICdpbicsICdkYXRlJywgJ2Z1bGxfdGV4dF9zZWFyY2gnLCdjb3JlX3NsdWcnLCdjb3Jlc2x1ZycsJ3VzZXJfaWQnLCAnZnVuY3Rpb24nLCAnYnlpZCcsJ2pzb24nLCdhc2FycmF5Jywnc2VhcmNoc3RyaW5nJywgICdncm91cCcsICdieScsICdhZGQnLCdhbGwnLCdhbHRlcicsJ2FuYWx5emUnLCdhbmQnLCdhcycsJ2FzYycsJ2FzZW5zaXRpdmUnLCdiZWZvcmUnLCdiZXR3ZWVuJywnYmlnaW50JywnYmluYXJ5JywnYmxvYicsJ2JvdGgnLCdieScsJ2NhbGwnLCdjYXNjYWRlJywnY2FzZScsJ2NoYW5nZScsJ2NoYXInLCdjaGFyYWN0ZXInLCdjaGVjaycsJ2NvbGxhdGUnLCdjb2x1bW4nLCdjb25kaXRpb24nLCdjb25zdHJhaW50JywnY29udGludWUnLCdjb252ZXJ0JywnY3JlYXRlJywnY3Jvc3MnLCdjdXJyZW50X2RhdGUnLCdjdXJyZW50X3RpbWUnLCdjdXJyZW50X3RpbWVzdGFtcCcsJ2N1cnJlbnRfdXNlcicsJ2N1cnNvcicsJ2RhdGFiYXNlJywnZGF0YWJhc2VzJywnZGF5X2hvdXInLCdkYXlfbWljcm9zZWNvbmQnLCdkYXlfbWludXRlJywnZGF5X3NlY29uZCcsJ2RlYycsJ2RlY2ltYWwnLCdkZWNsYXJlJywnZGVmYXVsdCcsJ2RlbGF5ZWQnLCdkZWxldGUnLCdkZXNjJywnZGVzY3JpYmUnLCdkZXRlcm1pbmlzdGljJywnZGlzdGluY3QnLCdkaXN0aW5jdHJvdycsJ2RpdicsJ2RvdWJsZScsJ2Ryb3AnLCdkdWFsJywnZWFjaCcsJ2Vsc2UnLCdlbHNlaWYnLCdlbmNsb3NlZCcsJ2VzY2FwZWQnLCdleGlzdHMnLCdleGl0JywnZXhwbGFpbicsJ2ZhbHNlJywnZmV0Y2gnLCdmbG9hdCcsJ2Zsb2F0NCcsJ2Zsb2F0OCcsJ2ZvcicsJ2ZvcmNlJywnZm9yZWlnbicsJ2Zyb20nLCdmdWxsdGV4dCcsJ2dyYW50JywnZ3JvdXAnLCdoYXZpbmcnLCdoaWdoX3ByaW9yaXR5JywnaG91cl9taWNyb3NlY29uZCcsJ2hvdXJfbWludXRlJywnaG91cl9zZWNvbmQnLCdpZicsJ2lnbm9yZScsJ2luJywnaW5kZXgnLCdpbmZpbGUnLCdpbm5lcicsJ2lub3V0JywnaW5zZW5zaXRpdmUnLCdpbnNlcnQnLCdpbnQnLCdpbnQxJywnaW50MicsJ2ludDMnLCdpbnQ0JywnaW50OCcsJ2ludGVnZXInLCdpbnRlcnZhbCcsJ2ludG8nLCdpcycsJ2l0ZXJhdGUnLCdqb2luJywna2V5Jywna2V5cycsJ2tpbGwnLCdsZWFkaW5nJywnbGVhdmUnLCdsZWZ0JywnbGlrZScsJ2xpbWl0JywnbGluZXMnLCdsb2FkJywnbG9jYWx0aW1lJywnbG9jYWx0aW1lc3RhbXAnLCdsb2NrJywnbG9uZycsJ2xvbmdibG9iJywnbG9uZ3RleHQnLCdsb29wJywnbG93X3ByaW9yaXR5JywnbWF0Y2gnLCdtZWRpdW1ibG9iJywnbWVkaXVtaW50JywnbWVkaXVtdGV4dCcsJ21pZGRsZWludCcsJ21pbnV0ZV9taWNyb3NlY29uZCcsJ21pbnV0ZV9zZWNvbmQnLCdtb2QnLCdtb2RpZmllcycsJ25hdHVyYWwnLCdub3QnLCdub193cml0ZV90b19iaW5sb2cnLCdudWxsJywnbnVtZXJpYycsJ29uJywnb3B0aW1pemUnLCdvcHRpb24nLCdvcHRpb25hbGx5Jywnb3InLCdvcmRlcicsJ291dCcsJ291dGVyJywnb3V0ZmlsZScsJ3ByZWNpc2lvbicsJ3ByaW1hcnknLCdwcm9jZWR1cmUnLCdwdXJnZScsJ3JlYWQnLCdyZWFkcycsJ3JlYWwnLCdyZWZlcmVuY2VzJywncmVnZXhwJywncmVsZWFzZScsJ3JlbmFtZScsJ3JlcGVhdCcsJ3JlcGxhY2UnLCdyZXF1aXJlJywncmVzdHJpY3QnLCdyZXR1cm4nLCdyZXZva2UnLCdyaWdodCcsJ3JsaWtlJywnc2NoZW1hJywnc2NoZW1hcycsJ3NlY29uZF9taWNyb3NlY29uZCcsJ3NlbGVjdCcsJ3NlbnNpdGl2ZScsJ3NlcGFyYXRvcicsJ3NldCcsJ3Nob3cnLCdzbWFsbGludCcsJ3NvbmFtZScsJ3NwYXRpYWwnLCdzcGVjaWZpYycsJ3NxbCcsJ3NxbGV4Y2VwdGlvbicsJ3NxbHN0YXRlJywnc3Fsd2FybmluZycsJ3NxbF9iaWdfcmVzdWx0Jywnc3FsX2NhbGNfZm91bmRfcm93cycsJ3NxbF9zbWFsbF9yZXN1bHQnLCdzc2wnLCdzdGFydGluZycsJ3N0cmFpZ2h0X2pvaW4nLCd0YWJsZScsJ3Rlcm1pbmF0ZWQnLCd0aGVuJywndGlueWJsb2InLCd0aW55aW50JywndGlueXRleHQnLCd0bycsJ3RyYWlsaW5nJywndHJpZ2dlcicsJ3RydWUnLCd1bmRvJywndW5pb24nLCd1bmlxdWUnLCd1bmxvY2snLCd1bnNpZ25lZCcsJ3VwZGF0ZScsJ3VzYWdlJywndXNlJywndXNpbmcnLCd1dGNfZGF0ZScsJ3V0Y190aW1lJywndXRjX3RpbWVzdGFtcCcsJ3ZhbHVlcycsJ3ZhcmJpbmFyeScsJ3ZhcmNoYXInLCd2YXJjaGFyYWN0ZXInLCd2YXJ5aW5nJywnd2hlbicsJ3doZXJlJywnd2hpbGUnLCd3aXRoJywnd3JpdGUnLCd4b3InLCd5ZWFyX21vbnRoJywnemVyb2ZpbGwnLCAnc2VuZF91cGRhdGVfaW1tZWRpYXRlbHknKTsKCQoJLy8gcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKQoJLy8gewoJLy8gCXJldHVybiBzZXJpYWxpemUoJHRoaXMtPnN0cnVjdHVyZSk7CgkvLyB9CgkvLyAKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkc3RydWN0dXJlKQoJewoJCWlmKGlzc2V0KCRzdHJ1Y3R1cmVbJ3ZlcnNpb24nXSkpCgkJewoJCQkvLyBTdHJ1Y3R1cmUgaXMgY29ycmVjdCwgd2UgY2FuIGp1c3QgcHJvY2VlZAoJCQkkdGhpcy0+c3RydWN0dXJlID0gJHN0cnVjdHVyZTsKCQl9CgkJZWxzZQoJCXsKCQkJLy8gT2xkIHN0cnVjdHVyZSBkZXRlY3RlZDogRmlyc3Qgd2UgbmVlZCB0byB0cmFuc2Zvcm0gaXQKCQkJJHRoaXMtPnN0cnVjdHVyZSA9IHNlbGY6Om1pZ3JhdGVTdHJ1Y3R1cmUoJHN0cnVjdHVyZSk7CgkJfQoJCQoJCS8vIEV4YW1wbGUKCQkvLyAkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJ2RlZmF1bHQnXVsnbmFtZSddID0gJ01haW4nOyAvLyBUT0RPIDogSTE4bgoJCS8vICR0aGlzLT5zdHJ1Y3R1cmVbJ3RhYnMnXVsnZGVmYXVsdCddWydmaWVsZHNldHMnXVsnZGVmYXVsdCddWyduYW1lJ10gPSAnTWFpbic7IC8vIFRPRE8gOiBJMThuCgkJLy8gJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWydzZWNvbmRhcnknXVsnbmFtZSddID0gJ1NlY29uZGFyeSc7CgkJLy8gJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWydzZWNvbmRhcnknXVsnZmllbGRzZXRzJ11bJ2RlZmF1bHQnXSA9IGFycmF5KCdmaWVsZHMnID0+IGFycmF5KCkpOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZ2V0U3RydWN0dXJlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPnN0cnVjdHVyZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGFicygpCgl7CgkJJHRhYnMgPSBhcnJheSgpOwoJCWZvcmVhY2goJHRoaXMtPnN0cnVjdHVyZVsndGFicyddIGFzICR0YWIgPT4gJGluZm8pCgkJewoJCQkkdGFic1skdGFiXSA9ICRpbmZvOwoJCX0KCQlyZXR1cm4gJHRhYnM7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBzZXRUYWIoJG5hbWUpCgl7CgkJJGtleSA9IHNlbGY6OmNsZWFuTmFtZSgkbmFtZSk7CgkJaWYoIWlzc2V0KCR0aGlzLT5zdHJ1Y3R1cmVbJ3RhYnMnXVska2V5XSkpCgkJewoJCQkkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJGtleV1bJ25hbWUnXSA9ICRuYW1lOwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIHJlbW92ZVRhYigka2V5KQoJewoJCWlmKGlzc2V0KCR0aGlzLT5zdHJ1Y3R1cmVbJ3RhYnMnXVska2V5XSkpCgkJewoJCQl1bnNldCgkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJGtleV0pOwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIHNldEZpZWxkc2V0KCR0YWJfa2V5LCAkbmFtZSkKCXsKCQlpZihpc3NldCgkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJHRhYl9rZXldKSkKCQl7CgkJCSRrZXkgPSBzZWxmOjpjbGVhbk5hbWUoJG5hbWUpOwoJCQkkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJHRhYl9rZXldWydmaWVsZHNldHMnXVska2V5XVsnbmFtZSddID0gJG5hbWU7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlRmllbGRzZXQoJHRhYl9rZXksICRrZXkpCgl7CgkJaWYoaXNzZXQoJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWyR0YWJfa2V5XVsnZmllbGRzZXRzJ11bJGtleV0pKQoJCXsKCQkJdW5zZXQoJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWyR0YWJfa2V5XVsnZmllbGRzZXRzJ11bJGtleV0pOwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldEZpZWxkc2V0c1dpdGhUYWJzRm9yU2VsZWN0KCkKCXsKCQkkbGlzdCA9IGFycmF5KCk7CgkJZm9yZWFjaCgkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ10gYXMgJHRhYl9rZXkgPT4gJHRhYikKCQl7CgkJCWZvcmVhY2goJHRhYlsnZmllbGRzZXRzJ10gYXMgJGZzX2tleSA9PiAkZmllbGRzZXQpCgkJCXsKCQkJCSRsaXN0WyR0YWJfa2V5IC4gJy0tLScgLiAkZnNfa2V5XSA9ICR0YWJbJ25hbWUnXSAuICc6ICcgLiAkZmllbGRzZXRbJ25hbWUnXTsJCQkJCgkJCX0KCQl9CgkJcmV0dXJuICRsaXN0OwoJfQoJLy8KCQoJcHVibGljIGZ1bmN0aW9uIGFkZEZpZWxkKCR0YWJfa2V5LCAkZmllbGRzZXRfa2V5LCAkcGFyYW1zKQoJewoJCWlmKCFpc3NldCgkcGFyYW1zWydsYWJlbCddKSB8fCAkcGFyYW1zWydsYWJlbCddID09ICcnKQoJCXsKCQkJJHBhcmFtc1snbGFiZWwnXSA9ICdEZWZhdWx0IGZpZWxkIG5hbWUnOwoJCX0KCQkKCQlpZihpc3NldCgkcGFyYW1zWyduYW1lJ10pICYmICRwYXJhbXNbJ25hbWUnXSAhPSAnJykKCQl7CgkJCSRuYW1lID0gJHBhcmFtc1snbmFtZSddOwoJCQkkdGhpcy0+bW92ZUZpZWxkKCR0YWJfa2V5LCAkZmllbGRzZXRfa2V5LCAkbmFtZSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRuYW1lID0gJHRoaXMtPmNyZWF0ZU5hbWVGcm9tTGFiZWwoJHBhcmFtc1snbGFiZWwnXSk7CgkJfQoJCQoJCWlmIChpc3NldCgkbmFtZSkpCgkJewkJCQoJCQkkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJHRhYl9rZXldWydmaWVsZHNldHMnXVskZmllbGRzZXRfa2V5XVsnZmllbGRzJ11bJG5hbWVdID0gYXJyYXkoCgkJCQknbGFiZWwnID0+ICRwYXJhbXNbJ2xhYmVsJ10sCgkJCQknbmFtZScgPT4gJG5hbWUsCgkJCQkndHlwZScgPT4gJHBhcmFtc1sndHlwZSddLAoJCQkJJ29wdGlvbnMnID0+IHN0cl9yZXBsYWNlKGFycmF5KCJcbiIsIlxyIiksICcgJywgJHBhcmFtc1snb3B0aW9ucyddKSwKCQkJCSdjb2x1bW4nID0+IGlzc2V0KCRwYXJhbXNbJ2NvbHVtbiddKT8kcGFyYW1zWydjb2x1bW4nXTpudWxsLAoJCQkJJ2ZpbHRlcicgPT4gaXNzZXQoJHBhcmFtc1snZmlsdGVyJ10pPyRwYXJhbXNbJ2ZpbHRlciddOm51bGwsCgkJCQknZnJvbnRlbmQnID0+IGlzc2V0KCRwYXJhbXNbJ2Zyb250ZW5kJ10pPyRwYXJhbXNbJ2Zyb250ZW5kJ106bnVsbAoJCQkpOwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIG1vdmVGaWVsZCgkdGFiX2tleSwgJGZpZWxkc2V0X2tleSwgJG5hbWUpCgl7CgkJaWYoJHBsYWNlID0gJHRoaXMtPmZpbmRGaWVsZCgkbmFtZSkpCgkJewoJCQlpZigoJHBsYWNlWyd0YWJfa2V5J10gIT0gJHRhYl9rZXkpIHx8ICgkcGxhY2VbJ2ZpZWxkc2V0X2tleSddICE9ICRmaWVsZHNldF9rZXkpKQoJCQl7CgkJCQkkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJHRhYl9rZXldWydmaWVsZHNldHMnXVskZmllbGRzZXRfa2V5XVsnZmllbGRzJ11bJG5hbWVdID0gJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWyRwbGFjZVsndGFiX2tleSddXVsnZmllbGRzZXRzJ11bJHBsYWNlWydmaWVsZHNldF9rZXknXV1bJ2ZpZWxkcyddWyRuYW1lXTsKCQkJCXVuc2V0KCR0aGlzLT5zdHJ1Y3R1cmVbJ3RhYnMnXVskcGxhY2VbJ3RhYl9rZXknXV1bJ2ZpZWxkc2V0cyddWyRwbGFjZVsnZmllbGRzZXRfa2V5J11dWydmaWVsZHMnXVskbmFtZV0pOwkJCQoJCQl9CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gcmVvcmRlckZpZWxkcygkdGFiX2tleSwgJGZpZWxkc2V0X2tleSwgJGZpZWxkcykKCXsKCQkkbmV3X2ZpZWxkcyA9IGFycmF5KCk7CgkJJGZfa2V5cyA9IGV4cGxvZGUoJywnLCRmaWVsZHMpOwoJCWZvcmVhY2goJGZfa2V5cyBhcyAka2V5KQoJCXsKCQkJJG5ld19maWVsZHNbJGtleV0gPSAkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ11bJHRhYl9rZXldWydmaWVsZHNldHMnXVskZmllbGRzZXRfa2V5XVsnZmllbGRzJ11bJGtleV07CgkJfQoJCSRuZXdfZmllbGRzWyRrZXldID0gJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWyR0YWJfa2V5XVsnZmllbGRzZXRzJ11bJGZpZWxkc2V0X2tleV1bJ2ZpZWxkcyddID0gJG5ld19maWVsZHM7CQkKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGZpbmRGaWVsZCgkbmFtZSkKCXsJCQoJCWZvcmVhY2goJHRoaXMtPnN0cnVjdHVyZVsndGFicyddIGFzICR0YWJfa2V5ID0+ICR0YWIpCgkJewoJCQlmb3JlYWNoKCR0YWJbJ2ZpZWxkc2V0cyddIGFzICRmc19rZXkgPT4gJGZpZWxkc2V0KQoJCQl7CgkJCQlmb3JlYWNoKCRmaWVsZHNldFsnZmllbGRzJ10gYXMgJGZpZWxkKQoJCQkJewoJCQkJCWlmKCRmaWVsZFsnbmFtZSddID09ICRuYW1lKQoJCQkJCXsKCQkJCQkJcmV0dXJuIGFycmF5KCd0YWJfa2V5JyA9PiAkdGFiX2tleSwgJ2ZpZWxkc2V0X2tleScgPT4gJGZzX2tleSwgJ2ZpZWxkc2V0X25hbWUnID0+ICRmaWVsZHNldFsnbmFtZSddKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIG51bGw7CQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZ2V0Rmlyc3RUYWJGaWVsZHNldCgpCgl7CgkJZm9yZWFjaCgkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ10gYXMgJHRhYl9rZXkgPT4gJHRhYikKCQl7CgkJCWZvcmVhY2goJHRhYlsnZmllbGRzZXRzJ10gYXMgJGZzX2tleSA9PiAkZmllbGRzZXQpCgkJCXsKCQkJCXJldHVybiAgYXJyYXkoJ3RhYl9rZXknID0+ICR0YWJfa2V5LCAnZmllbGRzZXRfa2V5JyA9PiAkZnNfa2V5LCAnZmllbGRzZXRfbmFtZScgPT4gJGZpZWxkc2V0WyduYW1lJ10pOwoJCQl9CgkJfQoJCXJldHVybiBudWxsOwoJCQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gY3JlYXRlTmFtZUZyb21MYWJlbCgkbGFiZWwpCgl7CgkJJG5hbWUgPSBzZWxmOjpjbGVhbk5hbWUoJGxhYmVsLCAnXycpOwoJCSRuYW1lID0gc3RyX3JlcGxhY2UoJ21jZmlfJywgJ21jZl8nLCAkbmFtZSk7CgkJaWYoaW5fYXJyYXkoJG5hbWUsIHNlbGY6OiRibGFja2xpc3QpKQoJCXsKCQkJJG5hbWUgPSAnbWNmXycgLiAkbmFtZTsKCQl9CgkJCgkJJG9yaWdpbmFsX25hbWUgPSAkbmFtZTsKCQkkZmllbGRzID0gJHRoaXMtPmdldEFsbEZpZWxkc05hbWUoKTsKCQkkaSA9IDE7CgkJd2hpbGUoaW5fYXJyYXkoJG5hbWUsICRmaWVsZHMpKQoJCXsKCQkJJG5hbWUgPSAkb3JpZ2luYWxfbmFtZSAuICRpOwoJCQkkaSsrOwoJCX0JCQoJCXJldHVybiAkbmFtZTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldEFsbEZpZWxkc05hbWUoKQoJewoJCSRmaWVsZHMgPSBhcnJheSgpOwoJCQoJCWZvcmVhY2goJHRoaXMtPnN0cnVjdHVyZVsndGFicyddIGFzICR0YWIpCgkJewoJCQlmb3JlYWNoKCR0YWJbJ2ZpZWxkc2V0cyddIGFzICRmaWVsZHNldCkKCQkJewoJCQkgIGlmKGlzc2V0KCRmaWVsZHNldFsnZmllbGRzJ10pKQoJCQkgIHsKCQkJICAgIGZvcmVhY2goJGZpZWxkc2V0WydmaWVsZHMnXSBhcyAkZmllbGQpCiAgCQkJCXsKICAJCQkJCSRmaWVsZHNbXSA9ICRmaWVsZFsnbmFtZSddOwogIAkJCQl9CgkJCSAgfQoJCQl9CgkJfQoJCXJldHVybiAkZmllbGRzOwkKCX0KCQoJcHVibGljIGZ1bmN0aW9uIHJlbW92ZUZpZWxkKCRuYW1lKQoJewoJCWZvcmVhY2goJHRoaXMtPnN0cnVjdHVyZVsndGFicyddIGFzICR0YWJfa2V5ID0+ICR0YWIpCgkJewoJCQlmb3JlYWNoKCR0YWJbJ2ZpZWxkc2V0cyddIGFzICRmc19rZXkgPT4gJGZpZWxkc2V0KQoJCQl7CgkJCQlpZihpc3NldCgkZmllbGRzZXRbJ2ZpZWxkcyddWyRuYW1lXSkpCgkJCQl7CgkJCQkJdW5zZXQoJHRoaXMtPnN0cnVjdHVyZVsndGFicyddWyR0YWJfa2V5XVsnZmllbGRzZXRzJ11bJGZzX2tleV1bJ2ZpZWxkcyddWyRuYW1lXSk7CgkJCQl9CgkJCX0KCQl9Cgl9CgkKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2xlYW5OYW1lKCRuYW1lLCAkc3BhY2VyID0gJy0nKQoJewoJCSAgJHJlc3VsdCA9IHN0cnRvbG93ZXIoJG5hbWUpOwoJCQkvLyBSZW1vdmUgYWNjZW50cwogICAgICAkcmVzdWx0ID0gc3RydHIoJHJlc3VsdCwgICLvv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv70iLCAgImFhYWFhYWFhYWFhYW9vb29vb29vb29vb2VlZWVlZWVlY2NpaWlpaWlpaXV1dXV1dXV1eW5uIik7CgoJCQkvLyBTb2Z0IHdheQoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIiMiLCAiTm8uIiwgJHJlc3VsdCk7IAoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIiQiLCAiRG9sbGFyIiwgJHJlc3VsdCk7IAoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIiUiLCAiUGVyY2VudCIsICRyZXN1bHQpOyAKCQkJJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCJeIiwgIiAiLCAkcmVzdWx0KTsgCgkJCSRyZXN1bHQgPSBzdHJfcmVwbGFjZSgiJiIsICJhbmQiLCAkcmVzdWx0KTsgCgkJCSRyZXN1bHQgPSBzdHJfcmVwbGFjZSgiKiIsICIgIiwgJHJlc3VsdCk7IAoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIj8iLCAiICIsICRyZXN1bHQpOwoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIiwiLCAiICIsICRyZXN1bHQpOwoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIiciLCAiICIsICRyZXN1bHQpOwoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoJyInLCAiICIsICRyZXN1bHQpOwoJCQkkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIi4iLCAiICIsICRyZXN1bHQpOwoJCQkKICAgICAgLy8gc3RyaXAgYWxsIG5vbiB3b3JkIGNoYXJzCiAgICAgIC8vJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL1xXLycsICcgJywgJHJlc3VsdCk7IC8vIEhBUkQgV0FZLi4uCgogICAgICAvLyByZXBsYWNlIGFsbCB3aGl0ZSBzcGFjZSBzZWN0aW9ucyB3aXRoIGEgZGFzaAogICAgICAkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCcvXCArLycsICRzcGFjZXIsICRyZXN1bHQpOwogICAgICAvLyB0cmltIGRhc2hlcwogICAgICAkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCcvXC0kLycsICcnLCAkcmVzdWx0KTsKICAgICAgJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL15cLS8nLCAnJywgJHJlc3VsdCk7CiAgICAgIHJldHVybiAkcmVzdWx0OwoJfQoJCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1pZ3JhdGVTdHJ1Y3R1cmUoJHN0cnVjdHVyZSkKCXsKCQkkYXJyYXkgPSBhcnJheSgpOwoJCS8vIFZlcnNpb24gMQoJCSRhcnJheVsndmVyc2lvbiddID0gc2VsZjo6JHZlcnNpb247CgkJCQkKCQlmb3JlYWNoKCRzdHJ1Y3R1cmUgYXMgJHBvc2l0aW9uID0+ICRmaWVsZCkKCQl7CgkJCSRhcnJheVsndGFicyddWydkZWZhdWx0J11bJ2ZpZWxkc2V0cyddWydkZWZhdWx0J11bJ2ZpZWxkcyddWyRmaWVsZFsnbmFtZSddXSA9ICRmaWVsZDsgCgkJfQoJCQoJCSRhcnJheVsndGFicyddWydkZWZhdWx0J11bJ25hbWUnXSA9ICdNYWluJzsgLy8gVE9ETyA6IEkxOG4KCQkkYXJyYXlbJ3RhYnMnXVsnZGVmYXVsdCddWydmaWVsZHNldHMnXVsnZGVmYXVsdCddWyduYW1lJ10gPSAnTWFpbic7IC8vIFRPRE8gOiBJMThuCgkJCgkJcmV0dXJuICRhcnJheTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldE9sZFN0cnVjdHVyZSgpCgl7CgkJLy8gVmVyc2lvbiAxCgkJJHN0cnVjdHVyZSA9IGFycmF5KCk7CgkJZm9yZWFjaCgkdGhpcy0+c3RydWN0dXJlWyd0YWJzJ10gYXMgJHRhYikKCQl7CgkJCWlmKGlzc2V0KCR0YWJbJ2ZpZWxkc2V0cyddKSkKCQkJewoJCQkJZm9yZWFjaCgkdGFiWydmaWVsZHNldHMnXSBhcyAkZmllbGRzZXQpCgkJCQl7CgkJCQkJaWYoaXNzZXQoJGZpZWxkc2V0WydmaWVsZHMnXSkgJiYgaXNfYXJyYXkoJGZpZWxkc2V0WydmaWVsZHMnXSkpCgkJCQkJewoJCQkJCQlmb3JlYWNoKCRmaWVsZHNldFsnZmllbGRzJ10gYXMgJGZpZWxkKQoJCQkJCQl7CgkJCQkJCQkkc3RydWN0dXJlW10gPSAkZmllbGQ7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuICRzdHJ1Y3R1cmU7Cgl9CgkKCgkvKiBERVYgTk9URVMKCQoJCVN0cnVjdHVyZToKCQkKCQlUYWJzID0+IEZpZWxkc2V0cyA9PiBGaWVsZHMKCQkJCgkqLwoJCgkKCn0=]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFTemplate.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIE1DRlRlbXBsYXRlIGV4dGVuZHMgU21hcnR5IHsKCglwcm90ZWN0ZWQgJG1vZHVsZTsKCXByb3RlY3RlZCAkc291cmNlOwoJcHJvdGVjdGVkICRkZXN0aW5hdGlvbjsKCXByb3RlY3RlZCAkY21zQ29uZmlnOwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kdWxlLCAkc291cmNlLCAkZGVzdGluYXRpb24pIHsKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CgkJJHRoaXMtPm1vZHVsZSA9ICRtb2R1bGU7CgkJJHRoaXMtPnNvdXJjZSA9ICRzb3VyY2U7CgkJJHRoaXMtPmRlc3RpbmF0aW9uID0gJGRlc3RpbmF0aW9uOwoJCSR0aGlzLT5jbXNDb25maWcgPSBjbXNfdXRpbHM6OmdldF9jb25maWcoKTsKCQkkdGhpcy0+dGVtcGxhdGVfZGlyID0gJHRoaXMtPmNtc0NvbmZpZ1sncm9vdF9wYXRoJ10gLiAnL21vZHVsZXMvTUNGYWN0b3J5L3NtYXJ0eS90ZW1wbGF0ZXMnOwovLwkJJHRoaXMtPmNvbXBpbGVfZGlyID0gJHRoaXMtPmNtc0NvbmZpZ1sncm9vdF9wYXRoJ10gLiAnL21vZHVsZXMvTUNGYWN0b3J5L3NtYXJ0eS90ZW1wbGF0ZXNfYyc7IC8vIFRPRE86IENoYW5nZSB0aGF0IHRvIHRoZSBnbG9iYWwgb25lCgkJJHRoaXMtPmNvbXBpbGVfZGlyID0gJHRoaXMtPmNtc0NvbmZpZ1sncHJldmlld3NfcGF0aCddOyAvLyBUT0RPOiBDaGFuZ2UgdGhhdCB0byB0aGUgZ2xvYmFsIG9uZQoJCSR0aGlzLT5jb25maWdfZGlyID0gJHRoaXMtPmNtc0NvbmZpZ1sncm9vdF9wYXRoJ10gLiAnL21vZHVsZXMvTUNGYWN0b3J5L3NtYXJ0eS9jb25maWcnOwoJCSR0aGlzLT5mb3JjZV9jb21waWxlID0gdHJ1ZTsKCQkkdGhpcy0+bGVmdF9kZWxpbWl0ZXIgPSAne3snOwoJCSR0aGlzLT5yaWdodF9kZWxpbWl0ZXIgPSAnfX0nOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzYXZlKCkgewoJCSRjb250ZW50cyA9ICR0aGlzLT5mZXRjaCgkdGhpcy0+c291cmNlKTsKCQkkcmVzdWx0ID0gQGZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5jbXNDb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9tb2R1bGVzLycgLiAkdGhpcy0+bW9kdWxlIC4gJy8nIC4gJHRoaXMtPmRlc3RpbmF0aW9uLCAkY29udGVudHMpOwoJCQoJCS8vIFNNQVJUWSAyLzMgCgkJaWYobWV0aG9kX2V4aXN0cygkdGhpcywgJ2NsZWFyX2NvbXBpbGVkX3RwbCcpKQoJCXsKCQkgICR0aGlzLT5jbGVhcl9jb21waWxlZF90cGwoKTsJCSAgCgkJfQoJCWVsc2UKCQl7CgkJICAkdGhpcy0+Y2xlYXJDb21waWxlZFRlbXBsYXRlKCk7CgkJfQoJCXJldHVybiAkcmVzdWx0OwoJfQoKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/libraries/classes/MCFTools.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBNQ0ZUb29scyBDbGFzcwogKiAKICogVGhpcyBjbGFzcyBwcm92aWRlcyBzb21lIGNvcmUgdG9vbHMgZm9yIG1vZHVsZXMKICoKICogQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgPGN5YmVydG90b3BoZUBnbWFpbC5jb20+CiAqICAKICovCgpjbGFzcyBNQ0ZUb29scyB7CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBJc01vZHVsZUFjdGl2ZSgkbW9kdWxlX25hbWUpCiAgewogICAgJG1vZHVsZV9vcGVyYXRpb25zID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOwogICAgaWYobWV0aG9kX2V4aXN0cygkbW9kdWxlX29wZXJhdGlvbnMsICdJc01vZHVsZUFjdGl2ZScpKQogICAgewogICAgICByZXR1cm4gJG1vZHVsZV9vcGVyYXRpb25zLT5Jc01vZHVsZUFjdGl2ZSgkbW9kdWxlX25hbWUpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAvLyBXZSBhcmUgaW4gcHJlIDEuMTAgQ01TIHZlcnNpb25zCiAgICAgICBnbG9iYWwgJGdDbXM7CiAgICAgICBpZihpc3NldCgkZ0Ntcy0+bW9kdWxlc1skbW9kdWxlX25hbWVdKSkKICAgICAgIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9CiAgICAgICBlbHNlCiAgICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgIH0KICAgIH0KICAgIAogIH0KCn0=]]></data>
	</file>
	<file>
	  <filename>/MCFactory.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1DRmFjdG9yeSAtIFRoaXMgbW9kdWxlIGlzIGEgc29ydCBvZiAmcXVvdDtTdXBlciZxdW90OyBNb2R1bGVNYWtlciB3aXRoIGxvdHMgb2YgZnVuY3Rpb25hbGl0aWVzCiMgVmVyc2lvbjogMC4wLjEsIEplYW4tQ2hyaXN0b3BoZSBDdXZlbGllcgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMgVGhpcyBmaWxlIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBNb2R1bGVNYWtlciBtb2R1bGUsIHZlcnNpb24gMC4zLjEKIyBDb3B5cmlnaHQgKGMpIDIwMDggYnkgU2FtdWVsIEdvbGRzdGVpbiAoc2pnQGNtc21hZGVzaW1wbGUub3JnKSAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpyZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYnJhcmllcy9jbGFzc2VzL01DRk1vZHVsZS5jbGFzcy5waHAnOwpyZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYnJhcmllcy9jbGFzc2VzL01DRk1vZHVsZUFjdGlvbi5jbGFzcy5waHAnOwpyZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYnJhcmllcy9jbGFzc2VzL01DRk1vZHVsZVN0cnVjdHVyZS5jbGFzcy5waHAnOwpyZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYnJhcmllcy9jbGFzc2VzL01DRkxpc3RWaWV3LmNsYXNzLnBocCc7CnJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvbGlicmFyaWVzL2NsYXNzZXMvTUNGQ3JpdGVyaWEuY2xhc3MucGhwJzsKcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9saWJyYXJpZXMvY2xhc3Nlcy9NQ0ZUZW1wbGF0ZS5jbGFzcy5waHAnOwpyZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYnJhcmllcy9jbGFzc2VzL01DRkNhbGVuZGFyLmNsYXNzLnBocCc7CnJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvbGlicmFyaWVzL2NsYXNzZXMvTUNGVG9vbHMuY2xhc3MucGhwJzsKLy9yZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYnJhcmllcy9jbGFzc2VzL01DRkZvcm0uY2xhc3MucGhwJzsKCmNsYXNzIE1DRmFjdG9yeSBleHRlbmRzIENNU01vZHVsZSB7CgoJcHJvdGVjdGVkICRhY3Rpb247CgkKCXB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkgICAgICAgICAgICAgIHsgcmV0dXJuICdNQ0ZhY3RvcnknOyB9CglwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgICAgICB7IHJldHVybiAnTSZDIEZhY3RvcnknOyB9CglwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpICAgICAgICAgICB7IHJldHVybiAnMy4yLjQnOyB9CglwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yKCkgICAgICAgICAgICB7IHJldHVybiAnSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyJzsgfQoJcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgICAgICAgeyByZXR1cm4gJ2pjY0Btb3JyaXMtY2hhcG1hbi5jb20nOyB9CglwdWJsaWMgZnVuY3Rpb24gR2V0SGVscCgpICAgICAgICAgICAgICB7IHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOyB9CglwdWJsaWMgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgICAgICAgICB7IHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7IH0KCXB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpICAgICAgICAgICAgIHsgcmV0dXJuIHRydWU7IH0KCXB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7IH0KCXB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSAgIHsgcmV0dXJuICR0aGlzLT5DaGVja0FjY2VzcygpOyB9CglwdWJsaWMgZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoKSAgICAgICAgICB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTUNGYWN0b3J5Jyk7IH0KCXB1YmxpYyBmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCkgICAgIHsgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7IH0KICAvLyBwdWJsaWMgZnVuY3Rpb24gR2V0UGFyYW1ldGVycygpICAgICB7IHJldHVybiBhcnJheSgpOyB9CglwdWJsaWMgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgICAgICB7IHJldHVybiBhcnJheSgnTW9kdWxlWHRlbmRlcicgPT4gJzEuMTAnLCAnQ01TRm9ybXMnID0+ICcwLjEuNScpOyB9CglwdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgICB7IHJldHVybiAkdGhpcy0+TGFuZygnaW5zdGFsbHBvc3RtZXNzYWdlJyk7IH0KCXB1YmxpYyBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgIHsgcmV0dXJuICR0aGlzLT5MYW5nKCd1bmluc3RhbGxwcmVtZXNzYWdlJyk7IH0KCXB1YmxpYyBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCd1bmluc3RhbGxwb3N0bWVzc2FnZScpOyB9CglwdWJsaWMgZnVuY3Rpb24gSGFuZGxlc0V2ZW50cygpICAgICAgICB7IHJldHVybiB0cnVlOyB9CglwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSAgICB7IHJldHVybiAnMS45JzsgIH0KCgoJcHVibGljIGZ1bmN0aW9uIERvRXZlbnQoJG9yaWdpbmF0b3IsICRldmVudG5hbWUsICRwYXJhbXMpIHsKCQlpZiAoJGV2ZW50bmFtZSA9PSAnQ29udGVudEVkaXRQb3N0JykgewoJCQkkdGhpcy0+c2V0QXR0cmlidXRlKCdsYXN0X21vZGlmaWVkX2RhdGUnLCB0aW1lKCkpOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0QXR0cmlidXRlKCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpIHsKCQkkZGIgPSAkdGhpcy0+Z2V0RGIoKTsKCQkkcmVzdWx0ID0gJGRiLT5leGVjdXRlKCdTRUxFQ1QgYXR0cmlidXRlX3ZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X2F0dHJpYnV0ZXMgV0hFUkUgYXR0cmlidXRlX25hbWUgPSA/JywgYXJyYXkoJG5hbWUpKTsKCQlpZiAoJHJlc3VsdCAmJiAoJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpKSB7CgkJCXJldHVybiAkcm93WydhdHRyaWJ1dGVfdmFsdWUnXTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gJGRlZmF1bHQ7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gRGlzcGxheUltYWdlKCRpbWFnZSwkdGl0bGU9JycpCgl7CgkJJGNvbmZpZyA9ICYkdGhpcy0+Z2V0Q29uZmlnKCk7CgkJCgkJcmV0dXJuICc8aW1nIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9NQ0ZhY3RvcnkvaW1hZ2VzLycuJGltYWdlLiciIHRpdGxlPSInLiR0aXRsZS4nIiBhbHQ9IicuJHRpdGxlLiciIC8+JzsKCQkKLy8JCSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJ0VkaXQnLCAnJywgJycsICdzeXN0ZW1pY29uJykKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldEltYWdlKCRpbWFnZSkKCXsKCQkkY29uZmlnID0gJiR0aGlzLT5nZXRDb25maWcoKTsKCQlyZXR1cm4gJGNvbmZpZ1sncm9vdF91cmwnXSAuICcvbW9kdWxlcy9NQ0ZhY3RvcnkvaW1hZ2VzLycgLiAkaW1hZ2U7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldEF0dHJpYnV0ZSgkbmFtZSwgJHZhbHVlKSB7CgkJJGRiID0gJHRoaXMtPmdldERiKCk7CgkJJHJlc3VsdCA9ICRkYi0+ZXhlY3V0ZSgnU0VMRUNUIGlkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X2F0dHJpYnV0ZXMgV0hFUkUgYXR0cmlidXRlX25hbWUgPSA/JywgYXJyYXkoJG5hbWUpKTsKCQlpZiAoJHJlc3VsdCAmJiAoJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpKSB7CgkJCSRkYi0+ZXhlY3V0ZSgnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9hdHRyaWJ1dGVzIFNFVCBhdHRyaWJ1dGVfdmFsdWUgPSA/IFdIRVJFIGlkID0gPycsIGFycmF5KCR2YWx1ZSwgJHJvd1snaWQnXSkpOwoJCX0gZWxzZSB7CgkJCSRkYi0+ZXhlY3V0ZSgnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X2F0dHJpYnV0ZXMgU0VUIGlkID0gPywgYXR0cmlidXRlX25hbWUgPSA/LCBhdHRyaWJ1dGVfdmFsdWUgPSA/JywgYXJyYXkoJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9hdHRyaWJ1dGVzX3NlcScpLCAkbmFtZSwgJHZhbHVlKSk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkgewoJCSRodG1sID0gJyc7CgkJJGh0bWwgLj0gJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IicuICR0aGlzLT5jb25maWdbJ3Jvb3RfdXJsJ10gLiAnL21vZHVsZXMvTUNGYWN0b3J5L2pxdWVyeS9zbW9vdGhuZXNzL2pxdWVyeS11aS0xLjguNC5jdXN0b20uY3NzIiAvPic7CgkJCS8vICRodG1sICA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInIC4gJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXSAuICcvbW9kdWxlcy9NQ0ZhY3RvcnkvanMvanF1ZXJ5LTEuMy4yLm1pbi5qcyI+PC9zY3JpcHQ+JzsKCQkJLy8gCQkJJGh0bWwgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5qUXVlcnkubm9Db25mbGljdCgpOzwvc2NyaXB0Pic7CgkJCS8vIFRPRE8gOiBDSEVDSyBUSE9TRSBMSU5FUy4uLgoJCQkvLyBTZWVtcyB1c2VsZXNzCgkJCS8vCSRodG1sIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInIC4gJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXSAuICcvbW9kdWxlcy9UaW55TUNFL3RpbnltY2UvanNjcmlwdHMvdGlueV9tY2UvdGlueV9tY2UuanMiPjwvc2NyaXB0Pic7CgkJCS8vCSRodG1sIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInIC4gJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXSAuICcvdG1wL3Rpbnljb25maWcuanMiPjwvc2NyaXB0Pic7CgkJCXJldHVybiAkaHRtbDsKCQl9CgkKCXN0YXRpYyAkY291bnRyaWVzID0gYXJyYXkoCgkJJ0FEJyA9PiAnQW5kb3JyYScsCgkJJ0FFJyA9PiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLAoJCSdBRicgPT4gJ0FmZ2hhbmlzdGFuJywKCQknQUcnID0+ICdBbnRpZ3VhIGFuZCBCYXJidWRhJywKCQknQUknID0+ICdBbmd1aWxsYScsCgkJJ0FMJyA9PiAnQWxiYW5pYScsCgkJJ0FNJyA9PiAnQXJtZW5pYScsCgkJJ0FOJyA9PiAnTmV0aGVybGFuZHMgQW50aWxsZXMnLAoJCSdBTycgPT4gJ0FuZ29sYScsCgkJJ0FRJyA9PiAnQW50YXJjdGljYScsCgkJJ0FSJyA9PiAnQXJnZW50aW5hJywKCQknQVMnID0+ICdBbWVyaWNhbiBTYW1vYScsCgkJJ0FUJyA9PiAnQXVzdHJpYScsCgkJJ0FVJyA9PiAnQXVzdHJhbGlhJywKCQknQVcnID0+ICdBcnViYScsCgkJJ0FaJyA9PiAnQXplcmJhaWphbicsCgkJJ0JBJyA9PiAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYScsCgkJJ0JCJyA9PiAnQmFyYmFkb3MnLAoJCSdCRCcgPT4gJ0JhbmdsYWRlc2gnLAoJCSdCRScgPT4gJ0JlbGdpdW0nLAoJCSdCRicgPT4gJ0J1cmtpbmEgRmFzbycsCgkJJ0JHJyA9PiAnQnVsZ2FyaWEnLAoJCSdCSCcgPT4gJ0JhaHJhaW4nLAoJCSdCSScgPT4gJ0J1cnVuZGknLAoJCSdCSicgPT4gJ0JlbmluJywKCQknQk0nID0+ICdCZXJtdWRhJywKCQknQk4nID0+ICdCcnVuZWknLAoJCSdCTycgPT4gJ0JvbGl2aWEnLAoJCSdCUicgPT4gJ0JyYXppbCcsCgkJJ0JTJyA9PiAnQmFoYW1hcycsCgkJJ0JUJyA9PiAnQmh1dGFuJywKCQknQlYnID0+ICdCb3V2ZXQgSXNsYW5kJywKCQknQlcnID0+ICdCb3Rzd2FuYScsCgkJJ0JZJyA9PiAnQmVsYXJ1cycsCgkJJ0JaJyA9PiAnQmVsaXplJywKCQknQ0EnID0+ICdDYW5hZGEnLAoJCSdDQycgPT4gJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJywKCQknQ0QnID0+ICdEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSBDb25nbycsCgkJJ0NGJyA9PiAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJywKCQknQ0cnID0+ICdDb25nbycsCgkJJ0NIJyA9PiAnU3dpdHplcmxhbmQnLAoJCSdDSScgPT4gJ0PDtHRlIGRcJ0l2b2lyZScsCgkJJ0NLJyA9PiAnQ29vayBJc2xhbmRzJywKCQknQ0wnID0+ICdDaGlsZScsCgkJJ0NNJyA9PiAnQ2FtZXJvb24nLAoJCSdDTicgPT4gJ0NoaW5hJywKCQknQ08nID0+ICdDb2xvbWJpYScsCgkJJ0NSJyA9PiAnQ29zdGEgUmljYScsCgkJJ0NVJyA9PiAnQ3ViYScsCgkJJ0NWJyA9PiAnQ2FwZSBWZXJkZScsCgkJJ0NYJyA9PiAnQ2hyaXN0bWFzIElzbGFuZCcsCgkJJ0NZJyA9PiAnQ3lwcnVzJywKCQknQ1onID0+ICdDemVjaCBSZXB1YmxpYycsCgkJJ0RFJyA9PiAnR2VybWFueScsCgkJJ0RKJyA9PiAnRGppYm91dGknLAoJCSdESycgPT4gJ0Rlbm1hcmsnLAoJCSdETScgPT4gJ0RvbWluaWNhJywKCQknRE8nID0+ICdEb21pbmljYW4gUmVwdWJsaWMnLAoJCSdEWicgPT4gJ0FsZ2VyaWEnLAoJCSdFQycgPT4gJ0VjdWFkb3InLAoJCSdFRScgPT4gJ0VzdG9uaWEnLAoJCSdFRycgPT4gJ0VneXB0JywKCQknRUgnID0+ICdXZXN0ZXJuIFNhaGFyYScsCgkJJ0VSJyA9PiAnRXJpdHJlYScsCgkJJ0VTJyA9PiAnU3BhaW4nLAoJCSdFVCcgPT4gJ0V0aGlvcGlhJywKCQknRkknID0+ICdGaW5sYW5kJywKCQknRkonID0+ICdGaWppJywKCQknRksnID0+ICdGYWxrbGFuZCBJc2xhbmRzJywKCQknRk0nID0+ICdNaWNyb25lc2lhJywKCQknRk8nID0+ICdGYXJvZSBJc2xhbmRzJywKCQknRlInID0+ICdGcmFuY2UnLAoJCSdHQScgPT4gJ0dhYm9uJywKCQknR0InID0+ICdVbml0ZWQgS2luZ2RvbScsCgkJJ0dEJyA9PiAnR3JlbmFkYScsCgkJJ0dFJyA9PiAnR2VvcmdpYScsCgkJJ0dGJyA9PiAnRnJlbmNoIEd1aWFuYScsCgkJJ0dIJyA9PiAnR2hhbmEnLAoJCSdHSScgPT4gJ0dpYnJhbHRhcicsCgkJJ0dMJyA9PiAnR3JlZW5sYW5kJywKCQknR00nID0+ICdHYW1iaWEnLAoJCSdHTicgPT4gJ0d1aW5lYScsCgkJJ0dQJyA9PiAnR3VhZGVsb3VwZScsCgkJJ0dRJyA9PiAnRXF1YXRvcmlhbCBHdWluZWEnLAoJCSdHUicgPT4gJ0dyZWVjZScsCgkJJ0dTJyA9PiAnU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMnLAoJCSdHVCcgPT4gJ0d1YXRlbWFsYScsCgkJJ0dVJyA9PiAnR3VhbScsCgkJJ0dXJyA9PiAnR3VpbmVhLUJpc3NhdScsCgkJJ0dZJyA9PiAnR3V5YW5hJywKCQknSEsnID0+ICdIb25nIEtvbmcgUy5BLlIuLCBDaGluYScsCgkJJ0hNJyA9PiAnSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzJywKCQknSE4nID0+ICdIb25kdXJhcycsCgkJJ0hSJyA9PiAnQ3JvYXRpYScsCgkJJ0hUJyA9PiAnSGFpdGknLAoJCSdIVScgPT4gJ0h1bmdhcnknLAoJCSdJRCcgPT4gJ0luZG9uZXNpYScsCgkJJ0lFJyA9PiAnSXJlbGFuZCcsCgkJJ0lMJyA9PiAnSXNyYWVsJywKCQknSU4nID0+ICdJbmRpYScsCgkJJ0lPJyA9PiAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JywKCQknSVEnID0+ICdJcmFxJywKCQknSVInID0+ICdJcmFuJywKCQknSVMnID0+ICdJY2VsYW5kJywKCQknSVQnID0+ICdJdGFseScsCgkJJ0pNJyA9PiAnSmFtYWljYScsCgkJJ0pPJyA9PiAnSm9yZGFuJywKCQknSlAnID0+ICdKYXBhbicsCgkJJ0tFJyA9PiAnS2VueWEnLAoJCSdLRycgPT4gJ0t5cmd5enN0YW4nLAoJCSdLSCcgPT4gJ0NhbWJvZGlhJywKCQknS0knID0+ICdLaXJpYmF0aScsCgkJJ0tNJyA9PiAnQ29tb3JvcycsCgkJJ0tOJyA9PiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJywKCQknS1AnID0+ICdOb3J0aCBLb3JlYScsCgkJJ0tSJyA9PiAnU291dGggS29yZWEnLAoJCSdLVycgPT4gJ0t1d2FpdCcsCgkJJ0tZJyA9PiAnQ2F5bWFuIElzbGFuZHMnLAoJCSdLWicgPT4gJ0themFraHN0YW4nLAoJCSdMQScgPT4gJ0xhb3MnLAoJCSdMQicgPT4gJ0xlYmFub24nLAoJCSdMQycgPT4gJ1NhaW50IEx1Y2lhJywKCQknTEknID0+ICdMaWVjaHRlbnN0ZWluJywKCQknTEsnID0+ICdTcmkgTGFua2EnLAoJCSdMUicgPT4gJ0xpYmVyaWEnLAoJCSdMUycgPT4gJ0xlc290aG8nLAoJCSdMVCcgPT4gJ0xpdGh1YW5pYScsCgkJJ0xVJyA9PiAnTHV4ZW1ib3VyZycsCgkJJ0xWJyA9PiAnTGF0dmlhJywKCQknTFknID0+ICdMaWJ5YScsCgkJJ01BJyA9PiAnTW9yb2NjbycsCgkJJ01DJyA9PiAnTW9uYWNvJywKCQknTUQnID0+ICdNb2xkb3ZhJywKCQknTUcnID0+ICdNYWRhZ2FzY2FyJywKCQknTUgnID0+ICdNYXJzaGFsbCBJc2xhbmRzJywKCQknTUsnID0+ICdNYWNlZG9uaWEnLAoJCSdNTCcgPT4gJ01hbGknLAoJCSdNTScgPT4gJ015YW5tYXInLAoJCSdNTicgPT4gJ01vbmdvbGlhJywKCQknTU8nID0+ICdNYWNhbyBTLkEuUi4sIENoaW5hJywKCQknTVAnID0+ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnLAoJCSdNUScgPT4gJ01hcnRpbmlxdWUnLAoJCSdNUicgPT4gJ01hdXJpdGFuaWEnLAoJCSdNUycgPT4gJ01vbnRzZXJyYXQnLAoJCSdNVCcgPT4gJ01hbHRhJywKCQknTVUnID0+ICdNYXVyaXRpdXMnLAoJCSdNVicgPT4gJ01hbGRpdmVzJywKCQknTVcnID0+ICdNYWxhd2knLAoJCSdNWCcgPT4gJ01leGljbycsCgkJJ01ZJyA9PiAnTWFsYXlzaWEnLAoJCSdNWicgPT4gJ01vemFtYmlxdWUnLAoJCSdOQScgPT4gJ05hbWliaWEnLAoJCSdOQycgPT4gJ05ldyBDYWxlZG9uaWEnLAoJCSdORScgPT4gJ05pZ2VyJywKCQknTkYnID0+ICdOb3Jmb2xrIElzbGFuZCcsCgkJJ05HJyA9PiAnTmlnZXJpYScsCgkJJ05JJyA9PiAnTmljYXJhZ3VhJywKCQknTkwnID0+ICdOZXRoZXJsYW5kcycsCgkJJ05PJyA9PiAnTm9yd2F5JywKCQknTlAnID0+ICdOZXBhbCcsCgkJJ05SJyA9PiAnTmF1cnUnLAoJCSdOVScgPT4gJ05pdWUnLAoJCSdOWicgPT4gJ05ldyBaZWFsYW5kJywKCQknT00nID0+ICdPbWFuJywKCQknUEEnID0+ICdQYW5hbWEnLAoJCSdQRScgPT4gJ1BlcnUnLAoJCSdQRicgPT4gJ0ZyZW5jaCBQb2x5bmVzaWEnLAoJCSdQRycgPT4gJ1BhcHVhIE5ldyBHdWluZWEnLAoJCSdQSCcgPT4gJ1BoaWxpcHBpbmVzJywKCQknUEsnID0+ICdQYWtpc3RhbicsCgkJJ1BMJyA9PiAnUG9sYW5kJywKCQknUE0nID0+ICdTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uJywKCQknUE4nID0+ICdQaXRjYWlybicsCgkJJ1BSJyA9PiAnUHVlcnRvIFJpY28nLAoJCSdQUycgPT4gJ1BhbGVzdGluaWFuIFRlcnJpdG9yeScsCgkJJ1BUJyA9PiAnUG9ydHVnYWwnLAoJCSdQVycgPT4gJ1BhbGF1JywKCQknUFknID0+ICdQYXJhZ3VheScsCgkJJ1FBJyA9PiAnUWF0YXInLAoJCSdSRScgPT4gJ1LDqXVuaW9uJywKCQknUlMnID0+ICdTZXJiaWEnLAoJCSdSTycgPT4gJ1JvbWFuaWEnLAoJCSdSVScgPT4gJ1J1c3NpYScsCgkJJ1JXJyA9PiAnUndhbmRhJywKCQknU0EnID0+ICdTYXVkaSBBcmFiaWEnLAoJCSdTQicgPT4gJ1NvbG9tb24gSXNsYW5kcycsCgkJJ1NDJyA9PiAnU2V5Y2hlbGxlcycsCgkJJ1NEJyA9PiAnU3VkYW4nLAoJCSdTRScgPT4gJ1N3ZWRlbicsCgkJJ1NHJyA9PiAnU2luZ2Fwb3JlJywKCQknU0gnID0+ICdTYWludCBIZWxlbmEnLAoJCSdTSScgPT4gJ1Nsb3ZlbmlhJywKCQknU0onID0+ICdTdmFsYmFyZCBhbmQgSmFuIE1heWVuJywKCQknU0snID0+ICdTbG92YWtpYScsCgkJJ1NMJyA9PiAnU2llcnJhIExlb25lJywKCQknU00nID0+ICdTYW4gTWFyaW5vJywKCQknU04nID0+ICdTZW5lZ2FsJywKCQknU08nID0+ICdTb21hbGlhJywKCQknU1AnID0+ICdTZXJiaWEnLAoJCSdTUicgPT4gJ1N1cmluYW1lJywKCQknU1QnID0+ICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnLAoJCSdTVicgPT4gJ0VsIFNhbHZhZG9yJywKCQknU1knID0+ICdTeXJpYScsCgkJJ1NaJyA9PiAnU3dhemlsYW5kJywKCQknVEMnID0+ICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnLAoJCSdURCcgPT4gJ0NoYWQnLAoJCSdURicgPT4gJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcycsCgkJJ1RHJyA9PiAnVG9nbycsCgkJJ1RIJyA9PiAnVGhhaWxhbmQnLAoJCSdUSicgPT4gJ1RhamlraXN0YW4nLAoJCSdUSycgPT4gJ1Rva2VsYXUnLAoJCSdUTCcgPT4gJ1RpbW9yLUxlc3RlJywKCQknVE0nID0+ICdUdXJrbWVuaXN0YW4nLAoJCSdUTicgPT4gJ1R1bmlzaWEnLAoJCSdUTycgPT4gJ1RvbmdhJywKCQknVFInID0+ICdUdXJrZXknLAoJCSdUVCcgPT4gJ1RyaW5pZGFkIGFuZCBUb2JhZ28nLAoJCSdUVicgPT4gJ1R1dmFsdScsCgkJJ1RXJyA9PiAnVGFpd2FuJywKCQknVFonID0+ICdUYW56YW5pYScsCgkJJ1VBJyA9PiAnVWtyYWluZScsCgkJJ1VHJyA9PiAnVWdhbmRhJywKCQknVU0nID0+ICdVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnLAoJCSdVUycgPT4gJ1VuaXRlZCBTdGF0ZXMnLAoJCSdVWScgPT4gJ1VydWd1YXknLAoJCSdVWicgPT4gJ1V6YmVraXN0YW4nLAoJCSdWQScgPT4gJ1ZhdGljYW4nLAoJCSdWQycgPT4gJ1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJywKCQknVkUnID0+ICdWZW5lenVlbGEnLAoJCSdWRycgPT4gJ0JyaXRpc2ggVmlyZ2luIElzbGFuZHMnLAoJCSdWSScgPT4gJ1UuUy4gVmlyZ2luIElzbGFuZHMnLAoJCSdWTicgPT4gJ1ZpZXRuYW0nLAoJCSdWVScgPT4gJ1ZhbnVhdHUnLAoJCSdXRicgPT4gJ1dhbGxpcyBhbmQgRnV0dW5hJywKCQknV1MnID0+ICdTYW1vYScsCgkJJ1lFJyA9PiAnWWVtZW4nLAoJCSdZVCcgPT4gJ01heW90dGUnLAoJCSdZVScgPT4gJ1l1Z29zbGF2aWEnLAoJCSdaQScgPT4gJ1NvdXRoIEFmcmljYScsCgkJJ1pNJyA9PiAnWmFtYmlhJywKCQknWlcnID0+ICdaaW1iYWJ3ZScsCgkJCgkJLy8gVE9ETyA6IENIRUNLIEZPUiBLT1NPVk8gSVNPIENPREUuIElOIFRIRSBNRUFOVElNRSwgV0UnTEwgVVNFIFRIRSBDSUEgV29ybGQgRmFjdGJvb2sgY29kZS4KCQknS1YnID0+ICdLb3Nvdm8nCgkpOwoJCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJGZsZHMgPSBhcnJheSgKCSdpZCBJIEtFWScsCgknbW9kdWxlX25hbWUgQygyNTUpJywKCSdtb2R1bGVfZnJpZW5kbHluYW1lIEMoMjU1KScsCgknbW9kdWxlX3ZlcnNpb24gSScsCgkncGFyZW50X21vZHVsZSBJJywKCSdhZG1pbl9zZWN0aW9uIEMoMjU1KScsCgknY3JlYXRlZF9hdCBEJywKCSdjcmVhdGVkX2J5IEknLAoJJ3VwZGF0ZWRfYXQgRCcsCgkndXBkYXRlZF9ieSBJJywKCSd0aXRsZV9sYWJlbCBDKDI1NSknLAoJJ3Nob3dfbW9kdWxlIEknLAoJJ2lzX3VzZXJfbW9kdWxlIEknLAoJJ2lzX3Byb3RlY3RlZCBJJywKCSdmaWxlc19wYXRoIFhMJywJCgknZXh0cmFfZmllbGRzIFgnLAoJJ3N0cnVjdHVyZSBYJywKCSdmaWx0ZXJzIFgnLAoJJ21vZHVsZV9sb2dpYwlYTCcsCgkndGVtcGxhdGVzX2RhdGEgWEwnCik7CiRzcWwgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcycsIGltcGxvZGUoJywnLCAkZmxkcyksIGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJykpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXNfc2VxJyk7CgokZmxkcyA9IGFycmF5KAoJJ2lkIEkgS0VZIEFVVE8nLAkKCSdjcmVhdGVkX2F0IEQnLAoJJ2NyZWF0ZWRfYnkgSScsCgkndXBkYXRlZF9hdCBEJywKCSd1cGRhdGVkX2J5IEknLAoJJ21vZHVsZV9pZCBJJywKCSduYW1lIEMoMjU1KScsCgknY29kZSBYTCcsCgknaXNfcHVibGljIEknLAoJJ2hhdmVfcGVybWlzc2lvbiBJJwopOwoKJHNxbCA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVfYWN0aW9ucycsIGltcGxvZGUoJywnLCAkZmxkcyksIGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJykpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwoKJGZsZHMgPSBhcnJheSgKCSdpZCBJIEtFWScsCgknYXR0cmlidXRlX25hbWUgQygyNTUpJywKCSdhdHRyaWJ1dGVfdmFsdWUgQygyNTUpJwopOwokc3FsID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X2F0dHJpYnV0ZXMnLCBpbXBsb2RlKCcsJywgJGZsZHMpLCBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsKJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9hdHRyaWJ1dGVzX3NlcScpOwoKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBNQ0ZhY3RvcnknLCAnTWFuYWdlIE1DIEZhY3RvcnknKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdDb250ZW50RWRpdFBvc3QnLCBmYWxzZSk7CiR0aGlzLT5BdWRpdCgwLCAkdGhpcy0+R2V0TmFtZSgpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJHNxbCA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwokZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzX3NlcScpOwoKJHNxbCA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlX2FjdGlvbnMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsKCiRzcWwgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X2F0dHJpYnV0ZXMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsKJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfYXR0cmlidXRlc19zZXEnKTsKCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNYW5hZ2UgTUNGYWN0b3J5Jyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnQ29udGVudEVkaXRQb3N0Jyk7CgoKJHRoaXMtPkF1ZGl0KDAsICR0aGlzLT5nZXRGcmllbmRseU5hbWUoKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7Cgpzd2l0Y2godHJ1ZSkgewoJY2FzZSB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcwLjEnLCAnPCcpOgoJCSRzcWwgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXMnLCAnZmlsdGVycyBYJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsKCWNhc2UgdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCAnMC4zJywgJzwnKToKCQkkc3FsID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzJywgJ3BhcmVudF9tb2R1bGUgSScpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbCk7CgljYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzEuMC4xJywgJzwnKToKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTWFuYWdlIE1DRmFjdG9yeScsICdNYW5hZ2UgTUNGYWN0b3J5Jyk7CgljYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzEuMScsICc8Jyk6CgkJJGZsZHMgPSBhcnJheSgKCQkJJ2lkIEkgS0VZJywKCQkJJ2F0dHJpYnV0ZV9uYW1lIEMoMjU1KScsCgkJCSdhdHRyaWJ1dGVfdmFsdWUgQygyNTUpJwoJCSk7CgkJJHNxbCA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9hdHRyaWJ1dGVzJywgaW1wbG9kZSgnLCcsICRmbGRzKSwgYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X2F0dHJpYnV0ZXNfc2VxJyk7CgkJJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdDb250ZW50RWRpdFBvc3QnLCBmYWxzZSk7CgljYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzIuNy4xJywgJzwnKToKCQkkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwoJCSRtb2R1bGVzID0gTUNGTW9kdWxlOjpkb1NlbGVjdCgkYyk7CgkJZm9yZWFjaCAoJG1vZHVsZXMgYXMgJG1vZHVsZSkKCQl7CgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIHN0cnRvbG93ZXIoJG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpKSwgJ2Z1bGxfdGV4dF9zZWFyY2ggWEwnKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQl9CgljYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzIuOC42JywgJzwnKToKCQkkc3FsID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzJywgJ3Nob3dfbW9kdWxlIEknKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwoJY2FzZSB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcyLjkuMScsICc8Jyk6CgkJJHNxbCA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcycsICdtb2R1bGVfbG9naWMJWEwnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwoJY2FzZSB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcyLjkuMTUnLCAnPCcpOgoJCSRzcWwgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXMnLCAnaXNfdXNlcl9tb2R1bGUJSScpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbCk7CgljYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzIuMTAuMTAnLCAnPCcpOgoJCSRmbGRzID0gYXJyYXkoCgkJCSdpZCBJIEtFWSBBVVRPJywJCgkJCSdjcmVhdGVkX2F0IEQnLAoJCQknY3JlYXRlZF9ieSBJJywKCQkJJ3VwZGF0ZWRfYXQgRCcsCgkJCSd1cGRhdGVkX2J5IEknLAoJCQknbW9kdWxlX2lkIEknLAoJCQknbmFtZSBDKDI1NSknLAoJCQknY29kZSBYTCcsCgkJCSdpc19wdWJsaWMgSScsCgkJCSdoYXZlX3Blcm1pc3Npb24gSScKCQkpOwoJCSRzcWwgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlX2FjdGlvbnMnLCBpbXBsb2RlKCcsJywgJGZsZHMpLCBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwoJCSRzcWwgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWNmYWN0b3J5X21vZHVsZXMnLCAndGVtcGxhdGVzX2RhdGEJWEwnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwoJY2FzZSB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcyLjEwLjEzJywgJzwnKToKCQkkc3FsID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzJywgJ2FkbWluX3NlY3Rpb24gQygyNTUpJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsJCgljYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzIuMTEuNCcsICc8Jyk6CgkJJHNxbCA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcycsICdpc19wcm90ZWN0ZWQgSScpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbCk7CQkKCQkkc3FsID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzJywgJ2ZpbGVzX3BhdGggWEwnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwkKCWNhc2UgdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCAnMi4xMi43JywgJzwnKToKCQkJJHNxbCA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tY2ZhY3RvcnlfbW9kdWxlcycsICd0aXRsZV9sYWJlbCBDKDI1NSknKTsKCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsJCQoJCQkkc3FsID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21jZmFjdG9yeV9tb2R1bGVzJywgJ3N0cnVjdHVyZSBYTCcpOwoJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWwpOwkJCgkKfQoKJHRoaXMtPkF1ZGl0KDAsICR0aGlzLT5nZXRGcmllbmRseU5hbWUoKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/plugins/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/plugins/function.country_name.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIHNtYXJ0eV9jbXNfZnVuY3Rpb25fY291bnRyeV9uYW1lKCRwYXJhbXMsICYkc21hcnR5KSB7CglpZiAoJHBhcmFtc1snY29kZSddKSB7CgkJJGNvZGUgPSBzdHJ0b3VwcGVyKCRwYXJhbXNbJ2NvZGUnXSk7CgkJaWYgKGlzc2V0KE1DRmFjdG9yeTo6JGNvdW50cmllc1skY29kZV0pKSB7CgkJCXJldHVybiBNQ0ZhY3Rvcnk6OiRjb3VudHJpZXNbJGNvZGVdOwoJCX0KCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/smarty/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/.DS_Store</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAAAAUJ1ZDEAABgAAAAIAAAAGAAAABALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAQAAAABAAAQAABsAGEAdABlAHNJbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEERFNEQgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAgAAAAYAAAAAAAAAABAAAAgAAAAAEAAAEAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAgAAAAAAAAAAAEAACAAAAAAAQAAQAAAAAABAACAAAAAAAEAAQAAAAAAAQACAAAAAAABAAQAAAAAAAEACAAAAAAAAQAQAAAAAAABACAAAAAAAAEAQAAAAAAAAQCAAAAAAAABAQAAAAAAAAECAAAAAAAAAQQAAAAAAAABCAAAAAAAAAEQAAAAAAAAASAAAAAAAAABQAAAAAAAAABsYWJlbFRraW5kV3ZlcnNpb25UbmFtZVxkYXRlTW9kaWZpZWTUGRobHB0eDA1VaW5kZXhVd2lkdGhZYXNjZW5kaW5nV3Zpc2libGUQBxEBLAkI1BkaGxwiIw0NEAgQyAgI1BkaGxwnKA0NEAIQtQgI1BkaGxwsLQ0MEAMQYQgJ1BkaGxwxMgwNEAUQZAkI1BkaGxw2NwwMEAQQcwkJ1BkaGxw7PAwNEAYQSwkI1BkaG0BBHgwMV3Zpc2libGUQAAkJ1BkaGxxFKA0MEAEICSNAeVAAAAAAACNAKAAAAAAAACMAAAAAAAAAAAkACAAdACYAOABMAFQAZgBvAIEAjACfALQAvQC+AL8A0gDbAOoA9gD7AQEBBgEOARMBIAEpAS8BNQE/AUcBSQFMAU0BTgFXAVkBWwFcAV0BZgFoAWoBawFsAXUBdwF5AXoBewGEAYYBiAGJAYoBkwGVAZcBmAGZAaIBpAGmAacBqAGxAbkBuwG8Ab0BxgHIAckBygHTAdwB5QAAAAAAAAIBAAAAAAAAAEwAAAAAAAAAAAAAAAAAAAHmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/templates/.DS_Store</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAAAAUJ1ZDEAACAAAAAIAAAAIAAAABAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAACoAAAABAAAQAABvAG4ALgBhAHMAcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAABsAYQBjAHQAaQBvAG4ALgBhAHMAcwBpAGcAbgB0AGkAdABsAGUAcwAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAABGAAAAKP///////wAAAAAAFwBhAGMAdABpAG8AbgAuAGMAYQBsAGUAbgBkAGEAcgAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAADMAAAAKP///////wAAAAAAFABhAGMAdABpAG8AbgAuAGMAbwB1AG4AdAAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAAFSAAAAKP///////wAAAAAAFgBhAGMAdABpAG8AbgAuAGQAZQBmAGEAdQBsAHQALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAB2AAAACj///////8AAAAAABsAYQBjAHQAaQBvAG4ALgBkAGUAZgBhAHUAbAB0AGEAZABtAGkAbgAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAABGAAAAmP///////wAAAAAAFQBhAGMAdABpAG8AbgAuAGQAZQBsAGUAdABlAC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAAAMwAAACY////////AAAAAAAdAGEAYwB0AGkAbwBuAC4AZABlAGwAZQB0AGUAdABlAG0AcABsAGEAdABlAC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAAAVIAAACY////////AAAAAAAVAGEAYwB0AGkAbwBuAC4AZABlAHQAYQBpAGwALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAB2AAAAJj///////8AAAAAABcAYQBjAHQAaQBvAG4ALgBkAG8AdwBuAGwAbwBhAGQALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAARgAAAQj///////8AAAAAABMAYQBjAHQAaQBvAG4ALgBlAGQAaQB0AC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAAAMwAAAEI////////AAAAAAAbAGEAYwB0AGkAbwBuAC4AZQBkAGkAdAB0AGUAbQBwAGwAYQB0AGUALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAABUgAAAQj///////8AAAAAABUAYQBjAHQAaQBvAG4ALgBlAHgAcABvAHIAdAAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAABGAAABeP///////wAAAAAAGQBhAGMAdABpAG8AbgAuAGUAeABwAG8AcgB0AF8AZABhAHQALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAB2AAAAQj///////8AAAAAABcAYQBjAHQAaQBvAG4ALgBmAGUAZgBpAGwAdABlAHIALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAAzAAAAXj///////8AAAAAABUAYQBjAHQAaQBvAG4ALgBnAGUAdAB1AHIAbAAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAAFSAAABeP///////wAAAAAAEwBhAGMAdABpAG8AbgAuAGkAYwBhAGwALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAB2AAAAXj///////8AAAAAABYAYQBjAHQAaQBvAG4ALgBsAGkAbgBrAF8AdABvAC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAAAEYAAAHo////////AAAAAAAcAGEAYwB0AGkAbwBuAC4AbQBvAGQAdQBsAGUAXwBhAGMAdABpAG8AbgAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAADMAAAB6P///////wAAAAAAFwBhAGMAdABpAG8AbgAuAG0AbwB2AGUAZABvAHcAbgAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAAFSAAAB6P///////wAAAAAAFQBhAGMAdABpAG8AbgAuAG0AbwB2AGUAdQBwAC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAAAdgAAAHo////////AAAAAAAWAGEAYwB0AGkAbwBuAC4AcAB1AGIAbABpAHMAaAAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAABGAAACWP///////wAAAAAAEgBhAGMAdABpAG8AbgAuAHIAcwBzAC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAAAMwAAAJY////////AAAAAAAVAGEAYwB0AGkAbwBuAC4AcwBlAGEAcgBjAGgALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAABUgAAAlj///////8AAAAAABcAYQBjAHQAaQBvAG4ALgB0AGEAZwBjAGwAbwB1AGQALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAB2AAAAlj///////8AAAAAABcAYQBjAHQAaQBvAG4ALgB0AGUAbQBwAGwAYQB0AGUALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAABUgAAAsj///////8AAAAAAB4AYQBjAHQAaQBvAG4ALgB0AGUAbQBwAGwAYQB0AGUAXwBkAGUAbABlAHQAZQAuAHAAaABwAC4AdABwAGxJbG9jYmxvYgAAABAAAABGAAACyP///////wAAAAAAHABhAGMAdABpAG8AbgAuAHQAZQBtAHAAbABhAHQAZQBfAGUAZABpAHQALgBwAGgAcAAuAHQAcABsSWxvY2Jsb2IAAAAQAAAAzAAAAsj///////8AAAAAABwAYQBjAHQAaQBvAG4ALgB1AHAAZABhAHQAZQBPAGIAagBlAGMAdABzAC4AcABoAHAALgB0AHAAbElsb2NibG9iAAAAEAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAACALAAAARQAAEAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.assigntitles.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVzJywge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6Z2V0VGl0bGVzKCkpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.calendar.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiRjLT5hZGQoJ3B1Ymxpc2hlZCcsICcxJyk7Cgp7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpidWlsZEZyb250ZW5kRmlsdGVycygkYywgJHBhcmFtcyk7Cnt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6Omdsb2JhbEZyb250ZW5kRmlsdGVycygkYyk7CgovLyBEZWZpbmUgc2NvcGUKCmlmKGlzc2V0KCRwYXJhbXNbJ2ZvcmdldF9zY29wZSddKSkKewogIHVuc2V0KCRfU0VTU0lPTlsnbW9kdWxlcyddWyd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19J11bJ2NhbGVuZGFyJ11bJ3Njb3BlJ10pOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snc2NvcGUnXSkpCnsKCSRzY29wZSA9ICRwYXJhbXNbJ3Njb3BlJ107Cn0KZWxzZWlmKGlzc2V0KCRfU0VTU0lPTlsnbW9kdWxlcyddWyd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19J11bJ2NhbGVuZGFyJ11bJ3Njb3BlJ10pKQp7CiAgJHNjb3BlID0gJF9TRVNTSU9OWydtb2R1bGVzJ11bJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nXVsnY2FsZW5kYXInXVsnc2NvcGUnXTsKfQplbHNlCnsKICAkc2NvcGUgPSB0aW1lKCk7Cn0KCmlmKCFpc3NldCgkcGFyYW1zWydmb3JnZXRfc2NvcGUnXSkpCnsKICAkX1NFU1NJT05bJ21vZHVsZXMnXVsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWydjYWxlbmRhciddWydzY29wZSddID0gJHNjb3BlOwp9CgovLyBJbml0IGNhbGVuZGFyCgokY2FsZW5kYXIgPSBuZXcgTUNGQ2FsZW5kYXIoJHNjb3BlKTsKCiRjLT5hZGQoJ3N0YXJ0X2RhdGUnLCBkYXRlKCdZL20vZCcsICRjYWxlbmRhci0+ZW5kX2RhdGUpLCBNQ0ZDcml0ZXJpYTo6TEVTU19FUVVBTCk7CiRjLT5hZGQoJ2VuZF9kYXRlJywgZGF0ZSgnWS9tL2QnLCAkY2FsZW5kYXItPnN0YXJ0X2RhdGUpLCBNQ0ZDcml0ZXJpYTo6R1JFQVRFUl9FUVVBTCk7CgokaXRlbXMgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdCgkYyk7CgokZGV0YWlscGFnZSA9ICRyZXR1cm5pZDsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpIHsKICAgICRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJG5vZGUgPSAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUFsaWFzKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgICBpZiAoJG5vZGUpIHsKICAgICAgICAkY29udGVudCA9ICRub2RlLT5HZXRDb250ZW50KCk7CiAgICAgICAgaWYgKCRjb250ZW50KQogICAgICAgIHsKICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogICAgICAgIGlmICgkbm9kZSkgewogICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKICAgICAgICB9CiAgICB9CiAgICAkcGFyYW1zWydvcmlnaWQnXSA9ICRyZXR1cm5pZDsKfQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RldGFpbHBhZ2UnLCRkZXRhaWxwYWdlKTsKCgovLyBNWCBQcmVsb2FkaW5nCiRpZHMgPSBhcnJheSgpOwpmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pCnsKCSRpZHNbXSA9ICRpdGVtLT5nZXRJZCgpOwp9Ck1YX1h0ZW5kZWRNb2R1bGU6OnByZWxvYWRSZWxhdGVkSXRlbXMoJHRoaXMtPmdldE5hbWUoKSwgJGlkcyk7Cgpmb3JlYWNoICgkaXRlbXMgYXMgJiRpdGVtKSB7CgkkcGFyYW1zWydpdGVtX2lkJ10gPSAkaXRlbS0+Z2V0SWQoKTsKCSRwYXJhbXNbJ3RpdGxlJ10gPSAkaXRlbS0+Z2V0Q29yZVNsdWcoKTsKCSRuZXdwYXJhbXMgPSAkcGFyYW1zOwoJdW5zZXQoJG5ld3BhcmFtc1snc2hvd3RlbXBsYXRlJ10pOwoJdW5zZXQoJG5ld3BhcmFtc1snZGV0YWlscGFnZSddKTsKCXVuc2V0KCRuZXdwYXJhbXNbJ3RlbXBsYXRlJ10pOwoJJGl0ZW0tPmRldGFpbF9saW5rID0gJHRoaXMtPmNyZWF0ZUxpbmsoJGlkLCAnY2FsZW5kYXInLCAkZGV0YWlscGFnZSwgJGNvbnRlbnRzPScnLCAkbmV3cGFyYW1zLCAnJywgdHJ1ZSwgdHJ1ZSk7CgkkaXRlbS0+eHRlbmRlZF9mZWxpc3QgPSBNWF9YdGVuZGVkTW9kdWxlOjpnZXRSZWxhdGVkSXRlbXMoJHRoaXMtPmdldE5hbWUoKSwgJGl0ZW0tPmdldElkKCkpOwp9CnVuc2V0KCRpdGVtKTsKCiRjYWxlbmRhci0+cHJvY2Vzc0V2ZW50cygkaXRlbXMpOwokY2FsZW5kYXItPnByb2Nlc3NDYWxlbmRhcigpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYWxlbmRhcicsICRjYWxlbmRhci0+Y2FsZW5kYXJfdGFibGUpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21jZmNhbGVuZGFyJywgJGNhbGVuZGFyLT5jYWxlbmRhcl90YWJsZSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY3VycmVudF9tb250aCcsICRzY29wZSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlyc3RfZGF5JywkY2FsZW5kYXItPmZpcnN0X2RheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbGFzdF9kYXknLCRjYWxlbmRhci0+bGFzdF9kYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25leHRfbW9udGgnLCAkdGhpcy0+Y3JlYXRlTGluaygkaWQsJ2NhbGVuZGFyJywgJGRldGFpbHBhZ2UsICRjb250ZW50cz0nJywgCglhcnJheV9tZXJnZSgKCQkkcGFyYW1zLCAKCQlhcnJheSgKCQkJJ3Njb3BlJyA9PiBzdHJ0b3RpbWUoJysgMSBNT05USCcsJHNjb3BlKQoJCQkpCgkJKQoJLCAnJywgdHJ1ZSwgdHJ1ZSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmV2aW91c19tb250aCcsICR0aGlzLT5jcmVhdGVMaW5rKCRpZCwgJ2NhbGVuZGFyJywgJGRldGFpbHBhZ2UsICRjb250ZW50cz0nJywgCglhcnJheV9tZXJnZSgKCQkkcGFyYW1zLCAgIAoJCWFycmF5KAoJCQknc2NvcGUnID0+IHN0cnRvdGltZSgnLSAxIE1PTlRIJywgJHNjb3BlKQoJCQkpCgkJKQoJLCAnJywgdHJ1ZSwgdHJ1ZSkpOwoKCmlmIChpc3NldCgkcGFyYW1zWyd2YXInXSkpIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigkcGFyYW1zWyd2YXInXSwgJGl0ZW1zKTsKfSBlbHNlIHsKICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJGl0ZW1zKTsKICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaXRlbXMpOwogICR0aGlzLT5zbWFydHktPmFzc2lnbigne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl8bG93ZXJ9fScsICRpdGVtcyk7CiAgJHBhcmFtc29iaiA9IG5ldyBzdGRDbGFzcygpOwogICRwYXJhbXNvYmotPnBhcmFtcyA9ICRwYXJhbXM7CiAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtY2ZhY3RvcnknLCAkcGFyYW1zb2JqKTsKCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGb3IoJ2NhbGVuZGFyJywgJHBhcmFtcyk7Cn0KCnJldHVybjsKPz4=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.count.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiRjLT5hZGQoJ3B1Ymxpc2hlZCcsICcxJyk7Cgp7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpidWlsZEZyb250ZW5kRmlsdGVycygkYywgJHBhcmFtcyk7Cnt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6Omdsb2JhbEZyb250ZW5kRmlsdGVycygkYyk7CgppZiAoaXNzZXQoJHBhcmFtc1snY3VycmVudHBhZ2UnXSkpIHsKCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2NvbnRlbnRfaWQnKSwgJ3BhZ2VzJyksIE1DRkNyaXRlcmlhOjpJTik7Cn0KaWYgKGlzc2V0KCRwYXJhbXNbJ3BhZ2VzJ10pKSB7CgkkZ2x1ZSA9IGlzc2V0KCRwYXJhbXNbJ2FsbF9wYWdlcyddKSA/ICdBTkQnIDogJ09SJzsKCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBleHBsb2RlKCcsJywgJHBhcmFtc1sncGFnZXMnXSksICdwYWdlcycsICRnbHVlKSwgTUNGQ3JpdGVyaWE6OklOKTsKfQppZiAoaXNzZXQoJHBhcmFtc1snb3B0aW9ucyddKSkgewoJJGdsdWUgPSBpc3NldCgkcGFyYW1zWydhbGxfb3B0aW9ucyddKSA/ICdBTkQnIDogJ09SJzsKCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBleHBsb2RlKCcsJywgJHBhcmFtc1snb3B0aW9ucyddKSwgJ29wdGlvbnMnLCAkZ2x1ZSksIE1DRkNyaXRlcmlhOjpJTik7Cn0KCnt7Zm9yZWFjaCBmcm9tPSRmaWx0ZXJzIGl0ZW09ZmlsdGVyfX0KaWYgKGlzc2V0KCRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSkpIHsKCXt7aWYgaW5fYXJyYXkoJGZpbHRlci50eXBlLCBhcnJheSgnbGVzcycsICdsZXNzX2VxdWFsJywgJ2dyZWF0ZXInLCAnZ3JlYXRlcl9lcXVhbCcpKX19CgkkYy0+YWRkKCdDQVNUKHt7JGZpbHRlci5maWVsZH19IEFTIFVOU0lHTkVEKScsICRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKCXt7ZWxzZX19CgkkYy0+YWRkKCd7eyRmaWx0ZXIuZmllbGR9fScsICRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKCXt7L2lmfX0KfQp7ey9mb3JlYWNofX0KCmlmIChpc3NldCgkcGFyYW1zWydsaW1pdCddKSkgewoJJGMtPnNldExpbWl0KCRwYXJhbXNbJ2xpbWl0J10pOwp9CgplY2hvIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvQ291bnQoJGMpOw==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.default.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CmlmKGlzc2V0KCRwYXJhbXNbJ3Nob3dfdXNlcl9pdGVtcyddKSAmJiBNQ0ZUb29sczo6SXNNb2R1bGVBY3RpdmUoJ0NNU1VzZXJzJykpCnsKCSR1c2VyID0gQ01TVXNlcnM6OmdldFVzZXJPckxvZ2luKCk7CglpZiAoaXNfb2JqZWN0KCR1c2VyKSkKCXsKCQkkYy0+YWRkKCd1c2VyX2lkJywgJHVzZXItPmdldElkKCkpOwoJfQoJZWxzZQoJewoJCSRjLT5hZGQoJ3B1Ymxpc2hlZCcsICcxJyk7Cgl9Cn0KZWxzZQp7CgkkYy0+YWRkKCdwdWJsaXNoZWQnLCAnMScpOwp9CgoKe3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6YnVpbGRGcm9udGVuZEZpbHRlcnMoJGMsICRwYXJhbXMpOwp7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpnbG9iYWxGcm9udGVuZEZpbHRlcnMoJGMsICRwYXJhbXMpOwoKCmlmIChpc3NldCgkcGFyYW1zWydjYWxlbmRhciddKSAmJiBpc3NldCgkcGFyYW1zWydzdGFydF9kYXRlJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2VuZF9kYXRlJ10pKQp7CgkkY2FsZW5kYXIgPSBuZXcgTUNGQ2FsZW5kYXIodGltZSgpKTsKICAkYy0+YWRkKCdzdGFydF9kYXRlJywgJHBhcmFtc1snc3RhcnRfZGF0ZSddLCBNQ0ZDcml0ZXJpYTo6TEVTU19FUVVBTCk7CiAgJGMtPmFkZCgnZW5kX2RhdGUnLCAkcGFyYW1zWydlbmRfZGF0ZSddLCBNQ0ZDcml0ZXJpYTo6R1JFQVRFUl9FUVVBTCk7CgkKfQplbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbGVuZGFyJ10pICYmIGlzc2V0KCRwYXJhbXNbJ21vbnRoX2Zyb21fZGF0ZSddKSkKewogICAkY2FsZW5kYXJfdGltZSA9IHN0cnRvdGltZSgkcGFyYW1zWydtb250aF9mcm9tX2RhdGUnXSk7CiAgICRjYWxlbmRhciA9IG5ldyBNQ0ZDYWxlbmRhcigkY2FsZW5kYXJfdGltZSk7CiAgICRjLT5hZGQoJ3N0YXJ0X2RhdGUnLCBkYXRlKCdZL20vZCcsICRjYWxlbmRhci0+ZW5kX2RhdGUpLCBNQ0ZDcml0ZXJpYTo6TEVTU19FUVVBTCk7CiAgICRjLT5hZGQoJ2VuZF9kYXRlJywgZGF0ZSgnWS9tL2QnLCAkY2FsZW5kYXItPnN0YXJ0X2RhdGUpLCBNQ0ZDcml0ZXJpYTo6R1JFQVRFUl9FUVVBTCk7Cn0KZWxzZWlmICgKCWlzc2V0KCRwYXJhbXNbJ2NhbGVuZGFyJ10pIAoJJiYgCglpc3NldCgkX1NFU1NJT05bJ21vZHVsZXMnXVsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWydjYWxlbmRhciddWydzY29wZSddKQoJJiYKCSghaXNzZXQoJHBhcmFtc1snbmV4dF9ldmVudHMnXSkpCgkmJgoJKCFpc3NldCgkcGFyYW1zWydwcmV2aW91c19ldmVudHMnXSkpCgkpCnsKCSAkY2FsZW5kYXIgPSBuZXcgTUNGQ2FsZW5kYXIoJF9TRVNTSU9OWydtb2R1bGVzJ11bJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nXVsnY2FsZW5kYXInXVsnc2NvcGUnXSk7CiAgICRjLT5hZGQoJ3N0YXJ0X2RhdGUnLCBkYXRlKCdZL20vZCcsICRjYWxlbmRhci0+ZW5kX2RhdGUpLCBNQ0ZDcml0ZXJpYTo6TEVTU19FUVVBTCk7CiAgICRjLT5hZGQoJ2VuZF9kYXRlJywgZGF0ZSgnWS9tL2QnLCAkY2FsZW5kYXItPnN0YXJ0X2RhdGUpLCBNQ0ZDcml0ZXJpYTo6R1JFQVRFUl9FUVVBTCk7Cn0KZWxzZWlmIChpc3NldCgkcGFyYW1zWydjYWxlbmRhciddKSkKewogICAkY2FsZW5kYXJfdGltZSA9IGlzc2V0KCRwYXJhbXNbJ2NhbF90aW1lJ10pPyRwYXJhbXNbJ2NhbF90aW1lJ106dGltZSgpOwogICAkY2FsZW5kYXIgPSBuZXcgTUNGQ2FsZW5kYXIoJGNhbGVuZGFyX3RpbWUpOwogICAkYy0+YWRkKCdzdGFydF9kYXRlJywgZGF0ZSgnWS9tL2QnLCAkY2FsZW5kYXItPmVuZF9kYXRlKSwgTUNGQ3JpdGVyaWE6OkxFU1NfRVFVQUwpOwogICAkYy0+YWRkKCdlbmRfZGF0ZScsIGRhdGUoJ1kvbS9kJywgJGNhbGVuZGFyLT5zdGFydF9kYXRlKSwgTUNGQ3JpdGVyaWE6OkdSRUFURVJfRVFVQUwpOwp9CgoKaWYgKGlzc2V0KCRwYXJhbXNbJ25leHRfZXZlbnRzJ10pKQp7CiAgICRjLT5hZGQoJ2VuZF9kYXRlJywgZGF0ZSgnWS9tL2QnKSwgTUNGQ3JpdGVyaWE6OkdSRUFURVJfRVFVQUwpOwp9CmlmIChpc3NldCgkcGFyYW1zWydwcmV2aW91c19ldmVudHMnXSkpCnsKICAgJGMtPmFkZCgnZW5kX2RhdGUnLCBkYXRlKCdZL20vZCcpLCBNQ0ZDcml0ZXJpYTo6TEVTU19USEFOKTsKfQoKJG1vZHVsZXh0ZW5kZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZVh0ZW5kZXInKTsKJG14ZmlsdGVycyA9IGFycmF5KCk7CmlmICgkbW9kdWxleHRlbmRlci0+aXNYdGVuZGVkTW9kdWxlKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JykpIHsKCWZvcmVhY2ggKE1YX1JlbGF0aW9uOjpnZXRGaWx0ZXJzKCR0aGlzLT5nZXROYW1lKCkpIGFzICRmaWx0ZXIpIHsKCSAgICBpZiAoJGZpbHRlci0+Z2V0VHlwZSgpID09ICdjYXRlZ29yeScpIHsKCQkJaWYoaXNzZXQoJHBhcmFtc1sndGl0bGVfZmlsdGVyX2NhdGVnb3J5XycuJGZpbHRlci0+Z2V0SWQoKV0pKQoJCQl7CgkJCQkkdmFsdWVzID0gYXJyYXkoJHBhcmFtc1sndGl0bGVfZmlsdGVyX2NhdGVnb3J5XycuJGZpbHRlci0+Z2V0SWQoKV0gPT4gMCk7CgkJCX0KCQkJZWxzZQoJCQl7CQkJCQoJCSAgICAgICAgJHZhbHVlcyA9IGFycmF5KCRmaWx0ZXItPmdldFRpdGxlKGZhbHNlLCB0cnVlKSA9PiAwKTsKCQkJfQogICAgCQlmb3JlYWNoICgkZmlsdGVyLT5nZXRSZWxhdGVkSXRlbXMoKSBhcyAkaXRlbSkgewogICAgCQkJJHZhbHVlc1skaXRlbS0+dGl0bGVdID0gJGl0ZW0tPmlkOwogICAgCQl9CiAgICAJCSRteGZpbHRlcnNbJGZpbHRlci0+Z2V0SWQoKV0gPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdteGZpbHRlcnNfb3B0aW9uc1snIC4gJGZpbHRlci0+aWQgLiAnXScsICR2YWx1ZXMsIC0xLCBpc3NldCgkcGFyYW1zWydteGZpbHRlcnNfb3B0aW9ucyddWyRmaWx0ZXItPmlkXSkgPyAkcGFyYW1zWydteGZpbHRlcnNfb3B0aW9ucyddWyRmaWx0ZXItPmlkXSA6ICcnKTsKCSAgICB9IGVsc2UgaWYgKCRmaWx0ZXItPmdldFR5cGUoKSA9PSAncGFnZScpIHsKCQkJaWYoaXNzZXQoJHBhcmFtc1sndGl0bGVfZmlsdGVyX3BhZ2VfJy4kZmlsdGVyLT5nZXRJZCgpXSkpCgkJCXsKCQkJCSR2YWx1ZXMgPSBhcnJheSgkcGFyYW1zWyd0aXRsZV9maWx0ZXJfcGFnZV8nLiRmaWx0ZXItPmdldElkKCldID0+IDApOwoJCQl9CgkJCWVsc2UKCQkJewkJCQkKCQkgICAgICAgICR2YWx1ZXMgPSBhcnJheSgkZmlsdGVyLT5nZXRUaXRsZShmYWxzZSwgdHJ1ZSkgPT4gMCk7CgkJCX0KICAgIAkJZm9yZWFjaCAoJGZpbHRlci0+Z2V0UmVsYXRlZEl0ZW1zKCkgYXMgJGl0ZW0pIHsKICAgIAkJCSR2YWx1ZXNbJGl0ZW0tPnRpdGxlXSA9ICRpdGVtLT5pZDsKICAgIAkJfQogICAgCQkkbXhmaWx0ZXJzWyRmaWx0ZXItPmdldElkKCldID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnbXhmaWx0ZXJzX3BhZ2VzWycgLiAkZmlsdGVyLT5pZCAuICddJywgJHZhbHVlcywgLTEsIGlzc2V0KCRwYXJhbXNbJ214ZmlsdGVyc19wYWdlcyddWyRmaWx0ZXItPmlkXSkgPyAkcGFyYW1zWydteGZpbHRlcnNfcGFnZXMnXVskZmlsdGVyLT5pZF0gOiAnJyk7CgkgICAgfQoJfQp9CiR0aGlzLT5zbWFydHktPmFzc2lnbignbXhmaWx0ZXJzJywgJG14ZmlsdGVycyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVmaWx0ZXInLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZpbHRlcl90aXRsZScsIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl90aXRsZSddKSA/IGh0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWydmaWx0ZXJfdGl0bGUnXSkgOiAnJywgMjApKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfYWxsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmaWx0ZXJfYWxsJywgaXNzZXQoJHBhcmFtc1snZmlsdGVyX2FsbCddKSA/IGh0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWydmaWx0ZXJfYWxsJ10pIDogJycsIDIwKSk7CgppZihpc3NldCgkcGFyYW1zWydvcmRlcl9ieSddKSkgJHBhcmFtc1snb3JkZXJieSddID0gJHBhcmFtc1snb3JkZXJfYnknXTsKCmlmIChpc3NldCgkcGFyYW1zWydyYW5kb20nXSkpIAp7CgkkYy0+YWRkQXNjZW5kaW5nT3JkZXJCeUNvbHVtbignUkFORCgpJyk7Cn0gCmVsc2VpZiAoaXNzZXQoJHBhcmFtc1snb3JkZXJieSddKSkgCnsKCSRjbGF1c2VzID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ29yZGVyYnknXSk7Cglmb3JlYWNoICgkY2xhdXNlcyBhcyAkY2xhdXNlKSB7CgkJJGNsYXVzZSA9IHRyaW0oJGNsYXVzZSk7CgkJaWYgKHByZWdfbWF0Y2goJy8oXHcrKSg/OlxzKyhhc2N8ZGVzYykpPy9pJywgJGNsYXVzZSwgJG1hdGNoZXMpKSB7CgkJCSRjb2x1bW4gPSAkbWF0Y2hlc1sxXTsKCQkJJG9yZGVyID0gaXNzZXQoJG1hdGNoZXNbMl0pID8gc3RydG9sb3dlcigkbWF0Y2hlc1syXSkgOiAnYXNjJzsKCQkJaWYgKCRvcmRlciA9PSAnZGVzYycpIHsKCQkJCSRjLT5hZGREZXNjZW5kaW5nT3JkZXJCeUNvbHVtbigkY29sdW1uKTsKCQkJfSBlbHNlIHsKCQkJCSRjLT5hZGRBc2NlbmRpbmdPcmRlckJ5Q29sdW1uKCRjb2x1bW4pOwoJCQl9CgkJfQoJfQp9IGVsc2UgewogICAgJGMtPmFkZEFzY2VuZGluZ09yZGVyQnlDb2x1bW4oJ29yZGVyX2J5Jyk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2dyb3VwX2J5J10pKQp7CiAgJGdyb3VwcyA9IGV4cGxvZGUoJywnLCAkcGFyYW1zWydncm91cF9ieSddKTsKICBmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwKQogIHsKICAgJGMtPmFkZEdyb3VwQnlDb2x1bW4odHJpbSgkZ3JvdXApKTsgCiAgfQp9CgppZiAoaXNzZXQoJHBhcmFtc1snbGltaXQnXSkpIHsKCWlmIChpc3NldCgkcGFyYW1zWydwYWdlJ10pKSB7CgkJJHBhZ2UgPSAkcGFyYW1zWydwYWdlJ107CgkJJGMtPnNldE9mZnNldCgoJHBhZ2UgLSAxKSAqICRwYXJhbXNbJ2xpbWl0J10pOwoJfSBlbHNlIHsKCQkkcGFnZSA9IDE7Cgl9CglpZihpc3NldCgkcGFyYW1zWydvZmZzZXQnXSkpCgl7CgkJJGMtPnNldE9mZnNldCgkcGFyYW1zWydvZmZzZXQnXSk7Cgl9CgkkYy0+c2V0TGltaXQoJHBhcmFtc1snbGltaXQnXSk7Cn0KCiRpdGVtcyA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvU2VsZWN0KCRjKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ3JldmVyc2UnXSkpCnsKCSRpdGVtcyA9IGFycmF5X3JldmVyc2UoJGl0ZW1zLCB0cnVlKTsKfQoKaWYgKCgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnc2hvd19wYXJlbnQnLCAnMCcpID09IDEpICYmIGlzc2V0KCRwYXJhbXNbJ2dldF90cmVlJ10pKQp7CiAgJHRyZWUgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpidWlsZFRyZWUoJGl0ZW1zKTsKICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfGxvd2VyfX1fdHJlZScsICR0cmVlKTsgCn0KCmlmIChpc3NldCgkcGFyYW1zWydsaW1pdCddKSkgewoJJGMtPnNldE9mZnNldCgwKTsKCSRjLT5zZXRMaW1pdCgwKTsKCSR0b3RhbCA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvQ291bnQoJGMpOwoJJHRvdGFscGFnZXMgPSBjZWlsKCR0b3RhbCAvICRwYXJhbXNbJ2xpbWl0J10pOwoJJHBhZ2UgPSAkcGFyYW1zWydwYWdlJ10gPyAkcGFyYW1zWydwYWdlJ10gOiAxOwoJJHBhZ2VyID0gYXJyYXkoKTsKCSRwYWdlclsnaGFzX3RvX3BhZ2luYXRlJ10gPSAkdG90YWxwYWdlcyA+IDE7CgkkcGFnZXJbJ2N1cnJlbnQnXSA9ICRwYWdlOwoJJHBhZ2VyWyd0b3RhbF9wYWdlcyddID0gJHRvdGFscGFnZXM7CgkkcGFnZXJbJ3RvdGFsX3Jlc3VsdHMnXSA9ICR0b3RhbDsKCSRwYWdlclsncGFnZXMnXSA9IGFycmF5KCk7CgkKCWZvciAoJGkgPSAxOyAkaSA8PSAkdG90YWxwYWdlczsgKyskaSkgewoJCSRwYWdlclsncGFnZXMnXVtdID0gKCRpID09ICRwYWdlKSA/ICRpIDogJHRoaXMtPmNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJGksIAoJCSR0aGlzLT5QYXJhbXNGb3JMaW5rKCRwYXJhbXMsIGFycmF5KCdwYWdlJyA9PiAkaSkpCgkJLCAnJyk7Cgl9CgkkcGFnZXJbJ3ByZXZpb3VzX3BhZ2UnXSA9ICgkcGFnZSA+IDEpID8gJHRoaXMtPmNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJycsIAoJJHRoaXMtPlBhcmFtc0ZvckxpbmsoJHBhcmFtcywgYXJyYXkoJ3BhZ2UnID0+ICRwYWdlIC0gMSkpCgksICcnLCB0cnVlLCB0cnVlKSA6IGZhbHNlOwoJJHBhZ2VyWyduZXh0X3BhZ2UnXSA9ICgkcGFnZSA8ICR0b3RhbHBhZ2VzKSA/ICR0aGlzLT5jcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsICRyZXR1cm5pZCwgJycsIAoJJHRoaXMtPlBhcmFtc0ZvckxpbmsoJHBhcmFtcywgYXJyYXkoJ3BhZ2UnID0+ICRwYWdlICsgMSkpCgksICcnLCB0cnVlLCB0cnVlKSA6IGZhbHNlOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYWdlcicsICRwYWdlcik7Cn0KCiRkZXRhaWxwYWdlID0gJHJldHVybmlkOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewogICAgJG1hbmFnZXIgPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgIGlmICgkbm9kZSkgewogICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICBpZiAoJGNvbnRlbnQpCiAgICAgICAgewogICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50LT5JZCgpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgJG5vZGUgPSAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUlkKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgICAgICAgaWYgKCRub2RlKSB7CiAgICAgICAgICAgICRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwogICAgICAgIH0KICAgIH0KICAgICRwYXJhbXNbJ29yaWdpZCddID0gJHJldHVybmlkOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RldGFpbHBhZ2UnLCRkZXRhaWxwYWdlKTsKCi8vIE1YIFByZWxvYWRpbmcKJGlkcyA9IGFycmF5KCk7CmZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkKewoJJGlkc1tdID0gJGl0ZW0tPmdldElkKCk7Cn0KTVhfWHRlbmRlZE1vZHVsZTo6cHJlbG9hZFJlbGF0ZWRJdGVtcygkdGhpcy0+Z2V0TmFtZSgpLCAkaWRzKTsKCiRuZXdwYXJhbXMgPSAkcGFyYW1zOwp1bnNldCgkbmV3cGFyYW1zWydzaG93dGVtcGxhdGUnXSk7CnVuc2V0KCRuZXdwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CnVuc2V0KCRuZXdwYXJhbXNbJ3RlbXBsYXRlJ10pOwoKZm9yZWFjaCAoJGl0ZW1zIGFzICYkaXRlbSkgewoJJG5ld3BhcmFtc1snaXRlbV9pZCddID0gJGl0ZW0tPmdldElkKCk7CgkkbmV3cGFyYW1zWyd0aXRsZSddID0gJGl0ZW0tPmdldENvcmVTbHVnKCk7CgkkaXRlbS0+ZGV0YWlsX2xpbmsgPSAkdGhpcy0+Y3JlYXRlTGluaygkaWQsICdkZXRhaWwnLCAkZGV0YWlscGFnZSwgJGNvbnRlbnRzPScnLCAkbmV3cGFyYW1zLCAnJywgdHJ1ZSk7CgkkeHRlbmRlZF9mZWxpc3QgPSBNWF9YdGVuZGVkTW9kdWxlOjpnZXRSZWxhdGVkSXRlbXMoJHRoaXMtPmdldE5hbWUoKSwgJGl0ZW0tPmdldElkKCkpOwoJJGl0ZW0tPnh0ZW5kZWRfZmVsaXN0ID0gJHh0ZW5kZWRfZmVsaXN0Owp9CnVuc2V0KCRpdGVtKTsKCmlmIChpc3NldCgkcGFyYW1zWydjYWxlbmRhciddKSkKewogICAkY2FsZW5kYXItPnByb2Nlc3NFdmVudHMoJGl0ZW1zKTsKICAgJGNhbGVuZGFyLT5wcm9jZXNzQ2FsZW5kYXIoKTsKCiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignY2FsZW5kYXInLCAkY2FsZW5kYXItPmNhbGVuZGFyX3RhYmxlKTsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjdXJyZW50X21vbnRoJywgJGNhbGVuZGFyX3RpbWUpOwogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25leHRfbW9udGgnLCAkdGhpcy0+Y3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCAkZGV0YWlscGFnZSwgJGNvbnRlbnRzPScnLCBhcnJheV9tZXJnZSgkcGFyYW1zLCBhcnJheSgnY2FsX3RpbWUnID0+IHN0cnRvdGltZSgnKyAxIE1PTlRIJywkY2FsZW5kYXJfdGltZSkpKSwgJycsIHRydWUsIHRydWUpKTsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmV2aW91c19tb250aCcsICR0aGlzLT5jcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkZGV0YWlscGFnZSwgJGNvbnRlbnRzPScnLCBhcnJheV9tZXJnZSgkcGFyYW1zLCAgIGFycmF5KCdjYWxfdGltZScgPT4gc3RydG90aW1lKCctIDEgTU9OVEgnLCAkY2FsZW5kYXJfdGltZSkpKSwgJycsIHRydWUsIHRydWUpKTsKfQoKLy8gSlNPTgppZihpc3NldCgkX1JFUVVFU1RbJ2pzb24nXSkpCnsJCgkkanNvbiA9IGFycmF5KCk7Cglmb3JlYWNoKCRpdGVtcyBhcyAkaXRlbSkKCXsKCQkkanNvbltdID0gJGl0ZW0tPmdldEFzQXJyYXkoKTsKCX0KCQoJJGNhbGxiYWNrID0gJF9SRVFVRVNUWydjYWxsYmFjayddOwoJaWYgKCRjYWxsYmFjaykgewoJCWhlYWRlcignQ29udGVudC10eXBlOiB0ZXh0L2phdmFzY3JpcHQnKTsKCSAgZWNobyAkY2FsbGJhY2sgLiAnKCcgLiB1dGY4X2VuY29kZShqc29uX2VuY29kZSgkanNvbikpIC4gJyk7JzsKCX0gZWxzZSB7CQkKCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC1qc29uJyk7CgkJZWNobyB1dGY4X2VuY29kZShqc29uX2VuY29kZSgkanNvbikpOwoJfQoJZXhpdDsKCWRpZSgpOwp9CgoKaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhciddKSkgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ3ZhciddLCAkaXRlbXMpOwp9IGVsc2UgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRpdGVtcyk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaXRlbXMpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKXxsb3dlcn19JywgJGl0ZW1zKTsKICAgICRwYXJhbXNvYmogPSBuZXcgc3RkQ2xhc3MoKTsKICAgICRwYXJhbXNvYmotPnBhcmFtcyA9ICRwYXJhbXM7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21jZmFjdG9yeScsICRwYXJhbXNvYmopOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKXxsb3dlcn19X3BhcmFtcycsICRwYXJhbXNvYmopOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdCcsICRkZXRhaWxwYWdlLCAncG9zdCcpKTsKCQoJCSRpbnB1dHNfaGlkZGVuID0gJyc7CgkJJG5ld3BhcmFtcyA9ICRwYXJhbXM7CgkJdW5zZXQoJG5ld3BhcmFtc1snbW9kdWxlJ10pOwoJCXVuc2V0KCRuZXdwYXJhbXNbJ2FjdGlvbiddKTsKCQl1bnNldCgkbmV3cGFyYW1zWydwYWdlJ10pOwoJCXVuc2V0KCRuZXdwYXJhbXNbJ3JldHVybmlkJ10pOwoJCWZvcmVhY2goJG5ld3BhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkKCQl7CgkJCSRpbnB1dHNfaGlkZGVuIC49ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJGtleSwkdmFsdWUpOwoJCX0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0c19oaWRkZW4nLCAkaW5wdXRzX2hpZGRlbik7CgkKCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGb3IoJ2RlZmF1bHQnLCAkcGFyYW1zKTsKCQoJcmV0dXJuOwp7eyoKICAgIC8vIGlmIChpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSAmJiAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSkpIHsKICAgIC8vIAllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgICAvLyB9IGVsc2UgewogICAgLy8gCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZGlzcGxheV9saXN0Jyk7CiAgICAvLyB9Cip9fQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.defaultadmin.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghKCR0aGlzLT5DaGVja0FjY2VzcygpIHx8ICR0aGlzLT5DaGVja0FjY2VzcygnTW9kaWZ5IFRlbXBsYXRlcycpKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgokdGFicyA9IGFycmF5KAovLwknaXRlbXMnID0+IGZhbHNlLAovLwkndGVtcGxhdGVzJyA9PiBmYWxzZSwKLy8JJ29wdGlvbnMnID0+IGZhbHNlLAovLwknaGVscCcgPT4gZmFsc2UKKTsKCmlmICgkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgewogJHRhYnNbJ2l0ZW1zJ10gPSBmYWxzZTsgCn0KCmlmICgkdGhpcy0+Q2hlY2tBY2Nlc3MoJ01vZGlmeSBUZW1wbGF0ZXMnKSkgeyAKICAkdGFic1sndGVtcGxhdGVzJ10gPSBmYWxzZTsKfSAKaWYgKCR0aGlzLT5DaGVja0FjY2VzcygnQWRtaW4ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpKSB7IAogICR0YWJzWydvcHRpb25zJ10gPSBmYWxzZTsKfSAKJHRhYnNbJ2hlbHAnXSA9IGZhbHNlOyAKCmlmIChpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKSB7CgkkdGFic1skcGFyYW1zWydhY3RpdmVfdGFiJ11dID0gdHJ1ZTsKfQoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmZvcmVhY2ggKCR0YWJzIGFzICR0YWIgPT4gJHNlbGVjdGVkKSB7CgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJHRhYiwgJHRoaXMtPkxhbmcoJ3RhYl8nIC4gJHRhYiksICRzZWxlY3RlZCk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmZvcmVhY2ggKCR0YWJzIGFzICR0YWIgPT4gJHNlbGVjdGVkKSB7CgllY2hvICR0aGlzLT5TdGFydFRhYigkdGFiKTsKCWluY2x1ZGUgJ2Z1bmN0aW9uLmRlZmF1bHRhZG1pbi4nLiR0YWIuJy5waHAnOwoJZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.delete.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKJHZpZXcgPSBuZXcgTUNGTGlzdFZpZXcoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkcGFyYW1zKTsKCmlmIChpc3NldCgkcGFyYW1zWydpdGVtX2lkJ10pICYmICFlbXB0eSgkcGFyYW1zWydpdGVtX2lkJ10pKSB7CgkkaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmdldEJ5SWQoJHBhcmFtc1snaXRlbV9pZCddKTsKCSRvcmRlciA9ICRpdGVtLT5nZXRPcmRlckJ5KCk7CgkkaXRlbS0+ZGVsZXRlKCk7CglpZiAoJG9yZGVyKSB7CgkJJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKCQkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfe3skdGFibGVfbmFtZX19IFNFVCBvcmRlcl9ieSA9ICBvcmRlcl9ieSAtIDEgV0hFUkUgb3JkZXJfYnkgPiA/JzsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIpKTsKCX0KfQoKe3tpZiAkcGFyZW50X21vZHVsZX19CiRwYXJlbnQgPSBuZXcge3skcGFyZW50X21vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0oKTsKJHBhcmVudC0+UmVkaXJlY3QoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCksICdpdGVtX2lkJyA9PiAkaXRlbS0+Z2V0UGFyZW50SXRlbSgpKSk7Cnt7ZWxzZX19CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpKSk7Cnt7L2lmfX0KZXhpdDsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.deletetemplate.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCdNYW5hZ2UgTUMgRmFjdG9yeScpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCiR2aWV3ID0gbmV3IE1DRkxpc3RWaWV3KCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JywgJHBhcmFtcyk7CgppZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3RlbXBsYXRlJ10pKSB7CiAgICAkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSk7Cn0KCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpKSk7CmV4aXQ7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.detail.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiRjLT5hZGQoJ2lkJywgJHBhcmFtc1snaXRlbV9pZCddKTsKCiRwdWJsaXNoaW5nX2NoZWNrcyA9IHRydWU7CmlmKGlzc2V0KCRwYXJhbXNbJ3Nob3dfdXNlcl9pdGVtcyddKSAmJiBNQ0ZUb29sczo6SXNNb2R1bGVBY3RpdmUoJ0NNU1VzZXJzJykpCnsKCSR1c2VyID0gQ01TVXNlcnM6OmdldFVzZXJPckxvZ2luKCk7CglpZiAoaXNfb2JqZWN0KCR1c2VyKSkKCXsKCQkkYy0+YWRkKCd1c2VyX2lkJywgJHVzZXItPmdldElkKCkpOwoJCSRwdWJsaXNoaW5nX2NoZWNrcyA9IGZhbHNlOwoJfQoKfQppZiAoJHB1Ymxpc2hpbmdfY2hlY2tzICYmICghKGlzc2V0KCRwYXJhbXNbJ3ByZXZpZXdfa2V5J10pICYmICRfU0VTU0lPTlsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWydwcmV2aWV3X2tleSddID09ICRwYXJhbXNbJ3ByZXZpZXdfa2V5J10pKSkKewoJJGMtPmFkZCgncHVibGlzaGVkJywgJzEnKTsJCgl7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpnbG9iYWxGcm9udGVuZEZpbHRlcnMoJGMpOwp9CgokaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvU2VsZWN0T25lKCRjKTsKCmlmIChpc19vYmplY3QoJGl0ZW0pICYmIFhUX1h0ZW5kZWRNb2R1bGU6OmlzWHRlbmRlZE1vZHVsZSgkdGhpcy0+Z2V0TmFtZSgpKSkKewoJLyogQXR0YWNoZWQgbGlzdHMgKi8KICAkeHRlbmRlZF9mZWxpc3QgPSBNWF9YdGVuZGVkTW9kdWxlOjpnZXRSZWxhdGVkSXRlbXMoJHRoaXMtPmdldE5hbWUoKSwgJGl0ZW0tPmdldElkKCkpOwoJJGl0ZW0tPnh0ZW5kZWRfZmVsaXN0ID0gJHh0ZW5kZWRfZmVsaXN0OwoJLy8gZGVwcmVjYXRlZAoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd4dGVuZGVkX2ZlbGlzdCcsICR4dGVuZGVkX2ZlbGlzdCk7CgkKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhciddKSkgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ3ZhciddLCAkaXRlbSk7Cn0gZWxzZSB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW0nLCAkaXRlbSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaXRlbSk7CiAgICAkcGFyYW1zb2JqID0gbmV3IHN0ZENsYXNzKCk7CiAgICAkcGFyYW1zb2JqLT5wYXJhbXMgPSAkcGFyYW1zOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtY2ZhY3RvcnknLCAkcGFyYW1zb2JqKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl8bG93ZXJ9fV9wYXJhbXMnLCAkcGFyYW1zb2JqKTsKICAgIAoJCWlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkgJHBhcmFtc1sndGVtcGxhdGUnXSA9ICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CgoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZvcignZGV0YWlsJywgJHBhcmFtcyk7CgkJcmV0dXJuOwp7eyoKICAgIC8vIGlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSAmJiAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkpIHsKICAgIC8vIAllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSk7CiAgICAvLyB9IGVsc2UgewogICAgLy8gCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZGlzcGxheV9kZXRhaWxzJyk7CiAgICAvLyB9Cip9fQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.download.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiRjLT5hZGQoJ2lkJywgJHBhcmFtc1snaXRlbV9pZCddKTsKCiRwdWJsaXNoaW5nX2NoZWNrcyA9IHRydWU7CmlmKGlzc2V0KCRwYXJhbXNbJ3Nob3dfdXNlcl9pdGVtcyddKSAmJiBNQ0ZUb29sczo6SXNNb2R1bGVBY3RpdmUoJ0NNU1VzZXJzJykpCnsKCSR1c2VyID0gQ01TVXNlcnM6OmdldFVzZXJPckxvZ2luKCk7CglpZiAoaXNfb2JqZWN0KCR1c2VyKSkKCXsKCQkkYy0+YWRkKCd1c2VyX2lkJywgJHVzZXItPmdldElkKCkpOwoJCSRwdWJsaXNoaW5nX2NoZWNrcyA9IGZhbHNlOwoJfQoKfQppZiAoJHB1Ymxpc2hpbmdfY2hlY2tzICYmICghKGlzc2V0KCRwYXJhbXNbJ3ByZXZpZXdfa2V5J10pICYmICRfU0VTU0lPTlsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWydwcmV2aWV3X2tleSddID09ICRwYXJhbXNbJ3ByZXZpZXdfa2V5J10pKSkKewoJJGMtPmFkZCgncHVibGlzaGVkJywgJzEnKTsJCgl7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpnbG9iYWxGcm9udGVuZEZpbHRlcnMoJGMpOwp9CiRpdGVtID0ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6ZG9TZWxlY3RPbmUoJGMpOwppZihpc19vYmplY3QoJGl0ZW0pKSBlY2hvICRpdGVtLT5kb3dubG9hZE1DRkZpbGUoJHBhcmFtc1snZmllbGQnXSk7]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.edit.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKICByZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCiR2aWV3ID0gbmV3IE1DRkxpc3RWaWV3KCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JywgJHBhcmFtcyk7CgokbW9kdWxleHRlbmRlciA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlWHRlbmRlcicpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2l0ZW1faWQnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2l0ZW1faWQnXSkpIHsKICAkaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmdldEJ5SWQoJHBhcmFtc1snaXRlbV9pZCddKTsKfSBlbHNlIHsKICAkaXRlbSA9IG5ldyB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0KCk7CiAgJGl0ZW0tPnNldFBhcmVudEl0ZW0oaXNzZXQoJHBhcmFtc1sncGFyZW50X2l0ZW0nXSkgPyAkcGFyYW1zWydwYXJlbnRfaXRlbSddIDogMCk7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICB7e2lmICRwYXJlbnRfbW9kdWxlfX0KICAkcGFyZW50ID0gbmV3IHt7JHBhcmVudF9tb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19KCk7CiAgJHBhcmVudC0+UmVkaXJlY3QoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCksICdpdGVtX2lkJyA9PiAkaXRlbS0+Z2V0UGFyZW50SXRlbSgpKSk7CiAge3tlbHNlfX0KICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSkpOwogIHt7L2lmfX0KICBleGl0Owp9CgokZm9ybSA9IG5ldyBDTVNGb3JtKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JywgJGlkLCdlZGl0JywkcmV0dXJuaWQpOwokYnV0dG9ucyA9IGFycmF5KCdzdWJtaXQnLCdhcHBseScsJ2NhbmNlbCcpOwppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2F2ZV9hZGQnLCBmYWxzZSkgPT0gJzEnKQp7CiAgJGJ1dHRvbnMgPSBhcnJheSgnc3VibWl0Jywnc2F2ZV9hZGQnLCdhcHBseScsJ2NhbmNlbCcpOyAgCiAgJGZvcm0tPnNldExhYmVsKCdzYXZlX2FkZCcsICR0aGlzLT5MYW5nKCdzYXZlX2FkZCcpKTsKfQokZm9ybS0+c2V0QnV0dG9ucygkYnV0dG9ucyk7CiRmb3JtLT5zZXRNdWx0aXBhcnRGb3JtKCk7CiRmb3JtLT5zZXRMYWJlbCgnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3NhdmUnKSk7CiRmb3JtLT5zZXRMYWJlbCgnYXBwbHknLCAkdGhpcy0+TGFuZygnc2F2ZV9jb250aW51ZScpKTsKJGZvcm0tPnNldExhYmVsKCdjYW5jZWwnLCAkdGhpcy0+TGFuZygnY2FuY2VsJykpOwoKJGZvcm0tPnNldFdpZGdldCgndmlldycsJ2hpZGRlbicsICR2aWV3LT5nZXRWaWV3KCkpOwokZm9ybS0+c2V0V2lkZ2V0KCdpdGVtX2lkJywgJ2hpZGRlbicsIGFycmF5KCdvYmplY3QnID0+ICYkaXRlbSwgJ2ZpZWxkX25hbWUnID0+ICdpZCcpKTsKJGZvcm0tPnNldFdpZGdldCgncGFyZW50X2l0ZW0nLCAnaGlkZGVuJywgYXJyYXkoJ29iamVjdCcgPT4gJiRpdGVtKSk7Cgp7e2lmIGlzc2V0KCRmaXJzdF90YWJfZmllbGRzZXQudGFiX2tleSl9fQogICRmb3JtLT5zZXRGaWVsZHNldCgne3skZmlyc3RfdGFiX2ZpZWxkc2V0LnRhYl9rZXl9fS0tLXt7JGZpcnN0X3RhYl9maWVsZHNldC5maWVsZHNldF9rZXl9fScsICd7eyRmaXJzdF90YWJfZmllbGRzZXQuZmllbGRzZXRfbmFtZX19Jyk7CiAgJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaXJzdF90YWJfZmllbGRzZXQudGFiX2tleX19LS0te3skZmlyc3RfdGFiX2ZpZWxkc2V0LmZpZWxkc2V0X2tleX19JyktPnNldFdpZGdldCgndGl0bGUnLCAndGV4dCcsIGFycmF5KCdsYWJlbCcgPT4gJ3t7JHRpdGxlX2xhYmVsfX0nLCdvYmplY3QnID0+ICYkaXRlbSwgJ3NpemUnID0+IDUwKSk7CiAgCiAgaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdzaG93X3BhcmVudCcsICcwJykgPT0gMSkKICB7CiAgICAkZm9ybS0+Z2V0RmllbGRzZXQoJ3t7JGZpcnN0X3RhYl9maWVsZHNldC50YWJfa2V5fX0tLS17eyRmaXJzdF90YWJfZmllbGRzZXQuZmllbGRzZXRfa2V5fX0nKS0+c2V0V2lkZ2V0KCdwYXJlbnRfaWQnLCAnc2VsZWN0JywgYXJyYXkoCiAgICAgICdvYmplY3QnID0+ICYkaXRlbSwgCiAgICAgICd2YWx1ZXMnID0+IGFycmF5KDAgPT4gJycpICsgJGl0ZW0tPmdldFBvc3NpYmxlUGFyZW50c0hpZXJhcmNoeSgnIC0gJywgJHRoaXMtPmdldFByZWZlcmVuY2UoJ3Nob3dfcGFyZW50X2ZpcnN0X2xldmVsJywgJzAnKSkKICAgICAgKSk7CiAgfQogIAp7e2Vsc2V9fQogICRmb3JtLT5zZXRXaWRnZXQoJ3RpdGxlJywgJ3RleHQnLCBhcnJheSgnbGFiZWwnID0+ICd7eyR0aXRsZV9sYWJlbH19Jywnb2JqZWN0JyA9PiAmJGl0ZW0sICdzaXplJyA9PiA1MCkpOwp7ey9pZn19CgovLyBDdXN0b20gcGFydAokY29uZmlnID0mICR0aGlzLT5nZXRDb25maWcoKTsKCnt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1WaWV3czo6Y3JlYXRlRm9ybSgkdGhpcywkZm9ybSwkaXRlbSk7CgoKCgoKLy8gU1VCIE1PRFVMRVMgU0VDVElPTgokYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwokYy0+YWRkKCdwYXJlbnRfbW9kdWxlJywge3skbW9kdWxlLT5nZXRJZCgpfX0sIE1DRkNyaXRlcmlhOjpFUVVBTCk7CiRjaGlsZF9tb2R1bGVzID0gTUNGTW9kdWxlOjpkb1NlbGVjdCgkYyk7CiRzdWJtb2R1bGVzID0gYXJyYXkoKTsKZm9yZWFjaCAoJGNoaWxkX21vZHVsZXMgYXMgJGNoaWxkKSB7CiAgaWYgKE1DRlRvb2xzOjpJc01vZHVsZUFjdGl2ZSgkY2hpbGQtPkdldE1vZHVsZU5hbWUoKSkpCiAgewogICAgJHN1Ym1vZHVsZXNbJGNoaWxkLT5nZXRJZCgpXSA9IGFycmF5KCdnbmFtZScgPT4gJGNoaWxkLT5HZXRNb2R1bGVOYW1lKCksICduYW1lJyA9PiAkY2hpbGQtPkdldE1vZHVsZUZyaWVuZGx5TmFtZSgpLCAnaXRlbXMnID0+IGFycmF5KCkpOwogICAgaWYgKCEkaXRlbS0+aXNOZXcoKSkgewogICAgICAkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwogICAgICAkYy0+YWRkKCdwYXJlbnRfaXRlbScsICRpdGVtLT5nZXRJZCgpKTsKICAgICAgJGMtPmFkZEFzY2VuZGluZ09yZGVyQnlDb2x1bW4oJ29yZGVyX2J5Jyk7CiAgICAgICRjbGFzc25hbWUgPSAkY2hpbGQtPkdldE1vZHVsZU5hbWUoKTsKICAgICAgJG1vZCA9IG5ldyAkY2xhc3NuYW1lKCk7CiAgICAgIC8vIHZhcl9kdW1wKCRjbGFzc25hbWUpOwogICAgICAkaXRlbXMgPSBjYWxsX3VzZXJfZnVuYyhhcnJheSgkY2hpbGQtPkdldE1vZHVsZU5hbWUoKSAuICdPYmplY3QnLCAnZG9TZWxlY3QnKSwgJGMpOwogICAgICAkc3VibW9kdWxlc1skY2hpbGQtPmdldElkKCldWyd0ZW1wbGF0ZSddID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJGNoaWxkLT5HZXRNb2R1bGVOYW1lKCkgLiAnVmlld3MnLCAnYWRtaW5JdGVtcycpLCRtb2QsJGlkLCRyZXR1cm5pZCwkdmlldywkaXRlbXMsJGl0ZW0tPmdldElkKCkpOwogICAgICAkc3VibW9kdWxlc1skY2hpbGQtPmdldElkKCldWydhZGRfaXRlbV9saW5rJ10gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsICRtb2QtPkxhbmcoJ2FkZF9pdGVtX2ZvcicsICRjaGlsZC0+R2V0TW9kdWxlRnJpZW5kbHlOYW1lKCkpLCBhcnJheSgncGFyZW50X2l0ZW0nID0+ICRpdGVtLT5nZXRJZCgpKSk7CiAgICAgICRzdWJtb2R1bGVzWyRjaGlsZC0+Z2V0SWQoKV1bJ2FkZF9pdGVtX2ljb24nXSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgY21zbXMoKS0+Z2V0X3ZhcmlhYmxlKCdhZG1pbnRoZW1lJyktPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkbW9kLT5MYW5nKCdhZGRfaXRlbV9mb3InLCAkY2hpbGQtPkdldE1vZHVsZUZyaWVuZGx5TmFtZSgpKSwgJycsICcnLCAnc3lzdGVtaWNvbicpKTsKICAgIH0KICB9Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibW9kdWxlcycsICRzdWJtb2R1bGVzKTsKCi8vIE1PRFVMRSBYVEVOREVSIFNFQ1RJT04KCmlmICgkbW9kdWxleHRlbmRlci0+aXNYdGVuZGVkTW9kdWxlKCR0aGlzLT5nZXROYW1lKCkpKSB7ICAKICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3h0ZW5kZWRfZm9ybScsICRtb2R1bGV4dGVuZGVyLT5YdGVuZE1vZHVsZUZvcm0oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaXRlbS0+Z2V0SWQoKSwgJGlkKSk7Cn0gZWxzZSB7CiAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd4dGVuZGVkX2Zvcm0nLCAnJyk7Cn0KCgokZm9ybS0+c2V0RmllbGRzZXQoJ21vZHVsZS0tLW9wdGlvbnMnLCAkdGhpcy0+bGFuZygnbW9kdWxlX29wdGlvbnMnKSk7CgoKLy8gaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdzaG93X3BhcmVudCcsICcwJykgPT0gMSkKLy8gewovLyAgICRmb3JtLT5nZXRGaWVsZHNldCgnbW9kdWxlLS0tb3B0aW9ucycpLT5zZXRXaWRnZXQoJ3BhcmVudF9pZCcsICdzZWxlY3QnLCBhcnJheSgKLy8gICAgICdvYmplY3QnID0+ICYkaXRlbSwgCi8vICAgICAndmFsdWVzJyA9PiBhcnJheSgwID0+ICcnKSArICRpdGVtLT5nZXRQb3NzaWJsZVBhcmVudHNIaWVyYXJjaHkoJyAtICcsICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdzaG93X3BhcmVudF9maXJzdF9sZXZlbCcsICcwJykpCi8vICAgICApKTsKLy8gfQoKe3tpZiBpc3NldCgkaXNfdXNlcl9tb2R1bGUpfX0KaWYgKGNsYXNzX2V4aXN0cygnQ01TVXNlcicpKQp7ICAKICAkZm9ybS0+Z2V0RmllbGRzZXQoJ21vZHVsZS0tLW9wdGlvbnMnKS0+c2V0V2lkZ2V0KCd1c2VyX2lkJywgJ3NlbGVjdCcsIGFycmF5KAogICAgJ3ZhbHVlcycgPT4gIGFycmF5KCcnID0+ICcmbGFxdW87ICcgLiAkdGhpcy0+bGFuZygnc2VsZWN0X29uZScpIC4gJyAmcmFxdW87JykgKyBDTVNVc2VyOjpnZXRVc2VyTGlzdCgpLCAgCiAgICAnZ2V0X21ldGhvZCcgPT4gJ2dldFVzZXJJZCcsIAogICAgJ3NldF9tZXRob2QnID0+ICdzZXRVc2VySWQnLCAKICAgICdvYmplY3QnID0+ICYkaXRlbQogICkpOwp9Cnt7L2lmfX0KCmlmKCFpc19udWxsKCRpdGVtLT5nZXRDcmVhdGVkQnkoKSkpICRmb3JtLT5nZXRGaWVsZHNldCgnbW9kdWxlLS0tb3B0aW9ucycpLT5zZXRXaWRnZXQoJ2NyZWF0ZWRfYnknLCAnc3RhdGljJywgYXJyYXkoJ2xhYmVsJyA9PiAnQ3JlYXRlZCBieScsICAndmFsdWUnID0+IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCktPkxvYWRVc2VyQnlJRCgkaXRlbS0+Z2V0Q3JlYXRlZEJ5KCkpLT51c2VybmFtZSAuICcgb24gJyAuICRpdGVtLT5nZXRDcmVhdGVkQXQoKSkpOwokZm9ybS0+Z2V0RmllbGRzZXQoJ21vZHVsZS0tLW9wdGlvbnMnKS0+c2V0V2lkZ2V0KCdtY2ZpX2NyZWF0ZWRfdGltZXN0YW1wJywgJ3N0YXRpYycsIGFycmF5KCdsYWJlbCcgPT4gJ0NyZWF0aW9uIGV4YWN0IHRpbWUnLCAndmFsdWUnID0+IGRhdGUoJ2QtTS1ZIEg6aTpzJywgJGl0ZW0tPmdldE1jZmlDcmVhdGVkVGltZXN0YW1wKCkpICkpOwppZighaXNfbnVsbCgkaXRlbS0+Z2V0VXBkYXRlZEJ5KCkpKSAkZm9ybS0+Z2V0RmllbGRzZXQoJ21vZHVsZS0tLW9wdGlvbnMnKS0+c2V0V2lkZ2V0KCd1cGRhdGVkX2J5JywgJ3N0YXRpYycsIGFycmF5KCdsYWJlbCcgPT4gJ0xhc3QgdXBkYXRlZCBieScsICAndmFsdWUnID0+IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCktPkxvYWRVc2VyQnlJRCgkaXRlbS0+Z2V0VXBkYXRlZEJ5KCkpLT51c2VybmFtZSAuICcgb24gJyAuICRpdGVtLT5nZXRVcGRhdGVkQXQoKSkpOwokZm9ybS0+Z2V0RmllbGRzZXQoJ21vZHVsZS0tLW9wdGlvbnMnKS0+c2V0V2lkZ2V0KCdtY2ZpX3VwZGF0ZWRfdGltZXN0YW1wJywgJ3N0YXRpYycsIGFycmF5KCdsYWJlbCcgPT4gJ1VwZGF0ZSBleGFjdCB0aW1lJywgJ3ZhbHVlJyA9PiBkYXRlKCdkLU0tWSBIOmk6cycsICRpdGVtLT5nZXRNY2ZpVXBkYXRlZFRpbWVzdGFtcCgpKSApKTsKCiRwdWJfYXJyYXkgPSBhcnJheSgnbGFiZWwnID0+ICdQdWJsaXNoZWQnLCAnb2JqZWN0JyA9PiAmJGl0ZW0pOwppZihpc19udWxsKCRpdGVtLT5nZXRJZCgpKSkKewogICRwdWJfYXJyYXlbJ2RlZmF1bHRfdmFsdWUnXSA9IDE7Cn0KCiRmb3JtLT5nZXRGaWVsZHNldCgnbW9kdWxlLS0tb3B0aW9ucycpLT5zZXRXaWRnZXQoJ3B1Ymxpc2hlZCcsICdjaGVja2JveCcsICRwdWJfYXJyYXkpOwoKaWYoY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdEaWdlc3QnKSkKewogICRkaWdfYXJyYXkgPSBhcnJheSgnbGFiZWwnID0+ICdTZW5kIHVwZGF0ZSBpbW1lZGlhdGVseScsICdvYmplY3QnID0+ICYkaXRlbSk7CiAgaWYoaXNfbnVsbCgkaXRlbS0+Z2V0SWQoKSkpCiAgewogICAgJGRpZ19hcnJheVsnZGVmYXVsdF92YWx1ZSddID0gMTsKICB9CiAgCiAgJGZvcm0tPmdldEZpZWxkc2V0KCdtb2R1bGUtLS1vcHRpb25zJyktPnNldFdpZGdldCgnc2VuZF91cGRhdGVfaW1tZWRpYXRlbHknLCAnY2hlY2tib3gnLCAkZGlnX2FycmF5KTsKfQoKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybScsICRmb3JtKTsKCi8vIEZPUk0gUFJPQ0VTU0lORwoKaWYgKCRmb3JtLT5pc1Bvc3RlZCgpKSB7CiAgJGZvcm0tPnByb2Nlc3MoKTsKICBpZiAoJGZvcm0tPk5vRXJyb3IoKSkKICB7CiAgICAkaXRlbS0+ZGVsZXRlRmlsZXMoJHBhcmFtcyk7ICAKICAgICRpdGVtLT51cGxvYWRGaWxlcygkaWQpOwogICAgJGl0ZW0tPnNhdmUoKTsKICAgIGlmICgkbW9kdWxleHRlbmRlci0+aXNYdGVuZGVkTW9kdWxlKCR0aGlzLT5nZXROYW1lKCkpKSB7CiAgICAgICRtb2R1bGV4dGVuZGVyLT5nZXRGb3JtSW5wdXQoJHRoaXMtPmdldE5hbWUoKSwgJGl0ZW0tPmdldElkKCksICRwYXJhbXMpOwogICAgfQogICAgJGl0ZW0tPnBvc3RBY3Rpb25zKCk7IC8vIFVzZSB0byBhbGxvdyBwZW9wbGUgdG8gdHdlYWsgdGhpbmdzLgogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogICAgICB7e2lmICRwYXJlbnRfbW9kdWxlfX0KICAgICAgJHBhcmVudCA9IG5ldyB7eyRwYXJlbnRfbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSgpOwogICAgICAkcGFyZW50LT5SZWRpcmVjdCgkaWQsICdlZGl0JywgJHJldHVybmlkLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSwgJ2l0ZW1faWQnID0+ICRpdGVtLT5nZXRQYXJlbnRJdGVtKCksICd0YWInID0+ICR0aGlzLT5nZXROYW1lKCkpKTsKICAgICAge3tlbHNlfX0KICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCkpKTsKICAgICAge3svaWZ9fQogICAgICBleGl0OwogICAgfQogICAgZWxzZWlmKGlzc2V0KCRwYXJhbXNbJ3NhdmVfYWRkJ10pKSB7CiAgICAgIHt7aWYgJHBhcmVudF9tb2R1bGV9fQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCksICdwYXJlbnRfaXRlbScgPT4gJGl0ZW0tPmdldFBhcmVudEl0ZW0oKSkpOwogICAgICB7e2Vsc2V9fQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCkpKTsKICAgICAge3svaWZ9fQogICAgICBleGl0OwogICAgfSBlbHNlIHsKICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldElkKCkpKTsKICAgICAgZXhpdDsKICAgIH0KICB9Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiJywgaXNzZXQoJHBhcmFtc1sndGFiJ10pPyRwYXJhbXNbJ3RhYiddOm51bGwpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0LnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.edittemplate.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ01hbmFnZSBNQyBGYWN0b3J5JykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIERvY3VtZW50c0xpYnJhcnkgIm1hbmFnZVRlbXBsYXRlIiBhZG1pbiBhY3Rpb24KICAgCiAgIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCiAgIAogICBUeXBpY2FsbHksIHRoaXMgd2lsbCBkaXNwbGF5IHNvbWV0aGluZyBmcm9tIGEgdGVtcGxhdGUKICAgb3IgZG8gc29tZSBvdGhlciB0YXNrLgogICAKKi8KCi8vIFJPQ0sgQU5EIExPQUQKCmlmIChpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSAmJiAkcGFyYW1zWyd0ZW1wbGF0ZSddICE9ICcnKQp7CgkkdGl0bGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZSddOwoJCglpZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0YnV0dG9uJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5YnV0dG9uJ10pKQoJewoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddLCAkcGFyYW1zWyd0ZW1wbGF0ZWRldGFpbHMnXSk7CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdGJ1dHRvbiddKSkKCQl7CgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGVzJykpOwoJCX0KCX0KfQplbHNlIAp7CgkkdGl0bGUgPSAnJzsKfQoKLy8gREVUQUlMUwoJCQoJCgkJCgkKCQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkJywgJGlkKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkKSk7CgkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCd0aXRsZVRlbXBsYXRlJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0ZW1wbGF0ZScsICR0aXRsZSwgNTApKTsKCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3RvcmVsaXN0J10pKQoJewoJCSR0ZW1wbGF0ZWNvZGUgPSAkdGhpcy0+R2V0VGVtcGxhdGVGcm9tRmlsZSgndGVtcGxhdGUubGlzdCcpOwoJfQkKCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1sncmVzdG9yZWRldGFpbHMnXSkpCgl7CgkJJHRlbXBsYXRlY29kZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCd0ZW1wbGF0ZS5kZXRhaWxzJyk7Cgl9CgllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pICYmICRwYXJhbXNbJ3RlbXBsYXRlJ10gIT0gJycpCgl7CgkJJHRlbXBsYXRlY29kZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKCX0KCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVkZXRhaWxzJ10pKQoJewoJCSR0ZW1wbGF0ZWNvZGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZWRldGFpbHMnXTsKCX0KCWVsc2UgCgl7CgkJJHRlbXBsYXRlY29kZSA9ICcnOwoJfQoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvZGVfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnY29kZVRlbXBsYXRlJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZXh0YXJlYV90ZW1wbGF0ZScsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR0ZW1wbGF0ZWNvZGUsICd0ZW1wbGF0ZWRldGFpbHMnLCAncGFnZWJpZ3RleHRhcmVhJywgJycsJycsICcnLCA5MCwgMTUsICdFZGl0QXJlYScpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdGJ1dHRvbicsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfYXBwbHknLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnYXBwbHlidXR0b24nLCAkdGhpcy0+TGFuZygnYXBwbHknKSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfcmVzdG9yZWxpc3QnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVzdG9yZWxpc3QnLCAkdGhpcy0+TGFuZygncmVzdG9yZWxpc3QnKSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfcmVzdG9yZWRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVzdG9yZWRldGFpbHMnLCAkdGhpcy0+TGFuZygncmVzdG9yZWRldGFpbHMnKSkpOwoKCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHRlbXBsYXRlLnRwbCcpOwoJCj8+]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.export.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ01hbmFnZSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKJGRhdGFzID0gYXJyYXkoKTsKCi8vIE1haW4gZW50cmllcwokZGF0YXNbJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlRnJpZW5kbHlOYW1lKCl9fSddID0ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fTo6RXhwb3J0RGF0YXMoKTsKCnt7Zm9yZWFjaCBmcm9tPSRjaGlsZF9tb2R1bGVzIGl0ZW09Y2hpbGRfbW9kdWxlfX0KJGRhdGFzWyd7eyRjaGlsZF9tb2R1bGUtPmdldE1vZHVsZUZyaWVuZGx5TmFtZSgpfX0nXSA9IHt7JGNoaWxkX21vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX06OkV4cG9ydERhdGFzKCk7Cnt7L2ZvcmVhY2h9fQoKLy8gQnkgZGVmYXVsdCwgYW5kIGlmIHRoZSBtb2R1bGUgQ01TIEV4Y2VsIGV4aXN0cywgd2UgZXhwb3J0IHRvIGV4Y2VsLgoKaWYgKE1DRlRvb2xzOjpJc01vZHVsZUFjdGl2ZSgnQ01TRXhjZWwnKSkKewoJJHBhcmFtcyA9IGFycmF5KAoJCSdjcmVhdG9yJyA9PiAnTSZDIEZhY3RvcnknLAoJCSd0aXRsZScgPT4gJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlRnJpZW5kbHlOYW1lKCl9fSBleHBvcnQnLAoJCSdzdWJqZWN0JyA9PiAne3skbW9kdWxlLT5nZXRNb2R1bGVGcmllbmRseU5hbWUoKX19IGV4cG9ydCcsCgkJKTsKCQoJJHN0YWNrID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDTVNFeGNlbCcpLT5idWlsZEV4Y2VsKCRkYXRhcywkcGFyYW1zKTsKCQoJJGxpbmsgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NNU0V4Y2VsJyktPmdldEV4Y2VsTGluaygkc3RhY2ssYXJyYXkoJ2ZpbGVuYW1lJyA9PiAne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fV9leHBvcnRfJy5kYXRlKCdZLW0tZF9ILWktcycpLicueGxzJykpOwoJCgllY2hvICc8aDM+Jy4kdGhpcy0+bGFuZygnZXhwb3J0JykuJzwvaDM+PHA+PGEgaHJlZj0iJy4kbGluay4nIiByZWw9ImV4dGVybmFsIiA+Jy4kdGhpcy0+bGFuZygnZG93bmxvYWQnKS4nPC9hPjwvcD4nOwp9CmVsc2UKewoJPz4KCTxoMz48P3BocCBlY2hvICR0aGlzLT5sYW5nKCdzZXJpYWxpemVkX2RhdGFzJyk7Pz48L2gzPgoJPHRleHRhcmVhPjw/cGhwIGVjaG8gc2VyaWFsaXplKCRkYXRhcyk7ID8+PC90ZXh0YXJlYT4gCgk8ZW0+KFRyeSB0byBpbnN0YWxsIHRoZSBDTVNFeGNlbCBtb2R1bGUgdG8gaGF2ZSBhIGJldHRlciBleHBvcnQgc3VwcG9ydCk8L2VtPgoJPHA+PGEgaHJlZj0iPD9waHAgZWNobyAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2V4cG9ydF9kYXQnLCRkZXRhaWxwYWdlLCcnLGFycmF5KCksJycsdHJ1ZSxmYWxzZSwnJyxmYWxzZSwnJyk7ID8+JnNob3d0ZW1wbGF0ZT1mYWxzZSIgdGFyZ2V0PSJfbmV3Ij5Eb3dubG9hZCBhcyBmaWxlPC9hPjwvcD4KCTxwPjxhIGhyZWY9Ijw/cGhwIGVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdleHBvcnRfZGInLCRkZXRhaWxwYWdlLCcnLGFycmF5KCksJycsdHJ1ZSxmYWxzZSwnJyxmYWxzZSwnJyk7ID8+JnNob3d0ZW1wbGF0ZT1mYWxzZSIgdGFyZ2V0PSJfbmV3Ij5Eb3dubG9hZCBmdWxsIGVudHJpZXMgYXMgb2JqZWN0czwvYT48L3A+Cgk8cD48YSBocmVmPSI8P3BocCBlY2hvICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnaW1wb3J0X2RiJywkZGV0YWlscGFnZSwnJyxhcnJheSgpLCcnLHRydWUsZmFsc2UsJycsZmFsc2UsJycpOyA/PiI+SW1wb3J0IGVudHJpZXMgZnJvbSAuZGF0IGZpbGU8L2E+PC9wPgoJPD9waHAKfQ==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.export_dat.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ0FkbWluIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgokZGF0YXMgPSBhcnJheSgpOwoKLy8gTWFpbiBlbnRyaWVzCiRkYXRhc1sne3skbW9kdWxlLT5nZXRNb2R1bGVGcmllbmRseU5hbWUoKX19J10gPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19OjpFeHBvcnREYXRhcygpOwoKaGVhZGVyKCdDb250ZW50LXR5cGU6IHRleHQvcGxhaW4nKTsKaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ie3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS5kYXQiJyk7CmVjaG8gc2VyaWFsaXplKCRkYXRhcyk7CmV4aXQ7]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.export_db.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ0FkbWluIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgokZGF0YXMgPSBhcnJheSgpOwoKLy8gTWFpbiBlbnRyaWVzCiRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiRlbnRyaWVzID0ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6ZG9TZWxlY3QoJGMpOwoKaGVhZGVyKCdDb250ZW50LXR5cGU6IHRleHQvcGxhaW4nKTsKaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ie3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fV9lbnRyaWVzLmRhdCInKTsKZWNobyBiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkZW50cmllcykpOwpleGl0Ow==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.fefilter.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0Ow==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.geturl.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIERFUFJFQ0FURUQKCiR1cmxhY3Rpb24gPSBpc3NldCgkcGFyYW1zWyd1cmxhY3Rpb24nXSkgPyAkcGFyYW1zWyd1cmxhY3Rpb24nXSA6ICdkZWZhdWx0JzsKdW5zZXQoJHBhcmFtc1sndXJsYWN0aW9uJ10pOwoKJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pKSB7CiAgICAkbWFuYWdlciA9IGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICRub2RlID0mICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgIGlmIChpc3NldCgkbm9kZSkpIHsKICAgICAgICAkY29udGVudCA9JiAkbm9kZS0+R2V0Q29udGVudCgpOwogICAgICAgIGlmIChpc3NldCgkY29udGVudCkpCiAgICAgICAgewogICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50LT5JZCgpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgJG5vZGUgPSYgJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogICAgICAgIGlmIChpc3NldCgkbm9kZSkpIHsKICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkcGFyYW1zWydkZXRhaWxwYWdlJ107CiAgICAgICAgfQogICAgfQoKICAgICRwYXJhbXNbJ29yaWdpZCddID0gJHJldHVybmlkOwp9CgoKZWNobyAkdGhpcy0+Y3JlYXRlTGluaygkaWQsICR1cmxhY3Rpb24sICRkZXRhaWxwYWdlLCAkY29udGVudHM9JycsICRwYXJhbXMsICcnLCB0cnVlKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.ical.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2lkJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2lkcyddKSkKewoJCgkkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwoJJGMtPmFkZCgncHVibGlzaGVkJywgJzEnKTsKCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2lkJ10pKQoJewkJCgkJJGMtPmFkZCgnaWQnLCAkcGFyYW1zWydldmVudF9pZCddKTsKCX0KCWVsc2UKCXsKCQkkYy0+YWRkKCdpZCcsICRwYXJhbXNbJ2V2ZW50X2lkcyddLCBNQ0ZDcml0ZXJpYTo6SU4pOwoJfQoJCgl7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpnbG9iYWxGcm9udGVuZEZpbHRlcnMoJGMpOwoJCgkkaXRlbXMgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdCgkYyk7CgkKCWlmKE1DRkNhbGVuZGFyOjpjaGVja0NvbXBhdGliaWxpdHkoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3QnKSkKCXsKCQlNQ0ZDYWxlbmRhcjo6bG9hZGlDYWxMaWJyYXJpZXMoKTsKCQkKCQkkYSA9IG5ldyBpQ2FsZW5kYXI7CgkJCgkJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQoJCXsKCQkJJGV2ID0gbmV3IGlDYWxlbmRhcl9ldmVudDsKCgkJCS8vIENvbnZlbmllbmNlOiBpZiB5b3UgZG9uJ3Qgc3BlY2lmeSB0aGlzLCBvbmUgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZAoJCQkvLyRldi0+YWRkX3Byb3BlcnR5KCd1aWQnLCAnNDMwNmY5M2UtZTM3OS0xMWQ5LWJkNTctZmYwZTdlMGQ1ZDUwJyk7CgkJCS8vJGV2LT5hZGRfcHJvcGVydHkoJ3VpZCcsIHJmYzI0NDVfZ3VpZCgpKTsKCQkJLy8gQXR0YWNobWVudHM6IGFuIGFwcGxpY2F0aW9uIGFuZCBhIFVSTAoJCQkvLyRldi0+YWRkX3Byb3BlcnR5KCdhdHRhY2gnLCBiYXNlNjRfZW5jb2RlKCdBcHBsaWNhdGlvbi1EYXRhLU9jdGV0cycpLCBhcnJheSgnZm10dHlwZScgPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsICdlbmNvZGluZycgPT4gJ0JBU2U2NCcsICd2YWx1ZScgPT4gJ2JpbkFSWScpKTsKCQkJLy8kZXYtPmFkZF9wcm9wZXJ0eSgnYXR0YWNoJywgJ2h0dHA6Ly93d3cubW9vZGxlLm9yZy8nKTsKCgkJCS8vIFN1bW1hcnkgYW5kIGRlc2NyaXB0aW9uOyBhbHNvIHJlc291cmNlcwoJCQkkZXYtPmFkZF9wcm9wZXJ0eSgnc3VtbWFyeScsICRpdGVtLT5nZXRUaXRsZSgpKTsKCQkJaWYgKG1ldGhvZF9leGlzdHMoJGl0ZW0sICdnZXREZXNjcmlwdGlvbicpKQoJCQl7CgkJCQkkZXYtPmFkZF9wcm9wZXJ0eSgnZGVzY3JpcHRpb24nLCAkaXRlbS0+Z2V0RGVzY3JpcHRpb24oKSk7CgkJCX0KCQkJaWYgKG1ldGhvZF9leGlzdHMoJGl0ZW0sICdnZXRSZXNvdXJjZXMnKSkKCQkJewoJCQkJJGV2LT5hZGRfcHJvcGVydHkoJ3Jlc291cmNlcycsIGV4cGxvZGUoJywnLCRpdGVtLT5nZXRSZXNvdXJjZXMoKSkpOwkJCQkKCQkJfQoJCQkvLyBTdGFydC1lbmQgZGF0ZQoJCQkvLyRldi0+YWRkX3Byb3BlcnR5KCdjbGFzcycsICdQUklWQVRFJyk7CgkJCQoJCQkJCQkkZXYtPmFkZF9wcm9wZXJ0eSgnZHRzdGFydCcsCgkJCQkJCWRhdGUoJ1ltZCcsIHN0cnRvdGltZSgkaXRlbS0+Z2V0U3RhcnREYXRlKCkpKSAsYXJyYXkoJ3ZhbHVlJyA9PiAnREFURScpCgkJCQkJCSk7CgoJCQkJCQkkZXYtPmFkZF9wcm9wZXJ0eSgnZHRlbmQnLCAKCQkJCQkJZGF0ZSgnWW1kJywgc3RydG90aW1lKCRpdGVtLT5nZXRFbmREYXRlKCkgLicgKyAxIGRheScpKSxhcnJheSgndmFsdWUnID0+ICdEQVRFJykgLy8gTmVlZCB0byBwdXQgb25lIGRheSBsYXRlciBmb3IgdGhpcyB0byB3b3JrLiBEb24ndCBhc2sgd2h5Li4uCgkJCQkJCSk7CgoJCQkvLwkJCSRldi0+YWRkX3Byb3BlcnR5KCdkdHN0YW1wJywgJzIwMDUwNjIyVDIzNTYwMVonKTsKCgkJCQkJCSRldi0+YWRkX3Byb3BlcnR5KCdkdHN0YW1wJywgCgkJCQkJIAkJZGF0ZSgnWW1kXFRIaXNcWicsIHN0cnRvdGltZSgkaXRlbS0+Z2V0Q3JlYXRlZEF0KCkpKQoJCQkJCQkpOwoJCQkJCQkKCQkvLwkkZXYtPmFkZF9wcm9wZXJ0eSgnYXR0ZW5kZWUnLCAnbWFpbHRvOnBqQHVvbS5ncicsIGFycmF5KCdjbicgPT4gJ0pvaG4gUGFwYWlvYW5ub3UnLCAnZGVsZWdhdGVkLWZyb20nID0+IGFycmF5KCdtYWlsdG86YmxhQHNvbWUubmV0JywgJ21haWx0bzpibGFAc29tZS5uZXQnKSkpOwoJCQkvLyRldi0+YWRkX3Byb3BlcnR5KCdleGRhdGUnLCBhcnJheSgnMjAwNTA2MjJUMjM1NjAxWicsICcyMDA2MDYyMlQyMzU2MDFaJykpOwoJCQkvLyRldi0+YWRkX3Byb3BlcnR5KCdleHJ1bGUnLCAnRlJFUT1XRUVLTFk7Q09VTlQ9NDtJTlRFUlZBTD0yO0JZREFZPVRVLFRIJyk7CgkJCS8vJGV2LT5hZGRfcHJvcGVydHkoJ3JlcXVlc3Qtc3RhdHVzJywgJzIuMy4xO1NvbWUgZXhwbGFuYXRpb24gZm9yIHRoZSByZXF1ZXN0IHN0YXR1cyBjb2RlJyk7CgkJCS8vJGV2LT5hZGRfcHJvcGVydHkoJ3JlY3VycmVuY2UtaWQnLCAnMjAwNTA2MjJUMjM1NjAxWicsIGFycmF5KCd2YWx1ZScgPT4gJ0RBVEUtVElNRScsICdyYW5nZScgPT4gJ3RoaXNBTkRGVVRVUkUnKSk7CgkJCS8vJGV2LT5hZGRfcHJvcGVydHkoJ3JkYXRlJywgYXJyYXkoJzE5OTYwNDAzVDAyMDAwMFovMTk5NjA0MDNUMDQwMDAwWicsJzE5OTYwNDA0VDAxMDAwMFovUFQzSCcpLCBhcnJheSgndmFsdWUnID0+ICdQRVJJT0QnKSk7CgkJCS8vJGV2LT5hZGRfcHJvcGVydHkoJ3JkYXRlJywgYXJyYXkoMTk5NzAxMDEsMTk5NzAxMjAsMTk5NzAyMTcsMTk5NzA0MjEsMTk5NzA1MjYsMTk5NzA3MDQsMTk5NzA5MDEsMTk5NzEwMTQsMTk5NzExMjgsMTk5NzExMjksMTk5NzEyMjUpLCBhcnJheSgndmFsdWUnID0+ICdEQVRFJykpOwoJCQkvLyRldi0+YWRkX3Byb3BlcnR5KCdnZW8nLCBhcnJheSgzNy4zODYwMTMsLTEyMi4wODI5MzIpKTsKCQkJLy8kZXYtPmFkZF9wcm9wZXJ0eSgnb3JnYW5pemVyJywgJ01BSUxUTzpqc21pdGhAaG9zdDEuY29tJywgYXJyYXkoJ2NuJyA9PiAnSm9obiBDLiBTbWl0aCcsICdkaXInID0+ICdsZGFwOi8vaG9zdC5jb206NjY2Ni9vPTNEREMlMjBBc3NvY2lhdGVzLGM9M0RVUz8/KGNuPTNESm9obiUyMFNtaXRoKScpKTsKCgkJCSRhLT5hZGRfY29tcG9uZW50KCRldik7CgkJfQoKCQkkYS0+YWRkX3Byb3BlcnR5KCdwcm9kaWQnLCAnLS8vTSZDIC0gSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyLy9NJkMgRmFjdG9yeSAyMDEwLy9FTicpOwoJLy8JJGEtPmFkZF9wcm9wZXJ0eSgndmVyc2lvbicsICcyLjAnKTsKCQkkYS0+YWRkX3Byb3BlcnR5KCdjYWxzY2FsZScsICdHUkVHT1JJQU4nKTsKCS8vCSRhLT5hZGRfcHJvcGVydHkoJ21ldGhvZCcsICdQVUJMSVNIJyk7CgkKCQkvL2hlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2NhbGVuZGFyIik7CgkJY21zbXMoKS0+c2V0X3ZhcmlhYmxlKCdjb250ZW50LXR5cGUnLCAndGV4dC9jYWxlbmRhcicpOwoJICBoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9aUNhbC5pY3MiKTsKCQkKCQllY2hvICRhLT5zZXJpYWxpemUoKTsKCgl9CQp9]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.import_db.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ0FkbWluIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgokZm9ybSA9IG5ldyBDTVNGb3JtKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JywgJGlkLCdpbXBvcnRfZGInLCRyZXR1cm5pZCk7CgppZigkZm9ybS0+aXNQb3N0ZWQoKSkKewogIAp9CmVsc2UKewogICRmb3JtLT5zZXRMYWJlbCgnc3VibWl0JywgJ0ltcG9ydCcpOwogICRmb3JtLT5zZXRXaWRnZXQoJ2ZpbGUnLCAnZmlsZScpOwp9CgoKZWNobyAkZm9ybS0+cmVuZGVyKCk7]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.link_to.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWNtc21zKCkpIGV4aXQ7CgppZihpc3NldCgkcGFyYW1zWydtYWN0aW9uJ10pKQp7Cgl1bnNldCgkcGFyYW1zWydhY3Rpb24nXSk7CgkkYWN0aW9uID0gJHBhcmFtc1snbWFjdGlvbiddOwoJdW5zZXQoJHBhcmFtc1snbWFjdGlvbiddKTsKCQoJJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CglpZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJICAgICRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwoJICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJICAgIGlmICgkbm9kZSkgewoJICAgICAgICAkY29udGVudCA9ICRub2RlLT5HZXRDb250ZW50KCk7CgkgICAgICAgIGlmICgkY29udGVudCkKCSAgICAgICAgewoJICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCSAgICAgICAgfQoJICAgIH0gZWxzZSB7CgkgICAgICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJICAgICAgICBpZiAoJG5vZGUpIHsKCSAgICAgICAgICAgICRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJICAgICAgICB9CgkgICAgfQoJICAgICRwYXJhbXNbJ29yaWdpZCddID0gJHJldHVybmlkOwoJfQoJdW5zZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsJCgkkdGl0bGUgPSBpc3NldCgkcGFyYW1zWyd0aXRsZSddKT8kcGFyYW1zWyd0aXRsZSddOidsaW5rJzsKCXVuc2V0KCRwYXJhbXNbJ3RpdGxlJ10pOwoJdW5zZXQoJHBhcmFtc1snb3JpZ2lkJ10pOwoKCgkkd2l0aHNsYXNoID0gKGlzc2V0KCRwYXJhbXNbJ3dpdGhzbGFzaCddKSk/dHJ1ZTpmYWxzZTsKCQoJdW5zZXQoJHBhcmFtc1snd2l0aHNsYXNoJ10pOwoKCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCRhY3Rpb24sJGRldGFpbHBhZ2UsJHRpdGxlLCRwYXJhbXMsJycsZmFsc2UsZmFsc2UsJycsZmFsc2UsJycsJHdpdGhzbGFzaCk7Cn0KcmV0dXJuOwo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.module_action.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gQXV0by1nZW5lcmF0ZSBGaWxlCmlmICghY21zbXMoKSkgZXhpdDsKCnt7aWYgJGFjdGlvbl9vYmotPmlzX3B1YmxpYyBuZSAxfX0KaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ01hbmFnZSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQp7ey9pZn19CgovLyBTUEVDSUZJQyBDT0RFIEZPUiBUSEUgQUNUSU9OCgp7eyRhY3Rpb25fb2JqLT5jb2RlfHJlcGxhY2U6Jzw/cGhwJzonJ319]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.movedown.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKJHZpZXcgPSBuZXcgTUNGTGlzdFZpZXcoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkcGFyYW1zKTsKCmlmIChpc3NldCgkcGFyYW1zWydpdGVtX2lkJ10pICYmICFlbXB0eSgkcGFyYW1zWydpdGVtX2lkJ10pKSB7CgkkaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmdldEJ5SWQoJHBhcmFtc1snaXRlbV9pZCddKTsKCSRwb3MxID0gJGl0ZW0tPmdldE9yZGVyQnkoKTsKCSRwYXJlbnRfaXRlbSA9ICRpdGVtLT5nZXRQYXJlbnRJdGVtKCk7CgkkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwoJJGMtPmFkZCgnb3JkZXJfYnknLCAkcG9zMSwgTUNGQ3JpdGVyaWE6OkdSRUFURVJfVEhBTik7CglpZiAoJHBhcmVudF9pdGVtKSB7CgkgICAgJGMtPmFkZCgncGFyZW50X2l0ZW0nLCAkcGFyZW50X2l0ZW0pOwoJfQoJJGMtPmFkZEFzY2VuZGluZ09yZGVyQnlDb2x1bW4oJ29yZGVyX2J5Jyk7CgkkYy0+c2V0TGltaXQoMSk7CglpZiAoJG5leHQgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdE9uZSgkYykpIHsKCSAgICAkcG9zMiA9ICRuZXh0LT5nZXRPcmRlckJ5KCk7CgkgICAgJG5leHQtPnNldE9yZGVyQnkoJHBvczEpOwoJICAgICRuZXh0LT5zYXZlKCk7CgkgICAgJGl0ZW0tPnNldE9yZGVyQnkoJHBvczIpOwoJICAgICRpdGVtLT5zYXZlKCk7Cgl9Cn0KCnt7aWYgJHBhcmVudF9tb2R1bGV9fQokcGFyZW50ID0gbmV3IHt7JHBhcmVudF9tb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19KCk7CiRwYXJlbnQtPlJlZGlyZWN0KCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldFBhcmVudEl0ZW0oKSkpOwp7e2Vsc2V9fQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSkpOwp7ey9pZn19CmV4aXQ7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.moveup.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKJHZpZXcgPSBuZXcgTUNGTGlzdFZpZXcoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkcGFyYW1zKTsKCmlmIChpc3NldCgkcGFyYW1zWydpdGVtX2lkJ10pICYmICFlbXB0eSgkcGFyYW1zWydpdGVtX2lkJ10pKSB7CgkkaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmdldEJ5SWQoJHBhcmFtc1snaXRlbV9pZCddKTsKCSRwb3MxID0gJGl0ZW0tPmdldE9yZGVyQnkoKTsKCSRwYXJlbnRfaXRlbSA9ICRpdGVtLT5nZXRQYXJlbnRJdGVtKCk7CgkkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwoJJGMtPmFkZCgnb3JkZXJfYnknLCAkcG9zMSwgTUNGQ3JpdGVyaWE6OkxFU1NfVEhBTik7CglpZiAoJHBhcmVudF9pdGVtKSB7CgkgICAgJGMtPmFkZCgncGFyZW50X2l0ZW0nLCAkcGFyZW50X2l0ZW0pOwoJfQoJJGMtPmFkZERlc2NlbmRpbmdPcmRlckJ5Q29sdW1uKCdvcmRlcl9ieScpOwoJJGMtPnNldExpbWl0KDEpOwoJaWYgKCRwcmV2ID0ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6ZG9TZWxlY3RPbmUoJGMpKSB7CgkgICAgJHBvczIgPSAkcHJldi0+Z2V0T3JkZXJCeSgpOwoJICAgICRwcmV2LT5zZXRPcmRlckJ5KCRwb3MxKTsKCSAgICAkcHJldi0+c2F2ZSgpOwoJICAgICRpdGVtLT5zZXRPcmRlckJ5KCRwb3MyKTsKCSAgICAkaXRlbS0+c2F2ZSgpOwoJfQp9Cgp7e2lmICRwYXJlbnRfbW9kdWxlfX0KJHBhcmVudCA9IG5ldyB7eyRwYXJlbnRfbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSgpOwokcGFyZW50LT5SZWRpcmVjdCgkaWQsICdlZGl0JywgJHJldHVybmlkLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSwgJ2l0ZW1faWQnID0+ICRpdGVtLT5nZXRQYXJlbnRJdGVtKCkpKTsKe3tlbHNlfX0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCkpKTsKe3svaWZ9fQpleGl0OwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.publish.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKJHZpZXcgPSBuZXcgTUNGTGlzdFZpZXcoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkcGFyYW1zKTsKCiRpdGVtID0ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6Z2V0QnlJZCgkcGFyYW1zWydpdGVtX2lkJ10pOwokaXRlbS0+c2V0UHVibGlzaGVkKCRpdGVtLT5nZXRQdWJsaXNoZWQoKSA/IDAgOiAxKTsKJGl0ZW0tPnNhdmUoKTsKCnt7aWYgJHBhcmVudF9tb2R1bGV9fQokcGFyZW50ID0gbmV3IHt7JHBhcmVudF9tb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19KCk7CiRwYXJlbnQtPlJlZGlyZWN0KCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldFBhcmVudEl0ZW0oKSwgJ3RhYicgPT4gJHRoaXMtPmdldE5hbWUoKSkpOwp7e2Vsc2V9fQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSkpOwp7ey9pZn19Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.rss.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKJGMtPmFkZCgncHVibGlzaGVkJywgJzEnKTsKCgokbW9kdWxleHRlbmRlciA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlWHRlbmRlcicpOwppZiAoaXNzZXQoJHBhcmFtc1snY3VycmVudHBhZ2UnXSkpIHsKCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2NvbnRlbnRfaWQnKSwgJ3BhZ2VzJyksIE1DRkNyaXRlcmlhOjpJTik7Cn0KaWYgKGlzc2V0KCRwYXJhbXNbJ3BhZ2VzJ10pKSB7CgkkZ2x1ZSA9IGlzc2V0KCRwYXJhbXNbJ2FsbF9wYWdlcyddKSA/ICdBTkQnIDogJ09SJzsKCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBleHBsb2RlKCcsJywgJHBhcmFtc1sncGFnZXMnXSksICdwYWdlcycsICRnbHVlKSwgTUNGQ3JpdGVyaWE6OklOKTsKfQppZiAoaXNzZXQoJHBhcmFtc1snb3B0aW9ucyddKSkgewoJJGdsdWUgPSBpc3NldCgkcGFyYW1zWydhbGxfb3B0aW9ucyddKSA/ICdBTkQnIDogJ09SJzsKCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBleHBsb2RlKCcsJywgJHBhcmFtc1snb3B0aW9ucyddKSwgJ29wdGlvbnMnLCAkZ2x1ZSksIE1DRkNyaXRlcmlhOjpJTik7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydteGZpbHRlcnNfb3B0aW9ucyddKSAmJiBpc19hcnJheSgkcGFyYW1zWydteGZpbHRlcnNfb3B0aW9ucyddKSkgewoJJG9wdGlvbnMgPSBhcnJheSgpOwoJZm9yZWFjaCAoJHBhcmFtc1snbXhmaWx0ZXJzX29wdGlvbnMnXSBhcyAkb3B0aW9uKSB7CgkJaWYgKCRvcHRpb24pIHsKCQkJJG9wdGlvbnNbXSA9ICRvcHRpb247CgkJfQoJfQoJaWYgKGNvdW50KCRvcHRpb25zKSkgewoJCSRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkb3B0aW9ucywgJ29wdGlvbnMnLCAnQU5EJyksIE1DRkNyaXRlcmlhOjpJTik7Cgl9Cn0KCnt7Zm9yZWFjaCBmcm9tPSRmaWx0ZXJzIGl0ZW09ZmlsdGVyfX0KaWYgKGlzc2V0KCRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSkpIHsKCXt7aWYgaW5fYXJyYXkoJGZpbHRlci50eXBlLCBhcnJheSgnbGVzcycsICdsZXNzX2VxdWFsJywgJ2dyZWF0ZXInLCAnZ3JlYXRlcl9lcXVhbCcpKX19CgkkYy0+YWRkKCdDQVNUKHt7JGZpbHRlci5maWVsZH19IEFTIFVOU0lHTkVEKScsICRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKCXt7ZWxzZWlmICBpbl9hcnJheSgkZmlsdGVyLnR5cGUsIGFycmF5KCdsaWtlX3dpbGQnKSl9fQoJJGMtPmFkZCgnJXt7JGZpbHRlci5maWVsZH19JScsICRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKCXt7ZWxzZX19CgkkYy0+YWRkKCd7eyRmaWx0ZXIuZmllbGR9fScsICRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKCXt7L2lmfX0KfQp7ey9mb3JlYWNofX0KCmlmIChpc3NldCgkcGFyYW1zWydsaW1pdCddKSkgewoJJGMtPnNldExpbWl0KCRwYXJhbXNbJ2xpbWl0J10pOwp9CmVsc2UKewoJJGMtPnNldExpbWl0KDI1KTsKfQoKJGMtPmFkZERlc2NlbmRpbmdPcmRlckJ5Q29sdW1uKCd1cGRhdGVkX2F0Jyk7CiRjLT5hZGREZXNjZW5kaW5nT3JkZXJCeUNvbHVtbignaWQnKTsKCnt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6Omdsb2JhbEZyb250ZW5kRmlsdGVycygkYyk7CgokaXRlbXMgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdCgkYyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGl0ZW1zKTsKJGNvbmZpZyA9IGNtc191dGlsczo6Z2V0X2NvbmZpZygpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdyb290X3VybCcsICRjb25maWdbJ3Jvb3RfdXJsJ10pOwoKaWYoIHByZWdfbWF0Y2goICcvTW96aWxsYS8nLCAkX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl0gKSApCnsKICBjbXNtcygpLT5zZXRfdmFyaWFibGUoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L3htbCcpOwp9CmVsc2UgCnsKICBjbXNtcygpLT5zZXRfdmFyaWFibGUoJ2NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi9yc3MreG1sJyk7Cn0KCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZvcigncnNzJywgJHBhcmFtcyk7]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.search.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKJGZvcm0gPSBuZXcgQ01TRm9ybSgkdGhpcy0+R2V0TmFtZSgpLCAkaWQsJ2RlZmF1bHQnLChpc3NldCgkcGFyYW1zWydyZXR1cm5pZCddKSA/ICRwYXJhbXNbJ3JldHVybmlkJ10gOiAkcmV0dXJuaWQpKTsKJGZvcm0tPnNldEJ1dHRvbnMoYXJyYXkoJ3N1Ym1pdCcpKTsKJGZvcm0tPnNldExhYmVsKCdzdWJtaXQnLCAnU2VhcmNoJyk7CgppZihpc3NldCgkcGFyYW1zWydmaWx0ZXJfdGl0bGUnXSkpICAkZm9ybS0+c2V0V2lkZ2V0KCdmaWx0ZXJfdGl0bGUnLCAndGV4dCcsIGFycmF5KCdzaXplJyA9PiAyMCwgJ2RlZmF1bHRfdmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl90aXRsZSddKT8kcGFyYW1zWydmaWx0ZXJfdGl0bGUnXTonJykpOwoKaWYoaXNzZXQoJHBhcmFtc1snZmlsdGVyX2FsbCddKSkgICRmb3JtLT5zZXRXaWRnZXQoJ2ZpbHRlcl9hbGwnLCAndGV4dCcsIGFycmF5KCdzaXplJyA9PiAyMCwgJ2RlZmF1bHRfdmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9hbGwnXSk/JHBhcmFtc1snZmlsdGVyX3RpdGxlJ106JycpKTsKCmlmIChpc3NldCgkcGFyYW1zWydmaWx0ZXJzJ10pKQp7CgkkZmlsdGVycyA9IGV4cGxvZGUoJ3wnLCAkcGFyYW1zWydmaWx0ZXJzJ10pOwoJZm9yZWFjaCAoJGZpbHRlcnMgYXMgJGZpbHRlcikKCXsKCQkkb3B0ID0gZXhwbG9kZSgnOycsICRmaWx0ZXIpOwoJCSRvcHRpb25zID0gYXJyYXkoKTsKCQlmb3JlYWNoKCRvcHQgYXMgJG9wKQoJCXsKCQkJJG8gPSBleHBsb2RlKCc9JywgJG9wKTsKCQkJJG9wdGlvbnNbdHJpbSgkb1swXSldID0gdHJpbSgkb1sxXSk7CgkJfQoJCWlmIChpc3NldCgkb3B0aW9uc1snbmFtZSddKSkKCQl7CgkJCSRuYW1lID0gJG9wdGlvbnNbJ25hbWUnXTsKCQkJdW5zZXQoJG9wdGlvbnNbJ25hbWUnXSk7CgkJCWlmKGlzc2V0KCRwYXJhbXNbJ2N1cnJlbnRfdmFsdWVzJ11bJG5hbWVdKSkgJG9wdGlvbnNbJ3ZhbHVlJ10gPSAkcGFyYW1zWydjdXJyZW50X3ZhbHVlcyddWyRuYW1lXTsKCQkJe3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6Z2V0RkVGaWx0ZXIoJiRmb3JtLCAkbmFtZSwgJG9wdGlvbnMpOwoJCX0KCX0KfQoKJG14ZmlsdGVycyA9IGFycmF5KCk7CmlmIChjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZVh0ZW5kZXInKS0+aXNYdGVuZGVkTW9kdWxlKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JykpIHsKCWZvcmVhY2ggKE1YX1JlbGF0aW9uOjpnZXRGaWx0ZXJzKCR0aGlzLT5nZXROYW1lKCkpIGFzICRmaWx0ZXIpIHsKCSAgICBpZiAoJGZpbHRlci0+Z2V0VHlwZSgpID09ICdjYXRlZ29yeScpIHsKCQkJaWYoaXNzZXQoJHBhcmFtc1sndGl0bGVfZmlsdGVyX2NhdGVnb3J5XycuJGZpbHRlci0+Z2V0SWQoKV0pKQoJCQl7CgkJCQkkdmFsdWVzID0gYXJyYXkoJHBhcmFtc1sndGl0bGVfZmlsdGVyX2NhdGVnb3J5XycuJGZpbHRlci0+Z2V0SWQoKV0gPT4gMCk7CgkJCX0KCQkJZWxzZQoJCQl7CQkJCQoJCSAgICAgJHZhbHVlcyA9IGFycmF5KCRmaWx0ZXItPmdldFRpdGxlKGZhbHNlLCB0cnVlKSA9PiAwKTsKCQkJfQogICAgCQlmb3JlYWNoICgkZmlsdGVyLT5nZXRSZWxhdGVkSXRlbXMoKSBhcyAkaXRlbSkgewogICAgCQkJJHZhbHVlc1skaXRlbS0+dGl0bGVdID0gJGl0ZW0tPmlkOwogICAgCQl9CiAgICAJCQoKCQkJCS8vJG14ZmlsdGVyc1skZmlsdGVyLT5nZXRJZCgpXSA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ214ZmlsdGVyc19vcHRpb25zWycgLiAkZmlsdGVyLT5pZCAuICddJywgJHZhbHVlcywgLTEsIGlzc2V0KCRwYXJhbXNbJ214ZmlsdGVyc19vcHRpb25zJ11bJGZpbHRlci0+aWRdKSA/ICRwYXJhbXNbJ214ZmlsdGVyc19vcHRpb25zJ11bJGZpbHRlci0+aWRdIDogJycpOwoJCQkJJGZvcm0tPnNldFdpZGdldCgnbXhmaWx0ZXJzX29wdGlvbnNbJyAuICRmaWx0ZXItPmlkIC4gJ10nLCAnc2VsZWN0JywgYXJyYXkoCgkJCQkJJ3ZhbHVlcycgPT4gJHZhbHVlcwoJCQkJCSwndmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ214ZmlsdGVyc19vcHRpb25zJ11bJGZpbHRlci0+aWRdKSA/ICRwYXJhbXNbJ214ZmlsdGVyc19vcHRpb25zJ11bJGZpbHRlci0+aWRdIDogJycKCQkJCSkpOwoJICAgIH0gCgkJCWVsc2VpZiAoJGZpbHRlci0+Z2V0VHlwZSgpID09ICdwYWdlJykgCgkJCXsKCQkJCWlmKGlzc2V0KCRwYXJhbXNbJ3RpdGxlX2ZpbHRlcl9wYWdlXycuJGZpbHRlci0+Z2V0SWQoKV0pKQoJCQkJewoJCQkJCSR2YWx1ZXMgPSBhcnJheSgkcGFyYW1zWyd0aXRsZV9maWx0ZXJfcGFnZV8nLiRmaWx0ZXItPmdldElkKCldID0+IDApOwoJCQkJfQoJCQkJZWxzZQoJCQkJewkJCQkKCQkgICAgICAkdmFsdWVzID0gYXJyYXkoJGZpbHRlci0+Z2V0VGl0bGUoZmFsc2UsIHRydWUpID0+IDApOwoJCQkJfQogICAgCQlmb3JlYWNoICgkZmlsdGVyLT5nZXRSZWxhdGVkSXRlbXMoKSBhcyAkaXRlbSkgewogICAgCQkJJHZhbHVlc1skaXRlbS0+dGl0bGVdID0gJGl0ZW0tPmlkOwogICAgCQl9CiAgICAJCQoJCQkJLy8kbXhmaWx0ZXJzWyRmaWx0ZXItPmdldElkKCldID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnbXhmaWx0ZXJzX3BhZ2VzWycgLiAkZmlsdGVyLT5pZCAuICddJywgJHZhbHVlcywgLTEsIGlzc2V0KCRwYXJhbXNbJ214ZmlsdGVyc19wYWdlcyddWyRmaWx0ZXItPmlkXSkgPyAkcGFyYW1zWydteGZpbHRlcnNfcGFnZXMnXVskZmlsdGVyLT5pZF0gOiAnJyk7CgkJCQkkZm9ybS0+c2V0V2lkZ2V0KCdteGZpbHRlcnNfcGFnZXNbJyAuICRmaWx0ZXItPmlkIC4gJ10nLCAnc2VsZWN0JywgYXJyYXkoCgkJCQkJJ3ZhbHVlcycgPT4gJHZhbHVlcwoJCQkJCSwndmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ214ZmlsdGVyc19wYWdlcyddWyRmaWx0ZXItPmlkXSkgPyAkcGFyYW1zWydteGZpbHRlcnNfcGFnZXMnXVskZmlsdGVyLT5pZF0gOiAnJwoJCQkJKSk7CgkgICAgfQoJfQp9Ci8qCgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkJywgJGlkKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0JywgKGlzc2V0KCRwYXJhbXNbJ3JldHVybmlkJ10pID8gJHBhcmFtc1sncmV0dXJuaWQnXSA6ICRyZXR1cm5pZCksICdwb3N0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhcmFtZXRlcnMnLCAkcGFyYW1zKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdteGZpbHRlcnMnLCAkbXhmaWx0ZXJzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZWZpbHRlcicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmlsdGVyX3RpdGxlJywgaXNzZXQoJHBhcmFtc1snZmlsdGVyX3RpdGxlJ10pID8gaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2ZpbHRlcl90aXRsZSddKSA6ICcnLCAyMCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpbHRlcl9hbGwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZpbHRlcl9hbGwnLCBpc3NldCgkcGFyYW1zWydmaWx0ZXJfYWxsJ10pID8gaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2ZpbHRlcl9hbGwnXSkgOiAnJywgMjApKTsKCi8qKi8KCgoKCmlmKGlzc2V0KCRwYXJhbXNbJ3ZpZXdfdGVtcGxhdGUnXSkpCnsKCSRmb3JtLT5zZXRXaWRnZXQoJ3RlbXBsYXRlJywgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJHBhcmFtc1sndmlld190ZW1wbGF0ZSddKSk7Cn0KCiRuZXdwYXJhbXMgPSAkcGFyYW1zOwp1bnNldCgkbmV3cGFyYW1zWydtb2R1bGUnXSk7CnVuc2V0KCRuZXdwYXJhbXNbJ2FjdGlvbiddKTsKdW5zZXQoJG5ld3BhcmFtc1sncGFnZSddKTsKdW5zZXQoJG5ld3BhcmFtc1sncmV0dXJuaWQnXSk7CnVuc2V0KCRuZXdwYXJhbXNbJ3ZpZXdfdGVtcGxhdGUnXSk7CnVuc2V0KCRuZXdwYXJhbXNbJ2ZpbHRlcnMnXSk7CnVuc2V0KCRuZXdwYXJhbXNbJ2N1cnJlbnRfdmFsdWVzJ10pOwpmb3JlYWNoKCRuZXdwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUpCnsKCSRmb3JtLT5zZXRXaWRnZXQoJGtleSwgJ2hpZGRlbicsIGFycmF5KCd2YWx1ZScgPT4gJHZhbHVlKSk7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybScsICRmb3JtKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRm9yKCdzZWFyY2gnLCAkcGFyYW1zKTsKcmV0dXJuOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.tagcloud.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKJGMtPmFkZCgncHVibGlzaGVkJywgJzEnKTsKCnt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmJ1aWxkRnJvbnRlbmRGaWx0ZXJzKCRjLCAkcGFyYW1zKTsKe3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6Z2xvYmFsRnJvbnRlbmRGaWx0ZXJzKCRjKTsKJGl0ZW1zID0ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6ZG9TZWxlY3QoJGMpOwoKJHRhZ3MgPSBhcnJheSgpOwpmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pCnsKCWlmIChtZXRob2RfZXhpc3RzKCRpdGVtLCAnZ2V0VGFncycpKQoJewkKCQkkdGFnbGluZSA9ICRpdGVtLT5nZXRUYWdzKGlzc2V0KCRwYXJhbXNbJ2Nsb3VkdHlwZSddKT8kcGFyYW1zWydjbG91ZHR5cGUnXTpudWxsKTsKCQlpZighZW1wdHkoJHRhZ2xpbmUpKQogICAgewoJCQkkZWxlbWVudHMgPSBleHBsb2RlKCcsJywgJHRhZ2xpbmUpOwoKCQkJZm9yZWFjaCAoJGVsZW1lbnRzIGFzICRlbGVtZW50KQoJCQl7CgkJCQlpZiAoaXNzZXQoJHRhZ3NbdHJpbSgkZWxlbWVudCldKSkKCQkJCXsKCQkJCQkkdGFnc1t0cmltKCRlbGVtZW50KV0rKzsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkdGFnc1t0cmltKCRlbGVtZW50KV0gPSAxOwoJCQkJfQoJCQl9CgkJfQoJfQkKfQphcnNvcnQoJHRhZ3MpOwoKaWYoaXNzZXQoJHBhcmFtc1snbGltaXQnXSkpCnsKCWlmICgkcGFyYW1zWydsaW1pdCddID4gMCkJJHRhZ3MgPSBhcnJheV9zbGljZSgkdGFncywgMCwgJHBhcmFtc1snbGltaXQnXSwgdHJ1ZSk7Cn0KZWxzZQp7CQoJJHRhZ3MgPSBhcnJheV9zbGljZSgkdGFncywgMCwgMTUsIHRydWUpOwp9CgovLyBOb3cgY2FsY3VsYXRlIHBlcmNlbnQKCiRtYXggPSBtYXgoJHRhZ3MpOwoKJG50YWdzID0gYXJyYXkoKTsKCmZvcmVhY2goJHRhZ3MgYXMgJHRhZyA9PiAkcG9wdWxhcml0eSkKewoJJG50YWdzW10gPSBhcnJheSgnY2xhc3MnID0+IGZsb29yKCRwb3B1bGFyaXR5LyRtYXgqMTApLCAndGFnJyA9PiAkdGFnLCAncG9wdWxhcml0eScgPT4gJHBvcHVsYXJpdHkpOwp9CgppZiAoIWlzc2V0KCRwYXJhbXNbJ25vc2h1ZmZsZSddKSkgc2h1ZmZsZSgkbnRhZ3MpOwoKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFncycsICRudGFncyk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGb3IoJ3RhZ2Nsb3VkJywgJHBhcmFtcyk7CnJldHVybjsKe3sqCi8vIAovLyBpZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgJiYgJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pKSB7Ci8vIAllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHBhcmFtc1sndGVtcGxhdGUnXSk7Ci8vIH0gZWxzZSB7Ci8vIAllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2Rpc3BsYXlfbGlzdCcpOwovLyB9Cip9fQ==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.template.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwogIAogICR0aGlzLT5zbWFydHktPmFzc2lnbignbXhfcGFyYW1zJywgJHBhcmFtcyk7CiAgCiAgaWYoaXNzZXQoJHBhcmFtc1snaXRlbSddKSkKICB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW0nLCAkcGFyYW1zWydpdGVtJ10pOwogIH0KCiAgaWYoaXNzZXQoJHBhcmFtc1snaXRlbXMnXSkpCiAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRwYXJhbXNbJ2l0ZW1zJ10pOwogIH0KCQogICRwYXJhbXNvYmogPSBuZXcgc3RkQ2xhc3MoKTsKICAkcGFyYW1zb2JqLT5wYXJhbXMgPSAkcGFyYW1zOwogICR0aGlzLT5zbWFydHktPmFzc2lnbignbWNmYWN0b3J5JywgJHBhcmFtc29iaik7CgogIGlmIChpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSAmJiAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSkpCiAgewogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwogIH0KICBlbHNlCiAgewogIAllY2hvICc8cD4nIC4gJHRoaXMtPmxhbmcoJ3Vua25vd25fdGVtcGxhdGUnKSAuICc8L3A+JzsKICB9CiAgCj8+]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.template_delete.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWNtc21zKCkpIGV4aXQ7CmlmICghICR0aGlzLT5DaGVja0FjY2VzcygnTW9kaWZ5IFRlbXBsYXRlcycpKSAvLyBSZXN0cmljdCB0byBhZG1pbiBwYW5lbCBhbmQgdXNlcnMgd2l0aCBwZXJtaXNzaW9uCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJZXhpdDsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pICYmICFlbXB0eSgkcGFyYW1zWyd0ZW1wbGF0ZSddKSkgewogICAgJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwoJCSR0aGlzLT5SZW1vdmVEZWZhdWx0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSk7Cn0KCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGVzJykpOwpleGl0Owo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.template_edit.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWNtc21zKCkpIGV4aXQ7CmlmICghICR0aGlzLT5DaGVja0FjY2VzcygnTW9kaWZ5IFRlbXBsYXRlcycpKSAvLyBSZXN0cmljdCB0byBhZG1pbiBwYW5lbCBhbmQgdXNlcnMgd2l0aCBwZXJtaXNzaW9uCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJZXhpdDsKfQoKJGZvcm0gPSBuZXcgQ01TRm9ybSgkdGhpcy0+R2V0TmFtZSgpLCAkaWQsICd0ZW1wbGF0ZV9lZGl0JywkcmV0dXJuaWQpOwokZm9ybS0+c2V0QnV0dG9ucyhhcnJheSgnc3VibWl0JywnYXBwbHknLCdjYW5jZWwnKSk7CiRmb3JtLT5zZXRNZXRob2QoJ3Bvc3QnKTsKJGZvcm0tPnNldFdpZGdldCgndGVtcGxhdGUnLCd0ZXh0JyxhcnJheSgndmFsaWRhdG9ycycgPT4gYXJyYXkoJ25vdF9lbXB0eScgPT4gdHJ1ZSkpKTsKJGZvcm0tPnNldFdpZGdldCgnY29kZScsICdjb2RlYXJlYScpOwokZm9ybS0+c2V0V2lkZ2V0KCdyZXN0b3JlX3RlbXBsYXRlX2Zyb20nLCAnc2VsZWN0JywgYXJyYXkoJ3ZhbHVlcycgPT4gYXJyYXlfbWVyZ2UoYXJyYXkoJ3NlbGVjdCcgPT4gJHRoaXMtPmxhbmcoJ3NlbGVjdCBvbmUnKSkse3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fTo6JGZyb250ZW5kX3RlbXBsYXRlcykpKTsKJGZvcm0tPnNldFdpZGdldCgnZGVmYXVsdF90ZW1wbGF0ZV9mb3InLCAnc2VsZWN0JywgYXJyYXkoJ3ZhbHVlcycgPT4gYXJyYXlfbWVyZ2UoYXJyYXkoJ3NlbGVjdCcgPT4gJHRoaXMtPmxhbmcoJ3NlbGVjdCBvbmUnKSkse3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fTo6JGZyb250ZW5kX3RlbXBsYXRlcykpKTsKCmlmICghJGZvcm0tPmdldFdpZGdldCgndGVtcGxhdGUnKS0+aXNFbXB0eSgpKQp7CglpZiAoJGZvcm0tPmdldFdpZGdldCgnY29kZScpLT5pc0VtcHR5KCkgJiYgISRmb3JtLT5pc1Bvc3RlZCgpKQoJewoJCSRmb3JtLT5nZXRXaWRnZXQoJ2NvZGUnKS0+c2V0VmFsdWVzKCR0aGlzLT5nZXRUZW1wbGF0ZSgkZm9ybS0+Z2V0V2lkZ2V0KCd0ZW1wbGF0ZScpLT5nZXRWYWx1ZSgpKSk7Cgl9CgkKCSRhY3Rpb24gPSAkdGhpcy0+aXNEZWZhdWx0VGVtcGxhdGUoJGZvcm0tPmdldFdpZGdldCgndGVtcGxhdGUnKS0+Z2V0VmFsdWUoKSk7CglpZiAoJGZvcm0tPmdldFdpZGdldCgnZGVmYXVsdF90ZW1wbGF0ZV9mb3InKS0+aXNFbXB0eSgpICYmICgkYWN0aW9uICE9PSBmYWxzZSkpCgl7CgkJJGZvcm0tPmdldFdpZGdldCgnZGVmYXVsdF90ZW1wbGF0ZV9mb3InKS0+c2V0VmFsdWVzKCRhY3Rpb24pOwoJfQp9CgppZiAoJGZvcm0tPmlzUG9zdGVkKCkpCnsKCSRyZXN0b3JlID0gJGZvcm0tPmdldFdpZGdldCgncmVzdG9yZV90ZW1wbGF0ZV9mcm9tJyktPmdldFZhbHVlKCk7CglpZiAoJHJlc3RvcmUgIT0gJycpCgl7CgkJaWYgKGlzX2ZpbGUoZGlybmFtZShfX0ZJTEVfXykgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RlbXBsYXRlcycgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2Zyb250ZW5kLicuJHJlc3RvcmUgLiAnLnRwbCcpKQoJCXsKCQkJJGZvcm0tPmdldFdpZGdldCgnY29kZScpLT5zZXRWYWx1ZXMoJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ2Zyb250ZW5kLicuJHJlc3RvcmUpKTsKCQkJJGZvcm0tPmdldFdpZGdldCgncmVzdG9yZV90ZW1wbGF0ZV9mcm9tJyktPnNldFZhbHVlcygnJyk7CgkJfQoJfQoJCgkkZm9ybS0+cHJvY2VzcygpOwoJCglpZighJGZvcm0tPmhhc0Vycm9ycygpKQoJewoJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJGZvcm0tPmdldFdpZGdldCgndGVtcGxhdGUnKS0+Z2V0VmFsdWUoKSwgJGZvcm0tPmdldFdpZGdldCgnY29kZScpLT5nZXRWYWx1ZSgpKTsKCQkJCgkJCSRhY3Rpb24gPSAkZm9ybS0+Z2V0V2lkZ2V0KCdkZWZhdWx0X3RlbXBsYXRlX2ZvcicpLT5nZXRWYWx1ZSgpOwoKCQkJaWYgKCRhY3Rpb24gPT0gJ3NlbGVjdCcpCgkJCXsKCQkJCSR0aGlzLT5SZW1vdmVEZWZhdWx0VGVtcGxhdGUoJGZvcm0tPmdldFdpZGdldCgndGVtcGxhdGUnKS0+Z2V0VmFsdWUoKSk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkKCQkJCSR0aGlzLT5BZGREZWZhdWx0VGVtcGxhdGUoJGFjdGlvbiwgJGZvcm0tPmdldFdpZGdldCgndGVtcGxhdGUnKS0+Z2V0VmFsdWUoKSk7CgkJCQkkZm9ybS0+Z2V0V2lkZ2V0KCdkZWZhdWx0X3RlbXBsYXRlX2ZvcicpLT5zZXRWYWx1ZXMoJGFjdGlvbik7CgkJCX0KCQkJCgkJCWlmICgkZm9ybS0+aXNTdWJtaXR0ZWQoKSkKCQkJewoJCQkJCXJldHVybiAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpKTsKCQkJfQoJfQp9CgppZiAoJGZvcm0tPmlzQ2FuY2VsbGVkKCkpCnsKCQkJcmV0dXJuICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGVzJykpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkJywgJGlkKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtJywgJGZvcm0pOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbi50ZW1wbGF0ZV9lZGl0LnRwbCcpOw==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.updateObjects.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghY21zbXMoKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoJ01hbmFnZSBNQyBGYWN0b3J5JykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQp7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojp1cGRhdGVPYmplY3RzKCk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.url_for.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWNtc21zKCkpIGV4aXQ7CgppZihpc3NldCgkcGFyYW1zWydtYWN0aW9uJ10pKQp7Cgl1bnNldCgkcGFyYW1zWydhY3Rpb24nXSk7CgkkYWN0aW9uID0gJHBhcmFtc1snbWFjdGlvbiddOwoJdW5zZXQoJHBhcmFtc1snbWFjdGlvbiddKTsKCWlmKGVtcHR5KCRyZXR1cm5pZCkpICRyZXR1cm5pZCA9ICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3BhZ2UnLCBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCkpOwoJJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CglpZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJICAgICRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwoJICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJICAgIGlmICgkbm9kZSkgewoJICAgICAgICAkY29udGVudCA9ICRub2RlLT5HZXRDb250ZW50KCk7CgkgICAgICAgIGlmICgkY29udGVudCkKCSAgICAgICAgewoJICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCSAgICAgICAgfQoJICAgIH0gZWxzZSB7CgkgICAgICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJICAgICAgICBpZiAoJG5vZGUpIHsKCSAgICAgICAgICAgICRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJICAgICAgICB9CgkgICAgfQoJICAgICRwYXJhbXNbJ29yaWdpZCddID0gJHJldHVybmlkOwoJfQoJdW5zZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsJCgl1bnNldCgkcGFyYW1zWydhc3NpZ24nXSk7CQoJdW5zZXQoJHBhcmFtc1snb3JpZ2lkJ10pOwkKCQoJaWYoaXNzZXQoJHBhcmFtc1snY2xlYW5fZW1wdHlfdmFsdWVzJ10pKQoJewoJCWZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkKCQl7CgkJCWlmIChlbXB0eSgkdmFsdWUpKQoJCQl7CgkJCQl1bnNldCgkcGFyYW1zWyRrZXldKTsKCQkJfQoJCX0KCQl1bnNldCgkcGFyYW1zWydjbGVhbl9lbXB0eV92YWx1ZXMnXSk7Cgl9CgkKCSR3aXRoc2xhc2ggPSAoaXNzZXQoJHBhcmFtc1snd2l0aHNsYXNoJ10pKT90cnVlOmZhbHNlOwkKCXVuc2V0KCRwYXJhbXNbJ3dpdGhzbGFzaCddKTsKCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCRhY3Rpb24sJGRldGFpbHBhZ2UsJycsJHBhcmFtcywnJyx0cnVlLGZhbHNlLCcnLGZhbHNlLCcnLCR3aXRoc2xhc2gpOwp9CnJldHVybjs=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/action.user_form.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKLyoKCVRoaXMgYWxsb3dzIEZyb250ZW5kIEZvcm1zIGZvciB0aGUgbW9kdWxlCiovCmlmICghe3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6Y2hlY2tQZXJtaXNzaW9ucygkcGFyYW1zKSkKewoJZWNobyAkdGhpcy0+bGFuZygneW91IGRvIG5vdCBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGlzIGFjdGlvbicpOwoJZXhpdDsKfQppZiAoaXNfb2JqZWN0KGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ01TVXNlcnMnKSkpIC8vIE9ubHkgd29yayB3aXRoIENNU1VzZXJzIGZvciBub3cuLi4KewoJJHVzZXIgPSBDTVNVc2Vyczo6Z2V0VXNlck9yTG9naW4oKTsKCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ2l0ZW1faWQnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2l0ZW1faWQnXSkpIHsKCQkkaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmdldEJ5SWQoJHBhcmFtc1snaXRlbV9pZCddKTsKCQlpZiAoJGl0ZW0tPmdldFVzZXJJZCgpICE9ICR1c2VyLT5nZXRJZCgpKQoJCXsKCQkJdW5zZXQoJGl0ZW0pOwoJCX0KCQlpZihpc19udWxsKCRpdGVtKSkKCQl7CgkJCXVuc2V0KCRpdGVtKTsKCQl9CgkJCgl9IAkKCWlmICghaXNzZXQoJGl0ZW0pKQoJIHsKCQkkaXRlbSA9IG5ldyB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0KCk7CgkJJGl0ZW0tPnNldFVzZXJJZCgkdXNlci0+Z2V0SWQoKSk7Cgl9CgkKCgkKCS8vIFRoZSBmb3JtCgkKCSRmb3JtID0gbmV3IENNU0Zvcm0oJHRoaXMtPkdldE5hbWUoKSwgJGlkLCAndXNlcl9mb3JtJywgJHJldHVybmlkKTsKCWlmKGlzc2V0KCRwYXJhbXNbJ2J1dHRvbnMnXSkpCgl7CgkJJGJ1dHRvbnMgPSBhcnJheSgpOwoJCSRsYWJlbHMgPSBhcnJheSgpOwoJCSRlYWNoID0gZXhwbG9kZSgnOycsaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2J1dHRvbnMnXSkpOwoJCWZvcmVhY2goJGVhY2ggYXMgJGJ1dHRuKQoJCXsKCQkJbGlzdCgkYnV0dG9uLCAkbGFiZWwpID0gZXhwbG9kZSgnPT4nLCBodG1sX2VudGl0eV9kZWNvZGUoJGJ1dHRuKSk7CgkJCSRidXR0b25zW10gPSB0cmltKCRidXR0b24pOwoJCQkkbGFiZWxzW3RyaW0oJGJ1dHRvbildID0gdHJpbSgkbGFiZWwpOwoJCX0KCQkkZm9ybS0+c2V0QnV0dG9ucygkYnV0dG9ucyk7CgkJZm9yZWFjaCgkbGFiZWxzIGFzICRidXR0b24gPT4gJGxhYmVsKQoJCXsKCQkJJGZvcm0tPnNldExhYmVsKCRidXR0b24sICRsYWJlbCk7CgkJfQoJfQoJJGZvcm0tPnNldFdpZGdldCgnaXRlbV9pZCcsICdoaWRkZW4nLCBhcnJheSgnb2JqZWN0JyA9PiAmJGl0ZW0sICdmaWVsZF9uYW1lJyA9PiAnaWQnKSk7CQoJLy8gaWYoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSAmJiAhaXNfbnVsbCgkcGFyYW1zWydpdGVtX2lkJ10pKQoJLy8gewoJLy8gCSRmb3JtLT5nZXRXaWRnZXQoJ2l0ZW1faWQnKS0+c2V0VmFsdWVzKGh0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWydpdGVtX2lkJ10pKTsKCS8vIH0KCSRmb3JtLT5zZXRXaWRnZXQoJ3RpdGxlJywgJ3RleHQnLCBhcnJheSgnb2JqZWN0JyA9PiAmJGl0ZW0pKTsJCgkkZm9ybS0+c2V0V2lkZ2V0KCdkaXNhYmxlZCcsICdoaWRkZW4nKTsJCgkJaWYoaXNzZXQoJHBhcmFtc1snZGlzYWJsZWQnXSkgJiYgIWlzX251bGwoJHBhcmFtc1snZGlzYWJsZWQnXSkpCgkJewoJCQkkZm9ybS0+Z2V0V2lkZ2V0KCdkaXNhYmxlZCcpLT5zZXRWYWx1ZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2Rpc2FibGVkJ10pKTsKCQl9CgkkZm9ybS0+c2V0V2lkZ2V0KCdoaWRkZW4nLCAnaGlkZGVuJyk7CQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2hpZGRlbiddKSAmJiAhaXNfbnVsbCgkcGFyYW1zWydoaWRkZW4nXSkpCgkJewoJCQkkZm9ybS0+Z2V0V2lkZ2V0KCdoaWRkZW4nKS0+c2V0VmFsdWVzKGh0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWydoaWRkZW4nXSkpOwoJCX0KCSRmb3JtLT5zZXRXaWRnZXQoJ2J1dHRvbnMnLCAnaGlkZGVuJyk7CQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2J1dHRvbnMnXSkgJiYgIWlzX251bGwoJHBhcmFtc1snYnV0dG9ucyddKSkKCQl7CgkJCSRmb3JtLT5nZXRXaWRnZXQoJ2J1dHRvbnMnKS0+c2V0VmFsdWVzKGh0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWydidXR0b25zJ10pKTsKCQl9CgkkZm9ybS0+c2V0TXVsdGlwYXJ0Rm9ybSgpOwoJCglpZiAoJHRoaXMtPmdldFByZWZlcmVuY2UoJ3Nob3dfcGFyZW50JywgJzAnKSA9PSAxKQoJewoJCSRmb3JtLT5zZXRXaWRnZXQoJ3BhcmVudF9pZCcsICdzZWxlY3QnLCBhcnJheSgKCQkJJ29iamVjdCcgPT4gJiRpdGVtLCAKCQkJJ3ZhbHVlcycgPT4gYXJyYXkoMCA9PiAnJykgKyAkaXRlbS0+Z2V0UG9zc2libGVQYXJlbnRzSGllcmFyY2h5KCkKCQkJKSk7CgkJCQoJCQlpZihpc3NldCgkcGFyYW1zWydwYXJlbnRfaWQnXSkgJiYgIWlzX251bGwoJHBhcmFtc1sncGFyZW50X2lkJ10pKQoJCQl7CgkJCQkkZm9ybS0+Z2V0V2lkZ2V0KCdwYXJlbnRfaWQnKS0+c2V0VmFsdWVzKCRwYXJhbXNbJ3BhcmVudF9pZCddKTsKCQkJfQoJfQoJCglpZihpc3NldCgkcGFyYW1zWydnb2JhY2snXSkpCgl7CgkJJGZvcm0tPnNldFdpZGdldCgnZ29iYWNrJywgJ2hpZGRlbicsYXJyYXkoJ3ZhbHVlJyA9PiAgJ3RydWUnKSk7CgkJJGZvcm0tPnNldFdpZGdldCgncmVkaXJlY3RfdXJsJywgJ2hpZGRlbicsYXJyYXkoJ3ZhbHVlJyA9PiAgJ2h0dHA6Ly8nIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pKTsKCX0KCQoJCnt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1WaWV3czo6Y3JlYXRlRm9ybSgkdGhpcywmJGZvcm0sJiRpdGVtLCRwYXJhbXMpOwoKLy92YXJfZHVtcCgkcGFyYW1zKTsKCi8vIGZvcmVhY2goKQoKaWYoaXNzZXQoJHBhcmFtc1snZGlzYWJsZWQnXSkpCnsKCSRkaXNhYmxlZCA9IGV4cGxvZGUoJzsnLCAkcGFyYW1zWydkaXNhYmxlZCddKTsKCWZvcmVhY2goJGRpc2FibGVkIGFzICRkaXNhYmxlKQoJewoJCSRmb3JtLT5yZW1vdmVXaWRnZXQoJGRpc2FibGUpOwoJfQp9CgppZihpc3NldCgkcGFyYW1zWydoaWRkZW4nXSkpCnsKCSRoaWRkZW4gPSBleHBsb2RlKCc7JywgJHBhcmFtc1snaGlkZGVuJ10pOwoJZm9yZWFjaCgkaGlkZGVuIGFzICRoaWRlKQoJewoJCSRmb3JtLT5oaWRlV2lkZ2V0KCRoaWRlKTsKCX0KfSAKCmlmICgkZm9ybS0+aXNQb3N0ZWQoKSkKewkKCSRmb3JtLT5wcm9jZXNzKCk7CglpZigkZm9ybS0+bm9FcnJvcigpKQoJewoJCSRpdGVtLT51cGxvYWRGaWxlcygkaWQpOwoJCSRpdGVtLT5zYXZlKGFycmF5KCdmcm9udGVuZCcgPT4gdHJ1ZSkpOwoJCSRpdGVtLT51c2VyUG9zdEFjdGlvbnMoJGlkLCRyZXR1cm5pZCwkZm9ybSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtJywgJGl0ZW0pOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3VjY2Vzc19tZXNzYWdlJywgJHRoaXMtPmxhbmcoJ2l0ZW0gcG9zdGVkJykpOwoJCQoJCWlmICgkZm9ybS0+Z2V0V2lkZ2V0KCdyZWRpcmVjdF91cmwnKSAmJiAhJGZvcm0tPmdldFdpZGdldCgncmVkaXJlY3RfdXJsJyktPmlzRW1wdHkoKSkKCQl7CgkJCXJldHVybiB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19OjpqdW1wVG8oJGZvcm0tPmdldFdpZGdldCgncmVkaXJlY3RfdXJsJyktPmdldFZhbHVlKCkpOwoJCX0KCQkJCQkJCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRm9yKCd1c2VyX2Zvcm1fc3VjY2VzcycpOwoJCXJldHVybjsKCX0KfQoKaWYoJGl0ZW0tPmdldElkKCkgPiAwKQp7CgkkZm9ybS0+Z2V0V2lkZ2V0KCdpdGVtX2lkJyktPnNldFZhbHVlcygkaXRlbS0+Z2V0SWQoKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1faWQnLCAkaXRlbS0+Z2V0SWQoKSk7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybScsICRmb3JtKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZvcigndXNlcl9mb3JtJywgJHBhcmFtcyk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/templates/classes/MCFModuleObject.class.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3QgZXh0ZW5kcyB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0QmFzZSB7Cgp7eyRtb2R1bGUtPmdldE1vZHVsZUxvZ2ljKCl8cmVwbGFjZTonPD9waHAnOicnfX0KCn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/classes/MCFModuleObjectBase.class.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGNvbmZpZyA9IGNtc191dGlsczo6Z2V0X2NvbmZpZygpOwpyZXF1aXJlX29uY2UoY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ2xpYicsICdjbGFzc2VzJywgJ21vZHVsZV9zdXBwb3J0JywgJ21vZHRlbXBsYXRlcy5pbmMucGhwJykpOwoKY2xhc3Mge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdEJhc2UgewoKICBwcm90ZWN0ZWQgJGlkOwogIHByb3RlY3RlZCAkdXNlcl9pZDsKICBwcm90ZWN0ZWQgJGNyZWF0ZWRfYXQ7CiAgcHJvdGVjdGVkICRjcmVhdGVkX2J5OwogIHByb3RlY3RlZCAkdXBkYXRlZF9hdDsKICBwcm90ZWN0ZWQgJHVwZGF0ZWRfYnk7CiAgcHJvdGVjdGVkICRtY2ZpX2NyZWF0ZWRfdGltZXN0YW1wOwogIHByb3RlY3RlZCAkbWNmaV91cGRhdGVkX3RpbWVzdGFtcDsKICBwcm90ZWN0ZWQgJHZhcnMgPSBhcnJheSgpOwogIHByb3RlY3RlZCAkaXNfbW9kaWZpZWQgPSBmYWxzZTsKICBwcm90ZWN0ZWQgJGNoaWxkcmVuczsKCiAgY29uc3QgTU9EVUxFX05BTUUgPSAne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSc7CiAgY29uc3QgREJfTkFNRSA9ICdtb2R1bGVfe3skdGFibGVfbmFtZX19JzsKICBjb25zdCBEQl9JVEVNID0gJ3t7JHRhYmxlX25hbWV9fSc7CiAgY29uc3QgVVBMT0FEU19SRUxBVElWRV9VUkwgPSAnL3VwbG9hZHMvTW9kdWxlcy97eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JzsKCiAgcHJvdGVjdGVkIHN0YXRpYyAkZmllbGRzID0gYXJyYXkoJ3RpdGxlJywgICdwYXJlbnRfaWQnLCAgJ3BhcmVudF9pdGVtJywgICdvcmRlcl9ieScsICdwdWJsaXNoZWQnLCAnc2VuZF91cGRhdGVfaW1tZWRpYXRlbHknLHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19ICd7eyRmaWVsZC5uYW1lfX0nLCAge3svZm9yZWFjaH19ICAnZnVsbF90ZXh0X3NlYXJjaCcgICk7CgogIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgCiAge3tpZiAkZmllbGQuZm9ybV90eXBlID09ICdzZWxlY3QnfX0KICAKICBwdWJsaWMgc3RhdGljICR7eyRmaWVsZC5uYW1lfX1fb3B0aW9ucyA9IHt7JGZpZWxkLnNlbGVjdF9vcHRpb25zfX07CiAgCiAge3svaWZ9fQogIAogIHt7L2ZvcmVhY2h9fQoKICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJHZhciwgJHZhbCkgewogICAgJHRoaXMtPmlzX21vZGlmaWVkID0gdHJ1ZTsKICAgICR0aGlzLT52YXJzWyR2YXJdID0gJHZhbDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgkdmFyKSB7CiAgICB0cnkKICAgIHsKICAgICAgaWYobWV0aG9kX2V4aXN0cygkdGhpcywgJHZhcikpCiAgICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPiR2YXIoKTsKICAgICAgfQogICAgICBlbHNlaWYgKGFycmF5X2tleV9leGlzdHMoJHZhciwgJHRoaXMtPnZhcnMpKQogICAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT52YXJzWyR2YXJdOwogICAgICB9CiAgICAgIGVsc2UgCiAgICAgIHsKICAgICAgICAvL3Rocm93IG5ldyBFeGNlcHRpb24oIlByb3BlcnR5ICR2YXIgZG9lcyBub3QgZXhpc3QiKTsKICAgICAgfQogICAgfQogICAgY2F0Y2goRXhjZXB0aW9uICRlKQogICAgewogICAgICBlY2hvICdFcnJvcjogJywgICRlLT5nZXRNZXNzYWdlKCksICJcbiI7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0KCRuYW1lLCAkdmFsdWUpIHsKICAgIGlmICgkdGhpcy0+JG5hbWUgIT0gJHZhbHVlKSB7CiAgICAgICR0aGlzLT5fX3NldCgkbmFtZSwgJHZhbHVlKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXQoJG5hbWUpIHsKICAgIC8vIERFUFJFQ0FURUQKICAgIHJldHVybiAkdGhpcy0+X19nZXQoJG5hbWUpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKSAgewogICAgcmV0dXJuIChzdHJpbmcpJHRoaXMtPnRpdGxlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldElkKCkgewogICAgcmV0dXJuICR0aGlzLT5pZDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRJZCgkdmFsdWUpIHsKICAgICR0aGlzLT5pc19tb2RpZmllZCA9IHRydWU7CiAgICAkdGhpcy0+aWQgPSAkdmFsdWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlcklkKCkgewogICAgcmV0dXJuICR0aGlzLT51c2VyX2lkOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldFVzZXJJZCgkdmFsdWUpIHsKICAgICR0aGlzLT5pc19tb2RpZmllZCA9IHRydWU7CiAgICAkdGhpcy0+dXNlcl9pZCA9ICR2YWx1ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyKCkgewogICAgcmV0dXJuIENNU1VzZXI6OnJldHJpZXZlQnlQaygkdGhpcy0+dXNlcl9pZCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWNmaUNyZWF0ZWRUaW1lc3RhbXAoKSB7CiAgICByZXR1cm4gJHRoaXMtPm1jZmlfY3JlYXRlZF90aW1lc3RhbXA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0TWNmaUNyZWF0ZWRUaW1lc3RhbXAoJHZhbHVlKSB7CiAgICAkdGhpcy0+aXNfbW9kaWZpZWQgPSB0cnVlOwogICAgJHRoaXMtPm1jZmlfY3JlYXRlZF90aW1lc3RhbXAgPSAkdmFsdWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWNmaVVwZGF0ZWRUaW1lc3RhbXAoKSB7CiAgICByZXR1cm4gJHRoaXMtPm1jZmlfdXBkYXRlZF90aW1lc3RhbXA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0TWNmaVVwZGF0ZWRUaW1lc3RhbXAoJHZhbHVlKSB7CiAgICAkdGhpcy0+aXNfbW9kaWZpZWQgPSB0cnVlOwogICAgJHRoaXMtPm1jZmlfdXBkYXRlZF90aW1lc3RhbXAgPSAkdmFsdWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZnVsbF90ZXh0X3NlYXJjaCgpICB7CiAgICAkdGV4dCA9ICR0aGlzLT50aXRsZTsKICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgIHt7aWYgJGZpZWxkLnR5cGUgPT0gJ3RleHRhcmVhJyB8fCAkZmllbGQudHlwZSA9PSAndGV4dCcgfHwgJGZpZWxkLnR5cGUgPT0gJ3RleHRhcmVhX3BsYWluJyB8fCAkZmllbGQudHlwZSA9PSAndGV4dGFyZWFfY29kZSd9fQogICAgICAgICR0ZXh0IC49ICcgJyAuICR0aGlzLT57eyRmaWVsZC5uYW1lfX07CiAgICAgIHt7L2lmfX0KICAgIHt7L2ZvcmVhY2h9fQogICAgcmV0dXJuICR0ZXh0OwogIH0KCiAgLy8gT0xEIFdBWQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyZW50SWQoKSB7CiAgICByZXR1cm4gJHRoaXMtPnBhcmVudF9pZDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRUaXRsZSgpIHsKICAgIHJldHVybiAkdGhpcy0+dGl0bGU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q3JlYXRlZEF0KCkgewogICAgcmV0dXJuICR0aGlzLT5jcmVhdGVkX2F0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldENyZWF0ZWRCeSgpIHsKICAgIHJldHVybiAkdGhpcy0+Y3JlYXRlZF9ieTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRVcGRhdGVkQXQoKSB7CiAgICByZXR1cm4gJHRoaXMtPnVwZGF0ZWRfYXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXBkYXRlZEJ5KCkgewogICAgcmV0dXJuICR0aGlzLT51cGRhdGVkX2J5OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldE9yZGVyQnkoKSB7CiAgICByZXR1cm4gJHRoaXMtPm9yZGVyX2J5OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldFBhcmVudEl0ZW0oKSB7CiAgICByZXR1cm4gJHRoaXMtPnBhcmVudF9pdGVtOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldFB1Ymxpc2hlZCgpIHsKICAgIHJldHVybiAkdGhpcy0+cHVibGlzaGVkOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29yZVNsdWcoKSB7CiAgICByZXR1cm4gJHRoaXMtPnRpdGxlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldEZ1bGxUZXh0U2VhcmNoKCkgewogICAgcmV0dXJuICR0aGlzLT5mdWxsX3RleHRfc2VhcmNoKCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0UGFyZW50SWQoJHZhbHVlKSB7CiAgICAkdGhpcy0+X19zZXQoJ3BhcmVudF9pZCcsICR2YWx1ZSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0VGl0bGUoJHZhbHVlKSB7CiAgICAkdGhpcy0+X19zZXQoJ3RpdGxlJywgJHZhbHVlKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRDcmVhdGVkQXQoJHZhbHVlKSB7CiAgICAkdGhpcy0+Y3JlYXRlZF9hdCA9ICR2YWx1ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRDcmVhdGVkQnkoJHZhbHVlKSB7CiAgICAkdGhpcy0+Y3JlYXRlZF9ieSA9ICR2YWx1ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRVcGRhdGVkQXQoJHZhbHVlKSB7CiAgICAkdGhpcy0+dXBkYXRlZF9hdCA9ICR2YWx1ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRVcGRhdGVkQnkoJHZhbHVlKSB7CiAgICAkdGhpcy0+dXBkYXRlZF9ieSA9ICR2YWx1ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRPcmRlckJ5KCR2YWx1ZSkgewogICAgJHRoaXMtPl9fc2V0KCdvcmRlcl9ieScsICR2YWx1ZSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0UGFyZW50SXRlbSgkdmFsdWUpIHsKICAgICR0aGlzLT5fX3NldCgncGFyZW50X2l0ZW0nLCAkdmFsdWUpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldFB1Ymxpc2hlZCgkdmFsdWUpIHsKICAgICR0aGlzLT5fX3NldCgncHVibGlzaGVkJywgJHZhbHVlKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRGdWxsVGV4dFNlYXJjaCgkdmFsdWUpIHsKICAgICR0aGlzLT5fX3NldCgnZnVsbF90ZXh0X3NlYXJjaCcsICR2YWx1ZSk7CiAgfQoKICB7e2lmIGlzc2V0KCRpc191c2VyX21vZHVsZSl9fQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdXNlckdldEVkaXRMaW5rKCR1c2VyX2lkLCRpZCkgewogICAgJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKICAgICRjLT5hZGQoJ3VzZXJfaWQnLCAkdXNlcl9pZCk7CiAgICAkdXNlciA9IHNlbGY6OmRvU2VsZWN0T25lKCRjKTsKICAgIGlmICgkdXNlcikKICAgIHsKICAgICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpLT5DcmVhdGVMaW5rKCRpZCwnZWRpdCcsJycsJycsYXJyYXkoJ2l0ZW1faWQnID0+ICR1c2VyLT5nZXRJZCgpKSwnJyx0cnVlLGZhbHNlLCcnLGZhbHNlKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpLT5DcmVhdGVMaW5rKCRpZCwnZWRpdCcsJycsJycsYXJyYXkoJ3VzZXJfaWQnID0+ICR1c2VyX2lkKSwnJyx0cnVlLGZhbHNlLCcnLGZhbHNlKTsKICAgIH0KICB9CiAge3svaWZ9fQoKCiAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KCiAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19KCRwYXJzZSA9IG51bGwpIHsKICAgIGlmKGlzX251bGwoJHBhcnNlKSkgJHBhcnNlID0ge3tpZiAkZmllbGQudHlwZSA9PSAndGV4dGFyZWEnfX10cnVle3tlbHNlfX1mYWxzZXt7L2lmfX07CiAgICBpZiAoJHBhcnNlKSB7CiAgICAgIHJldHVybiBjbXNfbW9kdWxlX1Byb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKG5ldyBzdGRDbGFzcygpLCAkdGhpcy0+e3skZmllbGQubmFtZX19KTsKICAgIH0KICAgIHJldHVybiAkdGhpcy0+e3skZmllbGQubmFtZX19OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldHt7JGZpZWxkLmNhbWVsY2FzZX19KCR2YWx1ZSkgewogICAge3tpZiAkZmllbGQudHlwZSA9PSAnZGF0ZSd9fQogICAgaWYgKGlzX2FycmF5KCR2YWx1ZSkpIHsKICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3llYXInKSkgewogICAgICAgICR2YWx1ZSA9ICR2YWx1ZVsneWVhciddIC4gJy0nIC4gJHZhbHVlWydtb250aCddIC4gJy0nIC4gJHZhbHVlWydkYXknXTsKICAgICAgfSBlbHNlICB7CiAgICAgICAgJHZhbHVlID0gJHZhbHVlWycwJ10gLiAnLScgLiAkdmFsdWVbJzEnXSAuICctJyAuICR2YWx1ZVsnMiddOwogICAgICB9CiAgICB9CiAgICAkdmFsdWUgPSBzdHJfcmVwbGFjZSgnfCcsJy0nLHN0cl9yZXBsYWNlKCcvJywnLScsJHZhbHVlKSk7CiAgICB7ey9pZn19CiAgICAkdGhpcy0+X19zZXQoJ3t7JGZpZWxkLm5hbWV9fScsICR2YWx1ZSk7CiAgfQoKICB7e2lmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ21vZHVsZSd9fQogICAge3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpfX0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fUl0ZW1zKCkgIHsKICAgICAgJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKICAgICAgJGMtPmFkZCgnaWQnLCBleHBsb2RlKCd8fHwnLCAkdGhpcy0+e3skZmllbGQubmFtZX19KSwgTUNGQ3JpdGVyaWE6OklOKTsKICAgICAgcmV0dXJuIHt7JGZpZWxkLmZvcHRpb25zLm1vZHVsZV9uYW1lfX1PYmplY3Q6OmRvU2VsZWN0KCRjKTsKICAgIH0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVZhbHVlcygkc2VwYXJhdG9yID0gbnVsbCkgewogICAgICBpZighaXNfbnVsbCgkc2VwYXJhdG9yKSkgIHsKICAgICAgICByZXR1cm4gaW1wbG9kZSgkc2VwYXJhdG9yLCAkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1JdGVtcygpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19SXRlbXMoKTsKICAgICAgfQogICAgfQogICAge3tlbHNlfX0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fU9iamVjdCgpIHsKICAgICAgcmV0dXJuIHt7JGZpZWxkLmZvcHRpb25zLm1vZHVsZV9uYW1lfX1PYmplY3Q6OmdldEJ5SWQoJHRoaXMtPnt7JGZpZWxkLm5hbWV9fSk7CiAgICB9CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0e3skZmllbGQuY2FtZWxjYXNlfX1WYWx1ZSgpICB7CiAgICAgIHJldHVybiAkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1PYmplY3QoKTsKICAgIH0KICAgIHt7L2lmfX0KICB7ey9pZn19CgogIHt7aWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAncGFnZSd9fQogICAge3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpfX0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVZhbHVlcygkc2VwYXJhdG9yID0gbnVsbCkgewogICAgICAkaXRlbXMgPSBleHBsb2RlKCd8fHwnLCAkdGhpcy0+e3skZmllbGQubmFtZX19KTsKICAgICAgaWYoIWlzX251bGwoJHNlcGFyYXRvcikpICB7CiAgICAgICAgcmV0dXJuIGltcGxvZGUoJHNlcGFyYXRvciwgJGl0ZW1zKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gJGl0ZW1zOwogICAgICB9CiAgICB9CiAgICB7e2Vsc2V9fQogICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWUoKSAgewogICAgICByZXR1cm4gJHRoaXMtPnt7JGZpZWxkLm5hbWV9fTsKICAgIH0KICAgIHt7L2lmfX0KICB7ey9pZn19CgogIHt7aWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAnc2VsZWN0J319CiAgICB7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5tdWx0aXBsZSl9fQogICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWVzKCRzZXBhcmF0b3IgPSBudWxsKSB7CiAgICAgICR2YWx1ZXMgPSBleHBsb2RlKCd8fHwnLCAkdGhpcy0+e3skZmllbGQubmFtZX19KTsKICAgICAgJGxhYmVscyA9IHNlbGY6OiR7eyRmaWVsZC5uYW1lfX1fb3B0aW9uczsKICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCgkdmFsdWVzIGFzICR2YWx1ZSkKICAgICAgewogICAgICAgIGlmKGlzc2V0KCRsYWJlbHNbJHZhbHVlXSkpICAkaXRlbXNbJHZhbHVlXSA9ICRsYWJlbHNbJHZhbHVlXTsKICAgICAgfQogICAgICBpZighaXNfbnVsbCgkc2VwYXJhdG9yKSkgIHsKICAgICAgICByZXR1cm4gaW1wbG9kZSgkc2VwYXJhdG9yLCAkaXRlbXMpOwogICAgICB9CiAgICAgIHJldHVybiAkaXRlbXM7CiAgICB9CiAgICB7e2Vsc2V9fQogICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWUoKSAgewogICAgICAkdmFsdWVzID0gIHNlbGY6OiR7eyRmaWVsZC5uYW1lfX1fb3B0aW9uczsKICAgICAgaWYoaXNzZXQoJHZhbHVlc1skdGhpcy0+e3skZmllbGQubmFtZX19XSkpICByZXR1cm4gJHZhbHVlc1skdGhpcy0+e3skZmllbGQubmFtZX19XTsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICB7ey9pZn19CiAge3svaWZ9fQoKICB7e2lmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ2dyb3VwJ319CiAgICB7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5tdWx0aXBsZSl9fQogICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWVzKCkgewogICAgICAkdmFsdWVzID0gZXhwbG9kZSgnfHx8JywgJHRoaXMtPnt7JGZpZWxkLm5hbWV9fSk7CiAgICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goJHZhbHVlcyBhcyAkdmFsdWUpCiAgICAgIHsKICAgICAgICAkaXRlbXNbJHZhbHVlXSA9IChzdHJpbmcpQ01TR3JvdXA6OnJldHJpZXZlQnlQaygkdmFsdWUpOwogICAgICB9CiAgICAgIHJldHVybiAkaXRlbXM7CiAgICB9CiAgICB7e2Vsc2V9fQogICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWUoKSAgewogICAgICByZXR1cm4gKHN0cmluZylDTVNHcm91cDo6cmV0cmlldmVCeVBrKCR0aGlzLT57eyRmaWVsZC5uYW1lfX0pOwogICAgfQogICAge3svaWZ9fQogIHt7L2lmfX0gIAoKICB7e2lmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ3VzZXInfX0KICAgIHt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0e3skZmllbGQuY2FtZWxjYXNlfX1WYWx1ZXMoKSB7CiAgICAgICR2YWx1ZXMgPSBleHBsb2RlKCd8fHwnLCAkdGhpcy0+e3skZmllbGQubmFtZX19KTsKICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCgkdmFsdWVzIGFzICR2YWx1ZSkKICAgICAgewogICAgICAgICRpdGVtc1skdmFsdWVdID0gKHN0cmluZylDTVNVc2VyOjpnZXRVc2VyTmFtZUJ5SWQoJHZhbHVlKTsKICAgICAgfQogICAgICByZXR1cm4gJGl0ZW1zOwogICAgfQogICAge3tlbHNlfX0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVZhbHVlKCkgIHsKICAgICAgcmV0dXJuIChzdHJpbmcpQ01TVXNlcjo6Z2V0VXNlck5hbWVCeUlkKCR0aGlzLT57eyRmaWVsZC5uYW1lfX0pOwogICAgfQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZUxpbmtGb3J7eyRmaWVsZC5jYW1lbGNhc2V9fSgkdXNlcl9pZCwgJGlkKSB7CiAgICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAgICRjLT5hZGQoJ3t7JGZpZWxkLm5hbWV9fScsICR1c2VyX2lkKTsKICAgICAgJHVzZXIgPSBzZWxmOjpkb1NlbGVjdE9uZSgkYyk7CiAgICAgIGlmICgkdXNlcikgIHsKICAgICAgICByZXR1cm4gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JyktPkNyZWF0ZUxpbmsoJGlkLCdlZGl0JywnJywnJyxhcnJheSgnaXRlbV9pZCcgPT4gJHVzZXItPmdldElkKCkpLCcnLHRydWUsZmFsc2UsJycsZmFsc2UpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKS0+Q3JlYXRlTGluaygkaWQsJ2VkaXQnLCcnLCcnLGFycmF5KCd7eyRmaWVsZC5uYW1lfX0nID0+ICR1c2VyX2lkKSwnJyx0cnVlLGZhbHNlLCcnLGZhbHNlKTsKICAgICAgfQogICAgfQogICAge3svaWZ9fQogIHt7L2lmfX0KCiAge3tpZiAkZmllbGQuZm9ybV90eXBlID09ICdmaWxlJ319CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0e3skZmllbGQuY2FtZWxjYXNlfX1TaXplKCRyZWFkYWJsZSA9IHRydWUpIHsKICAgICAgJGZpbGUgPSBzZWxmOjpnZXRGaWxlc1BhdGgoKSAuRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT57eyRmaWVsZC5uYW1lfX07ICAgICAgICAKICAgICAgcmV0dXJuIE1YX0RvY3VtZW50OjpnZXRGaWxlU2l6ZSgkZmlsZSwgJHJlYWRhYmxlKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0e3skZmllbGQuY2FtZWxjYXNlfX1JY29uKCRpY29uX3R5cGUgPSAnc21hbGwnKSB7CiAgICAgICRmaWxlID0gc2VsZjo6Z2V0RmlsZXNQYXRoKCkgLkRJUkVDVE9SWV9TRVBBUkFUT1IgLiAkdGhpcy0+e3skZmllbGQubmFtZX19OyAgICAgICAgCiAgICAgIHJldHVybiBNWF9Eb2N1bWVudDo6Z2V0RmlsZUljb24oJGZpbGUsICRpY29uX3R5cGUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fUV4dCgpICB7CiAgICAgIHJldHVybiBlbmQoZXhwbG9kZSgnLicsJHRoaXMtPnt7JGZpZWxkLm5hbWV9fSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXRyaWV2ZXt7JGZpZWxkLmNhbWVsY2FzZX19RmlsZW5hbWUoKSAgewogICAgICByZXR1cm4gZW5kKGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUiwkdGhpcy0+e3skZmllbGQubmFtZX19KSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19VXJsKCRpZCA9IG51bGwpIHsKICAgICAgaWYgKGlzX251bGwoJGlkKSkKICAgICAgewogICAgICAgICRpZCA9IHNlbGY6OnJldHJpZXZlQ29udGV4dElkKCk7CiAgICAgIH0KICAgICAgJHByZXR0eXVybCA9ICd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKXxsb3dlcn19L2Rvd25sb2FkLycuJHRoaXMtPmdldElkKCkuJy97eyRmaWVsZC5uYW1lfX0vJy5zZWxmOjpyZXRyaWV2ZUZpbGVuYW1lKCR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgpKTsKICAgICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpLT5DcmVhdGVMaW5rKCRpZCwnZG93bmxvYWQnLCcnLCcnLGFycmF5KCdpdGVtX2lkJyA9PiAkdGhpcy0+Z2V0SWQoKSwgJ2ZpZWxkJyA9PiAne3skZmllbGQubmFtZX19JyksJycsdHJ1ZSxmYWxzZSwnJyxmYWxzZSwkcHJldHR5dXJsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0e3skZmllbGQuY2FtZWxjYXNlfX1DbGVhblVybCgpIHsKICAgICAge3tpZiAkZmlsZXNfcGF0aCAhPSAnJ319CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVVybCgpOwogICAgICB7e2Vsc2V9fQogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZShESVJFQ1RPUllfU0VQQVJBVE9SLCAnLycsICR0aGlzLT57eyRmaWVsZC5uYW1lfX0pOwogICAgICB7ey9pZn19ICAgIAogICAgfQoKICAgIHt7aWYgKCRmaWVsZC50eXBlID09ICdpbWFnZScpICYmICRmaWVsZC5pbWFnZV93aWR0aCAmJiAkZmllbGQuaW1hZ2VfaGVpZ2h0fX0KICAgICAgcHVibGljIGZ1bmN0aW9uIGdldHt7JGZpZWxkLmNhbWVsY2FzZX19T3JpZ2luYWxQaWN0dXJlKCkgIHsKICAgICAgICByZXR1cm4gc3RyX3JlcGxhY2UoJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJywgJycsICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgpKTsKICAgICAgfSAgCiAgICAgIHB1YmxpYyBmdW5jdGlvbiBnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fU9yaWdpbmFsUGljdHVyZVVybCgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAvLyBUT0RPOiBSZXR1cm4gc29tZXRoaW5nCiAgICAgICAgLy9yZXR1cm4gc3RyX3JlcGxhY2UoJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJywgJycsICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgpKTsKICAgICAgfQogICAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlUmVzaXplZEltYWdlRm9ye3skZmllbGQuY2FtZWxjYXNlfX0oJGZpbGVuYW1lKSB7CiAgICAgICAgJGRlc3RpbmF0aW9uID0gc2VsZjo6Z2V0RmlsZXNGdWxsUGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZTsKICAgICAgICBsaXN0KCRpbWFnZV93aWR0aCwgJGltYWdlX2hlaWdodCwgJGltYWdlX3R5cGUpID0gZ2V0aW1hZ2VzaXplKCRkZXN0aW5hdGlvbik7CiAgICAgICAgc3dpdGNoICgkaW1hZ2VfdHlwZSkgewogICAgICAgICAgY2FzZSBJTUFHRVRZUEVfR0lGOgogICAgICAgICAgICAkaW1nID0gaW1hZ2VjcmVhdGVmcm9tZ2lmKCRkZXN0aW5hdGlvbik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJTUFHRVRZUEVfSlBFRzoKICAgICAgICAgICAgJGltZyA9IGltYWdlY3JlYXRlZnJvbWpwZWcoJGRlc3RpbmF0aW9uKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIElNQUdFVFlQRV9QTkc6CiAgICAgICAgICAgICRpbWcgPSBpbWFnZWNyZWF0ZWZyb21wbmcoJGRlc3RpbmF0aW9uKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgICRmYWN0b3IgPSBtYXgoJGltYWdlX3dpZHRoIC8ge3skZmllbGQuaW1hZ2Vfd2lkdGh9fSwgJGltYWdlX2hlaWdodCAvIHt7JGZpZWxkLmltYWdlX2hlaWdodH19KTsKICAgICAgICAkbmV3X3dpZHRoID0gbWluKHJvdW5kKCRpbWFnZV93aWR0aCAvICRmYWN0b3IpLCAkaW1hZ2Vfd2lkdGgpOwogICAgICAgICRuZXdfaGVpZ2h0ID0gbWluKHJvdW5kKCRpbWFnZV9oZWlnaHQgLyAkZmFjdG9yKSwgJGltYWdlX2hlaWdodCk7CiAgICAgICAgJG5ld19pbWcgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3X3dpZHRoLCAkbmV3X2hlaWdodCk7CiAgICAgICAgaW1hZ2Vjb3B5cmVzYW1wbGVkKCRuZXdfaW1nLCAkaW1nLCAwLCAwLCAwLCAwLCAkbmV3X3dpZHRoLCAkbmV3X2hlaWdodCwgJGltYWdlX3dpZHRoLCAkaW1hZ2VfaGVpZ2h0KTsKICAgICAgICBzd2l0Y2ggKCRpbWFnZV90eXBlKSB7CiAgICAgICAgICBjYXNlIElNQUdFVFlQRV9HSUY6CiAgICAgICAgICAgIGltYWdlZ2lmKCRuZXdfaW1nLCBzZWxmOjpnZXRGaWxlc0Z1bGxQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJyAuICRmaWxlbmFtZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJTUFHRVRZUEVfSlBFRzoKICAgICAgICAgICAgaW1hZ2VqcGVnKCRuZXdfaW1nLCBzZWxmOjpnZXRGaWxlc0Z1bGxQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJyAuICRmaWxlbmFtZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJTUFHRVRZUEVfUE5HOgogICAgICAgICAgICBpbWFnZXBuZygkbmV3X2ltZywgc2VsZjo6Z2V0RmlsZXNGdWxsUGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd7eyRmaWVsZC5pbWFnZV93aWR0aH19X3t7JGZpZWxkLmltYWdlX2hlaWdodH19XycgLiAkZmlsZW5hbWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGY6OlVQTE9BRFNfUkVMQVRJVkVfVVJMIC4gJy8nIC4gJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJyAuICRmaWxlbmFtZTsKICAgICAgfQogICAge3svaWZ9fQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1cGxvYWR7eyRmaWVsZC5jYW1lbGNhc2V9fSgkaWQpIHsKICAgICAgaWYgKGlzc2V0KCRfRklMRVNbJGlkLid7eyRmaWVsZC5uYW1lfX0nXSkgJiYgKCRfRklMRVNbJGlkLid7eyRmaWVsZC5uYW1lfX0nXVsnc2l6ZSddID4gMCkpIHsKICAgICAgICAkZmlsZW5hbWUgPSBzZWxmOjpjaGVja0ZpbGVuYW1lKCRfRklMRVNbJGlkLid7eyRmaWVsZC5uYW1lfX0nXSk7CgogICAgICAgIGlmIChtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skaWQuJ3t7JGZpZWxkLm5hbWV9fSddWyd0bXBfbmFtZSddLCBzZWxmOjpnZXRGaWxlc0Z1bGxQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lKSkgewogICAgICAgICAgJGZpbGUgPSBzZWxmOjpVUExPQURTX1JFTEFUSVZFX1VSTCAuICcvJyAuICRmaWxlbmFtZTsKICAgICAgICAgIHt7aWYgKCRmaWVsZC50eXBlID09ICdpbWFnZScpICYmICRmaWVsZC5pbWFnZV93aWR0aCAmJiAkZmllbGQuaW1hZ2VfaGVpZ2h0fX0KICAgICAgICAgICAgJGZpbGUgPSAkdGhpcy0+Y3JlYXRlUmVzaXplZEltYWdlRm9ye3skZmllbGQuY2FtZWxjYXNlfX0oJGZpbGVuYW1lKTsKICAgICAgICAgIHt7L2lmfX0KICAgICAgICB9ICAgIAoKICAgICAgICAkdGhpcy0+ZGVsZXRle3skZmllbGQuY2FtZWxjYXNlfX0oKTsKICAgICAgICAkdGhpcy0+c2V0e3skZmllbGQuY2FtZWxjYXNlfX0oJGZpbGUpOwogICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRvd25sb2Fke3skZmllbGQuY2FtZWxjYXNlfX0oKSAgewogICAgICAkZmlsZSA9IHNlbGY6OmdldEZpbGVzUGF0aCgpIC4gc3RyX3JlcGxhY2UoJy8nLCBESVJFQ1RPUllfU0VQQVJBVE9SLCAkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX0oKSk7CiAgICAgIGlmKGlzX2ZpbGUoJGZpbGUpKSAgewogICAgICAgIC8vJHBhdGhpbmZvID0gcGF0aGluZm8oJGZpbGUpOyAgICAgIAogICAgICAgIGhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIuZmlsZXNpemUoJGZpbGUpKTsKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogJyAuIHNlbGY6OmdldE1pbWVUeXBlKCRmaWxlKSk7CiAgICAgICAgaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSInIC4gc2VsZjo6cmV0cmlldmVGaWxlbmFtZSgkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX0oKSkgLiAnIicpOwogICAgICAgIGVjaG8gZmlsZV9nZXRfY29udGVudHMoJGZpbGUpOwogICAgICB9IGVsc2UgeyAgIAogICAgICAgIGhlYWRlcigiSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCIpOwogICAgICB9CiAgICAgIGV4aXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZXt7JGZpZWxkLmNhbWVsY2FzZX19KCkgIHsKICAgICAgaWYoJHRoaXMtPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19KCkgIT0gJycpICB7CiAgICAgICAgZGVidWdfZGlzcGxheSgnRGVsZXRpbmcgZmlsZSB7eyRmaWVsZC5jYW1lbGNhc2V9fSAtICcuc2VsZjo6Z2V0RmlsZXNQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19KCkpOwogICAgICAgIGlmIChpc19maWxlKHNlbGY6OmdldEZpbGVzUGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgpKSkgewogICAgICAgICAgJHJlc3VsdCA9IHVubGluayhzZWxmOjpnZXRGaWxlc1BhdGgoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX0oKSk7CiAgICAgICAgICBkZWJ1Z19kaXNwbGF5KCdEZWxldGUgJyAuIHNlbGY6OmdldEZpbGVzUGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgpIC4gJyBSZXN1bHQ6ICcgLiAkcmVzdWx0KTsKICAgICAgICB9ICAKICAgICAgICB7e2lmICgkZmllbGQudHlwZSA9PSAnaW1hZ2UnKSAmJiAkZmllbGQuaW1hZ2Vfd2lkdGggJiYgJGZpZWxkLmltYWdlX2hlaWdodH19CiAgICAgICAgICBpZiAoaXNfZmlsZShzZWxmOjpnZXRGaWxlc1BhdGgoKSAgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fU9yaWdpbmFsUGljdHVyZSgpKSkgIHsKICAgICAgICAgICAgJHJlc3VsdCA9IHVubGluayhzZWxmOjpnZXRGaWxlc1BhdGgoKSAgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gICR0aGlzLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fU9yaWdpbmFsUGljdHVyZSgpKTsgLy8gRGVsZXRpbmcgdGhlIG9yaWdpbmFsIHBpY3R1cmUgYXMgd2VsbAogICAgICAgICAgICBkZWJ1Z19kaXNwbGF5KCdEZWxldGUgJyAuIHNlbGY6OmdldEZpbGVzUGF0aCgpICAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAgJHRoaXMtPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19T3JpZ2luYWxQaWN0dXJlKCkgLiAnIFJlc3VsdDogJyAuICRyZXN1bHQpOwogICAgICAgICAgfSAgCiAgICAgICAge3svaWZ9fQogICAgICAgICR0aGlzLT5zZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgnJyk7ICAgICAgCiAgICAgIH0KICAgIH0KICB7ey9pZn19CgogIHt7L2ZvcmVhY2h9fQoKICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGdldEZpbGVzUGF0aCgpICB7CiAgICB7e2lmICRmaWxlc19wYXRoICE9ICcnfX0KICAgICRwYXRoID0gJ3t7JGZpbGVzX3BhdGh9fSc7CiAgICB7e2Vsc2V9fQogICAgJGNvbmZpZyA9IGNtc191dGlsczo6Z2V0X2NvbmZpZygpOwogICAgJHBhdGggPSAkY29uZmlnWydyb290X3BhdGgnXTsKICAgIHt7L2lmfX0KICAgIGlmICghaXNfZGlyKCRwYXRoIC4gc2VsZjo6Z2V0VXBsb2Fkc1JlbGF0aXZlUGF0aCgpKSkKICAgIHsKICAgICAgbWtkaXIoJHBhdGggLiBzZWxmOjpnZXRVcGxvYWRzUmVsYXRpdmVQYXRoKCksMDc3Nyx0cnVlKTsKICAgIH0KICAgIHJldHVybiAkcGF0aDsKICB9CiAgCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBnZXRGaWxlc0Z1bGxQYXRoKCkgIHsKICAgIHJldHVybiBzZWxmOjpnZXRGaWxlc1BhdGgoKSAuIHNlbGY6OmdldFVwbG9hZHNSZWxhdGl2ZVBhdGgoKTsKICB9CiAgCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBnZXRVcGxvYWRzUmVsYXRpdmVQYXRoKCkgIHsKICAgIHJldHVybiBzdHJfcmVwbGFjZSgnLycsIERJUkVDVE9SWV9TRVBBUkFUT1IsIHNlbGY6OlVQTE9BRFNfUkVMQVRJVkVfVVJMKTsKICB9CiAgCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZUZpbGVuYW1lKCRmaWxlbmFtZSkgIHsKICAgIC8vIFRvIHRyeTogcmV0dXJuIGVuZChleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsICRmaWxlbmFtZSkpOwogICAgJGNsZWFuID0gc3RyX3JlcGxhY2Uoc2VsZjo6VVBMT0FEU19SRUxBVElWRV9VUkwsICcnLCAkZmlsZW5hbWUpOwogICAgJGNsZWFuID0gc3RyX3JlcGxhY2UoJy8nLCAnJywgJGNsZWFuKTsKICAgICRjbGVhbiA9IHN0cl9yZXBsYWNlKCdcXCcsICcnLCAkY2xlYW4pOwogICAgcmV0dXJuICRjbGVhbjsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjbGVhbkZpbGVuYW1lKCRmaWxlbmFtZSkgIHsKICAgICAgJHJlc3VsdCA9IHN0cnRvbG93ZXIoJGZpbGVuYW1lKTsKICAgICAgLy8gUmVtb3ZlIGFjY2VudHMKICAgICAgJHJlc3VsdCA9IHN0cnRyKCRyZXN1bHQsICAi77+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+9IiwgICJhYWFhYWFhYWFhYWFvb29vb29vb29vb29lZWVlZWVlZWNjaWlpaWlpaWl1dXV1dXV1dXlubiIpOwoKICAgICAgLy8gU29mdCB3YXkKICAgICAgJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCIjIiwgIk5vLiIsICRyZXN1bHQpOyAKICAgICAgJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCIkIiwgIkRvbGxhciIsICRyZXN1bHQpOyAKICAgICAgJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCIlIiwgIlBlcmNlbnQiLCAkcmVzdWx0KTsgCiAgICAgICRyZXN1bHQgPSBzdHJfcmVwbGFjZSgiXiIsICIgIiwgJHJlc3VsdCk7IAogICAgICAkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIiYiLCAiYW5kIiwgJHJlc3VsdCk7IAogICAgICAkcmVzdWx0ID0gc3RyX3JlcGxhY2UoIioiLCAiICIsICRyZXN1bHQpOyAKICAgICAgJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCI/IiwgIiAiLCAkcmVzdWx0KTsKICAgICAgJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCIsIiwgIiAiLCAkcmVzdWx0KTsKICAgICAgCiAgICAgIC8vIHN0cmlwIGFsbCBub24gd29yZCBjaGFycwogICAgICAvLyRyZXN1bHQgPSBwcmVnX3JlcGxhY2UoJy9cVy8nLCAnICcsICRyZXN1bHQpOyAvLyBIQVJEIFdBWS4uLgoKICAgICAgLy8gcmVwbGFjZSBhbGwgd2hpdGUgc3BhY2Ugc2VjdGlvbnMgd2l0aCBhIGRhc2gKICAgICAgJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL1wgKy8nLCAnLScsICRyZXN1bHQpOwogICAgICAvLyB0cmltIGRhc2hlcwogICAgICAkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCcvXC0kLycsICcnLCAkcmVzdWx0KTsKICAgICAgJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL15cLS8nLCAnJywgJHJlc3VsdCk7CiAgICAgIHJldHVybiAkcmVzdWx0OwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoZWNrRmlsZW5hbWUoJGZpbGUpICB7CiAgICAkcGF0aGluZm8gPSBwYXRoaW5mbygkZmlsZVsnbmFtZSddKTsKICAgICRmaWxlbmFtZSA9IHNlbGY6OmNsZWFuRmlsZW5hbWUoJHBhdGhpbmZvWydmaWxlbmFtZSddKTsKICAgICRmaW5hbF9maWxlbmFtZSA9IHNlbGY6OmNsZWFuRmlsZW5hbWUoJHBhdGhpbmZvWydmaWxlbmFtZSddKTsKICAgICRpID0gMjsKICAgIHdoaWxlIChmaWxlX2V4aXN0cyhzZWxmOjpnZXRGaWxlc0Z1bGxQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbmFsX2ZpbGVuYW1lIC4gJy4nIC4gJHBhdGhpbmZvWydleHRlbnNpb24nXSkpIHsKICAgICAgJGZpbmFsX2ZpbGVuYW1lID0gJGZpbGVuYW1lLictJy4kaTsKICAgICAgKyskaTsKICAgIH0KICAgIHJldHVybiAkZmluYWxfZmlsZW5hbWUgLiAnLicgLiAkcGF0aGluZm9bJ2V4dGVuc2lvbiddOwogIH0KCiAgLy9mdW5jdGlvbgoKICAgIHB1YmxpYyBmdW5jdGlvbiBkb3dubG9hZE1DRkZpbGUoJGZpZWxkKSB7CiAgICAgIHN3aXRjaCgkZmllbGQpCiAgICAgIHsKICAgICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAge3tpZiAkZmllbGQuZm9ybV90eXBlID09ICdmaWxlJ319CiAgICAgIGNhc2UgJ3t7JGZpZWxkLm5hbWV9fSc6CiAgICAgICAgcmV0dXJuICR0aGlzLT5kb3dubG9hZHt7JGZpZWxkLmNhbWVsY2FzZX19KCk7CiAgICAgICAgYnJlYWs7CiAgICAgIHt7L2lmfX0KICAgICAge3svZm9yZWFjaH19CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVGaWxlcygkcGFyYW1zKSB7CiAgICB7e2ZvcmVhY2ggZnJvbT0kZXh0cmFfZmllbGRzIGl0ZW09ZmllbGR9fQogICAgICB7e2lmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ2ZpbGUnfX0KICAgICAgaWYoaXNzZXQoJHBhcmFtc1sne3skZmllbGQubmFtZX19X2RlbGV0ZSddKSkgICR0aGlzLT5kZWxldGV7eyRmaWVsZC5jYW1lbGNhc2V9fSgpOwogICAgICB7ey9pZn19CiAgICB7ey9mb3JlYWNofX0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiB1cGxvYWRGaWxlcygkaWQpIHsKICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgIHt7aWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAnZmlsZSd9fQogICAgICAgICR0aGlzLT51cGxvYWR7eyRmaWVsZC5jYW1lbGNhc2V9fSgkaWQpOwogICAgICB7ey9pZn19CiAgICB7ey9mb3JlYWNofX0KICAgIAogICAge3sqfX0KICAgICRjb25maWcgPSBjbXNfdXRpbHM6OmdldF9jb25maWcoKTsKICAgICR1cGxvYWRfcGF0aCA9IHNlbGY6OlVQTE9BRFNfUkVMQVRJVkVfVVJMIC4gJy8nOyAvLycvdXBsb2Fkcy9Nb2R1bGVzL3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0vJzsKICAgICR1cGxvYWRfZnVsbF9wYXRoID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJHVwbG9hZF9wYXRoOwogICAgCiAgICBpZiAoIWlzX2RpcigkdXBsb2FkX2Z1bGxfcGF0aCkpCiAgICB7CiAgICAgIG1rZGlyKCR1cGxvYWRfZnVsbF9wYXRoLDA3NzcsdHJ1ZSk7CiAgICB9CiAgICAKICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgIHt7aWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAnZmlsZSd9fQogICAgICBpZiAoaXNzZXQoJF9QT1NUWyRpZC4ne3skZmllbGQubmFtZX19X2RlbGV0ZSddKSkgewogICAgICAgICR0aGlzLT5zZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgnJyk7CiAgICAgIH0gZWxzZWlmIChpc3NldCgkX0ZJTEVTWyRpZC4ne3skZmllbGQubmFtZX19J10pICYmICgkX0ZJTEVTWyRpZC4ne3skZmllbGQubmFtZX19J11bJ3NpemUnXSA+IDApKSB7CiAgICAgICAgJHBhdGhpbmZvID0gcGF0aGluZm8oJF9GSUxFU1skaWQuJ3t7JGZpZWxkLm5hbWV9fSddWyduYW1lJ10pOwogICAgICAgICRmaWxlbmFtZSA9ICRwYXRoaW5mb1snYmFzZW5hbWUnXTsKICAgICAgICAkaSA9IDI7CiAgICAgICAgd2hpbGUgKGZpbGVfZXhpc3RzKCR1cGxvYWRfZnVsbF9wYXRoLiRmaWxlbmFtZSkpIHsKICAgICAgICAgICRmaWxlbmFtZSA9ICRwYXRoaW5mb1snZmlsZW5hbWUnXS4nLScuJGkuJy4nLiRwYXRoaW5mb1snZXh0ZW5zaW9uJ107CiAgICAgICAgICArKyRpOwogICAgICAgIH0KICAgICAgICAkZGVzdGluYXRpb24gPSAkdXBsb2FkX2Z1bGxfcGF0aC4kZmlsZW5hbWU7CiAgICAgICAgaWYgKG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRpZC4ne3skZmllbGQubmFtZX19J11bJ3RtcF9uYW1lJ10sICRkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICR0aGlzLT5zZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgkdXBsb2FkX3BhdGguJGZpbGVuYW1lKTsKICAgICAgICAgIHt7aWYgKCRmaWVsZC50eXBlID09ICdpbWFnZScpICYmICRmaWVsZC5pbWFnZV93aWR0aCAmJiAkZmllbGQuaW1hZ2VfaGVpZ2h0fX0KICAgICAgICAgIGxpc3QoJGltYWdlX3dpZHRoLCAkaW1hZ2VfaGVpZ2h0LCAkaW1hZ2VfdHlwZSkgPSBnZXRpbWFnZXNpemUoJGRlc3RpbmF0aW9uKTsKICAgICAgICAgIHN3aXRjaCAoJGltYWdlX3R5cGUpIHsKICAgICAgICAgICAgY2FzZSBJTUFHRVRZUEVfR0lGOgogICAgICAgICAgICAgICRpbWcgPSBpbWFnZWNyZWF0ZWZyb21naWYoJGRlc3RpbmF0aW9uKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBJTUFHRVRZUEVfSlBFRzoKICAgICAgICAgICAgICAkaW1nID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkZGVzdGluYXRpb24pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIElNQUdFVFlQRV9QTkc6CiAgICAgICAgICAgICAgJGltZyA9IGltYWdlY3JlYXRlZnJvbXBuZygkZGVzdGluYXRpb24pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgJGZhY3RvciA9IG1heCgkaW1hZ2Vfd2lkdGggLyB7eyRmaWVsZC5pbWFnZV93aWR0aH19LCAkaW1hZ2VfaGVpZ2h0IC8ge3skZmllbGQuaW1hZ2VfaGVpZ2h0fX0pOwogICAgICAgICAgJG5ld193aWR0aCA9IG1pbihyb3VuZCgkaW1hZ2Vfd2lkdGggLyAkZmFjdG9yKSwgJGltYWdlX3dpZHRoKTsKICAgICAgICAgICRuZXdfaGVpZ2h0ID0gbWluKHJvdW5kKCRpbWFnZV9oZWlnaHQgLyAkZmFjdG9yKSwgJGltYWdlX2hlaWdodCk7CiAgICAgICAgICAkbmV3X2ltZyA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdfd2lkdGgsICRuZXdfaGVpZ2h0KTsKICAgICAgICAgIGltYWdlY29weXJlc2FtcGxlZCgkbmV3X2ltZywgJGltZywgMCwgMCwgMCwgMCwgJG5ld193aWR0aCwgJG5ld19oZWlnaHQsICRpbWFnZV93aWR0aCwgJGltYWdlX2hlaWdodCk7CiAgICAgICAgICBzd2l0Y2ggKCRpbWFnZV90eXBlKSB7CiAgICAgICAgICAgIGNhc2UgSU1BR0VUWVBFX0dJRjoKICAgICAgICAgICAgICBpbWFnZWdpZigkbmV3X2ltZywgJHVwbG9hZF9mdWxsX3BhdGguJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJy5iYXNlbmFtZSgkX0ZJTEVTWyRpZC4ne3skZmllbGQubmFtZX19J11bJ25hbWUnXSkpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIElNQUdFVFlQRV9KUEVHOgogICAgICAgICAgICAgIGltYWdlanBlZygkbmV3X2ltZywgJHVwbG9hZF9mdWxsX3BhdGguJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJy5iYXNlbmFtZSgkX0ZJTEVTWyRpZC4ne3skZmllbGQubmFtZX19J11bJ25hbWUnXSkpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIElNQUdFVFlQRV9QTkc6CiAgICAgICAgICAgICAgaW1hZ2VwbmcoJG5ld19pbWcsICR1cGxvYWRfZnVsbF9wYXRoLid7eyRmaWVsZC5pbWFnZV93aWR0aH19X3t7JGZpZWxkLmltYWdlX2hlaWdodH19XycuYmFzZW5hbWUoJF9GSUxFU1skaWQuJ3t7JGZpZWxkLm5hbWV9fSddWyduYW1lJ10pKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgICR0aGlzLT5zZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgkdXBsb2FkX3BhdGguJ3t7JGZpZWxkLmltYWdlX3dpZHRofX1fe3skZmllbGQuaW1hZ2VfaGVpZ2h0fX1fJy5iYXNlbmFtZSgkX0ZJTEVTWyRpZC4ne3skZmllbGQubmFtZX19J11bJ25hbWUnXSkpOwogICAgICAgICAge3svaWZ9fQogICAgICAgIH0KICAgICAgfQogICAgICB7ey9pZn19CiAgICB7ey9mb3JlYWNoKn19CiAgfQogIAogIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gZ2V0TWltZVR5cGUoJGZpbGVuYW1lKSB7CiAgICAkZXh0ZW5zaW9uID0gc3RydG9sb3dlcihlbmQoZXhwbG9kZSgnLicsJGZpbGVuYW1lKSkpOwogICAgJG1pbWVfdHlwZXMgPSBhcnJheSgKICAgICAgJ3R4dCcgPT4gJ3RleHQvcGxhaW4nLAogICAgICAnaHRtJyA9PiAndGV4dC9odG1sJywKICAgICAgJ2h0bWwnID0+ICd0ZXh0L2h0bWwnLAogICAgICAncGhwJyA9PiAndGV4dC9odG1sJywKICAgICAgJ2NzcycgPT4gJ3RleHQvY3NzJywKICAgICAgJ2pzJyA9PiAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcsCiAgICAgICdqc29uJyA9PiAnYXBwbGljYXRpb24vanNvbicsCiAgICAgICd4bWwnID0+ICdhcHBsaWNhdGlvbi94bWwnLAogICAgICAnc3dmJyA9PiAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnLAogICAgICAnZmx2JyA9PiAndmlkZW8veC1mbHYnLAogICAgICAvLyBpbWFnZXMKICAgICAgJ3BuZycgPT4gJ2ltYWdlL3BuZycsCiAgICAgICdqcGUnID0+ICdpbWFnZS9qcGVnJywKICAgICAgJ2pwZWcnID0+ICdpbWFnZS9qcGVnJywKICAgICAgJ2pwZycgPT4gJ2ltYWdlL2pwZWcnLAogICAgICAnZ2lmJyA9PiAnaW1hZ2UvZ2lmJywKICAgICAgJ2JtcCcgPT4gJ2ltYWdlL2JtcCcsCiAgICAgICdpY28nID0+ICdpbWFnZS92bmQubWljcm9zb2Z0Lmljb24nLAogICAgICAndGlmZicgPT4gJ2ltYWdlL3RpZmYnLAogICAgICAndGlmJyA9PiAnaW1hZ2UvdGlmZicsCiAgICAgICdzdmcnID0+ICdpbWFnZS9zdmcreG1sJywKICAgICAgJ3N2Z3onID0+ICdpbWFnZS9zdmcreG1sJywKICAgICAgLy8gYXJjaGl2ZXMKICAgICAgJ3ppcCcgPT4gJ2FwcGxpY2F0aW9uL3ppcCcsCiAgICAgICdyYXInID0+ICdhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkJywKICAgICAgJ2V4ZScgPT4gJ2FwcGxpY2F0aW9uL3gtbXNkb3dubG9hZCcsCiAgICAgICdtc2knID0+ICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnLAogICAgICAnY2FiJyA9PiAnYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkJywKICAgICAgLy8gYXVkaW8vdmlkZW8KICAgICAgJ21wMycgPT4gJ2F1ZGlvL21wZWcnLAogICAgICAncXQnID0+ICd2aWRlby9xdWlja3RpbWUnLAogICAgICAnbW92JyA9PiAndmlkZW8vcXVpY2t0aW1lJywKICAgICAgLy8gYWRvYmUKICAgICAgJ3BkZicgPT4gJ2FwcGxpY2F0aW9uL3BkZicsCiAgICAgICdwc2QnID0+ICdpbWFnZS92bmQuYWRvYmUucGhvdG9zaG9wJywKICAgICAgJ2FpJyA9PiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsCiAgICAgICdlcHMnID0+ICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JywKICAgICAgJ3BzJyA9PiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsCiAgICAgIC8vIG1zIG9mZmljZQogICAgICAnZG9jJyA9PiAnYXBwbGljYXRpb24vbXN3b3JkJywKICAgICAgJ3J0ZicgPT4gJ2FwcGxpY2F0aW9uL3J0ZicsCiAgICAgICd4bHMnID0+ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLAogICAgICAncHB0JyA9PiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLAogICAgICAvLyBvcGVuIG9mZmljZQogICAgICAnb2R0JyA9PiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0JywKICAgICAgJ29kcycgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnCiAgICApOwogICAgaWYgKGlzc2V0KCRtaW1lX3R5cGVzWyRleHRlbnNpb25dKSkgewogICAgICByZXR1cm4gJG1pbWVfdHlwZXNbJGV4dGVuc2lvbl07CiAgICB9CiAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRTZWFyY2hTdHJpbmcoKSB7CiAgICAkZmllbGRzW10gPSAkdGhpcy0+Z2V0VGl0bGUoKTsKICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgIHt7aWYgJGZpZWxkLmNvbHVtbl90eXBlID09ICdDKDI1NSknIHx8ICRmaWVsZC5jb2x1bW5fdHlwZSA9PSAnWCd9fQogICAgICAkZmllbGRzW10gPSAkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX0oKTsKICAgICAge3svaWZ9fQogICAge3svZm9yZWFjaH19CiAgICByZXR1cm4gaW1wbG9kZSgnICcsICRmaWVsZHMpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldEFzQXJyYXkoKSAgeyAgCiAgICAkYXJyYXkgPSAkdGhpcy0+dmFyczsKICAgICRhcnJheVsnaWQnXSA9ICR0aGlzLT5pZDsKICAgICRhcnJheVsnaXRlbV9pZCddID0gJHRoaXMtPmdldElkKCk7CiAgICAKICAgIAogICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgIAogICAge3tpZiAkZmllbGQuZm9ybV90eXBlID09ICdzZWxlY3QnfX0KICAgIHt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19CiAgICAkYXJyYXlbJ3ZhbHVlcyddW3t7JGZpZWxkLm5hbWV9fV0gPSAgaW1wbG9kZSgnLCAnLCAkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1WYWx1ZXMoKSk7CiAgICB7e2Vsc2V9fQogICAgJGFycmF5Wyd2YWx1ZXMnXVt7eyRmaWVsZC5uYW1lfX1dID0gKHN0cmluZykkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1WYWx1ZSgpOwogICAge3svaWZ9fQogICAge3svaWZ9fQogICAgCiAgICB7e2lmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ21vZHVsZSd9fQogICAge3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpfX0KICAgICRhcnJheVsndmFsdWVzJ11be3skZmllbGQubmFtZX19XSA9IGltcGxvZGUoJywgJywgJHRoaXMtPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19SXRlbXMoKSk7CiAgICB7e2Vsc2V9fQogICAgJGFycmF5Wyd2YWx1ZXMnXVt7eyRmaWVsZC5uYW1lfX1dID0gKHN0cmluZykkdGhpcy0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1PYmplY3QoKTsKICAgIHt7L2lmfX0KICAgIHt7L2lmfX0KICAgICAgCiAgICB7ey9mb3JlYWNofX0KICAgIAovLyAgICB1bnNldCgkYXJyYXlbJ3h0ZW5kZWRfZmVsaXN0J10pOwovLyAgICB1bnNldCgkYXJyYXlbJ2Z1bGxfdGV4dF9zZWFyY2gnXSk7CiAgICByZXR1cm4gJGFycmF5OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldEpzb24oKSAgewogICAgcmV0dXJuIGpzb25fZW5jb2RlKCR0aGlzLT5nZXRBc0FycmF5KCkpOwogIH0KCiAge3tpZiBpc3NldCgkcGFyZW50X21vZHVsZSkgJiYgJHBhcmVudF9tb2R1bGUgbmUgJyd9fQogIHB1YmxpYyBmdW5jdGlvbiBnZXRQYXJlbnRNb2R1bGUoKSAgewogICAgLy8gREVQUkVDQVRFRAogICAgcmV0dXJuICR0aGlzLT5nZXRQYXJlbnRNb2R1bGVJdGVtKCk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRQYXJlbnRNb2R1bGVJdGVtKCkgIHsKICAgICBpZiAoJHRoaXMtPnBhcmVudF9pdGVtKSAgICB7CiAgICAgICByZXR1cm4ge3skcGFyZW50X21vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmdldEJ5SWQoJHRoaXMtPnBhcmVudF9pdGVtKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGw7CiAgIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyZW50TW9kdWxlTGlzdChNQ0ZDcml0ZXJpYSAkYykgIHsKICAgICRpdGVtcyA9IHNlbGY6OmRvU2VsZWN0KCRjKTsKICAgICRsaXN0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goJGl0ZW1zIGFzICRpdGVtKQogICAgewogICAgICAkbGlzdFskaXRlbS0+Z2V0UGFyZW50TW9kdWxlKCktPl9fdG9TdHJpbmcoKV1bJGl0ZW0tPmdldElkKCldID0gJGl0ZW07CiAgICB9CiAgICByZXR1cm4gJGxpc3Q7CiAgfQogIHt7L2lmfX0KCiAgcHVibGljIGZ1bmN0aW9uIGdldFBhcmVudCgpIHsKICAgICAgaWYgKCR0aGlzLT5wYXJlbnRfaWQpIHsKICAgICAgICAgIHJldHVybiBzZWxmOjpnZXRCeUlkKCR0aGlzLT5wYXJlbnRfaWQpOwogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRQb3NzaWJsZVBhcmVudHMoKSB7CiAgICAkb2JqZWN0cyA9IHNlbGY6OmRvU2VsZWN0KG5ldyBNQ0ZDcml0ZXJpYSgpKTsKICAgICRwb3NzaWJsZV9vYmplY3RzID0gYXJyYXkoMCA9PiAnJyk7CiAgICBmb3JlYWNoICgkb2JqZWN0cyBhcyAkb2JqZWN0KSB7CiAgICAgIGlmICgoJG9iamVjdC0+Z2V0SWQoKSAhPSAkdGhpcy0+Z2V0SWQoKSkgJiYgISRvYmplY3QtPmlzRGVzY2VuZGFudE9mKCR0aGlzLT5nZXRJZCgpKSkgewogICAgICAgICRwb3NzaWJsZV9vYmplY3RzWyRvYmplY3QtPmdldElkKCldID0gJG9iamVjdC0+Z2V0VGl0bGUoKTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiAkcG9zc2libGVfb2JqZWN0czsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldFBvc3NpYmxlUGFyZW50c0hpZXJhcmNoeSgkc2VwYXJhdG9yID0gJyAtICcsICRyb290X29ubHkgPSBmYWxzZSkgIHsKICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAkYy0+YWRkKCdwYXJlbnRfaWQnLCAnJywgTUNGQ3JpdGVyaWE6OklTRU1QVFkpOwogICAgaWYoJHRoaXMtPmdldElkKCkgIT0gJycpCiAgICAkYy0+YWRkKCdpZCcsICR0aGlzLT5nZXRJZCgpLCBNQ0ZDcml0ZXJpYTo6Tk9UX0VRVUFMKTsKICAgICRyb290cyA9IHNlbGY6OmRvU2VsZWN0KCRjKTsKICAgICRhcnJheSA9IGFycmF5KCk7CiAgICAKICAgIGZvcmVhY2goJHJvb3RzIGFzICRyb290KQogICAgewogICAgICAkYXJyYXlbJHJvb3QtPmdldElkKCldID0gJHJvb3QtPmdldFRpdGxlKCk7CiAgICAgIGlmKCEkcm9vdF9vbmx5KQogICAgICB7CiAgICAgICAkYXJyYXkgPSAkYXJyYXkgKyBzZWxmOjpnZXRDaGlsZHJlbkhpZXJhcmNoeSgkcm9vdC0+Z2V0SWQoKSwgJHNlcGFyYXRvciwgMSwgJHRoaXMtPmdldElkKCkpOyAKICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gJGFycmF5OwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldENoaWxkcmVuSGllcmFyY2h5KCRpZCwkc2VwYXJhdG9yID0gJyAtICcsICRsZXZlbCA9IDEsICR3aXRob3V0X2NoaWxkcmVuc19vZiA9IG51bGwpIHsKICAgICRhcnJheSA9IGFycmF5KCk7CiAgICAkZGlyZWN0X2NoaWxkcmVucyA9IHNlbGY6OmdldENoaWxkcmVuc09mKCRpZCk7CiAgICBmb3JlYWNoKCRkaXJlY3RfY2hpbGRyZW5zIGFzICRjaGlsZHJlbikKICAgIHsKICAgICAgaWYgKCRjaGlsZHJlbi0+Z2V0SWQoKSAhPSAkd2l0aG91dF9jaGlsZHJlbnNfb2YpCiAgICAgIHsKICAgICAgICAkc2VwID0gJyc7CiAgICAgICAgZm9yKCRpID0gMDsgJGkgPCAkbGV2ZWw7ICRpKyspeyRzZXAgLj0gJHNlcGFyYXRvcjt9CiAgICAgICAgJGFycmF5WyRjaGlsZHJlbi0+Z2V0SWQoKV0gPSAkc2VwYXJhdG9yIC4gJGNoaWxkcmVuLT5nZXRUaXRsZSgpOwogICAgICAgICRhcnJheSA9ICRhcnJheSArIHNlbGY6OmdldENoaWxkcmVuSGllcmFyY2h5KCRjaGlsZHJlbi0+Z2V0SWQoKSwgJHNlcGFyYXRvciwgJGxldmVsKzEsJHdpdGhvdXRfY2hpbGRyZW5zX29mKTsgCiAgICAgIH0KICAgIH0gCiAgICByZXR1cm4gJGFycmF5OwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldENoaWxkcmVuc09mKCRpZCkgIHsKICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAkYy0+YWRkKCdwYXJlbnRfaWQnLCAkaWQsIE1DRkNyaXRlcmlhOjpFUVVBTCk7CiAgICByZXR1cm4gc2VsZjo6ZG9TZWxlY3QoJGMpOyAgICAKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldENoaWxkcmVucygpICB7CiAgICBpZighaXNzZXQoJHRoaXMtPmNoaWxkcmVucykpCiAgICB7CiAgICAgICR0aGlzLT5jaGlsZHJlbnMgPSBzZWxmOjpnZXRDaGlsZHJlbnNPZigkdGhpcy0+Z2V0SWQoKSk7CiAgICB9CiAgICByZXR1cm4gJHRoaXMtPmNoaWxkcmVuczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiByZXRyaWV2ZUNoaWxkcmVuc0l0ZW1zKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmNoaWxkcmVuczsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGFkZENoaWxkcmVuSXRlbSgmJGl0ZW0pCiAgewogICAgJHRoaXMtPmNoaWxkcmVuc1skaXRlbS0+Z2V0SWQoKV0gPSAkaXRlbTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBpc0Rlc2NlbmRhbnRPZigkaWQpIHsKICAgICRpdGVtID0gJHRoaXM7CiAgICB3aGlsZSAoJGl0ZW0gPSAkaXRlbS0+Z2V0UGFyZW50KCkpIHsKICAgICAgaWYgKCRpdGVtLT5nZXRJZCgpID09ICRpZCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRvQ291bnQoTUNGQ3JpdGVyaWEgJGNyaXQpIHsKICAgICRjID0gY2xvbmUgJGNyaXQ7CiAgICAkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwogICAgJGMtPmFkZFNlbGVjdENvbHVtbignQ09VTlQoKikgQVMgbmJpdGVtcycpOwogICAgJHF1ZXJ5ID0gJGMtPmJ1aWxkUXVlcnkoY21zX2RiX3ByZWZpeCgpLnNlbGY6OkRCX05BTUUpOwogICAgJHJlc3VsdCA9ICRkYi0+ZXhlY3V0ZSgkcXVlcnksICRjLT52YWx1ZXMpOwogICAgaWYoJHJlc3VsdCkKICAgIHsgICAgCiAgICAgICRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOwogICAgICByZXR1cm4gJHJvd1snbmJpdGVtcyddOyAgCiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIHJldHVybiAwOwogICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGJ1aWxkT2JqZWN0cygkcmVzdWx0LCAkZXh0cmFfZmllbGRzID0gYXJyYXkoKSwgJGJ5X2lkID0gdHJ1ZSkKICB7CiAgICAkb2JqZWN0cyA9IGFycmF5KCk7CiAgICB3aGlsZSAoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkgewogICAgICAkb2JqZWN0ID0gbmV3IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3QoKTsKICAgICAgJG9iamVjdC0+cG9wdWxhdGVGcm9tQXJyYXkoJHJvdyk7CiAgICAgICRvYmplY3QtPmlzX21vZGlmaWVkID0gZmFsc2U7CiAgICAgIGlmKGNvdW50KCRleHRyYV9maWVsZHMpKQogICAgICB7CiAgICAgICAgZm9yZWFjaCgkZXh0cmFfZmllbGRzIGFzICRrZXkgPT4gJGNvbCkKICAgICAgICB7CiAgICAgICAgICAkb2JqZWN0LT4ka2V5ID0gJHJvd1skY29sXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYoJGJ5X2lkKQogICAgICB7ICAgICAgICAKICAgICAgICAkb2JqZWN0c1skb2JqZWN0LT5nZXRJZCgpXSA9ICRvYmplY3Q7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJG9iamVjdHNbXSA9ICRvYmplY3Q7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAkb2JqZWN0czsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYnVpbGRUcmVlKCYkcmVzdWx0cykKICB7CiAgICAkdHJlZSA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCRyZXN1bHRzIGFzICYkcmVzdWx0KQogICAgewogICAgICBpZihpc19udWxsKCRyZXN1bHQtPnBhcmVudF9pZCkgfHwgKCRyZXN1bHQtPnBhcmVudF9pZCA9PSAwKSkKICAgICAgewogICAgICAgICR0cmVlWyRyZXN1bHQtPmdldElkKCldID0gJHJlc3VsdDsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBpZihpc3NldCgkcmVzdWx0c1skcmVzdWx0LT5wYXJlbnRfaWRdKSkKICAgICAgICB7CiAgICAgICAgICAvLyBXZSB3YW50IHRoZSBmdWxsIHRyZWUgdG8gdGhlIHJvb3RzIHdpdGhvdXQgb3JwaGFucy4uLiBQb29yIG9mIHRoZW0uCiAgICAgICAgICAkcmVzdWx0c1skcmVzdWx0LT5wYXJlbnRfaWRdLT5hZGRDaGlsZHJlbkl0ZW0oJHJlc3VsdCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gJHRyZWU7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRvU2VsZWN0KE1DRkNyaXRlcmlhICRjcml0KSB7CiAgICAkYyA9IGNsb25lICRjcml0OwogICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgICRxdWVyeSA9ICRjLT5idWlsZFF1ZXJ5KGNtc19kYl9wcmVmaXgoKS5zZWxmOjpEQl9OQU1FLCB0cnVlKTsKICAgICRyZXN1bHQgPSAkZGItPmV4ZWN1dGUoJHF1ZXJ5LCAkYy0+dmFsdWVzKTsKICAgIHJldHVybiBzZWxmOjpidWlsZE9iamVjdHMoJHJlc3VsdCk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRvU2VsZWN0T25lKE1DRkNyaXRlcmlhICRjcml0KSB7CiAgICAkYyA9IGNsb25lICRjcml0OwogICAgJGMtPnNldExpbWl0KDEpOwogICAgJG9iamVjdHMgPSBzZWxmOjpkb1NlbGVjdCgkYyk7CiAgICByZXR1cm4gKGNvdW50KCRvYmplY3RzKSA+IDApID8gYXJyYXlfc2hpZnQoJG9iamVjdHMpIDogZmFsc2U7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEJ5SWQoJGlkKSB7CiAgICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAgICRjLT5hZGQoJ2lkJywgJGlkKTsKICAgICAgcmV0dXJuIHNlbGY6OmRvU2VsZWN0T25lKCRjKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0VGl0bGVzKCkgewogICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAkYy0+YWRkQXNjZW5kaW5nT3JkZXJCeUNvbHVtbihjbXNfdXRpbHM6OmdldF9tb2R1bGUoc2VsZjo6TU9EVUxFX05BTUUpLT5nZXRQcmVmZXJlbmNlKCdvcmRlcl9ieScsICdvcmRlcl9ieScpKTsKICAgICRxdWVyeSA9ICRjLT5idWlsZFF1ZXJ5KGNtc19kYl9wcmVmaXgoKS5zZWxmOjpEQl9OQU1FKTsKICAgICRyZXN1bHQgPSAkZGItPmV4ZWN1dGUoJHF1ZXJ5LCAkYy0+dmFsdWVzKTsKICAgICRvYmplY3RzID0gYXJyYXkoKTsKICAgIHdoaWxlICgkcmVzdWx0ICYmICRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICRvYmplY3RzWyRyb3dbJ2lkJ11dID0gJHJvd1sndGl0bGUnXTsKICAgIH0KICAgIC8vYXNvcnQoJG9iamVjdHMpOwogICAgcmV0dXJuICRvYmplY3RzOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBxdWVyeSgkc3FsLCAkdmFsdWVzID0gYXJyYXkoKSkgewogICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgIHJldHVybiAkZGItPmV4ZWN1dGUoJHNxbCwgJHZhbHVlcyk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBwb3B1bGF0ZUZyb21BcnJheShhcnJheSAkcGFyYW1zLCAkcHJlZml4ID0gbnVsbCkgewogICAgaWYoIWlzX251bGwoJHByZWZpeCkpICRwcmVmaXggLj0gJy4nOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4naWQnXSkpIHsKICAgICAgJHRoaXMtPnNldElkKCRwYXJhbXNbJHByZWZpeC4naWQnXSk7CiAgICB9ICAgIAogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4ndXNlcl9pZCddKSkgewogICAgICAkdGhpcy0+c2V0VXNlcklkKCRwYXJhbXNbJHByZWZpeC4ndXNlcl9pZCddKTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyRwcmVmaXguJ3BhcmVudF9pZCddKSkgewogICAgICAkdGhpcy0+cGFyZW50X2lkID0gJHBhcmFtc1skcHJlZml4LidwYXJlbnRfaWQnXTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyRwcmVmaXguJ3RpdGxlJ10pKSB7CiAgICAgICR0aGlzLT5zZXRUaXRsZSgkcGFyYW1zWyRwcmVmaXguJ3RpdGxlJ10pOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4nY3JlYXRlZF9hdCddKSkgewogICAgICAkdGhpcy0+c2V0Q3JlYXRlZEF0KCRwYXJhbXNbJHByZWZpeC4nY3JlYXRlZF9hdCddKTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyRwcmVmaXguJ2NyZWF0ZWRfYnknXSkpIHsKICAgICAgJHRoaXMtPnNldENyZWF0ZWRCeSgkcGFyYW1zWyRwcmVmaXguJ2NyZWF0ZWRfYnknXSk7CiAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1skcHJlZml4Lid1cGRhdGVkX2F0J10pKSB7CiAgICAgICR0aGlzLT5zZXRVcGRhdGVkQXQoJHBhcmFtc1skcHJlZml4Lid1cGRhdGVkX2F0J10pOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4ndXBkYXRlZF9ieSddKSkgewogICAgICAkdGhpcy0+c2V0VXBkYXRlZEJ5KCRwYXJhbXNbJHByZWZpeC4ndXBkYXRlZF9ieSddKTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyRwcmVmaXguJ21jZmlfY3JlYXRlZF90aW1lc3RhbXAnXSkpIHsKICAgICAgJHRoaXMtPnNldE1jZmlDcmVhdGVkVGltZXN0YW1wKCRwYXJhbXNbJHByZWZpeC4nbWNmaV9jcmVhdGVkX3RpbWVzdGFtcCddKTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyRwcmVmaXguJ21jZmlfdXBkYXRlZF90aW1lc3RhbXAnXSkpIHsKICAgICAgJHRoaXMtPnNldE1jZmlVcGRhdGVkVGltZXN0YW1wKCRwYXJhbXNbJHByZWZpeC4nbWNmaV91cGRhdGVkX3RpbWVzdGFtcCddKTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyRwcmVmaXguJ29yZGVyX2J5J10pKSB7CiAgICAgICR0aGlzLT5zZXRPcmRlckJ5KCRwYXJhbXNbJHByZWZpeC4nb3JkZXJfYnknXSk7CiAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1skcHJlZml4LidwYXJlbnRfaXRlbSddKSkgewogICAgICAkdGhpcy0+c2V0UGFyZW50SXRlbSgkcGFyYW1zWyRwcmVmaXguJ3BhcmVudF9pdGVtJ10pOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4ncHVibGlzaGVkJ10pKSB7CiAgICAgICR0aGlzLT5zZXRQdWJsaXNoZWQoJHBhcmFtc1skcHJlZml4LidwdWJsaXNoZWQnXSk7CiAgICB9ICAgIAogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4nc2VuZF91cGRhdGVfaW1tZWRpYXRlbHknXSkpIHsKICAgICAgJHRoaXMtPnNlbmRfdXBkYXRlX2ltbWVkaWF0ZWx5ID0gJHBhcmFtc1skcHJlZml4LidzZW5kX3VwZGF0ZV9pbW1lZGlhdGVseSddOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJHByZWZpeC4nZnVsbF90ZXh0X3NlYXJjaCddKSkKICAgIHsKICAgICAgJHRoaXMtPnNldEZ1bGxUZXh0U2VhcmNoKCRwYXJhbXNbJHByZWZpeC4nZnVsbF90ZXh0X3NlYXJjaCddKTsKICAgIH0KICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICBpZiAoaXNzZXQoJHBhcmFtc1skcHJlZml4Lid7eyRmaWVsZC5uYW1lfX0nXSkpIHsKICAgICAgJHRoaXMtPnNldHt7JGZpZWxkLmNhbWVsY2FzZX19KCRwYXJhbXNbJHByZWZpeC4ne3skZmllbGQubmFtZX19J10pOwogICAgfQogICAge3svZm9yZWFjaH19CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gaXNOZXcoKSB7CiAgICByZXR1cm4gJHRoaXMtPmdldElkKCkgPyBmYWxzZSA6IHRydWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcG9wdWxhdGUoJHJvdykgIHsKICAgIGlmIChpc3NldCgkcm93W3NlbGY6OkRCX0lURU0uJ19faWQnXSkpCiAgICB7CiAgICAgICR0aGlzLT5zZXRJZCgkcm93W3NlbGY6OkRCX0lURU0uJ19faWQnXSk7CiAgICB9ICAgIAogICAgCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sndXNlcl9pZCddKSkgewogICAgICAgICR0aGlzLT51c2VyX2lkID0gJHJvd1tzZWxmOjpEQl9JVEVNLidfX3VzZXJfaWQnXTsgLy8kcGFyYW1zWydjcmVhdGVkX2F0J107CiAgICB9ICAgIAogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2NyZWF0ZWRfYXQnXSkpIHsKICAgICAgICAkdGhpcy0+Y3JlYXRlZF9hdCA9ICRyb3dbc2VsZjo6REJfSVRFTS4nX19jcmVhdGVkX2F0J107IC8vJHBhcmFtc1snY3JlYXRlZF9hdCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snY3JlYXRlZF9ieSddKSkgewogICAgICAkdGhpcy0+Y3JlYXRlZF9ieSA9ICRyb3dbc2VsZjo6REJfSVRFTS4nX19jcmVhdGVkX2J5J107IC8vJHBhcmFtc1snY3JlYXRlZF9ieSddOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3VwZGF0ZWRfYXQnXSkpIHsKICAgICAgJHRoaXMtPnVwZGF0ZWRfYXQgPSAkcm93W3NlbGY6OkRCX0lURU0uJ19fdXBkYXRlZF9hdCddOyAvLyRwYXJhbXNbJ3VwZGF0ZWRfYXQnXTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyd1cGRhdGVkX2J5J10pKSB7CiAgICAgICR0aGlzLT51cGRhdGVkX2J5ID0gJHJvd1tzZWxmOjpEQl9JVEVNLidfX3VwZGF0ZWRfYnknXTsgLy8kcGFyYW1zWyd1cGRhdGVkX2J5J107CiAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snbWNmaV9jcmVhdGVkX3RpbWVzdGFtcCddKSkgewogICAgICAkdGhpcy0+bWNmaV9jcmVhdGVkX3RpbWVzdGFtcCA9ICRyb3dbc2VsZjo6REJfSVRFTS4nX19tY2ZpX2NyZWF0ZWRfdGltZXN0YW1wJ107CiAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snbWNmaV91cGRhdGVkX3RpbWVzdGFtcCddKSkgewogICAgICAkdGhpcy0+bWNmaV91cGRhdGVkX3RpbWVzdGFtcCA9ICRyb3dbc2VsZjo6REJfSVRFTS4nX19tY2ZpX3VwZGF0ZWRfdGltZXN0YW1wJ107CiAgICB9CiAgICAKICAgIAogICAgCiAgICBmb3JlYWNoIChzZWxmOjokZmllbGRzIGFzICRmaWVsZCkKICAgIHsKICAgICAgaWYgKGlzc2V0KCRyb3dbc2VsZjo6REJfSVRFTS4nX18nLiRmaWVsZF0pKQogICAgICB7CiAgICAgICAgJHRoaXMtPiRmaWVsZCA9ICRyb3dbc2VsZjo6REJfSVRFTS4nX18nLiRmaWVsZF07CiAgICAgIH0KICAgIH0KICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VuZXJhdGVTZWxlY3RMaXN0KCkgIHsKICAgICRmaWVsZHMgPSBhcnJheV9tZXJnZShhcnJheSgnaWQnLCd1c2VyX2lkJywnY3JlYXRlZF9hdCcsJ2NyZWF0ZWRfYnknLCd1cGRhdGVkX2F0JywndXBkYXRlZF9ieScsICdtY2ZpX2NyZWF0ZWRfdGltZXN0YW1wJywgJ21jZmlfdXBkYXRlZF90aW1lc3RhbXAnKSwgc2VsZjo6JGZpZWxkcyk7CiAgICAkbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoICgkZmllbGRzIGFzICRmaWVsZCkKICAgIHsKICAgICAgJGxpc3RbXSA9IHNlbGY6OkRCX0lURU0gLiAnLicuJGZpZWxkLicgYXMgJy4gc2VsZjo6Z2V0Um93TmFtZSgkZmllbGQpOwogICAgfQogICAgcmV0dXJuIGltcGxvZGUoJyAsICcsJGxpc3QpOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRSb3dOYW1lKCRuYW1lKSAgewogICAgcmV0dXJuIHNlbGY6OkRCX0lURU0gLiAnX18nIC4gJG5hbWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgkcGFyYW1zID0gYXJyYXkoKSwgJGZvcmNlX3NhdmUgPSBmYWxzZSkgewogICAgJHRoaXMtPnByZVNhdmUoKTsKICAgIGlmICgkdGhpcy0+Z2V0SWQoKSAmJiAhJGZvcmNlX3NhdmUpIHsKICAgICAgICBpZiAoJHRoaXMtPmlzX21vZGlmaWVkKSB7CiAgICAgICAgICAgICR0aGlzLT51cGRhdGUoJHBhcmFtcyk7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgJHRoaXMtPmluc2VydCgkcGFyYW1zKTsKICAgIH0KICAgICR0aGlzLT5wb3N0U2F2ZSgpOwogICAgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JyktPmluZGV4KCR0aGlzKTsKICAgIC8vICBkZWJ1Z19kaXNwbGF5KCRlbnRyeSk7IC8vIFRPIElNUExFTUVOVDogU2hvdyBkYXRhcyBmb3IgZGVidWcKICAgIHJldHVybiB0cnVlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgpIHsKICAgIGlmICgkdGhpcy0+Z2V0SWQoKSkgewogICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuc2VsZjo6REJfTkFNRSAuJyBXSEVSRSBpZCA9ID8nOwogICAgICAkdGhpcy0+cXVlcnkoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+aWQpKTsKICAgICAgCiAgICAgIE1YX1JlbGF0aW9uTGluazo6Y2xlYW5SZWxhdGVkSXRlbXMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkdGhpcy0+Z2V0SWQoKSk7CiAgICB9CiAgICAvLyBERUxFVEUgQUxMIFJFTEFURUQgRE9DVU1FTlRTICAgIAogICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAge3tpZiAkZmllbGQuZm9ybV90eXBlID09ICdmaWxlJ319CiAgICAgICAgJHRoaXMtPmRlbGV0ZXt7JGZpZWxkLmNhbWVsY2FzZX19KCk7CiAgICAgIHt7L2lmfX0KICAgIHt7L2ZvcmVhY2h9fQogIGNtc191dGlsczo6Z2V0X21vZHVsZSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpLT5kZWluZGV4KCR0aGlzKTsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluc2VydCgkcGFyYW1zID0gYXJyYXkoKSkgewogICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgIGlmKCR0aGlzLT5nZXRJZCgpID09IG51bGwpICAkdGhpcy0+c2V0SWQoJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIHNlbGY6OkRCX05BTUUgLiAnX3NlcScpKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgTUFYKG9yZGVyX2J5KSArIDEgQVMgb3JkZXJfYnkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS5zZWxmOjpEQl9OQU1FOwogICAgJHZhbHVlcyA9IGFycmF5KCk7CiAgICBpZiAoJHRoaXMtPnBhcmVudF9pdGVtKSB7CiAgICAgICRxdWVyeSAuPSAnIFdIRVJFIHBhcmVudF9pdGVtID0gPyc7CiAgICAgICR2YWx1ZXNbXSA9ICR0aGlzLT5wYXJlbnRfaXRlbTsKICAgIH0KICAgICRyZXN1bHQgPSAkZGItPmV4ZWN1dGUoJHF1ZXJ5LCAkdmFsdWVzKTsKICAgICRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOwogICAgJG9yZGVyX2J5ID0gJHJvd1snb3JkZXJfYnknXSA/ICRyb3dbJ29yZGVyX2J5J10gOiAxOwogICAgaWYoaXNzZXQoJHBhcmFtc1snZnJvbnRlbmQnXSkpCiAgICB7CiAgICAgICR1c2VyaWQgPSBudWxsOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwogICAgfSAgICAKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS5zZWxmOjpEQl9OQU1FIC4gJwogICAgICBTRVQgaWQgPSA/LAogICAgICAgIHVzZXJfaWQgPSA/LAogICAgICAgIHBhcmVudF9pZCA9ID8sCiAgICAgICAgdGl0bGUgPSA/LAogICAgICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgICAge3skZmllbGQubmFtZX19ID0gPywKICAgICAgICB7ey9mb3JlYWNofX0KICAgICAgICBjcmVhdGVkX2J5ID0gPywKICAgICAgICBjcmVhdGVkX2F0ID0gTk9XKCksCiAgICAgICAgbWNmaV9jcmVhdGVkX3RpbWVzdGFtcCA9ID8sCiAgICAgICAgdXBkYXRlZF9ieSA9ID8sCiAgICAgICAgdXBkYXRlZF9hdCA9IE5PVygpLAogICAgICAgIG1jZmlfdXBkYXRlZF90aW1lc3RhbXAgPSA/LAogICAgICAgIG9yZGVyX2J5ID0gPywKICAgICAgICBwYXJlbnRfaXRlbSA9ID8sCiAgICAgICAgcHVibGlzaGVkID0gPywKICAgICAgICBzZW5kX3VwZGF0ZV9pbW1lZGlhdGVseSA9ID8sCiAgICAgICAgZnVsbF90ZXh0X3NlYXJjaCA9ID8nOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoCiAgICAgICAgJHRoaXMtPmlkLAogICAgICAgICR0aGlzLT51c2VyX2lkLAogICAgICAkdGhpcy0+cGFyZW50X2lkLAogICAgICAkdGhpcy0+dGl0bGUsCiAgICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgICR0aGlzLT57eyRmaWVsZC5uYW1lfX0sCiAgICAgIHt7L2ZvcmVhY2h9fQogICAgICAkdXNlcmlkLAogICAgICB0aW1lKCksCiAgICAgICR1c2VyaWQsCiAgICAgIHRpbWUoKSwKICAgICAgJG9yZGVyX2J5LAogICAgICAkdGhpcy0+cGFyZW50X2l0ZW0sCiAgICAgICR0aGlzLT5wdWJsaXNoZWQsCiAgICAgICR0aGlzLT5zZW5kX3VwZGF0ZV9pbW1lZGlhdGVseSwKICAgICAgJHRoaXMtPmZ1bGxfdGV4dF9zZWFyY2goKQogICAgKSk7CiAgICBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKS0+U2VuZEV2ZW50KCdDb250ZW50RWRpdFBvc3QnLCBhcnJheSgpKTsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIHVwZGF0ZSgkcGFyYW1zID0gYXJyYXkoKSkgewogICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2Zyb250ZW5kJ10pKQogICAgewogICAgICAkdXNlcmlkID0gbnVsbDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKICAgIH0KICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuc2VsZjo6REJfTkFNRS4gJwogICAgICBTRVQgCiAgICAgICAgdXNlcl9pZCA9ID8sCiAgICAgICAgcGFyZW50X2lkID0gPywKICAgICAgICB0aXRsZSA9ID8sCiAgICAgICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAgICB7eyRmaWVsZC5uYW1lfX0gPSA/LAogICAgICAgIHt7L2ZvcmVhY2h9fQogICAgICAgIHVwZGF0ZWRfYnkgPSA/LAogICAgICAgIHVwZGF0ZWRfYXQgPSBOT1coKSwKICAgICAgICBtY2ZpX3VwZGF0ZWRfdGltZXN0YW1wID0gPywKICAgICAgICBvcmRlcl9ieSA9ID8sCiAgICAgICAgcGFyZW50X2l0ZW0gPSA/LAogICAgICAgIHB1Ymxpc2hlZCA9ID8sCiAgICAgICAgc2VuZF91cGRhdGVfaW1tZWRpYXRlbHkgPSA/LAogICAgICAgIGZ1bGxfdGV4dF9zZWFyY2ggPSA/CiAgICAgIFdIRVJFIGlkID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgKICAgICAgJHRoaXMtPnVzZXJfaWQsCiAgICAgICR0aGlzLT5wYXJlbnRfaWQsCiAgICAgICR0aGlzLT50aXRsZSwKICAgICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAgJHRoaXMtPnt7JGZpZWxkLm5hbWV9fSwKICAgICAge3svZm9yZWFjaH19CiAgICAgICR1c2VyaWQsCiAgICAgIHRpbWUoKSwKICAgICAgJHRoaXMtPm9yZGVyX2J5LAogICAgICAkdGhpcy0+cGFyZW50X2l0ZW0sCiAgICAgICR0aGlzLT5wdWJsaXNoZWQsCiAgICAgICR0aGlzLT5zZW5kX3VwZGF0ZV9pbW1lZGlhdGVseSwKICAgICAgJHRoaXMtPmZ1bGxfdGV4dF9zZWFyY2goKSwKICAgICAgJHRoaXMtPmlkCiAgICApKTsKICAgIGNtc191dGlsczo6Z2V0X21vZHVsZSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpLT5TZW5kRXZlbnQoJ0NvbnRlbnRFZGl0UG9zdCcsYXJyYXkoKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1cGRhdGVPYmplY3RzKCkgIHsKICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAkb2JqZWN0cyA9IHNlbGY6OmRvU2VsZWN0KCRjKTsKICAgIGZvcmVhY2goJG9iamVjdHMgYXMgJG9iamVjdCkKICAgIHsKICAgICAgJG9iamVjdC0+aXNfbW9kaWZpZWQgPSB0cnVlOwogICAgICAkb2JqZWN0LT5zYXZlKCk7CiAgICB9CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBmb3JjZVVwZGF0ZU9iamVjdCgkbWFnaWMpICB7CiAgICBpZiAoJG1hZ2ljID0gJ21hZ2ljJykKICAgIHsKICAgICAgJHRoaXMtPmlzX21vZGlmaWVkID0gdHJ1ZTsKICAgICAgJHRoaXMtPnNhdmUoKTsKICAgIH0KICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZUNvbnRleHRJZCgpCiAgewogICAgaWYoY21zbXMoKSkKICAgIHJldHVybiBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5nZXRDb250ZW50T2JqZWN0KCktPklkKCk7CiAgICByZXR1cm4gbnVsbDsKICB9CiAgCiAgLy8gRklMVEVSUwogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYnVpbGRGaWx0ZXJzV2lkZ2V0cyhDTVNGb3JtICYkZm9ybSwgJGZpbHRlcnMpICB7CiAgICB7e2ZvcmVhY2ggZnJvbT0kZXh0cmFfZmllbGRzIGl0ZW09ZmllbGR9fQogICAgICB7e2lmICRmaWVsZC5maWx0ZXIgPT0gdHJ1ZX19CiAgICAgICAge3tpZiAkZmllbGQudHlwZSA9PSAndGV4dCcgfHwgJGZpZWxkLnR5cGUgPT0gJ3RleHRhcmVhJyB8fCAkZmllbGQudHlwZSA9PSAndGV4dGFyZWFfcGxhaW4nIHx8ICRmaWVsZC50eXBlID09ICd0ZXh0YXJlYV9jb2RlJ319CiAgICAgICAgICAkZm9ybS0+c2V0V2lkZ2V0KCdtb2R1bGVGaWx0ZXJzW3t7JGZpZWxkLm5hbWV9fV0nLCAndGV4dCcsIGFycmF5KCdzaXplJyA9PiAnMTInLCAnbGFiZWwnID0+ICd7eyRmaWVsZC5sYWJlbH19JywKICAgICAgICAgICAndmFsdWUnID0+IGlzc2V0KCRmaWx0ZXJzWyd7eyRmaWVsZC5uYW1lfX0nXSk/JGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddOm51bGwKICAgICAgICAgICkpOwogICAgICAgIHt7ZWxzZWlmICRmaWVsZC50eXBlID09ICdtb2R1bGUnfX0KICAgICAgICAgIGlmKGNsYXNzX2V4aXN0cygne3skZmllbGQuZm9wdGlvbnMubW9kdWxlX25hbWV9fU9iamVjdCcpKQogICAgICAgICAgewogICAgICAgICAgICAkaXRlbXMgPSB7eyRmaWVsZC5mb3B0aW9ucy5tb2R1bGVfbmFtZX19T2JqZWN0OjpnZXRUaXRsZXMoKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAgICAgICAgIHsKICAgICAgICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgICAgIH0KICAgICAgICAgICRmb3JtLT5zZXRXaWRnZXQoJ21vZHVsZUZpbHRlcnNbe3skZmllbGQubmFtZX19XScsICdzZWxlY3QnLCBhcnJheSgKICAgICAgICAgICAgJ3ZhbHVlcycgPT4gCiAgICAgICAgICAgICAgICBhcnJheSgwID0+ICcmbGFxdW87IHt7JGZpZWxkLmxhYmVsfX0gJnJhcXVvOycpICsKICAgICAgICAgICAgICAgICRpdGVtcwogICAgICAgICAgICAgICwKICAgICAgICAgICAgICAnbGFiZWwnID0+ICcnLAogICAgICAgICAgICAgICd2YWx1ZScgPT4gaXNzZXQoJGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddKT8kZmlsdGVyc1sne3skZmllbGQubmFtZX19J106bnVsbAogICAgICAgICAgICApKTsKICAgICAgICB7e2Vsc2VpZiAkZmllbGQuZm9ybV90eXBlID09ICdzZWxlY3QnfX0KICAgICAgICAgICRmb3JtLT5zZXRXaWRnZXQoJ21vZHVsZUZpbHRlcnNbe3skZmllbGQubmFtZX19XScsICdzZWxlY3QnLCBhcnJheSgKICAgICAgICAgICAgJ3ZhbHVlcycgPT4gCiAgICAgICAgICAgICAgICBhcnJheSgwID0+ICcmbGFxdW87IHt7JGZpZWxkLmxhYmVsfX0gJnJhcXVvOycpICsKICAgICAgICAgICAgICAgIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OiR7eyRmaWVsZC5uYW1lfX1fb3B0aW9ucwogICAgICAgICAgICAgICwKICAgICAgICAgICAgICAnbGFiZWwnID0+ICcnLAogICAgICAgICAgICAgICd2YWx1ZScgPT4gaXNzZXQoJGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddKT8kZmlsdGVyc1sne3skZmllbGQubmFtZX19J106bnVsbAogICAgICAgICAgICApKTsKICAgICAgICB7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAndXNlcid9fQogICAgICAgICAgaWYoY2xhc3NfZXhpc3RzKCdDTVNVc2VyJykpCiAgICAgICAgICB7CiAgICAgICAgICAgICR1c2VycyA9IENNU1VzZXI6OmdldFVzZXJMaXN0KCk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlCiAgICAgICAgICB7CiAgICAgICAgICAgICR1c2VycyA9IGFycmF5KCk7CiAgICAgICAgICB9CiAgICAgICAgCiAgICAgICAgICAkZm9ybS0+c2V0V2lkZ2V0KCdtb2R1bGVGaWx0ZXJzW3t7JGZpZWxkLm5hbWV9fV0nLCAnc2VsZWN0JywgYXJyYXkoCiAgICAgICAgICAgICd2YWx1ZXMnID0+IAogICAgICAgICAgICAgICAgYXJyYXkoMCA9PiAnJmxhcXVvOyB7eyRmaWVsZC5sYWJlbH19ICZyYXF1bzsnKSArCiAgICAgICAgICAgICAgICAkdXNlcnMKICAgICAgICAgICAgICAsCiAgICAgICAgICAgICAgJ2xhYmVsJyA9PiAnJywKICAgICAgICAgICAgICAndmFsdWUnID0+IGlzc2V0KCRmaWx0ZXJzWyd7eyRmaWVsZC5uYW1lfX0nXSk/JGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddOm51bGwKICAgICAgICAgICAgKSk7CiAgICAgICAge3svaWZ9fQoKICAgICAge3svaWZ9fQogICAge3svZm9yZWFjaH19CiAgICAKICAgIAogICAge3tpZiBpc3NldCgkaXNfdXNlcl9tb2R1bGUpfX0KICAgICAgaWYoY2xhc3NfZXhpc3RzKCdDTVNVc2VyJykpCiAgICAgIHsKICAgICAgICAkdXNlcnMgPSBDTVNVc2VyOjpnZXRVc2VyTGlzdCgpOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICR1c2VycyA9IGFycmF5KCk7CiAgICAgIH0KICAgICRmb3JtLT5zZXRXaWRnZXQoJ21vZHVsZUZpbHRlcnNbdXNlcl9pZF0nLCAnc2VsZWN0JywgYXJyYXkoCiAgICAgICd2YWx1ZXMnID0+IAogICAgICAgICAgYXJyYXkoMCA9PiAnJmxhcXVvOyBVc2VyICZyYXF1bzsnKSArICR1c2VycwogICAgICAgICwKICAgICAgICAnbGFiZWwnID0+ICcnLAogICAgICAgICd2YWx1ZScgPT4gaXNzZXQoJGZpbHRlcnNbJ3VzZXJfaWQnXSk/JGZpbHRlcnNbJ3VzZXJfaWQnXTpudWxsCiAgICAgICkpOwogICAge3svaWZ9fQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGJ1aWxkRmlsdGVyc0NyaXRlcmlhKE1DRkNyaXRlcmlhICYkYywgJGZpbHRlcnMpICB7CiAgICB7e2ZvcmVhY2ggZnJvbT0kZXh0cmFfZmllbGRzIGl0ZW09ZmllbGR9fQogICAgICB7e2lmICRmaWVsZC5maWx0ZXIgPT0gdHJ1ZX19CiAgICAgICAge3tpZiAkZmllbGQudHlwZSA9PSAndGV4dCcgfHwgJGZpZWxkLnR5cGUgPT0gJ3RleHRhcmVhJyB8fCAkZmllbGQudHlwZSA9PSAndGV4dGFyZWFfcGxhaW4nIHx8ICRmaWVsZC50eXBlID09ICd0ZXh0YXJlYV9jb2RlJ319CiAgICAgICAgICBpZiAoaXNzZXQoJGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddKSkKICAgICAgICAgIHsKICAgICAgICAgICAgICAkYy0+YWRkKCd7eyRmaWVsZC5uYW1lfX0nLCAnJScuJGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddLiclJywgTUNGQ3JpdGVyaWE6OkxJS0UpOwogICAgICAgICAgfQogICAgICAgIHt7ZWxzZWlmICRmaWVsZC50eXBlID09ICdtb2R1bGUnIHx8ICRmaWVsZC50eXBlID09ICd1c2VyJyB8fCAkZmllbGQuZm9ybV90eXBlID09ICdzZWxlY3QnfX0KICAgICAgICAgIGlmIChpc3NldCgkZmlsdGVyc1sne3skZmllbGQubmFtZX19J10pKQogICAgICAgICAgewogICAgICAgICAgICB7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5tdWx0aXBsZSl9fSAgICAgICAgICAgIAogICAgICAgICAgICAgICRjLT5hZGQoJ3t7JGZpZWxkLm5hbWV9fScsICRmaWx0ZXJzWyd7eyRmaWVsZC5uYW1lfX0nXSwgTUNGQ3JpdGVyaWE6Ok1VTFRJTElLRSk7CiAgICAgICAgICAgIHt7ZWxzZX19ICAgICAgICAgICAgCiAgICAgICAgICAgICAgJGMtPmFkZCgne3skZmllbGQubmFtZX19JywgJGZpbHRlcnNbJ3t7JGZpZWxkLm5hbWV9fSddLCBNQ0ZDcml0ZXJpYTo6RVFVQUwpOwogICAgICAgICAgICB7ey9pZn19CiAgICAgICAgICB9CiAgICAgICAge3svaWZ9fQogICAgICB7ey9pZn19CiAgICB7ey9mb3JlYWNofX0KICAgIHt7aWYgaXNzZXQoJGlzX3VzZXJfbW9kdWxlKX19CiAgICAgICAgJGMtPmFkZCgndXNlcl9pZCcsICRmaWx0ZXJzWyd1c2VyX2lkJ10sIE1DRkNyaXRlcmlhOjpFUVVBTCk7CiAgICB7ey9pZn19CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0RkVGaWx0ZXIoJGZvcm0sICRmaWx0ZXIsICRvcHRpb25zID0gYXJyYXkoKSkgIHsKICAgIHN3aXRjaCgkZmlsdGVyKQogICAgewogICAge3tmb3JlYWNoIGZyb209JGZpbHRlcnMgaXRlbT1maWx0ZXJ9fQogICAgY2FzZSAne3skZmlsdGVyLm5hbWV9fSc6ICAKICAgICAge3tpZiAkZmlsdGVyLmZpZWxkID09ICd0aXRsZSd9fQogICAgICAgICRmb3JtLT5zZXRXaWRnZXQoJ3RpdGxlJywndGV4dCcsICRvcHRpb25zKTsKCQkJe3tlbHNlaWYgJGZpbHRlci5maWVsZCA9PSAnZnVsbF90ZXh0X3NlYXJjaCd9fQoJCQkJaWYgKCFpc3NldCgkb3B0aW9uc1snbGFiZWwnXSkpICRvcHRpb25zWydsYWJlbCddID0gJ3t7JGZpZWxkLmxhYmVsfX0nOwoJCQkJJGZvcm0tPnNldFdpZGdldCgnZmlsdGVyX2FsbCcsICd0ZXh0JywgJG9wdGlvbnMpOwogICAgICB7e2Vsc2V9fQogICAgICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgICAgICB7e2lmICRmaWx0ZXIuZmllbGQgPT0gJGZpZWxkLm5hbWV9fQogICAgICAgICAgICBpZiAoIWlzc2V0KCRvcHRpb25zWydsYWJlbCddKSkgJG9wdGlvbnNbJ2xhYmVsJ10gPSAne3skZmllbGQubGFiZWx9fSc7CiAgICAgICAgICAgIHt7aWYgJGZpZWxkLnR5cGUgPT0gJ3RleHQnIG9yICRmaWVsZC50eXBlID09ICd0ZXh0YXJlYScgb3IgJGZpZWxkLnR5cGUgPT0gJ3RleHRhcmVhX3BsYWluJ319CiAgICAgICAgICAgICAgJGZvcm0tPnNldFdpZGdldCgne3skZmlsdGVyLm5hbWV9fScsICd0ZXh0JywgJG9wdGlvbnMpOwogICAgICAgICAgICB7e2Vsc2VpZiAkZmllbGQuZm9ybV90eXBlID09ICdzZWxlY3QnfX0KICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRvcHRpb25zWydpbmNsdWRlX2N1c3RvbSddKSkgJG9wdGlvbnNbJ2luY2x1ZGVfY3VzdG9tJ10gPSAnJmxhcXVvOyAnIC4gY21zX3V0aWxzOjpnZXRfbW9kdWxlKHNlbGY6Ok1PRFVMRV9OQU1FKS0+bGFuZygnc2VsZWN0X29uZScpIC4gJyAmcmFxdW87JzsKICAgICAgICAgICAgICB7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5mZXNlbGVjdG9yKX19CiAgICAgICAgICAgICAgICAkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwogICAgICAgICAgICAgICAgJGMtPmFkZCgncHVibGlzaGVkJywgMSk7CiAgICAgICAgICAgICAgICAkb3B0aW9uc1sndmFsdWVzJ10gPSB7eyRmaWVsZC5mb3B0aW9ucy5tb2R1bGVfbmFtZX19T2JqZWN0Ojp7eyRmaWVsZC5mb3B0aW9ucy5mZXNlbGVjdG9yfX0oJGMpOwogICAgICAgICAgICAgIHt7ZWxzZWlmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5zZWxlY3Rvcil9fQogICAgICAgICAgICAgICAgJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKICAgICAgICAgICAgICAgICRjLT5hZGQoJ3B1Ymxpc2hlZCcsIDEpOwogICAgICAgICAgICAgICAgJG9wdGlvbnNbJ3ZhbHVlcyddID0ge3skZmllbGQuZm9wdGlvbnMubW9kdWxlX25hbWV9fU9iamVjdDo6e3skZmllbGQuZm9wdGlvbnMuc2VsZWN0b3J9fSgkYyk7CiAgICAgICAgICAgICAge3tlbHNlfX0KICAgICAgICAgICAgICAgICRvcHRpb25zWyd2YWx1ZXMnXSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OiR7eyRmaWVsZC5uYW1lfX1fb3B0aW9uczsKICAgICAgICAgICAgICB7ey9pZn19CiAgICAgICAgICAgICAgJGZvcm0tPnNldFdpZGdldCgne3skZmlsdGVyLm5hbWV9fScsICdzZWxlY3QnLCAkb3B0aW9ucyk7CiAgICAgICAgICAgIHt7ZWxzZWlmICRmaWVsZC50eXBlID09ICdtb2R1bGUnfX0KICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRvcHRpb25zWydpbmNsdWRlX2N1c3RvbSddKSkgJG9wdGlvbnNbJ2luY2x1ZGVfY3VzdG9tJ10gPSAnJmxhcXVvOyAnIC4gY21zX3V0aWxzOjpnZXRfbW9kdWxlKHNlbGY6Ok1PRFVMRV9OQU1FKS0+bGFuZygnc2VsZWN0X29uZScpIC4gJyAmcmFxdW87JzsKICAgICAgICAgICAgICB7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5mZXNlbGVjdG9yKX19CiAgICAgICAgICAgICAgICAkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwogICAgICAgICAgICAgICAgJGMtPmFkZCgncHVibGlzaGVkJywgMSk7CiAgICAgICAgICAgICAgICAkb3B0aW9uc1sndmFsdWVzJ10gPSB7eyRmaWVsZC5mb3B0aW9ucy5tb2R1bGVfbmFtZX19T2JqZWN0Ojp7eyRmaWVsZC5mb3B0aW9ucy5mZXNlbGVjdG9yfX0oJGMpOwogICAgICAgICAgICAgIHt7L2lmfX0KICAgICAgICAgICAgICBpZighaXNzZXQoJG9wdGlvbnNbJ3ZhbHVlcyddKSkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihjbGFzc19leGlzdHMoJ3t7JGZpZWxkLmZvcHRpb25zLm1vZHVsZV9uYW1lfX1PYmplY3QnKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJG9wdGlvbnNbJ3ZhbHVlcyddID0ge3skZmllbGQuZm9wdGlvbnMubW9kdWxlX25hbWV9fU9iamVjdDo6Z2V0VGl0bGVzKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICRvcHRpb25zWyd2YWx1ZXMnXSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSAgICAgICAgICAgCiAgICAgICAgICAgICAgJGZvcm0tPnNldFdpZGdldCgne3skZmlsdGVyLm5hbWV9fScsICdzZWxlY3QnLCAkb3B0aW9ucyk7CiAgICAgICAgICAgIHt7ZWxzZWlmICRmaWVsZC50eXBlID09ICdkYXRlJ319CiAgICAgICAgICAgICAgLy8gREFURVMKICAgICAgICAgICAgICAgJGZvcm0tPnNldFdpZGdldCgne3skZmlsdGVyLm5hbWV9fScsICd0ZXh0JywgJG9wdGlvbnMpOwogICAgICAgICAgICB7ey9pZn19CiAgICAgICAgICB7ey9pZn19CiAgICAgICAge3svZm9yZWFjaH19CiAgICAgIHt7L2lmfX0KICAgIGJyZWFrOwogICAge3svZm9yZWFjaH19CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICAvLyBFeGVjdXRlZCBiZWZvcmUgdGhlIHNhdmUgYWN0aW9uIGlzIGZpcmVkCiAgcHVibGljIGZ1bmN0aW9uIHByZVNhdmUoKSAgewogICAgCiAgfQogIAogIC8vIEV4ZWN1dGVkIGFmdGVyIHRoZSBzYWNlIGFjdGlvbiBpcyBmaXJlZAogIHB1YmxpYyBmdW5jdGlvbiBwb3N0U2F2ZSgpCiAgewogICAgaWYoJHRoaXMtPnB1Ymxpc2hlZCAmJiAkdGhpcy0+c2VuZF91cGRhdGVfaW1tZWRpYXRlbHkpCiAgICB7CiAgICAgIGlmKCRkaWdlc3QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0RpZ2VzdCcpKQogICAgICB7CiAgICAgICAgaWYobWV0aG9kX2V4aXN0cygkZGlnZXN0LCAnc2VuZFVwZGF0ZUltbWVkaWF0ZWx5JykpCiAgICAgICAgewogICAgICAgICAgJHJlc3VsdCA9ICRkaWdlc3QtPnNlbmRVcGRhdGVJbW1lZGlhdGVseSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KCiAgLy8gVE9ETzogTU9WRSBUSEUgVFdPIEZVTkNUSU9OUwogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRVcGRhdGVTdWJqZWN0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPnRpdGxlOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXBkYXRlQm9keSgpCiAgewogICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpOwogICAgJG1vZHVsZS0+c21hcnR5LT5hc3NpZ24oJ2l0ZW0nLCAkdGhpcyk7ICAgIAogICAgcmV0dXJuICRtb2R1bGUtPlByb2Nlc3NUZW1wbGF0ZUZvcignZGlyZWN0X2VtYWlsJywgYXJyYXkoKSk7CiAgfQoKICAvLyBFeGVjdXRlZCBpbiB0aGUgZWRpdCBhY3Rpb24gd2hlbiBldmVyeXRoaW5nIHdlbnQgZmluZSAoRXhlY3V0ZWQgYWZ0ZXIgaXRlbSBzYXZlIHRob3VnaCkKICBwdWJsaWMgZnVuY3Rpb24gcG9zdEFjdGlvbnMoKSAgewogICAgCiAgfQogIAogIC8vIEFsbG93IHlvdSB0byByZXN0cmljdCB0aGUgZnJvbnRlbmQgbGlzdCBhbmQgZGV0YWlscyB3aXRoIHJlcXVpcmVkIGZpbHRlcnMKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdsb2JhbEZyb250ZW5kRmlsdGVycyhNQ0ZDcml0ZXJpYSAmJGMsICRwYXJhbXMgPSBhcnJheSgpKSAgewogICAgCiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYnVpbGRGcm9udGVuZEZpbHRlcnMoTUNGQ3JpdGVyaWEgJiRjLCAkcGFyYW1zKSAgewogICAgLy8gTW9kdWxlIFh0ZW5kZXIgZmlsdGVycwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2N1cnJlbnRwYWdlJ10pKSB7CiAgICAgICRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCBjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpLCAncGFnZXMnKSwgTUNGQ3JpdGVyaWE6OklOKTsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydwYWdlcyddKSkgewogICAgICAkZ2x1ZSA9IGlzc2V0KCRwYXJhbXNbJ2FsbF9wYWdlcyddKSA/ICdBTkQnIDogJ09SJzsKICAgICAgJGMtPmFkZCgnaWQnLCBNWF9SZWxhdGlvbkxpbms6OmdldFJlbGF0ZWRJdGVtc0lkcygne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScsIGV4cGxvZGUoJywnLCAkcGFyYW1zWydwYWdlcyddKSwgJ3BhZ2VzJywgJGdsdWUpLCBNQ0ZDcml0ZXJpYTo6SU4pOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ29wdGlvbnMnXSkpIHsKICAgICAgJGdsdWUgPSBpc3NldCgkcGFyYW1zWydhbGxfb3B0aW9ucyddKSA/ICdBTkQnIDogJ09SJzsKICAgICAgJGMtPmFkZCgnaWQnLCBNWF9SZWxhdGlvbkxpbms6OmdldFJlbGF0ZWRJdGVtc0lkcygne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScsIGV4cGxvZGUoJywnLCAkcGFyYW1zWydvcHRpb25zJ10pLCAnb3B0aW9ucycsICRnbHVlKSwgTUNGQ3JpdGVyaWE6OklOKTsKICAgIH0KICAgIAogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ214ZmlsdGVyc19vcHRpb25zJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ214ZmlsdGVyc19vcHRpb25zJ10pKSB7CiAgICAgICRvcHRpb25zID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCAoJHBhcmFtc1snbXhmaWx0ZXJzX29wdGlvbnMnXSBhcyAkb3B0aW9uKSB7CiAgICAgICAgaWYgKCRvcHRpb24pIHsKICAgICAgICAgICRvcHRpb25zW10gPSAkb3B0aW9uOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoY291bnQoJG9wdGlvbnMpKSB7CiAgICAgICAgJGMtPmFkZCgnaWQnLCBNWF9SZWxhdGlvbkxpbms6OmdldFJlbGF0ZWRJdGVtc0lkcygne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScsICRvcHRpb25zLCAnb3B0aW9ucycsICdBTkQnKSwgTUNGQ3JpdGVyaWE6OklOKTsKICAgICAgfQogICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydteGZpbHRlcnNfcGFnZXMnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snbXhmaWx0ZXJzX3BhZ2VzJ10pKSB7CiAgICAgICRwYWdlcyA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ214ZmlsdGVyc19wYWdlcyddIGFzICRwYWdlKSB7CiAgICAgICAgaWYgKCRwYWdlKSB7CiAgICAgICAgICAkcGFnZXNbXSA9ICRwYWdlOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoY291bnQoJHBhZ2VzKSkgewogICAgICAgICRjLT5hZGQoJ2lkJywgTVhfUmVsYXRpb25MaW5rOjpnZXRSZWxhdGVkSXRlbXNJZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkcGFnZXMsICdwYWdlcycsICdBTkQnKSwgTUNGQ3JpdGVyaWE6OklOKTsKICAgICAgfQogICAgfQogICAgCiAgICAvLyBTRUFSQ0ggCiAgICAKICAgIGlmIChpc3NldCgkcGFyYW1zWydmaWx0ZXJfdGl0bGUnXSkpIHsKICAgICAgJGZpbHRlcl90aXRsZSA9IHRyaW0oaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2ZpbHRlcl90aXRsZSddKSk7CiAgICAgICRmaWx0ZXJfdGl0bGUgPSBzdHJfcmVwbGFjZShhcnJheSgnJScsICc/JyksICcgJywgJGZpbHRlcl90aXRsZSk7CiAgICAgIGlmICghZW1wdHkoJGZpbHRlcl90aXRsZSkpIHsKICAgICAgICBwcmVnX21hdGNoX2FsbCgnLyg/OiIoW14iXSspIil8KFx3KykvJywgJGZpbHRlcl90aXRsZSwgJG1hdGNoZXMpOwogICAgICAgICRjbGF1c2VzID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoICgkbWF0Y2hlc1swXSBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgJGNsYXVzZXNbJGtleV0gPSAkbWF0Y2hlc1sxXVska2V5XSA/ICRtYXRjaGVzWzFdWyRrZXldIDogJG1hdGNoZXNbMl1bJGtleV07CiAgICAgICAgfQogICAgICAgIGZvcmVhY2ggKCRjbGF1c2VzIGFzICRjbGF1c2UpIHsKICAgICAgICAgICRjLT5hZGQoJ3RpdGxlJywgJyUnIC4gJGNsYXVzZSAuICclJywgTUNGQ3JpdGVyaWE6OkxJS0UpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmlsdGVyX2FsbCddKSkgewogICAgICAkZmlsdGVyX2FsbCA9IHRyaW0oaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ2ZpbHRlcl9hbGwnXSkpOwogICAgICAkZmlsdGVyX2FsbCA9IHN0cl9yZXBsYWNlKGFycmF5KCclJywgJz8nKSwgJyAnLCAkZmlsdGVyX2FsbCk7CiAgICAgIGlmICghZW1wdHkoJGZpbHRlcl9hbGwpKSB7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy8oPzoiKFteIl0rKSIpfChcdyspLycsICRmaWx0ZXJfYWxsLCAkbWF0Y2hlcyk7CiAgICAgICAgJGNsYXVzZXMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzWzBdIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAkY2xhdXNlc1ska2V5XSA9ICRtYXRjaGVzWzFdWyRrZXldID8gJG1hdGNoZXNbMV1bJGtleV0gOiAkbWF0Y2hlc1syXVska2V5XTsKICAgICAgICB9CiAgICAgICAgZm9yZWFjaCAoJGNsYXVzZXMgYXMgJGNsYXVzZSkgewogICAgICAgICAgJGMtPmFkZCgnZnVsbF90ZXh0X3NlYXJjaCcsICclJyAuICRjbGF1c2UgLiAnJScsIE1DRkNyaXRlcmlhOjpMSUtFKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gTW9kdWxlIEZpbHRlcnMKICAgIAogICAge3tmb3JlYWNoIGZyb209JGZpbHRlcnMgaXRlbT1maWx0ZXJ9fQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSkgJiYgJHBhcmFtc1sne3skZmlsdGVyLm5hbWV9fSddICE9ICcnKSB7CiAgICAgIHt7aWYgaW5fYXJyYXkoJGZpbHRlci50eXBlLCBhcnJheSgnbGVzcycsICdsZXNzX2VxdWFsJywgJ2dyZWF0ZXInLCAnZ3JlYXRlcl9lcXVhbCcpKX19CiAgICAgICAgJGMtPmFkZCgne3skZmlsdGVyLmZpZWxkfX0nLCBzZWxmOjpjbGVhbkZpbHRlclZhbHVlKCd7eyRmaWx0ZXIuZmllbGR9fScsICRwYXJhbXNbJ3t7JGZpbHRlci5uYW1lfX0nXSksIE1DRkNyaXRlcmlhOjp7eyRmaWx0ZXIuY3JpdGVyaWF9fSk7CiAgICAgIHt7ZWxzZWlmICBpbl9hcnJheSgkZmlsdGVyLnR5cGUsIGFycmF5KCdsaWtlX3dpbGQnKSl9fQogICAgICAgICRjLT5hZGQoJ3t7JGZpbHRlci5maWVsZH19JywgJyUnIC4gc2VsZjo6Y2xlYW5GaWx0ZXJWYWx1ZSgne3skZmlsdGVyLmZpZWxkfX0nLCAkcGFyYW1zWyd7eyRmaWx0ZXIubmFtZX19J10pIC4gJyUnLCBNQ0ZDcml0ZXJpYTo6e3skZmlsdGVyLmNyaXRlcmlhfX0pOwogICAgICB7e2Vsc2VpZiAgaW5fYXJyYXkoJGZpbHRlci50eXBlLCBhcnJheSgnaW4nKSl9fQogICAgICAgICRjLT5hZGQoJ3t7JGZpbHRlci5maWVsZH19JywgZXhwbG9kZSgnLCcsc2VsZjo6Y2xlYW5GaWx0ZXJWYWx1ZSgne3skZmlsdGVyLmZpZWxkfX0nLCAkcGFyYW1zWyd7eyRmaWx0ZXIubmFtZX19J10pKSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKICAgICAge3tlbHNlfX0KICAgICAgICAkYy0+YWRkKCd7eyRmaWx0ZXIuZmllbGR9fScsIHNlbGY6OmNsZWFuRmlsdGVyVmFsdWUoJ3t7JGZpbHRlci5maWVsZH19JywgJHBhcmFtc1sne3skZmlsdGVyLm5hbWV9fSddKSwgTUNGQ3JpdGVyaWE6Ont7JGZpbHRlci5jcml0ZXJpYX19KTsKICAgICAge3svaWZ9fQogICAgfQogICAge3svZm9yZWFjaH19CiAgICAKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2xlYW5GaWx0ZXJWYWx1ZSgkbmFtZSwgJHZhbHVlKQogIHsKICAgIHN3aXRjaCgkbmFtZSkKICAgIHsKICAgICAge3tmb3JlYWNoIGZyb209JGZpbHRlcnMgaXRlbT1maWx0ZXJ9fQogICAgICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgICAgICB7e2lmICRmaWx0ZXIuZmllbGQgPT0gJGZpZWxkLm5hbWV9fQogICAgICAgICAgICB7e2lmICRmaWVsZC50eXBlID09ICdkYXRlJ319CiAgICAgIGNhc2UgJ3t7JGZpbHRlci5maWVsZH19JzoKICAgICAgICBpZihwcmVnX21hdGNoKCcvXihbMC05XXsyLDR9KS0oWzAtMV1bMC05XSktKFswLTNdWzAtOV0pPyQvJywgJHZhbHVlKSA9PSAwKQogICAgICAgIHsKICAgICAgICAgIGlmKHByZWdfbWF0Y2goJy9eKFswLTNdWzAtOV0pXC8oWzAtMV1bMC05XSlcLyhbMC05XXs0fSk/JC8nLCAkdmFsdWUpICE9IDApCiAgICAgICAgICB7CiAgICAgICAgICAgIGxpc3QoJGQsJG0sJHkpID0gZXhwbG9kZSgnLycsJHZhbHVlKTsKICAgICAgICAgICAgJHZhbHVlID0gJHkuJy0nLiRtLictJy4kZDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAgICAgICAgIHsKICAgICAgICAgICAgICAkdmFsdWUgPSBkYXRlKCdZLW0tZCcsIHN0cnRvdGltZSgkdmFsdWUpKTsKICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICAgICAgICB7ey9pZn19CiAgICAgICAgICB7ey9pZn19CiAgICAgICAge3svZm9yZWFjaH19CiAgICAgIHt7L2ZvcmVhY2h9fQogICAgICBkZWZhdWx0OgogICAgICAgIGJyZWFrOwogICAgfQogICAgCiAgICByZXR1cm4gJHZhbHVlOwogIH0KCiAgLy8gRlJPTlRFTkQgRk9STVMgOiBDSEVDSyBQRVJNSVNTSU9OUwogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2hlY2tQZXJtaXNzaW9ucygkcGFyYW1zID0gYXJyYXkoKSkgIHsKICAgIHJldHVybiB0cnVlOyAvLyBDYW4gYmUgb3ZlcmlkZSBpbiB0aGUgY3VzdG9tIGxvZ2ljCiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBpc1VzZXJJdGVtKCkgIHsKICAgICR1c2VyID0gQ01TVXNlcnM6OmdldFVzZXIoKTsKICAgIGlmIChpc19vYmplY3QoJHVzZXIpKQogICAgewogICAgICBpZiAoJHVzZXItPmdldElkKCkgPT0gJGl0ZW0tPmdlVXNlcklkKCkpCiAgICAgIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KICAKICAvLyBFeGVjdXRlZCBpbiB0aGUgdXNlcl9mb3JtIGFjdGlvbiB3aGVuIGV2ZXJ5dGhpbmcgd2VudCBmaW5lCiAgcHVibGljIGZ1bmN0aW9uIHVzZXJQb3N0QWN0aW9ucygkaWQsICRyZXR1cm5pZCwkZm9ybSA9IG51bGwpICB7CiAgICAkdGhpcy0+cG9zdEFjdGlvbnMoKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/classes/MCFModuleObjectPeer.class.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3RQZWVyIHsKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRvU2VsZWN0KE1DRkNyaXRlcmlhICRjID0gbnVsbCkgewoJCSRkYiA9IGNtc191dGlsczo6Z2V0X2RiKCk7CgkJJGMgPSBjbG9uZSAkYzsKCQkkcXVlcnkgPSAkYy0+YnVpbGRRdWVyeShjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3t7JHRhYmxlX25hbWV9fScpOwoJCSRyZXN1bHQgPSAkZGItPmV4ZWN1dGUoJHF1ZXJ5LCAkYy0+dmFsdWVzKTsKCQkkb2JqZWN0cyA9IGFycmF5KCk7CgkJd2hpbGUgKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJG9iamVjdCA9IG5ldyBzZWxmKCk7CgkJCSRvYmplY3QtPnBvcHVsYXRlRnJvbUFycmF5KCRyb3cpOwoJCQkkb2JqZWN0LT5pc19tb2RpZmllZCA9IGZhbHNlOwoJCQkkb2JqZWN0c1tdID0gJG9iamVjdDsKCQl9CgkJcmV0dXJuICRvYmplY3RzOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZG9TZWxlY3RPbmUoTUNGQ3JpdGVyaWEgJGMgPSBudWxsKSB7CiAgICAgICAgCiAgICB9Cgp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/classes/MCFModuleViews.class.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCgkvLyBDTEFTUyBUTyBIQU5ETEUgVEhFIFZJRVdTCiovCgpjbGFzcyB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19Vmlld3MgewoKcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhZG1pbkl0ZW1zKCRtb2R1bGUsJGlkLCRyZXR1cm5pZCwkdmlldywkaXRlbXMsJHBhcmVudF9pZD1udWxsKQp7CglpZiAoIWNtc21zKCkpIGV4aXQ7CgoJLy8gUHJldmlldyBjb2RlCglpZiAoIWlzc2V0KCRfU0VTU0lPTlsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWydwcmV2aWV3X2tleSddKSkKCXsKCQkkX1NFU1NJT05bJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nXVsncHJldmlld19rZXknXSA9IGJhc2U2NF9lbmNvZGUodGltZSgpKTsKCX0KCgkvLyAkdmlldyA9IG5ldyBNQ0ZMaXN0Vmlldygne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScsICRwYXJhbXMpOwoJLy8gJHZpZXctPnNldE9yZGVyQnkoJG1vZHVsZS0+Z2V0UHJlZmVyZW5jZSgnb3JkZXJfYnknLCAnb3JkZXJfYnknKSAuICcgJyAuICRtb2R1bGUtPmdldFByZWZlcmVuY2UoJ29yZGVyX2J5X2RpcmVjdGlvbicsICdhc2MnKSk7CgkvLyAkdmlldy0+c2V0SXRlbXNQZXJQYWdlKCRtb2R1bGUtPmdldFByZWZlcmVuY2UoJ2l0ZW1zX3Blcl9wYWdlJywgJzI1JykpOwoJLy8gJGl0ZW1zID0gJHZpZXctPmdldEl0ZW1zKCk7CgoJaWYgKGlzX251bGwoJHBhcmVudF9pZCkpCgl7CgkJJHRvdGFsSXRlbXMgPSAkdmlldy0+Z2V0VG90YWxJdGVtcygpOwoJfQoJZWxzZQoJewoJCSR0b3RhbEl0ZW1zID0gY291bnQoJGl0ZW1zKTsKCX0KCQoJCgkkbW9kdWxlLT5zbWFydHktPmFzc2lnbigndG90YWxfaXRlbXMnLCAkdG90YWxJdGVtcyk7CgkKCQoJJGlkcyA9IGFycmF5KCk7Cgkkcm93cyA9IGFycmF5KCk7CgkkaSA9IDA7CgoJZm9yZWFjaCAoJGl0ZW1zIGFzICRjdXJyID0+ICRpdGVtKSB7CgkJJGlkc1tdID0gJGN1cnI7CgkJJHJvd3NbJGldID0gYXJyYXkoCgkJICAnaWQnID0+ICRpdGVtLT5nZXRJZCgpLAoJCQkndGl0bGVsaW5rJyA9PiAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsICRpdGVtLT5nZXRUaXRsZSgpLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSwgJ2l0ZW1faWQnID0+ICRpdGVtLT5nZXRJZCgpKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJpdGVtbGluayInKSwKCQkJJ3B1Ymxpc2hsaW5rJyA9PiAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ3B1Ymxpc2gnLCAkcmV0dXJuaWQsIGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoKCRpdGVtLT5nZXRQdWJsaXNoZWQoKSA/ICdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnIDogJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnKSwgKCRpdGVtLT5nZXRQdWJsaXNoZWQoKSA/ICRtb2R1bGUtPkxhbmcoJ3VucHVibGlzaCcpIDogJG1vZHVsZS0+TGFuZygncHVibGlzaCcpKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSwgJ2l0ZW1faWQnID0+ICRpdGVtLT5nZXRJZCgpKSksCgkJCSdkZWxldGVsaW5rJyA9PiAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZScsICRyZXR1cm5pZCwgY21zbXMoKS0+Z2V0X3ZhcmlhYmxlKCdhZG1pbnRoZW1lJyktPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkbW9kdWxlLT5MYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSwgJ2l0ZW1faWQnID0+ICRpdGVtLT5nZXRJZCgpKSwgJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBlbnRyeT8nKSwKCQkJJ2VkaXRsaW5rJyA9PiAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICRpdGVtLT5nZXRUaXRsZSgpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldElkKCkpKSwKCQkJJ3ByZXZpZXdsaW5rJyA9PiAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2RldGFpbCcsICRtb2R1bGUtPmdldFByZWZlcmVuY2UoJ2RlZmF1bHRfcGFnZScpLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdmlldy5naWYnLCAkbW9kdWxlLT5sYW5nKCdwcmV2aWV3X3MnLCRpdGVtLT5nZXRUaXRsZSgpKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgncHJldmlld19rZXknID0+ICRfU0VTU0lPTlsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWydwcmV2aWV3X2tleSddLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldElkKCkpLCAnJywgZmFsc2UsZmFsc2UsJyB0YXJnZXQ9Il9uZXciJywgdHJ1ZSkKCgkJKTsKCQkJCQoJCWlmKCRtb2R1bGUtPmdldFByZWZlcmVuY2UoJ3VzZV9jbW9uJywgJzAnKSA9PSAnMScpCgkJewoJCQkkdXJsID0gJG1vZHVsZS0+Q3JlYXRlTGluaygkaWQsICdkZXRhaWwnLCAkbW9kdWxlLT5nZXRQcmVmZXJlbmNlKCdjbW9uX2RlZmF1bHRfcGFnZScpLCAnJywgYXJyYXkoJ2RldGFpbHRlbXBsYXRlJyA9PiAkbW9kdWxlLT5nZXRQcmVmZXJlbmNlKCdjbW9uX3RlbXBsYXRlJyksICdpdGVtX2lkJyA9PiAkaXRlbS0+Z2V0SWQoKSksICcnLCB0cnVlLGZhbHNlLCcnLCB0cnVlKTsKCQkJJHBsYWluX3VybCA9ICRtb2R1bGUtPkNyZWF0ZUxpbmsoJGlkLCAnZGV0YWlsJywgJG1vZHVsZS0+Z2V0UHJlZmVyZW5jZSgnY21vbl9kZWZhdWx0X3BhZ2UnKSwgJycsIGFycmF5KCdzaG93dGVtcGxhdGUnID0+ICdmYWxzZScsICdkZXRhaWx0ZW1wbGF0ZScgPT4gJG1vZHVsZS0+Z2V0UHJlZmVyZW5jZSgnY21vbl90ZW1wbGF0ZV9wbGFpbicpLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldElkKCkpLCAnJywgdHJ1ZSxmYWxzZSwnJywgdHJ1ZSk7CgkJCQoJCQkkZnJvbSA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2Ntb25fZnJvbScsIG51bGwpOwoJCQkkZnJvbV9lbWFpbCA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2Ntb25fZnJvbV9lbWFpbCcsIG51bGwpOwoJCQkKCQkJJGNtb24gPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NNb24nKTsKCQkJCgkJCWlmKCRjbW9uKQoJCQl7CgkJCQkkcm93c1skaV1bJ2Ntb24nXSA9ICAkY21vbi0+Y3JlYXRlU2VuZExpbmsoJGlkLCRyZXR1cm5pZCwkdXJsLCRwbGFpbl91cmwsICRmcm9tLCAkZnJvbV9lbWFpbCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkcm93c1skaV1bJ2Ntb24nXSA9ICAnJzsKCQkJfQoJCQkKCQl9CgkJZWxzZQoJCXsKCQkJJHJvd3NbJGldWydjbW9uJ10gPSAnJzsKCQl9CgkJCgkJaWYgKCgkbW9kdWxlLT5nZXRQcmVmZXJlbmNlKCd1c2VfdHdpdHRlcicsICcwJykgPT0gJzEnKSAmJiBNQ0ZUb29sczo6SXNNb2R1bGVBY3RpdmUoJ1R3aXR0ZXInKSkKCQl7CgkJCSR1cmwgPSAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2RldGFpbCcsICRtb2R1bGUtPmdldFByZWZlcmVuY2UoJ2RlZmF1bHRfcGFnZScpLCAnJywgYXJyYXkoJ2RldGFpbHRlbXBsYXRlJyA9PiAkbW9kdWxlLT5nZXRQcmVmZXJlbmNlKCdjbW9uX3RlbXBsYXRlJyksICdpdGVtX2lkJyA9PiAkaXRlbS0+Z2V0SWQoKSksICcnLCB0cnVlLGZhbHNlLCcnLCB0cnVlKTsKCQkJJHRpdGxlID0gJGl0ZW0tPmdldFRpdGxlKCk7CgkJCQoJCQkkc3RhdHVzID0gc3RyX3JlcGxhY2UoJ3skdGl0bGV9JywgJHRpdGxlLCBzdHJfcmVwbGFjZSgneyR1cmx9JywgJHVybCwgJG1vZHVsZS0+Z2V0UHJlZmVyZW5jZSgndHdpdHRlcl90ZW1wbGF0ZScsICd7JHRpdGxlfSAtIHskdXJsfScpKSk7IC8vIFRPRE86IFJlcGxhY2UgdGhhdCBieSByZWFsIHNtYXJ0eQoJCQkKCQkJJHJvd3NbJGldWyd0d2l0dGVyJ10gPSAgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUd2l0dGVyJyktPmNyZWF0ZVNlbmRMaW5rKCRpZCwkcmV0dXJuaWQsYXJyYXkoJ3N0YXR1cycgPT4gJHN0YXR1cykpOwoJCX0KCQllbHNlCgkJewoJCQkkcm93c1skaV1bJ3R3aXR0ZXInXSA9ICcnOwoJCX0KCQkKCQlpZiAoISR2aWV3LT5pc0N1c3RvbU9yZGVyKCkpIHsgLy8mJiBpc19udWxsKCRwYXJlbnRfaWQpCgkJICAgICRpbmRleCA9ICgkdmlldy0+Z2V0UGFnZSgpIC0gMSkgKiAkdmlldy0+Z2V0SXRlbXNQZXJQYWdlKCkgKyAkaTsKCQkgICAgaWYgKCRpbmRleCA+IDApIHsKCSAgICAJCSRyb3dzWyRpXVsnbW92ZXVwbGluayddID0gJG1vZHVsZS0+Q3JlYXRlTGluaygkaWQsICdtb3ZldXAnLCAkcmV0dXJuaWQsIGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsICRpdGVtLT5nZXRUaXRsZSgpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpLCAnaXRlbV9pZCcgPT4gJGl0ZW0tPmdldElkKCkpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9Iml0ZW1saW5rIicpOwoJICAgIAl9CgkgICAgCWlmICgkaW5kZXggPCAkdG90YWxJdGVtcyAtIDEpIHsKCSAgICAJCSRyb3dzWyRpXVsnbW92ZWRvd25saW5rJ10gPSAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ21vdmVkb3duJywgJHJldHVybmlkLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCAkaXRlbS0+Z2V0VGl0bGUoKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSwgJ2l0ZW1faWQnID0+ICRpdGVtLT5nZXRJZCgpKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJpdGVtbGluayInKTsKCSAgICAJfQoJCX0JCQoJCSsrJGk7Cgl9CgkkbW9kdWxlLT5zbWFydHktPmFzc2lnbigncm93cycsICRyb3dzKTsKCSRyZXN1bHRzID0gYXJyYXkoKTsKCgkKCWZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkKCXsKCQkKCXt7aWYgaXNzZXQoJGlzX3VzZXJfbW9kdWxlKX19CgkJJHJlc3VsdHNbJ1VzZXInXVskaXRlbS0+Z2V0SWQoKV1bXSA9IChzdHJpbmcpJGl0ZW0tPmdldFVzZXIoKTsKCXt7L2lmfX0KCQoJe3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KCXt7aWYgJGZpZWxkLmNvbHVtbiA9PSAndHJ1ZScgfHwgJGZpZWxkLmNvbHVtbiA9PSAnMSd9fQoJCXt7aWYgJGZpZWxkLnR5cGUgPT0gJ2RhdGUnfX0KCQkkcmVzdWx0c1sne3skZmllbGQubGFiZWx9fSddWyRpdGVtLT5nZXRJZCgpXVtdID0gZGF0ZSgkbW9kdWxlLT5nZXRQcmVmZXJlbmNlKCdkYXRlX2Zvcm1hdCcsICdkL20vWScpLCBzdHJ0b3RpbWUoJGl0ZW0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19KCkpKTsKCQkKCQl7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAnbW9kdWxlJ319CgkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpfX0KCQkkcmVzdWx0c1sne3skZmllbGQubGFiZWx9fSddWyRpdGVtLT5nZXRJZCgpXVtdID0gaW1wbG9kZSgnLCAnLCAkaXRlbS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1JdGVtcygpKTsKCQl7e2Vsc2V9fQoJCSRyZXN1bHRzWyd7eyRmaWVsZC5sYWJlbH19J11bJGl0ZW0tPmdldElkKCldW10gPSAkaXRlbS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1PYmplY3QoKTsJCQoJCXt7L2lmfX0KCQkKCQl7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAnc2VsZWN0J319CgkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpfX0KCQkkcmVzdWx0c1sne3skZmllbGQubGFiZWx9fSddWyRpdGVtLT5nZXRJZCgpXVtdID0gaW1wbG9kZSgnLCAnLCAkaXRlbS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1WYWx1ZXMoKSk7CgkJe3tlbHNlfX0KCQkkcmVzdWx0c1sne3skZmllbGQubGFiZWx9fSddWyRpdGVtLT5nZXRJZCgpXVtdID0gJGl0ZW0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWUoKTsJCQoJCXt7L2lmfX0JCQkKCQkKCQl7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAnZ3JvdXAnfX0KCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5tdWx0aXBsZSl9fQoJCSRyZXN1bHRzWyd7eyRmaWVsZC5sYWJlbH19J11bJGl0ZW0tPmdldElkKCldW10gPSBpbXBsb2RlKCcsICcsICRpdGVtLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVZhbHVlcygpKTsKCQl7e2Vsc2V9fQoJCSRyZXN1bHRzWyd7eyRmaWVsZC5sYWJlbH19J11bJGl0ZW0tPmdldElkKCldW10gPSAkaXRlbS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1WYWx1ZSgpOwkJCgkJe3svaWZ9fQkKCQkJCQkKCQl7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAndXNlcid9fQoJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19CgkJJHJlc3VsdHNbJ3t7JGZpZWxkLmxhYmVsfX0nXVskaXRlbS0+Z2V0SWQoKV1bXSA9IGltcGxvZGUoJywgJywgJGl0ZW0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWVzKCkpOwoJCXt7ZWxzZX19CgkJJHJlc3VsdHNbJ3t7JGZpZWxkLmxhYmVsfX0nXVskaXRlbS0+Z2V0SWQoKV1bXSA9ICRpdGVtLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVZhbHVlKCk7CQkKCQl7ey9pZn19CQkKCQkKCQl7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAnY291bnRyeSd9fQoJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19CgkJJHJlc3VsdHNbJ3t7JGZpZWxkLmxhYmVsfX0nXVskaXRlbS0+Z2V0SWQoKV1bXSA9IGltcGxvZGUoJywgJywgJGl0ZW0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWVzKCkpOwoJCXt7ZWxzZX19CgkJJHJlc3VsdHNbJ3t7JGZpZWxkLmxhYmVsfX0nXVskaXRlbS0+Z2V0SWQoKV1bXSA9ICRpdGVtLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fVZhbHVlKCk7CQkKCQl7ey9pZn19CgkJCQkKCQl7e2Vsc2VpZiAkZmllbGQudHlwZSA9PSAndXNlcid9fQoJCWlmKGNsYXNzX2V4aXN0cygnQ01TVXNlcicpKQoJCXsKCQkJJHJlc3VsdHNbJ3t7JGZpZWxkLmxhYmVsfX0nXVskaXRlbS0+Z2V0SWQoKV1bXSA9IENNU1VzZXI6OmdldFVzZXJOYW1lQnlJZCgkaXRlbS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX0oKSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHRzWyd7eyRmaWVsZC5sYWJlbH19J11bJGl0ZW0tPmdldElkKCldW10gPSAkaXRlbS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX0oKTsKCQl9CgkJe3tlbHNlfX0KCQkkcmVzdWx0c1sne3skZmllbGQubGFiZWx9fSddWyRpdGVtLT5nZXRJZCgpXVtdID0gJGl0ZW0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19KCk7CgkJe3svaWZ9fQoJe3svaWZ9fQoJe3svZm9yZWFjaH19Cgl9CgoJJGNvbHVtbnMgPSBNWF9SZWxhdGlvbjo6Z2V0Q29sdW1ucygkbW9kdWxlLT5nZXROYW1lKCkpOwoJZm9yZWFjaCAoJGNvbHVtbnMgYXMgJGNvbHVtbikgCgl7CgkgICAgJHJlc3VsdHNbJGNvbHVtbi0+Z2V0VGl0bGUoZmFsc2UsIHRydWUpXSA9IE1YX1JlbGF0aW9uTGluazo6Z2V0UmVsYXRlZEl0ZW1zQnlSZWxhdGlvbnMoJGNvbHVtbiwgJGlkcyk7Cgl9CgkkbW9kdWxlLT5zbWFydHktPmFzc2lnbignY29sdW1ucycsICRyZXN1bHRzKTsKCgkkdG90YWxQYWdlcyA9ICR2aWV3LT5nZXRUb3RhbFBhZ2VzKCk7CgkkcGFnZXMgPSBhcnJheSgpOwoJZm9yICgkaSA9IDE7ICRpIDw9ICR0b3RhbFBhZ2VzOyArKyRpKSB7CgkJJHBhZ2VzW10gPSAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJGksIGFycmF5KCd2aWV3JyA9PiAkdmlldy0+Z2V0VmlldygpLCAncGFnZScgPT4gJGkpLCAnJywgZmFsc2UsIGZhbHNlKTsKCX0KCQoJaWYgKGlzX251bGwoJHBhcmVudF9pZCkpCgl7CgkJJG1vZHVsZS0+c21hcnR5LT5hc3NpZ24oJ3BhZ2VzJywgJHBhZ2VzKTsKCQkkbW9kdWxlLT5zbWFydHktPmFzc2lnbignY3VycmVudFBhZ2UnLCAkdmlldy0+Z2V0UGFnZSgpKTsKCQkkbW9kdWxlLT5zbWFydHktPmFzc2lnbignYWRkX2l0ZW1fbGluaycsICRtb2R1bGUtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdCcsICRyZXR1cm5pZCwgJ0FkZCBpdGVtJywgYXJyYXkoJ3ZpZXcnID0+ICR2aWV3LT5nZXRWaWV3KCkpKSk7CgkJJG1vZHVsZS0+c21hcnR5LT5hc3NpZ24oJ2FkZF9pdGVtX2ljb24nLCAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXQnLCAkcmV0dXJuaWQsIGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJG1vZHVsZS0+TGFuZygnYWRkX2l0ZW0nKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgndmlldycgPT4gJHZpZXctPmdldFZpZXcoKSkpKTsKCgkJJG1vZHVsZXh0ZW5kZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZVh0ZW5kZXInKTsKCQkkY3VycmVudENhdGVnb3J5RmlsdGVycyA9ICR2aWV3LT5nZXRDYXRlZ29yeUZpbHRlcnMoKTsKCQkkY3VycmVudFBhZ2VGaWx0ZXJzID0gJHZpZXctPmdldFBhZ2VGaWx0ZXJzKCk7CgkJJGN1cnJlbnRNb2R1bGVGaWx0ZXJzID0gJHZpZXctPmdldE1vZHVsZUZpbHRlcnMoKTsKCQkKCQkkZm9ybSA9IG5ldyBDTVNGb3JtKCRtb2R1bGUtPkdldE5hbWUoKSwgJGlkLCdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwoJCSRmb3JtLT5zZXRCdXR0b25zKGFycmF5KCdmaWx0ZXInLCdjbGVhcl9maWx0ZXJzJykpOwoJCSRmb3JtLT5zZXRNdWx0aXBhcnRGb3JtKCk7CgkJJGZvcm0tPnNldExhYmVsKCdmaWx0ZXInLCAnRmlsdGVyJyk7CgkJJGZvcm0tPnNldExhYmVsKCdjbGVhcl9maWx0ZXJzJywgJ0NsZWFyJyk7CgkJJGZvcm0tPnNldFdpZGdldCgndGl0bGVGaWx0ZXInLCAndGV4dCcsIGFycmF5KCdsYWJlbCc9PicnLCAndmFsdWUnID0+ICR2aWV3LT5nZXRUaXRsZUZpbHRlcigpLCAnc2l6ZScgPT4gMTApKTsKCQkKCQkvLyBUT0RPOiBJbnNlcnQgbW9kdWxlcyBmaWx0ZXJzIGhlcmUKCQl7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpidWlsZEZpbHRlcnNXaWRnZXRzKCRmb3JtLCAkY3VycmVudE1vZHVsZUZpbHRlcnMpOwkJCgkJCgkJaWYgKCRtb2R1bGV4dGVuZGVyLT5pc1h0ZW5kZWRNb2R1bGUoJG1vZHVsZS0+R2V0TmFtZSgpKSkKCQl7CgkJCQlmb3JlYWNoIChNWF9SZWxhdGlvbjo6Z2V0RmlsdGVycygkbW9kdWxlLT5nZXROYW1lKCkpIGFzICRrZXkgPT4gJGZpbHRlcikgCgkJCQl7CgkJCQkJaWYgKCRmaWx0ZXItPmdldFR5cGUoKSA9PSAnY2F0ZWdvcnknKSB7CgkJCSAgICAgICAgJHZhbHVlcyA9IGFycmF5KDAgPT4gJyZsYXF1bzsgJyAuICRmaWx0ZXItPmdldFRpdGxlKGZhbHNlLCB0cnVlKSAuICcgJnJhcXVvOycpOwoJCSAgICAJCWZvcmVhY2ggKCRmaWx0ZXItPmdldFJlbGF0ZWRJdGVtcygpIGFzICRpdGVtKSB7CgkJICAgIAkJCSR2YWx1ZXNbJGl0ZW0tPmlkXSA9ICRpdGVtLT50aXRsZTsKCQkgICAgCQl9CQkJCgkJCQkJCSRmb3JtLT5zZXRXaWRnZXQoJ2NhdGVnb3J5RmlsdGVyc1tdJyAuICRmaWx0ZXItPmlkLCAnc2VsZWN0JywgYXJyYXkoJ2xhYmVsJyA9PicnLCAndmFsdWVzJyA9PiAkdmFsdWVzLCAndmFsdWUnID0+ICgkY3VycmVudENhdGVnb3J5RmlsdGVycykpKTsJCQoJCQkgICAgfSBlbHNlaWYgKCRmaWx0ZXItPmdldFR5cGUoKSA9PSAncGFnZScpIHsKCQkJICAgICAgICAkdmFsdWVzID0gYXJyYXkoMCA9PiAnJmxhcXVvOyAnIC4gJGZpbHRlci0+Z2V0VGl0bGUoZmFsc2UsIHRydWUpIC4gJyAmcmFxdW87Jyk7CgkJICAgIAkJZm9yZWFjaCAoJGZpbHRlci0+Z2V0UmVsYXRlZEl0ZW1zKCkgYXMgJGl0ZW0pIHsKCQkgICAgCQkJJHZhbHVlc1skaXRlbS0+aWRdID0gJGl0ZW0tPnRpdGxlOwoJCSAgICAJCX0KCQkJCQkJJGZvcm0tPnNldFdpZGdldCgncGFnZUZpbHRlcnNbXScgLiAkZmlsdGVyLT5pZCwgJ3NlbGVjdCcsIGFycmF5KCdsYWJlbCcgPT4nJywgJ3ZhbHVlcycgPT4gJHZhbHVlcywgJ3ZhbHVlJyA9PiAoJGN1cnJlbnRQYWdlRmlsdGVycykpKTsKCQkJICAgIH0KCQkJCX0KCQl9CgkJCgkJaWYgKCRmb3JtLT5pc1B1c2hlZCgnY2xlYXJfZmlsdGVycycpKQkJCgkJewoJCQkkZm9ybS0+Z2V0V2lkZ2V0KCd0aXRsZUZpbHRlcicpLT5zZXRWYWx1ZSgnJyk7CgkJfQoJCSRtb2R1bGUtPnNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJzX2Zvcm0nLCAkZm9ybSk7Cgl9CgoJcmV0dXJuICRtb2R1bGUtPlByb2Nlc3NUZW1wbGF0ZSgnZGVmYXVsdGFkbWluLml0ZW1zLnRwbCcpOwp9CgoKcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVGb3JtKCRtb2R1bGUsJiRmb3JtLCYkaXRlbSwkcGFyYW1zPWFycmF5KCkpCnsKCSRjb25maWcgPSBjbXNfdXRpbHM6OmdldF9jb25maWcoKTsKCQoJe3tmb3JlYWNoIGZyb209JHN0cnVjdHVyZS0+Z2V0VGFicygpIGl0ZW09dGFicyBrZXk9dGFiX2tleX19CgkKCQl7e2ZvcmVhY2ggZnJvbT0kdGFicy5maWVsZHNldHMgaXRlbT1maWVsZHNldCBrZXk9ZmllbGRzZXRfa2V5fX0KCQkKCQkJJGZvcm0tPnNldEZpZWxkc2V0KCd7eyR0YWJfa2V5fX0tLS17eyRmaWVsZHNldF9rZXl9fScsICd7eyRmaWVsZHNldC5uYW1lfX0nKTsKCQkJCgkJCXt7KmZvcmVhY2ggZnJvbT0kZmllbGRzZXQuZmllbGRzIGl0ZW09ZmllbGQgfX0KCQkJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyR0YWJfa2V5fX0tLS17eyRmaWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScpOwoJCQl7ey9mb3JlYWNoKn19CgkJCgkJe3svZm9yZWFjaH19CgkKCXt7L2ZvcmVhY2h9fQoJCQoJe3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KCSAge3tpZiAkZmllbGQuZm9ybV90eXBlID09ICdzZWxlY3QnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICdzZWxlY3QnLCBhcnJheSgKICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKSB8fCBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0KICAJCSd2YWx1ZXMnID0+IHt7JGZpZWxkLnNlbGVjdF9vcHRpb25zfX0sCiAgCQl7e2Vsc2V9fQogIAkJJ3ZhbHVlcycgPT4gYXJyYXkoJycgPT4gJyZsYXF1bzsgJyAuICRtb2R1bGUtPmxhbmcoJ3NlbGVjdF9vbmUnKSAuICcgJnJhcXVvOycpICsge3skZmllbGQuc2VsZWN0X29wdGlvbnN9fSwKICAJCXt7L2lmfX0gCiAgCQknbGFiZWwnID0+ICd7eyRmaWVsZC5sYWJlbH19JywgCiAgCQknZ2V0X21ldGhvZCcgPT4gJ2dldHt7JGZpZWxkLmNhbWVsY2FzZX19JywgCiAgCQknb2JqZWN0JyA9PiAmJGl0ZW0KICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19LCAnbXVsdGlwbGUnID0+IHRydWV7ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5zaXplKX19LCAnc2l6ZScgPT4ge3skZmllbGQuZm9wdGlvbnMuc2l6ZX19e3svaWZ9fQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0sICdleHBhbmRlZCcgPT4gdHJ1ZXt7L2lmfX0KCiAgCQksJ2RlZmF1bHRfdmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ3t7JGZpZWxkLm5hbWV9fSddKT8kcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXTp7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5kZWZhdWx0X3ZhbHVlKX19J3t7JGZpZWxkLmZvcHRpb25zLmRlZmF1bHRfdmFsdWV9fSd7e2Vsc2V9fW51bGx7ey9pZn19CiAgCSkpOwogICAge3tlbHNlaWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAnY2hlY2tib3gnfX0KICAgICRmb3JtLT5nZXRGaWVsZHNldCgne3skZmllbGQucGxhY2UudGFiX2tleX19LS0te3skZmllbGQucGxhY2UuZmllbGRzZXRfa2V5fX0nKS0+c2V0V2lkZ2V0KCd7eyRmaWVsZC5uYW1lfX0nLCAnc2VsZWN0JywgYXJyYXkoCiAgICAgICd2YWx1ZXMnID0+IGFycmF5KCcxJyA9PiAne3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGV4dCl9fXt7JGZpZWxkLmZvcHRpb25zLnRleHR9fXt7ZWxzZX19e3skZmllbGQubGFiZWx9fXt7L2lmfX0nKSwKICAgICAgJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScsCiAgICAgICdvYmplY3QnID0+ICYkaXRlbSwKICAgICAgJ2dldF9tZXRob2QnID0+ICdnZXR7eyRmaWVsZC5jYW1lbGNhc2V9fScsIAogICAgICAnbXVsdGlwbGUnID0+IHRydWUsCiAgICAgICdleHBhbmRlZCcgPT4gdHJ1ZQogICAgICB7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy50aXBzKX19LCAndGlwcycgPT4gJ3t7JGZpZWxkLmZvcHRpb25zLnRpcHN9fSd7ey9pZn19CiAgICApKTsKICAJe3tlbHNlaWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAndGV4dGFyZWEnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICd0ZXh0YXJlYScsIGFycmF5KAogIAkJJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScsIAogIAkJJ29iamVjdCcgPT4gJiRpdGVtLAogIAkJJ3Nob3dfd3lzaXd5ZycgPT4gdHJ1ZQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAkJLCdkZWZhdWx0X3ZhbHVlJyA9PiBpc3NldCgkcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXSk/JHBhcmFtc1sne3skZmllbGQubmFtZX19J106bnVsbAogIAkJKSk7CiAgCXt7ZWxzZWlmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ3RleHRhcmVhX3BsYWluJ319CiAgCSRmb3JtLT5nZXRGaWVsZHNldCgne3skZmllbGQucGxhY2UudGFiX2tleX19LS0te3skZmllbGQucGxhY2UuZmllbGRzZXRfa2V5fX0nKS0+c2V0V2lkZ2V0KCd7eyRmaWVsZC5uYW1lfX0nLCAndGV4dGFyZWEnLCBhcnJheSgKICAJCSdsYWJlbCcgPT4gJ3t7JGZpZWxkLmxhYmVsfX0nLCAKICAJCSdvYmplY3QnID0+ICYkaXRlbQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAkJLCdkZWZhdWx0X3ZhbHVlJyA9PiBpc3NldCgkcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXSk/JHBhcmFtc1sne3skZmllbGQubmFtZX19J106bnVsbAogIAkJKSk7CiAgCXt7ZWxzZWlmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ3RleHRhcmVhX2NvZGUnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICdjb2RlYXJlYScsIGFycmF5KAogIAkJJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScsIAogIAkJJ29iamVjdCcgPT4gJiRpdGVtCiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy50aXBzKX19LCAndGlwcycgPT4gJ3t7JGZpZWxkLmZvcHRpb25zLnRpcHN9fSd7ey9pZn19CiAgCQksJ2RlZmF1bHRfdmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ3t7JGZpZWxkLm5hbWV9fSddKT8kcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXTpudWxsCiAgCQkpKTsKICAJe3tlbHNlaWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAnZmlsZSd9fQogIAkkZm9ybS0+Z2V0RmllbGRzZXQoJ3t7JGZpZWxkLnBsYWNlLnRhYl9rZXl9fS0tLXt7JGZpZWxkLnBsYWNlLmZpZWxkc2V0X2tleX19JyktPnNldFdpZGdldCgne3skZmllbGQubmFtZX19JywgJ2ZpbGUnLCBhcnJheSgKICAJCSdsYWJlbCcgPT4gJ3t7JGZpZWxkLmxhYmVsfX0nLCAKICAJCSdvYmplY3QnID0+ICYkaXRlbSwKICAJCSdiYXNlX3VybCcgPT4gJGNvbmZpZ1sncm9vdF91cmwnXSwKICAJCSdkZWxldGVfY2hlY2tib3gnID0+ICd7eyRmaWVsZC5uYW1lfX1fZGVsZXRlJwogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAkJLCdkZWZhdWx0X3ZhbHVlJyA9PiBpc3NldCgkcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXSk/JHBhcmFtc1sne3skZmllbGQubmFtZX19J106bnVsbAogIAkpKTsKICAJe3tlbHNlaWYgJGZpZWxkLnR5cGUgPT0gJ2RhdGUnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICdkYXRlJywgYXJyYXkoCiAgCQknbGFiZWwnID0+ICd7eyRmaWVsZC5sYWJlbH19JywgCiAgCQknb2JqZWN0JyA9PiAmJGl0ZW0sICdldXJvcGVhbl9kYXRlJyA9PiB0cnVlLCAKICAJCSdzZXRfbWV0aG9kJyA9PiAnc2V0e3skZmllbGQuY2FtZWxjYXNlfX0nLAkJCiAgCQknZGVmYXVsdF92YWx1ZScgPT4gaXNzZXQoJHBhcmFtc1sne3skZmllbGQubmFtZX19J10pPyRwYXJhbXNbJ3t7JGZpZWxkLm5hbWV9fSddOmFycmF5KGRhdGUoJ1knKSxkYXRlKCdtJyksZGF0ZSgnZCcpKQogIAkJe3tpZiBpc3NldCgkZmllbGQuZGF0ZV9vcHRpb25zLnN0YXJ0X3llYXIpfX0sICdzdGFydF95ZWFyJyA9PiB7eyRmaWVsZC5kYXRlX29wdGlvbnMuc3RhcnRfeWVhcn19e3svaWZ9fQogIAkJe3tpZiBpc3NldCgkZmllbGQuZGF0ZV9vcHRpb25zLm51bWJlcl95ZWFycyl9fSwgJ251bWJlcl95ZWFycycgPT4ge3skZmllbGQuZGF0ZV9vcHRpb25zLm51bWJlcl95ZWFyc319e3svaWZ9fQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAkpKTsKICAJe3tlbHNlaWYgJGZpZWxkLnR5cGUgPT0gJ3RpbWUnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICd0aW1lJywgYXJyYXkoCiAgCQknbGFiZWwnID0+ICd7eyRmaWVsZC5sYWJlbH19JywgCiAgCQknb2JqZWN0JyA9PiAmJGl0ZW0sCiAgCQknc2V0X21ldGhvZCcgPT4gJ3NldHt7JGZpZWxkLmNhbWVsY2FzZX19JywKICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm1pZG5pZ2h0KX19CiAgCQknZGVmYXVsdF92YWx1ZScgPT4gYXJyYXkoMCwwLDApIHt7KiBUTyBGSVggKn19CiAgCQl7e2Vsc2V9fQkJCiAgCQknZGVmYXVsdF92YWx1ZScgPT4gYXJyYXkoZGF0ZSgnSCcpLGRhdGUoJ2knKSxkYXRlKCdzJykpCiAgCQl7ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy50aXBzKX19LCAndGlwcycgPT4gJ3t7JGZpZWxkLmZvcHRpb25zLnRpcHN9fSd7ey9pZn19CiAgCSkpOwogIAl7e2Vsc2VpZiAkZmllbGQuZm9ybV90eXBlID09ICdtb2R1bGUnfX0KICAJaWYgKGNsYXNzX2V4aXN0cygne3skZmllbGQuZm9wdGlvbnMubW9kdWxlX25hbWV9fU9iamVjdCcpKQogIAl7CQogIAkJJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKICAJCSRjLT5hZGQoJ3B1Ymxpc2hlZCcsIDEpOwogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuc2VsZWN0b3IpfX0KICAJCSRtb2RfaXRlbXMgPSB7eyRmaWVsZC5mb3B0aW9ucy5tb2R1bGVfbmFtZX19T2JqZWN0Ojp7eyRmaWVsZC5mb3B0aW9ucy5zZWxlY3Rvcn19KCRjKTsKICAJCXt7ZWxzZX19CiAgCQkkbW9kX2l0ZW1zID0ge3skZmllbGQuZm9wdGlvbnMubW9kdWxlX25hbWV9fU9iamVjdDo6ZG9TZWxlY3QoJGMpOwogIAkJe3svaWZ9fQogIAkJJGxpc3QgPSBhcnJheSgpOwogIAkkZm9ybS0+Z2V0RmllbGRzZXQoJ3t7JGZpZWxkLnBsYWNlLnRhYl9rZXl9fS0tLXt7JGZpZWxkLnBsYWNlLmZpZWxkc2V0X2tleX19JyktPnNldFdpZGdldCgne3skZmllbGQubmFtZX19JywgJ3NlbGVjdCcsIGFycmF5KAogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpIHx8IGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5leHBhbmRlZCl9fQogIAkJJ3ZhbHVlcycgPT4JJG1vZF9pdGVtcywgCiAgCQl7e2Vsc2V9fQogIAkJJ3ZhbHVlcycgPT4JYXJyYXkoJycgPT4gJyZsYXF1bzsgJyAuICRtb2R1bGUtPmxhbmcoJ3NlbGVjdF9vbmUnKSAuICcgJnJhcXVvOycpICsgJG1vZF9pdGVtcywgCiAgCQl7ey9pZn19CiAgCQknbGFiZWwnID0+ICd7eyRmaWVsZC5sYWJlbH19JywgCiAgCQknZ2V0X21ldGhvZCcgPT4gJ2dldHt7JGZpZWxkLmNhbWVsY2FzZX19JywgCiAgCQknb2JqZWN0JyA9PiAmJGl0ZW0KICAJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpfX0sICdtdWx0aXBsZScgPT4gdHJ1ZXt7L2lmfX0KICAJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuc2l6ZSl9fSwgJ3NpemUnID0+IHt7JGZpZWxkLmZvcHRpb25zLnNpemV9fXt7L2lmfX0KICAJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0sICdleHBhbmRlZCcgPT4gdHJ1ZXt7L2lmfX0KICAJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAksJ2RlZmF1bHRfdmFsdWUnID0+IGlzc2V0KCRwYXJhbXNbJ3t7JGZpZWxkLm5hbWV9fSddKT8kcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXTpudWxsCiAgCSkpOwogIAl9CiAgCXt7ZWxzZWlmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ3BhZ2UnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICdwYWdlcycsIGFycmF5KAogIAkJJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScgCiAgCQksJ29iamVjdCcgPT4gJiRpdGVtCiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5zdGFydF9wYWdlKX19LCAnc3RhcnRfcGFnZScgPT4gJ3t7JGZpZWxkLmZvcHRpb25zLnN0YXJ0X3BhZ2V9fSd7ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5jaGlsZHJlbm9mKX19LCAnY2hpbGRyZW5vZicgPT4gJ3t7JGZpZWxkLmZvcHRpb25zLmNoaWxkcmVub2Z9fSd7ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy50aXBzKX19LCAndGlwcycgPT4gJ3t7JGZpZWxkLmZvcHRpb25zLnRpcHN9fSd7ey9pZn19CQkKICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLnNpemUpfX0sICdzaXplJyA9PiB7eyRmaWVsZC5mb3B0aW9ucy5zaXplfX17ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5tdWx0aXBsZSl9fSwgJ211bHRpcGxlJyA9PiB0cnVle3svaWZ9fQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0sICdleHBhbmRlZCcgPT4gdHJ1ZXt7L2lmfX0KICAJCSwnZGVmYXVsdF92YWx1ZScgPT4gaXNzZXQoJHBhcmFtc1sne3skZmllbGQubmFtZX19J10pPyRwYXJhbXNbJ3t7JGZpZWxkLm5hbWV9fSddOm51bGwKICAJCSkpOwogIAl7e2Vsc2VpZiAkZmllbGQuZm9ybV90eXBlID09ICdzdGF0aWMnfX0KICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICdzdGF0aWMnLCBhcnJheSgKICAJCSdsYWJlbCcgPT4gJ3t7JGZpZWxkLmxhYmVsfX0nLCAKICAJCSdvYmplY3QnID0+ICYkaXRlbQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAkJLCdkZWZhdWx0X3ZhbHVlJyA9PiBpc3NldCgkcGFyYW1zWyd7eyRmaWVsZC5uYW1lfX0nXSk/JHBhcmFtc1sne3skZmllbGQubmFtZX19J106bnVsbAogIAkJKSk7CiAgCXt7ZWxzZWlmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ25vbmUnfX0KICAJe3tlbHNlaWYgJGZpZWxkLmZvcm1fdHlwZSA9PSAndXNlcid9fQogIAkke3skZmllbGQubmFtZX19X2xpc3QgPSBDTVNVc2VyOjpnZXRVc2VyTGlzdCgpOwogIAkkZm9ybS0+Z2V0RmllbGRzZXQoJ3t7JGZpZWxkLnBsYWNlLnRhYl9rZXl9fS0tLXt7JGZpZWxkLnBsYWNlLmZpZWxkc2V0X2tleX19JyktPnNldFdpZGdldCgne3skZmllbGQubmFtZX19JywgJ3NlbGVjdCcsIGFycmF5KAogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMubXVsdGlwbGUpIHx8IGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5leHBhbmRlZCl9fQogIAkJJ3ZhbHVlcycgPT4ge3skZmllbGQuc2VsZWN0X29wdGlvbnN9fSwKICAJCXt7ZWxzZX19CiAgCQkndmFsdWVzJyA9PiBhcnJheSgnJyA9PiAnJmxhcXVvOyAnIC4gJG1vZHVsZS0+bGFuZygnc2VsZWN0X29uZScpIC4gJyAmcmFxdW87JykgKyAke3skZmllbGQubmFtZX19X2xpc3QsCiAgCQl7ey9pZn19IAogIAkJJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScsIAogIAkvLwknZ2V0X21ldGhvZCcgPT4gJ2dldHt7JGZpZWxkLmNhbWVsY2FzZX19JywgCiAgCQknb2JqZWN0JyA9PiAmJGl0ZW0KICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19LCAnbXVsdGlwbGUnID0+IHRydWV7ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5zaXplKX19LCAnc2l6ZScgPT4ge3skZmllbGQuZm9wdGlvbnMuc2l6ZX19e3svaWZ9fQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0sICdleHBhbmRlZCcgPT4gdHJ1ZXt7L2lmfX0KICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLnRpcHMpfX0sICd0aXBzJyA9PiAne3skZmllbGQuZm9wdGlvbnMudGlwc319J3t7L2lmfX0KICAJKSk7CiAgCXt7ZWxzZWlmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ2dyb3VwJ319CiAgCSR7eyRmaWVsZC5uYW1lfX1fbGlzdCA9IENNU0dyb3VwOjpnZXRHcm91cExpc3QoKTsKICAJJGZvcm0tPmdldEZpZWxkc2V0KCd7eyRmaWVsZC5wbGFjZS50YWJfa2V5fX0tLS17eyRmaWVsZC5wbGFjZS5maWVsZHNldF9rZXl9fScpLT5zZXRXaWRnZXQoJ3t7JGZpZWxkLm5hbWV9fScsICdzZWxlY3QnLCBhcnJheSgKICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKSB8fCBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0KICAJCSd2YWx1ZXMnID0+ICR7eyRmaWVsZC5uYW1lfX1fbGlzdCwKICAJCXt7ZWxzZX19CiAgCQkndmFsdWVzJyA9PiBhcnJheSgnJyA9PiAnJmxhcXVvOyAnIC4gJG1vZHVsZS0+bGFuZygnc2VsZWN0X29uZScpIC4gJyAmcmFxdW87JykgKyAke3skZmllbGQubmFtZX19X2xpc3QsCiAgCQl7ey9pZn19IAogIAkJJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScsIAogIAkvLwknZ2V0X21ldGhvZCcgPT4gJ2dldHt7JGZpZWxkLmNhbWVsY2FzZX19JywgCiAgCQknb2JqZWN0JyA9PiAmJGl0ZW0KICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLm11bHRpcGxlKX19LCAnbXVsdGlwbGUnID0+IHRydWV7ey9pZn19CiAgCQl7e2lmIGlzc2V0KCRmaWVsZC5mb3B0aW9ucy5zaXplKX19LCAnc2l6ZScgPT4ge3skZmllbGQuZm9wdGlvbnMuc2l6ZX19e3svaWZ9fQogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMuZXhwYW5kZWQpfX0sICdleHBhbmRlZCcgPT4gdHJ1ZXt7L2lmfX0KICAJCXt7aWYgaXNzZXQoJGZpZWxkLmZvcHRpb25zLnRpcHMpfX0sICd0aXBzJyA9PiAne3skZmllbGQuZm9wdGlvbnMudGlwc319J3t7L2lmfX0KICAJKSk7CiAgCXt7ZWxzZX19CiAgCSRmb3JtLT5nZXRGaWVsZHNldCgne3skZmllbGQucGxhY2UudGFiX2tleX19LS0te3skZmllbGQucGxhY2UuZmllbGRzZXRfa2V5fX0nKS0+c2V0V2lkZ2V0KCd7eyRmaWVsZC5uYW1lfX0nLCAndGV4dCcsIGFycmF5KAogIAkJJ2xhYmVsJyA9PiAne3skZmllbGQubGFiZWx9fScsIAogIAkJJ29iamVjdCcgPT4gJiRpdGVtLCAKICAJCSdzaXplJyA9PiA1MAogIAkJe3tpZiBpc3NldCgkZmllbGQuZm9wdGlvbnMudGlwcyl9fSwgJ3RpcHMnID0+ICd7eyRmaWVsZC5mb3B0aW9ucy50aXBzfX0ne3svaWZ9fQogIAkJKSk7CiAgCXt7L2lmfX0KCXt7L2ZvcmVhY2h9fQp9CgoKfQo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/function.defaultadmin.help.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmVjaG8gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/function.defaultadmin.items.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwoKaWYoaXNzZXQoJF9TRVNTSU9OWyd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19J11bJ3ZpZXcnXSkgJiYgIWlzc2V0KCRwYXJhbXNbJ3ZpZXcnXSkpCnsKCSRwYXJhbXNbJ3ZpZXcnXSA9ICRfU0VTU0lPTlsne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSddWyd2aWV3J107Cn0KCQoJJHZpZXcgPSBuZXcgTUNGTGlzdFZpZXcoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkcGFyYW1zKTsKCSR2aWV3LT5zZXRPcmRlckJ5KCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdvcmRlcl9ieScsICdvcmRlcl9ieScpIC4gJyAnIC4gJHRoaXMtPmdldFByZWZlcmVuY2UoJ29yZGVyX2J5X2RpcmVjdGlvbicsICdhc2MnKSk7Cgkkdmlldy0+c2V0SXRlbXNQZXJQYWdlKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdpdGVtc19wZXJfcGFnZScsICcyNScpKTsKCgokaXRlbXMgPSAkdmlldy0+Z2V0SXRlbXMoKTsKCmVjaG8ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fVZpZXdzOjphZG1pbkl0ZW1zKCR0aGlzLCRpZCwkcmV0dXJuaWQsJHZpZXcsJGl0ZW1zKTsJCgokX1NFU1NJT05bJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nXVsndmlldyddID0gJHZpZXctPmdldFZpZXcoKTs=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/function.defaultadmin.options.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFjbXNtcygpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja0FjY2VzcygnQWRtaW4ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCnsKCXJldHVybiAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ29wdGlvbnMnKSk7Cn0KCiRmaWVsZHMgPSBhcnJheSgndGl0bGUnLCAnY3JlYXRlZF9hdCcsICd1cGRhdGVkX2F0JywgJ29yZGVyX2J5JywgJ21jZmlfY3JlYXRlZF90aW1lc3RhbXAnLCAnbWNmaV91cGRhdGVkX3RpbWVzdGFtcCcpOwp7e2ZvcmVhY2ggZnJvbT0kZXh0cmFfZmllbGRzIGl0ZW09ZmllbGR9fQokZmllbGRzW10gPSAne3skZmllbGQubmFtZX19JzsKe3svZm9yZWFjaH19CiRmaWVsZHMgPSBhcnJheV9jb21iaW5lKCRmaWVsZHMsICRmaWVsZHMpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJaWYgKGlzc2V0KCRwYXJhbXNbJ2luZGV4X2NvbnRlbnQnXSkpCgl7CgkJaWYgKCR0aGlzLT5nZXRQcmVmZXJlbmNlKCdpbmRleF9jb250ZW50JykgPT0gJzAnIHx8ICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdpbmRleF9jb250ZW50JykgPT0gJycpCgkJewkJCQkJCgkJCSR0aGlzLT5TZWFyY2hSZWluZGV4KCk7CgkJfQoJfQoJZWxzZQoJewoJCWlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnaW5kZXhfY29udGVudCcpID09ICcxJykKCQl7CQkJCgkJCSR0aGlzLT5TZWFyY2hEZWluZGV4KCk7CgkJfQoJfQkKfQoKJHRlbXBsYXRlcyA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzKCk7CiR0ZW1wbGF0ZXNfbGlzdCA9IGFycmF5KCk7CmZvcmVhY2goJHRlbXBsYXRlcyBhcyAkdGVtcGxhdGUpCnsKCSR0ZW1wbGF0ZXNfbGlzdFskdGVtcGxhdGVdID0gJHRlbXBsYXRlOwp9CgokZm9ybSA9IG5ldyBDTVNGb3JtKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JywgJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCk7CiRmb3JtLT5zZXRMYWJlbCgnc3VibWl0JywgJ1NhdmUnKTsKJGZvcm0tPnNldFdpZGdldCgnYWN0aXZlX3RhYicsICdoaWRkZW4nLCBhcnJheSgndmFsdWUnID0+ICdvcHRpb25zJykpOwokZm9ybS0+c2V0V2lkZ2V0KCdvcmRlcl9ieScsICdzZWxlY3QnLCBhcnJheSgndmFsdWVzJyA9PiAkZmllbGRzLCAncHJlZmVyZW5jZScgPT4gJ29yZGVyX2J5JykpOwokZm9ybS0+c2V0V2lkZ2V0KCdvcmRlcl9ieV9kaXJlY3Rpb24nLCAnc2VsZWN0JywgYXJyYXkoJ3ZhbHVlcycgPT4gYXJyYXkoJ0FTQycgPT4gJ0FzY2VuZGluZycsICdERVNDJyA9PiAnRGVzY2VuZGluZycpLCAncHJlZmVyZW5jZScgPT4gJ29yZGVyX2J5X2RpcmVjdGlvbicpKTsKJGZvcm0tPnNldFdpZGdldCgnaXRlbXNfcGVyX3BhZ2UnLCAndGV4dCcsIGFycmF5KCdkZWZhdWx0X3ZhbHVlJyA9PiBhcnJheSgyNSksICdwcmVmZXJlbmNlJyA9PiAnaXRlbXNfcGVyX3BhZ2UnLCAnc2l6ZScgPT4gNSkpOwokZm9ybS0+c2V0V2lkZ2V0KCdkYXRlX2Zvcm1hdCcsICd0ZXh0JywgYXJyYXkoJ2RlZmF1bHRfdmFsdWUnID0+IGFycmF5KCdkL20vWScpLCAncHJlZmVyZW5jZScgPT4gJ2RhdGVfZm9ybWF0JywgJ3NpemUnID0+IDEwKSk7CiRmb3JtLT5zZXRXaWRnZXQoJ2RlZmF1bHRfcGFnZScsICdwYWdlcycsIGFycmF5KCdkZWZhdWx0X3ZhbHVlJyA9PiAgY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdFBhZ2VJRCgpLCAncHJlZmVyZW5jZScgPT4gJ2RlZmF1bHRfcGFnZScpKTsKJGZvcm0tPnNldFdpZGdldCgnc2hvd19wYXJlbnQnLCAnY2hlY2tib3gnLCBhcnJheSgncHJlZmVyZW5jZScgPT4gJ3Nob3dfcGFyZW50JykpOwokZm9ybS0+c2V0V2lkZ2V0KCdzaG93X3BhcmVudF9maXJzdF9sZXZlbCcsICdjaGVja2JveCcsIGFycmF5KCdwcmVmZXJlbmNlJyA9PiAnc2hvd19wYXJlbnRfZmlyc3RfbGV2ZWwnKSk7CiRmb3JtLT5zZXRXaWRnZXQoJ3NhdmVfYWRkJywgJ2NoZWNrYm94JywgYXJyYXkoJ3ByZWZlcmVuY2UnID0+ICdzYXZlX2FkZCcpKTsKJGZvcm0tPnNldFdpZGdldCgnaW5kZXhfY29udGVudCcsICdjaGVja2JveCcsIGFycmF5KCdwcmVmZXJlbmNlJyA9PiAnaW5kZXhfY29udGVudCcsICdkZWZhdWx0X3ZhbHVlJyA9PiAwKSk7CgppZiAoTUNGVG9vbHM6OklzTW9kdWxlQWN0aXZlKCdDTW9uJykpCnsKCSRmb3JtLT5zZXRXaWRnZXQoJ3VzZV9jbW9uJywgJ2NoZWNrYm94JywgYXJyYXkoJ3ByZWZlcmVuY2UnID0+ICd1c2VfY21vbicpKTsKCSRmb3JtLT5zZXRXaWRnZXQoJ2Ntb25fZnJvbScsICd0ZXh0JywgYXJyYXkoJ3ByZWZlcmVuY2UnID0+ICdjbW9uX2Zyb20nKSk7CgkkZm9ybS0+c2V0V2lkZ2V0KCdjbW9uX2Zyb21fZW1haWwnLCAndGV4dCcsIGFycmF5KCdwcmVmZXJlbmNlJyA9PiAnY21vbl9mcm9tX2VtYWlsJykpOwoJJGZvcm0tPnNldFdpZGdldCgnY21vbl90ZW1wbGF0ZScsICdzZWxlY3QnLCBhcnJheSgncHJlZmVyZW5jZScgPT4gJ2Ntb25fdGVtcGxhdGUnLCAndmFsdWVzJyA9PiAkdGVtcGxhdGVzX2xpc3QpKTsKCSRmb3JtLT5zZXRXaWRnZXQoJ2Ntb25fdGVtcGxhdGVfcGxhaW4nLCAnc2VsZWN0JywgYXJyYXkoJ3ByZWZlcmVuY2UnID0+ICdjbW9uX3RlbXBsYXRlX3BsYWluJywgJ3ZhbHVlcycgPT4gJHRlbXBsYXRlc19saXN0KSk7CgkkZm9ybS0+c2V0V2lkZ2V0KCdjbW9uX2RlZmF1bHRfcGFnZScsICdwYWdlcycsIGFycmF5KCdkZWZhdWx0X3ZhbHVlJyA9PiAgY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdFBhZ2VJRCgpLCAncHJlZmVyZW5jZScgPT4gJ2Ntb25fZGVmYXVsdF9wYWdlJykpOwp9CgppZiAoTUNGVG9vbHM6OklzTW9kdWxlQWN0aXZlKCdUd2l0dGVyJykpCnsJCgkkZm9ybS0+c2V0V2lkZ2V0KCd1c2VfdHdpdHRlcicsICdjaGVja2JveCcsIGFycmF5KCdwcmVmZXJlbmNlJyA9PiAndXNlX3R3aXR0ZXInKSk7CgkkZm9ybS0+c2V0V2lkZ2V0KCd0d2l0dGVyX3RlbXBsYXRlJywgJ3RleHRhcmVhJywgYXJyYXkoJ3ByZWZlcmVuY2UnID0+ICd0d2l0dGVyX3RlbXBsYXRlJykpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQp7CgkkZm9ybS0+cHJvY2VzcygpOwoJcmV0dXJuICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnb3B0aW9ucycpKTsKfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtJywgJGZvcm0pOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VwZGF0ZV9vYmplY3RzJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAndXBkYXRlT2JqZWN0cycsICRyZXR1cm5pZCwgJHRoaXMtPmxhbmcoJ3VwZGF0ZV9vYmplY3RzJykpKTsKCiRleHBvcnQgPSAgbmV3IENNU0Zvcm0oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaWQsJ2V4cG9ydCcsJHJldHVybmlkKTsKJGV4cG9ydC0+c2V0QnV0dG9ucyhhcnJheSgnc3VibWl0JykpOwokZXhwb3J0LT5zZXRMYWJlbCgnc3VibWl0JywgJHRoaXMtPmxhbmcoJ2V4cG9ydCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdleHBvcnQnLCAkZXhwb3J0LT5yZW5kZXIoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RlZmF1bHRhZG1pbi5vcHRpb25zLnRwbCcpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/function.defaultadmin.templates.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKe3sqCi8vIGlmICghJHRoaXMtPkNoZWNrQWNjZXNzKCdBZG1pbiB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19JykpIHsKLy8gCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKLy8gfQovLyAKLy8gCi8vIAovLyBpZiAoIWNtc21zKCkpIGV4aXQ7Ci8vIAovLyAkdGVtcGxhdGVzID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKLy8gJHJvd3MgPSBhcnJheSgpOwovLyBmb3JlYWNoKCR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlKSB7Ci8vIAkkcm93c1tdID0gYXJyYXkoCi8vIAkJJ3RpdGxlbGluaycgPT4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLCAkdGVtcGxhdGUsIGFycmF5KCd0ZW1wbGF0ZScgPT4gJHRlbXBsYXRlKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJpdGVtbGluayInKSwKLy8gCQknZGVsZXRlbGluaycgPT4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRldGVtcGxhdGUnLCAkcmV0dXJuaWQsIGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCd0ZW1wbGF0ZScgPT4gJHRlbXBsYXRlKSwgJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyB0ZW1wbGF0ZT8nKSwKLy8gCQknZWRpdGxpbmsnID0+ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwgY21zbXMoKS0+Z2V0X3ZhcmlhYmxlKCdhZG1pbnRoZW1lJyktPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRlbXBsYXRlLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCd0ZW1wbGF0ZScgPT4gJHRlbXBsYXRlKSkKLy8gCSk7Ci8vIH0KLy8gJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyb3dzJywgJHJvd3MpOwovLyAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZF9pdGVtX2xpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhZGRfaXRlbScpKSk7Ci8vICR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkX2l0ZW1faWNvbicsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwgY21zbXMoKS0+Z2V0X3ZhcmlhYmxlKCdhZG1pbnRoZW1lJyktPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygnYWRkX2l0ZW0nKSwgJycsICcnLCAnc3lzdGVtaWNvbicpKSk7Ci8vIAovLyBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RlZmF1bHRhZG1pbi50ZW1wbGF0ZXMudHBsJyk7CgoqfX0KLy8gTkVXCgppZiAoISR0aGlzLT5DaGVja0FjY2VzcygnTW9kaWZ5IFRlbXBsYXRlcycpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCiRsaXN0X3RlbXBsYXRlcyA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzKCk7CiR0ZW1wbGF0ZXMgPSBhcnJheSgpOwpmb3JlYWNoKCRsaXN0X3RlbXBsYXRlcyBhcyAkdGVtcGxhdGUpIHsKCSRyb3cgPSBhcnJheSgKCQkndGl0bGVsaW5rJyA9PiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICd0ZW1wbGF0ZV9lZGl0JywgJHJldHVybmlkLCAkdGVtcGxhdGUsIGFycmF5KCd0ZW1wbGF0ZScgPT4gJHRlbXBsYXRlKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJpdGVtbGluayInKSwKCQknZGVsZXRlbGluaycgPT4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAndGVtcGxhdGVfZGVsZXRlJywgJHJldHVybmlkLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgndGVtcGxhdGUnID0+ICR0ZW1wbGF0ZSksICR0aGlzLT5sYW5nKCdhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgdGVtcGxhdGUnKSksCgkJJ2VkaXRsaW5rJyA9PiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICd0ZW1wbGF0ZV9lZGl0JywgJHJldHVybmlkLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGVtcGxhdGUsICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ3RlbXBsYXRlJyA9PiAkdGVtcGxhdGUpKQoJKTsKCQoJaWYgKCR0aGlzLT5pc0RlZmF1bHRUZW1wbGF0ZSgkdGVtcGxhdGUpICE9PSBmYWxzZSkKCXsKCQkkcm93WydkZWZhdWx0J10gPSAkdGhpcy0+bGFuZygnZGVmYXVsdCB0ZW1wbGF0ZSBmb3InLCAkdGhpcy0+aXNEZWZhdWx0VGVtcGxhdGUoJHRlbXBsYXRlKSk7Cgl9CgllbHNlCgl7CgkJJHJvd1snZGVmYXVsdCddID0gJyc7Cgl9CgkKCSR0ZW1wbGF0ZXNbXSA9ICRyb3c7Cn0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXMnLCAkdGVtcGxhdGVzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRfdGVtcGxhdGVzX2xpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICd0ZW1wbGF0ZV9lZGl0JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkIHRlbXBsYXRlJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRfdGVtcGxhdGVzX2ljb24nLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICd0ZW1wbGF0ZV9lZGl0JywgJHJldHVybmlkLCBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5MYW5nKCdhZGQgdGVtcGxhdGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluLnRlbXBsYXRlcy50cGwnKTs=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/templates/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/index.html.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/templates/lang/en_US.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmcgPSBhcnJheSgKJ3Bvc3RpbnN0YWxsJyA9PiAnUG9zdCBJbnN0YWxsIE1lc3NhZ2UuJywKJ3Bvc3R1bmluc3RhbGwnID0+ICcnLAoncmVhbGx5X3VuaW5zdGFsbCcgPT4gJ1JlYWxseT8gQXJlIHlvdSBzdXJlCnlvdSB3YW50IHRvIHVuc2luc3RhbGwgdGhpcyBmaW5lIG1vZHVsZT8nLAondW5pbnN0YWxsZWQnID0+ICdNb2R1bGUgVW5pbnN0YWxsZWQuJywKJ2luc3RhbGxlZCcgPT4gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nLAondXBncmFkZWQnID0+ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nLAonbW9kZGVzY3JpcHRpb24nID0+ICdUaGlzIG1vZHVsZSBpcyBnZW5lcmF0ZWQgYnkgTSZDIEZhY3RvcnknLAoKJ3RhYl9pdGVtcycgPT4gJ0l0ZW1zJywKJ3RhYl90ZW1wbGF0ZXMnID0+ICdUZW1wbGF0ZXMnLAondGFiX29wdGlvbnMnID0+ICdPcHRpb25zJywKJ3RhYl9oZWxwJyA9PiAnSGVscCcsCgonZXJyb3InID0+ICdFcnJvciEnLAonYWRtaW5fdGl0bGUnID0+ICd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IEFkbWluIFBhbmVsJywKJ2FkbWluZGVzY3JpcHRpb24nID0+ICdUaGlzIG1vZHVsZSBoZWxwcyB5b3UgdG8gbWFuYWdlIHNwZWNpZmljIGl0ZW1zJywKJ3RpdGxlVGVtcGxhdGUnID0+ICdUaXRsZScsCidjb2RlVGVtcGxhdGUnID0+ICdUZW1wbGF0ZScsCidhY2Nlc3NkZW5pZWQnID0+ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nLAoncG9zdGluc3RhbGwnID0+ICdCZSBzdXJlIHRvIHNldCAiTWFuYWdlIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0iIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEnLAoKJ3N1Ym1pdCcgPT4gJ1N1Ym1pdCcsCidhcHBseScgPT4gJ0FwcGx5JywKJ2NhbmNlbCcgPT4gJ0NhbmNlbCcsCidyZXN0b3JlbGlzdCcgPT4gJ1Jlc3RvcmUgbGlzdCcsCidyZXN0b3JlZGV0YWlscycgPT4gJ1Jlc3RvcmUgZGV0YWlscycsCidwdWJsaXNoJyA9PiAnUHVibGlzaCcsCid1bnB1Ymxpc2gnID0+ICdVbnB1Ymxpc2gnLAoKCidhZGQgdGVtcGxhdGUnID0+ICdBZGQgdGVtcGxhdGUnLAonc2VsZWN0IG9uZScgPT4gJ1NlbGVjdCBvbmUnLAonZm9ybV90ZW1wbGF0ZScgPT4gJ1RlbXBsYXRlJywKJ2Zvcm1fcmVzdG9yZV90ZW1wbGF0ZV9mcm9tJyA9PiAnUmVzdG9yZSB0ZW1wbGF0ZSBmcm9tJywKJ2Zvcm1fY29kZScgPT4gJ0NvZGUnLAonZm9ybV9kZWZhdWx0X3RlbXBsYXRlX2ZvcicgPT4gJ0RlZmF1bHQgdGVtcGxhdGUgZm9yJywKJ2RlZmF1bHQgdGVtcGxhdGUgZm9yJyA9PiAnZGVmYXVsdCB0ZW1wbGF0ZSBmb3IgIiVzIiBhY3Rpb24nLAoKLy8gdXNlciBmb3JtCid5b3UgZG8gbm90IGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoaXMgYWN0aW9uJyA9PiAnWW91IGRvIG5vdCBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGlzIGFjdGlvbicsCidmb3JtX3VzZXJfaWQnID0+ICdVc2VyIGlkJywKJ2Zvcm1fdGl0bGUnID0+ICdUaXRsZScsCidpdGVtIHBvc3RlZCcgPT4gJ0l0ZW0gc3VjY2Vzc2Z1bGx5IHBvc3RlZCcsCgonc2F2ZScgPT4gJ1NhdmUnLAonc2F2ZV9hZGQnID0+ICdTYXZlICZhbXA7IGFkZCBhIG5ldyBpdGVtJywKJ3NhdmVfY29udGludWUnID0+ICdTYXZlICYgY29udGludWUgZWRpdGluZycsCidkZWxldGUnID0+ICdEZWxldGUnLAonYWRkX2l0ZW0nID0+ICdBZGQgaXRlbScsCidhZGRfaXRlbV9mb3InID0+ICdBZGQgaXRlbSBmb3IgWyVzXScsCidlZGl0X2l0ZW0nID0+ICdFZGl0IGl0ZW0nLAondXBkYXRlX29iamVjdHMnID0+ICdVcGRhdGUgb2JqZWN0cycsCidwcmV2aWV3X3MnID0+ICdQcmV2aWV3IFslc10nLAoKJ2Zvcm1fcGFyZW50X2lkJyA9PiAnUGFyZW50JywKJ2Zvcm1fb3JkZXJfYnknID0+ICdPcmRlciBieScsCidmb3JtX29yZGVyX2J5X2RpcmVjdGlvbicgPT4gJ09yZGVyIGRpcmVjdGlvbicsCidmb3JtX2l0ZW1zX3Blcl9wYWdlJyA9PiAnSXRlbXMgcGVyIHBhZ2UnLAonZm9ybV9kYXRlX2Zvcm1hdCcgPT4gJ0RhdGUgZm9ybWF0JywKJ2Zvcm1fZGVmYXVsdF9wYWdlJyA9PiAnRGVmYXVsdCBwYWdlJywKJ2Zvcm1fc2hvd19wYXJlbnQnID0+ICdTaG93IHBhcmVudHMgZHJvcGRvd24nLAonZm9ybV9zaG93X3BhcmVudF9maXJzdF9sZXZlbCcgPT4gJ1Nob3cgcGFyZW50cyBmaXJzdCBsZXZlbCBvbmx5JywKJ2Zvcm1fc2F2ZV9hZGQnID0+ICdTaG93IFNhdmUgJmFtcDsgYWRkIGJ1dHRvbicsCidmb3JtX2luZGV4X2NvbnRlbnQnID0+ICdJbmRleCBjb250ZW50JywKJ2Zvcm1fdXNlX2Ntb24nID0+ICdVc2UgQ2FtcGFpZ24gTW9uaXRvcicsCidmb3JtX2Ntb25fZnJvbScgPT4gJ0NhbXBhaWduIE1vbml0b3IgRnJvbScsCidmb3JtX2Ntb25fZnJvbV9lbWFpbCcgPT4gJ0NhbXBhaWduIE1vbml0b3IgRnJvbSBlbWFpbCcsCidmb3JtX2Ntb25fdGVtcGxhdGUnID0+ICdDYW1wYWlnbiBNb25pdG9yIHRlbXBsYXRlJywKJ2Zvcm1fY21vbl90ZW1wbGF0ZV9wbGFpbicgPT4gJ0NhbXBhaWduIE1vbml0b3IgdGVtcGxhdGUgKHBsYWluIHRleHQgdmVyc2lvbiknLAonZm9ybV9jbW9uX2RlZmF1bHRfcGFnZScgPT4gJ0RlZmF1bHQgcGFnZSBmb3IgQ2FtcGFpZ24gTW9uaXRvciBIVE1MJywKJ2Zvcm1fdXNlX3R3aXR0ZXInID0+ICdVc2UgVHdpdHRlcicsCidmb3JtX3R3aXR0ZXJfdGVtcGxhdGUnID0+ICdUd2l0dGVyIHRlbXBsYXRlIChhdmFpbGFibGUgZmllbGRzOiB7JHRpdGxlfSwgeyR1cmx9KScsCidtb2R1bGVfb3B0aW9ucycgPT4gJ09wdGlvbnMnLAoKJ3NlbGVjdF9vbmUnID0+ICdTZWxlY3Qgb25lJywKJ2V4cG9ydCcgPT4gJ0V4cG9ydCcsCidzZXJpYWxpemVkX2RhdGFzJyA9PiAnUEhQIFNlcmlhbGl6ZWQgYXJyYXknLAonZG93bmxvYWQnID0+ICdEb3dubG9hZCcsCgoKJ2NoYW5nZWxvZycgPT4gJzx1bD4KPGxpPlZlcnNpb24gMC4wLjEgLSAyOSBTZXB0ZW1iZXIgMjAwOC4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjwvdWw+JywKJ2hlbHAnID0+ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgd2FzIGdlbmVyYXRlZCBieSBNJkMgRmFjdG9yeS48L3A+CjxoMj5BdmFpbGFibGUgYWN0aW9uczwvaDI+Cgo8aDM+RGVmYXVsdDwvaDM+CjxwPlRoaXMgYWN0aW9uIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGxpc3Qgb2YgYWxsIGl0ZW1zIG9mIHRoZSBtb2R1bGUuPC9wPgo8aDQ+UGFyYW1zPC9oND4KPGRsPgoJPGR0PjxlbT5vcmRlcmJ5PC9lbT48L2R0PgoJPGRkPkNvbW1hLXNlcGVyYXRlZCBsaXN0IG9mIG9yZGVyYnkgY2xhdXNlcy4gRWcuICJjb2x1bW4xLCBjb2x1bW4yIERFU0MiLjwvZGQ+Cgk8ZHQ+PGVtPmxpbWl0PC9lbT48L2R0PgoJPGRkPk51bWJlciBvZiBpdGVtcyB0byByZXR1cm4uPC9kZD4KCTxkdD48ZW0+b2Zmc2V0PC9lbT48L2R0PgoJPGRkPlN0YXJ0IGZyb20gdGhpcyBvZmZzZXQuPC9kZD4KCTxkdD48ZW0+cmFuZG9tPC9lbT48L2R0PgoJPGRkPlJhbmRvbWl6ZSB0aGUgb3JkZXIgb2YgdGhlIHJlc3VsdC48L2RkPgoJPGR0PjxlbT5jdXJyZW50cGFnZTwvZW0+IChNb2R1bGVYdGVuZGVyKTwvZHQ+Cgk8ZGQ+Qm9vbGVhbi4gRmlsdGVyIHJlc3VsdHMgb24gY3VycmVudCBwYWdlLjwvZGQ+Cgk8ZHQ+PGVtPnBhZ2VzPC9lbT4gKE1vZHVsZVh0ZW5kZXIpPC9kdD4KCTxkZD5Db21tYS1zZXBlcmF0ZWQgbGlzdCBvZiBwYWdlcyB0byBmaWx0ZXIgb24uPC9kZD4KCTxkdD48ZW0+b3B0aW9uczwvZW0+IChNb2R1bGVYdGVuZGVyKTwvZHQ+Cgk8ZGQ+Q29tbWEtc2VwZXJhdGVkIGxpc3Qgb2Ygb3B0aW9ucyB0byBmaWx0ZXIgb24uPC9kZD4KCTxkdD5kYXRlX2ZpZWxkPGR0PgoJPGRkPkFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZGF0ZV9maWVsZCB0byB0YWtlIGluIGNvdW50IGZvciB0aGUgZGlnZXN0PC9kZD4KPC9kbD4KCjxwPkluIHRoZSBkZWZhdWx0IHRlbXBsYXRlLCB5b3UgY2FuIGdldCB0aGUgcGFyYW1zIGJ5IGNhbGxpbmcge3tsaXRlcmFsfX17e3svbGl0ZXJhbH19JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1fcGFyYW1zLT5wYXJhbXN9IHdoZXJlICItPnBhcmFtcyIgaXMgYW4gYXJyYXkgb2YgcGFyYW1zLjxwPgoKPGgzPkRldGFpbDwvaDM+CjxwPlRoaXMgaXMgdGhlIGRldGFpbCBhY3Rpb24gZm9yIGFuIGl0ZW0uIFRoZSBkZWZhdWx0IHRlbXBsYXRlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGFuZCB5b3UgY2FuIHJlc3RvcmUgaXQgdG8gdW5kZXJzdGFuZCBob3cgdG8gdXNlIGl0PzwvcD4KPGg0PlBhcmFtczwvaDQ+CjxwPlRPRE88L3A+Cgo8aDM+U29tZSBhY3Rpb25zIHRoYXQgeW91IGNhbiBwZWZvcm0gb24gdGhlICRpdGVtIG9iamVjdDwvaDM+CjxwPkZvciBmaWxlcyAocmVwbGFjZSBGaWVsZG5hbWUgYnkgdGhlIG5hbWUgb2YgeW91ciBmaWxlIGZpZWxkKTwvcD4KPHVsPgoJPGxpPjxzdHJvbmc+JGl0ZW0tPmdldEZpZWxkbmFtZUljb24oKTwvc3Ryb25nPjogUmV0dXJuIGFuIGljb24gcmVsYXRlZCB0byB0aGUgZmlsZSB0eXBlLjwvbGk+Cgk8bGk+PHN0cm9uZz4kaXRlbS0+Z2V0RmllbGRuYW1lU2l6ZSgkcmVhZGFibGUgPSB0cnVlKTwvc3Ryb25nPjogUmV0dXJuIHRoZSBzaXplIG9mIHRoZSBmaWxlLCBodW1hbiByZWFkYWJsZSBieSBkZWZhdWx0LjwvbGk+Cgk8bGk+PHN0cm9uZz4kaXRlbS0+Z2V0RmllbGRuYW1lRXh0KCk8L3N0cm9uZz46IFJldHVybiB0aGUgZmlsZSB0eXBlIG9yIGV4dGVuc2lvbi48L2xpPgoJPGxpPjxzdHJvbmc+JGl0ZW0tPmdldEZpZWxkbmFtZVVybCgpPC9zdHJvbmc+OiBSZXR1cm4gdGhlIHVybC4gKHVzZWZ1bCBpbiBjYXNlIG9mIHByb3RlY3RlZCBzeXN0ZW0pLjwvbGk+Cgk8bGk+PHN0cm9uZz4kaXRlbS0+Z2V0RmllbGRuYW1lT3JpZ2luYWxQaWN0dXJlVXJsKCk8L3N0cm9uZz46IFJldHVybiB0aGUgb3JpZ2luYWwgcGljdHVyZSB1cmwuPC9saT4KPC91bD4KPHA+Rm9yIG1vZHVsZXMgKHJlcGxhY2UgRmllbGRuYW1lIGJ5IHRoZSBuYW1lIG9mIHlvdXIgbW9kdWxlIGZpZWxkKTwvcD4KPHVsPgoJPGxpPjxzdHJvbmc+JGl0ZW0tPmdldEZpZWxkbmFtZU9iamVjdCgpPC9zdHJvbmc+OiAoU2luZ2xlIHZhbHVlKSB0aGlzIGZ1bmN0aW9uIGV4aXN0cyBhbmQgZ2l2ZXMgeW91IHRoZSBpdGVtIG9iamVjdCBvZiB0aGUgcmVsYXRlZCBtb2R1bGUuPC9saT4KCTxsaT48c3Ryb25nPiRpdGVtLT5nZXRGaWVsZG5hbWVJdGVtcygpPC9zdHJvbmc+OiAoTXVsdGlwbGUgdmFsdWVzKSBTYW1lIGFzIHByZWNlZGVudCBidXQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzLjwvbGk+CjwvcD4KCjxoMz5GaWx0ZXJzPC9oMz4KPHA+WW91IGNhbiB1c2UgZmlsdGVycyB0byBmaWx0ZXIgdGhlIGxpc3RzIG9yIG1ha2UgYSBzZWFyY2ggdG9vbC48L3A+CjxwPk5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGZpbHRlciB5b3Ugd2FudCB0byBjcmVhdGUuIERvIG5vdCB1c2Ugc3BlY2lhbCBjaGFycyBvciBzcGFjZS4gSnVzdCBudW1iZXJzLCBsZXR0ZXJzIGFuZCBbXy1dIGNoYXJzLjwvcD4KPHA+RmllbGQgaXMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIHlvdSB3YW50IHRvIGZpbHRlci48L3A+CjxwPlR5cGUgaXMgdGhlIHR5cGUgb2Ygc3FsIHF1ZXJ5IHlvdSB3YW50IHRvIHBlcmZvcm0uPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHVsPgoJPGxpPjxzdHJvbmc+U2VhcmNoPC9zdHJvbmc+OiB7e2xpdGVyYWx9fXt7ey9saXRlcmFsfX17eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IGFjdGlvbj0ic2VhcmNoIn08L2xpPiAKCTxsaT48c3Ryb25nPkZpbHRlcjwvc3Ryb25nPjoge3tsaXRlcmFsfX17e3svbGl0ZXJhbH19e3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSBuYW1lX29mX215X2ZpbHRlcj0idmFsdWVfZm9yX2ZpbHRlciJ9PC9saT4gCjwvdWw+CjxoMz5TZWFyY2g8L2gzPgo8cD5Zb3UgY2FuIHVzZSB0aGUgc2VhcmNoIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHNwZWNpZmljIHNlYXJjaCBlbmdpbmUgZm9yIHlvdXIgbW9kdWxlLjwvcD4KPHA+RXhhbXBsZToge3tsaXRlcmFsfX17e3svbGl0ZXJhbH19e3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSBhY3Rpb249InNlYXJjaCJ9PC9wPgo8cD5QYXJhbXM6PC9wPgo8dWw+CiAgPGxpPjxzdHJvbmc+ZmlsdGVyX2FsbDwvc3Ryb25nPjogVGhpcyBwYXJhbSB3aWxsIGNyZWF0ZSBhIHRleHQgZmllbGQgdG8gc2VhcmNoIG9uIGFsbCB0aGUgdGV4dCBmaWVsZHMgb2YgeW91ciBtb2R1bGUuIFlvdSBjYW4gY3JlYXRlIGl0IGVtcHR5IChsaWtlIGZpbHRlcl9hbGw9IiIpIG90aGVyd2lzZSBpdCB3aWxsIGNvbWUgd2l0aCBhIGRlZmF1bHQgdmFsdWUgdGhhdCB5b3VcJ3ZlIGVudGVyZWQuPC9saT4KICA8bGk+PHN0cm9uZz5maWx0ZXJfdGl0bGU8L3N0cm9uZz46IFNhbWUgYXMgZmlsdGVyX2FsbCwgZXhjZXB0IGl0IG9ubHkgc2VhcmNoIG9uIHRpdGxlPC9saT4KICA8bGk+PHN0cm9uZz5maWx0ZXJzPC9zdHJvbmc+OiBsaXN0IG9mIGZpbHRlcnMgeW91IHdhbnQgdG8gYWRkLiBUaGV5IGhhdmUgdG8gZXhpc3QgaW4geW91ciBtb2R1bGVcJ3MgZmlsdGVycy4gVGhlIGxpc3QgaXMgc2VwYXJhdGUgYnkgcGlwZXMgKHwpIGFuZCB0aGUgb3B0aW9ucyBvZiBlYWNoIG1vZHVsZXMgYXJlIHNlcGFyYXRlZCBieSA7LiBFeGFtcGxlOiBmaWx0ZXJzPSJuYW1lPWNhdGVnb3J5O2luY2x1ZGVfY3VzdG9tOlNlbGVjdCBhIGNhdGVnb3J5fG5hbWU9dHlwZSI8L2xpPgo8L3VsPgo8aDM+dXJsX2ZvcjwvaDM+CjxwPlRoaXMgYWN0aW9uIGFsbG93cyB5b3UgdG8gZ2VuZXJhdGUgYW4gdXJsIGZvciBhIHNwZWNpZmljIGFjdGlvbiAoc3BlY2lmaWVkIHdpdGggdGhlIHBhcmFtICJtYWN0aW9uIikuIEFsbCB0aGUgZ2l2ZW4gcGFyYW1zIGFyZSB0cmFuc21pdHRlZCB0byB0aGUgYWN0aW9uLjwvcD4KPHA+WW91IGNhbiB1c2UgdGhlICJjbGVhbl9lbXB0eV92YWx1ZXMiIHBhcmFtIHRvIHJlbW92ZSBlbXB0eSB2YWx1ZXMuPC9wPgoKPGgzPmxpbmtfdG88L2gzPgo8cD5UaGlzIGFjdGlvbiBnZW5lcmF0ZSBhIGxpbmsgbGlrZSB1cmxfZm9yIGJ1dCBwcmUgZm9ybWF0dGVkLiBZb3UgY2FuIHNwZWNpZnkgdGhlIHRpdGxlIHdpdGggdGhlIHBhcmFtICJ0aXRsZSIuPC9wPgoKPGgzPmlDYWw8L2gzPgo8cD5Zb3UgY2FuIGdlbmVyYXRlIGlDYWwodkNhbCkgY29tcGF0aWJsZSB4bWwgd2l0aCB0aGlzIG1vZHVsZS4gSnVzdCBjYWxsIHRoZSBmdW5jdGlvbiB7e2xpdGVyYWx9fXt7ey9saXRlcmFsfX17eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IGFjdGlvbj0iaWNhbCIgaWQ9Im15X2Rlc2lyZWRfaWQifSB0byBnZW5lcmF0ZSB0aGUgeG1sIG9yIHRoZSBmdW5jdGlvbiB7e2xpdGVyYWx9fXt7ey9saXRlcmFsfX17eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IGFjdGlvbj0idXJsX2ZvciIgbWFjdGlvbj0iaWNhbCIgaWQ9Im15X2Rlc2lyZWRfaWQiIHNob3d0ZW1wbGF0ZT0iZmFsc2UifSBpZiB5b3Ugd2FudCB0aGUgZGlyZWN0IGxpbmsgdG8gdGhlIGljYWwgeG1sLjwvcD4KCjxoMz5DYWxlbmRhcjwvaDM+CjxwPlRoZSBjYWxlbmRhciBuZWVkcyB0aGUgZm9sbG93aW5nIGZpZWxkczogc3RhcnRfZGF0ZSBhbmQgZW5kX2RhdGUuIE9uY2UgdGhvc2UgaGF2ZSBiZWVuIGRlZmluZWQsIHlvdSBjYW4gYnVpbGQgdGhlIGNhbGVuZGFyIHVzaW5nIHRoZSBwYXJhbSBcJ2NhbGVuZGFyXCcuIEl0IHdpbGwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgc21hcnR5IHZhcnM6ICRjYWxlbmRhciwgJGN1cnJlbnRfbW9udGgsICRuZXh0X21vbnRoLCAkcHJldmlvdXNfbW9udGguPC9wPgoKPGgzPlJTUzwvaDM+CjxwPllvdSBjYW4gZXhwb3J0IHlvdXIgZW50cmllcyB0byBSU1MgZmVlZHMuIElmIHlvdSBoYXZlIG1vZF9yZXdyaXRlIGluc3RhbGxlZCwganVzdCBjYWxsIHRoZSB1cmwgIi97eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKXxsb3dlcn19L3Jzcy94bWwiLiBZb3UgY2FuIGFsc28gY2FsbCB0aGUgYWN0aW9uICJyc3MiIGFuZCBwYXNzIHNvbWUgcGFyYW1ldGVycyBsaWtlIGZvciB0aGUgZGVmYXVsdCBhY3Rpb24uPC9wPgoKPGgzPlVzZXJzIGNvbnRlbnQ8L2gzPgo8cD5Zb3UgY2FuIGxldCB1c2VycyBzdWJtaXQgY29udGVudCB2aWEgdGhlIG1vZHVsZS4gRm9yIHRoZSBmb3JtIHlvdSBjYW4gdXNlIHRoZSBhY3Rpb24gInVzZXJfZm9ybSIuIFlvdSBjYW4gdGhlbiBtb2RpZnkgdGhlIGZvcm0gdGVtcGxhdGUgaW4gdGhlIGFkbWluLjwvcD4KPHA+VG8gbGV0IGFuIHVzZXIgcmV2aWV3IGhpcyBvd24gc3VibWlzc2lvbnMsIHlvdSBjYW4gdXNlIHRoZSBkZWZhdWx0IGFjdGlvbiBhbmQgc3BlY2lmeSB0aGUgcGFyYW0gInNob3dfdXNlcl9pdGVtcyIuIFRoaXMgd2lsbCBhbGxvdyBhIGxvZ2dlZCB1c2VyIHRvIHNob3cgaGlzIG93biBzdWJtaXNzaW9ucyBldmVuIHRoZSB1bnB1Ymxpc2hlZCBvbmVzLjwvcD4KPHA+V2l0aCB0aGlzIGxpc3QgeW91IGNhbiBhbHNvIGFsbG93IGhpbSB0byBlZGl0IGhpcyBvd24gcG9zdHMgYnkgdXNpbmcgdGhlIGFjdGlvbiB1cmxfZm9yIHdpdGggbWFjdGlvbiAidXNlcl9mb3JtIiBhbmQgc3BlY2lmeWluZyBpdGVtX2lkLiBJdCB3aWxsIG9ubHkgd29yayB3aXRoIHVzZXJcJ3MgcG9zdHMuPC9wPgo8cD5Zb3UgY2FuIGFsc28gY2hlY2sgdGhlIHBlcm1pc3Npb25zIGZvciBwdWJsaXNoaW5nL2VkaXRpbmcsIHlvdSBjYW4gb3ZlcnJpZGUgdGhlIG1ldGhvZCAiY2hlY2tQZXJtaXNzaW9ucyIgaW4gdGhlIE0mQyBGYWN0b3J5IGN1c3RvbSBsb2dpYy4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UgYW5kIHJlY2VpdmUgdGhlICRwYXJhbXMgYXMgYW4gYXJyYXkuPC9wPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLCBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgPGEgaHJlZj0ibWFpbHRvOmpjY0Btb3JyaXMtY2hhcG1hbi5jb20iPiZsdDtqY2NAbW9ycmlzLWNoYXBtYW4uY29tJmd0OzwvYT4gLSBNb3JyaXMgJmFtcDsgQ2hhcG1hbi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPicKKTs=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/MCFModule.module.php.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRHTE9CQUxTWydBRE9EQl9RVU9URV9GSUVMRE5BTUVTJ10gPSB0cnVlOwoKcmVxdWlyZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvY2xhc3Nlcy97eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0QmFzZS5jbGFzcy5waHAnOwpyZXF1aXJlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9jbGFzc2VzL3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3QuY2xhc3MucGhwJzsKcmVxdWlyZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvY2xhc3Nlcy97eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19Vmlld3MuY2xhc3MucGhwJzsKCmNsYXNzIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0gZXh0ZW5kcyBDTVNNb2R1bGUgewoKICBwdWJsaWMgc3RhdGljICRmcm9udGVuZF90ZW1wbGF0ZXMgPSBhcnJheSgKICAgICAgJ2RlZmF1bHQnICAgICA9PiAnZGVmYXVsdCcsCiAgICAgICdkZXRhaWwnICAgICAgID0+ICdkZXRhaWwnLCAKICAgICAgJ3NlYXJjaCcgICAgICAgPT4gJ3NlYXJjaCcsCiAgICAgICdjYWxlbmRhcicgICAgID0+ICdjYWxlbmRhcicsCiAgICAgICd0YWdjbG91ZCcgICAgID0+ICd0YWdjbG91ZCcsIC8vIFRPRE8KICAgICAgJ3JzcycgICAgICAgICA9PiAncnNzJywKICAgICAgJ3BhZ2luYXRlZCcgICA9PiAncGFnaW5hdGVkJywKICAgICAgJ3VzZXJfZm9ybScgICA9PiAndXNlcl9mb3JtJywKICAgICAgJ3VzZXJfZm9ybV9zdWNjZXMnICAgPT4gJ3VzZXJfZm9ybV9zdWNjZXMnLAogICAgICAnZGlyZWN0X2VtYWlsJyAgID0+ICdkaXJlY3RfZW1haWwnCiAgICApOwoKICBwdWJsaWMgZnVuY3Rpb24gRG9BY3Rpb24oJG5hbWUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkID0gJycpIHsKICAgICRtZXRob2RzID0gZ2V0X2NsYXNzX21ldGhvZHMoJHRoaXMpOwogICAgZm9yZWFjaCAoJG1ldGhvZHMgYXMgJG1ldGhvZCkgewogICAgICBpZiAoc3RycG9zKCRtZXRob2QsICdtb2RpZmllcicpID09PSAwKSB7CiAgICAgICAgJG1vZGlmaWVyID1zdWJzdHIoJG1ldGhvZCwgOCk7CiAgICAgICAgJG1vZGlmaWVyezB9ID0gc3RydG9sb3dlcigkbW9kaWZpZXJ7MH0pOwogICAgICAgICR0aGlzLT5zbWFydHktPnJlZ2lzdGVyX21vZGlmaWVyKCRtb2RpZmllciwgYXJyYXkoJHRoaXMsICRtZXRob2QpKTsKICAgICAgfQogICAgfQogICAgcGFyZW50OjpEb0FjdGlvbigkbmFtZSwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkgewogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgJHRoaXMtPkluaXRpYWxpemVHbG9iYWwoKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkgeyAgICAgICAgICAgICAgIHJldHVybiAne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSc7ICB9CiAgcHVibGljIGZ1bmN0aW9uIEdldE9iamVjdE5hbWUoKSB7ICAgICAgICAgcmV0dXJuICd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0JzsgIH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyAgICAgICByZXR1cm4gJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlRnJpZW5kbHlOYW1lKCl9fSc7ICB9CiAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7ICAgICAgICAgICAgcmV0dXJuICd7eyRtb2R1bGUtPmdldE1vZHVsZVZlcnNpb24oKX19JzsgIH0KICBwdWJsaWMgIGZ1bmN0aW9uIEdldEhlbHAoKSB7ICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsgIH0KICBwdWJsaWMgIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgICAgICAgICAgICByZXR1cm4gJ0F1dG8tZ2VuZXJhdGVkIGJ5IE0mQyBGYWN0b3J5JzsgIH0KICBwdWJsaWMgIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyAgICAgICByZXR1cm4gJ2pjY0Btb3JyaXMtY2hhcG1hbi5jb20nOyAgfQogIHB1YmxpYyAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyAgICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7ICB9CiAgcHVibGljICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgICAgICAgcmV0dXJuIHRydWU7ICB9CiAgcHVibGljICBmdW5jdGlvbiBIYXNBZG1pbigpIHsgICAgICAgICAgICAgcmV0dXJuIHt7JGhhc19hZG1pbn19O30KICBwdWJsaWMgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgICAgICByZXR1cm4gJ3t7JGFkbWluX3NlY3Rpb259fSc7ICB9CiAgcHVibGljICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyAgcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7ICB9CiAgcHVibGljICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7ICAgcmV0dXJuICgkdGhpcy0+Q2hlY2tBY2Nlc3MoKSB8fCAkdGhpcy0+Q2hlY2tBY2Nlc3MoJ01vZGlmeSBUZW1wbGF0ZXMnKSk7IH0KICBwdWJsaWMgIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgICAgICByZXR1cm4gYXJyYXkoJ01DRmFjdG9yeScgPT4gJ3t7JG1jZmFjdG9yeXZlcnNpb259fScpOyAgfQogIHB1YmxpYyAgZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm1pc3Npb24gPSAnTWFuYWdlIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKSB7ICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCRwZXJtaXNzaW9uKTsgIH0KICAKICBwdWJsaWMgIGZ1bmN0aW9uIERpc3BsYXlFcnJvclBhZ2UoJGlkLCAmJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2U9JycpIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKICB9CiAgCiAgcHVibGljICBmdW5jdGlvbiBIYXNDYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCAkcGFyYW1zPWFycmF5KCkpIHsKICAgICRjYXBhYmlsaXRpZXMgPSBhcnJheSgKICAgICAgJ2RpZ2VzdF9leHBvcnQnLAogICAgICAnY21zX3VzZXJzJwogICAgKTsKICAgIAogICAgaWYgKGluX2FycmF5KCRjYXBhYmlsaXR5LCAkY2FwYWJpbGl0aWVzKSkgcmV0dXJuIHRydWU7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsgICAgICAgICAgICByZXR1cm4gJzEuOSc7ICB9CiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyAgICAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOyAgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyAgICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOyAgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7ICAgICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOyAgfQogIHB1YmxpYyBmdW5jdGlvbiBJbnN0YWxsKCkgewogICAgCiAgICAkY29uZmlnID0gY21zX3V0aWxzOjpnZXRfY29uZmlnKCk7CiAgICAkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgICAgICRmaWVsZHMgPSAnaWQgSSBLRVksCiAgICAgIHVzZXJfaWQgSSwKICAgICAgcGFyZW50X2lkIEksCiAgICAgIHRpdGxlIEMoMjU1KSwKICAgICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAge3skZmllbGQubmFtZX19IHt7JGZpZWxkLmNvbHVtbl90eXBlfX0sCiAgICAgIHt7L2ZvcmVhY2h9fQogICAgICBjcmVhdGVkX2F0IEQsCiAgICAgIGNyZWF0ZWRfYnkgSSwKICAgICAgbWNmaV9jcmVhdGVkX3RpbWVzdGFtcCBJLAogICAgICB1cGRhdGVkX2F0IEQsCiAgICAgIHVwZGF0ZWRfYnkgSSwKICAgICAgbWNmaV91cGRhdGVkX3RpbWVzdGFtcCBJLAogICAgICBzZW5kX3VwZGF0ZV9pbW1lZGlhdGVseSBJLAogICAgICBvcmRlcl9ieSBJLAogICAgICBwdWJsaXNoZWQgSSwKICAgICAgcGFyZW50X2l0ZW0gSSwKICAgICAgZnVsbF90ZXh0X3NlYXJjaCBYTCc7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfe3skdGFibGVfbmFtZX19JywgJGZpZWxkcyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3t7JHRhYmxlX25hbWV9fV9zZXEnKTsKICAgIAogICAgLy8kdGhpcy0+U2V0VGVtcGxhdGUoJ2Rpc3BsYXlfbGlzdCcsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCd0ZW1wbGF0ZS5saXN0JykpOwogICAgLy8kdGhpcy0+U2V0VGVtcGxhdGUoJ2Rpc3BsYXlfcGFnaW5hdGVkJywgJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ3RlbXBsYXRlLnBhZ2luYXRlZCcpKTsKICAgIC8vJHRoaXMtPlNldFRlbXBsYXRlKCdkaXNwbGF5X2RldGFpbHMnLCAkdGhpcy0+R2V0VGVtcGxhdGVGcm9tRmlsZSgndGVtcGxhdGUuZGV0YWlscycpKTsKICAgIC8vJHRoaXMtPlNldFRlbXBsYXRlKCdkaXNwbGF5X3NlYXJjaCcsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCd0ZW1wbGF0ZS5zZWFyY2gnKSk7CiAgICAvLyR0aGlzLT5TZXRUZW1wbGF0ZSgnZGlzcGxheV9jYWxlbmRhcicsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCd0ZW1wbGF0ZS5jYWxlbmRhcicpKTsKICAgIAogICAgLy9AbWtkaXIoJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy91cGxvYWRzL3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nKTsKICAgICR0aGlzLT5DcmVhdGVFdmVudCgnQ29udGVudEVkaXRQb3N0Jyk7CiAgICBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01DRmFjdG9yeScpLT5BZGRFdmVudEhhbmRsZXIoJHRoaXMtPmdldE5hbWUoKSwgJ0NvbnRlbnRFZGl0UG9zdCcsIGZhbHNlKTsKICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2Uge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScsICdNYW5hZ2Uge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScpOyAgCiAgICAkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignQWRtaW4ge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fScsICdBZG1pbiB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19Jyk7ICAKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbmRleF9jb250ZW50JywgJ3RydWUnKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0d2l0dGVyX3RlbXBsYXRlJywgJ3skdGl0bGV9IC0geyR1cmx9Jyk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWNmYWN0b3J5X3ZlcnNpb24nLCAne3skbWNmYWN0b3J5X3ZlcnNpb259fScpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFVwZ3JhZGUoKSAgewogICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAKICAgICRvbGR2ZXJzaW9uID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ21jZmFjdG9yeV92ZXJzaW9uJywgJzIuNS4wJyk7CiAgICAKICAgIHN3aXRjaCh0cnVlKSB7CiAgICAgIGNhc2UgdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCAnMi45LjAnLCAnPCcpOgogICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbmRleF9jb250ZW50JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5kZXhfY29udGVudCcsICd0cnVlJykpOwogICAgICBjYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzIuOS45JywgJzwnKToKICAgICAgICAkdGhpcy0+QWRkRGVmYXVsdFRlbXBsYXRlKCdkZWZhdWx0JywgJ2Rpc3BsYXlfbGlzdCcpOwogICAgICAgICR0aGlzLT5BZGREZWZhdWx0VGVtcGxhdGUoJ2RldGFpbCcsICdkaXNwbGF5X2RldGFpbHMnKTsKICAgICAgICAkdGhpcy0+QWRkRGVmYXVsdFRlbXBsYXRlKCdwYWdpbmF0ZWQnLCAnZGlzcGxheV9wYWdpbmF0ZWQnKTsKICAgICAgICAkdGhpcy0+QWRkRGVmYXVsdFRlbXBsYXRlKCdzZWFyY2gnLCAnZGlzcGxheV9zZWFyY2gnKTsKICAgICAgICAkdGhpcy0+QWRkRGVmYXVsdFRlbXBsYXRlKCdjYWxlbmRhcicsICdkaXNwbGF5X2NhbGVuZGFyJyk7CiAgICAgIGNhc2UgdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCAnMi45LjE2JywgJzwnKToKICAgICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV97eyR0YWJsZV9uYW1lfX0nLCAndXNlcl9pZCBJJyk7CiAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgIGNhc2UgdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCAnMi4xMi4xJywgJzwnKToKICAgICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV97eyR0YWJsZV9uYW1lfX0nLCAnbWNmaV9jcmVhdGVkX3RpbWVzdGFtcCBJJyk7CiAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfe3skdGFibGVfbmFtZX19JywgJ21jZmlfdXBkYXRlZF90aW1lc3RhbXAgSScpOwogICAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICBjYXNlIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzMuMS44JywgJzwnKToKICAgICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV97eyR0YWJsZV9uYW1lfX0nLCAnc2VuZF91cGRhdGVfaW1tZWRpYXRlbHkgSScpOwogICAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICAKICAgICAgCiAgICB9CiAgICAKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtY2ZhY3RvcnlfdmVyc2lvbicsICd7eyRtY2ZhY3RvcnlfdmVyc2lvbn19Jyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsKCkgewogICAgJGRiID0gY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAgICRzcWwgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3t7JHRhYmxlX25hbWV9fScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsKTsKICAgICRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3t7JHRhYmxlX25hbWV9fV9zZXEnKTsKICAgIGNtc191dGlsczo6Z2V0X21vZHVsZSgnTUNGYWN0b3J5JyktPlJlbW92ZUV2ZW50SGFuZGxlcigkdGhpcy0+Z2V0TmFtZSgpLCAnQ29udGVudEVkaXRQb3N0Jyk7CiAgICAkdGhpcy0+UmVtb3ZlRXZlbnQoJ0NvbnRlbnRFZGl0UG9zdCcpOwogICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKICB9CgogIGZ1bmN0aW9uIFh0ZW5kZWRNb2R1bGUgKCkgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkgewogICAgJGh0bWwgPSAnJzsKICAgICRodG1sIC49ICc8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSInLiAkdGhpcy0+Y29uZmlnWydyb290X3VybCddIC4gJy9tb2R1bGVzL01DRmFjdG9yeS9qcXVlcnkvc21vb3RobmVzcy9qcXVlcnktdWktMS44LjQuY3VzdG9tLmNzcyIgLz4nOwogICAgLy8gJGh0bWwgID0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicuJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvTUNGYWN0b3J5L2pzL2pxdWVyeS0xLjMuMi5taW4uanMiPjwvc2NyaXB0Pic7CiAgICAvLyAkaHRtbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmpRdWVyeS5ub0NvbmZsaWN0KCk7PC9zY3JpcHQ+JzsKICAgIHJldHVybiAkaHRtbDsKICB9CgogIGZ1bmN0aW9uIHNldFBhcmFtZXRlcnMoKSAgeyAgJHRoaXMtPkluaXRpYWxpemVHbG9iYWwoKTsgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplR2xvYmFsKCkgeyAgCiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcve3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl8bG93ZXJ9fVwvKD9QPGl0ZW1faWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykoXC8uKj8pPyQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ2RldGFpbCcpKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcve3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl8bG93ZXJ9fVwvcnNzXC8oP1A8bWFjdGlvbj5bYS16QS1aMC05Xy1dKykoXC8uKj8pPyQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ3JzcycsICdzaG93dGVtcGxhdGUnID0+ICdmYWxzZScsJ3JldHVybmlkJyA9PiBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCkpKTsKICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy97eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKXxsb3dlcn19XC9kb3dubG9hZFwvKD9QPGl0ZW1faWQ+WzAtOV0rKVwvKD9QPGZpZWxkPlthLXpBLVowLTlfLV0rKShcLy4qPyk/JC8nLCAKICAgICAgYXJyYXkoCiAgICAgICdhY3Rpb24nID0+ICdkb3dubG9hZCcsIAogICAgICAnc2hvd3RlbXBsYXRlJyA9PiAnZmFsc2UnLAogICAgICAncmV0dXJuaWQnID0+IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkdldERlZmF1bHRQYWdlSUQoKQogICAgICApKTsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZUxpbmsoJGlkLCAkYWN0aW9uLCAkcmV0dXJuaWQ9JycsICRjb250ZW50cz0nJywgJHBhcmFtcz1hcnJheSgpLCAkd2Fybl9tZXNzYWdlPScnLCAkb25seWhyZWY9ZmFsc2UsICRpbmxpbmU9ZmFsc2UsICRhZGR0dGV4dD0nJywgJHRhcmdldGNvbnRlbnRvbmx5PWZhbHNlLCAkcHJldHR5dXJsPScnLCAgJHdpdGhzbGFzaCA9IGZhbHNlKSB7CiAgICBpZiAoJHRhcmdldGNvbnRlbnRvbmx5IHx8ICgkcmV0dXJuaWQgIT0gJycgJiYgISRpbmxpbmUpKSB7CiAgICAgICRpZCA9ICdjbnRudDAxJzsKICAgIH0KICAgIGlmICghJHJldHVybmlkKSB7ICAKICAgICAgICAkcmV0dXJuaWQgPSBjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpOwogICAgfQogICAgCiAgICBpZiAoZW1wdHkoJHByZXR0eXVybCkpIHsKICAgICAgaWYgKCRhY3Rpb24gPT0gJ2RldGFpbCcpIHsKICAgICAgICAkaXRlbV9pZCA9ICRwYXJhbXNbJ2l0ZW1faWQnXTsKICAgICAgICAkcHJldHR5dXJsID0gJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfGxvd2VyfX0vJyAuICRpdGVtX2lkIC4gJy8nIC4gJHJldHVybmlkOwogICAgICAgCiAgICAgICAgaWYgKCFlbXB0eSgkcGFyYW1zWyd0aXRsZSddKSkgewogICAgICAgICAgJHByZXR0eXVybCAuPSAnLycgLiBtdW5nZV9zdHJpbmdfdG9fdXJsKCRwYXJhbXNbJ3RpdGxlJ10sZmFsc2UsJHdpdGhzbGFzaCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRxdWVyeSA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkbmFtZSA9PiAkdmFsdWUpIHsKICAgICAgICAgIGlmICghaW5fYXJyYXkoJG5hbWUsIGFycmF5KAogICAgICAgICAgICAnbW9kdWxlJywgJ2FjdGlvbicsICdpdGVtX2lkJywgJ3RpdGxlJywKICAgICAgICAgICAgJ29yZGVyYnknLCdsaW1pdCcKICAgICAgICAgICAgKSkpIHsKICAgICAgICAgICAgJHF1ZXJ5WyRpZCAuICRuYW1lXSA9ICR2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNvdW50KCRxdWVyeSkpIHsKICAgICAgICAgICRwcmV0dHl1cmwgLj0gJz8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcXVlcnkpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHBhcmVudDo6Y3JlYXRlTGluaygkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJGNvbnRlbnRzLCAkcGFyYW1zLCAkd2Fybl9tZXNzYWdlLCAkb25seWhyZWYsICRpbmxpbmUsICRhZGR0dGV4dCwgJHRhcmdldGNvbnRlbnRvbmx5LCAkcHJldHR5dXJsKTsKICB9CgogIGZ1bmN0aW9uIFNlYXJjaFJlaW5kZXgoKSB7CiAgICAkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwogICAgJGMtPmFkZCgncHVibGlzaGVkJywgMSk7CiAgICAkaXRlbXMgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdCgkYyk7CiAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsKICAgICAgJHRoaXMtPmluZGV4KCRpdGVtLCB0cnVlKTsKICAgIH0KICB9CiAgCiAgZnVuY3Rpb24gU2VhcmNoRGVpbmRleCgpIHsKICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAkYy0+YWRkKCdwdWJsaXNoZWQnLCAxKTsKICAgICRpdGVtcyA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvU2VsZWN0KCRjKTsKICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkgewogICAgICAkdGhpcy0+ZGVpbmRleCgkaXRlbSk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBpbmRleCgkaXRlbSwgJGZvcmNlID0gZmFsc2UpIHsKICAgIGlmICgkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnaW5kZXhfY29udGVudCcpID09ICd0cnVlJyB8fCAkdGhpcy0+Z2V0UHJlZmVyZW5jZSgnaW5kZXhfY29udGVudCcpID09ICcxJyB8fCAkZm9yY2UpCiAgICB7CiAgICAgICRzZWFyY2ggPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwogICAgICBpZiAoJHNlYXJjaCkgewogICAgICAgICRzZWFyY2gtPkFkZFdvcmRzKAogICAgICAgICAgJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLAogICAgICAgICAgJGl0ZW0tPmdldElkKCksCiAgICAgICAgICAne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl8bG93ZXJ9fV9pdGVtJywKICAgICAgICAgICRpdGVtLT5nZXRTZWFyY2hTdHJpbmcoKQogICAgICAgICk7CiAgICAgIH0KICAgIH0KICB9CgogIGZ1bmN0aW9uIGRlaW5kZXgoJGl0ZW0pIHsKICAgICRzZWFyY2ggPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwogICAgaWYgKCRzZWFyY2gpIHsKICAgICAgJHNlYXJjaC0+RGVsZXRlV29yZHMoJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaXRlbS0+Z2V0SWQoKSwgJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfGxvd2VyfX1faXRlbScpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRyZXR1cm5pZCwgJGlkLCAkYXR0ciA9ICcnKSB7CiAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgIGlmICgkYXR0ciA9PSAne3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl8bG93ZXJ9fV9pdGVtJykgewogICAgICAkYyA9IG5ldyBNQ0ZDcml0ZXJpYSgpOwogICAgICAkYy0+YWRkKCdpZCcsICRpZCk7CiAgICAgICRjLT5hZGQoJ3B1Ymxpc2hlZCcsIDEpOwogICAgICAkaXRlbSA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvU2VsZWN0T25lKCRjKTsKICAgICAgaWYgKCRpdGVtKSB7CiAgICAgICAgJHJlc3VsdFswXSA9ICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKTsKICAgICAgICAkcmVzdWx0WzFdID0gJGl0ZW0tPmdldFRpdGxlKCk7CiAgICAgICAgJHJlc3VsdFsyXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCdjbnRudDAxJywgJ2RldGFpbCcsICRyZXR1cm5pZCwgJycsIGFycmF5KCdpdGVtX2lkJyA9PiAkaWQsICd0aXRsZScgPT4gJGl0ZW0tPmdldFRpdGxlKCkpLCAnJywgdHJ1ZSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAkcmVzdWx0OwogIH0KICAKICAvKgogICogRGlnZXN0OiBOZXcgbm90aWZpY2F0aW9uIHRvb2wgZnVuY3Rpb24KICAqLwogIAogIHB1YmxpYyBmdW5jdGlvbiBEaWdlc3QoJHRpbWVzdGFtcCwgJHBhcmFtcykKICB7CiAgICByZXR1cm4gJHRoaXMtPk5UTGlzdChkYXRlKCdZLW0tZCcsICR0aW1lc3RhbXApLCAkcGFyYW1zWyd0ZW1wbGF0ZSddLCAkcGFyYW1zKTsKICB9CiAgCiAgLyoqCiAgICogTlRMaXN0OiBOb3RpZmljYXRpb24gVG9vbCBmdW5jdGlvbjogUmV0dXJuIHRoZSBsaXN0IG9mIGl0ZW1zIHVwbG9hZGVkIHNpbmNlIGEgY2VydGFpbiBkYXRlIAogICAqLwoKICBmdW5jdGlvbiBOVExpc3QoJGRhdGUsICR0ZW1wbGF0ZSA9IG51bGwsICRwYXJhbXMgPSBhcnJheSgpKQogIHsKICAgICRyZXR1cm5pZCA9ICR0aGlzLT5nZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3BhZ2UnLCAkdGhpcy0+Y21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCkpOwogICAgJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKICAgICRjLT5hZGQoJ3B1Ymxpc2hlZCcsICcxJyk7CiAgICBpZihpc3NldCgkcGFyYW1zWydjcmVhdGVkX2F0J10pKQogICAgewogICAgICAkYy0+YWRkKCdjcmVhdGVkX2F0JywgJGRhdGUsIE1DRkNyaXRlcmlhOjpHUkVBVEVSX0VRVUFMKTsgIAogICAgfQogICAgZWxzZWlmKGlzc2V0KCRwYXJhbXNbJ2RhdGVfZmllbGQnXSkpCiAgICB7CiAgICAgICRjLT5hZGQoJHBhcmFtc1snZGF0ZV9maWVsZCddLCAkZGF0ZSwgTUNGQ3JpdGVyaWE6OkdSRUFURVJfRVFVQUwpOyAgCiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRjLT5hZGQoJ3VwZGF0ZWRfYXQnLCAkZGF0ZSwgTUNGQ3JpdGVyaWE6OkdSRUFURVJfRVFVQUwpOwogICAgfSAgICAKICAgIAogICAge3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fU9iamVjdDo6YnVpbGRGcm9udGVuZEZpbHRlcnMoJGMsICRwYXJhbXMpOwogICAgJGMtPmFkZEFzY2VuZGluZ09yZGVyQnlDb2x1bW4oJ3VwZGF0ZWRfYXQnKTsKICAgICRpdGVtcyA9IHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmRvU2VsZWN0KCRjKTsKCiAgICBpZiAoZW1wdHkoJGl0ZW1zKSkKICAgIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICAKICAgIGlmICghaXNfbnVsbCgkdGVtcGxhdGUpKQogICAgewogICAgICAkcGFyYW1zWyd0ZW1wbGF0ZSddID0gJHRlbXBsYXRlOwogICAgfQoKICAgICRkZXRhaWxwYWdlID0gJHJldHVybmlkOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpIHsKICAgICAgICAkbWFuYWdlciA9IGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgICAgICBpZiAoJG5vZGUpIHsKICAgICAgICAgICAgJGNvbnRlbnQgPSAkbm9kZS0+R2V0Q29udGVudCgpOwogICAgICAgICAgICBpZiAoJGNvbnRlbnQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRkZXRhaWxwYWdlID0gJGNvbnRlbnQtPklkKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgICAgICAgICAgaWYgKCRub2RlKSB7CiAgICAgICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkcGFyYW1zWydvcmlnaWQnXSA9ICRyZXR1cm5pZDsKICAgIH0KCiAgICBmb3JlYWNoICgkaXRlbXMgYXMgJiRpdGVtKSB7CiAgICAgICRwYXJhbXNbJ2l0ZW1faWQnXSA9ICRpdGVtLT5nZXRJZCgpOwogICAgICAkcGFyYW1zWyd0aXRsZSddID0gJGl0ZW0tPmdldFRpdGxlKCk7CiAgICAgICRuZXdwYXJhbXMgPSAkcGFyYW1zOwogICAgICB1bnNldCgkbmV3cGFyYW1zWydzaG93dGVtcGxhdGUnXSk7CiAgICAgICRpdGVtLT5kZXRhaWxfbGluayA9ICR0aGlzLT5jcmVhdGVMaW5rKCRpZCwgJ2RldGFpbCcsICRkZXRhaWxwYWdlLCAkY29udGVudHM9JycsICRuZXdwYXJhbXMsICcnLCB0cnVlKTsKICAgICAgJHh0ZW5kZWRfZmVsaXN0ID0gTVhfWHRlbmRlZE1vZHVsZTo6Z2V0UmVsYXRlZEl0ZW1zKCR0aGlzLT5nZXROYW1lKCksICRpdGVtLT5nZXRJZCgpKTsKICAgIH0KICAgIHVuc2V0KCRpdGVtKTsKCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJGl0ZW1zKTsgICAgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0nLCAkaXRlbXMpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKXxsb3dlcn19JywgJGl0ZW1zKTsKICAgICRwYXJhbXNvYmogPSBuZXcgc3RkQ2xhc3MoKTsKICAgICRwYXJhbXNvYmotPnBhcmFtcyA9ICRwYXJhbXM7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21jZmFjdG9yeScsICRwYXJhbXNvYmopOwogICAgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGb3IoJ2RlZmF1bHQnLCAkcGFyYW1zKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZUl0ZW0oJGl0ZW1faWQpCiAgewogICAgJGMgPSBuZXcgTUNGQ3JpdGVyaWEoKTsKICAgICRjLT5hZGQoJ2lkJywgJGl0ZW1faWQpOwogICAgJGl0ZW0gPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdE9uZSgkYyk7CiAgICAKICAgIGlmICgkaXRlbSAhPT0gZmFsc2UpCiAgICB7CiAgICAgICRpdGVtLT5mb3JjZVVwZGF0ZU9iamVjdCgnbWFnaWMnKTsgIAogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldEFkbWluTGlzdCgkaWQsJHJldHVybmlkLCR0aGlyZD1udWxsKQogIHsKCiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gRXhwb3J0RGF0YXMoKSAgewogICAgJGRhdGFzID0gYXJyYXkoKTsKICAgICRjID0gbmV3IE1DRkNyaXRlcmlhKCk7CiAgICAkaXRlbXMgPSB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0Ojpkb1NlbGVjdCgkYyk7CgogICAgJGRhdGFzWzBdID0gYXJyYXkoCiAgICAgICdpZCcsCiAgICAgICd0aXRsZScsCiAgICAgIHt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19CiAgICAgICd7eyRmaWVsZC5mcmllbmRseW5hbWV9fScsCiAgICAgIHt7L2ZvcmVhY2h9fQogICAgICAnY3JlYXRlZF9hdCcsCiAgICAgICdjcmVhdGVkX2J5JywKICAgICAgJ21jZmlfY3JlYXRlZF90aW1lc3RhbXAnLAogICAgICAndXBkYXRlZF9hdCcsCiAgICAgICd1cGRhdGVkX2J5JywKICAgICAgJ21jZmlfdXBkYXRlZF90aW1lc3RhbXAnLAogICAgICAnb3JkZXJfYnknLAogICAgICAncHVibGlzaGVkJywKICAgICAgJ3BhcmVudF9pdGVtJywKICAgICAgJ3BhcmVudF9pZCcKICAgICAgKTsKICAgICAgCiAgICBmb3JlYWNoKCRpdGVtcyBhcyAkaXRlbSkKICAgIHsKICAgICAgJGRhdGFzW10gPSBhcnJheSgKICAgICAgICAnaWQnID0+ICRpdGVtLT5nZXRJZCgpLAogICAgICAgICd0aXRsZScgPT4gJGl0ZW0tPmdldFRpdGxlKCksCiAgICAgICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAgICAne3skZmllbGQuZnJpZW5kbHluYW1lfX0nID0+ICRpdGVtLT5nZXR7eyRmaWVsZC5jYW1lbGNhc2V9fSgpLAogICAgICAgIHt7L2ZvcmVhY2h9fQogICAgICAgICdjcmVhdGVkX2F0JyA9PiAkaXRlbS0+Z2V0Q3JlYXRlZEF0KCksCiAgICAgICAgJ2NyZWF0ZWRfYnknID0+ICRpdGVtLT5nZXRDcmVhdGVkQnkoKSwKICAgICAgICAnbWNmaV91cGRhdGVkX3RpbWVzdGFtcCcgPT4gJGl0ZW0tPmdldE1jZmlDcmVhdGVkVGltZXN0YW1wKCksCiAgICAgICAgJ3VwZGF0ZWRfYXQnID0+ICRpdGVtLT5nZXRVcGRhdGVkQXQoKSwKICAgICAgICAndXBkYXRlZF9ieScgPT4gJGl0ZW0tPmdldFVwZGF0ZWRCeSgpLAogICAgICAgICdtY2ZpX3VwZGF0ZWRfdGltZXN0YW1wJyA9PiAgJGl0ZW0tPmdldE1jZmlVcGRhdGVkVGltZXN0YW1wKCksCiAgICAgICAgJ29yZGVyX2J5JyA9PiAkaXRlbS0+Z2V0T3JkZXJCeSgpLAogICAgICAgICdwdWJsaXNoZWQnID0+ICRpdGVtLT5nZXRQdWJsaXNoZWQoKSwKICAgICAgICAncGFyZW50X2l0ZW0nID0+ICRpdGVtLT5nZXRQYXJlbnRJdGVtKCksCiAgICAgICAgJ3BhcmVudF9pZCcgPT4gJGl0ZW0tPmdldFBhcmVudElkKCkKICAgICAgKTsKICAgIH0KICAgICAgCiAgICByZXR1cm4gJGRhdGFzOwogIH0KICAKICAvLyBDTVMgVXNlcgogIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyRnVuY3Rpb24oKQogIHsKICAgIC8vIElzIFVzZXIgTW9kdWxlID8KICAgIHt7aWYgaXNzZXQoJGlzX3VzZXJfbW9kdWxlKX19CiAgICAgIHJldHVybiAndXNlckdldEVkaXRMaW5rJzsKICAgIHt7ZWxzZX19CiAgICAgIC8vIEZpcnN0IG9uZSB3aW4KICAgICAge3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KICAgICAgICB7e2lmICRmaWVsZC5mb3JtX3R5cGUgPT0gJ3VzZXInfX0KICAgICAgICAgIHt7aWYgIWlzc2V0KCRmaWVsZC5mb3B0aW9ucy5tdWx0aXBsZSl9fQogICAgICAgICAgICByZXR1cm4gJ3JldHJpZXZlTGlua0Zvcnt7JGZpZWxkLmNhbWVsY2FzZX19JzsKICAgICAgICAgIHt7L2lmfX0KICAgICAgICB7ey9pZn19CiAgICAgIHt7L2ZvcmVhY2h9fQogICAge3svaWZ9fQogICAgcmV0dXJuIGZhbHNlOwogIH0KICAKICAvLyBURU1QTEFURVMKICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVmYXVsdFRlbXBsYXRlcygpCiAgewogICAgJGFycmF5ID0gdW5zZXJpYWxpemUoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGVtcGxhdGVzJykpOwogICAgaWYgKGlzX2FycmF5KCRhcnJheSkpCiAgICB7CiAgICAgIHJldHVybiAkYXJyYXk7CiAgICB9CiAgICByZXR1cm4gYXJyYXkoKTsKICB9IAogIAogIHB1YmxpYyBmdW5jdGlvbiBTZXREZWZhdWx0VGVtcGxhdGVzKCRsaXN0ID0gYXJyYXkoKSkKICB7CiAgICByZXR1cm4gJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGVtcGxhdGVzJywgc2VyaWFsaXplKCRsaXN0KSk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBBZGREZWZhdWx0VGVtcGxhdGUoJGFjdGlvbiwgJHRlbXBsYXRlKQogIHsKICAgICRsaXN0ID0gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZXMoKTsKICAgICRsaXN0WyRhY3Rpb25dID0gJHRlbXBsYXRlOwogICAgJHRoaXMtPlNldERlZmF1bHRUZW1wbGF0ZXMoJGxpc3QpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVmYXVsdFRlbXBsYXRlKCRhY3Rpb24pCiAgewogICAgICAkbGlzdCA9ICR0aGlzLT5HZXREZWZhdWx0VGVtcGxhdGVzKCk7CiAgICAgIGlmICghaXNfYXJyYXkoJGxpc3QpKSAkbGlzdCA9IGFycmF5KCk7CiAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRhY3Rpb24sICRsaXN0KSkgLy8gVE9ETzogUG9zc2libGUgcHJvYmxlbSB3aXRoIGxpc3QKICAgICAgewogICAgICAgIHJldHVybiAkbGlzdFskYWN0aW9uXTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGlzRGVmYXVsdFRlbXBsYXRlKCR0ZW1wbGF0ZSkKICB7ICAgIAogICAgJGxpc3QgPSAkdGhpcy0+R2V0RGVmYXVsdFRlbXBsYXRlcygpOwogICAgJGFjdGlvbiA9IGFycmF5X3NlYXJjaCgkdGVtcGxhdGUsICRsaXN0KTsKICAgIGlmKCRhY3Rpb24gIT09IGZhbHNlKQogICAgewogICAgICByZXR1cm4gJGFjdGlvbjsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9ICAKICAKICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlRGVmYXVsdFRlbXBsYXRlKCR0ZW1wbGF0ZSkKICB7ICAgIAogICAgJGxpc3QgPSAkdGhpcy0+R2V0RGVmYXVsdFRlbXBsYXRlcygpOwogICAgJGFjdGlvbiA9IGFycmF5X3NlYXJjaCgkdGVtcGxhdGUsICRsaXN0KTsKICAgIGlmKCRhY3Rpb24gIT09IGZhbHNlKQogICAgewogICAgICB1bnNldCgkbGlzdFskYWN0aW9uXSk7CiAgICAgICR0aGlzLT5TZXREZWZhdWx0VGVtcGxhdGVzKCRsaXN0KTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIFByb2Nlc3NUZW1wbGF0ZUZvcigkYWN0aW9uLCAkcGFyYW1zID0gYXJyYXkoKSkKICB7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgJiYgJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pKSB7CiAgICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwogICAgfQogICAgZWxzZWlmICgoJHRlbXBsYXRlID0gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZSgkYWN0aW9uKSkgICYmICAoJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZSkgIT09IGZhbHNlKSkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRlbXBsYXRlKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Zyb250ZW5kLicuJGFjdGlvbi4nLnRwbCcpOwogICAgfQogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gUGFyYW1zRm9yTGluaygkcGFyYW1zLCRpbmNsdWRlID0gYXJyYXkoKSwkZXhjbHVkZSA9IGFycmF5KCkpCiAgewogICAgJG5ld19wYXJhbXMgPSBhcnJheSgpOwogICAgCiAgICBmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUpCiAgICB7CiAgICAgIGlmICghaW5fYXJyYXkoJGtleSwgJGV4Y2x1ZGUpKQogICAgICB7CiAgICAgICAgJG5ld19wYXJhbXNbJGtleV0gPSAkdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIAogICAgZm9yZWFjaCgkaW5jbHVkZSBhcyAka2V5ID0+ICR2YWx1ZSkKICAgIHsKICAgICAgaWYgKCFpbl9hcnJheSgka2V5LCAkZXhjbHVkZSkpCiAgICAgIHsKICAgICAgICAkbmV3X3BhcmFtc1ska2V5XSA9ICR2YWx1ZTsKICAgICAgfQogICAgfQogICAgCiAgICAvLyBOb3cgd2UnbGwgdHJlYXRoIHRoZSBjb21wbGV4IGFycmF5IHByb2JsZW0KICAgIAogICAgJHF1ZXJ5ID0gaHR0cF9idWlsZF9xdWVyeSgkbmV3X3BhcmFtcyk7CiAgICAkZW50cmllcyA9IGV4cGxvZGUoJyYnLCAkcXVlcnkpOwogICAgJG91dHB1dCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCRlbnRyaWVzIGFzICRlbnRyeSkKICAgIHsKICAgICAgJGRhdGEgPSBleHBsb2RlKCc9JywgJGVudHJ5KTsKICAgICAgJG91dHB1dFskZGF0YVswXV0gPSB1cmxkZWNvZGUoJGRhdGFbMV0pOwogICAgfSAgCiAgICAKICAgIHJldHVybiAkb3V0cHV0OwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gYnVpbGRGaWx0ZXJzQ3JpdGVyaWEoTUNGQ3JpdGVyaWEgJiRjLCAkZmlsdGVycykKICB7CiAgICAvLyBERVBSRUNBVEVECiAgICB7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19T2JqZWN0OjpidWlsZEZpbHRlcnNDcml0ZXJpYSgkYywgJGZpbHRlcnMpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gYnVpbGRGcm9udGVuZEZpbHRlcnMoTUNGQ3JpdGVyaWEgJiRjLCAkcGFyYW1zKQogIHsKICAgIC8vIERFUFJFQ0FURUQKICAgIHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX1PYmplY3Q6OmJ1aWxkRnJvbnRlbmRGaWx0ZXJzKCRjLCAkcGFyYW1zKTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBqdW1wVG8oJHVybCkKICB7CiAgICAkdXJsID0gc2VsZjo6cGFyc2VVcmwoJHVybCk7CiAgICBpZiAoaGVhZGVyc19zZW50KCkpCiAgICB7CiAgICAgIGVjaG8gJwogICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgIDwhLS0KICAgICAgICBsb2NhdGlvbi5yZXBsYWNlKCInLiR1cmwuJyIpOwogICAgICAvLyAtLT4KICAgICAgPC9zY3JpcHQ+CiAgICAgIDxub3NjcmlwdD4KICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJSZWZyZXNoIiBjb250ZW50PSIwO1VSTD0nLiR1cmwuJyI+CiAgICAgIDwvbm9zY3JpcHQ+JzsKICAgICAgZXhpdDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJy4kdXJsKTsKICAgIH0KICB9CiAgCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gcGFyc2VVcmwoJHVybCkKICB7CiAgICBpZiAoc3RycG9zKCR1cmwsJ2h0dHAnKSA9PT0gMCkKICAgIHsKICAgICAgcmV0dXJuICR1cmw7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHVybCk7CiAgICAgIGlmICgkbm9kZSkgewogICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICBpZiAoJGNvbnRlbnQpCiAgICAgICAgewogICAgICAgICAgcmV0dXJuICRjb250ZW50LT5HZXRVcmwoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJG5vZGUgPSAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUlkKCR1cmwpOwogICAgICAgIGlmICgkbm9kZSkgewogICAgICAgICAgJGNvbnRlbnQgPSAkbm9kZS0+R2V0Q29udGVudCgpOwogICAgICAgICAgaWYgKCRjb250ZW50KQogICAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJGNvbnRlbnQtPkdldFVybCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSAgCiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/rss/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/templates/rss/rss.css.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogY3NzIGZvciBSU1MgeHNsICovCgpib2R5e2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MHB4O21hcmdpbjoxMHB4O2ZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYsIk1TIHNhbnMgc2VyaWYiO2ZvbnQtc2l6ZTo4MCU7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiMwMDAwMDA7fQpmb3Jte21hcmdpbjowcHg7cGFkZGluZzowcHg7fQpoMnttYXJnaW46MHB4O3BhZGRpbmc6NXB4IDBweDtmb250LXNpemU6MTQwJTt9CnB7bWFyZ2luOjBweDtwYWRkaW5nOjVweCAwcHg7fQoKYTpsaW5re3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxMDAlO2NvbG9yOiMwMDAwOTk7fQphOnZpc2l0ZWR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEwMCU7Y29sb3I6IzY2NjZDQzt9CmE6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxMDAlO2NvbG9yOiMwMDAwOTk7fQphOmhvdmVye2ZvbnQtc2l6ZToxMDAlO2NvbG9yOiMwMDAwOTk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CgphLml0ZW06bGlua3tmb250LXdlaWdodDpib2xkO30KYS5pdGVtOnZpc2l0ZWR7Zm9udC13ZWlnaHQ6Ym9sZDt9CmEuaXRlbTphY3RpdmV7Zm9udC13ZWlnaHQ6Ym9sZDt9CmEuaXRlbTpob3Zlcntmb250LXdlaWdodDpib2xkO30KCi50b3Bib3h7d2lkdGg6MTAwJTt9Ci5iYW5ib3h7d2lkdGg6MTAwJTt9CgoubWFpbmJveHt3aWR0aDoxMDAlO3BhZGRpbmctdG9wOjEwcHg7fQouaXRlbWJveHt3aWR0aDo2MiU7ZmxvYXQ6bGVmdDtwYWRkaW5nLXRvcDoxMHB4O30KLnJoc2JveHtib3JkZXItbGVmdDoxcHggZGFzaGVkICM5OTk7d2lkdGg6MzYlO2Zsb2F0OnJpZ2h0O30KLmZvb3RlcmJveHtjbGVhcjpib3RoO3dpZHRoOjEwMCU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzAwMDt9CgojaXRlbSB1bCB7bGlzdC1zdHlsZTpub25lO21hcmdpbjowcHg7cGFkZGluZzowcHg7Ym9yZGVyOm5vbmU7fQojaXRlbSBsaSB7bWFyZ2luOjA7cGFkZGluZzo1cHggMHB4O30KLnJoc2JveCB1bCB7bGlzdC1zdHlsZS10eXBlOmRpc2M7bWFyZ2luOjBweCAyMHB4O3BhZGRpbmc6MHB4O2JvcmRlcjpub25lO30KLnJoc2JveCBsaSB7bWFyZ2luOjA7cGFkZGluZzo1cHggMHB4O30KCi5wYWR0b3Bib3h7cGFkZGluZzoxMHB4O2JvcmRlcjoxcHggc29saWQgIzk5OTt9Ci5wYWRpdGVtYm94e3BhZGRpbmc6MTBweCA1cHggMTBweCAxMHB4O30KLnBhZGJhbmJveHtwYWRkaW5nOjIwcHggMTBweCAxMHB4IDEwcHg7fQoucGFkcmhzYm94e3BhZGRpbmc6MTBweCAwcHggMjBweCAxMHB4O30KCi5zdWJoZWFke2ZvbnQtd2VpZ2h0OmJvbGQ7fQouZGlzY2xhaW17Zm9udC1zaXplOjExcHg7Y29sb3I6Izk5OTt9CgoubXZie21hcmdpbi1ib3R0b206NXB4O30KLmZsdGx7ZmxvYXQ6bGVmdDt9Ci5mbHRjbGVhcntjbGVhcjpib3RoO30KCg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/rss/style.xsl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4xIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+CiAgPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiAvPiAgIAogICA8eHNsOnZhcmlhYmxlIG5hbWU9InRpdGxlIiBzZWxlY3Q9Ii9yc3MvY2hhbm5lbC90aXRsZSIvPiAgIAogIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgogICAgPGh0bWw+CiAgICAgIDxoZWFkPgogICAgICAgIDx0aXRsZT4KICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4gWE1MIEZlZWQ8L3RpdGxlPgogICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9tb2R1bGVzL3t7JG1vZHVsZS0+R2V0TW9kdWxlTmFtZSgpfX0vcnNzL3Jzcy5jc3MiIHR5cGU9InRleHQvY3NzIi8+CiAgICAgIAogICAgICA8L2hlYWQ+IAogICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJyc3MvY2hhbm5lbCIvPiAgIAogICAgPC9odG1sPgogIDwveHNsOnRlbXBsYXRlPgogIAogICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2hhbm5lbCI+CiAgICA8Ym9keT4gICAgICAgICAKICAgICAgPGRpdiBjbGFzcz0idG9wYm94Ij4KICAgICAgPGRpdiBjbGFzcz0icGFkdG9wYm94Ij4KICAgICAgPGgyPldoYXQgaXMgdGhpcyBwYWdlPzwvaDI+CiAgICAgIDxwPlRoaXMgaXMgYW4gUlNTIGZlZWQgZnJvbSB0aGUgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImltYWdlL3RpdGxlIiAvPiB3ZWJzaXRlLiBSU1MgZmVlZHMgYWxsb3cgeW91IHRvIHN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cyBhbmQgZmVhdHVyZXMgeW91IHdhbnQgZnJvbSAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImltYWdlL3RpdGxlIiAvPi48L3A+CiAgICAgIDxwPlRvIHN1YnNjcmliZSB0byBpdCwgeW91IHdpbGwgbmVlZCBhIE5ld3MgUmVhZGVyIG9yIG90aGVyIHNpbWlsYXIgZGV2aWNlLjwvcD4KICAgICAgPHA+CjxhIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUnNzIj48c3Ryb25nPkhlbHA8L3N0cm9uZz4sIEkgZG9uJ3Qga25vdyB3aGF0IGEgbmV3cyByZWFkZXIgaXMgYW5kIHN0aWxsIGRvbid0IGtub3cgd2hhdCB0aGlzIGlzIGFib3V0LjwvYT48YnIgY2xlYXI9ImFsbCIgLz4KICAgICAgPC9wPgogICAgICA8L2Rpdj4KICAgICAgPC9kaXY+ICAgIAogICAgICAKICAgICAgPGRpdiBjbGFzcz0iYmFuYm94Ij4KICAgICAgPGRpdiBjbGFzcz0icGFkYmFuYm94Ij4gICAgIAogICAgICA8ZGl2IGNsYXNzPSJtdmIiPgogICAgICA8ZGl2IGNsYXNzPSJmbHRsIj48c3BhbiBjbGFzcz0ic3ViaGVhZCI+UlNTIEZlZWQgRm9yOiA8L3NwYW4+PC9kaXY+PGEgaHJlZj0iIyIgY2xhc3M9Iml0ZW0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz48L2E+PGJyIGNsZWFyPSJhbGwiIC8+CiAgICAgICA8L2Rpdj4KICAgICAgIAogICAgCiAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4gICAgCiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhZGl0ZW1ib3giPgogICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJpdGVtIi8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4gIAogICAgICAgIDxkaXYgY2xhc3M9InJoc2JveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWRyaHNib3giPgogICAgICAgICAgPGgyPlN1YnNjcmliZSB0byB0aGlzIGZlZWQ8L2gyPgogICAgICAgICAgPHA+WW91IGNhbiBzdWJzY3JpYmUgdG8gdGhpcyBSU1MgZmVlZCBpbiBhIG51bWJlciBvZiB3YXlzLCBpbmNsdWRpbmcgdGhlIGZvbGxvd2luZzo8L3A+CiAgICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+RHJhZyB0aGUgb3JhbmdlIFJTUyBidXR0b24gaW50byB5b3VyIE5ld3MgUmVhZGVyPC9saT4KICAgICAgICAgIDxsaT5EcmFnIHRoZSBVUkwgb2YgdGhlIFJTUyBmZWVkIGludG8geW91ciBOZXdzIFJlYWRlcjwvbGk+CiAgICAgICAgICA8bGk+Q3V0IGFuZCBwYXN0ZSB0aGUgVVJMIG9mIHRoZSBSU1MgZmVlZCBpbnRvIHlvdXIgTmV3cyBSZWFkZXI8L2xpPgogICAgICAgICAgPC91bD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDwvZGl2PiAgICAKICAgICAgICA8L2Rpdj4gIAogICAgICA8L2Rpdj4gIAogICAgICAKICAgIDxkaXYgY2xhc3M9ImZvb3RlcmJveCI+CgogICAgPC9kaXY+CiAgICAgICAgCiAgICA8L2JvZHk+CiAgPC94c2w6dGVtcGxhdGU+CiAgICAKICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJpdGVtIj4KICA8ZGl2IGlkPSJpdGVtIj4KICA8dWw+CiAgICAgIDxsaT4KICAgICAgICA8YSBocmVmPSJ7bGlua30iIGNsYXNzPSJpdGVtIj4KICAgICAgICAgIDx4c2w6dmFsdWUtb2YgZGlzYWJsZS1vdXRwdXQtZXNjYXBpbmc9InllcyIgc2VsZWN0PSJ0aXRsZSIvPgogICAgICAgIDwvYT48YnIvPiAgICAgCiAgICAgICAgPGRpdj4KICAgICAgICA8eHNsOnZhbHVlLW9mIGRpc2FibGUtb3V0cHV0LWVzY2FwaW5nPSJ5ZXMiIHNlbGVjdD0iZGVzY3JpcHRpb24iIC8+ICAgICAgICAgCiAgICAgICAgPC9kaXY+ICAKICAgICAgICA8L2xpPgogICAgPC91bD4KICA8L2Rpdj4gICAgCiAgPC94c2w6dGVtcGxhdGU+CjwveHNsOnN0eWxlc2hlZXQ+]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/smarty/templates/templates/admin.itemsTable.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgIDx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGg+e3skdGl0bGVfbGFiZWx9fTwvdGg+CiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRjb2x1bW5zIGl0ZW09Y29sdW1uIGtleT1uYW1lIG5hbWU9Zm9vfQogICAgICAgICAgICAgICAgICAgIDx0aD57JG5hbWV9PC90aD4KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAgICAgIDx0aCBjb2xzcGFuPSI1IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48L3RoPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgogICAgICAgIHtpZiAkcm93c3xAY291bnQgPiAwfQogICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRyb3dzIGl0ZW09cm93fQogICAgICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9JzsiPgogICAgICAgICAgICAgICAgPHRkPnskcm93LnRpdGxlbGlua308L3RkPgogICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kY29sdW1ucyBpdGVtPWNvbHVtbn08dGQ+e2ZvcmVhY2ggbmFtZT1jb2xsb29wIGZyb209JGNvbHVtblskcm93LmlkXSBpdGVtPXZhbHVlfXskdmFsdWUtPmdldFRpdGxlKCl9e2lmICEkc21hcnR5LmZvcmVhY2guY29sbG9vcC5sYXN0fSx7L2lmfSB7L2ZvcmVhY2h9PC90ZD57L2ZvcmVhY2h9CiAgICAgICAgICAgICAgICA8dGQ+eyRyb3cucHVibGlzaGxpbmt9PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD57JHJvdy5lZGl0bGlua308L3RkPgogICAgICAgICAgICAgICAgPHRkPnskcm93LmRlbGV0ZWxpbmt9PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD57JHJvdy5tb3ZldXBsaW5rfTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+eyRyb3cubW92ZWRvd25saW5rfTwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgPHRyPjx0ZD4KICAgICAgICAgICAgICAgIFRoZXJlIGFyZSBubyByZXN1bHRzIG1hdGNoaW5nIHlvdXIgY3JpdGVyaWEuCiAgICAgICAgICAgIDwvdGQ+PC90cj4KICAgICAgICB7L2lmfQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgogICAge2lmICRwYWdlc3xAY291bnQgPiAxfTxwPlBhZ2U6IHtmb3JlYWNoIGZyb209JHBhZ2VzIGl0ZW09bGluayBrZXk9aX17aWYgKCRpICsgMSkgPT0gJGN1cnJlbnRQYWdlfTxzdHJvbmc+eyRsaW5rfTwvc3Ryb25nPntlbHNlfXskbGlua317L2lmfSB7L2ZvcmVhY2h9PC9wPnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX2l0ZW1faWNvbn0geyRhZGRfaXRlbV9saW5rfTwvcD4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/admin.templates.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICR0ZW1wbGF0ZXN8Y291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPjwvdGg+CiAgICAgIDx0aD48L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSR0ZW1wbGF0ZXMgaXRlbT1yb3d9CiAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9JzsiPgogICAgICA8dGQ+eyRyb3cudGl0bGVsaW5rfTwvdGQ+CiAgICAgIDx0ZD57JHJvdy5kZWZhdWx0fTwvdGQ+CiAgICAgIDx0ZD57JHJvdy5lZGl0bGlua308L3RkPgogICAgICA8dGQ+eyRyb3cuZGVsZXRlbGlua308L3RkPgogICAgPC90cj4Key9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+Cgk8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX3RlbXBsYXRlc19pY29ufSB7JGFkZF90ZW1wbGF0ZXNfbGlua308L3A+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/admin.template_edit.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmb3JtKX0KCTxkaXYgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JGZvcm0tPnNob3dFcnJvcnMoKX08L2Rpdj4KCXskZm9ybS0+Z2V0SGVhZGVycygpfQoJPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+CgkJeyRmb3JtLT5nZXRCdXR0b25zKCl9Cgk8L3A+CgoJCTxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPgoJCTxwPjxzdHJvbmc+QXZhaWxhYmxlIGZpZWxkczwvc3Ryb25nPjwvcD4KCQk8dWwgY2xhc3M9ImV4dHJhX2ZpZWxkcyIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwOyBwYWRkaW5nLWxlZnQ6IDA7Ij4KCQkJe3tmb3JlYWNoIGZyb209JGV4dHJhX2ZpZWxkcyBpdGVtPWZpZWxkfX0KCQkJPGxpPjxhIGhyZWY9IiMiPiRpdGVtLT57eyRmaWVsZC5uYW1lfX08L2E+PC9saT4KCQkJe3svZm9yZWFjaH19CgkJPC91bD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJe2xpdGVyYWx9CgkJKGZ1bmN0aW9uKCQpIHsKCQkJJC5mbi5pbnNlcnRBdENhcmV0ID0gZnVuY3Rpb24gKG15VmFsdWUpIHsKCQkJICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CgkJCSAgICAgICAgICAgICAgICAvL0lFIHN1cHBvcnQKCQkJICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5zZWxlY3Rpb24pIHsKCQkJICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1cygpOwoJCQkgICAgICAgICAgICAgICAgICAgICAgICBzZWwgPSBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTsKCQkJICAgICAgICAgICAgICAgICAgICAgICAgc2VsLnRleHQgPSBteVZhbHVlOwoJCQkgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzKCk7CgkJCSAgICAgICAgICAgICAgICB9CgkJCSAgICAgICAgICAgICAgICAvL01PWklMTEEvTkVUU0NBUEUgc3VwcG9ydAoJCQkgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLnNlbGVjdGlvblN0YXJ0ID09ICcwJykgewoJCQkgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhcnRQb3MgPSB0aGlzLnNlbGVjdGlvblN0YXJ0OwoJCQkgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZW5kUG9zID0gdGhpcy5zZWxlY3Rpb25FbmQ7CgkJCSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzY3JvbGxUb3AgPSB0aGlzLnNjcm9sbFRvcDsKCQkJICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0UG9zKQoJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbXlWYWx1ZQoJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRoaXMudmFsdWUuc3Vic3RyaW5nKGVuZFBvcywKCQkJdGhpcy52YWx1ZS5sZW5ndGgpOwoJCQkgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzKCk7CgkJCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU3RhcnQgPSBzdGFydFBvcyArIG15VmFsdWUubGVuZ3RoOwoJCQkgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkVuZCA9IHN0YXJ0UG9zICsgbXlWYWx1ZS5sZW5ndGg7CgkJCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wOwoJCQkgICAgICAgICAgICAgICAgfSBlbHNlIHsKCQkJICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSArPSBteVZhbHVlOwoJCQkgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzKCk7CgkJCSAgICAgICAgICAgICAgICB9CgkJCSAgICAgICAgfSk7CgoJCQl9OwoJCQkkKCcuZXh0cmFfZmllbGRzIGEnKS5jbGljayhmdW5jdGlvbigpIHsKCQkJCXZhciBmaWVsZCA9ICd7JyskKHRoaXMpLnRleHQoKSsnfSc7CgkJCQkkKCdbbmFtZT17L2xpdGVyYWx9eyRpZH17bGl0ZXJhbH1jb2RlXScpLmluc2VydEF0Q2FyZXQoZmllbGQpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9KTsKCQl9KShqUXVlcnkpOwoJCXsvbGl0ZXJhbH0KCQk8L3NjcmlwdD4KCQk8L2Rpdj4KCgl7JGZvcm0tPnNob3dXaWRnZXRzKCc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxkaXYgY2xhc3M9InBhZ2V0ZXh0Ij4lTEFCRUwlOjwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+JUlOUFVUJSA8ZW0+JVRJUFMlPC9lbT48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiIHN0eWxlPSJjb2xvcjogcmVkOyI+JUVSUk9SUyU8L2Rpdj4KCTwvZGl2PicpfQoKCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLXRvcDogMTVweDsiPgoJCXskZm9ybS0+Z2V0QnV0dG9ucygpfQoJPC9wPgoJeyRmb3JtLT5nZXRGb290ZXJzKCl9CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/defaultadmin.items.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmaWx0ZXJzX2Zvcm0pfQoJeyRmaWx0ZXJzX2Zvcm0tPmdldEhlYWRlcnMoKX0KCUZpbHRlciBieToKCXskZmlsdGVyc19mb3JtLT5zaG93V2lkZ2V0cygnJUxBQkVMJSAlSU5QVVQlICcpfQoJCXskZmlsdGVyc19mb3JtLT5nZXRCdXR0b25zKCl9Cgl7JGZpbHRlcnNfZm9ybS0+Z2V0Rm9vdGVycygpfQp7L2lmfQo8ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsiPig8c3Ryb25nPnskdG90YWxfaXRlbXN9IGl0ZW17aWYgJHRvdGFsX2l0ZW1zIGd0IDF9c3svaWZ9PC9zdHJvbmc+KTwvZGl2Pgo8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsiPjwvZGl2Pgp7aWYgJHJvd3N8QGNvdW50fQoJe2lmIGlzc2V0KCRhZGRfaXRlbV9pY29uKX0KCTxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KCSAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX2l0ZW1faWNvbn0geyRhZGRfaXRlbV9saW5rfTwvcD4KCTwvZGl2PgoJey9pZn0Key9pZn0KICAgIDx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGg+e3skdGl0bGVfbGFiZWx9fTwvdGg+CiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRjb2x1bW5zIGl0ZW09Y29sdW1uIGtleT1uYW1lIG5hbWU9Zm9vfQogICAgICAgICAgICAgICAgICAgIDx0aD57JG5hbWV9PC90aD4KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAgICAgIDx0aCBjb2xzcGFuPSI4IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48L3RoPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgogICAgICAgIHtpZiAkcm93c3xAY291bnQgPiAwfQogICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRyb3dzIGl0ZW09cm93fQogICAgICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9JzsiPgogICAgICAgICAgICAgICAgPHRkPnskcm93LnRpdGxlbGlua308L3RkPgogICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kY29sdW1ucyBpdGVtPWNvbHVtbn08dGQ+e2ZvcmVhY2ggbmFtZT1jb2xsb29wIGZyb209JGNvbHVtblskcm93LmlkXSBpdGVtPXZhbHVlfXskdmFsdWV9e2lmICEkc21hcnR5LmZvcmVhY2guY29sbG9vcC5sYXN0fSx7L2lmfSB7L2ZvcmVhY2h9PC90ZD57L2ZvcmVhY2h9CiAgICAgICAgICAgICAgICA8dGQ+eyRyb3cucHVibGlzaGxpbmt9PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD57JHJvdy5wcmV2aWV3bGlua308L3RkPgogICAgICAgICAgICAgICAgPHRkPnskcm93LmNtb259PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD57JHJvdy50d2l0dGVyfTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+eyRyb3cuZWRpdGxpbmt9PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD57JHJvdy5kZWxldGVsaW5rfTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+e2lmIGlzc2V0KCRyb3cubW92ZXVwbGluayl9eyRyb3cubW92ZXVwbGlua317L2lmfTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+e2lmIGlzc2V0KCRyb3cubW92ZWRvd25saW5rKX17JHJvdy5tb3ZlZG93bmxpbmt9ey9pZn08L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAge2Vsc2V9CiAgICAgICAgICAgIDx0cj48dGQ+CiAgICAgICAgICAgICAgICBUaGVyZSBhcmUgbm8gcmVzdWx0cyBtYXRjaGluZyB5b3VyIGNyaXRlcmlhLgogICAgICAgICAgICA8L3RkPjwvdHI+CiAgICAgICAgey9pZn0KICAgICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KCXtpZiBpc3NldCgkcGFnZXMpfQogICAge2lmICRwYWdlc3xAY291bnQgPiAxfTxwPlBhZ2U6IHtmb3JlYWNoIGZyb209JHBhZ2VzIGl0ZW09bGluayBrZXk9aX17aWYgKCRpICsgMSkgPT0gJGN1cnJlbnRQYWdlfTxzdHJvbmc+eyRsaW5rfTwvc3Ryb25nPntlbHNlfXskbGlua317L2lmfSB7L2ZvcmVhY2h9PC9wPnsvaWZ9Cgl7L2lmfQp7aWYgaXNzZXQoJGFkZF9pdGVtX2ljb24pfQo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX2l0ZW1faWNvbn0geyRhZGRfaXRlbV9saW5rfTwvcD4KPC9kaXY+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/defaultadmin.options.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij57JGV4cG9ydH08L2Rpdj4KCgp7aWYgaXNzZXQoJGZvcm0pfQoJPGRpdiBzdHlsZT0iY29sb3I6IHJlZDsiPnskZm9ybS0+c2hvd0Vycm9ycygpfTwvZGl2PgoJeyRmb3JtLT5nZXRIZWFkZXJzKCl9Cgl7JGZvcm0tPnNob3dXaWRnZXRzKCc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+JUxBQkVMJTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+JUlOUFVUJTwvcD4KCTwvZGl2PicpfQoJPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+CgkJeyRmb3JtLT5nZXRCdXR0b25zKCl9Cgk8L3A+Cgl7JGZvcm0tPmdldEZvb3RlcnMoKX0Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdXBkYXRlX29iamVjdHN9PC9wPgo8L2Rpdj4KCg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/defaultadmin.templates.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRyb3dzfGNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD48L3RoPgogICAgICA8dGg+PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kcm93cyBpdGVtPXJvd30KICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0ne2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn1ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0ne2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0nOyI+CiAgICAgIDx0ZD57JHJvdy50aXRsZWxpbmt9PC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICAgIDx0ZD57JHJvdy5lZGl0bGlua308L3RkPgogICAgICA8dGQ+eyRyb3cuZGVsZXRlbGlua308L3RkPgogICAgPC90cj4Key9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+Cgk8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX2l0ZW1faWNvbn0geyRhZGRfaXRlbV9saW5rfTwvcD4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/edit.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmb3JtKX0KCTxkaXYgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JGZvcm0tPnNob3dFcnJvcnMoKX08L2Rpdj4KCXskZm9ybS0+Z2V0SGVhZGVycygpfQoJPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+CgkJeyRmb3JtLT5nZXRCdXR0b25zKCl9Cgk8L3A+CgkKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp7bGl0ZXJhbH0KCWpRdWVyeShmdW5jdGlvbigkKSB7CgkJJCggIiNzdHJ1Y3R1cmUiICkudGFicygpOwkJCQoJCX0pKGpRdWVyeSk7CQp7L2xpdGVyYWx9Cjwvc2NyaXB0PgoKCQoJPGRpdiBpZD0ic3RydWN0dXJlIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogN3B4OyI+Cgk8dWw+CgkJe3tmb3JlYWNoIGZyb209JHN0cnVjdHVyZS0+Z2V0VGFicygpIGl0ZW09dGFiIGtleT10YWJfa2V5fX0KCQk8bGl7e2lmICRhY3RpdmVfZmllbGRzX3RhYiBlcSAkdGFiX2tleX19IGNsYXNzPSJ1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSJ7ey9pZn19PjxhIGhyZWY9IiNzdHJ1Yy17eyR0YWJfa2V5fX0iPnt7JHRhYi5uYW1lfX08L2E+PC9saT4KCQl7ey9mb3JlYWNofX0KCQl7Zm9yZWFjaCBmcm9tPSRzdWJtb2R1bGVzIGl0ZW09bW9kdWxlfQoJCTxsaXtpZiAkdGFiID09ICRtb2R1bGUuZ25hbWV9IGNsYXNzPSJ1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSJ7L2lmfT48YSBocmVmPSIjc3RydWMteyRtb2R1bGUuZ25hbWV9Ij57JG1vZHVsZS5uYW1lfTwvYT48L2xpPgoJCXsvZm9yZWFjaH0KCQl7aWYgJHh0ZW5kZWRfZm9ybSAhPSAnJ30KCQk8bGl7aWYgJHRhYiA9PSAncmVsYXRlZCd9IGNsYXNzPSJ1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSJ7L2lmfT48YSBocmVmPSIjc3RydWMtcmVsYXRlZCI+UmVsYXRlZCBpdGVtczwvYT48L2xpPgogICAgey9pZn0KICAgIDxsaT48YSBocmVmPSIjbW9kdWxlLS0tb3B0aW9ucyI+T3B0aW9uczwvYT48L2xpPgoJPC91bD4KCXt7Zm9yZWFjaCBmcm9tPSRzdHJ1Y3R1cmUtPmdldFRhYnMoKSBpdGVtPXRhYiBrZXk9dGFiX2tleX19CgkJPGRpdiBpZD0ic3RydWMte3skdGFiX2tleX19Ij4KCQl7e2ZvcmVhY2ggZnJvbT0kdGFiLmZpZWxkc2V0cyBpdGVtPWZpZWxkc2V0IGtleT1maWVsZHNldF9rZXl9fQoJCQl7JGZvcm0tPnJlbmRlckZpZWxkc2V0KCd7eyR0YWJfa2V5fX0tLS17eyRmaWVsZHNldF9rZXl9fScsJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQkJPGRpdiBjbGFzcz0icGFnZXRleHQiPiVMQUJFTCU6PC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4lSU5QVVQlIDxlbT4lVElQUyU8L2VtPjwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCIgc3R5bGU9ImNvbG9yOiByZWQ7Ij4lRVJST1JTJTwvZGl2PgoJCQk8L2Rpdj4nKX0KCQl7ey9mb3JlYWNofX0KCQk8L2Rpdj4KCXt7L2ZvcmVhY2h9fQkKCXtmb3JlYWNoIGZyb209JHN1Ym1vZHVsZXMgaXRlbT1tb2R1bGV9CgkgIDxkaXYgaWQ9InN0cnVjLXskbW9kdWxlLmduYW1lfSI+CiAgICAJCQl7JG1vZHVsZS50ZW1wbGF0ZX0KICAgIAkJCTxwPntpZiAkbW9kdWxlLmFkZF9pdGVtX2xpbmt9eyRtb2R1bGUuYWRkX2l0ZW1faWNvbn0geyRtb2R1bGUuYWRkX2l0ZW1fbGlua317ZWxzZX08ZW0+Rmlyc3QgY2xpY2sgb24gIlNhdmUgJmFtcDsgY29udGludWUgZWRpdGluZyIgdG8gYmUgYWJsZSB0byBhZGQgeyRtb2R1bGUubmFtZX0gaXRlbXMuPC9lbT57L2lmfTwvcD4KCSAgPC9kaXY+Cgl7L2ZvcmVhY2h9Cgl7aWYgJHh0ZW5kZWRfZm9ybSAhPSAnJ30KCTxkaXYgaWQ9InN0cnVjLXJlbGF0ZWQiPgoJICB7JHh0ZW5kZWRfZm9ybX0KCTwvZGl2PgoJey9pZn0JCgk8ZGl2IGlkPSJtb2R1bGUtLS1vcHRpb25zIj4KCSAgeyRmb3JtLT5yZW5kZXJGaWVsZHNldCgnbW9kdWxlLS0tb3B0aW9ucycsJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQk8ZGl2IGNsYXNzPSJwYWdldGV4dCI+JUxBQkVMJTo8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+JUlOUFVUJSA8ZW0+JVRJUFMlPC9lbT48L2Rpdj4KCQkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCIgc3R5bGU9ImNvbG9yOiByZWQ7Ij4lRVJST1JTJTwvZGl2PgoJCTwvZGl2PicpfQoJPC9kaXY+Cgk8L2Rpdj4KCQoJeyRmb3JtLT5yZW5kZXJGaWVsZHNldHMoJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPGRpdiBjbGFzcz0icGFnZXRleHQiPiVMQUJFTCU6PC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4lSU5QVVQlIDxlbT4lVElQUyU8L2VtPjwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCIgc3R5bGU9ImNvbG9yOiByZWQ7Ij4lRVJST1JTJTwvZGl2PgoJPC9kaXY+Jyl9CgoJeyRmb3JtLT5zaG93V2lkZ2V0cygnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8ZGl2IGNsYXNzPSJwYWdldGV4dCI+JUxBQkVMJTo8L2Rpdj4JCgkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4lSU5QVVQlIDxlbT4lVElQUyU8L2VtPjwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCIgc3R5bGU9ImNvbG9yOiByZWQ7Ij4lRVJST1JTJTwvZGl2PgoJPC9kaXY+Jyl9CgoJPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBtYXJnaW4tdG9wOiAxNXB4OyI+CgkJeyRmb3JtLT5nZXRCdXR0b25zKCl9Cgk8L3A+Cgl7JGZvcm0tPmdldEZvb3RlcnMoKX0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/edittemplate.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQoKPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjAwcHg7Ij4KPHA+PHN0cm9uZz5BdmFpbGFibGUgZmllbGRzPC9zdHJvbmc+PC9wPgo8dWwgY2xhc3M9ImV4dHJhX2ZpZWxkcyIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwOyBwYWRkaW5nLWxlZnQ6IDA7Ij4KCXt7Zm9yZWFjaCBmcm9tPSRleHRyYV9maWVsZHMgaXRlbT1maWVsZH19Cgk8bGk+PGEgaHJlZj0iIyI+JGl0ZW0tPnt7JGZpZWxkLm5hbWV9fTwvYT48L2xpPgoJe3svZm9yZWFjaH19CjwvdWw+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Ke2xpdGVyYWx9CihmdW5jdGlvbigkKSB7CgkkLmZuLmluc2VydEF0Q2FyZXQgPSBmdW5jdGlvbiAobXlWYWx1ZSkgewoJICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CgkgICAgICAgICAgICAgICAgLy9JRSBzdXBwb3J0CgkgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgewoJICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1cygpOwoJICAgICAgICAgICAgICAgICAgICAgICAgc2VsID0gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7CgkgICAgICAgICAgICAgICAgICAgICAgICBzZWwudGV4dCA9IG15VmFsdWU7CgkgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzKCk7CgkgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgIC8vTU9aSUxMQS9ORVRTQ0FQRSBzdXBwb3J0CgkgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLnNlbGVjdGlvblN0YXJ0ID09ICcwJykgewoJICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0UG9zID0gdGhpcy5zZWxlY3Rpb25TdGFydDsKCSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbmRQb3MgPSB0aGlzLnNlbGVjdGlvbkVuZDsKCSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzY3JvbGxUb3AgPSB0aGlzLnNjcm9sbFRvcDsKCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBteVZhbHVlCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRoaXMudmFsdWUuc3Vic3RyaW5nKGVuZFBvcywKCXRoaXMudmFsdWUubGVuZ3RoKTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoKTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU3RhcnQgPSBzdGFydFBvcyArIG15VmFsdWUubGVuZ3RoOwoJICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25FbmQgPSBzdGFydFBvcyArIG15VmFsdWUubGVuZ3RoOwoJICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7CgkgICAgICAgICAgICAgICAgfSBlbHNlIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgKz0gbXlWYWx1ZTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoKTsKCSAgICAgICAgICAgICAgICB9CgkgICAgICAgIH0pOwoKCX07CgkkKCcuZXh0cmFfZmllbGRzIGEnKS5jbGljayhmdW5jdGlvbigpIHsKCQl2YXIgZmllbGQgPSAneycrJCh0aGlzKS50ZXh0KCkrJ30nOwoJCSQoJ1tuYW1lPXsvbGl0ZXJhbH17JGlkfXtsaXRlcmFsfXRlbXBsYXRlZGV0YWlsc10nKS5pbnNlcnRBdENhcmV0KGZpZWxkKTsKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKfSkoalF1ZXJ5KTsKey9saXRlcmFsfQo8L3NjcmlwdD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNvZGVfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRleHRhcmVhX3RlbXBsYXRlfTwvcD4KPC9kaXY+CgoKCXskZm9ybV9kZXRhaWxzX3N1Ym1pdH0KCXskZm9ybV9kZXRhaWxzX2FwcGx5fQoJeyRmb3JtX2RldGFpbHNfcmVzdG9yZWxpc3R9Cgl7JGZvcm1fZGV0YWlsc19yZXN0b3JlZGV0YWlsc30KCjwvZm9ybT4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/error.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0aXRsZV9lcnJvcn0KeyRtZXNzYWdlfQo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.calendar.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHRhYmxlIGNsYXNzPSJjYWxlbmRhciI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggY2xhc3M9InByZXZpb3VzIj48YSBocmVmPSJ7JHByZXZpb3VzX21vbnRofSI+Jmx0OzwvYT48L3RoPgoJCQk8dGggY2xhc3M9Im1vbnRoIiBjb2xzcGFuPSI1Ij57JGN1cnJlbnRfbW9udGh8ZGF0ZV9mb3JtYXQ6IiViICVZIn08L3RoPgoJCQk8dGggY2xhc3M9Im5leHQiPjxhIGhyZWY9InskbmV4dF9tb250aH0iPiZndDs8L2E+PC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPk1vbjwvdGQ+CgkJCTx0ZD5UdWU8L3RkPgoJCQk8dGQ+V2VkPC90ZD4KCQkJPHRkPlRodTwvdGQ+CgkJCTx0ZD5Gcmk8L3RkPgoJCQk8dGQ+U2F0PC90ZD4KCQkJPHRkPlN1bjwvdGQ+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJe2ZvcmVhY2ggZnJvbT0kbWNmY2FsZW5kYXIgaXRlbT13ZWVrfQoJCQk8dHI+CgkJCQl7Zm9yZWFjaCBmcm9tPSR3ZWVrIGl0ZW09ZGF5fQoJCQkJPHRkIGNsYXNzPSJ7aWYgJGRheS5jdXJyZW50fWN1cnJlbnQgey9pZn17aWYgJGRheS50b2RheX10b2RheSB7L2lmfXtpZiAkZGF5LmV2ZW50c3xAY291bnR9IGhhcy1ldmVudHN7L2lmfSI+CgkJCQkJPHA+eyRkYXkuZGF0ZXxkYXRlX2Zvcm1hdDoiJWUifTwvcD4KCQkJCQl7aWYgJGRheS5ldmVudHN8QGNvdW50fQoJCQkJCTx1bD4KCQkJCQkJe2ZvcmVhY2ggZnJvbT0kZGF5LmV2ZW50cyBpdGVtPWl0ZW19CgkJCQkJCTxsaT48YSBocmVmPSJ7JGl0ZW0tPmRldGFpbF9saW5rfSI+eyRpdGVtLT50aXRsZX08L2E+PC9saT4KCQkJCQkJey9mb3JlYWNofQoJCQkJCTwvdWw+CgkJCQkJey9pZn0KCQkJCQl7KiBBbHRlcm5hdGl2ZTogTGluayB0byBhbGwgZXZlbnRzIG9mIHRoZSBjdXJyZW50IGRhdGUgfQoJCQkJCQl7aWYgJGRheS5ldmVudHN8QGNvdW50fQoJCQkJCQkJPGEgaHJlZj0ie3tsaXRlcmFsfX17e3svbGl0ZXJhbH19e3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSBhY3Rpb249InVybF9mb3IiIG1hY3Rpb249ImRlZmF1bHQiIGNhbGVuZGFyPTEgc3RhcnRfZGF0ZT0kZGF5LmRhdGV8ZGF0ZV9mb3JtYXQ6IiVZLSVtLSVkIiBlbmRfZGF0ZT0kZGF5LmRhdGV8ZGF0ZV9mb3JtYXQ6IiVZLSVtLSVkIn0iPnskZGF5LmRhdGV8ZGF0ZV9mb3JtYXQ6IiVlIn08L2E+CgkJCQkJCXtlbHNlfQoJCQkJCQkJeyRkYXkuZGF0ZXxkYXRlX2Zvcm1hdDoiJWUifQoJCQkJCQl7L2lmfQoJCQkJCXsqKn0KCQkJCTwvdGQ+CgkJCQl7L2ZvcmVhY2h9CgkJCTwvdHI+CgkJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4K]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.default.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KCXtmb3JlYWNoIGZyb209JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0gaXRlbT1pdGVtfQ0KCTxsaT48YSBocmVmPSJ7e2xpdGVyYWx9fXt7ey9saXRlcmFsfX17eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IGFjdGlvbj0idXJsX2ZvciIgbWFjdGlvbj0iZGV0YWlsIiBpdGVtX2lkPSRpdGVtLT5nZXRJZCgpIGRldGFpbHBhZ2U9JGRldGFpbHBhZ2UgdGl0bGU9JGl0ZW0tPnRpdGxlfSI+eyRpdGVtLT50aXRsZX08L2E+PC9saT4NCgl7L2ZvcmVhY2h9DQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.detail.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0ibWNmX3t7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfGxvd2VyfX0iPg0KCTxoMj57JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnRpdGxlfTwvaDI+DQoJDQp7e2ZvcmVhY2ggZnJvbT0kZXh0cmFfZmllbGRzIGl0ZW09ZmllbGR9fQ0Ke3tpZiAkZmllbGQuZm9ybV90eXBlIG5lICdub25lJ319DQoJe2lmICR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT57eyRmaWVsZC5uYW1lfX0gbmUgJyd9DQoJPHA+PHN0cm9uZz57eyRmaWVsZC5sYWJlbH19Ojwvc3Ryb25nPiANCnt7aWYgJGZpZWxkLnR5cGUgPT0gJ2ltYWdlJ319DQoJCTxpbWcgc3JjPSJ7JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19VXJsKCRpZCl9IiAvPg0Ke3tlbHNlaWYgJGZpZWxkLnR5cGUgPT0gJ2RvY3VtZW50J319DQoJCTxhIGhyZWY9Inske3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS0+Z2V0e3skZmllbGQuY2FtZWxjYXNlfX1VcmwoJGlkKX0iIHJlbD0iZXh0ZXJuYWwiPkRvd25sb2FkPC9hPg0Ke3tlbHNlaWYgJGZpZWxkLnR5cGUgPT0gJ3BhZ2UnfX0NCgl7Y21zX3NlbGZsaW5rIHBhZ2U9JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnt7JGZpZWxkLm5hbWV9fX0NCnt7ZWxzZWlmICRmaWVsZC50eXBlID09ICdzZWxlY3QnfX0NCgl7JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPmdldHt7JGZpZWxkLmNhbWVsY2FzZX19VmFsdWUoKX0NCnt7ZWxzZX19DQoJeyR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT57eyRmaWVsZC5uYW1lfX19DQp7ey9pZn19DQoJPC9wPg0KCXsvaWZ9DQp7ey9pZn19DQp7ey9mb3JlYWNofX0NCjwvZGl2Pg0KDQp7KiBDYWxsIGNoaWxkIG1vZHVsZXMgKn0NCg0Ke3tpZiAkY2hpbGRfbW9kdWxlc3xAY291bnQgPiAwfX0NCjxkaXYgY2xhc3M9Im1jZl9jaGlsZHMiPg0Ke3tmb3JlYWNoIGZyb209JGNoaWxkX21vZHVsZXMgaXRlbT1jaGlsZF9tb2R1bGV9fQ0KDQo8ZGl2IGNsYXNzPSJtY2ZfY2hpbGRfe3skY2hpbGRfbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fSI+DQp7e2xpdGVyYWx9fXt7ey9saXRlcmFsfX17eyRjaGlsZF9tb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IHBhcmVudF9pdGVtPSR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT5nZXRJZCgpfQ0KPC9kaXY+DQp7ey9mb3JlYWNofX0NCjwvZGl2Pg0Ke3svaWZ9fQ0KDQp7KiBDYWxsIE1vZHVsZVh0ZW5kZXIgaXRlbXMgKn0NCg0Ke2lmIGlzc2V0KCR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT54dGVuZGVkX2ZlbGlzdCl9DQo8ZGl2IGNsYXNzPSJtY2ZfbW9kdWxleHRlbmRlciI+DQp7aWYgJHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnh0ZW5kZWRfZmVsaXN0LT5kb2N1bWVudHN8QGNvdW50IGd0IDB9DQo8dWwgY2xhc3M9Im14X2RvY3VtZW50cyI+DQoJe2ZvcmVhY2ggZnJvbT0ke3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS0+eHRlbmRlZF9mZWxpc3QtPmRvY3VtZW50cyBpdGVtPWRvY3VtZW50fQ0KCTxsaT4NCgkJPGltZyBzcmM9InskZG9jdW1lbnQtPmdldEljb24oKX0iIGFsaWduPSJhYnNtaWRkbGUiIC8+DQoJCTxhIGhyZWY9InskZG9jdW1lbnQtPmdldERvY3VtZW50VXJsKCl9IiByZWw9ImV4dGVybmFsIj4NCgl7aWYgJGRvY3VtZW50LT5nZXRUaXRsZSgpIG5lICcnfXskZG9jdW1lbnQtPmdldFRpdGxlKCl9e2Vsc2V9eyRkb2N1bWVudC0+Z2V0RmlsZW5hbWUoKX17L2lmfQ0KCTwvYT4gKHskZG9jdW1lbnQtPmdldFNpemUodHJ1ZSl9KTwvbGk+DQoJey9mb3JlYWNofQ0KPC91bD4NCnsvaWZ9DQoNCntpZiAke3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS0+eHRlbmRlZF9mZWxpc3QtPmltYWdlc3xAY291bnQgZ3QgMH0NCjx1bCBjbGFzcz0ibXhfaW1hZ2VzIj4NCgl7Zm9yZWFjaCBmcm9tPSR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT54dGVuZGVkX2ZlbGlzdC0+aW1hZ2VzIGl0ZW09aW1hZ2V9DQoJPGxpPjxhIGhyZWY9InskaW1hZ2UtPnVybH0iIHJlbD0iZXh0ZXJuYWwiPg0KCTxpbWcgc3JjPSJ7JGltYWdlLT5yZXNpemVkX2ltYWdlcy50aHVtYm5haWx9IiAvPg0KCTwvYT48L2xpPg0KCXsvZm9yZWFjaH0NCjwvdWw+DQp7L2lmfQ0KDQp7aWYgJHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnh0ZW5kZWRfZmVsaXN0LT5saW5rc3xAY291bnQgZ3QgMH0NCjx1bCBjbGFzcz0ibXhfbGlua3MiPg0KCXtmb3JlYWNoIGZyb209JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnh0ZW5kZWRfZmVsaXN0LT5saW5rcyBpdGVtPWxpbmt9DQoJPGxpPjxhIGhyZWY9InskbGluay0+dXJsfSJ7aWYgJGxpbmstPmlzX25ld193aW5kb3cgPT0gMX0gcmVsPSJleHRlcm5hbCJ7L2lmfT4NCgl7aWYgJGxpbmstPnRpdGxlIG5lICcnfXskbGluay0+dGl0bGV9e2Vsc2V9eyRsaW5rLT51cmx9ey9pZn0NCgk8L2E+PC9saT4NCgl7L2ZvcmVhY2h9DQo8L3VsPg0Key9pZn0NCg0Ke2lmICR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT54dGVuZGVkX2ZlbGlzdC0+Y2F0ZWdvcmllc3xAY291bnQgZ3QgMH0NCjx1bCBjbGFzcz0ibXhfY2F0ZWdvcmllcyI+DQoJe2ZvcmVhY2ggZnJvbT0ke3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS0+eHRlbmRlZF9mZWxpc3QtPmNhdGVnb3JpZXMgaXRlbT1vcHRpb25zIGtleT1jYXRlZ29yeX0NCgk8bGk+PHN0cm9uZz57JGNhdGVnb3J5fTwvc3Ryb25nPg0KCQk8dWw+DQoJCQl7Zm9yZWFjaCBmcm9tPSRvcHRpb25zIGl0ZW09b3B0aW9ufQ0KCQkJPGxpPnskb3B0aW9uLT5nZXRUaXRsZSgpfTwvbGk+DQoJCQl7L2ZvcmVhY2h9DQoJCTwvdWw+DQoJPC9saT4NCgl7L2ZvcmVhY2h9DQo8L3VsPg0Key9pZn0NCg0KeyogRkVBVFVSRSBESVNBQkxFRCBCWSBERUZBVUxUIChSRU1PVkUgU01BUlRZIENPTU1FTlRTIFRPIE1BS0UgSVQgV09SSyl9DQp7aWYgJHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnh0ZW5kZWRfZmVsaXN0LT5wYWdlc3xAY291bnQgZ3QgMH0NCjx1bCBjbGFzcz0ibXhfcGFnZXMiPg0KCXtmb3JlYWNoIGZyb209JHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnh0ZW5kZWRfZmVsaXN0LT5wYWdlcyBpdGVtPXBhZ2V9DQoJPGxpPntjbXNfc2VsZmxpbmsgcGFnZT0kcGFnZS0+YWxpYXN9PC9saT4NCgl7L2ZvcmVhY2h9DQo8L3VsPg0Key9pZn0NCnsqKn0NCg0KeyogRkVBVFVSRSBESVNBQkxFRCBCWSBERUZBVUxUIChSRU1PVkUgU01BUlRZIENPTU1FTlRTIFRPIE1BS0UgSVQgV09SSyl9DQp7aWYgJHt7JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpfX0tPnh0ZW5kZWRfZmVsaXN0LT5tb2R1bGVzfEBjb3VudCBndCAwfQ0KPHVsIGNsYXNzPSJteF9tb2R1bGVzIj4NCgl7Zm9yZWFjaCBmcm9tPSR7eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19LT54dGVuZGVkX2ZlbGlzdC0+bW9kdWxlcyBpdGVtPW1vZHVsZX0NCgk8bGk+PGEgaHJlZj0ie2Ntc19tb2R1bGUgbW9kdWxlPSRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKSBpdGVtX2lkPSRtb2R1bGUtPmdldElkKCkgYWN0aW9uPSJnZXR1cmwiIHVybGFjdGlvbj0iZGV0YWlsIn0iPnskbW9kdWxlLT5nZXRUaXRsZSgpfTwvYT48L2xpPg0KCXsvZm9yZWFjaH0NCjwvdWw+DQp7L2lmfQ0KeyoqfQ0KDQp7KiBGRUFUVVJFIERJU0FCTEVEIEJZIERFRkFVTFQgKFJFTU9WRSBTTUFSVFkgQ09NTUVOVFMgVE8gTUFLRSBJVCBXT1JLKX0NCntpZiAke3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS0+eHRlbmRlZF9mZWxpc3QtPnRhcmdldF9tb2R1bGVzfEBjb3VudCBndCAwfQ0KPHVsIGNsYXNzPSJteF90YXJnZXRfbW9kdWxlcyI+DQoJe2ZvcmVhY2ggZnJvbT0ke3skbW9kdWxlLT5nZXRNb2R1bGVOYW1lKCl9fS0+eHRlbmRlZF9mZWxpc3QtPnRhcmdldF9tb2R1bGVzIGl0ZW09bW9kdWxlfQ0KCTxsaT48YSBocmVmPSJ7Y21zX21vZHVsZSBtb2R1bGU9JG1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpIGl0ZW1faWQ9JG1vZHVsZS0+Z2V0SWQoKSBhY3Rpb249ImdldHVybCIgdXJsYWN0aW9uPSJkZXRhaWwifSI+eyRtb2R1bGUtPmdldFRpdGxlKCl9PC9hPjwvbGk+DQoJey9mb3JlYWNofQ0KPC91bD4NCnsvaWZ9DQp7Kip9DQoNCjwvZGl2Pg0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.direct_email.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRpdGVtLT50aXRsZX0=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.paginated.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWl0ZW19Cgk8bGk+PGEgaHJlZj0ieyRpdGVtLT5kZXRhaWxfbGlua30iPnskaXRlbS0+dGl0bGV9PC9hPjwvbGk+CnsvZm9yZWFjaH0KPC91bD4KCntpZiAkcGFnZXIuaGFzX3RvX3BhZ2luYXRlfQo8dWwgY2xhc3M9InBhZ2VyIj4KCXtpZiAkcGFnZXIucHJldmlvdXNfcGFnZX08bGkgY2xhc3M9InByZXZpb3VzIj48YSBocmVmPSJ7JHBhZ2VyLnByZXZpb3VzX3BhZ2V9Ij5QcmV2aW91cyBwYWdlPC9hPjwvbGk+ey9pZn0KCXtmb3JlYWNoIGZyb209JHBhZ2VyLnBhZ2VzIGl0ZW09cGFnZX0KCTxsaT57JHBhZ2V9PC9saT4KCXsvZm9yZWFjaH0KCXtpZiAkcGFnZXIubmV4dF9wYWdlfTxsaSBjbGFzcz0ibmV4dCI+PGEgaHJlZj0ieyRwYWdlci5uZXh0X3BhZ2V9Ij5OZXh0IHBhZ2U8L2E+PC9saT57L2lmfQo8L3VsPgp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.rss.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPD94bWwtc3R5bGVzaGVldCB0aXRsZT0iWFNMX2Zvcm1hdHRpbmciIHR5cGU9InRleHQveHNsIiBocmVmPSIvbW9kdWxlcy97eyRtb2R1bGUtPkdldE1vZHVsZU5hbWUoKX19L3Jzcy9zdHlsZS54c2wiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiID4KCTxjaGFubmVsPgoJCTx0aXRsZT57eyRtb2R1bGUtPkdldE1vZHVsZU5hbWUoKX19IFJTUyBmZWVkPC90aXRsZT4KCQk8bGluaz57JHJvb3RfdXJsfTwvbGluaz4KCQk8ZGVzY3JpcHRpb24+e3skbW9kdWxlLT5HZXRNb2R1bGVOYW1lKCl9fTwvZGVzY3JpcHRpb24+CgkJPGxhc3RCdWlsZERhdGU+eyRzbWFydHkubm93fGRhdGVfZm9ybWF0OiIlQSwgJUIgJWUsICVZIn08L2xhc3RCdWlsZERhdGU+CgkJPGxhbmd1YWdlPmVuLWVuPC9sYW5ndWFnZT4KCQl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWl0ZW19CgkJPGl0ZW0+CgkJPHRpdGxlPnskaXRlbS0+dGl0bGV9PC90aXRsZT4KCQk8bGluaz57JGl0ZW0tPmRldGFpbF9saW5rfTwvbGluaz4KCQk8Z3VpZD57JGl0ZW0tPmRldGFpbF9saW5rfTwvZ3VpZD4KCQkgPHB1YkRhdGU+eyRpdGVtLT5jcmVhdGVkX2F0fGRhdGVfZm9ybWF0OiIlYSwgJWQgJWIgJVkgJVQgR01UIn08L3B1YkRhdGU+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRBWyB7JGl0ZW0tPnN1bW1hcnl9IF1dPjwvZGVzY3JpcHRpb24+CgkJPC9pdGVtPgoJCXsvZm9yZWFjaH0JCQoJPC9jaGFubmVsPgo8L3Jzcz4=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.search.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmb3JtKX0Ke2lmICRmb3JtLT5oYXNFcnJvcnMoKX08ZGl2IHN0eWxlPSJjb2xvcjogcmVkOyI+eyRmb3JtLT5zaG93RXJyb3JzKCl9PC9kaXY+ey9pZn0KCXskZm9ybS0+Z2V0SGVhZGVycygpfQoJCgl7JGZvcm0tPnNob3dXaWRnZXRzKCc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxkaXYgY2xhc3M9InBhZ2V0ZXh0Ij4lTEFCRUwlOjwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+JUlOUFVUJSA8ZW0+JVRJUFMlPC9lbT48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiIHN0eWxlPSJjb2xvcjogcmVkOyI+JUVSUk9SUyU8L2Rpdj4KCTwvZGl2PicpfQoKCTxwPgoJCXskZm9ybS0+Z2V0QnV0dG9ucygpfQoJPC9wPgoJeyRmb3JtLT5nZXRGb290ZXJzKCl9CnsvaWZ9Cnt7Kgp7JGZvcm1fc3RhcnR9Cgl7e2ZvcmVhY2ggZnJvbT0kZmlsdGVycyBpdGVtPWZpbHRlcn19Cgk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRpZH17eyRmaWx0ZXIubmFtZX19Ij4KCXt7L2ZvcmVhY2h9fQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCBvbGQiIC8+CjwvZm9ybT4KKn19]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.tagcloud.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsIGNsYXNzPSJ0YWdjbG91ZCI+CiAgICB7Zm9yZWFjaCBmcm9tPSR0YWdzIGl0ZW09dGFnfQogICAgICAgIHtjYXB0dXJlIGFzc2lnbj12YWx1ZX0leyR0YWcudGFnfSV7L2NhcHR1cmV9CiAgICAgICAgPGxpIGNsYXNzPSJ3ZWlnaHQteyR0YWcuY2xhc3N9Ij48YSBocmVmPSJ7e2xpdGVyYWx9fXt7ey9saXRlcmFsfX17eyRtb2R1bGUtPmdldE1vZHVsZU5hbWUoKX19IGFjdGlvbj0idXJsX2ZvciIgbGltaXQ9MjAgdGFnPSR2YWx1ZX0iPnskdGFnLnRhZ308L2E+PC9saT4KICAgIHsvZm9yZWFjaH0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.user_form.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmb3JtKX0KCTxkaXYgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JGZvcm0tPnNob3dFcnJvcnMoKX08L2Rpdj4KCXskZm9ybS0+Z2V0SGVhZGVycygpfQoJeyRmb3JtLT5zaG93V2lkZ2V0cygnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8ZGl2IGNsYXNzPSJwYWdldGV4dCI+JUxBQkVMJTo8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPiVJTlBVVCU8L2Rpdj4KCTwvZGl2PicpfQoJPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE1cHg7Ij4KCQl7JGZvcm0tPmdldEJ1dHRvbnMoKX0KCTwvcD4KCXskZm9ybS0+Z2V0Rm9vdGVycygpfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/smarty/templates/templates/frontend.user_form_success.tpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRzdWNjZXNzX21lc3NhZ2V9PC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRyb3dzfEBjb3VudH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICAgIDx0aGVhZD4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0aD5Nb2R1bGVzPC90aD4KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiIgc3R5bGU9IndpZHRoOjE2cHg7Ij4mbmJzcDs8L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIiBzdHlsZT0id2lkdGg6MTZweDsiPiZuYnNwOzwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iIHN0eWxlPSJ3aWR0aDoxNnB4OyI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiIgc3R5bGU9IndpZHRoOjE2cHg7Ij4mbmJzcDs8L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIiBzdHlsZT0id2lkdGg6MTZweDsiPiZuYnNwOzwvdGg+CiAgICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAge2ZvcmVhY2ggZnJvbT0kcm93cyBpdGVtPXJvd30KICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9JzsiPgogICAgICAgICAgICA8dGQ+eyRyb3cudGl0bGV9ICg8ZW0+eyRyb3cubW9kdWxlX2ZyaWVuZGx5bmFtZX08L2VtPik8L3RkPgogICAgICAgICAgICA8dGQ+eyRyb3cucHVibGlzaH08L3RkPgogICAgICAgICAgICA8dGQ+eyRyb3cuZXhwb3J0fTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JHJvdy52aWV3fTwvdGQ+CgkJCQkJCTx0ZD57JHJvdy5lZGl0fTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JHJvdy5kZWxldGV9PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8cD57JGFkZF9pY29ufSAgeyRhZGR9PC9wPgoKe2lmIGlzc2V0KCRmb3JtKX0KCTxkaXYgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JGZvcm0tPnNob3dFcnJvcnMoKX08L2Rpdj4KCXskZm9ybS0+Z2V0SGVhZGVycygpfQoJeyRmb3JtLT5zaG93V2lkZ2V0cygnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8ZGl2IGNsYXNzPSJwYWdldGV4dCI+JUxBQkVMJTo8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPiVJTlBVVCUgPGVtPiVUSVBTJTwvZW0+PC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZWlucHV0IiBzdHlsZT0iY29sb3I6IHJlZDsiPiVFUlJPUlMlPC9kaXY+Cgk8L2Rpdj4nKX0KCXskZm9ybS0+cmVuZGVyRmllbGRzZXRzKCc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxkaXYgY2xhc3M9InBhZ2V0ZXh0Ij4lTEFCRUwlOjwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+JUlOUFVUJSA8ZW0+JVRJUFMlPC9lbT48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiIHN0eWxlPSJjb2xvcjogcmVkOyI+JUVSUk9SUyU8L2Rpdj4KCTwvZGl2PicpfQoJCXskZm9ybS0+Z2V0QnV0dG9ucygpfQoJeyRmb3JtLT5nZXRGb290ZXJzKCl9CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQp7JGlucHV0X21vZHVsZV9pZH0KPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+Cgl7JHB1Ymxpc2hfYnV0dG9ufQoJeyRzYXZlX2J1dHRvbn0KCXskY2FuY2VsX2J1dHRvbn0KPC9wPgoKeyR0YWJfaGVhZGVyc30KCgp7JHN0YXJ0X21haW5fdGFifQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cyIj4KICA8cCBjbGFzcz0icGFnZXRleHQyIj5Nb2R1bGUgbmFtZTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dDIiPnskaW5wdXRfbW9kdWxlX2ZyaWVuZGx5bmFtZX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93MiI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0MiI+VGl0bGUgbGFiZWw6PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQyIj57JGlucHV0X3RpdGxlX2xhYmVsfTwvcD4KPC9kaXY+Cgo8ZGl2IGlkPSJzdHJ1Y3R1cmUiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiA3cHg7Ij4KCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRzdHJ1Y3R1cmUtPmdldFRhYnMoKSBpdGVtPXRhYiBrZXk9dGFiX2tleX0KCQk8bGl7aWYgJGFjdGl2ZV9maWVsZHNfdGFiIGVxICR0YWJfa2V5fSBjbGFzcz0idWktdGFicy1zZWxlY3RlZCB1aS1zdGF0ZS1hY3RpdmUiey9pZn0+PGEgaHJlZj0iI3N0cnVjLXskdGFiX2tleX0iPnskdGFiLm5hbWV9PC9hPjwvbGk+CgkJey9mb3JlYWNofQoJPC91bD4KCQoJe2ZvcmVhY2ggZnJvbT0kc3RydWN0dXJlLT5nZXRUYWJzKCkgaXRlbT10YWIga2V5PXRhYl9rZXl9CgkJPGRpdiBpZD0ic3RydWMteyR0YWJfa2V5fSI+CgkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPjxidXR0b24gaWQ9InJlbW92ZS10YWIteyR0YWJfa2V5fSI+UmVtb3ZlIHRoaXMgdGFiPC9idXR0b24+PC9wPgoJCQkKCQkJPHRhYmxlIHN0eWxlPSJ3aWR0aDogMTAwJTsiIGNsYXNzPSJwYWdldGFibGUiPgoJCQk8dGhlYWQ+CgkJCQk8dGggY29sc3Bhbj0iMiI+PC90aD4KCQkJCTx0aD5MYWJlbDwvdGg+CgkJCQk8dGg+TmFtZTwvdGg+CgkJCQk8dGg+VHlwZTwvdGg+CgkJCQk8dGg+T3B0aW9uczwvdGg+CgkJCQk8dGg+Q29sdW1uPC90aD4KCQkJCTx0aD5GaWx0ZXI8L3RoPgoJCQkJPHRoPkZyb250ZW5kPC90aD4KCQkJCTx0aD48L3RoPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJCQoJCQl7Zm9yZWFjaCBmcm9tPSR0YWIuZmllbGRzZXRzIGl0ZW09ZmllbGRzZXQga2V5PWZpZWxkc2V0X2tleX0KCQkJPHRyIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhOyI+CgkJCQk8dGQgY29sc3Bhbj0iOSI+CgkJCQkJPHN0cm9uZz57JGZpZWxkc2V0Lm5hbWV9PC9zdHJvbmc+CgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRtb2R1bGVfaWR9ZmllbGRzX29yZGVyZWRbeyR0YWJfa2V5fV1beyRmaWVsZHNldF9rZXl9XSIgLz4KCQkJCTwvdGQ+CgkJCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+CgkJCQkJPHNwYW4gY2xhc3M9InJlbW92ZS1maWVsZHNldCIgbmFtZT0ne2xkZWxpbX0idGFiX2tleSI6InskdGFiX2tleX0iLCAicmVtb3ZlX2ZpZWxkc2V0IjoieyRmaWVsZHNldF9rZXl9IntyZGVsaW19Jz57JHJlbW92ZV9pY29ufTwvc3Bhbj4KCQkJCTwvdGQ+CgkJCTwvdHI+CgkJCQoJCQl7KiBGSUVMRFMgKn0KCQkJCgkJCXtpZiBpc3NldCgkZmllbGRzZXQuZmllbGRzKX0KCQkJPHRib2R5IGlkPSJzb3J0YWJsZS17JHRhYl9rZXl9LXskZmllbGRzZXRfa2V5fSI+CgkJCXtmb3JlYWNoIGZyb209JGZpZWxkc2V0LmZpZWxkcyBpdGVtPWZpZWxkfQkJCQoJCQk8dHIgbmFtZT0ieyRmaWVsZC5uYW1lfSIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3tjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9JzsiPgoJCQkJPHRkIGNvbHNwYW49IjIiPjwvdGQ+CgkJCQk8dGQ+eyRmaWVsZC5sYWJlbH08L3RkPgoJCQkJPHRkPnskZmllbGQubmFtZX08L3RkPgoJCQkJPHRkPnskZmllbGQudHlwZX08L3RkPgoJCQkJPHRkPnskZmllbGQub3B0aW9uc308L3RkPgoJCQkJPHRkPnskZmllbGQuY29sdW1ufTwvdGQ+CgkJCQk8dGQ+eyRmaWVsZC5maWx0ZXJ9PC90ZD4KCQkJCTx0ZD57JGZpZWxkLmZyb250ZW5kfTwvdGQ+CgkJCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyIgd2lkdGg9IjEwMCI+CQkJCQkKCQkJCQk8c3BhbiBjbGFzcz0iZWRpdC1maWVsZCIgbmFtZT0ne2xkZWxpbX0idGFiX2tleSI6InskdGFiX2tleX0iLCAiZmllbGRzZXRfa2V5IjoieyRmaWVsZHNldF9rZXl9IiwibGFiZWwiOiJ7JGZpZWxkLmxhYmVsfSIsIm5hbWUiOiJ7JGZpZWxkLm5hbWV9IiwidHlwZSI6InskZmllbGQudHlwZX0iLCJvcHRpb25zIjoieyRmaWVsZC5vcHRpb25zfSIsImNvbHVtbiI6InskZmllbGQuY29sdW1ufSIsImZpbHRlciI6InskZmllbGQuZmlsdGVyfSIsImZyb250ZW5kIjoieyRmaWVsZC5mcm9udGVuZH0ie3JkZWxpbX0nPnskZWRpdF9pY29ufTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0icmVtb3ZlLWZpZWxkIiBuYW1lPSd7bGRlbGltfSJ0YWJfa2V5IjoieyR0YWJfa2V5fSIsICJmaWVsZHNldF9rZXkiOiJ7JGZpZWxkc2V0X2tleX0iLCJmaWVsZCI6InskZmllbGQubmFtZX0ie3JkZWxpbX0nPnskcmVtb3ZlX2ljb259PC9zcGFuPgoJCQkJPC90ZD4KCQkJPC90cj4JCQkKCQkJey9mb3JlYWNofQkJCgkJCTwvdGJvZHk+CgkJCXsvaWZ9CgkJCQoJCQk8dHIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7Ij4KCQkJCTx0ZCBjb2xzcGFuPSI5Ij48L3RkPgoJCQkJPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPjxzcGFuIGNsYXNzPSJhZGQtZmllbGQiIG5hbWU9J3tsZGVsaW19InRhYl9rZXkiOiJ7JHRhYl9rZXl9IiwgImZpZWxkc2V0X2tleSI6InskZmllbGRzZXRfa2V5fSJ7cmRlbGltfSc+QWRkIGZpZWxkPC9zcGFuPjwvdGQ+CgkJCTwvdHI+CgkJCXsvZm9yZWFjaH0KCQkJPC90Ym9keT4KCQk8L3RhYmxlPgoJCQkJCQkJCQoJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPjxidXR0b24gY2xhc3M9ImFkZC1maWVsZHNldCIgbmFtZT0ieyR0YWJfa2V5fSI+QWRkIGEgZmllbGRzZXQ8L2J1dHRvbj48L3A+CQkJCgkJCgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CjwvZGl2PgoKPGJ1dHRvbiBpZD0iY3JlYXRlLXRhYiI+QWRkIGEgbmV3IHRhYjwvYnV0dG9uPgoKCgo8cD57KiBTUEFDRVIgKn08L3A+CgoKCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdzIiPgoJPHAgY2xhc3M9InBhZ2V0ZXh0MiI+RmlsdGVyczo8L3A+Cgk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQyIj4KCQk8ZGl2IGlkPSJmaWx0ZXJzIj4KCQkJe2ZvcmVhY2ggZnJvbT0kZmlsdGVycyBrZXk9aSBpdGVtPWZpbHRlcn0KCQkJPHAgY2xhc3M9ImZpbHRlcnNfaXRlbSI+CgkJCQk8bGFiZWwgZm9yPSJ7JG1vZHVsZV9pZH1maWx0ZXJzX3skaX1fbmFtZSI+TmFtZTo8L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InskbW9kdWxlX2lkfWZpbHRlcnNfeyRpfV9uYW1lIiBuYW1lPSJ7JG1vZHVsZV9pZH1maWx0ZXJzW3skaX1dW25hbWVdIiB2YWx1ZT0ieyRmaWx0ZXIubmFtZX0iIHNpemU9IjMwIiAvPgoJCQkJPGxhYmVsIGZvcj0ieyRtb2R1bGVfaWR9ZmlsdGVyc197JGl9X2ZpZWxkIj5GaWVsZDo8L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InskbW9kdWxlX2lkfWZpbHRlcnNfeyRpfV9maWVsZCIgbmFtZT0ieyRtb2R1bGVfaWR9ZmlsdGVyc1t7JGl9XVtmaWVsZF0iIHZhbHVlPSJ7JGZpbHRlci5maWVsZH0iIHNpemU9IjEwIiAvPgoJCQkJPGxhYmVsIGZvcj0ieyRtb2R1bGVfaWR9ZmlsdGVyc197JGl9X3R5cGUiPlR5cGU6PC9sYWJlbD4gPHNlbGVjdCBpZD0ieyRtb2R1bGVfaWR9ZmlsdGVyc197JGl9X3R5cGUiIG5hbWU9InskbW9kdWxlX2lkfWZpbHRlcnNbeyRpfV1bdHlwZV0iPgoJCQkJCXtmb3JlYWNoIGZyb209JGZpbHRlcl90eXBlcyBpdGVtPWZpbHRlcl90eXBlfQoJCQkJCTxvcHRpb24gdmFsdWU9InskZmlsdGVyX3R5cGUudHlwZX0iIHtpZiAkZmlsdGVyLnR5cGUgPT0gJGZpbHRlcl90eXBlLnR5cGV9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskZmlsdGVyX3R5cGUubGFiZWx9PC9vcHRpb24+CgkJCQkJey9mb3JlYWNofQoJCQkJPC9zZWxlY3Q+CgkJCQk8YSBocmVmPSIjIiBjbGFzcz0iZmlsdGVyX3JlbW92ZSI+UmVtb3ZlIGZpbHRlcjwvYT4KCQkJPC9wPgoJCQl7L2ZvcmVhY2h9CgkJPC9kaXY+CgkJPHA+PGJ1dHRvbiBpZD0iZmlsdGVyX2FkZCI+QWRkIGZpbHRlcjwvYnV0dG9uPjwvcD4KCTwvZGl2Pgo8L2Rpdj4KCgp7JGVuZF90YWJ9Cgp7JHN0YXJ0X2FjdGlvbnNfdGFifQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cyIj4KCQk8cCBjbGFzcz0icGFnZXRleHQyIj5TcGVjaWZpYyBtb2R1bGUgYWN0aW9uczwvcD4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQyIj4KCQkJCTx0YWJsZSBzdHlsZT0id2lkdGg6IDEwMCU7IiBjbGFzcz0icGFnZXRhYmxlIj4KCQkJCQk8dGhlYWQ+CgkJCQkJCTx0aD5OYW1lPC90aD4KCQkJCQkJPHRoPklzIGEgcHVibGljIGFjdGlvbjwvdGg+CgkJCQkJCTx0aD48L3RoPgoJCQkJCTwvdGhlYWQ+CgkJCQkJPHRib2R5IGlkPSJhY3Rpb25zIj4KCQkJCQkJe2ZvcmVhY2ggZnJvbT0kYWN0aW9ucyBpdGVtPWFjdGlvbn0KCQkJCQkJPHRyPgoJCQkJCQkJPHRkPnskYWN0aW9uLT5uYW1lfTwvdGQ+CgkJCQkJCQk8dGQ+eyRhY3Rpb24tPmlzX3B1YmxpY19pY29ufTwvdGQ+CgkJCQkJCQk8dGQ+eyRhY3Rpb24tPmVkaXRfdXJsfSB7JGFjdGlvbi0+ZGVsZXRlX3VybH08L3RkPgoJCQkJCQk8L3RyPgoJCQkJCQl7L2ZvcmVhY2h9CgkJCQkJPC90Ym9keT4KCQkJCTwvdGFibGU+CgkJCTxwPjxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJhY3Rpb25fYWRkIiB2YWx1ZT0iQWRkIGFjdGlvbiIgb25DbGljaz0icmV0dXJuIHBhcmVudC5sb2NhdGlvbj0neyRhZGRfYWN0aW9uX3VybH0nIiAvPjwvcD4KCQk8L2Rpdj4KPC9kaXY+CnskZW5kX3RhYn0KCnskc3RhcnRfbG9naWNfdGFifQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cyIj4KCTxwIGNsYXNzPSJwYWdldGV4dDIiPlNwZWNpZmljIG1vZHVsZSBvYmplY3QgbG9naWMgKGV4dGVuZHMgdGhlIG1vZHVsZSBpdGVtIGNsYXNzKTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0MiI+eyRtb2R1bGVfbG9naWN9PC9wPgo8L2Rpdj4KeyRlbmRfdGFifQoKeyRzdGFydF9vcHRpb25zX3RhYn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93MiI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0MiI+UGFyZW50IG1vZHVsZTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dDIiPnskaW5wdXRfbW9kdWxlX3BhcmVudH08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93MiI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0MiI+QWRtaW4gc2VjdGlvbjo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dDIiPnskaW5wdXRfYWRtaW5fc2VjdGlvbn08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93MiI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0MiI+U2hvdyBtb2R1bGU6PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQyIj57JGlucHV0X3Nob3dfbW9kdWxlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdzIiPgogIDxwIGNsYXNzPSJwYWdldGV4dDIiPklzIHVzZXIgbW9kdWxlOjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0MiI+eyRpbnB1dF9pc191c2VyX21vZHVsZX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93MiI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0MiI+UHJvdGVjdCBmaWxlczo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dDIiPnskaW5wdXRfaXNfcHJvdGVjdGVkfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cyIj4KICA8cCBjbGFzcz0icGFnZXRleHQyIj5GaWxlIHN0b3JhZ2UgcGF0aCAoc2VydmVyIHBhdGgpOjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0MiI+eyRpbnB1dF9maWxlc19wYXRofTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cyIj4KCQk8cCBjbGFzcz0icGFnZXRleHQyIj5SZXN0b3JlIG1vZHVsZSB0ZW1wbGF0ZXM8L3A+CgkJPGRpdiBjbGFzcz0icGFnZWlucHV0MiI+CgkJCTxwPjxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJ0ZW1wbGF0ZXNfcmVzdG9yZSIgdmFsdWU9IlJlc3RvcmUgdGVtcGxhdGVzIiBvbkNsaWNrPSJyZXR1cm4gcGFyZW50LmxvY2F0aW9uPSd7JHRlbXBsYXRlc19yZXN0b3JlX3VybH0nIiAvPjwvcD4KCQk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdzIiPgoJPHAgY2xhc3M9InBhZ2V0ZXh0MiI+Q3JlYXRlZCBieTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0MiI+eyRjcmVhdGVkX2J5fSBvbiB7JGNyZWF0ZWRfYXR9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdzIiPgoJPHAgY2xhc3M9InBhZ2V0ZXh0MiI+TGFzdCB1cGRhdGVkIGJ5OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQyIj57JHVwZGF0ZWRfYnl9IG9uIHskdXBkYXRlZF9hdH08L3A+CjwvZGl2Pgp7JGVuZF90YWJ9Cgp7JHRhYl9mb290ZXJzfQoKPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+Cgl7JHB1Ymxpc2hfYnV0dG9ufQoJeyRzYXZlX2J1dHRvbn0KCXskY2FuY2VsX2J1dHRvbn0KPC9wPgoKPC9mb3JtPgoKeyogTU9EQUwgQk9YRVMgKn0KPGRpdiBpZD0idGFiLWZvcm0iIHRpdGxlPSJDcmVhdGUgYSBuZXcgdGFiIj4KCXtpZiBpc3NldCgkdGFiX2Zvcm0pfQoJCXskdGFiX2Zvcm0tPnJlbmRlcigpfQoJey9pZn0KPC9kaXY+Cgo8ZGl2IGlkPSJhZGQtZmllbGRzZXQtZm9ybSIgdGl0bGU9IkNyZWF0ZSBhIG5ldyBmaWVsZHNldCI+Cgl7aWYgaXNzZXQoJGZpZWxkc2V0X2Zvcm0pfQoJCXskZmllbGRzZXRfZm9ybS0+cmVuZGVyKCl9Cgl7L2lmfQo8L2Rpdj4KCjxkaXYgaWQ9InJlbW92ZS1maWVsZHNldC1mb3JtIiB0aXRsZT0iUmVtb3ZlIGZpZWxkc2V0Ij4KCQk8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZHNldD8gVGhpcyB3aWxsIGFsc28gcmVtb3ZlIGFsbCB0aGUgZmllbGRzIG9mIHRoaXMgZmllbGRzZXQuPC9wPgoJe2lmIGlzc2V0KCRyZW1vdmVfZmllbGRzZXRfZm9ybSl9CgkJeyRyZW1vdmVfZmllbGRzZXRfZm9ybS0+cmVuZGVyKCl9Cgl7L2lmfQo8L2Rpdj4KCjxkaXYgaWQ9ImFkZC1maWVsZC1mb3JtIiB0aXRsZT0iQWRkIGZpZWxkIj4KCXtpZiBpc3NldCgkYWRkX2ZpZWxkX2Zvcm0pfQoJCXskYWRkX2ZpZWxkX2Zvcm0tPnJlbmRlcigpfQoJey9pZn0KPC9kaXY+Cgo8ZGl2IGlkPSJyZW1vdmUtZmllbGQtZm9ybSIgdGl0bGU9IlJlbW92ZSBmaWVsZCI+Cgk8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZmllbGQ/PC9wPgoJe2lmIGlzc2V0KCRyZW1vdmVfZmllbGRfZm9ybSl9CgkJeyRyZW1vdmVfZmllbGRfZm9ybS0+cmVuZGVyKCl9Cgl7L2lmfQo8L2Rpdj4KCgp7Zm9yZWFjaCBmcm9tPSRzdHJ1Y3R1cmUtPmdldFRhYnMoKSBpdGVtPXRhYiBrZXk9dGFiX2tleX0KCjxkaXYgaWQ9InJlbW92ZS10YWItbWVzc2FnZS17JHRhYl9rZXl9IiB0aXRsZT0nUmVtb3ZlIHRhYiAieyR0YWIubmFtZX0iJz4KCTxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHRhYiAieyR0YWIubmFtZX0iPyBUaGlzIHdpbGwgYWxzbyByZW1vdmUgYWxsIHRoZSBmaWVsZHNldHMgYW5kIGZpZWxkcy48L3A+Cgl7aWYgaXNzZXQoJHRhYl9yZW1vdmVfZm9ybSl9CgkJe2lmICR0YWJfcmVtb3ZlX2Zvcm0tPmhhc0Vycm9ycygpfTxkaXYgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JHRhYl9yZW1vdmVfZm9ybS0+c2hvd0Vycm9ycygpfTwvZGl2PnsvaWZ9CgkJeyR0YWJfcmVtb3ZlX2Zvcm0tPmdldEhlYWRlcnMoKX0KCQoJCXskdGFiX3JlbW92ZV9mb3JtLT5zaG93V2lkZ2V0cygnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPGRpdiBjbGFzcz0icGFnZXRleHQiPiVMQUJFTCU6PC9kaXY+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+JUlOUFVUJSA8ZW0+JVRJUFMlPC9lbT48L2Rpdj4KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0IiBzdHlsZT0iY29sb3I6IHJlZDsiPiVFUlJPUlMlPC9kaXY+CgkJPC9kaXY+JywgJ3RydWUnKX0KCQl7JHRhYl9yZW1vdmVfZm9ybS0+Z2V0Rm9vdGVycygpfQoJey9pZn0KPC9kaXY+Cgp7L2ZvcmVhY2h9CgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoKICAKCXZhciBvcHRpb25zX2RlZmF1bHQgPSBuZXcgT2JqZWN0KCk7Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZF90eXBlcyBpdGVtPWZpZWxkX3R5cGV9b3B0aW9uc19kZWZhdWx0Wyd7JGZpZWxkX3R5cGUudHlwZX0nXSA9ICd7aWYgaXNzZXQoJGZpZWxkX3R5cGUub3B0aW9uc19kZWZhdWx0KX17JGZpZWxkX3R5cGUub3B0aW9uc19kZWZhdWx0fXsvaWZ9Jzt7L2ZvcmVhY2h9CiAgLy9jb25zb2xlLmxvZyhvcHRpb25zX2RlZmF1bHQpOwogIHtsaXRlcmFsfQogIChmdW5jdGlvbigkKSB7CgkJJCggIiNzdHJ1Y3R1cmUiICkudGFicygpOwoJCSQoIiN0YWItZm9ybSIpLmRpYWxvZyh7CgkJCWF1dG9PcGVuOiBmYWxzZSwKCQkJaGVpZ2h0OiAxNTAsCgkJCXdpZHRoOiAzNTAsCgkJCW1vZGFsOiB0cnVlLAoJCQlidXR0b25zOiB7CgkJCQkiQ3JlYXRlIHRhYiI6IGZ1bmN0aW9uKCl7CgkJCQkJJCgiI3RhYi1mb3JtID4gZm9ybSIpLnN1Ym1pdCgpOwoJCQkJfSwKCQkJCUNhbmNlbDogZnVuY3Rpb24oKXsKCQkJCQkkKHRoaXMpLmRpYWxvZygiY2xvc2UiKTsKCQkJCX0KCQkJfQoJCX0pOwoJCQoJCSQoIiNjcmVhdGUtdGFiIikKCQkJLmJ1dHRvbigpCgkJCS5jbGljayhmdW5jdGlvbigpewoJCQkJJCgiI3RhYi1mb3JtIikuZGlhbG9nKCJvcGVuIik7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0pOwoJCXsvbGl0ZXJhbH0KCQl7Zm9yZWFjaCBmcm9tPSRzdHJ1Y3R1cmUtPmdldFRhYnMoKSBpdGVtPXRhYiBrZXk9dGFiX2tleX0KCQkKCQkJJCgiI3JlbW92ZS10YWItbWVzc2FnZS17JHRhYl9rZXl9IikuZGlhbG9nKAoJCQkJe2xpdGVyYWx9CgkJCQl7CgkJCQkJYXV0b09wZW46IGZhbHNlLAoJCQkJCW1vZGFsOiB0cnVlLAoJCQkJCWJ1dHRvbnM6IHsKCQkJCQkJIlJlbW92ZSI6IGZ1bmN0aW9uKCl7CgkJCQkJCQkkKCIjcmVtb3ZlLXRhYi1tZXNzYWdlLXsvbGl0ZXJhbH17JHRhYl9rZXl9e2xpdGVyYWx9ID4gZm9ybSA+IGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1yZW1vdmVfdGFiJ10iKS52YWwoJ3svbGl0ZXJhbH17JHRhYl9rZXl9e2xpdGVyYWx9Jyk7CgkJCQkJCQkkKCIjcmVtb3ZlLXRhYi1tZXNzYWdlLXsvbGl0ZXJhbH17JHRhYl9rZXl9e2xpdGVyYWx9ID4gZm9ybSIpLnN1Ym1pdCgpOwoJCQkJCQl9LAoJCQkJCQlDYW5jZWw6IGZ1bmN0aW9uKCl7CgkJCQkJCQkkKHRoaXMpLmRpYWxvZygiY2xvc2UiKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXsvbGl0ZXJhbH0KCQkJKTsKCQkKCQkJJCgiI3JlbW92ZS10YWIteyR0YWJfa2V5fSIpCgkJCQkuYnV0dG9uKCkKCQkJCS5jbGljayhmdW5jdGlvbigpe2xkZWxpbX0KCQkJCQkkKCIjcmVtb3ZlLXRhYi1tZXNzYWdlLXskdGFiX2tleX0iKS5kaWFsb2coIm9wZW4iKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl7cmRlbGltfSk7CQkKCQkJCgkJCXtmb3JlYWNoIGZyb209JHRhYi5maWVsZHNldHMgaXRlbT1maWVsZHNldCBrZXk9ZmllbGRzZXRfa2V5fQoJCQkKCQkJCSQoICIjc29ydGFibGUteyR0YWJfa2V5fS17JGZpZWxkc2V0X2tleX0iICkuc29ydGFibGUoe2xkZWxpbX0KCQkJCXBsYWNlaG9sZGVyOiAidWktc3RhdGUtaGlnaGxpZ2h0IiwKCQkJCXVwZGF0ZTogZnVuY3Rpb24oZXZlbnQsdWkpe2xkZWxpbX0KCQkJCQl2YXIgcmVvcmRlcmVkX2ZpZWxkcyA9IFtdCgkJCQkJJCh0aGlzKS5maW5kKCd0cicpLmVhY2goZnVuY3Rpb24oKXtsZGVsaW19CgkJCQkJCXJlb3JkZXJlZF9maWVsZHMucHVzaCgkKHRoaXMpLmF0dHIoJ25hbWUnKSkKCQkJCQkJLy9jb25zb2xlLmxvZygpOwoJCQkJCXtyZGVsaW19KTsKCQkJCQkvLyBjb25zb2xlLmxvZyhyZW9yZGVyZWRfZmllbGRzKTsKCQkJCQkkKCJpbnB1dFtuYW1lPSd7JG1vZHVsZV9pZH1maWVsZHNfb3JkZXJlZFt7JHRhYl9rZXl9XVt7JGZpZWxkc2V0X2tleX1dJ10iKS52YWwocmVvcmRlcmVkX2ZpZWxkcyk7CgkJCQkJLy8geyRtb2R1bGVfaWR9ZmllbGRzX29yZGVyW3skdGFiX2tleX1dW3skZmllbGRzZXRfa2V5fV0KCQkJCQkvLyBjb25zb2xlLmxvZyhyZW9yZGVyZWRfZmllbGRzKTsKCQkJCQkvLyBjb25zb2xlLmxvZygkKHRoaXMpLmZpbmQoJ3RyJykuYXR0cignaWQnKSk7CgkJCQl7cmRlbGltfQoJCQkJe3JkZWxpbX0pOwoJCQkJJCggIiNzb3J0YWJsZS17JHRhYl9rZXl9LXskZmllbGRzZXRfa2V5fSIgKS5kaXNhYmxlU2VsZWN0aW9uKCk7CgkJCQoJCQl7L2ZvcmVhY2h9CgoJCXsvZm9yZWFjaH0KCQl7bGl0ZXJhbH0KCQkKCQkkKCIuYWRkLWZpZWxkc2V0IikKCQkJLmJ1dHRvbigpCgkJCS5jbGljayhmdW5jdGlvbigpewoJCQkJCXZhciB0YWJfa2V5ID0gJCh0aGlzKS5hdHRyKCJuYW1lIik7CgkJCQkJJCgiI2FkZC1maWVsZHNldC1mb3JtID4gZm9ybSA+IGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH10YWJfa2V5J10iKQoJCQkJCQkJCS52YWwodGFiX2tleSk7CgkJCQkJJCgiI2FkZC1maWVsZHNldC1mb3JtIikuZGlhbG9nKCJvcGVuIik7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQl9KTsKCQkJCgkJJCgiI2FkZC1maWVsZHNldC1mb3JtIikuZGlhbG9nKAoJCQkJewoJCQkJCWF1dG9PcGVuOiBmYWxzZSwKCQkJCQltb2RhbDogdHJ1ZSwKCQkJCQlidXR0b25zOiB7CgkJCQkJCSJDcmVhdGUgZmllbGRzZXQiOiBmdW5jdGlvbigpewkJCQkJCQkKCQkJCQkJCSQoIiNhZGQtZmllbGRzZXQtZm9ybSA+IGZvcm0iKS5zdWJtaXQoKTsKCQkJCQkJfSwKCQkJCQkJQ2FuY2VsOiBmdW5jdGlvbigpewoJCQkJCQkJJCh0aGlzKS5kaWFsb2coImNsb3NlIik7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCSk7CQoJCQkKCQkkKCIucmVtb3ZlLWZpZWxkc2V0IikKCQkJLmJ1dHRvbigpCgkJCS5jbGljayhmdW5jdGlvbigpewoJCQkJdmFyIG9wdGlvbnMgPSAkLnBhcnNlSlNPTigkKHRoaXMpLmF0dHIoIm5hbWUiKSk7CgkJCQkkKCIjcmVtb3ZlLWZpZWxkc2V0LWZvcm0gPiBmb3JtID4gaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXRhYl9rZXknXSIpCgkJCQkJLnZhbChvcHRpb25zLnRhYl9rZXkpOwoJCQkJJCgiI3JlbW92ZS1maWVsZHNldC1mb3JtID4gZm9ybSA+IGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1yZW1vdmVfZmllbGRzZXQnXSIpCgkJCQkJLnZhbChvcHRpb25zLnJlbW92ZV9maWVsZHNldCk7CgkJCQkkKCIjcmVtb3ZlLWZpZWxkc2V0LWZvcm0iKS5kaWFsb2coIm9wZW4iKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfSk7CgkJCgkJCQkJCgkJJCgiI3JlbW92ZS1maWVsZHNldC1mb3JtIikuZGlhbG9nKAoJCQkJewoJCQkJCWF1dG9PcGVuOiBmYWxzZSwKCQkJCQltb2RhbDogdHJ1ZSwKCQkJCQlidXR0b25zOiB7CgkJCQkJCSJEZWxldGUgZmllbGRzZXQiOiBmdW5jdGlvbigpewkJCQkJCQkKCQkJCQkJCSQoIiNyZW1vdmUtZmllbGRzZXQtZm9ybSA+IGZvcm0iKS5zdWJtaXQoKTsKCQkJCQkJfSwKCQkJCQkJQ2FuY2VsOiBmdW5jdGlvbigpewoJCQkJCQkJJCh0aGlzKS5kaWFsb2coImNsb3NlIik7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCSk7CQoJCQkKCQkkKCIuZWRpdC1maWVsZCIpCgkJCS5idXR0b24oKQoJCQkuY2xpY2soZnVuY3Rpb24oKXsKCQkJCXZhciBvcHRpb25zID0gJC5wYXJzZUpTT04oJCh0aGlzKS5hdHRyKCJuYW1lIikpOwoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dGFiX2tleSddIikKCQkJCQkudmFsKG9wdGlvbnMudGFiX2tleSk7CgkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1maWVsZHNldF9rZXknXSIpCgkJCQkJLnZhbChvcHRpb25zLmZpZWxkc2V0X2tleSk7CgkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1sYWJlbCddIikKCQkJCQkudmFsKG9wdGlvbnMubGFiZWwpOwoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9bmFtZSddIikKCQkJCQkudmFsKG9wdGlvbnMubmFtZSk7CgkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dHlwZSddIikKCQkJCSAJLnZhbChvcHRpb25zLnR5cGUpOyAvLy5hdHRyKCJkaXNhYmxlZCIsICJkaXNhYmxlZCIpOwoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXR5cGVfc2VsZWN0J10iKQoJCQkJIAkudmFsKG9wdGlvbnMudHlwZSkuYXR0cigiZGlzYWJsZWQiLCAiZGlzYWJsZWQiKTsKCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1vcHRpb25zJ10iKQoJCQkJCS52YWwob3B0aW9ucy5vcHRpb25zKTsKCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1wbGFjZSddIikKCQkJCSAJLnZhbChvcHRpb25zLnRhYl9rZXkrJy0tLScrb3B0aW9ucy5maWVsZHNldF9rZXkpCgkJCQkJLmNoYW5nZShmdW5jdGlvbigpewoJCQkJCQkJIAl2YXIgbmV3X3BsYWNlID0gJCh0aGlzKS52YWwoKS5zcGxpdCgnLS0tJyk7CgkJCQkJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dGFiX2tleSddIikKCQkJCQkJCQkJLnZhbChuZXdfcGxhY2VbMF0pOwoJCQkJCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfWZpZWxkc2V0X2tleSddIikKCQkJCQkJCQkJLnZhbChuZXdfcGxhY2VbMV0pOwoJCQkJCQkJCQkJfSk7CQkJCQoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXBsYWNlJ10iKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpOwoJCQkJaWYob3B0aW9ucy5jb2x1bW4gPT0gMSkKCQkJCXsJCgkJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfWNvbHVtbiddIikKCQkJCQkuYXR0cignY2hlY2tlZCcsJ2NoZWNrZWQnKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9Y29sdW1uJ10iKQoJCQkJCS5yZW1vdmVBdHRyKCJjaGVja2VkIik7CgkJCQl9CgkJCQlpZihvcHRpb25zLmZpbHRlciA9PSAxKQoJCQkJewkKCQkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9ZmlsdGVyJ10iKQoJCQkJCS5hdHRyKCdjaGVja2VkJywnY2hlY2tlZCcpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1maWx0ZXInXSIpCgkJCQkJLnJlbW92ZUF0dHIoImNoZWNrZWQiKTsKCQkJCX0KCQkJCWlmKG9wdGlvbnMuZnJvbnRlbmQgPT0gMSkKCQkJCXsJCgkJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfWZyb250ZW5kJ10iKQoJCQkJCS5hdHRyKCdjaGVja2VkJywnY2hlY2tlZCcpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1mcm9udGVuZCddIikKCQkJCQkucmVtb3ZlQXR0cigiY2hlY2tlZCIpOwoJCQkJfQkKCQkJCQkKCQkJCQkkKCIjYWRkLWZpZWxkLWZvcm0iKS5kaWFsb2coeyB0aXRsZTogJ0VkaXQgZmllbGQgWycrb3B0aW9ucy5uYW1lKyddJywgYnV0dG9uczogewoJCQkJCQkiRWRpdCI6IGZ1bmN0aW9uKCl7CgkJCQkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIikuc3VibWl0KCk7CgkJCQkJCX0sCgkJCQkJCUNhbmNlbDogZnVuY3Rpb24oKXsKCQkJCQkJCSQodGhpcykuZGlhbG9nKCJjbG9zZSIpOwoJCQkJCQl9CgkJCQkJfX0pOwkKCQkJCSQoIiNhZGQtZmllbGQtZm9ybSIpLmRpYWxvZygib3BlbiIpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9KTsKCQkJCgkJJCgiLmFkZC1maWVsZCIpCgkJCS5idXR0b24oKQoJCQkuY2xpY2soZnVuY3Rpb24oKXsKCQkJCXZhciBvcHRpb25zID0gJC5wYXJzZUpTT04oJCh0aGlzKS5hdHRyKCJuYW1lIikpOwoJCQkJLy8gQ2xlYW5pbmcgZm9ybQoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSAgaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfWxhYmVsJ10iKS52YWwoJycpOwoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSAgaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfW5hbWUnXSIpLnZhbCgnJyk7CgkJCQkgLy8gdmFyIHNlbGVjdCA9ICQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gIGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH10eXBlJ10iKTsKCQkJCSAvLyAJCQkJIAkJCQlzZWxlY3QudmFsKCQoJ29wdGlvbnM6Zmlyc3QnLHNlbGVjdCkudmFsKCkpOwoJCQkJCgkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dHlwZV9zZWxlY3QnXSIpCgkJCQkJLmZpbmQoJ29wdGlvbjpmaXJzdCcpLmF0dHIoJ3NlbGVjdGVkJywgJ3NlbGVjdGVkJykucGFyZW50KCdzZWxlY3QnKTsKCQkJICAkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dHlwZV9zZWxlY3QnXSIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7CgoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSAgW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH10eXBlJ10iKQoJCQkJICAudmFsKCQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH10eXBlX3NlbGVjdCddIikudmFsKCkpOwoJCQkJCgkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9b3B0aW9ucyddIikKCQkJCQkudmFsKCcnKTsKCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfWNvbHVtbiddIikKCQkJCQkucmVtb3ZlQXR0cigiY2hlY2tlZCIpOwoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9ZmlsdGVyJ10iKQoJCQkJLnJlbW92ZUF0dHIoImNoZWNrZWQiKTsKCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfWZyb250ZW5kJ10iKQoJCQkJLnJlbW92ZUF0dHIoImNoZWNrZWQiKTsKCQkJCQoJCQkJCQoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSA+IGlucHV0W25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH10YWJfa2V5J10iKQoJCQkJCS52YWwob3B0aW9ucy50YWJfa2V5KTsKCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gPiBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9ZmllbGRzZXRfa2V5J10iKQoJCQkJCS52YWwob3B0aW9ucy5maWVsZHNldF9rZXkpOwoJCQkJCQoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXBsYWNlJ10iKQoJCQkJIAkudmFsKG9wdGlvbnMudGFiX2tleSsnLS0tJytvcHRpb25zLmZpZWxkc2V0X2tleSkuYXR0cigiZGlzYWJsZWQiLCAiZGlzYWJsZWQiKTsKCiAgCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gW25hbWU9J3svbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH10eXBlX3NlbGVjdCddIikKICAJCQkJCS5maW5kKCdvcHRpb246Zmlyc3QnKS5hdHRyKCdzZWxlY3RlZCcsICdzZWxlY3RlZCcpLnBhcmVudCgnc2VsZWN0Jyk7CiAgCQkJICAkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dHlwZV9zZWxlY3QnXSIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7CgogIAkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtICBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXR5cGUnXSIpCiAgCQkJCSAgLnZhbCgkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9dHlwZV9zZWxlY3QnXSIpLnZhbCgpKTsKCgoJCQkJJCgiI2FkZC1maWVsZC1mb3JtID4gZm9ybSBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXR5cGVfc2VsZWN0J10iKQoJCQkJCS5jaGFuZ2UoZnVuY3Rpb24oKXsKICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJCh0aGlzKS52YWwoKSk7CiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKG9wdGlvbnNfZGVmYXVsdFskKHRoaXMpLnZhbCgpXSk7CgkJCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0gIFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9b3B0aW9ucyddIikKCQkJCQkJLnZhbChvcHRpb25zX2RlZmF1bHRbJCh0aGlzKS52YWwoKV0pOwoJCQkJCQkkKCIjYWRkLWZpZWxkLWZvcm0gPiBmb3JtICBbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXR5cGUnXSIpCgkJCQkJCS52YWwoJCh0aGlzKS52YWwoKSk7CgkJCQkJfSk7CgkJCQkJCQoJCQkJJCgiI2FkZC1maWVsZC1mb3JtIikuZGlhbG9nKHsgdGl0bGU6ICJBZGQgZmllbGQiLCBidXR0b25zOiB7CgkJCQkJCSJBZGQiOiBmdW5jdGlvbigpewoJCQkJCQkJLy9jb25zb2xlLmxvZygkKHRoaXMpLmNoaWxkcmVuKCJmb3JtID4gaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXR5cGUnXSIpKTsJCQkJCgkJCQkJCQkJCQkKCQkJCQkJCSQoIiNhZGQtZmllbGQtZm9ybSA+IGZvcm0iKS5zdWJtaXQoKTsKCQkJCQkJfSwKCQkJCQkJQ2FuY2VsOiBmdW5jdGlvbigpewoJCQkJCQkJJCh0aGlzKS5kaWFsb2coImNsb3NlIik7CgkJCQkJCX0KCQkJCQl9fSk7CQkJCgkJCQkkKCIjYWRkLWZpZWxkLWZvcm0iKS5kaWFsb2coIm9wZW4iKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfSk7CgkJCQoJCQkkKCIjYWRkLWZpZWxkLWZvcm0iKS5kaWFsb2coCgkJCQl7CgkJCQkJYXV0b09wZW46IGZhbHNlLAoJCQkJCW1vZGFsOiB0cnVlLAoJCQkJCXdpZHRoOiAzNTAKCQkJCX0KCQkJKTsJCgkJCQoJCQkkKCIjcmVtb3ZlLWZpZWxkLWZvcm0iKS5kaWFsb2coCgkJCQl7CgkJCQkJYXV0b09wZW46IGZhbHNlLAoJCQkJCW1vZGFsOiB0cnVlLAoJCQkJCWJ1dHRvbnM6IHsKCQkJCQkJIkRlbGV0ZSBmaWVsZCI6IGZ1bmN0aW9uKCl7CQkJCQkJCQoJCQkJCQkJJCgiI3JlbW92ZS1maWVsZC1mb3JtID4gZm9ybSIpLnN1Ym1pdCgpOwoJCQkJCQl9LAoJCQkJCQlDYW5jZWw6IGZ1bmN0aW9uKCl7CgkJCQkJCQkkKHRoaXMpLmRpYWxvZygiY2xvc2UiKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJKTsKCQkJCgkJCSQoIi5yZW1vdmUtZmllbGQiKQoJCQkuYnV0dG9uKCkKCQkJLmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQl2YXIgb3B0aW9ucyA9ICQucGFyc2VKU09OKCQodGhpcykuYXR0cigibmFtZSIpKTsKCQkJCSQoIiNyZW1vdmUtZmllbGQtZm9ybSA+IGZvcm0gaW5wdXRbbmFtZT0ney9saXRlcmFsfXskbW9kdWxlX2lkfXtsaXRlcmFsfXRhYl9rZXknXSIpCgkJCQkJLnZhbChvcHRpb25zLnRhYl9rZXkpOwoJCQkJJCgiI3JlbW92ZS1maWVsZC1mb3JtID4gZm9ybSBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9ZmllbGRzZXRfa2V5J10iKQoJCQkJCS52YWwob3B0aW9ucy5maWVsZHNldF9rZXkpOwoJCQkJJCgiI3JlbW92ZS1maWVsZC1mb3JtID4gZm9ybSBpbnB1dFtuYW1lPSd7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9ZmllbGQnXSIpCgkJCQkJLnZhbChvcHRpb25zLmZpZWxkKTsKCQkJCSQoIiNyZW1vdmUtZmllbGQtZm9ybSIpLmRpYWxvZygib3BlbiIpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9KTsJCQogIHsvbGl0ZXJhbH0KCgl2YXIgcHJlZml4ID0gInskbW9kdWxlX2lkfSI7Cgl2YXIgb3B0aW9ucyA9ICd7Zm9yZWFjaCBmcm9tPSRmaWVsZF90eXBlcyBpdGVtPWZpZWxkX3R5cGV9PG9wdGlvbiB2YWx1ZT0ieyRmaWVsZF90eXBlLnR5cGV9Ij57JGZpZWxkX3R5cGUubGFiZWx9PC9vcHRpb24+ey9mb3JlYWNofSc7Cgl2YXIgZmllbGRfdHlwZXNfd2l0aF9vcHRpb25zID0gW3tmb3JlYWNoIG5hbWU9dHlwZXMgZnJvbT0kZmllbGRfdHlwZXNfd2l0aF9vcHRpb25zIGl0ZW09ZmllbGRfdHlwZX0ieyRmaWVsZF90eXBlfSJ7aWYgISRzbWFydHkuZm9yZWFjaC50eXBlcy5sYXN0fSwgey9pZn17L2ZvcmVhY2h9XTsKCXZhciBvcHRpb25zX2RlZmF1bHQgPSBbXTsKCXtmb3JlYWNoIGZyb209JGZpZWxkX3R5cGVzIGl0ZW09ZmllbGRfdHlwZX0KCW9wdGlvbnNfZGVmYXVsdFsneyRmaWVsZF90eXBlLnR5cGV9J10gPSAne2lmIGlzc2V0KCRmaWVsZF90eXBlLm9wdGlvbnNfZGVmYXVsdCl9eyRmaWVsZF90eXBlLm9wdGlvbnNfZGVmYXVsdH17L2lmfSc7Cgl7L2ZvcmVhY2h9Cgl7bGl0ZXJhbH0KCSQoJyNmaWVsZHMgYS5maWVsZF9yZW1vdmUnKS5jbGljayhmdW5jdGlvbigpIHsKCQkkKHRoaXMpLnBhcmVudHMoJ2Zvcm0nKS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrcHJlZml4KydkZWxldGVfZmllbGRzW10iIHZhbHVlPSInICsgJCh0aGlzKS5wYXJlbnRzKCJ0cjpmaXJzdCIpLmZpbmQoJy5maWVsZF9uYW1lJykudmFsKCkgKyAnIiAvPicpOwoJCSQodGhpcykucGFyZW50cygidHI6Zmlyc3QiKS5yZW1vdmUoKTsKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKCXZhciBpID0gJCgiI2ZpZWxkcyB0ciIpLmxlbmd0aDsKCSQoIiNmaWVsZF9hZGQiKS5jbGljayhmdW5jdGlvbigpIHsKCQkkKCc8dHI+PHRkIHdpZHRoPSIzMiIgY29sc3Bhbj0iMiI+PC90ZD48dGQ+PCEtLTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iJytwcmVmaXgrJ2V4dHJhX2ZpZWxkc1snK2krJ11bbGFiZWxdIiBuYW1lPSInK3ByZWZpeCsnZXh0cmFfZmllbGRzWycraSsnXVtsYWJlbF0iIHNpemU9IjMwIiAvPi0tPjwvdGQ+PHRkIHdpZHRoPSIzMDAiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrcHJlZml4KydleHRyYV9maWVsZHNbJytpKyddW25ld10iIHZhbHVlPSIxIiAvPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iJytwcmVmaXgrJ2V4dHJhX2ZpZWxkc1snK2krJ11bbmFtZV0iIG5hbWU9IicrcHJlZml4KydleHRyYV9maWVsZHNbJytpKyddW25hbWVdIiBzaXplPSIzMCIgLz48L3RkPjx0ZD48c2VsZWN0IGlkPSInK3ByZWZpeCsnZXh0cmFfZmllbGRzWycraSsnXVt0eXBlXSIgbmFtZT0iJytwcmVmaXgrJ2V4dHJhX2ZpZWxkc1snK2krJ11bdHlwZV0iIGNsYXNzPSJmaWVsZF90eXBlIj4nICsgb3B0aW9ucyArICc8L3NlbGVjdD48L3RkPjx0ZD48c3BhbiBjbGFzcz0iZmllbGRfb3B0aW9ucyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iJytwcmVmaXgrJ2V4dHJhX2ZpZWxkc1snK2krJ11bb3B0aW9uc10iIG5hbWU9IicrcHJlZml4KydleHRyYV9maWVsZHNbJytpKyddW29wdGlvbnNdIiBzaXplPSIzMCIgLz48L3NwYW4+PC90ZD48dGQ+PC90ZD48dGQ+PC90ZD48dGQ+PC90ZD48dGQ+PGEgaHJlZj0iIyIgY2xhc3M9ImZpZWxkX3JlbW92ZSI+ey9saXRlcmFsfXsqUmVtb3ZlIGZpZWxkKn17JHJlbW92ZV9pY29ufXtsaXRlcmFsfTwvYT48L3RkPjwvdHI+JykKCQkJLmZpbmQoInNlbGVjdC5maWVsZF90eXBlIikuY2hhbmdlKGZ1bmN0aW9uKCkgewoJCQkJaWYgKCQuaW5BcnJheSgkKHRoaXMpLnZhbCgpLCBmaWVsZF90eXBlc193aXRoX29wdGlvbnMpICE9IC0xKSB7CgkJCQkJJCh0aGlzKS5wYXJlbnRzKCJ0cjpmaXJzdCIpLmZpbmQoInNwYW4uZmllbGRfb3B0aW9ucyIpLmZpbmQoIjppbnB1dCIpLnZhbChvcHRpb25zX2RlZmF1bHRbJCh0aGlzKS52YWwoKV0pLmVuZCgpLmNzcygiZGlzcGxheSIsICJpbmxpbmUiKTsKCQkJCX0gZWxzZSB7CgkJCQkJJCh0aGlzKS5wYXJlbnRzKCJ0cjpmaXJzdCIpLmZpbmQoInNwYW4uZmllbGRfb3B0aW9ucyIpLmNzcygiZGlzcGxheSIsICJub25lIik7CgkJCQl9CgkJCX0pCgkJCS5lbmQoKQoJCQkuZmluZCgiYS5maWVsZF9yZW1vdmUiKS5jbGljayhmdW5jdGlvbigpIHsKCQkJCSQodGhpcykucGFyZW50cygidHI6Zmlyc3QiKS5yZW1vdmUoKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfSkKCQkJLmVuZCgpCgkJCS5hcHBlbmRUbygiI2ZpZWxkcyIpOwoJCWkrKzsKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKCXsvbGl0ZXJhbH0Ke3JkZWxpbX0pKGpRdWVyeSk7Cjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIChmdW5jdGlvbigkKSB7bGRlbGltfQoJICB2YXIgcHJlZml4ID0gInskbW9kdWxlX2lkfSI7CgkgIHZhciBvcHRpb25zID0gJ3tmb3JlYWNoIGZyb209JGZpbHRlcl90eXBlcyBpdGVtPWZpbHRlcl90eXBlfTxvcHRpb24gdmFsdWU9InskZmlsdGVyX3R5cGUudHlwZX0iPnskZmlsdGVyX3R5cGUubGFiZWx9PC9vcHRpb24+ey9mb3JlYWNofSc7CgkgIHtsaXRlcmFsfQoJICAKCSAgJCgiYS5maWx0ZXJfcmVtb3ZlIikuY2xpY2soZnVuY3Rpb24oKSB7CgkJICAkKHRoaXMpLnBhcmVudHMoInAuZmlsdGVyc19pdGVtIikucmVtb3ZlKCk7CgkJICByZXR1cm4gZmFsc2U7CgkgIH0pOwoJICAKCSAgdmFyIGkgPSAkKCIjZmlsdGVycyBwLmZpbHRlcnNfaXRlbSIpLmxlbmd0aCsxOwoJICAKCSAgJCgiI2ZpbHRlcl9hZGQiKS5idXR0b24oKS5jbGljayhmdW5jdGlvbigpIHsKCQkgICQoJzxwIGNsYXNzPSJmaWx0ZXJzX2l0ZW0iPjxsYWJlbCBmb3I9IicrcHJlZml4KydmaWx0ZXJzXycraSsnX25hbWUiPk5hbWU6PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSInK3ByZWZpeCsnZmlsdGVyc18nK2krJ19uYW1lIiBuYW1lPSInK3ByZWZpeCsnZmlsdGVyc1snK2krJ11bbmFtZV0iIHNpemU9IjMwIiAvPiBGaWVsZDogPGlucHV0IHR5cGU9InRleHQiIGlkPSInK3ByZWZpeCsnZmlsdGVyc1snK2krJ11bZmllbGRdIiBuYW1lPSInK3ByZWZpeCsnZmlsdGVyc1snK2krJ11bZmllbGRdIiBzaXplPSIxMCIgLz4gPGxhYmVsIGZvcj0iJytwcmVmaXgrJ2ZpbHRlcnNbJytpKyddW3R5cGVdIj5UeXBlOjwvbGFiZWw+IDxzZWxlY3QgaWQ9IicrcHJlZml4KydmaWx0ZXJzWycraSsnXVt0eXBlXSIgbmFtZT0iJytwcmVmaXgrJ2ZpbHRlcnNbJytpKyddW3R5cGVdIiBjbGFzcz0iZmlsdGVyX3R5cGUiPicgKyBvcHRpb25zICsgJzwvc2VsZWN0PiA8YSBocmVmPSIjIiBjbGFzcz0iZmlsdGVyX3JlbW92ZSI+UmVtb3ZlIGZpbHRlcjwvYT48L3A+JykKCQkJLmZpbmQoImEuZmlsdGVyX3JlbW92ZSIpLmNsaWNrKGZ1bmN0aW9uKCkgewoJCQkJJCh0aGlzKS5wYXJlbnRzKCJwLmZpbHRlcnNfaXRlbSIpLnJlbW92ZSgpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9KQoJCQkuZW5kKCkKCQkJLmFwcGVuZFRvKCIjZmlsdGVycyIpOwoJCSAgaSsrOwoJCSAgcmV0dXJuIGZhbHNlOwoJICB9KTsKCSAgey9saXRlcmFsfQogIHtyZGVsaW19KShqUXVlcnkpOwo8L3NjcmlwdD4=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkFjY2VzcyBEZW5pZWQ8L2gzPgo8cD5Zb3UgZG8gbm90IGhhdmUgc3VmZmljaWVudCBwcml2aWxlZ2VzIHRvIG1hbmFnZSB0aGlzIG1vZHVsZS48L3A+Cg==]]></data>
	</file>
</module>
